Răsfoiți Sursa

复制规则条件到规则支持多选复制

祁鹏飞 5 zile în urmă
părinte
comite
c53e103f53
1 a modificat fișierele cu 39 adăugiri și 21 ștergeri
  1. 39 21
      src/views/quoteConfig/agreement/agreementDetails.vue

+ 39 - 21
src/views/quoteConfig/agreement/agreementDetails.vue

@@ -223,13 +223,9 @@
           </el-form-item>
 
         </el-form>
-        <div class="flex a-c j-s ">
+        <div class="flex a-c ">
           <span class="strong title" style="margin-right: 20px;">规则条件</span>
-        </div>
-        <div class="bg-[#FAFAFA] p-20px m-t-20px" v-for="rules in rulesAttrListInfo.rulesGroups" :key="rules.timeId">
-          <!-- 规则选择容器 -->
-          <div class="flex items-center justify-between">
-            <el-button type="primary" link @click="ruleCopy(true, rules)">
+          <el-button type="primary" link @click="ruleCopy(true)">
               批量复制到规则
               <template #icon>
                 <el-icon>
@@ -237,18 +233,28 @@
                 </el-icon>
               </template>
             </el-button>
-            <el-button type="primary" link @click="addRules('and', rules)">
-              并且条件
-              <template #icon>
-                <el-icon>
-                  <Plus />
-                </el-icon>
-              </template>
-            </el-button>
-          </div>
-          <rule-Condition-Container :rulesAttrList="rules.rulesAttrList" @Del="(index) => rulesAttrDel(index, rules)"
-            @selectChange="(index) => rulesAttrselectChange(index, rules)" />
         </div>
+        <el-checkbox-group v-model="checkboxList">
+          <el-checkbox label=" " :value="rules.timeId" v-for="rules in rulesAttrListInfo.rulesGroups" :key="rules.timeId">
+            <template #default>
+            <div class="bg-[#FAFAFA] p-20px m-t-20px" >
+              <!-- 规则选择容器 -->
+              <div class="flex items-center justify-between">
+                <el-button type="primary" link @click="addRules('and', rules)">
+                  并且条件
+                  <template #icon>
+                    <el-icon>
+                      <Plus />
+                    </el-icon>
+                  </template>
+                </el-button>
+              </div>
+              <rule-Condition-Container :rulesAttrList="rules.rulesAttrList" @Del="(index) => rulesAttrDel(index, rules)"
+                @selectChange="(index) => rulesAttrselectChange(index, rules)" />
+            </div>
+            </template>
+          </el-checkbox>
+        </el-checkbox-group>
         <el-button class="m-t-20px" plain type="primary" @click="addRules('or')">
           或者条件
           <template #icon>
@@ -822,10 +828,14 @@ const copyDialog1 = ref(false)
 const copyMultiple = ref(false)
 const selectList = ref([{}])
 const rulesSel = ref([])
+const checkboxList = ref([])
 
-const ruleCopy = (multiple: boolean, rules: any) => {
+const ruleCopy = (multiple: boolean) => {
   copyMultiple.value = multiple
-  rulesSel.value = rules
+  if(multiple && checkboxList.value.length===0){
+    ElMessage.error('请选择规则条件')
+  }
+  rulesSel.value=checkboxList.value.map(v=> rulesAttrListInfo.rulesGroups.find(k=>k.timeId===v)?.rulesAttrList.map(k=>k.id))
   selectList.value = [{ time: Date.now() }]
   agreementId.value = ''
   const params = {
@@ -871,7 +881,7 @@ const rulesAttrBatchCopy = async () => {
     }
   }
   const params = {
-    attrIds: rulesSel.value.rulesAttrList.map(v => v.id),
+    attrIds: rulesSel.value.flat(),
     targets: selectList.value
   }
   const res = await api.agreementApi.rulesAttrBatchCopy(params)
@@ -1477,6 +1487,14 @@ const submitUpdate1 = () => {
 </script>
 <!-- 样式区域 -->
 <style lang='scss' scoped>
+:deep(.el-checkbox) {
+  height: auto;
+  width: calc(100% - 10px);
+  .el-checkbox__label{
+  width: calc(100% - 10px);
+
+  }
+}
 :deep(.demo-tabs .el-tabs__item) {
   font-size: 20px;
   font-weight: bold !important;
@@ -1579,7 +1597,7 @@ const submitUpdate1 = () => {
     height: 18px;
     margin-right: 20px;
     content: "";
-    margin-top: 6px;
+    margin-top: 2px;
     background-color: #0083ff;
   }
 }