leave.data.ts 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import { reactive } from 'vue'
  2. import { DICT_TYPE } from '@/utils/dict'
  3. import { VxeCrudSchema, useVxeCrudSchemas } from '@/hooks/web/useVxeCrudSchemas'
  4. // 国际化
  5. const { t } = useI18n()
  6. // 表单校验
  7. export const rules = reactive({
  8. startTime: [{ required: true, message: '开始时间不能为空', trigger: 'blur' }],
  9. endTime: [{ required: true, message: '结束时间不能为空', trigger: 'blur' }],
  10. type: [{ required: true, message: '请假类型不能为空', trigger: 'change' }],
  11. reason: [{ required: true, message: '请假原因不能为空', trigger: 'change' }]
  12. })
  13. // crudSchemas
  14. const crudSchemas = reactive<VxeCrudSchema>({
  15. primaryKey: 'id',
  16. primaryType: 'id',
  17. primaryTitle: '申请编号',
  18. action: true,
  19. actionWidth: '260',
  20. columns: [
  21. {
  22. title: t('common.status'),
  23. field: 'result',
  24. dictType: DICT_TYPE.BPM_PROCESS_INSTANCE_RESULT,
  25. dictClass: 'number',
  26. isSearch: true
  27. },
  28. {
  29. title: t('common.startTimeText'),
  30. field: 'startTime',
  31. formatter: 'formatDate',
  32. table: {
  33. width: 180
  34. }
  35. },
  36. {
  37. title: t('common.endTimeText'),
  38. field: 'endTime',
  39. formatter: 'formatDate',
  40. table: {
  41. width: 180
  42. }
  43. },
  44. {
  45. title: '请假类型',
  46. field: 'result',
  47. dictType: DICT_TYPE.BPM_OA_LEAVE_TYPE,
  48. dictClass: 'number',
  49. isSearch: true
  50. },
  51. {
  52. title: '原因',
  53. field: 'reason',
  54. isSearch: true
  55. },
  56. {
  57. title: '申请时间',
  58. field: 'createTime',
  59. formatter: 'formatDate',
  60. table: {
  61. width: 180
  62. },
  63. isSearch: true,
  64. search: {
  65. show: true,
  66. itemRender: {
  67. name: 'XDataTimePicker'
  68. }
  69. }
  70. }
  71. ]
  72. })
  73. export const { allSchemas } = useVxeCrudSchemas(crudSchemas)