From fe941b73b9496f6cfab1a8957f319f74ea09fe1d Mon Sep 17 00:00:00 2001
From: Huangxiaoqiang-03 <1247017146@qq.com>
Date: 星期一, 04 十一月 2024 17:34:32 +0800
Subject: [PATCH] 1

---
 代码管理/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue |  185 ++++++++++++++++++++++++++++++---------------
 1 files changed, 122 insertions(+), 63 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue"
index b47fd63..6622d7a 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue"
@@ -1,69 +1,48 @@
 <template>
   <div>
-    <vol-box
-      v-model="showDetialBox"
-      :lazy="true"
-      width="75%"
-      :padding="15"
-      title="鍗曟嵁鏄庣粏淇℃伅"
-    >
+    <vol-box v-model="showDetialBox" :lazy="true" width="75%" :padding="15" title="鍗曟嵁鏄庣粏淇℃伅">
       <div class="box-head">
-        <!-- <el-row>
-          <el-col :span="24">
-            <span>宸查�変腑 {{ true ? 1 : 0 }} 椤�</span>
-            <el-divider direction="vertical"></el-divider>
-            <el-button type="text" size="medium"
-              ><i class="el-icon-edit">鍏抽棴</i
-            ></el-button>
-          </el-col>
-        </el-row> -->
+        <el-alert :closable="false" style="width: 100%">
+          <el-row>
+            <el-col :span="16">
+              <span>宸查�変腑 {{ selection.length }} 椤�</span>
+            </el-col>
+            <el-col :span="8">
+              <el-link type="primary" size="small" style="float: right; height: 20px" @click="lockstocks">閿佸畾搴撳瓨</el-link>
+              <el-link type="primary" size="small" style="float: right; height: 20px; margin-right: 10px"
+                @click="outbound">鐩存帴鍑哄簱</el-link>
+              <el-link type="primary" size="small" style="float: right; height: 20px; margin-right: 10px"
+                @click="getData">鍒锋柊</el-link></el-col>
+          </el-row>
+        </el-alert>
       </div>
       <div class="box-table" style="margin-top: 1%">
-        <el-table
-          ref="singleTable"
-          :data="tableData"
-          style="width: 100%; height: 100%"
-          highlight-current-row
-          @current-change="handleCurrentChange"
-          height="500px"
-        >
-          <el-table-column
-            label="搴忓彿"
-            type="index"
-            fixed="left"
-            width="55"
-            align="center"
-          ></el-table-column>
-          <el-table-column
-            v-for="(item, index) in tableColumns.filter((x) => !x.hidden)"
-            :key="index"
-            :prop="item.prop"
-            :label="item.title"
-            :width="item.width"
-            align="center"
-          >
-            <template #default="scoped" v-if="item.type == 'icon'">
-              <el-tooltip
-                class="item"
-                effect="dark"
-                :content="item.title"
-                placement="bottom"
-                ><el-link
-                  type="primary"
-                  :disabled="getButtonEnable(item.prop, scoped.row)"
-                  @click="tableButtonClick(scoped.row, item)"
-                  ><i :class="item.icon" style="font-size: 22px"></i></el-link
-              ></el-tooltip>
+        <el-table ref="singleTable" :data="tableData" style="width: 100%; height: 100%" highlight-current-row
+          @current-change="handleCurrentChange" height="500px" @row-click="handleRowClick"
+          @selection-change="handleSelectionChange">
+          <el-table-column type="selection" width="55"> </el-table-column>
+          <el-table-column label="搴忓彿" type="index" fixed="left" width="55" align="center"></el-table-column>
+          <el-table-column v-for="(item, index) in tableColumns.filter((x) => !x.hidden)" :key="index" :prop="item.prop"
+            :label="item.title" :width="item.width" align="center">
+            <template #default="scoped">
+              <div v-if="item.type == 'icon'">
+                <el-tooltip class="item" effect="dark" :content="item.title" placement="bottom"><el-link type="primary"
+                    :disabled="getButtonEnable(item.prop, scoped.row)" @click="tableButtonClick(scoped.row, item)"><i
+                      :class="item.icon" style="font-size: 22px"></i></el-link></el-tooltip>
+              </div>
+
+              <div v-else-if="item.type == 'tag'">
+                <el-tag size="small">
+                  {{ getDictionary(scoped.row, item) }}
+                </el-tag>
+              </div>
             </template>
           </el-table-column>
         </el-table>
       </div>
     </vol-box>
     <stock-select ref="child" @parentCall="parentCall"></stock-select>
-    <selected-stock
-      ref="selectedStock"
-      @parentCall="parentCall"
-    ></selected-stock>
+    <selected-stock ref="selectedStock" @parentCall="parentCall"></selected-stock>
   </div>
 </template>
 <script>
@@ -79,6 +58,7 @@
       showDetialBox: false,
       flag: false,
       currentRow: null,
+      selection: [],
       tableData: [],
       tableColumns: [
         {
@@ -110,7 +90,7 @@
         {
           prop: "batchNo",
           title: "鎵规鍙�",
-          type: "tag",
+          type: "string",
           width: 90,
         },
         {
@@ -134,8 +114,9 @@
         {
           prop: "orderDetailStatus",
           title: "璁㈠崟鏄庣粏鐘舵��",
-          type: "string",
+          type: "tag",
           width: 180,
+          bindKey: "orderDetailStatusEnum"
         },
         {
           prop: "assignStock",
@@ -221,12 +202,14 @@
         allocation_type: "",
         allocation_state: "",
       },
+      dictionaryList: null,
     };
   },
   methods: {
     open(row) {
       this.row = row;
       this.showDetialBox = true;
+      this.getDictionaryData();
       this.getData();
     },
     getData() {
@@ -247,12 +230,43 @@
     tableButtonClick(row, column) {
       if (column.prop == "assignStock") {
         this.$refs.child.open(row);
-      }else{
+      } else {
         this.$refs.selectedStock.open(row);
       }
     },
-    assignStock() {},
-    viewDetail() {},
+    lockstocks() {
+      if (this.selection.length === 0) {
+        return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏");
+      }
+      var keys = this.selection.map((item) => item.id); // 鑾峰彇閫変腑琛岀殑id
+      this.http
+        .post("api/OutboundOrderDetail/LockOutboundStocks", keys, "鏁版嵁澶勭悊涓�")
+        .then((x) => {
+          if (!x.status) return this.$message.error(x.message);
+          this.$message.success("鎿嶄綔鎴愬姛");
+          this.showDetialBox = false;
+          this.$emit("parentCall", ($vue) => {
+            $vue.getData();
+          });
+        });
+    },
+    outbound() {
+      if (this.selection.length === 0) {
+        return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏");
+      }
+      var keys = this.selection.map((item) => item.id); // 鑾峰彇閫変腑琛岀殑id
+
+      this.http
+        .post("api/Task/GenerateOutboundTasks", keys, "鏁版嵁澶勭悊涓�")
+        .then((x) => {
+          if (!x.status) return this.$message.error(x.message);
+          this.$message.success("鎿嶄綔鎴愬姛");
+          this.showDetialBox = false;
+          this.$emit("parentCall", ($vue) => {
+            $vue.getData();
+          });
+        });
+    },
     setCurrent(row) {
       this.$refs.singleTable.setCurrentRow(row);
     },
@@ -261,7 +275,11 @@
     },
     getButtonEnable(propName, row) {
       if (propName == "assignStock") {
-        if (row.orderDetailStatus !== 0 && row.orderDetailStatus !== 60 && row.orderDetailStatus !== 70) {
+        if (
+          row.orderDetailStatus !== 0 &&
+          row.orderDetailStatus !== 60 &&
+          row.orderDetailStatus !== 70
+        ) {
           return true;
         } else {
           return false;
@@ -274,6 +292,45 @@
         return console.log("鎵╁睍缁勪欢闇�瑕佷紶鍏ヤ竴涓洖璋冩柟娉曟墠鑳借幏鍙栫埗绾ue瀵硅薄");
       }
       fun(this);
+    },
+    handleRowClick(row) {
+      this.$refs.singleTable.toggleRowSelection(row);
+    },
+    handleSelectionChange(val) {
+      this.selection = val;
+    },
+    getDictionaryData() {
+      if (this.dictionaryList) {
+        return;
+      }
+      var param = [];
+      this.tableColumns.forEach((x) => {
+        if (x.type == "tag" && x.bindKey != "") {
+          param.push(x.bindKey);
+        }
+      });
+      this.http
+        .post("api/Sys_Dictionary/GetVueDictionary", param, "鏌ヨ涓�")
+        .then((x) => {
+          if (x.length > 0) {
+            this.dictionaryList = x;
+          }
+        });
+    },
+    getDictionary(row, column) {
+      if (this.dictionaryList) {
+        var item = this.dictionaryList.find((x) => x.dicNo == column.bindKey);
+        if (item) {
+          var dicItem = item.data.find((x) => x.key == row[column.prop]);
+          if (dicItem) {
+            return dicItem.value;
+          } else {
+            return row[column.prop];
+          }
+        } else {
+          return row[column.prop];
+        }
+      }
     },
   },
 };
@@ -288,15 +345,17 @@
 .text-button:hover {
   background-color: #f0f9eb !important;
 }
+
 .el-table .warning-row {
   background: oldlace;
 }
-.box-table .el-table tbody tr:hover > td {
+
+.box-table .el-table tbody tr:hover>td {
   background-color: #d8e0d4 !important;
   /* color: #ffffff; */
 }
 
-.box-table .el-table tbody tr.current-row > td {
+.box-table .el-table tbody tr.current-row>td {
   background-color: #f0f9eb !important;
   /* color: #ffffff; */
 }

--
Gitblit v1.9.3