tenantPackage.data.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import { reactive } from 'vue'
  2. import { required } from '@/utils/formRules'
  3. import { useI18n } from '@/hooks/web/useI18n'
  4. import { DICT_TYPE } from '@/utils/dict'
  5. import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
  6. const { t } = useI18n() // 国际化
  7. // 表单校验
  8. export const rules = reactive({
  9. name: [required],
  10. id: [required],
  11. type: [required],
  12. remark: [required],
  13. status: [required],
  14. menuIds: [required]
  15. })
  16. // CrudSchema
  17. const crudSchemas = reactive<VxeCrudSchema>({
  18. primaryKey: 'id',
  19. primaryType: 'seq',
  20. primaryTitle: '套餐编号',
  21. action: true,
  22. columns: [
  23. {
  24. title: '套餐名称',
  25. field: 'name',
  26. isSearch: true
  27. },
  28. {
  29. title: t('common.status'),
  30. field: 'status',
  31. dictType: DICT_TYPE.COMMON_STATUS,
  32. dictClass: 'number',
  33. isSearch: true
  34. },
  35. {
  36. title: '菜单权限',
  37. field: 'menuIds', // TODO 星语:菜单权限,表单可以搞大点哇?
  38. isTable: false
  39. },
  40. {
  41. title: t('form.remark'),
  42. field: 'remark',
  43. isTable: false,
  44. form: {
  45. component: 'Input',
  46. componentProps: {
  47. type: 'textarea',
  48. rows: 4
  49. },
  50. colProps: {
  51. span: 24
  52. }
  53. }
  54. },
  55. {
  56. title: '创建时间',
  57. field: 'createTime',
  58. formatter: 'formatDate',
  59. isForm: false
  60. }
  61. ]
  62. })
  63. export const { allSchemas } = useVxeCrudSchemas(crudSchemas)