From cf6a4b874aed82592eea78294715c7c688f9b248 Mon Sep 17 00:00:00 2001 From: songshankun <songshankun@foxmail.com> Date: 星期五, 03 十一月 2023 14:50:31 +0800 Subject: [PATCH] Merge branch 'dev' into songshankun/add-token --- src/views/operate/inventoryAdjustment/index.vue | 376 +++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 273 insertions(+), 103 deletions(-) diff --git a/src/views/operate/inventoryAdjustment/index.vue b/src/views/operate/inventoryAdjustment/index.vue index 7d52d43..e97a63b 100644 --- a/src/views/operate/inventoryAdjustment/index.vue +++ b/src/views/operate/inventoryAdjustment/index.vue @@ -2,57 +2,93 @@ <div class="rightContent"> <div class="top"> <SearchCommonView - :add-title="'鏂板缓'" - :placeholder="'璇疯緭鍏ュ崟鍙�'" + :add-title="addTitle" + :show-discard="showDiscard" + :show-apply="false" + :placeholder="'璇疯緭鍏ヤ綅缃�/浜у搧'" :amount-view="false" - @addCommonClick="addBtnClick" + @addCommonClick="addProductClick" @searchClick="getList" + @discardBtnClick="discardBtnClick" + @applyBtnClick="applyBtnClick" /> </div> <div class="list-view"> <div class="table"> - <TableCommonView - ref="tableListRef" - :table-list="tableList" - :show-checkcol="false" + <CommonFormTableView + ref="tablelistRef" + :isinventory="true" + :product-table-list="tableList" + @inputContent="inputContent" + @selLocationClick="selLocationClick" + @selProductClick="selProductClick" @tableRowClick="tableRowClick" - ></TableCommonView> + > + <template slot="tableButton"> + <el-table-column label="鎿嶄綔" width="180" align="center"> + <template slot-scope="scope"> + <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-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"> + <i class="el-icon-delete"></i> + <span>娓呴櫎</span> + </span> --> + </template> + </template> + </el-table-column> + </template> + </CommonFormTableView> </div> <div class="btn-pager"> <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" /> </div> </div> - <!-- 鏂板缓/缂栬緫 --> - <AddDialog - v-if="editConfig.visible" - @refresh="refresh" - :positionList="tableList.tableInfomation" - :edit-common-config="editConfig" - /> </div> </template> <script> +import CommonFormTableView from "@/components/makepager/CommonFormTableView" import pageMixin from "@/components/makepager/pager/mixin/pageMixin" -import { getLocationList } from "@/api/warehouseManage/warehouse" -import AddDialog from "@/views/warehouseManage/position/AddDialog" -import { getDataByType } from "@/api/data" +import { + getInventoryAdjustmentList, + addInventoryAdjustment, + updateInventoryAdjustment, + finishInventoryAdjustment +} from "@/api/operate/inventoryAdjustment" +import { currentTime } from "@/common/config/index" export default { name: "InventoryAdjustment", props: {}, - components: { AddDialog }, + components: { CommonFormTableView }, mixins: [pageMixin], computed: {}, data() { return { + addTitle: "鏂板缓", + showDiscard: false, tableList: {}, + tableData: [], searchOptions: [], - editConfig: { - visible: false, - title: "鏂板缓", - infomation: {} - }, - positionTypeList: getDataByType("positionType") + countId: 0, + isNoProduct: true, // 娣诲姞鏄庣粏琛屾椂鏄惁鏈変骇鍝佹湭閫夋嫨 + isRowClick: false, + locationId: 0, + productId: 0, + differenceAmount: 0, + amount: 0, + operationId: 0, + adjustAmount: 0 } }, created() { @@ -62,73 +98,210 @@ methods: { setTable() { this.tableList = { - tableInfomation: [], - selectBox: true, - showcol: this.showcol, - allcol: [], - tableColumn: this.setTableColumn(this.showcol) + tableData: this.tableData, + selectBox: false, + selectIndex: true, + tableColumn: [ + { label: "浣嶇疆", prop: "locationName", location: true }, + { label: "浜у搧", prop: "productName", product: true }, + { label: "鍦ㄥ簱鏁伴噺", prop: "amount" }, + { label: "璁¢噺鍗曚綅", prop: "unit" }, + { label: "璁℃暟鐨勬暟閲�", prop: "differenceAmount", inputFloat: true }, + { label: "宸紓", prop: "adjustAmount" }, + { label: "鏃ユ湡", prop: "createDate" }, + { label: "鐢ㄦ埛", prop: "user", user: true } + ] } - let allcol = [] - for (let i = 0; i < this.tableList.tableColumn.length; i++) { - if (!this.tableList.tableColumn[i].default) { - const label = this.tableList.tableColumn[i].label - allcol.push(label) - } - } - this.tableList.allcol = allcol - }, - setTableColumn(showcol) { - console.log(showcol) - let tableColumn = [ - { - label: "浣嶇疆", - prop: "jointName", - isShowColumn: true, - default: true - }, - { - label: "浣嶇疆绫诲瀷", - prop: "type", - isShowColumn: true, - default: true, - conversion: true, - getStatus: this.getTypesList - } - ] - return tableColumn - }, - getTypesList(val) { - let string = "--" - if (val) { - for (let i in this.positionTypeList) { - if (this.positionTypeList[i].id == val) { - return this.positionTypeList[i].name - } - } - } - return string - }, - selTableCol(val) { - this.showcol = val - this.tableList.tableColumn = this.setTableColumn(val) }, // 璇锋眰鏁版嵁 async getData() { - await getLocationList({ - keyword: this.keyword, + await getInventoryAdjustmentList({ page: this.pagerOptions.currPage, pageSize: this.pagerOptions.pageSize }).then((res) => { if (res.code === 200) { - const list = res.data ? res.data : [] - this.tableList.tableInfomation = list + console.log(res) + const list = res.data.map((item) => { + item.adjustAmount = 0 + return { + ...item, + isSet: false, + isEdit: true, + editable: true, + adjustAmount: 0 + } + }) + this.tableList.tableData = list || [] + this.tableData = list || [] this.pagerOptions.totalCount = res.total } }) }, - refresh() { - this.pagerOptions.currPage = 1 + // 鎿嶄綔杈撳叆 + 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 + }, + // 鏂板 + addProductClick() { + console.log(this.tableData) + console.log(this.addTitle) + this.isSel() + 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.unshift({ + countId: this.countId, + amount: 0, + adjustAmount: 0, + productId: "", + differenceAmount: 0, + locationId: 0, + createDate: this.currentTime(), + isSet: true, + isEdit: false, + editable: false + }) + 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 + }) + .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() + }) + // } + } + }, + // 鏄惁閫夋嫨浜у搧 + isSel() { + for (let i = 0; i < this.tableData.length; i++) { + if (this.tableData[i].productName?.length === 0) { + this.isNoProduct = false + break + } else { + this.isNoProduct = true + } + } + }, + // 鍙栨秷 + discardBtnClick() { this.getData() + // 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.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 } + }) + } + }, + // 璁剧疆 + 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) + if (res.code === 200) { + this.$message.success("搴旂敤鎴愬姛") + this.getData() + } + }) + }, + // 娓呴櫎 + handleCleanupClick(scope) { + scope.row.isSet = !scope.row.isSet + }, + // 琛岀偣鍑� + tableRowClick(row, rowIndex) { + this.locationId = row.locationId + this.rowIndex = rowIndex + this.isSel() + 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) { @@ -136,34 +309,31 @@ this.pagerOptions.currPage = 1 this.getData() }, - // 琛岀偣鍑� - tableRowClick(row) { - console.log(row) - this.editConfig.title = "缂栬緫" - this.editConfig.infomation = { ...row } - this.editConfig.infomation.parentId = Number(this.editConfig.infomation.parentId) - this.editConfig.visible = true + // 閫夋嫨浣嶇疆鏂规硶 + selLocationClick(item, prop) { + console.log(item, prop) + this.locationId = item.value }, - // 鏂板缓 - addBtnClick() { - this.editConfig.infomation = { - name: "", - parentId: null, - type: 3, - isScrapLocation: null, - isReturnLocation: null, - replenishLocation: null, - countFrequency: 0, - recentlyCount: "", - nextCount: "", - notes: "" - } - this.editConfig.visible = true - this.editConfig.title = "鏂板缓" + // 閫変腑浜у搧鏂规硶 + selProductClick(item) { + console.log(item) + this.productId = item.value + }, + // 鑾峰彇褰撳墠鏃堕棿 + currentTime() { + return currentTime() } } } </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