From 5cea5a7c019514227cb0dd5be08b8ad71ac5a00d Mon Sep 17 00:00:00 2001
From: yangfeng <wanwan926_4@163.com>
Date: 星期四, 28 九月 2023 14:01:37 +0800
Subject: [PATCH] 修改库存调整和应用接口联调、库存调整和上架规则页面样式修改

---
 src/views/warehouseManage/listingRules/index.vue |   10 +
 src/components/makepager/TableCommonView.vue     |  168 ++++++++++-----------------
 src/api/operate/inventoryAdjustment.js           |   16 ++
 src/components/makepager/CommonFormTableView.vue |   15 ++
 src/views/operate/inventoryAdjustment/index.vue  |  140 ++++++++++++++---------
 5 files changed, 189 insertions(+), 160 deletions(-)

diff --git a/src/api/operate/inventoryAdjustment.js b/src/api/operate/inventoryAdjustment.js
index a30d00b..61a55b0 100644
--- a/src/api/operate/inventoryAdjustment.js
+++ b/src/api/operate/inventoryAdjustment.js
@@ -33,3 +33,19 @@
     data
   })
 }
+// 淇敼搴撳瓨璋冩暣
+export function updateInventoryAdjustment(data) {
+  return request({
+    url: "/api-wms/v1/locationProductAmount/update",
+    method: "post",
+    data
+  })
+}
+// 搴旂敤搴撳瓨璋冩暣
+export function finishInventoryAdjustment(data) {
+  return request({
+    url: "/api-wms/v1/locationProductAmount/finish",
+    method: "post",
+    data
+  })
+}
diff --git a/src/components/makepager/CommonFormTableView.vue b/src/components/makepager/CommonFormTableView.vue
index 099c275..e5a99d1 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%"
+        :height="isinventory || islistingrules ? 'calc(100% - 0px)' : ''"
         :header-cell-style="{ background: '#f1f3f8', color: '#000009' }"
         :row-class-name="tableRowClassName"
         @row-click="tableRowClick"
@@ -534,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 {
diff --git a/src/components/makepager/TableCommonView.vue b/src/components/makepager/TableCommonView.vue
index 8fcc0fe..70254b3 100644
--- a/src/components/makepager/TableCommonView.vue
+++ b/src/components/makepager/TableCommonView.vue
@@ -1,9 +1,6 @@
 <!-- eslint-disable vue/no-use-v-if-with-v-for -->
 <template>
-  <div
-    :class="{ 'table-view': true, table_height: !showSummary }"
-    v-loading="loading"
-  >
+  <div :class="{ 'table-view': true, table_height: !showSummary }" v-loading="loading">
     <el-table
       ref="table"
       border
@@ -25,15 +22,8 @@
       :summary-method="getSummaries"
       :show-summary="showSummary"
     >
-      <el-table-column v-if="tableList.selectBox" type="selection" width="40">
-      </el-table-column>
-      <el-table-column
-        v-if="tableList.selectIndex"
-        type="index"
-        label="搴忓彿"
-        width="50"
-      >
-      </el-table-column>
+      <el-table-column v-if="tableList.selectBox" type="selection" width="40"> </el-table-column>
+      <el-table-column v-if="tableList.selectIndex" type="index" label="搴忓彿" width="50"> </el-table-column>
       <el-table-column
         v-for="(item, i) in tableList.tableColumn"
         :key="i"
@@ -46,9 +36,7 @@
         v-if="item.isShowColumn"
       >
         <template slot-scope="scope">
-          <span v-if="item.price">{{
-            "锟�" + number_format(scope.row[item.prop], 2, ".", ",")
-          }}</span>
+          <span v-if="item.price">{{ "锟�" + number_format(scope.row[item.prop], 2, ".", ",") }}</span>
           <!-- 鐘舵�佹樉绀� -->
           <div v-else-if="item.status">
             <span
@@ -57,29 +45,22 @@
                 greenSlot: scope.row.status == '4',
                 redSlot: scope.row.status == '5',
                 blueSlot: scope.row.status == '3',
-                graySlot: scope.row.status == '1',
+                graySlot: scope.row.status == '1'
               }"
               >{{
-                item.isCallMethod
-                  ? item.getCallMethod(scope.row[item.prop], scope.row)
-                  : scope.row[item.prop]
+                item.isCallMethod ? item.getCallMethod(scope.row[item.prop], scope.row) : scope.row[item.prop]
               }}</span
             >
           </div>
           <!-- 璋冪敤鏂规硶鏄剧ず鏂囧瓧 -->
           <div v-else-if="item.isCallMethod">
-            <span>{{
-              item.getCallMethod(scope.row[item.prop], scope.row)
-            }}</span>
+            <span>{{ item.getCallMethod(scope.row[item.prop], scope.row) }}</span>
           </div>
           <!-- 灏忎簬褰撳墠鏃堕棿鏄剧ず涓嶅悓棰滆壊 -->
           <span
             v-else-if="item.date"
             :style="{
-              color:
-                new Date().getTime() > new Date(scope.row[item.prop]).getTime()
-                  ? '#D23F3A'
-                  : '#606266',
+              color: new Date().getTime() > new Date(scope.row[item.prop]).getTime() ? '#D23F3A' : '#606266'
             }"
             >{{ timeAgo(scope.row[item.prop]) }}</span
           >
@@ -93,18 +74,10 @@
             >{{ scope.row[item.prop] }}</span
           >
           <span v-else-if="item.propType == 'mulitple'">
-            {{
-              scope.row[item.prop][item.propTwo]
-                ? scope.row[item.prop][item.propTwo]
-                : "--"
-            }}
+            {{ scope.row[item.prop][item.propTwo] ? scope.row[item.prop][item.propTwo] : "--" }}
           </span>
           <span :class="item.className ? item.className : ''" v-else>{{
-            scope.row[item.prop]
-              ? scope.row[item.prop]
-              : scope.row[item.prop] === 0
-              ? scope.row[item.prop]
-              : "--"
+            scope.row[item.prop] ? scope.row[item.prop] : scope.row[item.prop] === 0 ? scope.row[item.prop] : "--"
           }}</span>
         </template>
       </el-table-column>
@@ -116,22 +89,15 @@
     <div class="overSpread1" v-show="iscolopen" @click="onMaskClick"></div>
     <div v-if="showCheckcol" class="styleBtn">
       <i @click="checkcol()" class="label">...</i>
-      <el-checkbox-group
-        v-model="showcolList"
-        v-show="iscolopen"
-        class="checkbox-group"
-        @change="selCeckBoxList"
-      >
-        <el-checkbox v-for="item in tableList.allcol" :label="item" :key="item"
-          >{{ item }}
-        </el-checkbox>
+      <el-checkbox-group v-model="showcolList" v-show="iscolopen" class="checkbox-group" @change="selCeckBoxList">
+        <el-checkbox v-for="item in tableList.allcol" :label="item" :key="item">{{ item }} </el-checkbox>
       </el-checkbox-group>
     </div>
   </div>
 </template>
 
 <script>
-import { timeago } from "@/common/config/index";
+import { timeago } from "@/common/config/index"
 export default {
   name: "TableCommonView",
   props: {
@@ -149,147 +115,146 @@
           highlight: false,
           tableColumn: [
             // table琛ㄥ崟
-            { label: "", prop: "", min: 200, tooltip: true },
-          ],
-        };
+            { label: "", prop: "", min: 200, tooltip: true }
+          ]
+        }
       },
       showcol: {
         typeof: Array,
-        default: () => [],
-      },
+        default: () => []
+      }
     },
     // 鍚堝苟鍗曞厓鏍�
     rowData: {
       type: Array,
       default: () => {
-        return [];
-      },
+        return []
+      }
     },
     // 鍔犺浇鐨刲oading
     loading: {
       type: Boolean,
-      default: false,
+      default: false
     },
     // 閫変腑鐨勬牱寮�
     selectClassRow: {
       type: Object,
       default: () => {
-        return {};
-      },
+        return {}
+      }
     },
     showCheckcol: {
       type: Boolean,
-      default: true,
+      default: true
     },
     showSummary: {
       type: Boolean,
-      default: false,
-    },
+      default: false
+    }
   },
   data() {
     return {
       iscolopen: false,
-      showcolList: this.tableList.showcol,
-    };
+      showcolList: this.tableList.showcol
+    }
   },
   watch: {},
   computed: {},
   beforeUpdate() {},
   methods: {
     onMaskClick() {
-      this.iscolopen = false;
+      this.iscolopen = false
     },
     // 鍚堝苟鍗曞厓鏍�
     objectSpanMethod({ row, column, rowIndex, columnIndex }) {
-      row;
-      column;
+      row
+      column
       if (this.rowData && this.rowData.length > 0) {
         // 浜у搧BOM 琛ㄦ牸鐗规畩澶勭悊 鍚堝苟鍗曞厓鏍�
         if (columnIndex < 5 || columnIndex == 9) {
-          const _row = this.rowData[rowIndex];
-          const _col = _row > 0 ? 1 : 0;
+          const _row = this.rowData[rowIndex]
+          const _col = _row > 0 ? 1 : 0
           return {
             rowspan: _row,
-            colspan: _col,
-          };
+            colspan: _col
+          }
         }
       }
     },
     tableRowClick(row) {
-      this.$emit("tableRowClick", row);
+      this.$emit("tableRowClick", row)
     },
     handleReserve(row) {
-      return row._id ? row._id : row.id;
+      return row._id ? row._id : row.id
     },
     handleSelectionChange(val) {
-      this.$emit("getSelectArray", val);
+      this.$emit("getSelectArray", val)
     },
     // 鍏叡璇︽儏
     selCommonClick(row) {
-      this.$emit("selCommonClick", row);
+      this.$emit("selCommonClick", row)
     },
     // 閫夋嫨鍒�
     checkcol() {
-      this.iscolopen = !this.iscolopen;
+      this.iscolopen = !this.iscolopen
     },
     closeCheckbox() {
-      let label = document.querySelector(".label");
+      let label = document.querySelector(".label")
       if (label) {
-        this.iscolopen = false;
+        this.iscolopen = false
       }
     },
     selCeckBoxList(val) {
-      this.$emit("selTableCol", val);
+      this.$emit("selTableCol", val)
     },
     // 鍗曢�夎鐩稿叧
     tableRowClassName({ row }) {
       if (Object.keys(this.selectClassRow).length > 0) {
         if (row.id == this.selectClassRow.id) {
-          return "onSelect";
+          return "onSelect"
         }
       }
-      this.$emit("tableRowClassName", row);
+      this.$emit("tableRowClassName", row)
     },
     timeAgo(val) {
-      return timeago(val);
+      return timeago(val)
     },
     //姹傚拰
     getSummaries(param) {
       if (this.tableList.countcol && this.tableList.countcol.length > 0) {
-        const { columns, data } = param;
-        const sums = [];
+        const { columns, data } = param
+        const sums = []
         columns.forEach((column, index) => {
           if (index === 0) {
-            sums[index] = " ";
-            return;
+            sums[index] = " "
+            return
           }
           this.tableList.countcol.forEach((countcols) => {
             if (column.label === countcols) {
-              const values = data.map((item) => Number(item[column.property]));
+              const values = data.map((item) => Number(item[column.property]))
               if (!values.every((value) => isNaN(value))) {
                 sums[index] = values.reduce((prev, curr) => {
-                  const value = Number(curr);
+                  const value = Number(curr)
                   if (!isNaN(value)) {
-                    return prev + curr;
+                    return prev + curr
                   } else {
-                    return prev;
+                    return prev
                   }
-                }, 0);
-                sums[index] =
-                  this.tableList.tableColumn[index - 1].unit + "" + sums[index];
+                }, 0)
+                sums[index] = this.tableList.tableColumn[index - 1].unit + "" + sums[index]
               } else {
-                sums[index] = "";
+                sums[index] = ""
               }
             } else {
-              return;
+              return
             }
-          });
-        });
-        return sums;
+          })
+        })
+        return sums
       }
-    },
-  },
-};
+    }
+  }
+}
 </script>
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
@@ -297,7 +262,7 @@
 .table_height {
   height: 100%;
 }
-.el-table__body-wrapper{
+.el-table__body-wrapper {
   height: 100%;
 }
 .table-view {
@@ -379,9 +344,6 @@
     border-top-left-radius: 12px;
     border-top-right-radius: 12px;
     overflow: auto;
-  }
-  .el-table__body-wrapper {
-    // height: ;
   }
 }
 </style>
diff --git a/src/views/operate/inventoryAdjustment/index.vue b/src/views/operate/inventoryAdjustment/index.vue
index 7596e4d..309916e 100644
--- a/src/views/operate/inventoryAdjustment/index.vue
+++ b/src/views/operate/inventoryAdjustment/index.vue
@@ -22,28 +22,29 @@
           @inputContent="inputContent"
           @selLocationClick="selLocationClick"
           @selProductClick="selProductClick"
+          @tableRowClick="tableRowClick"
         >
           <template slot="tableButton">
             <el-table-column label="鎿嶄綔" width="180" fixed="right" align="center">
               <template slot-scope="scope">
-                <span v-if="scope.row.isEdit" @click="handleHistoryClick(scope.row)" class="yes-cursor">
+                <span v-if="scope.row.isEdit" @click.stop="handleHistoryClick(scope.row)" class="yes-cursor">
                   <i class="el-icon-refresh-left"></i>
                   <span>鍘嗗彶</span>
                 </span>
                 <!-- <span v-if="scope.row.isSet" @click="handleSetClick(scope)" class="margin_left_5px">
                   <i class="el-icon-setting"></i>
                   <span>璁剧疆</span>
-                </span>
-                <template v-else>
-                  <span @click="handleUseClick(scope)" class="margin_left_5px">
+                </span> -->
+                <template v-if="scope.row.status === 3">
+                  <span @click.stop="handleUseClick(scope.row)" class="margin_left_5px">
                     <i class="el-icon-document"></i>
                     <span>搴旂敤</span>
                   </span>
-                  <span @click="handleCleanupClick(scope)" class="margin_left_5px">
+                  <!-- <span @click="handleCleanupClick(scope)" class="margin_left_5px">
                     <i class="el-icon-delete"></i>
                     <span>娓呴櫎</span>
-                  </span>
-                </template> -->
+                  </span> -->
+                </template>
               </template>
             </el-table-column>
           </template>
@@ -59,7 +60,12 @@
 <script>
 import CommonFormTableView from "@/components/makepager/CommonFormTableView"
 import pageMixin from "@/components/makepager/pager/mixin/pageMixin"
-import { getInventoryAdjustmentList, addInventoryAdjustment } from "@/api/operate/inventoryAdjustment"
+import {
+  getInventoryAdjustmentList,
+  addInventoryAdjustment,
+  updateInventoryAdjustment,
+  finishInventoryAdjustment
+} from "@/api/operate/inventoryAdjustment"
 import { currentTime } from "@/common/config/index"
 export default {
   name: "InventoryAdjustment",
@@ -80,7 +86,8 @@
       locationId: 0,
       productId: 0,
       differenceAmount: 0,
-      Amount: 0
+      Amount: 0,
+      operationId: 0
     }
   },
   created() {
@@ -134,12 +141,14 @@
     // 鏂板
     addProductClick() {
       console.log(this.tableData)
+      console.log(this.addTitle)
       this.isSel()
-      this.$refs.tablelistRef.getRuleList()
       if (this.isNoProduct && this.addTitle === "鏂板缓") {
+        this.$refs.tablelistRef.getRuleList()
         this.addTitle = "淇濆瓨"
         this.showDiscard = true
         this.isRowClick = false
+        this.operationId = 0
         this.currentRowId = 0
         this.countId++
         this.tableData.push({
@@ -160,34 +169,29 @@
         this.productCategoryId = 0
         this.productId = 0
       } else {
-        if (this.locationId === 0) {
-          this.$message.error("璇烽�夋嫨浣嶇疆")
-        } else if (this.productId === 0) {
-          this.$message.error("璇烽�夋嫨浜у搧")
-        } else {
-          this.addTitle = "鏂板缓"
-          this.showDiscard = false
-          // let requestUrl = this.currentRowId === 0 ? addInventoryAdjustment : updateListingRules
-          addInventoryAdjustment({
-            // id: this.currentRowId,
-            locationId: this.locationId,
-            Amount: this.Amount,
-            differenceAmount: this.differenceAmount,
-            productId: this.productId
-          })
-            .then((res) => {
-              console.log(res)
-              if (res.code === 200) {
-                // let tipStr = this.currentRowId === 0 ? "娣诲姞鎴愬姛" : "淇敼鎴愬姛"
-                this.$message.success("娣诲姞鎴愬姛")
-                this.getData()
-              }
-            })
-            .catch((err) => {
-              console.log(err)
+        this.addTitle = "鏂板缓"
+        this.showDiscard = false
+        let requestUrl = this.currentRowId === 0 ? addInventoryAdjustment : updateInventoryAdjustment
+        requestUrl({
+          Amount: this.Amount,
+          differenceAmount: this.differenceAmount,
+          locationId: this.locationId,
+          operationId: this.operationId,
+          productId: this.productId
+        })
+          .then((res) => {
+            console.log(res)
+            if (res.code === 200) {
+              let tipStr = this.currentRowId === 0 ? "娣诲姞鎴愬姛" : "淇敼鎴愬姛"
+              this.$message.success(tipStr)
               this.getData()
-            })
-        }
+            }
+          })
+          .catch((err) => {
+            console.log(err)
+            this.getData()
+          })
+        // }
       }
     },
     // 鏄惁閫夋嫨浜у搧
@@ -237,8 +241,19 @@
       }
     },
     // 搴旂敤
-    handleUseClick(scope) {
-      scope.row.isSet = !scope.row.isSet
+    handleUseClick(row) {
+      // scope.row.isSet = !scope.row.isSet
+      finishInventoryAdjustment({
+        locationProductAmountId: row.locationProductAmount,
+        operationId: row.operationId,
+        productId: row.productId
+      }).then((res) => {
+        console.log(res)
+        if (res.code === 200) {
+          this.$message.success("搴旂敤鎴愬姛")
+          this.getData()
+        }
+      })
     },
     // 娓呴櫎
     handleCleanupClick(scope) {
@@ -246,22 +261,31 @@
     },
     // 琛岀偣鍑�
     tableRowClick(row, rowIndex) {
-      console.log(row, rowIndex)
-      this.addTitle = "淇濆瓨"
-      this.showDiscard = true
-      this.isRowClick = true
+      console.log("11111")
       this.isSel()
-      if (!this.isNoProduct) {
-        this.tableData.splice(this.tableData.length - 1, 1)
-      }
-      this.tableData.map((item, index) => {
-        if (index === rowIndex) {
-          item.isEdit = false
-          item.editable = true
-        } else {
-          item.isEdit = true
+      if (!this.isNoProduct && this.currentRowId === 0) {
+        this.$message.error("璇峰畬鎴愬綋鍓嶆柊寤烘垨鍙栨秷鏂板缓")
+      } else {
+        this.currentRowId = row.id
+        this.addTitle = "淇濆瓨"
+        this.showDiscard = true
+        this.isRowClick = true
+        if (!this.isNoProduct) {
+          this.tableData.splice(this.tableData.length - 1, 1)
         }
-      })
+        this.tableData.map((item, index) => {
+          if (index === rowIndex) {
+            item.isEdit = false
+            item.editable = true
+          } else {
+            item.isEdit = true
+          }
+        })
+        this.differenceAmount = row.differenceAmount
+        this.Amount = row.Amount
+        this.productId = row.productId
+        this.operationId = row.operationId
+      }
     },
     // 鎼滅储
     getList(val) {
@@ -288,4 +312,12 @@
 </script>
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
-<style lang="scss" scoped></style>
+<style lang="scss" scoped>
+::v-deep {
+  .el-table {
+    border-top-left-radius: 12px;
+    border-top-right-radius: 12px;
+    overflow: auto;
+  }
+}
+</style>
diff --git a/src/views/warehouseManage/listingRules/index.vue b/src/views/warehouseManage/listingRules/index.vue
index b84d797..a42b2bc 100644
--- a/src/views/warehouseManage/listingRules/index.vue
+++ b/src/views/warehouseManage/listingRules/index.vue
@@ -342,4 +342,12 @@
 </script>
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
-<style lang="scss" scoped></style>
+<style lang="scss" scoped>
+::v-deep {
+  .el-table {
+    border-top-left-radius: 12px;
+    border-top-right-radius: 12px;
+    overflow: auto;
+  }
+}
+</style>

--
Gitblit v1.8.0