From 6b350c8d7a2dc46a0e2d00b4ad37482ba4be15ca Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Mon, 12 Oct 2026 16:29:30 +0800 Subject: [PATCH] =?UTF-8?q?2026-10-12=20=E9=A1=B9=E7=9B=AE=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=EF=BC=9A=E4=B8=BB=E4=BF=A1=E6=81=AF=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E5=86=85=E5=AE=B9=E8=B0=83=E6=95=B4=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project/projectInfo/projectInfo.vue | 251 ++++++++++++++---- 1 file changed, 193 insertions(+), 58 deletions(-) diff --git a/src/views/modules/project/projectInfo/projectInfo.vue b/src/views/modules/project/projectInfo/projectInfo.vue index 5bd0c76..6543845 100644 --- a/src/views/modules/project/projectInfo/projectInfo.vue +++ b/src/views/modules/project/projectInfo/projectInfo.vue @@ -551,92 +551,111 @@ { userId: this.$store.state.user.name, functionId: 101002001, - serialNumber: '101002001Table1ProjectType', + serialNumber: '101002001Table1ProjectName', tableId: "101002001Table1", tableName: "项目信息主表", - columnProp: "projectType", + columnProp: "projectName", headerAlign: "center", - align: "center", - columnLabel: "项目类型", + align: "left", + columnLabel: "项目名称", columnHidden: false, columnImage: false, columnSortable: false, sortLv: 0, status: true, fixed: '', - columnWidth: 100 + columnWidth: 200 }, { userId: this.$store.state.user.name, functionId: 101002001, - serialNumber: '101002001Table1ProjectName', + serialNumber: '101002001Table1IndustryDesc', tableId: "101002001Table1", tableName: "项目信息主表", - columnProp: "projectName", + columnProp: "industryDesc", headerAlign: "center", align: "left", - columnLabel: "项目名称", + columnLabel: "行业", columnHidden: false, columnImage: false, columnSortable: false, sortLv: 0, status: true, fixed: '', - columnWidth: 200 + columnWidth: 120 }, { userId: this.$store.state.user.name, functionId: 101002001, - serialNumber: '101002001Table1Status', + serialNumber: '101002001Table1CustomerName', tableId: "101002001Table1", tableName: "项目信息主表", - columnProp: "status", + columnProp: "customerName", headerAlign: "center", - align: "center", - columnLabel: "单据状态", + align: "left", + columnLabel: "客户名称", columnHidden: false, columnImage: false, columnSortable: false, sortLv: 0, status: true, fixed: '', - columnWidth: 100 + columnWidth: 150 }, { userId: this.$store.state.user.name, functionId: 101002001, - serialNumber: '101002001Table1NodeName', + serialNumber: '101002001Table1ProjectAmount', tableId: "101002001Table1", tableName: "项目信息主表", - columnProp: "nodeName", + columnProp: "projectAmount", + headerAlign: "center", + align: "right", + columnLabel: "项目年销售额CNY(K)", + columnHidden: false, + columnImage: false, + columnSortable: false, + sortLv: 0, + status: true, + fixed: '', + columnWidth: 170 + }, + { + userId: this.$store.state.user.name, + functionId: 101002001, + serialNumber: '101002001Table1ProductCategory', + tableId: "101002001Table1", + tableName: "项目信息主表", + columnProp: "productCategory", headerAlign: "center", align: "left", - columnLabel: "当前节点", + columnLabel: "产品类别", columnHidden: false, columnImage: false, columnSortable: false, + showOverflowTooltip: true, sortLv: 0, status: true, fixed: '', - columnWidth: 140 + columnWidth: 180 }, { userId: this.$store.state.user.name, functionId: 101002001, - serialNumber: '101002001Table1CurrentApprover', + serialNumber: '101002001Table1ProjectManagerName', tableId: "101002001Table1", tableName: "项目信息主表", - columnProp: "currentApprover", + columnProp: "projectManagerName", headerAlign: "center", align: "left", - columnLabel: "当前节点审批人", + columnLabel: "项目经理", columnHidden: false, columnImage: false, columnSortable: false, sortLv: 0, status: true, fixed: '', - columnWidth: 130 + columnWidth: 120 }, { userId: this.$store.state.user.name, @@ -659,39 +678,92 @@ { userId: this.$store.state.user.name, functionId: 101002001, - serialNumber: '101002001Table1ProjectAmount', + serialNumber: '101002001Table1Status', tableId: "101002001Table1", tableName: "项目信息主表", - columnProp: "projectAmount", + columnProp: "status", headerAlign: "center", - align: "right", - columnLabel: "项目年销售额CNY(K)", + align: "center", + columnLabel: "单据状态", columnHidden: false, columnImage: false, columnSortable: false, sortLv: 0, status: true, fixed: '', - columnWidth: 170 + columnWidth: 100 }, { userId: this.$store.state.user.name, functionId: 101002001, - serialNumber: '101002001Table1ProductCategory', + serialNumber: '101002001Table1NodeName', tableId: "101002001Table1", tableName: "项目信息主表", - columnProp: "productCategory", + columnProp: "nodeName", headerAlign: "center", align: "left", - columnLabel: "产品类别", + columnLabel: "当前节点", columnHidden: false, columnImage: false, columnSortable: false, - showOverflowTooltip: true, sortLv: 0, status: true, fixed: '', - columnWidth: 180 + columnWidth: 140 + }, + { + userId: this.$store.state.user.name, + functionId: 101002001, + serialNumber: '101002001Table1CurrentApprover', + tableId: "101002001Table1", + tableName: "项目信息主表", + columnProp: "currentApprover", + headerAlign: "center", + align: "left", + columnLabel: "当前节点审批人", + columnHidden: false, + columnImage: false, + columnSortable: false, + sortLv: 0, + status: true, + fixed: '', + columnWidth: 130 + }, + { + userId: this.$store.state.user.name, + functionId: 101002001, + serialNumber: '101002001Table1FinalCustomerId', + tableId: "101002001Table1", + tableName: "项目信息主表", + columnProp: "finalCustomerId", + headerAlign: "center", + align: "left", + columnLabel: "直接客户", + columnHidden: false, + columnImage: false, + columnSortable: false, + sortLv: 0, + status: true, + fixed: '', + columnWidth: 120 + }, + { + userId: this.$store.state.user.name, + functionId: 101002001, + serialNumber: '101002001Table1ProjectType', + tableId: "101002001Table1", + tableName: "项目信息主表", + columnProp: "projectType", + headerAlign: "center", + align: "center", + columnLabel: "项目类型", + columnHidden: false, + columnImage: false, + columnSortable: false, + sortLv: 0, + status: true, + fixed: '', + columnWidth: 100 }, { userId: this.$store.state.user.name, @@ -768,20 +840,40 @@ { userId: this.$store.state.user.name, functionId: 101002001, - serialNumber: '101002001Table1CustomerName', + serialNumber: '101002001Table1ProjectDesc', tableId: "101002001Table1", tableName: "项目信息主表", - columnProp: "customerName", + columnProp: "projectDesc", headerAlign: "center", align: "left", - columnLabel: "客户名称", + columnLabel: "客户产品", columnHidden: false, columnImage: false, columnSortable: false, + showOverflowTooltip: true, sortLv: 0, status: true, fixed: '', - columnWidth: 150 + columnWidth: 180 + }, + { + userId: this.$store.state.user.name, + functionId: 101002001, + serialNumber: '101002001Table1CustomerRemark', + tableId: "101002001Table1", + tableName: "项目信息主表", + columnProp: "customerRemark", + headerAlign: "center", + align: "left", + columnLabel: "客户产品应用", + columnHidden: false, + columnImage: false, + columnSortable: false, + showOverflowTooltip: true, + sortLv: 0, + status: true, + fixed: '', + columnWidth: 180 }, { userId: this.$store.state.user.name, @@ -2148,39 +2240,37 @@ }, checkField(){ + this.ensureProjectListColumns() if(!this.accessField('10202001')){ this.columnList1=this.columnList1.filter(item => item.columnProp !== 'customerId'); this.columnList1=this.columnList1.filter(item => item.columnProp !== 'customerName'); } if(!this.accessField('10202002')){ this.columnList1=this.columnList1.filter(item => item.columnProp !== 'projectSource'); + this.columnList1=this.columnList1.filter(item => item.columnProp !== 'projectSourceDesc'); } - this.ensureProjectListColumns() }, ensureProjectListColumns () { const columns = Array.isArray(this.columnList1) ? this.columnList1.slice() : [] const extras = [ - { - columnProp: 'projectAmount', - columnLabel: '项目年销售额CNY(K)', - align: 'right', - columnWidth: 170, - serialNumber: '101002001Table1ProjectAmount' - }, - { - columnProp: 'productCategory', - columnLabel: '产品类别', - align: 'left', - columnWidth: 180, - serialNumber: '101002001Table1ProductCategory' - } + { columnProp: 'industryDesc', columnLabel: '行业', align: 'left', columnWidth: 120, serialNumber: '101002001Table1IndustryDesc' }, + { columnProp: 'projectManagerName', columnLabel: '项目经理', align: 'left', columnWidth: 120, serialNumber: '101002001Table1ProjectManagerName' }, + { columnProp: 'finalCustomerId', columnLabel: '直接客户', align: 'left', columnWidth: 120, serialNumber: '101002001Table1FinalCustomerId' }, + { columnProp: 'projectDesc', columnLabel: '客户产品', align: 'left', columnWidth: 180, serialNumber: '101002001Table1ProjectDesc', showOverflowTooltip: true }, + { columnProp: 'customerRemark', columnLabel: '客户产品应用', align: 'left', columnWidth: 180, serialNumber: '101002001Table1CustomerRemark', showOverflowTooltip: true }, + { columnProp: 'projectAmount', columnLabel: '项目年销售额CNY(K)', align: 'right', columnWidth: 170, serialNumber: '101002001Table1ProjectAmount' }, + { columnProp: 'productCategory', columnLabel: '产品类别', align: 'left', columnWidth: 180, serialNumber: '101002001Table1ProductCategory', showOverflowTooltip: true } ] - let anchor = columns.findIndex(item => item.columnProp === 'customerProjectNo') extras.forEach(extra => { - if (columns.some(item => item.columnProp === extra.columnProp)) { + const existing = columns.find(item => item.columnProp === extra.columnProp) + if (existing) { + existing.columnLabel = extra.columnLabel + if (extra.showOverflowTooltip) { + existing.showOverflowTooltip = true + } return } - const column = { + columns.push({ userId: this.$store.state.user.name, functionId: 101002001, serialNumber: extra.serialNumber, @@ -2193,15 +2283,60 @@ columnHidden: false, columnImage: false, columnSortable: false, - showOverflowTooltip: extra.columnProp === 'productCategory', + showOverflowTooltip: extra.showOverflowTooltip || false, sortLv: 0, status: true, fixed: '', columnWidth: extra.columnWidth + }) + }) + const labelMap = { + projectDesc: '客户产品', + customerRemark: '客户产品应用' + } + columns.forEach(item => { + if (labelMap[item.columnProp]) { + item.columnLabel = labelMap[item.columnProp] + } + }) + const order = [ + 'projectId', + 'projectName', + 'industryDesc', + 'customerName', + 'projectAmount', + 'productCategory', + 'projectManagerName', + 'customerProjectNo', + 'status', + 'nodeName', + 'currentApprover', + 'finalCustomerId', + 'projectType', + 'priorityDesc', + 'projectOwnerName', + 'projectSourceDesc', + 'customerId', + 'projectDesc', + 'customerRemark', + 'createDate', + 'createBy', + 'updateDate', + 'updateBy' + ] + columns.sort((a, b) => { + const ia = order.indexOf(a.columnProp) + const ib = order.indexOf(b.columnProp) + if (ia === -1 && ib === -1) { + return 0 + } + if (ia === -1) { + return 1 + } + if (ib === -1) { + return -1 } - const insertAt = anchor >= 0 ? anchor + 1 : columns.length - columns.splice(insertAt, 0, column) - anchor = insertAt + return ia - ib }) this.columnList1 = columns },