002201 2 yıl önce
ebeveyn
işleme
3ea5d9e1f9

+ 47 - 15
src/components/popover-select/index.vue

@@ -62,7 +62,7 @@ export default {
     // 参照内外映射
     dataMapping: Object,
   },
-  emits: ['hide'],
+  emits: ["hide"],
   components: {
     TableDialog: () => import("./components/index.vue"),
   },
@@ -100,7 +100,7 @@ export default {
     handleAdd(prop) {
       this.data = prop;
       this.handleUpdate(this.data);
-      this.$emit('hide', prop)
+      this.$emit("hide", prop);
     },
     // 删除操作
     handleDelete(prop) {
@@ -129,7 +129,7 @@ export default {
         this.$emit("update:source", source);
       }
       //
-      this.$emit("change", prop);
+      this.$emit("change", prop, source);
     },
   },
   created() {
@@ -138,45 +138,77 @@ export default {
       this.width = clientWidth;
     });
   },
-  mounted() { },
-  destroyed() { },
+  mounted() {},
+  destroyed() {},
 };
 </script>
 <template>
   <div ref="PopoverSelect" style="position: relative">
-    <el-input v-model="showValue" :size="size" :disabled="disabled" :clearable="clearable" :placeholder="placeholder"
-      readonly style="width: 100%; cursor: pointer" @click.native.stop="handleAsyncOpenDialog">
+    <el-input
+      v-model="showValue"
+      :size="size"
+      :disabled="disabled"
+      :clearable="clearable"
+      :placeholder="placeholder"
+      readonly
+      style="width: 100%; cursor: pointer"
+      @click.native.stop="handleAsyncOpenDialog"
+    >
       <template #suffix>
         <el-icon class="el-icon-more"></el-icon>
       </template>
     </el-input>
-    <div v-if="multiple && data.length" style="
+    <div
+      v-if="multiple && data.length"
+      style="
         position: absolute;
         left: 10px;
         top: 50%;
         transform: translateY(-50%);
         padding-right: 30px;
         overflow: hidden;
-      ">
+      "
+    >
       <div style="width: 150px; display: flex">
-        <el-popover :offset="-10" :width="width" :visible-arrow="false" title="" content="" trigger="click"
-          placement="bottom-start">
+        <el-popover
+          :offset="-10"
+          :width="width"
+          :visible-arrow="false"
+          title=""
+          content=""
+          trigger="click"
+          placement="bottom-start"
+        >
           <el-tag slot="reference" :size="size" style="margin-right: 10px">
             + {{ data.length }}
           </el-tag>
-          <el-tag v-for="(item, index) in data" :size="size" hit closable style="
+          <el-tag
+            v-for="(item, index) in data"
+            :size="size"
+            hit
+            closable
+            style="
               display: flex;
               justify-content: space-between;
               align-items: center;
               margin: 0 0 5px 0;
-            " @close="handleDelete(index)">
+            "
+            @close="handleDelete(index)"
+          >
             {{ item.name }}
           </el-tag>
         </el-popover>
       </div>
     </div>
-    <table-dialog v-model="data" ref="TableDialogFef" :type="type" :title="title" :multiple="multiple"
-      :queryParams="queryParams" @confirm="handleAdd"></table-dialog>
+    <table-dialog
+      v-model="data"
+      ref="TableDialogFef"
+      :type="type"
+      :title="title"
+      :multiple="multiple"
+      :queryParams="queryParams"
+      @confirm="handleAdd"
+    ></table-dialog>
   </div>
 </template>
 <style scoped></style>

+ 2 - 0
src/components/popover-tree-select/index.vue

@@ -126,6 +126,8 @@ export default {
         }
         this.$emit("update:source", source);
       }
+      //
+      this.$emit("change", prop, source);
     },
   },
   created() {

+ 4 - 0
src/views/purchase/task/index.vue

@@ -134,6 +134,9 @@ export default {
       await setVisible(true);
       await beforeOpenDoSome(prop);
     },
+    handleCCCC(prop, source) {
+      console.log("CCCCCC", prop, source);
+    },
   },
 };
 </script>
@@ -228,6 +231,7 @@ export default {
               :placeholder="column.placeholder"
               :data-mapping="column.dataMapping"
               :query-params="column.queryParams(params)"
+              @change="handleCCCC"
             >
             </dr-popover-select>
           </el-form-item>