From 04489cc3864aa38fde8b539aee6c4c9eed6ab1d4 Mon Sep 17 00:00:00 2001 From: yangfeng <wanwan926_4@163.com> Date: 星期四, 28 九月 2023 14:35:35 +0800 Subject: [PATCH] 解决产品列表报错 --- src/views/reportForm/inventoryReport/index.vue | 374 +++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 278 insertions(+), 96 deletions(-) diff --git a/src/views/reportForm/inventoryReport/index.vue b/src/views/reportForm/inventoryReport/index.vue index d65260c..6bd8e38 100644 --- a/src/views/reportForm/inventoryReport/index.vue +++ b/src/views/reportForm/inventoryReport/index.vue @@ -1,35 +1,88 @@ +<!-- 搴撳瓨鎶ヨ〃 --> <template> <div class="rightContent"> <div class="top"> <SearchCommonView :add-title="'鏂板缓'" - :showAdd="false" :placeholder="'璇疯緭鍏ュ弬鑰�'" :amount-view="false" @addCommonClick="addBtnClick" @searchClick="getList" + :isDisabled="true" /> </div> - <div class="list-view"> - <TableCommonView - ref="tableListRef" - :table-list="tableList" - @selTableCol="selTableCol" - @tableRowClick="tableRowClick" - ></TableCommonView> - <div class="btn-pager"> - <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" /> + + <div class="content_wrap"> + <div class="con_left"> + <p>浠撳簱</p> + <div class="stash"> + <template> + <el-radio + v-for="(item, index) in warehouseList" + :key="index" + v-model="stashRadio" + :label="item.name" + @change="radioHandleChange" + >{{ item.name }}</el-radio + > + <!-- <el-radio v-model="stashRadio" label="2">澶囬�夐」</el-radio> --> + </template> + </div> + <p style="margin-top: 30px">绫诲埆</p> + <el-checkbox-group v-model="checkList" @change="checkListHandler"> + <el-checkbox v-for="item in categoryList" :key="item.id" :label="item.id">{{ item.name }}</el-checkbox> + </el-checkbox-group> + </div> + <div class="list-view"> + <div class="table"> + <TableCommonView + ref="tableListRef" + :table-list="tableList" + @selTableCol="selTableCol" + @tableRowClick="tableRowClick" + :showSummary="true" + > + <template slot="tableButton"> + <el-table-column label="鎿嶄綔" width="220" align="center"> + <template slot-scope="scope"> + <span @click="handleHistoryClick(scope.row)"> + <i class="el-icon-refresh-left"></i> + <span>鍘嗗彶</span> + </span> + <span @click="handleAddGoods(scope)" class="margin_left_5px"> + <i class="el-icon-refresh"></i> + <span>琛ヨ揣</span> + </span> + <template> + <span @click="handleLocation(scope)" class="margin_left_5px"> + <i class="el-icon-menu"></i> + <span>浣嶇疆</span> + </span> + <span @click="handleForecast(scope)" class="margin_left_5px"> + <i class="el-icon-s-data"></i> + <span>棰勬祴</span> + </span> + </template> + </template> + </el-table-column> + </template> + </TableCommonView> + </div> + <div class="btn-pager"> + <PagerView class="page" :pager-options="pagerOptions" :page-size="pageSizes" v-on="pagerEvents" /> + </div> </div> </div> - <!-- 缂栬緫 --> + + <!-- 缂栬緫 dialog--> <AddOverviewDialog v-if="editConfig.visible" :edit-common-config="editConfig" :add-name="this.$route.params.name" /> </div> </template> <script> import pageMixin from "@/components/makepager/pager/mixin/pageMixin" -import { getProductOperatonList } from "@/api/product/product" import AddOverviewDialog from "@/views/overview/AddOverviewDialog" +import { getInventoryData, getProductCategoryList, getWarehouseList } from "@/api/reportForm/inventoryRwport" export default { name: "InboundOutboundDetail", @@ -39,8 +92,38 @@ computed: {}, data() { return { + keyword: "", + checkList: [], + testArr: [], + testArr2: [ + { + product: "鍗楁柟涓濆发xxx", //浜у搧 + category: "涓濈桓鍒跺搧/鐪熶笣鐫¤", // 浜у搧绫诲埆 + cost: "100.00", //鍗曚綅鎴愭湰 + inStore: "12.00", // 鍦ㄥ簱 + totalPrices: 10, // 鎬讳环鍊� + availableStore: "0.00", //鍙敤搴撳瓨 + inStorage: "100.00", // 鍏ュ簱 + toStore: "20.00", // 鍑哄簱 + forecast: "0.00", //棰勬祴 + unit: "浠�" //鍗曚綅 + }, + { + product: "鍗楁柟涓濆发12306xxx", + category: "涓濈桓鍒跺搧/鐪熶笣鐫¤", + cost: "9980.00", + totalPrices: "0.00", + inStore: "10.00", + availableStore: "0.00", + inStorage: "0.00", + toStore: "0.00", + forecast: "0.00", + unit: "浠�" + } + ], tableList: {}, - showcol: ["鐘舵��"], + showcol: ["浜у搧绫诲埆", "鍗曚綅鎴愭湰", "鎬讳环鍊�", "鍏ュ簱", "鍑哄簱"], + countcol: ["鎬讳环鍊�", "鍦ㄥ簱", "鍙敤搴撳瓨", "鍏ュ簱", "鍑哄簱", "棰勬祴"], searchOptions: [], commonDetail: { visible: false, @@ -53,22 +136,50 @@ infomation: {} }, productId: this.$route.params.id, - productName: this.$route.params.name + productName: this.$route.params.name, + categoryList: [], // 绫诲埆 + categoryListId: [], //绫诲埆id + warehouseList: [], // 浠撳簱 + warehouseListName: "", // 浠撳簱鍚嶇О + stashRadio: "1", + pageSizes: [15, 30], + oldRadioBtn: "" } }, created() { this.setTable() - this.getData() + this.getData() //搴撳瓨鎶ヨ〃 + this.getStashData() // 浠撳簱鍒楄〃鏁版嵁 + this.getProductCategoryList() + }, + mounted() { + this.countSums() }, methods: { + checkListHandler(e) { + this.categoryListId = e + this.getData() + console.log(this.categoryListId, e, " 閫変腑鐨勪骇鍝乮d") + }, + radioHandleChange(e) { + this.warehouseListName = e + this.getData() + console.log(e, "鍗曢��") + }, setTable() { + if (this.isIconIndex === "1") { + this.pageSizes = [30, 60] + this.pagerOptions.pageSize = 30 + } this.tableList = { tableInfomation: [], selectBox: true, showcol: this.showcol, + countcol: this.countcol, allcol: [], tableColumn: this.setTableColumn(this.showcol) } + // this.tableList.tableInfomation = this.testArr; let allcol = [] for (let i = 0; i < this.tableList.tableColumn.length; i++) { if (!this.tableList.tableColumn[i].default) { @@ -81,63 +192,72 @@ setTableColumn(showcol) { let tableColumn = [ { - label: "鏃ユ湡", - prop: "operationDate", - isShowColumn: true, - default: true, - date: true - }, - { - label: "鍗曞彿", - prop: "number", - isShowColumn: true, - default: true - }, - { label: "浜у搧", prop: "productName", - isShowColumn: true, - default: true + default: true, + width: 300, + isShowColumn: true + // date: true, // 鏄惁涓烘棩鏈熸牸寮� }, { - label: "浠�", - prop: "from", - isShowColumn: true, - default: true + label: "浜у搧绫诲埆", + prop: "productType", + default: true, + isShowColumn: showcol.includes("浜у搧绫诲埆") }, { - label: "鑷�", - prop: "to", - isShowColumn: true, - default: true + label: "鍗曚綅鎴愭湰", + prop: "cost", + default: false, + isShowColumn: showcol.includes("鍗曚綅鎴愭湰") }, { - label: "鏁伴噺", + label: "鎬讳环鍊�", + prop: "value", + default: false, + isShowColumn: showcol.includes("鎬讳环鍊�"), + unit: "锟�" + }, + { + label: "鍦ㄥ簱", prop: "amount", + default: true, isShowColumn: true, - default: true + unit: "" + }, + { + label: "鍙敤搴撳瓨", + prop: "availableNumber", + default: true, + isShowColumn: true, + unit: "" + }, + { + label: "鍏ュ簱", + prop: "in", + default: false, + isShowColumn: showcol.includes("鍏ュ簱"), + unit: "" + }, + { + label: "鍑哄簱", + prop: "out", + isShowColumn: showcol.includes("鍑哄簱"), + default: false, + unit: "" + }, + { + label: "棰勬祴", + prop: "forecast", + isShowColumn: showcol.includes("棰勬祴"), + default: false, + unit: "" }, { label: "鍗曚綅", prop: "unit", - isShowColumn: true, - default: true - }, - { - label: "鐘舵��", - prop: "status", - width: 120, - isShowColumn: showcol.includes("鐘舵��"), - default: false, - status: true, - isCallMethod: true, - getCallMethod: this.getStatus - }, - { - label: "瀹屾垚鑰�", - prop: "admin", - isShowColumn: showcol.includes("瀹屾垚鑰�"), - default: false + default: true, + isShowColumn: true } ] return tableColumn @@ -146,46 +266,103 @@ this.showcol = val this.tableList.tableColumn = this.setTableColumn(val) }, - // 璇锋眰鏁版嵁 - async getData() { - await getProductOperatonList({ - productId: this.productId, - page: this.pagerOptions.currPage, - pageSize: this.pagerOptions.pageSize - }).then((res) => { - if (res.code === 200) { - const list = res.data.map((item) => { - return { - ...item, - from: item.fromLocation.name, - to: item.toLocation.name, - productName: this.productName - } - }) - this.tableList.tableInfomation = list || [] - this.pagerOptions.totalCount = res.total - } - }) - }, - // 鎼滅储 getList(val) { console.log(val) }, // 琛岀偣鍑� tableRowClick(row) { console.log(row) - this.editConfig.visible = true + // this.editConfig.visible = true; this.editConfig.title = "鏌ョ湅" this.editConfig.infomation = { ...row } }, // 鏂板缓 addBtnClick() { - this.editConfig.visible = true + // this.editConfig.visible = true; this.editConfig.title = "鏂板缓" + this.getData() }, // 鐘舵�� getStatus(val) { return val === 1 ? "鑽夌" : val === 3 ? "灏辩华" : "瀹屾垚" + }, + // 鍘嗗彶 + handleHistoryClick(row) { + console.log(row) + this.$router.push("/operate/allot") + }, + // 琛ヨ揣 + handleAddGoods(row) { + console.log(row) + }, + // 浣嶇疆 + handleLocation() { + this.$router.push("/reportForm/locationReport") + }, + // 棰勬祴 + handleForecast() {}, + //鎬讳环璁$畻 + countSums() { + this.testArr2.map((item) => { + let obj = { + product: item.product, //浜у搧 + category: item.category, // 浜у搧绫诲埆 + cost: item.cost, //鍗曚綅鎴愭湰 + inStore: item.inStore, // 鍦ㄥ簱 + totalPrices: item.cost * item.inStore, // 鎬讳环鍊� + availableStore: item.availableStore, //鍙敤搴撳瓨 + inStorage: item.inStorage, // 鍏ュ簱 + toStore: item.toStore, // 鍑哄簱 + forecast: item.forecast, //棰勬祴 + unit: item.unit //鍗曚綅 + } + this.testArr.push(obj) + console.log(this.testArr, "this") + }) + }, + + //鎺ュ彛璇锋眰----------------------------------------------------------------------------------------------- + // 鑾峰彇搴撳瓨鎶ヨ〃鏁版嵁 + async getData() { + let params = { + categoryIds: this.categoryListId, + page: this.pagerOptions.currPage, + pageSize: this.pagerOptions.pageSize, + warehouseCode: this.warehouseListName + } + await getInventoryData(params).then((res) => { + if (res.code === 200) { + console.log(res.data, "鎺ュ彛璇锋眰鎴愬姛") + const list = res.data + this.tableList.tableInfomation = list || [] + this.pagerOptions.totalCount = res.total + } + }) + }, + // 鑾峰彇浜у搧绫诲瀷鍒楄〃鏁版嵁 + async getProductCategoryList() { + await getProductCategoryList({ + keyWord: "", + page: this.pagerOptions.currPage, + pageSize: this.pagerOptions.pageSize + }).then((res) => { + if (res.code === 200) { + this.categoryList = res.data + } + }) + }, + // 璇锋眰浠撳簱鍒楄〃鏁版嵁 + async getStashData() { + await getWarehouseList({ + keyword: "", + page: this.pagerOptions.currPage, + pageSize: this.pagerOptions.pageSize + }).then((res) => { + if (res.data.code === 200) { + this.warehouseList = res.data.data + console.log(this.warehouseList, "warehouseList") + } + }) } } } @@ -193,18 +370,23 @@ <!-- Add "scoped" attribute to limit CSS to this component only --> <style lang="scss" scoped> -// .rightContent { -// height: 100%; -// background: #e6ecf2; -// padding: 10px; -// .top { -// margin-bottom: 20px; -// height: 60px; -// background: #fff; -// border-radius: 8px; -// } -// .list-view { -// height: calc(100% - 120px); -// } -// } +.content_wrap { + height: calc(100% - 0px); + display: flex; + justify-content: space-between; + .con_left { + width: 200px; + .el-checkbox-group { + display: flex; + flex-direction: column; + } + .stash { + display: flex; + flex-direction: column; + } + } + .list-view { + flex: 1; + } +} </style> -- Gitblit v1.8.0