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