contract.data.ts 4.4 KB

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