From 302858f921bed077ab54dd31102f086bfe1add3c Mon Sep 17 00:00:00 2001 From: haoxuan <haoxuan> Date: 星期三, 07 二月 2024 11:59:47 +0800 Subject: [PATCH] srm项目 系统参数设置的前端页面开发+增加相关路由+公共列表组件增加是否可以配置表头的逻辑 --- src/views/productManage/product/index.vue | 218 ++++++++++++++++++++++++++++++++---------------------- 1 files changed, 130 insertions(+), 88 deletions(-) diff --git a/src/views/productManage/product/index.vue b/src/views/productManage/product/index.vue index 6485e3e..4549c5c 100644 --- a/src/views/productManage/product/index.vue +++ b/src/views/productManage/product/index.vue @@ -1,37 +1,40 @@ <template> - <div class="rightContent"> - <div class="top"> - <div class="supplier-search"> - <SearchCommonView - ref="searchCommonView" - :search-options="searchOptions" - @searchClick="searchClick" - @resetClick="resetClick" + <div class="product-manage"> + <div class="filter"> + <div class="filter-card"> + <CommonSearch + :show-add="false" + :show-download="true" + :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 - ref="tableListRef" - :table-list="tableList" - @selCommonClick="selCommonClick" - @getSelectArray="getSelectArray" - > - <template slot="tableButton"> + </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"> <el-button @click="handleClick(scope.row)" type="text" size="small">缂栬緫</el-button> <el-button @click="delClick(scope.row.id)" type="text" size="small">鍒犻櫎</el-button> </template> </el-table-column> - </template> - </TableCommonView> + </template> --> + </TableCommonView> + </div> <div class="btn-pager"> <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" /> </div> - </template> + </div> </div> <!-- 鏂板缓/缂栬緫浜у搧 --> <AddProduct v-if="editConfig.visible" :add-common-config="editConfig" /> @@ -42,7 +45,7 @@ <script> import pageMixin from "@/components/makepager/pager/mixin/pageMixin" -import { getSalesLeadsList, getDeleteSalesLeads } from "@/api/client/salesLead" +import { getProductList, deleteProduct } from "@/api/productManage/product" import DetailProduct from "@/views/productManage/product/DetailProduct" import AddProduct from "@/views/productManage/product/AddProduct" @@ -54,8 +57,8 @@ computed: {}, data() { return { + searchText: "", tableList: {}, - selValueList: [], searchOptions: [], commonDetail: { visible: false, @@ -67,7 +70,19 @@ title: "鏂板缓", infomation: {} }, - search_map: {} + tableColumn: [ + { label: "浜у搧缂栫爜", prop: "number", min: 190, isCommonClick: true }, + { label: "浜у搧鍚嶇О", prop: "name", min: 130, default: true }, + { label: "渚涘簲鍟�", prop: "supplierName", min: 130 }, + { label: "浜у搧绫诲埆", prop: "productType", min: 130 }, + { label: "瑙勬牸", prop: "specifications", min: 130 }, + { label: "鍨嬪彿", prop: "modelNumber", min: 130 }, + { label: "鍗曚綅", prop: "unit", min: 60 }, + { label: "浠锋牸", prop: "purchasePrice", min: 130 }, + { label: "鏈�浣庡簱瀛�", prop: "minimumStock", min: 80 }, + { label: "鏈�楂樺簱瀛�", prop: "maximumStock", min: 80 } + ], + showCol: ["浜у搧缂栫爜", "浜у搧鍚嶇О", "渚涘簲鍟�", "浜у搧绫诲埆", "瑙勬牸", "浠锋牸", "鏈�浣庡簱瀛�", "鏈�楂樺簱瀛�"] } }, created() { @@ -75,23 +90,24 @@ this.getData() }, methods: { + 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: 190, isCommonClick: true }, - { label: "浜у搧鍚嶇О", prop: "name", min: 130 }, - { label: "渚涘簲鍟�", prop: "id", min: 130 }, - { label: "浜у搧绫诲埆", prop: "contact_phone", min: 130 }, - { label: "瑙勬牸", prop: "sales_resources", min: 130 }, - { label: "鍨嬪彿", prop: "province", min: 130 }, - { label: "鍗曚綅", prop: "sales_sources_id", min: 60 }, - { label: "浠锋牸", prop: "contact_phone1", min: 130 }, - { label: "鏈�浣庡簱瀛�", prop: "desc", min: 80 }, - { label: "鏈�楂樺簱瀛�", prop: "member_name", min: 80 } - ] + showcol: this.showCol, + allcol: [], + tableColumn: this.setColumnVisible(this.showCol) } + this.tableList.allcol = this.tableList.tableColumn.filter((ele) => !ele.default).map((ele) => ele.label) + this.searchOptions = [] for (let i = 0; i < this.tableList.tableColumn.length; i++) { const label = this.tableList.tableColumn[i].label @@ -99,40 +115,45 @@ this.searchOptions.push({ value: value, label: label }) } }, + selTableCol(val) { + this.showcol = val + this.tableList.tableColumn = this.setColumnVisible(val) + }, // 璇锋眰鏁版嵁 async getData() { - await getSalesLeadsList({ - search_map: this.search_map, + await getProductList({ + keyword: this.searchText, page: this.pagerOptions.currPage, pageSize: this.pagerOptions.pageSize - }) - .then((res) => { + }).then((res) => { + if (res.code === 200) { const list = res.data.list.map((item) => { return { ...item, - sales_resources: item.sales_sources.name, - member_name: item.member.username + supplierName: item.supplier.name, + supplierNumber: item.supplier.number } }) this.tableList.tableInfomation = list || [] - this.pagerOptions.totalCount = res.data.count - }) - .catch((err) => { - console.log(err) - }) + this.pagerOptions.totalCount = res.data.total + } + }) }, // 鎼滅储 - searchClick(val, content) { - console.log(val, content) - this.search_map = { - [val.value]: content - } + // searchClick(val, content) { + // console.log(val, content) + // this.getData(val.value, content) + // }, + + onFilterSearch(val) { + this.searchText = val ?? "" + this.pagerOptions.currPage = 1 this.getData() }, - resetClick() { - this.search_map = {} - this.getData() - }, + + // resetClick() { + // this.getData() + // }, // 鏂板缓 addBtnClick() { this.editConfig.visible = true @@ -143,37 +164,26 @@ console.log(row) this.editConfig.visible = true this.editConfig.title = "缂栬緫" + this.editConfig.infomation = { ...row } }, // 鍒犻櫎 - delClick() { - if (this.selValueList && this.selValueList.length > 0) { - this.$confirm("鏄惁纭鍒犻櫎?", "璀﹀憡", { - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - type: "warning" - }) - .then(() => { - console.log("dddd") - getDeleteSalesLeads({ ids: this.selValueList }).then((response) => { - if (response.code === 200) { - this.$message.success("鍒犻櫎鎴愬姛") - this.getData() - } else { - this.$message.warning("鍒犻櫎澶辫触") - } - }) - }) - .catch(() => {}) - } else { - this.$message.warning("璇疯嚦灏戦�夋嫨涓�鏉¤褰�") - } - }, - getSelectArray(val) { - this.selValueList = [] - const list = val.map((item) => { - return item.id + delClick(val) { + this.$confirm("鏄惁纭鍒犻櫎?", "璀﹀憡", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" }) - this.selValueList = list + .then(() => { + deleteProduct({ id: val }).then((response) => { + if (response.code === 200) { + this.$message.success("鍒犻櫎鎴愬姛") + this.getData() + } else { + this.$message.warning("鍒犻櫎澶辫触") + } + }) + }) + .catch(() => {}) }, // 璇︽儏 selCommonClick(row) { @@ -187,9 +197,37 @@ <!-- Add "scoped" attribute to limit CSS to this component only --> <style lang="scss" scoped> -.rightContent { - .top { - margin-bottom: 20px; +.product-manage { + height: 100%; + overflow: hidden; + .filter { + height: 80px; + display: flex; + align-items: center; + padding: 12px 20px 0 20px; + &-card { + height: 80px; + display: flex; + align-items: center; + box-sizing: border-box; + padding: 10px 20px; + flex: 1; + border-radius: 12px; + background-color: #fff; + } + } + .body { + box-sizing: border-box; + padding: 10px 20px; + border-radius: 12px; + height: calc(100% - 92px); + .body-card { + background-color: #fff; + border-radius: 12px; + height: 100%; + overflow: hidden; + } + .supplier-search { display: flex; align-items: center; @@ -198,6 +236,10 @@ margin-right: 20px; } } + .list-view { + height: calc(100% - 60px); + overflow: hidden; + } .btn-pager { display: flex; .page { -- Gitblit v1.8.0