From 1905783af69723b15a10f1a6564629fe971e34b4 Mon Sep 17 00:00:00 2001 From: cwchen <1048842385@qq.com> Date: Wed, 26 Nov 2025 10:47:46 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E6=8B=9B=E6=A0=87=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/analysis/analysis.js | 55 +-- .../analysis/components/AnalysisDetail.vue | 63 +--- src/views/analysis/components/BidForm.vue | 112 +++--- src/views/analysis/components/ProForm.vue | 348 ++++++++++++++++++ src/views/analysis/config.js | 38 +- src/views/analysis/index.vue | 2 +- 6 files changed, 468 insertions(+), 150 deletions(-) create mode 100644 src/views/analysis/components/ProForm.vue diff --git a/src/api/analysis/analysis.js b/src/api/analysis/analysis.js index a09f936..fc9ea40 100644 --- a/src/api/analysis/analysis.js +++ b/src/api/analysis/analysis.js @@ -1,4 +1,5 @@ import request from '@/utils/request' +import { data } from 'jquery' // 招标解析->查询列表 export function listAPI(params) { @@ -18,37 +19,47 @@ export function addDataAPI(data) { }) } -/* 工器具库->修改工器具 */ -export function editDataAPI(data) { +// 招标解析->查看标段列表 +export function getBidListAPI(params) { return request({ - url: '/smartBid/mainDatabase/tool/editData', - method: 'POST', - data - }) -} - -/* 工器具库->删除工器具 */ -export function delDataAPI(data) { - return request({ - url: '/smartBid/mainDatabase/tool/delData', - method: 'POST', - data - }) -} - -/* 工器具库->查询详情 */ -export function getDetailDataAPI(params) { - return request({ - url: '/smartBid/mainDatabase/tool/detailData', + url: '/smartBid/analysis/getBidList', method: 'GET', params }) } +// 招标解析->查看项目详情 +export function getProDetailAPI(params) { + return request({ + url: '/smartBid/analysis/getProDetail', + method: 'GET', + params + }) +} + +// 招标解析->更新项目数据 +export function editProDataAPI(data) { + return request({ + url: '/smartBid/analysis/editProData', + method: 'POST', + data + }) +} + +// 招标解析->更新标段数据 +export function editBidDataAPI(data) { + return request({ + url: '/smartBid/analysis/editBidData', + method: 'POST', + data + }) +} + + /* 测试 mq */ export function testMQAPI(params) { return request({ - url: '/smartBid/analysis/testAsyncMq', + url: '/smartBid/analysis/testAsyncMq2', method: 'GET', params }) diff --git a/src/views/analysis/components/AnalysisDetail.vue b/src/views/analysis/components/AnalysisDetail.vue index 98605f2..77db5ec 100644 --- a/src/views/analysis/components/AnalysisDetail.vue +++ b/src/views/analysis/components/AnalysisDetail.vue @@ -33,7 +33,7 @@ 招标人 - {{ detailData.bidder || '--' }} + {{ detailData.tenderer || '--' }} @@ -48,13 +48,13 @@ 开标时间 - {{ detailData.openTime || '--' }} + {{ detailData.bidOpeningTime || '--' }} 开标方式 - {{ detailData.openMethod || '--' }} + {{ detailData.bidOpeningMethod || '--' }} @@ -62,14 +62,14 @@ 项目简介 - {{ detailData.proDescription || '--' }} + {{ detailData.proIntroduction || '--' }} + :columnsList="detailColumnsList" :request-api="getBidListAPI" :sendParams="sendParams" + :handleColWidth="180" :isShowtableCardStyle="false" :autoLoad="true"> @@ -86,17 +86,16 @@ - + diff --git a/src/views/analysis/components/BidForm.vue b/src/views/analysis/components/BidForm.vue index 06aa51e..d2e7497 100644 --- a/src/views/analysis/components/BidForm.vue +++ b/src/views/analysis/components/BidForm.vue @@ -14,7 +14,7 @@ + maxlength="32"> + maxlength="32"> - + @@ -51,26 +51,16 @@ + diff --git a/src/views/analysis/config.js b/src/views/analysis/config.js index 5cc07d3..0a24706 100644 --- a/src/views/analysis/config.js +++ b/src/views/analysis/config.js @@ -69,26 +69,26 @@ export const columnsList = [ ] export const detailColumnsList = [ - { t_props: 'toolName', t_label: '标的名称' }, - { t_props: 'model', t_label: '单位' }, - { t_props: 'unit', t_label: '标段标号' }, - { t_props: 'technicalParameters', t_label: '标段名称' }, - { t_props: 'mainFunction', t_label: '最高投标限价(万元)' }, - { t_props: 'mainFunction', t_label: '安全文明施工费(万元)' }, - { t_props: 'mainFunction', t_label: '投标保证金(万元)' }, - { t_props: 'mainFunction', t_label: '工期' }, - { t_props: 'mainFunction', t_label: '招标阶段' }, + { t_props: 'markName', t_label: '标的名称' }, + { t_props: 'unit', t_label: '单位' }, + { t_props: 'bidNumber', t_label: '标段标号' }, + { t_props: 'bidName', t_label: '标段名称' }, + { t_props: 'maximumBidLimit', t_label: '最高投标限价(万元)' }, + { t_props: 'safetyConstFee', t_label: '安全文明施工费(万元)' }, + { t_props: 'bidBond', t_label: '投标保证金(万元)' }, + { t_props: 'duration', t_label: '工期' }, + { t_props: 'biddingStage', t_label: '招标阶段' }, ] export const bidListColumnsList = [ - { t_props: 'toolName', t_label: '标的名称' }, - { t_props: 'model', t_label: '单位' }, - { t_props: 'unit', t_label: '标段标号' }, - { t_props: 'technicalParameters', t_label: '标段名称' }, - { t_props: 'mainFunction', t_label: '最高投标限价(万元)' }, - { t_props: 'mainFunction', t_label: '安全文明施工费(万元)' }, - { t_props: 'mainFunction', t_label: '投标保证金(万元)' }, - { t_props: 'mainFunction', t_label: '工期' }, - { t_props: 'mainFunction', t_label: '招标阶段' }, - { t_props: 'mainFunction', t_label: '解析状态' } + { t_props: 'markName', t_label: '标的名称' }, + { t_props: 'unit', t_label: '单位' }, + { t_props: 'bidNumber', t_label: '标段标号' }, + { t_props: 'bidName', t_label: '标段名称' }, + { t_props: 'maximumBidLimit', t_label: '最高投标限价(万元)' }, + { t_props: 'safetyConstFee', t_label: '安全文明施工费(万元)' }, + { t_props: 'bidBond', t_label: '投标保证金(万元)' }, + { t_props: 'duration', t_label: '工期' }, + { t_props: 'biddingStage', t_label: '招标阶段' }, + { t_props: 'parsingState', t_label: '解析状态' } ] \ No newline at end of file diff --git a/src/views/analysis/index.vue b/src/views/analysis/index.vue index 65cd7ec..3010eff 100644 --- a/src/views/analysis/index.vue +++ b/src/views/analysis/index.vue @@ -146,7 +146,7 @@ export default { this.$router.push({ name: 'AnalysisDetail', query: { - proId: encryptWithSM4('2'), + proId: encryptWithSM4(row.proId + '' || '0'), }, }) }, From 3dc9edac420c5585db5fb186a47cb47be6611e1d Mon Sep 17 00:00:00 2001 From: cwchen <1048842385@qq.com> Date: Wed, 26 Nov 2025 11:25:21 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E6=8B=9B=E6=A0=87=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../analysis/components/AnalysisDetail.vue | 52 +++++++++++++++-- src/views/analysis/components/ProForm.vue | 56 +++++++++---------- 2 files changed, 74 insertions(+), 34 deletions(-) diff --git a/src/views/analysis/components/AnalysisDetail.vue b/src/views/analysis/components/AnalysisDetail.vue index 77db5ec..94277fc 100644 --- a/src/views/analysis/components/AnalysisDetail.vue +++ b/src/views/analysis/components/AnalysisDetail.vue @@ -8,8 +8,14 @@ - - 项目信息 + + + 项目信息 + + + 编辑 + @@ -86,8 +92,12 @@ + + + @@ -97,12 +107,14 @@ import { getProDetailAPI,getBidListAPI } from '@/api/analysis/analysis' import { formLabel, detailColumnsList } from '../config' import TableModel from '@/components/TableModel2' import BidForm from './BidForm.vue' +import ProForm from './ProForm.vue' export default { name: 'AnalysisDetail', components: { TableModel, - BidForm + BidForm, + ProForm }, data() { return { @@ -115,6 +127,7 @@ export default { proId: decryptWithSM4(this.$route.query.proId), }, showBidForm: false, + showProForm: false, title: '', rowData: {}, } @@ -142,16 +155,29 @@ export default { const obj = { path: "/analysis" } this.$tab.closeOpenPage(obj) }, - // 编辑 + // 编辑标段 handleUpdate(data) { this.title = '编辑' this.rowData = data this.showBidForm = true }, + /* 搜索操作 */ handleQuery() { + this.rowData = {} this.$refs.detailTableRef.getTableList() }, + /* 更新项目信息 */ + handleProQuery(data){ + this.rowData = {} + this.detailData = data + }, + /* 编辑项目信息 */ + handleEditProject() { + this.title = '编辑' + this.rowData = this.detailData + this.showProForm = true + }, } } @@ -240,8 +266,15 @@ export default { .card-header { display: flex; align-items: center; + justify-content: space-between; gap: 8px; + .card-header-left { + display: flex; + align-items: center; + gap: 8px; + } + .header-icon { font-size: 20px; color: #409EFF; @@ -253,6 +286,17 @@ export default { font-weight: 600; color: #303133; } + + .edit-btn { + color: #409EFF; + font-size: 14px; + font-weight: 500; + padding: 0; + + &:hover { + color: #66b1ff; + } + } } .analysis-detail-content { diff --git a/src/views/analysis/components/ProForm.vue b/src/views/analysis/components/ProForm.vue index 91f8d17..bbf931f 100644 --- a/src/views/analysis/components/ProForm.vue +++ b/src/views/analysis/components/ProForm.vue @@ -9,8 +9,8 @@ maxlength="64"> - + - - + + + :autosize="{ minRows: 5, maxRows: 8 }" maxlength="512"> @@ -42,7 +42,7 @@ + \ No newline at end of file From 6f77396748457991df62ca611f570b803513328c Mon Sep 17 00:00:00 2001 From: cwchen <1048842385@qq.com> Date: Wed, 26 Nov 2025 17:01:59 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E6=96=87=E4=BB=B6=E9=A2=84=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/common/FileOrImageDisplay.vue | 41 +++++--------- src/views/common/ViewFile.vue | 2 +- .../components/child/OtherInfoDetail.vue | 3 +- .../technical/components/RightTable.vue | 53 +++++-------------- 4 files changed, 30 insertions(+), 69 deletions(-) diff --git a/src/views/common/FileOrImageDisplay.vue b/src/views/common/FileOrImageDisplay.vue index a0537fe..d5384f8 100644 --- a/src/views/common/FileOrImageDisplay.vue +++ b/src/views/common/FileOrImageDisplay.vue @@ -32,32 +32,28 @@ -- - + + @@ -278,20 +278,5 @@ export default { } } -.preview-dialog ::v-deep .el-dialog { - height: 88vh; - display: flex; - flex-direction: column; -} -.preview-dialog ::v-deep .el-dialog__body { - flex: 1; - padding: 0; - height: 0; - /* 重要:让flex布局生效 */ -} - -.preview-dialog ::v-deep .onlyoffice-container { - height: 100%; -} \ No newline at end of file diff --git a/src/views/common/ViewFile.vue b/src/views/common/ViewFile.vue index 5c7d23d..0e3502f 100644 --- a/src/views/common/ViewFile.vue +++ b/src/views/common/ViewFile.vue @@ -23,7 +23,7 @@ export default { dialogVisible: true, documentUrl: this.file.filePath, documentTitle: this.file.fileName, - documentKey: this.file.sourceId + '', + documentKey: (this.file?.sourceId || this.file?.id || '') + '', mode: 'view', type: 'desktop', } diff --git a/src/views/enterpriseLibrary/personnel/components/child/OtherInfoDetail.vue b/src/views/enterpriseLibrary/personnel/components/child/OtherInfoDetail.vue index 29dd413..8f950d6 100644 --- a/src/views/enterpriseLibrary/personnel/components/child/OtherInfoDetail.vue +++ b/src/views/enterpriseLibrary/personnel/components/child/OtherInfoDetail.vue @@ -104,7 +104,8 @@ export default { name: item.fileName, filePath: item.filePath, lsFilePath: item.lsFilePath, - fileType: item.fileType + fileType: item.fileType, + id: item.sourceId })); } diff --git a/src/views/enterpriseLibrary/technical/components/RightTable.vue b/src/views/enterpriseLibrary/technical/components/RightTable.vue index d06a776..0726898 100644 --- a/src/views/enterpriseLibrary/technical/components/RightTable.vue +++ b/src/views/enterpriseLibrary/technical/components/RightTable.vue @@ -31,11 +31,12 @@ - + + @@ -44,13 +45,13 @@ import TableModel from '@/components/TableModel2' import { columnsList, formLabel } from './config' import { listAPI, delDataAPI } from '@/api/enterpriseLibrary/technical/technical' import { encryptWithSM4 } from '@/utils/sm' -import OnlyOfficeViewer from '@/views/common/OnlyOfficeViewer' +import ViewFile from '@/views/common/ViewFile' export default { name: 'RightTableTechnical', components: { TableModel, - OnlyOfficeViewer + ViewFile }, dicts: ['construction_nature', 'structural_form', 'basic_form'], props: { @@ -69,11 +70,7 @@ export default { columnsList, listAPI, dialogVisible: false, - documentUrl: '', - documentTitle: '', - documentKey: '', - mode: 'view', - type: 'desktop', + fileData: {}, } }, watch: { @@ -157,22 +154,17 @@ export default { /** 查看文件 */ viewFile(row) { console.log(row); - this.documentTitle = row.technicalName - this.documentKey = row.resourceFileVoList?.[0]?.sourceId + '' + this.fileData = { + fileName: row.technicalName, + id: row.resourceFileVoList?.[0]?.sourceId + '' + } this.dialogVisible = true }, - handleDocumentReady() { - console.log('文档已准备就绪') - }, - handleAppReady() { - console.log('应用已准备就绪') - }, - handleError(error) { - console.log('错误:', error) - }, - handleInitialized() { - console.log('初始化完成') + handleCloseDialog() { + this.dialogVisible = false + this.fileData = {} }, + /** 删除操作 */ handleDelete(raw) { this.$confirm(`确定要删除方案名称"${raw.technicalName}"吗?删除后将无法恢复!`, '操作提示', { @@ -242,21 +234,4 @@ export default { margin-right: 0; } } - -.preview-dialog ::v-deep .el-dialog { - height: 88vh; - display: flex; - flex-direction: column; -} - -.preview-dialog ::v-deep .el-dialog__body { - flex: 1; - padding: 0; - height: 0; - /* 重要:让flex布局生效 */ -} - -.preview-dialog ::v-deep .onlyoffice-container { - height: 100%; -}