detail.config.ts 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. const modalConfig = {
  2. pageName: 'ntlo',
  3. addTitle: '个人基本信息',
  4. editTitle: '个人基本信息',
  5. detailTitle: '个人基本信息',
  6. labelWidth: '150px',
  7. formRules: {
  8. unitName: [{ required: true, message: '请选择单位名称', trigger: 'change' }],
  9. contactName: [{ required: true, message: '请输入联络人名称', trigger: 'change' }],
  10. belongsDept: [{ required: true, message: '请选择所属部门', trigger: 'change' }],
  11. position: [{ required: true, message: '请选择所属职位', trigger: 'change' }],
  12. contactNumber: [
  13. { required: true, message: '输入正确的联系电话', trigger: 'change' },
  14. {
  15. validator: (_, val, cb) => {
  16. const digits = (val || '').replace(/\D/g, '');
  17. if (!/^1[3-9]\d{9}$/.test(digits)) {
  18. cb(new Error('请输入正确的 11 位联系电话'));
  19. } else {
  20. cb();
  21. }
  22. },
  23. trigger: 'blur',
  24. },
  25. ],
  26. msgRecipient: [{ required: true, message: '请选择短信接收人', trigger: 'change' }],
  27. wxNumber: [
  28. { required: false, message: '请输入正确的微信号', trigger: 'change' },
  29. {
  30. validator: (_, val, cb) => {
  31. if (!val) return cb(); // 允许空
  32. if (!/^[a-zA-Z0-9_-]{6,20}$/.test(val.trim())) {
  33. cb(new Error('微信号只能为字母、数字、下划线或减号,且6-20位'));
  34. } else {
  35. cb();
  36. }
  37. },
  38. trigger: 'blur',
  39. },
  40. ],
  41. fixedTelephone: [
  42. { required: false, message: '请输入正确的固定电话', trigger: 'change' },
  43. {
  44. validator: (_, val, cb) => {
  45. if (!val) return cb(); // 允许空
  46. const digits = val.replace(/\D/g, '');
  47. if (!/^\d{10,12}$/.test(digits)) {
  48. // 区号+号码 10~12 位
  49. return cb(new Error('固定电话格式错误'));
  50. }
  51. cb();
  52. },
  53. trigger: 'blur',
  54. },
  55. ],
  56. email: [
  57. { required: false, message: '请输入正确的电子邮箱', trigger: 'change' },
  58. {
  59. validator: (_, val, cb) => {
  60. if (!val) return cb(); // 允许空
  61. if (!/^[\w.-]+@[\w.-]+\.\w+$/.test(val.trim())) {
  62. return cb(new Error('电子邮箱格式错误'));
  63. }
  64. cb();
  65. },
  66. trigger: 'blur',
  67. },
  68. ],
  69. faxNumber: [
  70. { required: false, message: '请输入正确的传真号', trigger: 'change' },
  71. {
  72. validator: (_, val, cb) => {
  73. if (!val) return cb(); // 允许空
  74. const digits = val.replace(/\D/g, '');
  75. if (!/^\d{10,12}$/.test(digits)) {
  76. // 区号+号码 10~12 位
  77. return cb(new Error('传真号格式错误'));
  78. }
  79. cb();
  80. },
  81. trigger: 'blur', // 失焦再校验,不打断输入
  82. },
  83. ],
  84. },
  85. pageListParams: {
  86. industryType: '1',
  87. },
  88. formItems: [
  89. {
  90. label: '创建人员',
  91. prop: 'addName',
  92. type: 'input',
  93. disabled: true,
  94. placeholder: '请输入创建人员',
  95. },
  96. {
  97. label: '创建人员单位名称',
  98. prop: 'addDept',
  99. type: 'input',
  100. disabled: true,
  101. placeholder: '请输入创建人员单位名称',
  102. },
  103. {
  104. label: '创建时间',
  105. prop: 'addDate',
  106. type: 'input',
  107. disabled: true,
  108. placeholder: '请输入创建时间',
  109. },
  110. {
  111. label: '单位名称',
  112. prop: 'unitName',
  113. type: 'unitName',
  114. placeholder: '请选择单位名称',
  115. },
  116. {
  117. label: '联络人姓名',
  118. prop: 'contactName',
  119. type: 'input',
  120. placeholder: '请输入联络人姓名',
  121. },
  122. {
  123. label: '所属部门',
  124. prop: 'belongsDept',
  125. type: 'belongsDept',
  126. disabled: true,
  127. placeholder: '请输入所属部门',
  128. },
  129. {
  130. label: '所属职务',
  131. prop: 'position',
  132. type: 'input',
  133. placeholder: '请输入所属职务',
  134. },
  135. {
  136. label: '微信号',
  137. prop: 'wxNumber',
  138. type: 'input',
  139. placeholder: '请输入微信号',
  140. },
  141. {
  142. label: '联系电话',
  143. prop: 'contactNumber',
  144. type: 'input',
  145. placeholder: '请输入联系电话',
  146. },
  147. {
  148. label: '固定电话',
  149. prop: 'fixedTelephone',
  150. type: 'input',
  151. placeholder: '请输入固定电话',
  152. },
  153. {
  154. label: '传真号',
  155. prop: 'faxNumber',
  156. type: 'input',
  157. placeholder: '请输入传真号',
  158. },
  159. {
  160. label: '电子邮箱',
  161. prop: 'email',
  162. type: 'input',
  163. placeholder: '请输入电子邮箱',
  164. },
  165. {
  166. label: '短信接收人',
  167. prop: 'msgRecipient',
  168. type: 'msgRecipient',
  169. },
  170. ],
  171. };
  172. export default modalConfig;