From ac547f0629e21fa52ec0cb40f0ac59aaa6d573f4 Mon Sep 17 00:00:00 2001 From: yangfeng <wanwan926_4@163.com> Date: 星期二, 31 十月 2023 11:40:44 +0800 Subject: [PATCH] 重订货规则新建、更新、重订购接口联调及公共组件优化 --- src/views/productManage/reorderRules/index.vue | 195 ++++++++++++++++++++++++------------------------ 1 files changed, 97 insertions(+), 98 deletions(-) diff --git a/src/views/productManage/reorderRules/index.vue b/src/views/productManage/reorderRules/index.vue index a56a44c..9384663 100644 --- a/src/views/productManage/reorderRules/index.vue +++ b/src/views/productManage/reorderRules/index.vue @@ -10,19 +10,19 @@ @addCommonClick="addProductClick" @searchClick="getList" @discardBtnClick="discardBtnClick" - @applyBtnClick="applyBtnClick" /> </div> <div class="list-view"> <div class="table"> <CommonFormTableView ref="tablelistRef" - :isinventory="true" + :isReorder="true" :product-table-list="tableList" @inputContent="inputContent" @selLocationClick="selLocationClick" @selProductClick="selProductClick" @tableRowClick="tableRowClick" + @selRouteClick="selRouteClick" > <template slot="tableButton"> <el-table-column label="鎿嶄綔" width="180" align="center"> @@ -50,12 +50,7 @@ <script> import CommonFormTableView from "@/components/makepager/CommonFormTableView" import pageMixin from "@/components/makepager/pager/mixin/pageMixin" -import { - getInventoryAdjustmentList, - addInventoryAdjustment, - updateInventoryAdjustment, - finishInventoryAdjustment -} from "@/api/operate/inventoryAdjustment" +import { getReorderRuleList, addReorderRule, updateReorderRule, orderAgain } from "@/api/product/reorderRules" import { currentTime } from "@/common/config/index" export default { name: "ReorderRules", @@ -75,10 +70,13 @@ isRowClick: false, locationId: 0, productId: 0, - differenceAmount: 0, amount: 0, operationId: 0, - adjustAmount: 0 + minInventory: 0, + maxInventory: 0, + orderNumber: 0, + unit: "", + reorderId: 0 } }, created() { @@ -93,39 +91,44 @@ selectIndex: true, tableColumn: [ { label: "浜у搧", prop: "productName", product: true }, - { label: "浣嶇疆", prop: "locationName", location: true }, + { label: "浣嶇疆", prop: "locationName", defaultLocation: true }, { label: "鍦ㄥ簱鏁伴噺", prop: "amount" }, - { label: "棰勬祴", prop: "forecastAmount" }, + { label: "棰勬祴鏁伴噺", prop: "prediction" }, { label: "棣栭�夎矾绾�", prop: "route", route: true }, - { label: "鏈�灏忔暟閲�", prop: "minAmount", inputFloat: true }, - { label: "鏈�澶ф暟閲�", prop: "maxAmount", inputFloat: true }, - { label: "璁㈣喘", prop: "orderAmount", inputFloat: true }, + { label: "鏈�灏忔暟閲�", prop: "minInventory", inputFloat: true }, + { label: "鏈�澶ф暟閲�", prop: "maxInventory", inputFloat: true }, + { label: "璁㈣喘鏁伴噺", prop: "orderNumber", inputFloat: true }, { label: "璁¢噺鍗曚綅", prop: "unit" } ] } }, // 璇锋眰鏁版嵁 async getData() { - await getInventoryAdjustmentList({ + await getReorderRuleList({ page: this.pagerOptions.currPage, pageSize: this.pagerOptions.pageSize }).then((res) => { if (res.code === 200) { console.log(res) const list = res.data.map((item) => { - item.adjustAmount = 0 - let forecastAmount = 500 - let maxAmount = 600 + let orderNum = 0 + if (parseFloat(item.minInventory) - parseFloat(item.prediction) > 0) { + orderNum = this.caculateOrderNumber( + parseFloat(item.minInventory), + parseFloat(item.maxInventory), + parseFloat(item.prediction) + ) + } return { ...item, + productName: item.product.name, + locationName: item.location.name, isSet: false, isEdit: true, editable: true, isOrder: true, - forecastAmount: forecastAmount, - maxAmount: maxAmount, - adjustAmount: 0, - isView: maxAmount - forecastAmount > 0 ? true : false + isView: item?.minInventory - item?.prediction > 0 ? true : false, + orderNumber: orderNum } }) this.tableList.tableData = list || [] @@ -134,22 +137,42 @@ } }) }, + // 鎶�鏈璐暟閲� + caculateOrderNumber(minInventory, maxInventory, prediction) { + return maxInventory > minInventory ? maxInventory - prediction : minInventory - prediction + }, // 鎿嶄綔杈撳叆 inputContent(val, prop, row) { console.log(val, prop, row) - console.log(val - row.amount, "缁撴灉") - this.adjustAmount = val - row.amount - this.tableList.tableData[row.index].adjustAmount = this.adjustAmount - // this.differenceAmount = val - this.differenceAmount = val + if (prop === "minInventory") { + this.minInventory = val + if (parseFloat(this.minInventory) - parseFloat(this.prediction) > 0) { + this.orderNumber = this.caculateOrderNumber( + parseFloat(this.minInventory), + parseFloat(this.maxInventory), + parseFloat(this.prediction) + ) + } + } else if (prop === "maxInventory") { + this.maxInventory = val + if (parseFloat(this.minInventory) - parseFloat(this.prediction) > 0) { + this.orderNumber = this.caculateOrderNumber( + parseFloat(this.minInventory), + parseFloat(this.maxInventory), + parseFloat(this.prediction) + ) + } + } else if (prop === "orderNumber") { + this.orderNumber = val + } }, // 鏂板 addProductClick() { - console.log(this.tableData) console.log(this.addTitle) this.isSel() if (this.isNoProduct && this.addTitle === "鏂板缓") { - this.$refs.tablelistRef.getRuleList() + this.$refs.tablelistRef.getProductList() + this.$refs.tablelistRef.getLocationList() this.addTitle = "淇濆瓨" this.showDiscard = true this.isRowClick = false @@ -159,9 +182,11 @@ this.tableData.unshift({ countId: this.countId, amount: 0, - adjustAmount: 0, + minInventory: 0, productId: "", - differenceAmount: 0, + maxInventory: 0, + orderNumber: 0, + prediction: 0, locationId: 0, createDate: this.currentTime(), isSet: true, @@ -170,22 +195,13 @@ isOrder: true }) this.locationId = 0 - this.subLocationId = 0 - this.productCategoryId = 0 this.productId = 0 } else { this.addTitle = "鏂板缓" this.showDiscard = false - let requestUrl = this.currentRowId === 0 ? addInventoryAdjustment : updateInventoryAdjustment - - requestUrl({ - amount: this.amount, - // adjustAmount: this.adjustAmount, - differenceAmount: this.differenceAmount, - locationId: this.locationId, - operationId: this.operationId, - productId: this.productId - }) + let requestUrl = this.currentRowId === 0 ? addReorderRule : updateReorderRule + let params = this.saveParams() + requestUrl(params) .then((res) => { console.log(res) if (res.code === 200) { @@ -201,10 +217,25 @@ // } } }, + saveParams() { + return { + id: this.reorderId, + amount: this.amount, + locationId: this.locationId, + maxInventory: this.maxInventory, + minInventory: this.minInventory, + orderNumber: this.orderNumber, + prediction: this.prediction, + operationId: this.operationId, + productId: this.productId, + route: this.route, + unit: this.unit + } + }, // 鏄惁閫夋嫨浜у搧 isSel() { for (let i = 0; i < this.tableData.length; i++) { - if (this.tableData && this.tableData[i].productName.length === 0) { + if (this.tableData[i].productName?.length === 0) { this.isNoProduct = false break } else { @@ -214,67 +245,27 @@ }, // 鍙栨秷 discardBtnClick() { - this.tableList.tableData.forEach((item) => { - item.differenceAmount = 0 - item.adjustAmount = 0 - }) - this.tableList - if (this.isRowClick) { - this.tableData.map((item) => { - item.isEdit = true - }) - } else { - this.tableData.splice(0, 1) - } + this.getData() this.addTitle = "鏂板缓" this.showDiscard = false }, - // 搴旂敤鍏ㄩ儴 - applyBtnClick() { - console.log("搴旂敤鍏ㄩ儴") - }, - // 鍘嗗彶 - handleHistoryClick(row) { - this.isSel() - console.log(row) - if (this.isNoProduct) { - console.log("鍘嗗彶") - this.$router.push({ - name: "inventoryAdjustmentHistory", - params: { locationId: row.locationId, productId: row.productId, baseOperationType: row.baseOperationType } - }) + // 璁㈣喘涓�娆� + handleOrderOnceClick(row) { + let params = { + ...row } - }, - // 璁剧疆 - handleSetClick(scope) { - this.isSel() - if (this.isNoProduct) { - scope.row.isSet = !scope.row.isSet - } - }, - // 搴旂敤 - handleUseClick(row) { - // scope.row.isSet = !scope.row.isSet - finishInventoryAdjustment({ - locationProductAmountId: row.locationProductAmountId, - operationId: row.operationId, - productId: row.productId - }).then((res) => { - console.log(res) + orderAgain(params).then((res) => { if (res.code === 200) { - this.$message.success("搴旂敤鎴愬姛") + this.$message.success("璁㈣喘鎴愬姛") this.getData() } }) - }, - // 娓呴櫎 - handleCleanupClick(scope) { - scope.row.isSet = !scope.row.isSet }, // 琛岀偣鍑� tableRowClick(row, rowIndex) { this.locationId = row.locationId this.rowIndex = rowIndex + this.reorderId = row.id this.isSel() if (!this.isNoProduct && this.currentRowId === 0) { this.$message.error("璇峰畬鎴愬綋鍓嶆柊寤烘垨鍙栨秷鏂板缓") @@ -295,10 +286,13 @@ item.isEdit = true } }) - this.differenceAmount = row.differenceAmount + this.minInventory = row.minInventory this.amount = row.amount this.productId = row.productId - this.operationId = row.operationId + this.maxInventory = row.maxInventory + this.orderNumber = row.orderNumber + this.prediction = row.prediction + this.locationId = row.locationId } }, // 鎼滅储 @@ -307,15 +301,20 @@ this.pagerOptions.currPage = 1 this.getData() }, - // 閫夋嫨浣嶇疆鏂规硶 + // 閫変腑浣嶇疆鏂规硶 selLocationClick(item, prop) { console.log(item, prop) - this.locationId = item.value + this.locationId = item?.value ?? item?.id }, // 閫変腑浜у搧鏂规硶 selProductClick(item) { - console.log(item) this.productId = item.value + this.unit = item.unit + }, + // 閫変腑璺嚎鏂规硶 + selRouteClick(item, prop) { + console.log(item, prop) + this.route = item.label }, // 鑾峰彇褰撳墠鏃堕棿 currentTime() { -- Gitblit v1.8.0