form.ts 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346
  1. import { FormConfig } from '@/types/basic-form';
  2. /** 检查频次选项:每日/每周/每月/每季度/每半年/每年 */
  3. export const CHECK_FREQUENCY_OPTIONS = [
  4. { label: '每日', value: '每日' },
  5. { label: '每周', value: '每周' },
  6. { label: '每月', value: '每月' },
  7. { label: '每季度', value: '每季度' },
  8. { label: '每半年', value: '每半年' },
  9. { label: '每年', value: '每年' },
  10. ];
  11. /** 检查单模版类别选项(单选):1-安全管理检查单 2-关键业务活动专项检查单 3-日常安全检查单 */
  12. export const CHECKLIST_CATEGORY_OPTIONS = [
  13. { label: '安全管理检查单', value: '安全管理检查单' },
  14. { label: '关键业务活动专项检查单', value: '关键业务活动专项检查单' },
  15. { label: '日常安全检查单', value: '日常安全检查单' },
  16. ];
  17. // 检查记录入账隐患台账
  18. export const HIDDEN_DANGER_FORM_CONFIG: FormConfig[] = [
  19. // {
  20. // prop: 'typeId',
  21. // label: '隐患问题类别:',
  22. // component: 'ElSelect',
  23. // slot: 'typeId',
  24. // componentProps: {
  25. // placeholder: '请选择隐患问题类别',
  26. // style: { width: '100%' },
  27. // },
  28. // // selectOptions: DANGER_TYPE_OPTIONS,
  29. // },
  30. // {
  31. // prop: 'dangerProblem',
  32. // label: '隐患问题:',
  33. // component: 'ElInput',
  34. // componentProps: {
  35. // placeholder: '请输入隐患问题描述',
  36. // },
  37. // },
  38. // {
  39. // prop: 'reasonId',
  40. // label: '问题主要原因:',
  41. // component: 'ElSelect',
  42. // componentProps: {
  43. // placeholder: '请选择问题主要原因',
  44. // style: { width: '100%' },
  45. // },
  46. // selectOptions: REASON_OPTIONS,
  47. // },
  48. // {
  49. // prop: 'taskSource',
  50. // label: '任务来源:',
  51. // component: 'ElInput',
  52. // componentProps: {
  53. // placeholder: '如:上级检查、院内自查',
  54. // },
  55. // },
  56. // {
  57. // prop: 'rectificationRequirement',
  58. // label: '整改要求:',
  59. // component: 'ElInput',
  60. // componentProps: {
  61. // placeholder: '请输入整改要求',
  62. // },
  63. // },
  64. // {
  65. // prop: 'rectificationDepartmentIds',
  66. // label: '整改责任部门:',
  67. // slot: 'rectificationDepartmentIds',
  68. // },
  69. // {
  70. // prop: 'rectificationResponsibleIds',
  71. // label: '整改负责人:',
  72. // slot: 'rectificationResponsibleIds',
  73. // },
  74. // {
  75. // prop: 'rectificationDeadline',
  76. // label: '整改日期:',
  77. // component: 'ElDatePicker',
  78. // componentProps: {
  79. // type: 'date',
  80. // placeholder: '请选择整改日期',
  81. // valueFormat: 'YYYY-MM-DD',
  82. // style: { width: '100%' },
  83. // },
  84. // },
  85. // {
  86. // prop: 'reviewDepartmentId',
  87. // label: '复查人员所属部门:',
  88. // slot: 'reviewDepartmentId',
  89. // componentProps: {
  90. // placeholder: '请选择复查人员所属部门',
  91. // style: { width: '100%' },
  92. // },
  93. // },
  94. // {
  95. // prop: 'reviewPersonId',
  96. // label: '复查人员:',
  97. // slot: 'reviewPerson',
  98. // componentProps: {
  99. // placeholder: '请选择复查人员',
  100. // style: { width: '100%' },
  101. // },
  102. // },
  103. // {
  104. // prop: 'isDrawLessonsPush',
  105. // label: '举一反三是否推送:',
  106. // slot: 'isDrawLessonsPush',
  107. // },
  108. // {
  109. // prop: 'drawLessonsContent',
  110. // slot:'drawLessonsContent',
  111. // label: '',
  112. // component: 'ElInput',
  113. // componentProps: {
  114. // placeholder: '如:上级检查、院内自查',
  115. // style: { paddingLeft: '136.5px' },
  116. // },
  117. // },
  118. // {
  119. // prop: 'drawLessonsDepartmentIds',
  120. // label: '', //举一反三责任部门:
  121. // slot: 'drawLessonsDepartmentIds',
  122. // },
  123. // {
  124. // prop: 'drawLessonsDeadline',
  125. // label: '', //举一反三时限:
  126. // slot: 'drawLessonsDeadline',
  127. // },
  128. ];
  129. /** 区域检查计划新增/编辑表单配置(与截图字段顺序一致) */
  130. export const AREA_CHECK_PLAN_FORM_CONFIG: FormConfig[] = [
  131. {
  132. prop: 'planName',
  133. label: '区域检查计划名称:',
  134. component: 'ElInput',
  135. componentProps: {
  136. placeholder: '输入区域检查计划名称',
  137. },
  138. },
  139. {
  140. prop: 'venueCategoryName',
  141. label: '检查类别:',
  142. slot: 'venueCategoryName',
  143. },
  144. {
  145. prop: 'checkVenue',
  146. label: '检查场所:',
  147. component: 'ElInput',
  148. componentProps: {
  149. placeholder: '输入检查场所',
  150. },
  151. },
  152. {
  153. prop: 'responsibleDeptName',
  154. label: '主责部门:',
  155. slot: 'responsibleDeptName', // 与新增物品领取记录页的部门下拉一致(el-cascader + getAllDepartments)
  156. componentProps: {
  157. placeholder: '请选择部门',
  158. },
  159. },
  160. {
  161. prop: 'selfCheckFrequency',
  162. label: '自查频次:',
  163. slot: 'selfCheckFrequency',
  164. },
  165. {
  166. prop: 'safetyEmergencyDeptName',
  167. label: '安全应急部门:',
  168. slot: 'safetyEmergencyDept', // 与新增物品领取记录页的部门下拉一致(el-cascader + getAllDepartments)
  169. componentProps: {
  170. placeholder: '请选择部门',
  171. },
  172. },
  173. {
  174. prop: 'safetyEmergencyCheckFrequency',
  175. label: '安全应急部检查频次:',
  176. slot: 'safetyEmergencyCheckFrequency',
  177. },
  178. {
  179. prop: 'hospitalLeaderDeptName',
  180. label: '院领导部门:',
  181. slot: 'hospitalLeaderDept', // 与新增物品领取记录页的部门下拉一致(el-cascader + getAllDepartments)
  182. componentProps: {
  183. placeholder: '请选择部门',
  184. },
  185. },
  186. {
  187. prop: 'hospitalLeaderCheckFrequency',
  188. label: '院领导检查频次:',
  189. slot: 'hospitalLeaderCheckFrequency',
  190. },
  191. {
  192. prop: 'categoryCode',
  193. label: '检查单模版类别:',
  194. component: 'ElSelect',
  195. componentProps: {
  196. placeholder: '选择检查单模版类别,单选',
  197. filterable: true,
  198. clearable: true,
  199. style: { width: '100%' },
  200. },
  201. selectOptions: [], // 由详情页 queryDictTypeDetail 注入,value=itemCode, label=itemValue
  202. },
  203. {
  204. prop: 'checklistTemplateName',
  205. label: '检查单模版名称:',
  206. component: 'ElSelect',
  207. componentProps: {
  208. placeholder: '选择检查单模版名称,单选',
  209. filterable: true,
  210. clearable: true,
  211. style: { width: '100%' },
  212. },
  213. selectOptions: [], // 由页面根据类别请求模版列表后注入
  214. },
  215. {
  216. prop: 'checkKeyContent',
  217. label: '检查重点内容:',
  218. component: 'ElInput',
  219. componentProps: {
  220. type: 'textarea',
  221. rows: 4,
  222. placeholder: '请输入检查重点内容',
  223. maxlength: 300,
  224. showWordLimit: true,
  225. },
  226. },
  227. ];
  228. export const AREA_CHECK_PLAN_FORM_DATA: Record<string, unknown> = {
  229. planName: '',
  230. venueCategoryName: '',
  231. checkVenue: '',
  232. /** 主责部门多选:级联绑定 id 数组;提交给后端用 responsibleDeptName / responsibleDeptCode(逗号分隔) */
  233. responsibleDeptId: [] as number[],
  234. responsibleDeptName: '',
  235. responsibleDeptCode: '',
  236. selfCheckFrequency: '',
  237. safetyEmergencyDeptId: null as number | null,
  238. safetyEmergencyDeptName: '',
  239. safetyEmergencyCheckFrequency: '',
  240. hospitalLeaderDeptId: null as number | null,
  241. hospitalLeaderDeptName: '',
  242. hospitalLeaderCheckFrequency: '',
  243. categoryName: '',
  244. categoryCode: '',
  245. checklistTemplateName: '',
  246. checkKeyContent: '',
  247. };
  248. export const AREA_CHECK_PLAN_FORM_RULES = {
  249. planName: [{ required: true, message: '请输入区域检查计划名称', trigger: 'blur' }],
  250. venueCategoryName: [{ required: true, message: '请输入检查类别', trigger: 'blur' }],
  251. checkVenue: [{ required: true, message: '请输入检查场所', trigger: 'blur' }],
  252. responsibleDeptName: [{ required: true, message: '请选择主责部门', trigger: 'change' }],
  253. selfCheckFrequency: [{ required: true, message: '请选择自查频次', trigger: 'change' }],
  254. safetyEmergencyCheckFrequency: [{ required: true, message: '请选择安全应急部检查频次', trigger: 'change' }],
  255. safetyEmergencyDeptName: [{ required: true, message: '请选择安全应急部门', trigger: 'change' }],
  256. hospitalLeaderDeptName: [{ required: true, message: '请选择院领导部门', trigger: 'change' }],
  257. // hospitalLeaderCheckFrequency: [{ required: true, message: '请选择院领导检查频次', trigger: 'change' }],
  258. categoryCode: [{ required: true, message: '请选择检查单模版类别', trigger: 'change' }],
  259. checklistTemplateName: [{ required: true, message: '请选择检查单模版名称', trigger: 'change' }],
  260. checkKeyContent: [{ required: true, message: '请输入检查重点内容', trigger: 'blur' }],
  261. };
  262. /** 问题主要原因:1-人的不安全行为,2-物的不安全状态,3-环境的不利影响,4-管理缺陷 */
  263. export const REASON_OPTIONS = [
  264. { label: '人的不安全行为', value: 1 },
  265. { label: '物的不安全状态', value: 2 },
  266. { label: '环境的不利影响', value: 3 },
  267. { label: '管理缺陷', value: 4 },
  268. ];
  269. export const HIDDEN_DANGER_FORM_DATA = {
  270. typeId: undefined as number | undefined,
  271. dangerProblem: '',
  272. reasonId: undefined as number | undefined,
  273. taskSource: '', // 任务来源
  274. rectificationRequirement: '', // 整改要求
  275. rectificationDepartmentIds: '', // 整改责任部门
  276. rectificationResponsibleIds: '', // 整改负责人
  277. rectificationDeadline: '', //整改日期
  278. reviewDepartmentId: undefined as number | undefined, // 复查人员所属部门
  279. reviewPersonId: undefined as number | undefined, // 复查人员
  280. reviewPersonName: '',
  281. isDrawLessonsPush: 0, // 举一反三是否推送
  282. drawLessonsContent: '', // 举一反三内容
  283. drawLessonsDepartmentIds: '', // 举一反三责任部门
  284. drawLessonsDeadline: '', // 举一反三时限
  285. // 提交接口需要,下发时再填
  286. rectificationResponsiblePerson: '',
  287. // 整改详情展示(接口可能返回)
  288. rectificationCompletionStatus: '',
  289. rectificationCompletionTime: '',
  290. attachments: '',
  291. reviewComments: '',
  292. rectificationResponsibleUserId: '',
  293. };
  294. export const HIDDEN_DANGER_FORM_RULES = {
  295. typeId: [{ required: true, message: '请选择隐患问题类别', trigger: 'change' }],
  296. dangerProblem: [{ required: true, message: '请输入隐患问题', trigger: 'blur' }],
  297. reasonId: [{ required: true, message: '请选择问题主要原因', trigger: 'change' }],
  298. taskSource: [{ required: true, message: '请输入任务来源', trigger: 'blur' }],
  299. rectificationRequirement: [{ required: true, message: '请输入整改要求', trigger: 'blur' }],
  300. rectificationDeadline: [{ required: true, message: '请选择整改时限', trigger: 'change' }],
  301. reviewDepartmentId: [{ required: true, message: '请选择复查人员所属部门', trigger: 'change' }],
  302. reviewPersonId: [{ required: true, message: '请选择复查人员', trigger: 'change' }],
  303. isDrawLessonsPush: [{ required: true, message: '请选择举一反三是否推送', trigger: 'change' }],
  304. drawLessonsContent: [
  305. {
  306. required: true,
  307. message: '请输入举一反三内容',
  308. trigger: 'blur',
  309. },
  310. ],
  311. drawLessonsDepartmentIds: [
  312. {
  313. required: true,
  314. message: '请选择举一反三责任部门',
  315. trigger: 'change',
  316. },
  317. ],
  318. drawLessonsDeadline: [
  319. {
  320. required: true,
  321. message: '请选择举一反三截止日期',
  322. trigger: 'change',
  323. },
  324. ],
  325. rectificationCompletionStatus:[
  326. { required: true, message: '请输入整改完成情况', trigger: 'blur' }
  327. ],
  328. rectificationCompletionTime: [
  329. { required: true, message: '请选择整改完成时间', trigger: 'change' }
  330. ],
  331. rectificationDepartmentIds: [
  332. { required: true, message: '请选择整改责任部门', trigger: 'change' }
  333. ],
  334. rectificationResponsibleIds: [
  335. { required: true, message: '请选择整改负责人', trigger: 'change' }
  336. ],
  337. };