Bläddra i källkod

五险一金方案弹窗:参保地补 required 标志,显示必填红星;实际校验仍走 locationRequired 的 validator(自定义 validator 优先级高于 required 类型校验),空数组与清空后的 null 照旧拦截

lihaiting 1 dag sedan
förälder
incheckning
f791fbabcb
1 ändrade filer med 8 tillägg och 1 borttagningar
  1. 8 1
      src/views/salary/socialScheme/SchemeEditDialog.vue

+ 8 - 1
src/views/salary/socialScheme/SchemeEditDialog.vue

@@ -407,8 +407,15 @@ const baseRangeRule = (label, minKey, maxKey, vm) => ({
   trigger: 'blur'
 });
 
-/** 必填校验:参保地(省 / 市 至少两级,区级可缺) */
+/**
+ * 必填校验:参保地(省 / 市 至少两级,区级可缺)。
+ * ★ 2026-10-21 用户要求参保地必填:required: true 是给 el-form-item 渲染必填红星用的
+ *   (element-ui 只看规则里有没有 required 标志,纯 validator 不显示红星,用户看不出是必填);
+ *   实际校验仍走 validator(async-validator 里自定义 validator 优先级高于 required 类型校验),
+ *   所以空数组 / 清空后的 null 都会拦下,不会因为加了 required 就放过空值。
+ */
 const locationRequired = {
+  required: true,
   validator(rule, value, callback) {
     if (!Array.isArray(value) || !value.filter(Boolean).length) {
       callback(new Error('请选择参保地(至少选到省 / 市)'));