255 lines
5.4 KiB
TypeScript
255 lines
5.4 KiB
TypeScript
import type {
|
|
ProColumns,
|
|
ProFormColumnsType,
|
|
} from '@ant-design/pro-components';
|
|
import { Tag } from 'antd';
|
|
|
|
import dayjs from 'dayjs';
|
|
import type { TenantVO } from '@/services/system/tenant/list';
|
|
import { getTenantPackageList } from '@/services/system/tenant/package';
|
|
|
|
export const baseTenantColumns: ProColumns<TenantVO>[] = [
|
|
{
|
|
title: '租户编号',
|
|
dataIndex: 'id',
|
|
tip: '租户编号',
|
|
width: 100,
|
|
hideInSearch: true, // 在搜索表单中隐藏
|
|
},
|
|
{
|
|
title: '租户名',
|
|
dataIndex: 'name',
|
|
tip: '租户名', // 提示信息
|
|
},
|
|
{
|
|
title: '租户套餐',
|
|
dataIndex: 'packageId',
|
|
valueType: 'select',
|
|
hideInSearch: true, // 在搜索表单中隐藏
|
|
request: async () => {
|
|
const packageList: { id: number; name: string }[] =
|
|
await getTenantPackageList();
|
|
const newData = packageList.map((item) => ({
|
|
label: item.name,
|
|
value: item.id,
|
|
}));
|
|
const defData = [{ value: 0, label: '系统' }];
|
|
return [...defData, ...newData];
|
|
},
|
|
render: (dom, record) => {
|
|
return (
|
|
<Tag
|
|
key={record.id}
|
|
color={record.packageId === 0 ? 'error' : 'success'}
|
|
>
|
|
{dom}
|
|
</Tag>
|
|
);
|
|
},
|
|
// valueEnum: {
|
|
// all: { text: "全部", status: "Default" },
|
|
// open: { text: "未解决", status: "Error" },
|
|
// closed: { text: "已解决", status: "Success" },
|
|
// },
|
|
},
|
|
{
|
|
title: '联系人',
|
|
dataIndex: 'contactName',
|
|
},
|
|
{
|
|
title: '联系手机',
|
|
dataIndex: 'contactMobile',
|
|
},
|
|
{
|
|
title: '账号额度',
|
|
dataIndex: 'accountCount',
|
|
hideInSearch: true, // 在搜索表单中隐藏
|
|
},
|
|
{
|
|
title: '过期时间',
|
|
dataIndex: 'expireTime',
|
|
valueType: 'dateTime',
|
|
|
|
hideInSearch: true, // 在搜索表单中隐藏
|
|
},
|
|
{ title: '绑定域名', dataIndex: 'website', width: 100, hideInSearch: true },
|
|
{
|
|
title: '租户状态',
|
|
dataIndex: 'status',
|
|
valueType: 'select',
|
|
fieldProps: {
|
|
options: [
|
|
{
|
|
label: '开启',
|
|
value: 0,
|
|
},
|
|
{
|
|
label: '关闭',
|
|
value: 1,
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
title: '创建时间',
|
|
dataIndex: 'createTime',
|
|
valueType: 'dateRange',
|
|
search: {
|
|
transform: (value) => {
|
|
return {
|
|
'createTime[0]': dayjs(value[0])
|
|
.startOf('day')
|
|
.format('YYYY-MM-DD HH:mm:ss'),
|
|
'createTime[1]': dayjs(value[1])
|
|
.endOf('day')
|
|
.format('YYYY-MM-DD HH:mm:ss'),
|
|
};
|
|
},
|
|
},
|
|
render: (_, record: TenantVO) =>
|
|
dayjs(record.createTime).format('YYYY-MM-DD HH:mm:ss'),
|
|
},
|
|
];
|
|
|
|
export const formColumns = (type: string): ProFormColumnsType[] => [
|
|
{
|
|
title: '租户名',
|
|
dataIndex: 'name',
|
|
tip: '租户名', // 提示信息
|
|
formItemProps: {
|
|
rules: [
|
|
{
|
|
required: true,
|
|
message: '请输入用户名',
|
|
},
|
|
// {
|
|
// min: 2,
|
|
// max: 20,
|
|
// message: "用户名长度为2-20个字符",
|
|
// },
|
|
],
|
|
},
|
|
},
|
|
{
|
|
title: '租户套餐',
|
|
dataIndex: 'packageId',
|
|
valueType: 'select',
|
|
formItemProps: {
|
|
rules: [
|
|
{
|
|
required: true,
|
|
message: '请选择租户套餐',
|
|
},
|
|
],
|
|
},
|
|
fieldProps: {
|
|
placeholder: '请选择套餐类型',
|
|
options: [
|
|
{
|
|
label: '普通套餐',
|
|
value: 111,
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
title: '联系人',
|
|
dataIndex: 'contactName',
|
|
},
|
|
{
|
|
title: '联系手机',
|
|
dataIndex: 'contactMobile',
|
|
formItemProps: {
|
|
rules: [
|
|
{
|
|
required: true,
|
|
message: '请输入联系手机',
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
title: '用户名称',
|
|
dataIndex: 'username',
|
|
hideInForm: type === 'update',
|
|
formItemProps: {
|
|
rules: [
|
|
{
|
|
required: true,
|
|
message: '请输入用户名称',
|
|
},
|
|
{
|
|
pattern: /^[a-zA-Z0-9]+$/,
|
|
message: '用户账号由 0-9、a-z、A-Z 组成',
|
|
},
|
|
// 用户账号由 数字、字母组成
|
|
],
|
|
},
|
|
},
|
|
{
|
|
title: '用户密码',
|
|
dataIndex: 'password',
|
|
valueType: 'password',
|
|
hideInForm: type === 'update',
|
|
fieldProps: {
|
|
placeholder: '请输入用户密码',
|
|
autoComplete: 'new-password',
|
|
},
|
|
formItemProps: {
|
|
rules: [
|
|
{
|
|
required: true,
|
|
message: '请输入用户密码',
|
|
},
|
|
{
|
|
min: 4,
|
|
max: 16,
|
|
message: '密码长度为4-16个字符',
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
title: '账号额度',
|
|
dataIndex: 'accountCount',
|
|
valueType: 'digit',
|
|
},
|
|
{
|
|
title: '过期时间',
|
|
dataIndex: 'expireTime',
|
|
valueType: 'date',
|
|
|
|
fieldProps: {
|
|
placeholder: '请选择过期时间',
|
|
format: 'YYYY-MM-DD',
|
|
},
|
|
},
|
|
{ title: '绑定域名', dataIndex: 'website' },
|
|
{
|
|
title: '租户状态',
|
|
dataIndex: 'status',
|
|
valueType: 'radio',
|
|
formItemProps: {
|
|
rules: [
|
|
{
|
|
required: true,
|
|
message: '请选择租户状态',
|
|
},
|
|
],
|
|
},
|
|
fieldProps: {
|
|
placeholder: '请选择套餐类型',
|
|
options: [
|
|
{
|
|
label: '启用',
|
|
value: 1,
|
|
},
|
|
{
|
|
label: '禁用',
|
|
value: 0,
|
|
},
|
|
],
|
|
},
|
|
},
|
|
];
|