From 2e54592b7adf069f6ddfc9348c6daf9612f34f79 Mon Sep 17 00:00:00 2001 From: yangfeng <wanwan926_4@163.com> Date: 星期五, 13 十月 2023 11:33:44 +0800 Subject: [PATCH] 新建弹窗详情页打开时不能输入问题修复 --- src/views/other/payment/receipt/index.vue | 296 +++++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 186 insertions(+), 110 deletions(-) diff --git a/src/views/other/payment/receipt/index.vue b/src/views/other/payment/receipt/index.vue index c8fc457..92cfdd4 100644 --- a/src/views/other/payment/receipt/index.vue +++ b/src/views/other/payment/receipt/index.vue @@ -2,64 +2,84 @@ <div class="receipt"> <div v-if="isDetail" class="detail-top"> <DetailListCommonBtn :query-class-options="queryClassOptions" /> - <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" /> </div> - <div v-else class="top"> - <SearchCommonView - ref="searchCommonView" - :query-class-options="queryClassOptions" - :search-options="searchOptions" - :search-sel="searchSel" - @searchClick="searchClick" - @resetClick="resetClick" - /> - <div class="btn-pager"> - <PublicFunctionBtnView :statistics="true" :operates-list="operatesList" @batchDelete="delClick" /> - <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" /> + + <div v-else class="filter"> + <div class="filter-card"> + <CommonSearch + :show-add="false" + :show-download="false" + :amount-view="false" + :show-action-btn="false" + placeholder="璇疯緭鍏ユ敹娆惧崟缂栧彿" + @searchClick="onFilterSearch" + > + <template slot="leftButton"> + <el-button size="small" type="primary" @click="addBtnClick" + >鏂板缓</el-button + > + <!-- <el-button size="small" @click="delClick">鍒犻櫎</el-button>--> + </template> + </CommonSearch> </div> </div> - <TableCommonView - ref="tableListRef" - v-loading="loading" - :table-list="tableList" - :select-box="!isDetail" - @getSelectArray="getSelectArray" - > - <!-- <template slot="tableButton"> - <el-table-column label="鎿嶄綔" width="60" fixed="right"> - <template slot-scope="scope"> - <el-button @click="handleClick(scope.row)" type="text" size="small">缂栬緫</el-button> - </template> - </el-table-column> - </template> --> - </TableCommonView> + + <div class="body"> + <div class="body-card"> + <div class="list-view"> + <TableCommonView + ref="tableListRef" + v-loading="loading" + :table-list="tableList" + :select-box="!isDetail" + @getSelectArray="getSelectArray" + @selTableCol="selTableCol" + > + <!-- <template slot="tableButton"> + <el-table-column label="鎿嶄綔" width="60" fixed="right"> + <template slot-scope="scope"> + <el-button @click="handleClick(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> + </div> + </div> <!-- 鏂板缓/缂栬緫 --> <AddReceipt v-if="editConfig.visible" :edit-common-config="editConfig" /> </div> </template> <script> -import { getReceiptList } from "@/api/common/payment" -import pageMixin from "@/components/makepager/pager/mixin/pageMixin" -import AddReceipt from "@/views/other/payment/receipt/addReceipt.vue" +import { getReceiptList } from "@/api/common/payment"; +import pageMixin from "@/components/makepager/pager/mixin/pageMixin"; +import AddReceipt from "@/views/other/payment/receipt/addReceipt.vue"; export default { name: "ReceiptView", props: { isDetail: { type: Boolean, - default: false + default: false, }, addConfig: { type: Object, default: () => { - return {} - } + return {}; + }, }, sourceType: { type: Number, - default: 1 - } + default: 1, + }, }, mixins: [pageMixin], components: { AddReceipt }, @@ -74,7 +94,7 @@ { value: "1", label: "鍏ㄩ儴" }, { value: "2", label: "浠婃棩鑱旂郴" }, { value: "3", label: "鏈懆鑱旂郴" }, - { value: "4", label: "鏈湀鑱旂郴" } + { value: "4", label: "鏈湀鑱旂郴" }, ], searchOptions: [], operatesList: [ @@ -85,147 +105,203 @@ { id: "5", name: "鏇存敼鍒涘缓浜�" }, { id: "6", name: "鏍戠粨鏋勮缃�" }, { id: "7", name: "瀹℃壒璁剧疆" }, - { id: "8", name: "鍥炶棰勮鍒楀" } + { id: "8", name: "鍥炶棰勮鍒楀" }, ], editConfig: { visible: false, title: "鏂板缓", - infomation: {} + infomation: {}, }, saleChanceName: "", contactsDeail: { visible: false, - infomation: {} + infomation: {}, }, clientDeail: { visible: false, - infomation: {} + infomation: {}, }, selValueList: [], searchSel: { value: "topic", - label: "" + label: "", }, search_map: {}, keyword: "", - keywordType: "" - } + keywordType: "", + tableColumn: [ + { label: "鏀舵鍗曠紪鍙�", prop: "number", default: true }, + { label: "瀹㈡埛鍚嶇О", prop: "client_name" }, + { label: "閫夋嫨婧愬崟", prop: "sourceId" }, + { label: "瀹為檯鏀舵閲戦", prop: "amount" }, + { label: "鏀舵鏂瑰紡", prop: "paymentType_name" }, + { label: "閿�鍞礋璐d汉", prop: "principal_name" }, + { label: "鏀舵鏃ユ湡", prop: "receiptDate" }, + ], + showCol: [ + "鏀舵鍗曠紪鍙�", + "瀹㈡埛鍚嶇О", + "閫夋嫨婧愬崟", + "瀹為檯鏀舵閲戦", + "鏀舵鏂瑰紡", + "閿�鍞礋璐d汉", + "鏀舵鏃ユ湡", + ], + }; }, created() { - this.setTable() + this.setTable(); if (!this.isDetail) { - this.keyword = "" - this.keywordType = "" + this.keyword = ""; + this.keywordType = ""; } else { - this.keyword = this.addConfig.keyword - this.keywordType = this.addConfig.keywordType + this.keyword = this.addConfig.keyword; + this.keywordType = this.addConfig.keywordType; } - this.getData() + this.getData(); + }, + mounted() { + console.log(this.addConfig, "杩欐槸鍟�"); }, methods: { setTable() { this.tableList = { tableInfomation: [], - tableColumn: [ - { label: "鏀舵鍗曠紪鍙�", prop: "number" }, - { label: "瀹㈡埛鍚嶇О", prop: "client_name" }, - { label: "閫夋嫨婧愬崟", prop: "sourceId" }, - { label: "瀹為檯鏀舵閲戦", prop: "amount" }, - { label: "鏀舵鏂瑰紡", prop: "paymentType_name" }, - { label: "閿�鍞礋璐d汉", prop: "principal_name" }, - { label: "鏀舵鏃ユ湡", prop: "receiptDate" } - ] - } - this.searchOptions = [] + allcol: [], + showcol: this.showCol, + 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 - const value = this.tableList.tableColumn[i].prop - this.searchOptions.push({ value: value, label: label }) + const label = this.tableList.tableColumn[i].label; + const value = this.tableList.tableColumn[i].prop; + this.searchOptions.push({ value: value, label: label }); } + }, + setColumnVisible(showCol) { + return this.tableColumn.map((ele) => { + return { + ...ele, + isShowColumn: showCol.includes(ele.label), + }; + }); + }, + selTableCol(val) { + this.showcol = val; + this.tableList.tableColumn = this.setColumnVisible(val); }, // 璇锋眰鏁版嵁 async getData() { - this.loading = true + // console.log() + this.loading = true; await getReceiptList({ keyword: this.keyword, keywordType: this.keywordType, page: this.pagerOptions.currPage, - pageSize: this.pagerOptions.pageSize + pageSize: this.pagerOptions.pageSize, + + sourceId: this.addConfig.salesDetailsId, + sourceIdType: this.addConfig.serviceContractId, }) .then((res) => { - console.log(res) if (res.data.code === 200) { - if (res.data.data.data && res.data.data.data.length > 0) { - const list = res.data.data.data.map((item) => { + const resList = res?.data?.data?.data ?? []; + if (resList.length > 0) { + const list = resList.map((item) => { return { ...item, client_name: item.client.name, paymentType_name: item.paymentType.name, - principal_name: item.principal.username - } - }) - this.tableList.tableInfomation = list || [] - this.pagerOptions.totalCount = res.data.data.count + principal_name: item.principal.username, + }; + }); + this.tableList.tableInfomation = list || []; + this.pagerOptions.totalCount = res.data.data.count; } else { - this.tableList.tableInfomation = [] + this.tableList.tableInfomation = []; } } else { - this.tableList.tableInfomation = [] + this.tableList.tableInfomation = []; } - this.loading = false + this.loading = false; }) .catch((err) => { - console.log(err) - this.tableList.tableInfomation = [] - this.loading = false - }) + console.log(err); + this.tableList.tableInfomation = []; + this.loading = false; + }); }, // 鎼滅储 - searchClick(val, content) { - this.keyword = content - this.keywordType = val.label - this.getData() - }, - resetClick() { - this.keyword = "" - this.keywordType = "" - this.getData() + onFilterSearch(searchText) { + this.keyword = searchText ?? ""; + this.keywordType = "鏀舵鍗曠紪鍙�"; + this.pagerOptions.currPage = 1; + this.getData(); }, getSelectArray(val) { - console.log(val) - this.selValueList = [] + console.log(val); + this.selValueList = []; const list = val.map((item) => { - return item.id - }) - this.selValueList = list + return item.id; + }); + this.selValueList = list; }, // 鏂板缓 addBtnClick() { - this.editConfig.visible = true - this.editConfig.title = "鏂板缓" - this.editConfig.sourceType = this.sourceType - this.editConfig.infomation = { ...this.addConfig } - } - } -} + this.editConfig.visible = true; + this.editConfig.title = "鏂板缓"; + this.editConfig.sourceType = this.sourceType; + this.editConfig.infomation = { ...this.addConfig, number: "" }; + }, + }, +}; </script> <!-- Add "scoped" attribute to limit CSS to this component only --> <style lang="scss" scoped> .receipt { - .top { - margin-bottom: 20px; + 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; + } + .list-view { + height: calc(100% - 60px); + overflow: hidden; + } .btn-pager { display: flex; + margin-top: 10px; .page { margin-left: auto; } - } - } - .detail-top { - display: flex; - .page { - margin-left: auto; } } } -- Gitblit v1.8.0