From 02b7655966b254a1c2b9f59006d52deb71aff3f4 Mon Sep 17 00:00:00 2001 From: yangfeng <wanwan926_4@163.com> Date: 星期二, 14 十一月 2023 11:30:49 +0800 Subject: [PATCH] 选择供应商组件优化、列表公共组件优化、创建采购单 --- src/views/purchaseManage/purchase/index.vue | 209 ++++++++++++++++++++++++++++++--------------------- 1 files changed, 123 insertions(+), 86 deletions(-) diff --git a/src/views/purchaseManage/purchase/index.vue b/src/views/purchaseManage/purchase/index.vue index 9154e05..4a12b42 100644 --- a/src/views/purchaseManage/purchase/index.vue +++ b/src/views/purchaseManage/purchase/index.vue @@ -1,46 +1,52 @@ <template> - <div class="rightContent"> - <div class="content-box" v-loading="tableLoading"> - <div class="supplier-search"> - <SearchCommonView - ref="searchCommonView" - :inputSelect="false" - placeholder="鍙緭鍏ヤ緵搴斿晢,鐗╂枡,閲囪喘鍗曠瓑鎼滅储" - @searchClick="searchClick" - @resetClick="resetClick" + <div class="purchase" v-loading="tableLoading"> + <div class="filter"> + <div class="filter-card"> + <CommonSearch + :show-add="true" + add-title="鏂板缓" + @addCommonClick="addBtnClick" + :show-download="false" + :amount-view="false" + :show-action-btn="false" + :placeholder="'璇疯緭鍏ヤ緵搴斿晢/鐗╂枡/閲囪喘鍗曠瓑'" + @searchClick="onFilterSearch" /> - <div class="add-view"> - <el-button type="primary" size="mini" @click="addBtnClick">鏂板缓</el-button> - </div> </div> - <template> - <TableCommonView - class="content-table" - ref="tableListRef" - :table-list="tableList" - @selCommonClick="selCommonClick" - > - <template slot="tableButton"> - <el-table-column label="鐘舵��" width="120"> - <template slot-scope="scope"> - {{ getpurchaseStatus(scope.row.status) }} - </template> - </el-table-column> - <el-table-column label="鎿嶄綔" width="120" fixed="right"> - <template slot-scope="scope"> - <el-button type="text" size="small" @click="editClick(scope.row)" style="margin-right: 5px" + </div> + + <div class="body"> + <div class="body-card"> + <div class="list-view"> + <TableCommonView + ref="tableListRef" + :table-list="tableList" + @selCommonClick="selCommonClick" + @selTableCol="selTableCol" + > + <template slot="tableButton"> + <el-table-column label="鐘舵��" width="120"> + <template slot-scope="scope"> + {{ getpurchaseStatus(scope.row.status) }} + </template> + </el-table-column> + <el-table-column label="鎿嶄綔" width="120" fixed="right"> + <template slot-scope="scope"> + <el-button type="text" size="small" @click="editClick(scope.row)" style="margin-right: 5px" >缂栬緫</el-button - > - <el-button @click="submitClick(scope.row)" type="text" size="small">鎻愪氦</el-button> - </template> - </el-table-column> - </template> - </TableCommonView> + > + <el-button v-if="scope.row.status< 4" @click="submitClick(scope.row)" type="text" size="small">鎻愪氦</el-button> + </template> + </el-table-column> + </template> + </TableCommonView> + </div> <div class="btn-pager"> <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" /> </div> - </template> + </div> </div> + <!-- 鏂板缓/缂栬緫閿�鍞嚎绱� --> <!-- <AddSalesLeadDialog v-if="editSalesLeadConfig.visible" :edit-rightContent-config="editSalesLeadConfig" /> --> @@ -57,6 +63,7 @@ import DetailSupplier from "@/views/purchaseManage/purchase/DetailSupplier" import AddPurchase from "@/views/purchaseManage/purchase/components/AddPurchase" import { getDataByType } from "@/api/data" +import { getSupplierList } from "@/api/supplierManage/supplier" export default { name: "SupplierManage", props: {}, @@ -77,14 +84,28 @@ editConfig: { visible: false, title: "鍒涘缓", - infomation: {} + infomation: { + supplierList:[] + } }, - purchaseStatusList: getDataByType("purchaseStatus") + purchaseStatusList: getDataByType("purchaseStatus"), + tableColumn: [ + { label: "閲囪喘鍗曞彿", prop: "number", min: 150, isCommonClick: true ,default:true}, + { label: "閲囪喘鍗曞悕绉�", prop: "name", min: 130, isCommonClick: true }, + { label: "鍗曟嵁绫诲瀷", prop: "orderType", min: 130 }, + { label: "渚涘簲鍟嗗悕绉�", prop: "contact", min: 130 }, + { label: "閲囪喘鏁伴噺", prop: "quantity", min: 130 }, + { label: "鏀惰揣浠撳簱", prop: "warehouse", min: 130 }, + { label: "缁忓姙浜�", prop: "handledBy", min: 130 }, + { label: "鍒跺崟浜�", prop: "creator", min: 130 } + ], + showCol: ['閲囪喘鍗曞彿', '閲囪喘鍗曞悕绉�', '鍗曟嵁绫诲瀷', '渚涘簲鍟嗗悕绉�', '閲囪喘鏁伴噺', '鏀惰揣浠撳簱'] } }, created() { this.setTable() this.getData() + this.getSupplierData() }, methods: { getpurchaseStatus(val) { @@ -98,21 +119,27 @@ return "--" } }, + setColumnVisible(showCol){ + return this.tableColumn.map(ele=>{ + return { + ...ele, + isShowColumn:showCol.includes(ele.label) + } + }) + }, setTable() { this.tableList = { tableInfomation: [], selectIndex: true, - tableColumn: [ - { label: "閲囪喘鍗曞彿", prop: "number", min: 150, isCommonClick: true }, - { label: "閲囪喘鍗曞悕绉�", prop: "name", min: 130, isCommonClick: true }, - { label: "鍗曟嵁绫诲瀷", prop: "orderType", min: 130 }, - { label: "渚涘簲鍟嗗悕绉�", prop: "contact", min: 130 }, - { label: "閲囪喘鏁伴噺", prop: "quantity", min: 130 }, - { label: "鏀惰揣浠撳簱", prop: "warehouse", min: 130 }, - { label: "缁忓姙浜�", prop: "handledBy", min: 130 }, - { label: "鍒跺崟浜�", prop: "creator", min: 130 } - ] + showcol: this.showCol, + allcol: [], + tableColumn:this.setColumnVisible(this.showCol) } + this.tableList.allcol = this.tableList.tableColumn.filter(ele=>!ele.default).map(ele=>ele.label); + }, + selTableCol(val) { + this.showcol = val; + this.tableList.tableColumn = this.setColumnVisible(val); }, // 璇锋眰鏁版嵁 async getData() { @@ -132,14 +159,24 @@ console.log(err) }) }, - // 鎼滅储 - searchClick(val, content) { - console.log(val, content) - this.search = content - this.getData() + // 鑾峰彇渚涘簲鍟嗘暟鎹� + async getSupplierData() { + await getSupplierList({ + // [val]: content, + page:1, + pageSize: 10 + }) + .then((res) => { + if (res.data.code == 200) { + this.editConfig.infomation.supplierList=res.data.data.list + + } + }) }, - resetClick() { - this.search = "" + // 鎼滅储 + onFilterSearch(searchText){ + this.search = searchText ?? '' + this.pagerOptions.currPage = 1 this.getData() }, // 鏂板缓 @@ -208,8 +245,9 @@ this.$message.warning("鎻愪氦澶辫触") } }) + },(e)=>{ + console.error(e) }) - .catch(() => {}) }, // 璇︽儏 @@ -238,41 +276,40 @@ <!-- Add "scoped" attribute to limit CSS to this component only --> <style lang="scss" scoped> -.rightContent { - width: 100%; - height: calc(100% - 10px); - .content-box { - height: 100%; - .supplier-search { +.purchase{ + height: 100%; + overflow: hidden; + background-color: transparent; + .filter{ + height: 80px; + display: flex; + align-items: center; + padding: 12px 20px 0 20px; + &-card{ + height: 80px; display: flex; align-items: center; - .add-view { - margin-left: auto; - margin-right: 20px; - } - } - .content-table { - // height:calc(100% - 60px - 42px); - } - .btn-pager { - display: flex; - // background: #fff; - .page { - margin-left: auto; - } + box-sizing: border-box; + padding: 10px 20px; + flex: 1; + border-radius: 12px; + background-color: #fff; } } - .bottom { - .product-search { - display: flex; - align-items: center; - .search { - margin-left: auto; - } - .add-view { - margin-left: 20px; - margin-right: 20px; - } + .body{ + box-sizing: border-box; + padding: 10px 20px; + border-radius: 12px; + height: calc(100% - 92px); + &-card { + background-color: #fff; + border-radius: 12px; + height: 100%; + overflow: hidden; + } + .list-view { + height: calc(100% - 60px); + overflow: hidden; } .btn-pager { display: flex; -- Gitblit v1.8.0