From 21d14a5080768c7ecd9cf0df05c064eaa5d5a7b8 Mon Sep 17 00:00:00 2001 From: yangfeng <wanwan926_4@163.com> Date: 星期四, 07 三月 2024 10:10:50 +0800 Subject: [PATCH] 采购管理订单页面和新增采购单页面修改 --- src/views/purchaseManage/purchase/index.vue | 211 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 200 insertions(+), 11 deletions(-) diff --git a/src/views/purchaseManage/purchase/index.vue b/src/views/purchaseManage/purchase/index.vue index 2c70931..40dcd7c 100644 --- a/src/views/purchaseManage/purchase/index.vue +++ b/src/views/purchaseManage/purchase/index.vue @@ -16,7 +16,7 @@ </div> <div class="body"> - <div class="body-card"> + <div class="content-top"> <div class="list-view"> <TableCommonView ref="tableListRef" @@ -72,6 +72,41 @@ <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" /> </div> </div> + <div class="content-bottom"> + <div class="bottom-tabs"> + <div + class="tab-pane" + @click="getTab(0)" + :style="{ + background: TabsIndex == 0 ? '#2a78fb' : '#F1F3F8', + color: TabsIndex == 0 ? '#fff' : '#666' + }" + > + 浜у搧淇℃伅 + </div> + <div + class="tab-pane" + @click="getTab(1)" + :style="{ + background: TabsIndex == 1 ? '#2a78fb' : '#F1F3F8', + color: TabsIndex == 1 ? '#fff' : '#666' + }" + > + 鏀惰揣淇℃伅 + </div> + </div> + <div class="list-view"> + <TableCommonView :loading="loading" :table-list="productTableList" @selTableCol="selBottomTableCol"> + <!-- <template slot="tableButton"> + <el-table-column label="鎿嶄綔" width="160" fixed="right"> + <template slot-scope="scope"> + <el-button @click="viewClick(scope.row)" type="text" size="small">鏌ョ湅</el-button> + </template> + </el-table-column> + </template> --> + </TableCommonView> + </div> + </div> </div> <!-- 鏂板缓/缂栬緫閿�鍞嚎绱� --> @@ -97,6 +132,29 @@ mixins: [pageMixin], computed: {}, data() { + // 浜у搧淇℃伅 + const productColumn = [ + { label: "浜у搧缂栧彿", prop: "number", default: true }, + { label: "浜у搧鍚嶇О", prop: "name" }, + { label: "瑙勬牸鍨嬪彿", prop: "desc" }, + { label: "閲囪喘鏁伴噺", prop: "purchaseAmount" }, + { label: "宸插彂璐ф暟閲�", prop: "margin" }, + { label: "宸插叆搴撴暟閲�", prop: "amount" }, + { label: "鍗曚綅", prop: "unit" }, + { label: "閲囪喘鍗曚环", prop: "price", price: true }, + { label: "浠风◣鍚堣", prop: "total", price: true } + ] + // 鏀惰揣淇℃伅 + const recriveColumn = [ + { label: "鍏ュ簱鍗曞彿", prop: "number", default: true }, + { label: "鏀惰揣浠撳簱", prop: "name" }, + { label: "浜у搧鍚嶇О", prop: "orderAmount" }, + { label: "浜у搧缂栫爜", prop: "invoice" }, + { label: "鏁伴噺", prop: "carrier" }, + { label: "鍏ュ簱鏃堕棿", prop: "waybill" }, + { label: "鏀惰揣浜�", prop: "warehouse" }, + { label: "鐘舵��", prop: "amount" } + ] return { purchaseStatusList: getDataByType("purchaseStatus"), tableLoading: false, @@ -127,7 +185,28 @@ { label: "缁忓姙浜�", prop: "handledBy", min: 130 }, { label: "鍒跺崟浜�", prop: "creator", min: 130 } ], - showCol: ["閲囪喘鍗曞彿", "閲囪喘鍗曞悕绉�", "鍗曟嵁绫诲瀷", "渚涘簲鍟嗗悕绉�", "閲囪喘鏁伴噺", "鏀惰揣浠撳簱", "缁忓姙浜�", "鍒跺崟浜�"] + showCol: ["閲囪喘鍗曞彿", "閲囪喘鍗曞悕绉�", "鍗曟嵁绫诲瀷", "渚涘簲鍟嗗悕绉�", "閲囪喘鏁伴噺", "鏀惰揣浠撳簱", "缁忓姙浜�", "鍒跺崟浜�"], + tableBottomColumn: [], + showBottomCol: [], + TabsIndex: "0", + productTableList: {}, + // 浜у搧淇℃伅 + productColumn: productColumn, + showProductCol: [ + "浜у搧缂栧彿", + "浜у搧鍚嶇О", + "瑙勬牸鍨嬪彿", + "閲囪喘鏁伴噺", + "宸插彂璐ф暟閲�", + "宸插叆搴撴暟閲�", + "鍗曚綅", + "閲囪喘鍗曚环", + "浠风◣鍚堣" + ], + // 鏀惰揣淇℃伅 + recriveColumn: recriveColumn, + showReceiveCol: ["鍏ュ簱鍗曞彿", "鏀惰揣浠撳簱", "浜у搧鍚嶇О", "浜у搧缂栧彿", "鏁伴噺", "鍏ュ簱鏃堕棿", "鏀惰揣浜�", "鐘舵��"], + loading: false } }, created() { @@ -169,8 +248,8 @@ return "--" } }, - setColumnVisible(showCol) { - return this.tableColumn.map((ele) => { + setColumnVisible(showCol, tableColumn) { + return tableColumn.map((ele) => { return { ...ele, isShowColumn: showCol.includes(ele.label) @@ -183,9 +262,13 @@ selectIndex: true, showcol: this.showCol, allcol: [], - tableColumn: this.setColumnVisible(this.showCol) + tableColumn: this.setColumnVisible(this.showCol, this.tableColumn) } this.tableList.allcol = this.tableList.tableColumn.filter((ele) => !ele.default).map((ele) => ele.label) + // bottom 浜у搧淇℃伅/鏀惰揣淇℃伅 + this.tableBottomColumn = this.productColumn + this.showBottomCol = this.showProductCol + this.setBottomList() }, selTableCol(val) { this.showcol = val @@ -406,6 +489,76 @@ setTimeout(() => { this.tableLoading = false }, 3000) + }, + // bom 鍒楄〃 + setBottomList() { + this.productTableList = { + selectIndex: true, + tableInfomation: [], + allcol: [], + showcol: this.showBottomCol, + tableColumn: this.setColumnVisible(this.showBottomCol, this.tableBottomColumn) + } + this.setTableList(this.productTableList) + }, + setTableList(tableList) { + tableList.allcol = tableList.tableColumn.filter((ele) => !ele.default).map((ele) => ele.label) + this.searchOptions = [] + for (let i = 0; i < tableList.tableColumn.length; i++) { + const label = tableList.tableColumn[i].label + const value = tableList.tableColumn[i].prop + this.searchOptions.push({ value: value, label: label }) + } + }, + // bottom 浜у搧淇℃伅 + selBottomTableCol(val) { + this.showcol = val + this.productTableList.tableColumn = this.setColumnVisible(val, this.tableBottomColumn) + }, + //鑾峰彇褰撳墠閫変腑璧勬簮鐨刬d + getTab(tab) { + this.TabsIndex = tab + if (this.TabsIndex == 0) { + // 浜у搧淇℃伅鍒楄〃 + this.tableBottomColumn = this.productColumn + this.showBottomCol = this.showProductCol + this.setBottomList() + this.getProductInventoryInfo(this.selectRow) + } else if (this.TabsIndex == 1) { + // 鏀惰揣淇℃伅鍒楄〃 + this.tableBottomColumn = this.recriveColumn + this.showBottomCol = this.showReceiveCol + this.setBottomList() + // if (this.selectRow.status == 1) { + // this.productTableList.tableInfomation = [] + // } else { + this.getProductInventoryInfo(this.selectRow) + // } + } + }, + // 鐘舵�� + getStatus(val) { + return val === 1 ? "寰呯‘璁�" : val === 2 ? "寰呭嚭搴�" : val === 3 ? "鍑哄簱瀹屾垚" : val === 4 ? "宸插叧闂�" : "--" + }, + // 鑾峰彇浜у搧/鏀惰揣淇℃伅 + async getProductInventoryInfo(row) { + console.log(row) + // if (this.TabsIndex == 0 || row.status == 1) { + // this.productTableList.tableInfomation = row.products || [] + // } else { + // if (row.number) { + // this.loading = true + // await getProductInventoryInfo(row.number) + // .then((res) => { + // this.productTableList.tableInfomation = res.data?.length > 0 ? res.data : [] + // this.loading = false + // }) + // .catch(() => { + // this.productTableList.tableInfomation = [] + // this.loading = false + // }) + // } + // } } } } @@ -438,15 +591,51 @@ padding: 10px 20px; border-radius: 12px; height: calc(100% - 92px); - &-card { + .content-top { background-color: #fff; border-radius: 12px; - height: 100%; - overflow: hidden; + min-height: 70px; + height: 48%; + position: relative; + .list-view { + height: calc(100% - 60px); + } } - .list-view { - height: calc(100% - 60px); - overflow: hidden; + .content-bottom { + .bottom-tabs { + height: 40px; + line-height: 40px; + background: #e6ecf2; + display: flex; + .tab-pane { + width: 100px; + margin-right: 20px; + font-size: 14px !important; + text-align: center; + cursor: pointer; + background: #2a78fb; + border-top-left-radius: 20px; + border-top-right-radius: 20px; + } + } + .lable-view { + background: #e6ecf2; + height: 40px; + line-height: 40px; + .name { + border-left: 4px solid #2a78fb; + padding-left: 10px; + } + } + background-color: #fff; + border-radius: 12px; + min-height: 70px; + height: calc(52% - 60px); + margin-top: 10px; + // padding: 10px 20px; + .list-view { + height: calc(100% - 10px); + } } .btn-pager { display: flex; -- Gitblit v1.8.0