From 9064b1351c62d3efafa66a83f9ff76ca87585d4e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9B=B9=E6=99=A8=E6=99=A8?= <ccc2020712@163.com>
Date: Sun, 23 Apr 2023 13:55:01 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=87=BA=E5=85=A5=E5=BA=93?=
 =?UTF-8?q?=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/views/inout/DialogCreateOrder.vue       | 51 +++++++++-------
 src/views/inout/DialogCreateOrderSelect.vue | 65 ++++++++++++++-------
 vue.config.js                               |  4 +-
 3 files changed, 75 insertions(+), 45 deletions(-)

diff --git a/src/views/inout/DialogCreateOrder.vue b/src/views/inout/DialogCreateOrder.vue
index 24ea270d..bc0a1f1f 100644
--- a/src/views/inout/DialogCreateOrder.vue
+++ b/src/views/inout/DialogCreateOrder.vue
@@ -188,11 +188,15 @@
         <el-row v-if="documentShow">
           <el-col :span="11">
             <el-form-item prop="acceptance" label="预验收单据:">
-              <el-input
-                style="width:90%"
-                :disabled="true"
-                v-model="orderFormData.checkPreInOrders"
-              ></el-input>
+              <el-select style="width: 90%" v-model="orderFormData.checkPreInOrders" multiple placeholder="请选入单据">
+                <el-option
+                  v-for="(item,index) in orderFormData.checkPreInOrders"
+                  :key="item.index"
+                  :label="item"
+                  :value="item"
+                >
+                </el-option>
+              </el-select>
             </el-form-item>
           </el-col>
         </el-row>
@@ -292,6 +296,7 @@
       <dialog-create-order-select
         @giveselectbox="giveselectbox"
         :closeDialogtwo="closeDialogtwo"
+        :checkPreInOrders="orderFormData.checkPreInOrders"
       >
       </dialog-create-order-select>
     </el-dialog>
@@ -399,9 +404,9 @@ export default {
         action: [
           { required: true, message: "请选择单据类型", trigger: "change" },
         ],
-        acceptance:[
-          {required: true, message: "请选入预验收单据", trigger: "blur"},
-        ]
+        acceptance: [
+          { required: true, message: "请选入预验收单据", trigger: "blur" },
+        ],
       },
       isScan: true,
       scanText: "扫码录入:",
@@ -430,8 +435,8 @@ export default {
       viewBizVisible: false,
       viewCodeVisible: false,
       viewCodeDetailVisible: false,
-     
-      documentShow:false,//控制预选单显示隐藏
+
+      documentShow: false, //控制预选单显示隐藏
     };
   },
   components: {
@@ -459,15 +464,16 @@ export default {
         })
         .catch(() => {});
     },
-    //接收预选单传值
+    //接收预验单传值
     giveselectbox(val) {
-      this.orderFormData.checkPreInOrders = val;
-    },
+      this.orderFormData.checkPreInOrders = JSON.parse(JSON.stringify(val))
+},
     //仓库改变
     changeInv() {
       this.orderFormData.action = null;
-      if(this.documentShow=true){
-        this.documentShow=false
+      this.orderFormData.checkPreInOrders=null
+      if ((this.documentShow = true)) {
+        this.documentShow = false;
       }
       this.getBusTypeByInv();
     },
@@ -547,6 +553,8 @@ export default {
 
     //单据类型改变
     actionChange(item) {
+      this.orderFormData.checkPreInOption=null
+      this.orderFormData.checkPreInOrders=null
       this.curAction = this.getActionItem(item);
       if (
         (this.curAction.checkEnable && this.curAction.checkWebNew) ||
@@ -568,14 +576,13 @@ export default {
         this.orderFormData.fromInvCode = null;
         this.findFromInvList();
       }
-      if(this.curAction.scanPreIn = true  &&  this.curAction.backPreinType == 1){
-        this.documentShow=true
-      }
-      else{
-        this.documentShow=false
+      if (
+        (this.curAction.scanPreIn = true && this.curAction.backPreinType == 1)
+      ) {
+        this.documentShow = true;
+      } else {
+        this.documentShow = false;
       }
-     this.giveselectbox();
-
     },
 
     //获取往来仓库列表
diff --git a/src/views/inout/DialogCreateOrderSelect.vue b/src/views/inout/DialogCreateOrderSelect.vue
index 74f699d3..e407bbd4 100644
--- a/src/views/inout/DialogCreateOrderSelect.vue
+++ b/src/views/inout/DialogCreateOrderSelect.vue
@@ -117,15 +117,20 @@
       <el-divider style="margin: 15px"></el-divider>
       <el-table
         ref="multipleTable"
-        @select="select"
+        @select-all="handleAll"
+        :header-cell-class-name="leftheaderStyle"
+        @selection-change="handleSelectionChange"
         v-loading="loading"
         :data="list"
         style="width: 100%"
         highlight-current-row
         border
-        @row-click="handleSelectionChange"
       >
-        <!-- <el-table-column type="selection" width="55"></el-table-column> -->
+        <el-table-column
+          type="selection"
+          :selectable="checkSelection"
+          width="55"
+        ></el-table-column>
         <el-table-column label="序号" type="index"></el-table-column>
         <el-table-column
           label="扫码单据类型"
@@ -245,6 +250,10 @@ export default {
       type: Function,
       required: true,
     },
+    checkPreInOrders: {
+      type: Array,
+      required: true,
+    },
   },
   data() {
     return {
@@ -361,8 +370,9 @@ export default {
       resultTotal: 0,
       resultDetailLoading: false,
       resultDetailList: [],
-      selectboxs: [],
-      selectbox: "",
+      multipleSelection: [],
+      selectbox: [],
+      selectRow: null,
     };
   },
   components: {},
@@ -402,20 +412,23 @@ export default {
     //选入
     combine() {
       this.closeDialogtwo();
-      this.$emit("giveselectbox", this.currentRow.billNo);
+      this.$emit("giveselectbox", this.selectbox);
     },
-    //   //选择
-    //   select(selection,row){
 
-    //     //   console.log(row);
-    //     this.selectboxs.push(row)
-    //     let nerArr = JSON.parse(JSON.stringify(this.selectboxs))
-    //      let qwe = nerArr.map(item=>{
-    //   // 每一项的单号
-    //   return item.billNo
-    // })
-    //     this.selectbox=qwe
-    //   },
+    //选择框根据已选入判断禁用方法
+    checkSelection(row, index) {
+      let flag = true;
+      if (this.checkPreInOrders.length === 0) {
+        flag = true;
+      } else {
+        if (this.checkPreInOrders.includes(row.billNo)) {
+          flag = false;
+        } else {
+          flag = true;
+        }
+      }
+      return flag;
+    },
     //关闭对话框
     closeLocalDialog() {},
     hideSearch() {
@@ -432,10 +445,21 @@ export default {
         })
         .catch(() => {});
     },
+    //多行勾选
     handleSelectionChange(val) {
-      this.currentRow = val;
-      console.log(this.currentRow.billNo);
-      this.getOrderDetails();
+      let checkboxs = JSON.parse(JSON.stringify(val));
+      this.multipleSelection = checkboxs.map((item) => {
+        return item.billNo;
+      });
+      let hebin = [...this.checkPreInOrders, ...this.multipleSelection];
+      let boxarry = Array.from(new Set(hebin));
+      this.selectbox = boxarry;
+    },
+    //全选
+    handleAll(selection) {
+      if(selection.length==0){
+           this.$refs.multipleTable.clearSelection()
+      }   
     },
     // 获取单据 业务详情、扫码详情、扫码明细
     getOrderDetails() {
@@ -726,4 +750,5 @@ export default {
 </script>
 
 <style type="text/scss" lang="scss">
+
 </style>
diff --git a/vue.config.js b/vue.config.js
index bf23e227..eef5677e 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -35,9 +35,7 @@ module.exports = {
     proxy: {
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
-
-
-        target: `http://192.168.0.66:9150/UDI_WMS_MC/`,
+        target: `http://192.168.0.166:9991/`,
         changeOrigin: true,
         pathRewrite: {
           ["^" + process.env.VUE_APP_BASE_API]: "",