002201 1 年間 前
コミット
83a74df021

+ 10 - 0
src/components/super-form/index.vue

@@ -55,6 +55,15 @@ export default {
         return prop.required;
       }
     },
+    //
+    getFormItemDisabled(prop, value) {
+      if (typeof prop.disabled === "function") {
+        return prop.disabled(value);
+      }
+      if (typeof prop.disabled === "boolean") {
+        return prop.disabled;
+      }
+    },
     // 继承el-table的Method
     extendMethod() {
       const refMethod = Object.entries(this.$refs["superForm"]);
@@ -145,6 +154,7 @@ export default {
               v-else
               v-bind="attr"
               v-model="innerValue[item.key]"
+              :disabled="getFormItemDisabled(attr, innerValue)"
               style="width: 100%"
             >
             </component>

+ 1 - 0
src/views/purchase/contract/add/columns.js

@@ -202,6 +202,7 @@ export default function useColumns() {
       attr: {
         is: "el-date-picker",
         valueFormat: "yyyy-MM-dd",
+        disabled: (prop) => !prop.effectiveDate,
       },
     },
     {

+ 6 - 4
src/views/purchase/contract/add/index.vue

@@ -73,17 +73,19 @@ export default {
     },
     "params.effectiveDate": {
       handler: function (newValue) {
-        console.log(newValue);
+        if (!newValue) {
+          this.params.endDate = null;
+        }
         this.rules.endDate = [
           {
             validator: (rule, value, callback) => {
-              if (newValue === undefined || newValue === null) {
-                callback(new Error("请选择合同生效日期"));
+              if (!newValue) {
+                callback(new Error("请选择合同生效日期"));
               } else if (
                 new Date(value).getTime() <
                 new Date(newValue).getTime() + 24 * 1000 * 3600
               ) {
-                callback(new Error("合同失效日期必须大于合同生效日期!"));
+                callback(new Error("合同失效日期必须大于合同生效日期"));
               } else {
                 callback();
               }