contract.data.ts 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
  2. import { dateFormatter } from '@/utils/formatTime'
  3. // 表单校验
  4. export const rules = reactive({
  5. name: [required]
  6. })
  7. // TODO @dbh52:不使用 crud 模式哈,使用标准的 ep 代码哈;主要后续 crud schema 可能会改
  8. // CrudSchema https://doc.iocoder.cn/vue3/crud-schema/
  9. const crudSchemas = reactive<CrudSchema[]>([
  10. {
  11. label: '合同编号',
  12. field: 'id',
  13. isForm: false
  14. },
  15. {
  16. label: '合同名称',
  17. field: 'name',
  18. isSearch: true
  19. },
  20. {
  21. label: '客户编号',
  22. field: 'customerId',
  23. isSearch: true,
  24. form: {
  25. component: 'InputNumber',
  26. value: 0
  27. }
  28. },
  29. {
  30. label: '商机编号',
  31. field: 'businessId',
  32. isSearch: true,
  33. form: {
  34. component: 'InputNumber',
  35. value: 0
  36. }
  37. },
  38. {
  39. label: '工作流编号',
  40. field: 'processInstanceId',
  41. isSearch: true,
  42. form: {
  43. component: 'InputNumber',
  44. value: 0
  45. }
  46. },
  47. {
  48. label: '下单日期',
  49. field: 'orderDate',
  50. formatter: dateFormatter,
  51. isSearch: true,
  52. search: {
  53. component: 'DatePicker',
  54. componentProps: {
  55. valueFormat: 'YYYY-MM-DD HH:mm:ss',
  56. type: 'daterange',
  57. defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
  58. }
  59. },
  60. form: {
  61. component: 'DatePicker',
  62. componentProps: {
  63. type: 'datetime',
  64. valueFormat: 'x'
  65. }
  66. }
  67. },
  68. {
  69. label: '负责人的用户编号',
  70. field: 'ownerUserId',
  71. isSearch: true,
  72. form: {
  73. component: 'InputNumber',
  74. value: 0
  75. }
  76. },
  77. {
  78. label: '创建时间',
  79. field: 'createTime',
  80. formatter: dateFormatter,
  81. isSearch: true,
  82. search: {
  83. component: 'DatePicker',
  84. componentProps: {
  85. valueFormat: 'YYYY-MM-DD HH:mm:ss',
  86. type: 'daterange',
  87. defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
  88. }
  89. },
  90. isForm: false
  91. },
  92. {
  93. label: '合同编号',
  94. field: 'no',
  95. isSearch: true
  96. },
  97. {
  98. label: '开始时间',
  99. field: 'startTime',
  100. formatter: dateFormatter,
  101. isSearch: true,
  102. search: {
  103. component: 'DatePicker',
  104. componentProps: {
  105. valueFormat: 'YYYY-MM-DD HH:mm:ss',
  106. type: 'daterange',
  107. defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
  108. }
  109. },
  110. form: {
  111. component: 'DatePicker',
  112. componentProps: {
  113. type: 'datetime',
  114. valueFormat: 'x'
  115. }
  116. }
  117. },
  118. {
  119. label: '结束时间',
  120. field: 'endTime',
  121. formatter: dateFormatter,
  122. isSearch: true,
  123. search: {
  124. component: 'DatePicker',
  125. componentProps: {
  126. valueFormat: 'YYYY-MM-DD HH:mm:ss',
  127. type: 'daterange',
  128. defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
  129. }
  130. },
  131. form: {
  132. component: 'DatePicker',
  133. componentProps: {
  134. type: 'datetime',
  135. valueFormat: 'x'
  136. }
  137. }
  138. },
  139. {
  140. label: '合同金额',
  141. field: 'price',
  142. isSearch: true,
  143. form: {
  144. component: 'InputNumber',
  145. value: 0
  146. }
  147. },
  148. {
  149. label: '整单折扣',
  150. field: 'discountPercent',
  151. isSearch: true,
  152. form: {
  153. component: 'InputNumber',
  154. value: 0
  155. }
  156. },
  157. {
  158. label: '产品总金额',
  159. field: 'productPrice',
  160. isSearch: true,
  161. form: {
  162. component: 'InputNumber',
  163. value: 0
  164. }
  165. },
  166. {
  167. label: '只读权限的用户编号数组',
  168. field: 'roUserIds',
  169. isSearch: true
  170. },
  171. {
  172. label: '读写权限的用户编号数组',
  173. field: 'rwUserIds',
  174. isSearch: true
  175. },
  176. {
  177. label: '联系人编号',
  178. field: 'contactId',
  179. isSearch: true,
  180. form: {
  181. component: 'InputNumber',
  182. value: 0
  183. }
  184. },
  185. {
  186. label: '备注',
  187. field: 'remark',
  188. isSearch: true
  189. },
  190. {
  191. label: '公司签约人',
  192. field: 'signUserId',
  193. isSearch: true,
  194. form: {
  195. component: 'InputNumber',
  196. value: 0
  197. }
  198. },
  199. {
  200. label: '最后跟进时间',
  201. field: 'contactLastTime',
  202. formatter: dateFormatter,
  203. isSearch: true,
  204. search: {
  205. component: 'DatePicker',
  206. componentProps: {
  207. valueFormat: 'YYYY-MM-DD HH:mm:ss',
  208. type: 'daterange',
  209. defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
  210. }
  211. },
  212. form: {
  213. component: 'DatePicker',
  214. componentProps: {
  215. type: 'datetime',
  216. valueFormat: 'x'
  217. }
  218. }
  219. },
  220. {
  221. label: '操作',
  222. field: 'action',
  223. isForm: false
  224. }
  225. ])
  226. export const { allSchemas } = useCrudSchemas(crudSchemas)