@dongkboy 2 лет назад
Родитель
Сommit
e6a93a011d
1 измененных файлов с 29 добавлено и 10 удалено
  1. 29 10
      src/components/Form/ProductCostForm.vue

+ 29 - 10
src/components/Form/ProductCostForm.vue

@@ -13,7 +13,7 @@
           }}</el-button>
         </div>
         <div class="p-2" v-show="CarCollapsed">
-          <el-col v-for=" (formItems, index) in CarAttr" :key="index" :span="formItems.attrType == 'checkbox' ? 24 : 12">
+          <el-col v-for=" (formItems, index) in CarAttr" :key="index" :span="formItems.attrType == 'checkbox' ? 24 : 11">
             <el-form-item :label="formItems.attrName">
               <template v-if="formItems.attrType == 'inputNumber'">
                 <template v-if="formItems.operator == '1' || formItems.operator == null">
@@ -43,11 +43,15 @@
                     :value="operatoritem.value"></el-option>
                 </el-select>
               </template>
-              <el-select v-if="formItems.attrType == 'select'" multiple v-model="formItems.minArray" placeholder="请选择"
-                style="width: 100%;" @change="selectChange($event, formItems.id, 'min')">
-                <el-option v-for="dict in formItems.dictLabal" :key="dict.code" :label="dict.name"
-                  :value="dict.name"></el-option>
-              </el-select>
+              <div v-if="formItems.attrType == 'select'" style="display: flex;">
+                <el-select multiple v-model="formItems.minArray" placeholder="请选择" style="width: 100%;"
+                  @change="selectChange($event, formItems.id, 'min')">
+                  <el-option v-for="dict in formItems.dictLabal" :key="dict.code" :label="dict.name"
+                    :value="dict.name"></el-option>
+                </el-select>
+                <el-checkbox style="margin-left: 10px;" v-if="formItems.attrCode == 'LicenseNo'"
+                  v-model="LicenseNoChecked" @change="LicenseNoCheckedChange($event, 'LicenseNo', 'min')">全选</el-checkbox>
+              </div>
               <el-input v-if="formItems.attrType == 'input'" v-model="formItems.min"
                 placeholder="输入(宝马、奥迪等)多个输入,用,隔开"></el-input>
               <el-checkbox-group v-if="formItems.attrType == 'checkbox'" v-model="formItems.minArray"
@@ -388,20 +392,21 @@ export default {
     overSize: String,
     cardList: Array,
     operator: Array,
-    disabled:{
-      type:Boolean,
-      default:false,
+    disabled: {
+      type: Boolean,
+      default: false,
     }
   },
   data() {
     return {
-      localForm: {myArray:this.form},
+      localForm: { myArray: this.form },
       CarCollapsed: true,
       CarownersCollapsed: true,
       ApplicantCollapsed: true,
       InsuredCollapsed: true,
       insuranceTypeCollapsed: true,
       insurerCostFactorCollapsed: true,
+      LicenseNoChecked: false,
     };
   },
   created() {
@@ -433,6 +438,19 @@ export default {
     }
   },
   methods: {
+    LicenseNoCheckedChange(value, name, prop) {
+      let carPlateCollection = this.localForm.myArray.find(val => val.attrCode == name);
+      carPlateCollection.minArray = [];
+      if (value) {
+        carPlateCollection.dictLabal.forEach(element => {
+          carPlateCollection.minArray.push(element.name)
+          carPlateCollection[prop] = carPlateCollection.minArray.join(',');
+        });
+      } else {
+        carPlateCollection.minArray = [];
+        carPlateCollection[prop] = "";
+      }
+    },
     toggle(attr) {
       this[attr + 'Collapsed'] = !this[attr + 'Collapsed'];
     },
@@ -496,6 +514,7 @@ export default {
 .margin-bom {
   margin-bottom: 20px;
 }
+
 .footer {
   width: 100%;
   position: fixed;