From 40e5205ccb631edf84906f91bea74fe49b51f450 Mon Sep 17 00:00:00 2001 From: z9130 <984661593@qq.com> Date: Tue, 22 Oct 2024 19:59:41 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=89=E5=95=86=E7=BB=93=E6=9E=9C=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-contract/src/api/index.ts | 36 +++- .../views/contract/business/edit/index.vue | 5 +- .../business/result/fill-result-card.vue | 182 ++++++++++++++++-- .../views/contract/business/result/index.vue | 134 +++++++++++-- .../company/list/choose-company-modal.vue | 3 + .../components/basis-table/basis-table.vue | 12 +- .../components/file-card/file-card.vue | 3 +- .../views/contract/declaration/edit/curd.tsx | 8 +- .../views/contract/declaration/edit/index.vue | 22 ++- .../info-approval/approval-card.vue | 5 +- .../info-approval/info-approval.vue | 11 +- .../info-business/business-card.vue | 75 ++++---- .../info-business/info-business.vue | 30 +-- .../src/views/contract/iframe-info/index.vue | 8 +- apps/web-contract/vite.config.mts | 6 +- packages/preferences/src/index.ts | 4 +- resource/apiDefinitions.ts | 39 +++- 17 files changed, 446 insertions(+), 137 deletions(-) diff --git a/apps/web-contract/src/api/index.ts b/apps/web-contract/src/api/index.ts index 0e6a53b7..bf5bb49d 100644 --- a/apps/web-contract/src/api/index.ts +++ b/apps/web-contract/src/api/index.ts @@ -547,6 +547,15 @@ export default { /** 合同系统/履行/履行提示/合同变更 获取合同变更信息 */ get_getContractChangeInfo: (data?: QueryOptions) => http.get('/app/lvxChange/getContractChangeInfo', data), + /** 合同系统/履行/履行提示/合同变更 查询流程未配置人员节点 */ + get_getFlowNodeUserConfig: (data?: QueryOptions) => + http.get('/app/lvxChange/getFlowNodeUserConfig', data), + /** 合同系统/履行/履行提示/合同变更 流程启动 */ + post_startWorkFlow: (data?: BodyOptions) => + http.post('/app/lvxChange/startWorkFlow', data), + /** 合同系统/履行/履行提示/合同变更 审核通过 */ + post_submit: (data?: BodyOptions) => + http.post('/app/lvxChange/submit', data), }, contractRelieve: { /** 合同系统/履行/履行提示/合同解除 获取合同解除信息 */ @@ -579,6 +588,11 @@ export default { lvxResult: { /** 合同系统/履行/履行结果 履行结果保存 */ post_save: (data?: BodyOptions) => http.post('/app/lvxResult/save', data), + /** 合同系统/履行/履行结果 分页履行结果查询 */ + get_page: (data?: QueryOptions) => http.get('/app/lvxResult/page', data), + /** 合同系统/履行/履行结果 已办 */ + get_pageDone: (data?: QueryOptions) => + http.get('/app/lvxResult/pageDone', data), }, contractFiling: { /** 合同系统/履行/履行提示/临时归档 保存临时归档信息 */ @@ -641,7 +655,7 @@ export default { /** 合同系统/签订 获取合同签订信息 */ get_getContractSignInfo: (data?: QueryOptions) => http.get('/app/qdSign/getContractSignInfo', data), - /** 合同系统/签订 打印签订审批表 */ + /** 合同系统/打印 选商打印 */ get_printApprove: (data?: QueryOptions) => http.get('/app/qdSign/printApprove', data), /** 合同系统/签订 打印文本 */ @@ -806,6 +820,15 @@ export default { /** 合同系统/选商/选商结果 待审核 */ get_toDoPage: (data?: QueryOptions) => http.get('/app/biddingResult/toDoPage', data), + /** 合同系统/选商/选商结果 查询合同信息 */ + get_getContractInfo: (data?: QueryOptions) => + http.get('/app/biddingResult/getContractInfo', data), + /** 合同系统/选商/选商结果 查询供应商列表 */ + get_getProviderInfo: (data?: QueryOptions) => + http.get('/app/biddingResult/getProviderInfo', data), + /** 合同系统/选商/选商结果 选商专家列表 */ + get_queryBiddingExpert: (data?: QueryOptions) => + http.get('/app/biddingResult/queryBiddingExpert', data), }, home: { /** 合同系统/首页待办/已办 首页待办 */ @@ -859,8 +882,8 @@ export default { /** 设备管理/设备静态库管理/设备调拨 调拨信息保存 */ post_save: (data?: BodyOptions) => http.post('/app/equAllot/save', data), /** 设备管理/设备静态库管理/设备调拨 调拨信息删除 */ - post_delete: (data?: BodyOptions) => - http.post('/app/equAllot/delete', data), + post_deletes: (data?: BodyOptions) => + http.post('/app/equAllot/deletes', data), }, bidding: { /** 合同系统/标段信息 标段查询 */ @@ -870,6 +893,9 @@ export default { /** 合同系统/标段信息 标段信息删除 */ post_deletes: (data?: BodyOptions) => http.post('/app/bidding/deletes', data), + /** 合同系统/选商/选商结果 查询标段列表 */ + get_getBuddingPtInfoList: (data?: QueryOptions) => + http.get('/app/bidding/getBuddingPtInfoList', data), }, equAccident: { /** 设备管理/设备使用管理/事故处理 事故处理(查询/获取) */ @@ -915,8 +941,8 @@ export default { post_save: (data?: BodyOptions) => http.post('/app/equDayRepair/save', data), /** 设备管理/设备使用管理/日常维修 删除 */ - get_deletes: (data?: QueryOptions) => - http.get('/app/equDayRepair/deletes', data), + post_deletes: (data?: BodyOptions) => + http.post('/app/equDayRepair/deletes', data), /** 设备管理/查询管理/日常维修查询 查询 */ get_query: (data?: QueryOptions) => http.get('/app/equDayRepair/query', data), diff --git a/apps/web-contract/src/views/contract/business/edit/index.vue b/apps/web-contract/src/views/contract/business/edit/index.vue index c6f000a1..62650c2b 100644 --- a/apps/web-contract/src/views/contract/business/edit/index.vue +++ b/apps/web-contract/src/views/contract/business/edit/index.vue @@ -636,7 +636,10 @@ onMounted(async () => { 保存 -import { onMounted, ref } from 'vue'; +import { nextTick, onMounted, ref } from 'vue'; import { useVbenModal } from '@vben/common-ui'; @@ -12,12 +12,14 @@ import chooseCompanyModal from '../../company/list/choose-company-modal.vue'; const props = withDefaults( defineProps<{ + businseeData: any; contractId: string; projectId: string; }>(), { contractId: '', projectId: '', + businseeData: () => ({}), }, ); @@ -33,12 +35,10 @@ const companyChooseType = ref<'biddingProvider' | 'providerPt'>('providerPt'); /** 必填字段校验 */ const requiredFieldRules: any = { - // contractName: { required: true, message: "合同名称不得为空" }, - // ctrType: { required: true, message: "合同类别不得为空" }, - // ctrTwoType: { required: true, message: "合同二级类别不得为空" }, - // fundAllocation: { required: true, message: "资金流向不得为空" }, - // fundDitch: { required: true, message: "资金渠道不得为空" }, - // organiza: { required: true, message: "组织形式不得为空" }, + openDate: { required: true, message: '开标时间不得为空' }, + openPlace: { required: true, message: '开标地点不得为空' }, + participant: { required: true, message: '参加人不得为空' }, + processDesc: { required: true, message: '过程描述不得为空' }, }; /** 必填字段校验,如果是必填字段则返回对应message */ @@ -51,6 +51,7 @@ function isRequired(field: string): string { } const biddingExpertRef = ref(); +const bidList = ref([]); const biddingExpertList = ref([]); @@ -71,14 +72,17 @@ function onAddProviderPt(type: string, data?: any) { chooseCompanyModalApi.setData({ title: '选择单位', limitMultipleNum: 5, - guids: tableFullData.map((item) => item.guid) || [], + guids: tableFullData.map((item) => item._guid) || [], }); chooseCompanyModalApi.open(); } if (type === 'confirm') { console.log(data); - data.map((item) => (item.guid = undefined)); + data.map((item) => { + item._guid = item.guid; + item.guid = undefined; + }); providerPtRef1.value.insert(data); providerPtRef2.value.insert(data); } @@ -87,19 +91,22 @@ function onAddProviderPt(type: string, data?: any) { function onAddBiddingProvider(type: string, data?: any) { companyChooseType.value = 'biddingProvider'; const tableFullData = biddingProviderRef.value.getTableData()?.fullData || []; - + console.log(tableFullData); if (type === 'openModal') { chooseCompanyModalApi.setData({ title: '选择单位', limitMultipleNum: 1, - guids: tableFullData.map((item) => item.guid) || [], + guids: [], }); chooseCompanyModalApi.open(); } if (type === 'confirm') { console.log(data); - data.map((item) => (item.guid = undefined)); + data.map((item) => { + item._guid = item.guid; + item.guid = undefined; + }); biddingProviderRef.value.loadData(data); } } @@ -125,10 +132,10 @@ function onRemoveProviderPtRow(row) { } function handleChooseCompanyConfirm(e) { - if (companyChooseType.value == 'providerPt') { + if (companyChooseType.value === 'providerPt') { onAddProviderPt('confirm', e); } - if (companyChooseType.value == 'biddingProvider') { + if (companyChooseType.value === 'biddingProvider') { onAddBiddingProvider('confirm', e); } } @@ -139,12 +146,17 @@ async function verify() { for (const field of Object.keys(requiredFieldRules)) { if (!biddingResult.value[field]) { message.error(isRequired(field)); - return; + return false; } } + return true; } -function getFormData() { +async function getFormData() { + if (!(await verify())) { + return; + } + const _fullData1 = providerPtRef1.value.getTableData().fullData; const _fullData2 = providerPtRef2.value.getTableData().fullData; const _fullData3 = biddingExpertRef.value.getTableData().fullData; @@ -152,6 +164,64 @@ function getFormData() { console.log(_fullData1, _fullData2, _fullData3, _fullData4); + if (_fullData1.length === 0) { + message.error('请添加标段信息'); + return; + } + + for (const item of _fullData1) { + if (!item.bidPlace) { + message.error('请补全标段信息中的投标地点'); + return; + } + if (!item.bidMoney) { + message.error('请补全标段信息中的投标保证金'); + return; + } + } + + if (_fullData3.length === 0) { + message.error('请添加专家信息'); + return; + } + for (const item of _fullData3) { + if (!item.expertName) { + message.error('请补全专家信息中的评委姓名'); + return; + } + if (!item.expertSex) { + message.error('请补全专家信息中的性别'); + return; + } + // if (!item.expertAge) { + // message.error('请补全专家信息中的年龄'); + // return; + // } + // if (!item.expertDepartName) { + // message.error('请补全专家信息中的部门'); + // return; + // } + // if (!item.professionTypeName) { + // message.error('请补全专家信息中的专业'); + // return; + // } + // if (!item.titleTypeName) { + // message.error('请补全专家信息中的职称'); + // return; + // } + // if (!item.positionName) { + // message.error('请补全专家信息中的职务'); + // return; + // } + } + + for (const item of _fullData2) { + if (!item.offerMoney) { + message.error('请补全单位报价及评标信息中的报价'); + return; + } + } + const data1: any[] = []; for (const item1 of _fullData1) { @@ -159,6 +229,7 @@ function getFormData() { if (item1.providerId === item2.providerId) { data1.push({ ...item1, + phasePtId: '99999', offerMoney: item2.offerMoney, bidScore: item2.bidScore, bidDesc: item2.bidDesc, @@ -172,6 +243,7 @@ function getFormData() { tempBiddingResult.projectId = props.projectId; const tempBiddingPtInfo = JSON.parse(JSON.stringify(biddingPtInfo.value)); tempBiddingPtInfo.projectId = props.projectId; + tempBiddingPtInfo.phasePtId = '99999'; _fullData3.map((item) => (item.projectId = props.projectId)); const form = { @@ -186,6 +258,53 @@ function getFormData() { onMounted(async () => { try { + // 查询供应商信息; + let providerData = await Apis.contractRecommendProvider.get_list({ + params: { + contractId: props.contractId, + }, + }); + providerData = providerData.rows || []; + + // 查询 + nextTick(() => { + providerPtRef1.value.loadData(providerData); + providerPtRef2.value.loadData(providerData); + }); + + // if (props.businseeData.frameProtocol === '1') { + // for (const item of bidList.value) { + // const rows = []; + // for (const provider of providerData) { + // if (item.phaseSeq == provider.phaseSeq) { + // rows.push(provider); + // } + // } + // item.providerList = rows; + // // nextTick(() => { + // // providerGridRefs.value.get(`${item.phaseSeq}`).insert(rows); + // // }); + // } + // } else { + // nextTick(() => { + // providerPtRef1.value.loadData(providerData); + // providerPtRef2.value.loadData(providerData); + // // providerGridRefs2.value.insert(providerData); + // }); + // } + + // 查询专家信息 + const expertData = await Apis.biddingResult.get_queryBiddingExpert({ + params: { + projectId: props.projectId, + contractId: props.contractId, + }, + }); + console.log('专家信息', expertData); + nextTick(() => { + biddingExpertRef.value.loadData(expertData.rows); + }); + // 查询选商结果填报信息 const data = await Apis.biddingResult.get_page({ params: { @@ -242,7 +361,11 @@ defineExpose({ @@ -330,24 +453,40 @@ defineExpose({ - + + - + + - + + - + + diff --git a/apps/web-contract/src/views/contract/business/result/index.vue b/apps/web-contract/src/views/contract/business/result/index.vue index 246229ea..0a0d477e 100644 --- a/apps/web-contract/src/views/contract/business/result/index.vue +++ b/apps/web-contract/src/views/contract/business/result/index.vue @@ -1,13 +1,14 @@