1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
| import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
| import { dateFormatter } from '@/utils/formatTime'
| const { t } = useI18n() // 国际化
|
| // 表单校验
| export const rules = reactive({
| mail: [
| { required: true, message: t('profile.rules.mail'), trigger: 'blur' },
| {
| type: 'email',
| message: t('profile.rules.truemail'),
| trigger: ['blur', 'change']
| }
| ],
| username: [required],
| password: [required],
| host: [required],
| port: [required],
| sslEnable: [required],
| starttlsEnable: [required]
| })
|
| // CrudSchema:https://xxxx/vue3/crud-schema/
| const crudSchemas = reactive<CrudSchema[]>([
| {
| label: '邮箱',
| field: 'mail',
| isSearch: true
| },
| {
| label: '用户名',
| field: 'username',
| isSearch: true
| },
| {
| label: '密码',
| field: 'password',
| isTable: false
| },
| {
| label: 'SMTP 服务器域名',
| field: 'host'
| },
| {
| label: 'SMTP 服务器端口',
| field: 'port',
| form: {
| component: 'InputNumber',
| value: 465
| }
| },
| {
| label: '是否开启 SSL',
| field: 'sslEnable',
| dictType: DICT_TYPE.INFRA_BOOLEAN_STRING,
| dictClass: 'boolean',
| form: {
| component: 'Radio'
| }
| },
| {
| label: '是否开启 STARTTLS',
| field: 'starttlsEnable',
| dictType: DICT_TYPE.INFRA_BOOLEAN_STRING,
| dictClass: 'boolean',
| form: {
| component: 'Radio'
| }
| },
| {
| label: '创建时间',
| field: 'createTime',
| isForm: false,
| formatter: dateFormatter,
| detail: {
| dateFormat: 'YYYY-MM-DD HH:mm:ss'
| }
| },
| {
| label: '操作',
| field: 'action',
| isForm: false,
| isDetail: false
| }
| ])
| export const { allSchemas } = useCrudSchemas(crudSchemas)
|
|