From b811e2fa4cdcb5949047faa78aa9299aec1d2f67 Mon Sep 17 00:00:00 2001 From: zuozhengqing <a13193816592@163.com> Date: 星期三, 27 三月 2024 15:08:45 +0800 Subject: [PATCH] 确认采购单接口换位post请求,产品列表字段替换 --- src/views/other/commonDialog/SelectCommonDialog.vue | 348 +++++++++++++++++---------------------------------------- 1 files changed, 105 insertions(+), 243 deletions(-) diff --git a/src/views/other/commonDialog/SelectCommonDialog.vue b/src/views/other/commonDialog/SelectCommonDialog.vue index 3090ad6..74d664a 100644 --- a/src/views/other/commonDialog/SelectCommonDialog.vue +++ b/src/views/other/commonDialog/SelectCommonDialog.vue @@ -28,42 +28,68 @@ <el-button type="primary" size="mini" disabled>蹇�熷垱寤�</el-button> --> </div> </div> - <TableCommonView ref="tableListRef" :table-list="tableList" :select-box="false" @selCommonClick="selNameClick"> + <TableCommonView + class="bg-list" + ref="tableListRef" + :table-list="tableList" + :select-box="editCommonConfig.isSelectBox" + :selectBoxList="selectBoxList" + @selCommonClick="selNameClick" + @selTableCol="selTableCol" + @getSelectArray="getSelectArray" + > </TableCommonView> <div slot="footer" class="dialog-footer"> - <div class="remark">璇存槑锛氭敮鎸佸瀛楁妯$硦鏌ヨ锛屼粎鏄剧ず绗﹀悎鏉′欢鐨勫墠5鏉℃暟鎹�</div> + <!-- <div class="remark">璇存槑锛氭敮鎸佸瀛楁妯$硦鏌ヨ锛屼粎鏄剧ず绗﹀悎鏉′欢鐨勫墠5鏉℃暟鎹�</div> --> + <div class="btn-pager"> + <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" /> + </div> </div> + </div> + <div slot="footer" class="dialog-footer" v-if="editCommonConfig.isSelectBox"> + <el-button type="primary" size="small" @click="saveClick()">纭畾</el-button> + <el-button size="small" @click="editConfig.editVisible = false">鍙栨秷</el-button> </div> </el-dialog> </div> </template> <script> -import { getMasterOrderList } from "@/api/sales/masterOrder" -import { getQuotationList } from "@/api/sales/quotation" -import { getSalesDetailsList } from "@/api/sales/salesDetails" -import { getServiceContractList } from "@/api/serviceManage/serviceContract" -import { getServiceOrderList } from "@/api/serviceManage/clientServiceOrder" -import { getProductList } from "@/api/common/other" +import { getProductListFromGrpc, getProductList } from "@/api/productManage/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: "" + }, + selectBoxList: { + type: Array, + default: () => [] } }, components: {}, computed: {}, data() { return { - dialogWidth: "50%", + dialogWidth: "40%", editConfig: this.editCommonConfig, queryInput: "", select: "鍏ㄩ儴瀛楁", @@ -75,7 +101,19 @@ search_map: {}, searchSel: {}, keyword: "", - keywordType: "" + keywordType: "", + showProductCol: ["浜у搧鍚嶇О", "浜у搧缂栧彿", "閿�鍞崟浠�", "鍗曚綅", "浜у搧瑙勬牸", "鍨嬪彿"], + tableProductColumn: [ + { label: "浜у搧鍚嶇О", prop: "name", isClick: true }, + { label: "浜у搧缂栧彿", prop: "number" }, + { label: "閿�鍞崟浠�", prop: "purchasePrice" }, + { label: "鍗曚綅", prop: "unit" }, + { label: "浜у搧瑙勬牸", prop: "specifications" }, + { label: "鍨嬪彿", prop: "modelNumber" } + ], + showCol: [], + tableColumn: [], + selectArray: [] } }, created() { @@ -83,74 +121,30 @@ this.getData() }, methods: { + setColumnVisible(showCol) { + return this.tableColumn.map((ele) => { + return { + ...ele, + isShowColumn: showCol.includes(ele.label) + } + }) + }, setTable() { - if (this.editConfig.title === "閿�鍞�诲崟") { - this.tableList = { - tableInfomation: [], - tableColumn: [ - { label: "鍗曟嵁缂栧彿", prop: "number", isClick: true }, // 鍗曟嵁缂栧彿 - { label: "璐熻矗浜�", prop: "member_name" } // 璐熻矗浜� - ] - } - this.searchSel = { value: "number", label: "鍗曟嵁缂栧彿" } - } else if (this.editConfig.title === "鏈嶅姟鍚堝悓") { - this.tableList = { - tableInfomation: [], - tableColumn: [ - { label: "瀹㈡埛鍚嶇О", prop: "client_name" }, // 瀹㈡埛鍚嶇О - { label: "鏈嶅姟鍚堝悓缂栧彿", prop: "number", isClick: true }, // 鏈嶅姟鍚堝悓缂栧彿 - { label: "璐熻矗浜�", prop: "member_name" }, // 璐熻矗浜� - { label: "鍚堣", prop: "total" }, // 鍚堣 - { label: "绛剧害鏃ユ湡", prop: "signTime", isTime: true }, // 绛剧害鏃ユ湡 - { label: "鍚堝悓鐘舵��", prop: "serviceContractStatus" } // 鍚堝悓鐘舵�� - ] - } - this.searchSel = { value: "number", label: "鏈嶅姟鍚堝悓缂栧彿" } - } else if (this.editConfig.title === "閿�鍞槑缁嗗崟") { - this.tableList = { - tableInfomation: [], - tableColumn: [ - { label: "瀹㈡埛鍚嶇О", prop: "client_name" }, // 瀹㈡埛鍚嶇О - { label: "璁㈠崟缂栧彿", prop: "number", isClick: true }, // 璁㈠崟缂栧彿 - { label: "绛剧害鏃ユ湡", prop: "signTime" }, // 绛剧害鏃ユ湡 - { label: "閿�鍞礋璐d汉", prop: "member_name" }, // 閿�鍞礋璐d汉 - { label: "鍚堣", prop: "tptal" } // 鍚堣 - ] - } - this.searchSel = { value: "number", label: "璁㈠崟缂栧彿" } - } else if (this.editConfig.title === "鎶ヤ环鍗�") { - this.tableList = { - tableInfomation: [], - tableColumn: [ - { label: "鎶ヤ环鍗曞彿", prop: "number", isClick: true }, // 鎶ヤ环鍗曞彿 - { label: "閿�鍞礋璐d汉", prop: "member_name" } // 閿�鍞礋璐d汉 - ] - } - this.searchSel = { value: "number", label: "鎶ヤ环鍗曞彿" } - } else if (this.editConfig.title === "瀹㈡埛鏈嶅姟鍗�") { - this.tableList = { - tableInfomation: [], - tableColumn: [ - { label: "鏈嶅姟鍗曠紪鍙�", prop: "serviceNumber", isClick: true }, // 鏈嶅姟鍗曠紪鍙� - { label: "涓婚", prop: "subject" }, // 涓婚 - { label: "鏈嶅姟鏂瑰紡", prop: "serviceType_name" }, // 鏈嶅姟鏂瑰紡 - { label: "鏈嶅姟浜哄憳", prop: "serviceMan_name" }, // 鏈嶅姟浜哄憳 - { label: "浼樺厛绾у埆", prop: "priorityLevel_name" }, // 浼樺厛绾у埆 - { label: "澶勭悊鐘舵��", prop: "serviceOrderStatus_name" }, // 澶勭悊鐘舵�� - { label: "瀹㈡埛绛惧悕", prop: "qianming" } // 瀹㈡埛绛惧悕 - ] - } - this.searchSel = { value: "serviceNumber", label: "鏈嶅姟鍗曠紪鍙�" } - } else if (this.editConfig.title === "浜у搧鍚嶇О") { - this.tableList = { - tableInfomation: [], - tableColumn: [ - { label: "浜у搧鍚嶇О", prop: "name", isClick: true }, - { label: "浜у搧缂栧彿", prop: "number" } - ] - } - this.searchSel = { value: "name", label: "浜у搧鍚嶇О" } + if (this.editConfig.title === "浜у搧鍚嶇О") { + this.showCol = this.showProductCol + this.tableColumn = this.tableProductColumn } + this.tableList = { + tableInfomation: [], + selectIndex: true, + highlight: true, + ref: "tableListRef", + 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 @@ -158,167 +152,42 @@ this.searchOptions.push({ value: value, label: label }) } }, + selTableCol(val) { + this.showcol = val + this.tableList.tableColumn = this.setColumnVisible(val) + }, + // 鍒楄〃澶氶�� + getSelectArray(val) { + this.selectArray = val + }, + saveClick() { + this.$emit("getSelectArray", this.selectArray) + this.editConfig.editVisible = false + }, // 璇锋眰鏁版嵁 async getData() { this.loading = true - if (this.editConfig.title === "閿�鍞�诲崟") { - this.getMasterOrderList() - } else if (this.editConfig.title === "鏈嶅姟鍚堝悓") { - this.getServiceContractList() - } else if (this.editConfig.title === "閿�鍞槑缁嗗崟") { - this.getSalesDetailsList() - } else if (this.editConfig.title === "鎶ヤ环鍗�") { - this.getQuotationList() - } else if (this.editConfig.title === "瀹㈡埛鏈嶅姟鍗�") { - this.getServiceOrderList() - } else if (this.editConfig.title === "浜у搧鍚嶇О") { + if (this.editConfig.title === "浜у搧鍚嶇О") { this.getProductList() } }, - // 閿�鍞�诲崟 - async getMasterOrderList() { - await getMasterOrderList({ - search_map: this.search_map, - page: 0, - pageSize: 0 - }).then((res) => { - if (res.code === 200) { - if (res.data.list && res.data.list.length > 0) { - const list = res.data.list.map((item) => { - return { - ...item, - member_name: item.member.username - } - }) - this.tableList.tableInfomation = list.slice(0, 5) || [] - } else { - this.tableList.tableInfomation = [] - } - } - this.loading = false - }) - }, - // 鏈嶅姟鍚堝悓 - async getServiceContractList() { - await getServiceContractList({ - keyword: this.keyword, - keywordType: this.keywordType, - page: 0, - pageSize: 0 - }).then((res) => { - if (res.code === 200) { - if (res.data.list && res.data.list.length > 0) { - const list = res.data.list.map((item) => { - return { - ...item, - client_name: item.client.name, - member_name: item.member.username, - serviceContractStatus: item.serviceContractStatus.name - } - }) - this.tableList.tableInfomation = list.slice(0, 5) || [] - } else { - this.tableList.tableInfomation = [] - } - } - this.loading = false - }) - }, - // 鎶ヤ环鍗� - async getQuotationList() { - await getQuotationList({ - search_map: this.search_map, - page: 0, - pageSize: 0 - }).then((res) => { - if (res.code === 200) { - if (res.data.list && res.data.list.length > 0) { - const list = res.data.list.map((item) => { - return { - ...item, - member_name: item.member.username - } - }) - this.tableList.tableInfomation = list.slice(0, 5) || [] - } else { - this.tableList.tableInfomation = [] - } - } - this.loading = false - }) - }, - // 閿�鍞槑缁嗗崟 - async getSalesDetailsList() { - await getSalesDetailsList({ - keyword: this.keyword, - keywordType: this.keywordType, - page: 0, - pageSize: 0 - }).then((res) => { - if (res.code === 200) { - if (res.data.list && res.data.list.length > 0) { - const list = res.data.list.map((item) => { - return { - ...item, - client_name: item.client.name, - member_name: item.Member.username - } - }) - this.tableList.tableInfomation = list.slice(0, 5) || [] - } else { - this.tableList.tableInfomation = [] - } - } - this.loading = false - }) - }, - // 瀹㈡埛鏈嶅姟鍗� - async getServiceOrderList() { - await getServiceOrderList({ - keyword: this.keyword, - keywordType: this.keywordType, - page: 0, - pageSize: 0 - }).then((res) => { - if (res.code === 200) { - if (res.data.data && res.data.data.length > 0) { - const list = res.data.data.map((item) => { - return { - ...item, - client_name: item.Client.name, - serviceType_name: item.ServiceType.name, - faultType_name: item.FaultType.name, - serviceContract_Number: item.ServiceContract.number, - serviceMan_name: item.serviceMan.username, - priorityLevel_name: item.PriorityLevel.name, - serviceOrderStatus_name: item.ServiceOrderStatus_name - } - }) - this.tableList.tableInfomation = list.slice(0, 5) || [] - } else { - this.tableList.tableInfomation = [] - } - } - this.loading = false - }) - }, // 浜у搧鍚嶇О async getProductList() { - await getProductList({ - productName: this.keywordType === "浜у搧鍚嶇О" ? this.keyword : "", - productNumber: this.keywordType === "浜у搧缂栧彿" ? this.keyword : "", - page: 1, - pageSize: 5 + let fn = this.sign == "purchase" ? getProductList : getProductListFromGrpc + await fn({ + keyword: this.keyword, + page: this.pagerOptions.currPage, + pageSize: this.pagerOptions.pageSize }).then((res) => { - console.log(res.data) - if (res.data.code === 200) { - if (res.data.data.data && res.data.data.data.length > 0) { - const list = res.data.data.data.map((item) => { + if (res.code === 200) { + if (res.data.list && res.data.list.length > 0) { + const list = res.data.list.map((item) => { return { ...item } }) - this.tableList.tableInfomation = list.slice(0, 5) || [] + this.tableList.tableInfomation = list + this.pagerOptions.totalCount = res.data.total } else { this.tableList.tableInfomation = [] } @@ -331,28 +200,14 @@ }, selNameClick(row) { this.editConfig.editVisible = false - if (this.editConfig.title === "閿�鍞�诲崟") { - this.$emit("selClient", row, "master") - } else if (this.editConfig.title === "鏈嶅姟鍚堝悓") { - this.$emit("selClient", row, "serviceContract") - } else if (this.editConfig.title === "閿�鍞槑缁嗗崟") { - this.$emit("selClient", row, "contract") - } else if (this.editConfig.title === "鎶ヤ环鍗�") { - this.$emit("selClient", row, "quotation") - } else if (this.editConfig.title === "瀹㈡埛鏈嶅姟鍗�") { - this.$emit("selClient", row, "customService") - } else if (this.editConfig.title === "浜у搧鍚嶇О") { + if (this.editConfig.title === "浜у搧鍚嶇О") { this.$emit("selClient", row, "productName") } }, // 鎼滅储 - searchClick(val, content) { - console.log(val, content) - this.search_map = { - [val.value]: content - } + searchClick(content) { + console.log(content) this.keyword = content - this.keywordType = val.label this.getData() }, resetClick() { @@ -390,9 +245,16 @@ cursor: pointer; } .dialog-footer { - height: 40px; - line-height: 40px; + height: 50px; + line-height: 50px; color: red; + .btn-pager { + display: flex; + margin-top: 0px; + .page { + margin-left: auto; + } + } } ::v-deep { .input-with-select .el-input-group__prepend { -- Gitblit v1.8.0