76 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
| import type { VxeCrudSchema } from '@/hooks/web/useVxeCrudSchemas'
 | ||
| 
 | ||
| const { t } = useI18n() // 国际化
 | ||
| 
 | ||
| // 表单校验
 | ||
| export const rules = reactive({
 | ||
|   // mail: [required],
 | ||
|   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]
 | ||
| })
 | ||
| 
 | ||
| // CrudSchema
 | ||
| const crudSchemas = reactive<VxeCrudSchema>({
 | ||
|   primaryKey: 'id', // 默认的主键 ID
 | ||
|   primaryTitle: '编号',
 | ||
|   primaryType: 'id',
 | ||
|   action: true,
 | ||
|   actionWidth: '200', // 3 个按钮默认 200,如有删减对应增减即可
 | ||
|   columns: [
 | ||
|     {
 | ||
|       title: '邮箱',
 | ||
|       field: 'mail',
 | ||
|       isSearch: true
 | ||
|     },
 | ||
|     {
 | ||
|       title: '用户名',
 | ||
|       field: 'username',
 | ||
|       isSearch: true
 | ||
|     },
 | ||
|     {
 | ||
|       title: '密码',
 | ||
|       field: 'password',
 | ||
|       isTable: false
 | ||
|     },
 | ||
|     {
 | ||
|       title: 'SMTP 服务器域名',
 | ||
|       field: 'host'
 | ||
|     },
 | ||
|     {
 | ||
|       title: 'SMTP 服务器端口',
 | ||
|       field: 'port',
 | ||
|       form: {
 | ||
|         component: 'InputNumber',
 | ||
|         value: 465
 | ||
|       }
 | ||
|     },
 | ||
|     {
 | ||
|       title: '是否开启 SSL',
 | ||
|       field: 'sslEnable',
 | ||
|       dictType: DICT_TYPE.INFRA_BOOLEAN_STRING,
 | ||
|       dictClass: 'boolean'
 | ||
|     },
 | ||
|     {
 | ||
|       title: '创建时间',
 | ||
|       field: 'createTime',
 | ||
|       isForm: false,
 | ||
|       formatter: 'formatDate',
 | ||
|       table: {
 | ||
|         width: 180
 | ||
|       }
 | ||
|     }
 | ||
|   ]
 | ||
| })
 | ||
| export const { allSchemas } = useVxeCrudSchemas(crudSchemas)
 |