From f9dde5f2f75298ff2aa50f2f7ecff3b47ac570e9 Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期三, 18 十月 2023 11:05:33 +0800
Subject: [PATCH] Merge branch 'dev' of http://192.168.5.5:10010/r/web/WMS into wn

---
 src/components/makepager/CommonFormTableView.vue |  161 ++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 138 insertions(+), 23 deletions(-)

diff --git a/src/components/makepager/CommonFormTableView.vue b/src/components/makepager/CommonFormTableView.vue
index ff7f169..01f181d 100644
--- a/src/components/makepager/CommonFormTableView.vue
+++ b/src/components/makepager/CommonFormTableView.vue
@@ -1,9 +1,16 @@
 <template>
-  <div class="page-view">
-    <el-form ref="form" :model="tableList" :show-message="false" label-position="right">
+  <div class="page-view" :class="{ setHeight: isinventory || islistingrules }">
+    <el-form
+      ref="form"
+      :model="tableList"
+      :show-message="false"
+      label-position="right"
+      :class="{ setHeight: isinventory || islistingrules }"
+    >
       <el-table
         :data="tableList.tableData"
         style="width: 100%"
+        :class="{ setHeight: isinventory || islistingrules }"
         :header-cell-style="{ background: '#f1f3f8', color: '#000009' }"
         :row-class-name="tableRowClassName"
         @row-click="tableRowClick"
@@ -57,7 +64,7 @@
                     style="width: 80%"
                     @change="
                       (val) => {
-                        selProductClick(val)
+                        selProductNameClick(val)
                       }
                     "
                   >
@@ -78,7 +85,7 @@
                 :rules="[{ required: item.isRequird ? true : false, message: '杈撳叆涓嶈兘涓虹┖' }]"
               >
                 <span v-if="scope.row.isEdit">{{ scope.row[item.prop] }}</span>
-                <el-date-picker v-else v-model="scope.row[item.prop]" type="date" size="mini" style="width: 110px">
+                <el-date-picker v-else v-model="scope.row[item.prop]" type="date" size="mini" style="width: 100%">
                 </el-date-picker>
               </el-form-item>
               <el-form-item
@@ -140,16 +147,25 @@
               <!-- 浣嶇疆 -->
               <el-form-item v-else-if="item.location" label=" " :prop="'tableData.' + scope.$index + '.' + item.prop">
                 <div class="custom-name">
-                  <span v-if="scope.row.isEdit">{{ scope.row[item.prop] }}</span>
+                  <span v-if="scope.row.isEdit || scope.row.editable">{{ scope.row[item.prop] }}</span>
                   <el-select
                     v-else
                     v-model="scope.row[item.prop]"
                     placeholder="璇烽�夋嫨"
                     size="mini"
                     style="width: 80%"
-                    @change="selLocationClick"
+                    @change="
+                      (val) => {
+                        selLocationClick(val, item.prop)
+                      }
+                    "
                   >
-                    <el-option v-for="item in selLocationOptions" :key="item.id" :label="item.name" :value="item.name">
+                    <el-option
+                      v-for="(item, index) in selLocationOptions"
+                      :key="index"
+                      :label="item.name"
+                      :value="{ value: item.id, label: item.name }"
+                    >
                     </el-option>
                   </el-select>
                 </div>
@@ -157,7 +173,7 @@
               <!-- 浜у搧 -->
               <el-form-item v-else-if="item.product" label=" " :prop="'tableData.' + scope.$index + '.' + item.prop">
                 <div class="custom-name">
-                  <span v-if="scope.row.isEdit">{{ scope.row[item.prop] }}</span>
+                  <span v-if="scope.row.isEdit || scope.row.editable">{{ scope.row[item.prop] }}</span>
                   <el-select
                     v-else
                     v-model="scope.row[item.prop]"
@@ -174,7 +190,14 @@
                       v-for="item in productNameOptions"
                       :key="item.id"
                       :label="item.name"
-                      :value="{ value: item.id, label: item.name, amount: item.amount, unit: item.unit }"
+                      :value="{
+                        value: item.id,
+                        label: item.name,
+                        amount: item.amount,
+                        unit: item.unit,
+                        categoryId: item.categoryId,
+                        categoryName: item.categoryName
+                      }"
                     >
                     </el-option>
                   </el-select>
@@ -233,6 +256,7 @@
 import { getProductList } from "@/api/product/product"
 import { getLocationList } from "@/api/warehouseManage/warehouse"
 import { getCompanyList } from "@/api/common/other"
+import { getRuleList } from "@/api/operate/inventoryAdjustment"
 // import SelectCommonDialog from "@/views/other/commonDialog/SelectCommonDialog"
 export default {
   name: "CommmonFormTableView",
@@ -291,13 +315,14 @@
     }
   },
   created() {
-    this.getProductList()
     if (this.isinventory) {
-      this.getLocationList()
+      this.getRuleList()
+    } else {
+      this.getProductList()
     }
     if (this.islistingrules) {
       this.getLocationList()
-      this.getCompanyList()
+      // this.getCompanyList()
     }
     this.tableList = this.productTableList
   },
@@ -319,6 +344,20 @@
           if (res.data && res.data.length > 0) {
             this.productNameOptions = res.data
           }
+        }
+      })
+    },
+    // 搴撳瓨璋冩暣鑾峰彇浣嶇疆鍜屼骇鍝�
+    async getRuleList() {
+      await getRuleList({
+        locationId: 0,
+        productId: ""
+      }).then((res) => {
+        console.log(res)
+        if (res.code === 200) {
+          const list = res.data ? res.data : []
+          this.selLocationOptions = list.locationList
+          this.productNameOptions = list.productList
         }
       })
     },
@@ -344,8 +383,7 @@
         }
       })
     },
-    // 閫夋嫨浜у搧
-    selProductClick(item) {
+    selProductNameClick(item) {
       this.tableList.tableData.map((ite) => {
         if (ite.productName.label === item.label) {
           ite.productId = item.value
@@ -356,18 +394,52 @@
       })
       console.log(this.tableList.tableData)
     },
+    // 閫夋嫨浜у搧
+    selProductClick(item) {
+      console.log(item)
+      this.tableList.tableData.map((ite) => {
+        if (ite.productName.label === item.label) {
+          ite.productId = item.value
+          ite.productName = item.label
+          ite.categoryId = item.categoryId
+          ite.productCategory = item.categoryName
+          ite.amount = item.amount
+          ite.unit = item.unit
+        }
+      })
+      if (this.isinventory) {
+        getRuleList({
+          locationId: 0,
+          productId: item.value
+        }).then((res) => {
+          console.log(res)
+          if (res.code === 200) {
+            const list = res.data ? res.data : []
+            this.selLocationOptions = list.locationList
+          }
+        })
+      }
+      console.log(this.tableList.tableData)
+      this.$emit("selProductClick", item)
+    },
     // 閫夋嫨浣嶇疆
-    selLocationClick(item) {
+    selLocationClick(item, prop) {
       console.log(item)
       console.log(this.tableList.tableData)
-      // this.tableList.tableData.map((ite) => {
-      //   if (ite.location.label === item.label) {
-      //     ite.location = item.label
-      //   }
-      //   if (ite.subLocation.label === item.label) {
-      //     ite.subLocation = item.label
-      //   }
-      // })
+      if (this.isinventory) {
+        getRuleList({
+          locationId: item.value,
+          productId: ""
+        }).then((res) => {
+          console.log(res)
+          if (res.code === 200) {
+            const list = res.data ? res.data : []
+            // this.selLocationOptions = list.locationList
+            this.productNameOptions = list.productList
+          }
+        })
+      }
+      this.$emit("selLocationClick", item, prop)
     },
     // 閫夋嫨鍗曚綅/鐢ㄦ埛
     selCommonClick(item) {
@@ -469,8 +541,12 @@
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <style lang="scss" scoped>
+.setHeight {
+  height: 100%;
+}
 .page-view {
   min-width: 100px;
+
   .el-form-item {
     margin-bottom: 0;
     .custom-name {
@@ -504,4 +580,43 @@
     text-align: left;
   }
 }
+
+::v-deep .el-table .cell {
+  font-size: 12px;
+  line-height: 17px;
+  font-family: PingFangSC;
+  color: rgba(0, 0, 0, 0.9);
+  .el-button--text {
+    width: auto;
+    height: auto;
+    font-family: PingFangSC-Medium, sans-serif;
+  }
+}
+::v-deep .el-table .el-table__cell {
+  padding: 6px 0 !important;
+  height: 35px;
+  text-align: center;
+}
+
+::v-deep {
+  .el-table .cell .el-button--text.el-button--small {
+    padding: 4px 0;
+  }
+}
+
+::v-deep .el-table .el-table__cell {
+  padding: 6px 0 !important;
+  height: 35px;
+  text-align: center;
+}
+
+.overSpread1 {
+  width: 100%;
+  height: 100%;
+  position: fixed;
+  top: 0;
+  left: 0;
+  background: rgba(0, 0, 0, 0);
+  z-index: 10;
+}
 </style>

--
Gitblit v1.8.0