data.ts.vm 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. import { BasicColumn, FormSchema, useRender } from '@/components/Table'
  2. import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
  3. export const columns: BasicColumn[] = [
  4. #foreach($column in $columns)
  5. #if ($column.listOperationResult)
  6. #set ($dictType=$column.dictType)
  7. #set ($javaField = $column.javaField)
  8. #set ($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
  9. #set ($comment=$column.columnComment)
  10. #if ($column.javaType == "LocalDateTime")## 时间类型
  11. {
  12. title: '${comment}',
  13. dataIndex: '${javaField}',
  14. width: 180,
  15. customRender: ({ text }) => {
  16. return useRender.renderDate(text)
  17. }
  18. },
  19. #elseif("" != $column.dictType)## 数据字典
  20. {
  21. title: '${comment}',
  22. dataIndex: '${javaField}',
  23. width: 180,
  24. customRender: ({ text }) => {
  25. return useRender.renderDict(text, DICT_TYPE.$dictType.toUpperCase())
  26. }
  27. },
  28. #else
  29. {
  30. title: '${comment}',
  31. dataIndex: '${javaField}',
  32. width: 160
  33. },
  34. #end
  35. #end
  36. #end
  37. ]
  38. export const searchFormSchema: FormSchema[] = [
  39. #foreach($column in $columns)
  40. #if ($column.listOperation)
  41. #set ($dictType=$column.dictType)
  42. #set ($javaField = $column.javaField)
  43. #set ($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
  44. #set ($comment=$column.columnComment)
  45. {
  46. label: '${comment}',
  47. field: '${javaField}',
  48. #if ($column.htmlType == "input")
  49. component: 'Input',
  50. #elseif ($column.htmlType == "select" || $column.htmlType == "radio")
  51. component: 'Select',
  52. componentProps: {
  53. #if ("" != $dictType)## 设置了 dictType 数据字典的情况
  54. options: getIntDictOptions(DICT_TYPE.$dictType.toUpperCase())
  55. #else## 未设置 dictType 数据字典的情况
  56. options: []
  57. #end
  58. },
  59. #elseif($column.htmlType == "datetime")
  60. component: 'RangePicker',
  61. #end
  62. colProps: { span: 8 }
  63. },
  64. #end
  65. #end
  66. ]
  67. export const formSchema: FormSchema[] = [
  68. {
  69. label: '编号',
  70. field: 'id',
  71. show: false,
  72. component: 'Input'
  73. },
  74. #foreach($column in $columns)
  75. #if ($column.createOperation || $column.updateOperation)
  76. #set ($dictType = $column.dictType)
  77. #set ($javaField = $column.javaField)
  78. #set ($AttrName = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
  79. #set ($comment = $column.columnComment)
  80. #if (!$column.primaryKey)## 忽略主键,不用在表单里
  81. {
  82. label: '${comment}',
  83. field: '${javaField}',
  84. #if (($column.createOperation || $column.updateOperation) && !$column.nullable && !${column.primaryKey})## 创建或者更新操作 && 要求非空 && 非主键
  85. required: true,
  86. #end
  87. #if ($column.htmlType == "input")
  88. component: 'Input'
  89. #elseif($column.htmlType == "imageUpload")## 图片上传
  90. component: 'Upload'
  91. #elseif($column.htmlType == "fileUpload")## 文件上传
  92. component: 'Upload'
  93. #elseif($column.htmlType == "editor")## 文本编辑器
  94. component: 'InputTextArea'
  95. #elseif($column.htmlType == "select")## 下拉框
  96. component: 'Select',
  97. componentProps: {
  98. #if ("" != $dictType)## 有数据字典
  99. options: getIntDictOptions(DICT_TYPE.COMMON_STATUS)
  100. #else##没数据字典
  101. options:[]
  102. #end
  103. }
  104. #elseif($column.htmlType == "checkbox")## 多选框
  105. component: 'Checkbox',
  106. componentProps: {
  107. #if ("" != $dictType)## 有数据字典
  108. options: getIntDictOptions(DICT_TYPE.COMMON_STATUS)
  109. #else##没数据字典
  110. options:[]
  111. #end
  112. }
  113. #elseif($column.htmlType == "radio")## 单选框
  114. component: 'Radio',
  115. componentProps: {
  116. #if ("" != $dictType)## 有数据字典
  117. options: getIntDictOptions(DICT_TYPE.COMMON_STATUS)
  118. #else##没数据字典
  119. options:[]
  120. #end
  121. }
  122. #elseif($column.htmlType == "datetime")## 时间框
  123. component: 'DatePicker'
  124. #elseif($column.htmlType == "textarea")## 文本域
  125. component: 'InputTextArea'
  126. #end
  127. },
  128. #end
  129. #end
  130. #end
  131. ]