From 041e5aef0e698210f9715f4cac11a2de98e98a62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A0=82=E7=B3=96?= <2178503051@qq.com> Date: Thu, 18 Jun 2026 15:39:42 +0800 Subject: [PATCH] =?UTF-8?q?feat(contract-select):=20=E4=B8=BA=E5=90=88?= =?UTF-8?q?=E5=90=8C=E9=80=89=E6=8B=A9=E7=BB=84=E4=BB=B6=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=88=86=E9=A1=B5=E5=8A=9F=E8=83=BD=E5=B9=B6=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 移除了vis-network依赖包 2. 重构两个合同选择页面的搜索与列表逻辑,移除本地合并合同数据的操作,改为直接使用接口返回数据 3. 为所有合同tab添加分页组件,支持分页查询、搜索重置页码 4. 调整表格高度优化布局,更新搜索触发事件为失焦、回车和清空按钮 5. 新增搜索查询按钮,优化搜索交互体验 --- klp-ui/package.json | 1 - .../KLPService/ContractSelect/index.vue | 31 +++-- .../views/crm/contract/selectConfig/index.vue | 114 ++++++++++-------- 3 files changed, 87 insertions(+), 59 deletions(-) diff --git a/klp-ui/package.json b/klp-ui/package.json index 262f9d40..619c4b2a 100644 --- a/klp-ui/package.json +++ b/klp-ui/package.json @@ -77,7 +77,6 @@ "three": "^0.160.1", "vditor": "^3.11.1", "video.js": "^8.23.3", - "vis-network": "^8.5.2", "vue": "2.6.12", "vue-count-to": "1.0.13", "vue-cropper": "0.5.5", diff --git a/klp-ui/src/components/KLPService/ContractSelect/index.vue b/klp-ui/src/components/KLPService/ContractSelect/index.vue index 58f8ee04..86405ec4 100644 --- a/klp-ui/src/components/KLPService/ContractSelect/index.vue +++ b/klp-ui/src/components/KLPService/ContractSelect/index.vue @@ -55,13 +55,14 @@
- - +
- + @@ -93,6 +94,10 @@ + +
暂无合同数据
@@ -125,6 +130,9 @@ export default { searchKeyword: '', allContracts: [], activeTab: 'configured', // 默认显示已配置合同tab + allPageNum: 1, + allPageSize: 20, + allTotal: 0, } }, computed: { @@ -227,15 +235,12 @@ export default { async loadAllContracts() { try { const res = await listOrder({ - pageNum: 1, - pageSize: 1000, + pageNum: this.allPageNum, + pageSize: this.allPageSize, keyword: this.searchKeyword || undefined, }); - // 合并现有合同(包括手动添加的) - const existingContracts = this.contractList; - this.allContracts = [...res.rows || [], ...existingContracts].filter((item, index, self) => - index === self.findIndex(t => t.orderId === item.orderId) - ); + this.allTotal = res.total || 0; + this.allContracts = res.rows || []; } catch (error) { console.error('Failed to load all contracts:', error); this.allContracts = []; @@ -244,6 +249,12 @@ export default { // 搜索合同 handleSearch() { + this.allPageNum = 1; + this.loadAllContracts(); + }, + + handleAllPageChange(page) { + this.allPageNum = page; this.loadAllContracts(); }, diff --git a/klp-ui/src/views/crm/contract/selectConfig/index.vue b/klp-ui/src/views/crm/contract/selectConfig/index.vue index 98836bd6..3a824fcb 100644 --- a/klp-ui/src/views/crm/contract/selectConfig/index.vue +++ b/klp-ui/src/views/crm/contract/selectConfig/index.vue @@ -64,58 +64,63 @@

暂无合同数据

- - - - - - - - - - - - - - - - - - +
@@ -135,6 +140,9 @@ export default { allContracts: [], allLoading: false, activeTab: 'configured', + pageNum: 1, + pageSize: 20, + total: 0, } }, mounted() { @@ -190,14 +198,12 @@ export default { this.allLoading = true; try { const res = await listOrder({ - pageNum: 1, - pageSize: 10000, + pageNum: this.pageNum, + pageSize: this.pageSize, keyword: this.searchKeyword || undefined, }); - const existingContracts = this.contractList; - this.allContracts = [...(res.rows || []), ...existingContracts].filter((item, index, self) => - index === self.findIndex(t => t.orderId === item.orderId) - ); + this.total = res.total || 0; + this.allContracts = res.rows || []; } catch (error) { console.error('Failed to load all contracts:', error); this.allContracts = []; @@ -207,6 +213,12 @@ export default { }, handleSearch() { + this.pageNum = 1; + this.loadAllContracts(); + }, + + handlePageChange(page) { + this.pageNum = page; this.loadAllContracts(); }, @@ -338,4 +350,10 @@ export default { font-size: 13px; color: #909399; } + +.pagination-wrapper { + display: flex; + justify-content: flex-end; + padding: 12px 0; +}