From 05b72b58002a8733b8b31825ea5edabe7e279283 Mon Sep 17 00:00:00 2001 From: zuozhengqing <a13193816592@163.com> Date: 星期五, 22 三月 2024 18:56:14 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.5.5:10010/r/web/WMS --- src/views/other/commonDialog/SelectCommonDialog.vue | 212 +++++++++++++++++++++++++++++++++-------------------- 1 files changed, 132 insertions(+), 80 deletions(-) diff --git a/src/views/other/commonDialog/SelectCommonDialog.vue b/src/views/other/commonDialog/SelectCommonDialog.vue index 2b0b915..2385fe8 100644 --- a/src/views/other/commonDialog/SelectCommonDialog.vue +++ b/src/views/other/commonDialog/SelectCommonDialog.vue @@ -1,80 +1,93 @@ <template> <div class="edit-selClient-box"> <el-dialog - :title="editCommonConfig.title" :visible.sync="editConfig.editVisible" :width="dialogWidth" :before-close="handleClose" :append-to-body="true" :close-on-click-modal="false" > + <div slot="title" class="tac drawerHeader">{{ editCommonConfig.title }}</div> + <div class="bg-view"> <div class="query-bg"> - <!-- <el-input placeholder="璇疯緭鍏ュ唴瀹�" v-model="queryInput" size="mini" class="input-with-select"> - <el-select v-model="select" slot="prepend" placeholder="璇烽�夋嫨"> - <el-option v-for="item in commonOptions" :key="item.id" :label="item.name" :value="item.name"> - </el-option> - </el-select> - </el-input> --> - <SearchCommonView - ref="searchCommonView" - :search-options="searchOptions" - @searchClick="searchClick" - @resetClick="resetClick" - :search-sel="searchSel" - /> - <div class="btn"> - <!-- <el-button type="primary" size="mini" disabled>璁剧疆瀛楁</el-button> - <el-button type="primary" size="mini" disabled>蹇�熷垱寤�</el-button> --> - </div> + <el-input + v-model="bomParams.keyword" + placeholder="鎼滅储浜у搧鍚嶇О锛岀紪鐮佺瓑鍏抽敭璇�" + style="width: 60%; margin-right: 10px" + ></el-input> + <el-button type="primary" @click="searchClick">鏌ヨ</el-button> </div> - <TableCommonView ref="tableListRef" :table-list="tableList" :select-box="false" @selCommonClick="selNameClick"> + <TableCommonView + class="bg-list" + ref="tableListRef" + :loading="loading" + :table-list="tableList" + :select-box="editCommonConfig.isSelectBox" + @selCommonClick="selNameClick" + @selTableCol="selTableCol" + @getSelectArray="getSelectArray" + > </TableCommonView> <div slot="footer" class="dialog-footer"> - <div class="remark">璇存槑锛氭敮鎸佸瀛楁妯$硦鏌ヨ锛屼粎鏄剧ず绗﹀悎鏉′欢鐨勫墠5鏉℃暟鎹�</div> + <div class="btn-pager"> + <PagerView + class="page" + :pager-options="pagerOptions" + :pagerCount="pagerCount" + layout="total, sizes, prev, pager, next" + v-on="pagerEvents" + /> + </div> </div> + </div> + <div slot="footer" class="dialog-footer" v-if="editCommonConfig.isSelectBox"> + <el-button type="primary" @click="saveClick()">纭畾</el-button> + <el-button @click="editConfig.editVisible = false">鍙栨秷</el-button> </div> </el-dialog> </div> </template> <script> -// import { getProductListFromGrpc,getProductList } from "@/api/productManage/product" +import { getProductList } from "@/api/product/product" +import pageMixin from "@/components/makepager/pager/mixin/pageMixin" export default { name: "EditSelCommonDialog", + mixins: [pageMixin], props: { editCommonConfig: { type: Object, default: () => { return { editVisible: false, + isSelectBox: false, title: "", + clientId: 0, + isRequest: true, + client_name: "", tableInfomation: [] } } - }, - sign: { - type: String, - default: "" } }, components: {}, computed: {}, data() { return { - dialogWidth: "50%", + dialogWidth: "42rem", + pagerCount: 5, editConfig: this.editCommonConfig, - queryInput: "", - select: "鍏ㄩ儴瀛楁", - tableData: [], - searchSelOptions: [], loading: false, tableList: {}, - searchOptions: [], - search_map: {}, - searchSel: {}, - keyword: "", - keywordType: "" + showcolTop: ["浜у搧瑙勬牸", "浜у搧鍨嬪彿"], + selectArray: [], + bomParams: { + keyword: "", + page: 1, + pageSize: 10, + types: ["鍘熸潗鏂�", "鍗婃垚鍝�", "鎴愬搧"] + } } }, created() { @@ -83,22 +96,66 @@ }, methods: { setTable() { - if (this.editConfig.title === "浜у搧鍚嶇О") { - this.tableList = { - tableInfomation: [], - tableColumn: [ - { label: "浜у搧鍚嶇О", prop: "name", isClick: true }, - { label: "浜у搧缂栧彿", prop: "number" } - ] - } - this.searchSel = { value: "name", label: "浜у搧鍚嶇О" } + this.tableList = { + tableInfomation: [], + selectIndex: false, + selectBox: this.editCommonConfig.isSelectBox, + showcol: this.showcolTop, + allcol: [], + tableColumn: this.setTopTableColumn(this.showcolTop) } - this.searchOptions = [] + let allcol = [] for (let i = 0; i < this.tableList.tableColumn.length; i++) { - const label = this.tableList.tableColumn[i].label - const value = this.tableList.tableColumn[i].prop - this.searchOptions.push({ value: value, label: label }) + if (!this.tableList.tableColumn[i].default) { + const label = this.tableList.tableColumn[i].label + allcol.push(label) + } } + this.tableList.allcol = allcol + }, + setTopTableColumn(showcol) { + let tableColumn = [ + { + label: "浜у搧鍚嶇О", + prop: "name", + isShowColumn: true, + default: true, + isClick: true + }, + { + label: "浜у搧缂栫爜", + prop: "id", + min: 110, + isShowColumn: true, + default: true + }, + { + label: "浜у搧瑙勬牸", + prop: "specs", + isShowColumn: showcol.includes("浜у搧瑙勬牸"), + default: false + }, + { + label: "浜у搧鍨嬪彿", + prop: "type", + width: 90, + isShowColumn: showcol.includes("浜у搧鍨嬪彿"), + default: false + } + ] + return tableColumn + }, + selTableCol(val) { + this.showcolTop = val + this.tableList.tableColumn = this.setTopTableColumn(val) + }, + // 鍒楄〃澶氶�� + getSelectArray(val) { + this.selectArray = val + }, + saveClick() { + this.$emit("getSelectArray", this.selectArray) + this.editConfig.editVisible = false }, // 璇锋眰鏁版嵁 async getData() { @@ -109,21 +166,15 @@ }, // 浜у搧鍚嶇О async getProductList() { - // let fn = this.sign == "purchase" ? getProductList : getProductListFromGrpc; - let fn - await fn({ - page: 1, - pageSize: 100 - }).then((res) => { + this.bomParams.page = this.pagerOptions.currPage ? this.pagerOptions.currPage : 1 + this.bomParams.pageSize = this.pagerOptions.pageSize ? this.pagerOptions.pageSize : 15 + let params = JSON.parse(JSON.stringify(this.bomParams)) + await getProductList(params).then((res) => { console.log(res.data) - if (res.data.code === 200) { - if (res.data.data.list && res.data.data.list.length > 0) { - const list = res.data.data.list.map((item) => { - return { - ...item - } - }) - this.tableList.tableInfomation = list.slice(0, 5) || [] + if (res.code === 200) { + if (res.data) { + this.tableList.tableInfomation = res.data || [] + this.pagerOptions.totalCount = res.total ? res.total : 0 } else { this.tableList.tableInfomation = [] } @@ -135,25 +186,22 @@ this.editConfig.editVisible = false }, selNameClick(row) { + if (this.editCommonConfig.isSelectBox) { + return true + } this.editConfig.editVisible = false if (this.editConfig.title === "浜у搧鍚嶇О") { this.$emit("selClient", row, "productName") } }, // 鎼滅储 - searchClick(val, content) { - console.log(val, content) - this.search_map = { - [val.value]: content - } - this.keyword = content - this.keywordType = val.label + searchClick() { + this.bomParams.page = 1 + this.total = 0 this.getData() }, resetClick() { - this.search_map = {} this.keyword = "" - this.keywordType = "" this.getData() } } @@ -163,18 +211,18 @@ <!-- Add "scoped" attribute to limit CSS to this component only --> <style lang="scss" scoped> .bg-view { - margin: 10px; + .bg-list { + height: 370px; + } .query-bg { - margin-left: -20px; margin-bottom: 10px; - display: flex; - justify-content: space-between; .el-input { width: 310px; .el-select { width: 100px; } } + .btn { float: right; } @@ -185,13 +233,17 @@ cursor: pointer; } .dialog-footer { - height: 40px; - line-height: 40px; - color: red; + .btn-pager { + display: flex; + margin-top: 0px; + .page { + margin-left: auto; + } + } } ::v-deep { - .input-with-select .el-input-group__prepend { - background-color: #fff; + .el-dialog__body { + padding-bottom: 10px !important; } } </style> -- Gitblit v1.8.0