From 2e79a5beb09143c3001144f3a88e5d9ac16a07f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A0=82=E7=B3=96?= <2178503051@qq.com> Date: Mon, 22 Jun 2026 13:06:46 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat(crm/contract):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E4=BA=A7=E5=93=81=E8=A1=A8=E6=A0=BC=E8=A1=A8=E5=A4=B4=E5=B1=95?= =?UTF-8?q?=E7=A4=BA=E4=B8=8E=E5=AF=BC=E5=87=BA=E9=85=8D=E7=BD=AE=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 将产品表格表头文本拆分为多行显示,优化视觉排版 2. 调整表格列的grid布局宽度适配新的表头样式 3. 新增产品导出列的自定义编辑与重置功能,支持自定义表头文本 4. 重构导出预览的表头生成逻辑,支持动态渲染自定义列名与适配宽度 --- .../components/ContractExportDialog.vue | 57 ++++++++++++------- .../contract/components/ProductContent.vue | 17 +++--- 2 files changed, 43 insertions(+), 31 deletions(-) diff --git a/klp-ui/src/views/crm/contract/components/ContractExportDialog.vue b/klp-ui/src/views/crm/contract/components/ContractExportDialog.vue index 7e7c0371..9fa316b1 100644 --- a/klp-ui/src/views/crm/contract/components/ContractExportDialog.vue +++ b/klp-ui/src/views/crm/contract/components/ContractExportDialog.vue @@ -6,9 +6,11 @@
产品表列配置
全选 -
- {{ col.label }} +
+ +
+ 重置表头
附加行配置
{ col.label = col.defaultLabel; }); + this.generatePreviewHtml(); + }, onColumnChange() { const checkedCount = this.columnConfigs.filter(c => c.checked).length; this.selectAllColumns = checkedCount === this.columnConfigs.length; @@ -143,17 +149,24 @@ export default { const hasCol = (key) => activeCols.some(c => c.key === key); const hasRow = (key) => activeRows.some(r => r.key === key); + const colWidthMap = { + spec: 80, + material: 60, + quantity: 55, + taxPrice: 70, + taxDivisor: 45, + noTaxPrice: 70, + taxTotal: 70, + noTaxTotal: 70, + taxAmount: 55, + remark: 80, + }; + let headerCells = '序号'; - if (hasCol('spec')) headerCells += '规格(mm)'; - if (hasCol('material')) headerCells += '材质'; - if (hasCol('quantity')) headerCells += '数量(吨)'; - if (hasCol('taxPrice')) headerCells += '含税单价(元/吨)'; - if (hasCol('taxDivisor')) headerCells += '税率除数'; - if (hasCol('noTaxPrice')) headerCells += '无税单价(元/吨)'; - if (hasCol('taxTotal')) headerCells += '含税总额(元)'; - if (hasCol('noTaxTotal')) headerCells += '无税总额(元)'; - if (hasCol('taxAmount')) headerCells += '税额(元)'; - if (hasCol('remark')) headerCells += '备注'; + activeCols.forEach(col => { + const width = colWidthMap[col.key] || 60; + headerCells += `${col.label}`; + }); const colCount = activeCols.length + 1; let bodyRows = ''; diff --git a/klp-ui/src/views/crm/contract/components/ProductContent.vue b/klp-ui/src/views/crm/contract/components/ProductContent.vue index c35fde3c..e62428e0 100644 --- a/klp-ui/src/views/crm/contract/components/ProductContent.vue +++ b/klp-ui/src/views/crm/contract/components/ProductContent.vue @@ -19,15 +19,15 @@
序号
-
规格(mm)
+
规格
(mm)
材质
-
数量(吨)
-
含税单价(元/吨)
+
数量
(吨)
+
含税单价
(元/吨)
税率除数
-
无税单价(元/吨)
-
含税总额(元)
-
无税总额(元)
-
税额(元)
+
无税单价
(元/吨)
+
含税总额
(元)
+
无税总额
(元)
+
税额
(元)
备注 Date: Mon, 22 Jun 2026 13:06:57 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E5=94=AE?= =?UTF-8?q?=E5=90=8E=E5=BC=82=E8=AE=AE=E7=AE=A1=E7=90=86=E5=85=A8=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 本次提交完成售后异议管理模块的开发,主要包括以下内容: 1. 新增售后异议主页面、待办页面和意见填写页面 2. 新增5个通用业务组件用于页面渲染 3. 新增4个业务API接口文件 4. 优化流程图表单描述、文件列表样式和钢卷信息展示 5. 完善投诉受理单的日期格式化和实体类继承 --- .../flow/domain/bo/TsComplaintAcceptBo.java | 3 + .../flow/domain/vo/TsComplaintAcceptVo.java | 3 +- klp-ui/src/api/flow/acceptCoilRel.js | 39 + klp-ui/src/api/flow/complaintAccept.js | 54 ++ klp-ui/src/api/flow/complaintTask.js | 39 + klp-ui/src/api/flow/planExecuteRel.js | 39 + klp-ui/src/components/FileList/index.vue | 4 +- .../views/wms/coil/components/CoilInfo.vue | 1 + klp-ui/src/views/wms/post/flow.vue | 2 +- .../objection/components/BasicInfoSection.vue | 57 ++ .../objection/components/CoilInfoSection.vue | 81 ++ .../components/ContractInfoSection.vue | 75 ++ .../components/DepartmentOpinionSection.vue | 167 +++++ .../components/ExecutionFeedbackSection.vue | 167 +++++ .../components/HandlingSchemeSection.vue | 102 +++ .../components/HeaderControlSection.vue | 140 ++++ .../views/wms/post/objection/dashboard.vue | 0 klp-ui/src/views/wms/post/objection/index.vue | 704 ++++++++++++++++++ .../src/views/wms/post/objection/opinion.vue | 314 ++++++++ klp-ui/src/views/wms/post/objection/todo.vue | 270 +++++++ 20 files changed, 2257 insertions(+), 4 deletions(-) create mode 100644 klp-ui/src/api/flow/acceptCoilRel.js create mode 100644 klp-ui/src/api/flow/complaintAccept.js create mode 100644 klp-ui/src/api/flow/complaintTask.js create mode 100644 klp-ui/src/api/flow/planExecuteRel.js create mode 100644 klp-ui/src/views/wms/post/objection/components/BasicInfoSection.vue create mode 100644 klp-ui/src/views/wms/post/objection/components/CoilInfoSection.vue create mode 100644 klp-ui/src/views/wms/post/objection/components/ContractInfoSection.vue create mode 100644 klp-ui/src/views/wms/post/objection/components/DepartmentOpinionSection.vue create mode 100644 klp-ui/src/views/wms/post/objection/components/ExecutionFeedbackSection.vue create mode 100644 klp-ui/src/views/wms/post/objection/components/HandlingSchemeSection.vue create mode 100644 klp-ui/src/views/wms/post/objection/components/HeaderControlSection.vue create mode 100644 klp-ui/src/views/wms/post/objection/dashboard.vue create mode 100644 klp-ui/src/views/wms/post/objection/index.vue create mode 100644 klp-ui/src/views/wms/post/objection/opinion.vue create mode 100644 klp-ui/src/views/wms/post/objection/todo.vue diff --git a/klp-flow/src/main/java/com/klp/flow/domain/bo/TsComplaintAcceptBo.java b/klp-flow/src/main/java/com/klp/flow/domain/bo/TsComplaintAcceptBo.java index c3217532..65f1772b 100644 --- a/klp-flow/src/main/java/com/klp/flow/domain/bo/TsComplaintAcceptBo.java +++ b/klp-flow/src/main/java/com/klp/flow/domain/bo/TsComplaintAcceptBo.java @@ -8,6 +8,7 @@ import javax.validation.constraints.*; import java.util.Date; import java.util.List; import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; /** * 投诉受理单主业务对象 ts_complaint_accept @@ -33,6 +34,8 @@ public class TsComplaintAcceptBo extends BaseEntity { /** * 投诉日期 */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") private Date complaintDate; /** diff --git a/klp-flow/src/main/java/com/klp/flow/domain/vo/TsComplaintAcceptVo.java b/klp-flow/src/main/java/com/klp/flow/domain/vo/TsComplaintAcceptVo.java index b87c9322..4519b525 100644 --- a/klp-flow/src/main/java/com/klp/flow/domain/vo/TsComplaintAcceptVo.java +++ b/klp-flow/src/main/java/com/klp/flow/domain/vo/TsComplaintAcceptVo.java @@ -6,6 +6,7 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.klp.common.annotation.ExcelDictFormat; import com.klp.common.convert.ExcelDictConvert; +import com.klp.common.core.domain.BaseEntity; import lombok.Data; @@ -17,7 +18,7 @@ import lombok.Data; */ @Data @ExcelIgnoreUnannotated -public class TsComplaintAcceptVo { +public class TsComplaintAcceptVo extends BaseEntity { private static final long serialVersionUID = 1L; diff --git a/klp-ui/src/api/flow/acceptCoilRel.js b/klp-ui/src/api/flow/acceptCoilRel.js new file mode 100644 index 00000000..3ebe59e3 --- /dev/null +++ b/klp-ui/src/api/flow/acceptCoilRel.js @@ -0,0 +1,39 @@ +import request from '@/utils/request' + +export function listAcceptCoilRel(query) { + return request({ + url: '/flow/acceptCoilRel/list', + method: 'get', + params: query + }) +} + +export function getAcceptCoilRel(relId) { + return request({ + url: '/flow/acceptCoilRel/' + relId, + method: 'get' + }) +} + +export function addAcceptCoilRel(data) { + return request({ + url: '/flow/acceptCoilRel', + method: 'post', + data: data + }) +} + +export function updateAcceptCoilRel(data) { + return request({ + url: '/flow/acceptCoilRel', + method: 'put', + data: data + }) +} + +export function delAcceptCoilRel(relIds) { + return request({ + url: '/flow/acceptCoilRel/' + relIds, + method: 'delete' + }) +} diff --git a/klp-ui/src/api/flow/complaintAccept.js b/klp-ui/src/api/flow/complaintAccept.js new file mode 100644 index 00000000..97ea1ad5 --- /dev/null +++ b/klp-ui/src/api/flow/complaintAccept.js @@ -0,0 +1,54 @@ +import request from '@/utils/request' + +export function listComplaintAccept(query) { + return request({ + url: '/flow/complaintAccept/list', + method: 'get', + params: query + }) +} + +export function getComplaintAccept(acceptId) { + return request({ + url: '/flow/complaintAccept/' + acceptId, + method: 'get' + }) +} + +export function addComplaintAccept(data) { + return request({ + url: '/flow/complaintAccept', + method: 'post', + data: data + }) +} + +export function updateComplaintAccept(data) { + return request({ + url: '/flow/complaintAccept', + method: 'put', + data: data + }) +} + +export function delComplaintAccept(acceptIds) { + return request({ + url: '/flow/complaintAccept/' + acceptIds, + method: 'delete' + }) +} + +export function opinionDispatch(acceptId) { + return request({ + url: '/flow/complaintAccept/opinionDispatch/' + acceptId, + method: 'post' + }) +} + +export function feedbackDispatch(acceptId, deptIds) { + return request({ + url: '/flow/complaintAccept/feedbackDispatch', + method: 'post', + params: { acceptId, deptIds } + }) +} diff --git a/klp-ui/src/api/flow/complaintTask.js b/klp-ui/src/api/flow/complaintTask.js new file mode 100644 index 00000000..8d583f1f --- /dev/null +++ b/klp-ui/src/api/flow/complaintTask.js @@ -0,0 +1,39 @@ +import request from '@/utils/request' + +export function listComplaintTask(query) { + return request({ + url: '/flow/complaintTask/list', + method: 'get', + params: query + }) +} + +export function getComplaintTask(taskId) { + return request({ + url: '/flow/complaintTask/' + taskId, + method: 'get' + }) +} + +export function addComplaintTask(data) { + return request({ + url: '/flow/complaintTask', + method: 'post', + data: data + }) +} + +export function updateComplaintTask(data) { + return request({ + url: '/flow/complaintTask', + method: 'put', + data: data + }) +} + +export function delComplaintTask(taskIds) { + return request({ + url: '/flow/complaintTask/' + taskIds, + method: 'delete' + }) +} diff --git a/klp-ui/src/api/flow/planExecuteRel.js b/klp-ui/src/api/flow/planExecuteRel.js new file mode 100644 index 00000000..9a058f82 --- /dev/null +++ b/klp-ui/src/api/flow/planExecuteRel.js @@ -0,0 +1,39 @@ +import request from '@/utils/request' + +export function listPlanExecuteRel(query) { + return request({ + url: '/flow/planExecuteRel/list', + method: 'get', + params: query + }) +} + +export function getPlanExecuteRel(relId) { + return request({ + url: '/flow/planExecuteRel/' + relId, + method: 'get' + }) +} + +export function addPlanExecuteRel(data) { + return request({ + url: '/flow/planExecuteRel', + method: 'post', + data: data + }) +} + +export function updatePlanExecuteRel(data) { + return request({ + url: '/flow/planExecuteRel', + method: 'put', + data: data + }) +} + +export function delPlanExecuteRel(relIds) { + return request({ + url: '/flow/planExecuteRel/' + relIds, + method: 'delete' + }) +} diff --git a/klp-ui/src/components/FileList/index.vue b/klp-ui/src/components/FileList/index.vue index 54da9c12..f3cd674d 100644 --- a/klp-ui/src/components/FileList/index.vue +++ b/klp-ui/src/components/FileList/index.vue @@ -121,7 +121,7 @@ export default { diff --git a/klp-ui/src/views/wms/post/objection/components/CoilInfoSection.vue b/klp-ui/src/views/wms/post/objection/components/CoilInfoSection.vue new file mode 100644 index 00000000..3bbfac5b --- /dev/null +++ b/klp-ui/src/views/wms/post/objection/components/CoilInfoSection.vue @@ -0,0 +1,81 @@ + + + + + diff --git a/klp-ui/src/views/wms/post/objection/components/ContractInfoSection.vue b/klp-ui/src/views/wms/post/objection/components/ContractInfoSection.vue new file mode 100644 index 00000000..96531d12 --- /dev/null +++ b/klp-ui/src/views/wms/post/objection/components/ContractInfoSection.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/klp-ui/src/views/wms/post/objection/components/DepartmentOpinionSection.vue b/klp-ui/src/views/wms/post/objection/components/DepartmentOpinionSection.vue new file mode 100644 index 00000000..a169ef7c --- /dev/null +++ b/klp-ui/src/views/wms/post/objection/components/DepartmentOpinionSection.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/klp-ui/src/views/wms/post/objection/components/ExecutionFeedbackSection.vue b/klp-ui/src/views/wms/post/objection/components/ExecutionFeedbackSection.vue new file mode 100644 index 00000000..e7b20500 --- /dev/null +++ b/klp-ui/src/views/wms/post/objection/components/ExecutionFeedbackSection.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/klp-ui/src/views/wms/post/objection/components/HandlingSchemeSection.vue b/klp-ui/src/views/wms/post/objection/components/HandlingSchemeSection.vue new file mode 100644 index 00000000..2b0beed6 --- /dev/null +++ b/klp-ui/src/views/wms/post/objection/components/HandlingSchemeSection.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/klp-ui/src/views/wms/post/objection/components/HeaderControlSection.vue b/klp-ui/src/views/wms/post/objection/components/HeaderControlSection.vue new file mode 100644 index 00000000..4032fbfe --- /dev/null +++ b/klp-ui/src/views/wms/post/objection/components/HeaderControlSection.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/klp-ui/src/views/wms/post/objection/dashboard.vue b/klp-ui/src/views/wms/post/objection/dashboard.vue new file mode 100644 index 00000000..e69de29b diff --git a/klp-ui/src/views/wms/post/objection/index.vue b/klp-ui/src/views/wms/post/objection/index.vue new file mode 100644 index 00000000..5f4038f9 --- /dev/null +++ b/klp-ui/src/views/wms/post/objection/index.vue @@ -0,0 +1,704 @@ + + + + + diff --git a/klp-ui/src/views/wms/post/objection/opinion.vue b/klp-ui/src/views/wms/post/objection/opinion.vue new file mode 100644 index 00000000..b091faf1 --- /dev/null +++ b/klp-ui/src/views/wms/post/objection/opinion.vue @@ -0,0 +1,314 @@ + + + + + diff --git a/klp-ui/src/views/wms/post/objection/todo.vue b/klp-ui/src/views/wms/post/objection/todo.vue new file mode 100644 index 00000000..3bba6013 --- /dev/null +++ b/klp-ui/src/views/wms/post/objection/todo.vue @@ -0,0 +1,270 @@ + + + + +