From 3ff14aa26fc9695a04f6535ed4abcc324e627409 Mon Sep 17 00:00:00 2001 From: zmj <1493694146@qq.com> Date: Sat, 13 Apr 2024 16:29:07 +0800 Subject: [PATCH] add --- src/api/marketing_bid_evaluation.ts | 38 ++- src/api/marketing_bid_result.ts | 33 +- src/api/marketing_contract_change.ts | 41 +++ src/api/marketing_reflux_contract.ts | 15 + .../dialogTable/dialogTableConfig.ts | 114 ++++++- src/components/dialogTable/index.vue | 8 +- src/views/marketing_bid_evaluation/detail.vue | 3 - src/views/marketing_bid_evaluation/edit.vue | 70 ++-- src/views/marketing_bid_evaluation/index.vue | 69 +++- src/views/marketing_bid_info/detail.js | 146 ++++++++ src/views/marketing_bid_info/edit.vue | 316 ++++++++++++++---- src/views/marketing_bid_info/index.vue | 113 ++++--- src/views/marketing_bid_result/detail.js | 103 ++++++ src/views/marketing_bid_result/edit.vue | 271 ++++++++++++--- src/views/marketing_bid_result/index.vue | 79 ++--- src/views/marketing_competitor/detail.js | 56 ++++ src/views/marketing_competitor/edit.vue | 65 ++-- src/views/marketing_competitor/index.vue | 71 ++-- src/views/marketing_reflux_contract/index.vue | 118 +++++++ src/views/procurement_contract/index.vue | 2 +- .../procurement_contract_detail/index.vue | 3 +- 21 files changed, 1406 insertions(+), 328 deletions(-) create mode 100644 src/api/marketing_contract_change.ts create mode 100644 src/api/marketing_reflux_contract.ts create mode 100644 src/views/marketing_bid_info/detail.js create mode 100644 src/views/marketing_bid_result/detail.js create mode 100644 src/views/marketing_competitor/detail.js create mode 100644 src/views/marketing_reflux_contract/index.vue diff --git a/src/api/marketing_bid_evaluation.ts b/src/api/marketing_bid_evaluation.ts index 7263967..7f700be 100644 --- a/src/api/marketing_bid_evaluation.ts +++ b/src/api/marketing_bid_evaluation.ts @@ -1,26 +1,50 @@ -import request from '@/utils/request' +import request from "@/utils/request"; // 市场经营--投标管理--投标评审列表 export function apiMarketingBidEvaluationLists(params: any) { - return request.get({ url: '/marketing.marketing_bid_evaluation/lists', params }) + return request.get({ + url: "/marketing.marketing_bid_evaluation/lists", + params, + }); } // 添加市场经营--投标管理--投标评审 export function apiMarketingBidEvaluationAdd(params: any) { - return request.post({ url: '/marketing.marketing_bid_evaluation/add', params }) + return request.post({ + url: "/marketing.marketing_bid_evaluation/add", + params, + }); } // 编辑市场经营--投标管理--投标评审 export function apiMarketingBidEvaluationEdit(params: any) { - return request.post({ url: '/marketing.marketing_bid_evaluation/edit', params }) + return request.post({ + url: "/marketing.marketing_bid_evaluation/edit", + params, + }); } // 删除市场经营--投标管理--投标评审 export function apiMarketingBidEvaluationDelete(params: any) { - return request.post({ url: '/marketing.marketing_bid_evaluation/delete', params }) + return request.post({ + url: "/marketing.marketing_bid_evaluation/delete", + params, + }); } // 市场经营--投标管理--投标评审详情 export function apiMarketingBidEvaluationDetail(params: any) { - return request.get({ url: '/marketing.marketing_bid_evaluation/detail', params }) -} \ No newline at end of file + return request.get({ + url: "/marketing.marketing_bid_evaluation/detail", + params, + }); +} + +// 报名登记 + +export function apiMarketingBidEvaluationReg(params: any) { + return request.post({ + url: "/marketing.marketing_bid_evaluation/reg", + params, + }); +} diff --git a/src/api/marketing_bid_result.ts b/src/api/marketing_bid_result.ts index 314ec74..045a9f3 100644 --- a/src/api/marketing_bid_result.ts +++ b/src/api/marketing_bid_result.ts @@ -1,26 +1,45 @@ -import request from '@/utils/request' +import request from "@/utils/request"; // 市场经营--投标管理--投标结果列表 export function apiMarketingBidResultLists(params: any) { - return request.get({ url: '/marketing.marketing_bid_result/lists', params }) + return request.get({ url: "/marketing.marketing_bid_result/lists", params }); } // 添加市场经营--投标管理--投标结果 export function apiMarketingBidResultAdd(params: any) { - return request.post({ url: '/marketing.marketing_bid_result/add', params }) + return request.post({ url: "/marketing.marketing_bid_result/add", params }); } // 编辑市场经营--投标管理--投标结果 export function apiMarketingBidResultEdit(params: any) { - return request.post({ url: '/marketing.marketing_bid_result/edit', params }) + return request.post({ url: "/marketing.marketing_bid_result/edit", params }); } // 删除市场经营--投标管理--投标结果 export function apiMarketingBidResultDelete(params: any) { - return request.post({ url: '/marketing.marketing_bid_result/delete', params }) + return request.post({ + url: "/marketing.marketing_bid_result/delete", + params, + }); } // 市场经营--投标管理--投标结果详情 export function apiMarketingBidResultDetail(params: any) { - return request.get({ url: '/marketing.marketing_bid_result/detail', params }) -} \ No newline at end of file + return request.get({ url: "/marketing.marketing_bid_result/detail", params }); +} + +// 市场经营--投标管理--投标结果列表 +export function apiMarketingBidResultDetailLists(params: any) { + return request.get({ + url: "/marketing.marketing_bid_result_detail/lists", + params, + }); +} + +// 删除市场经营--投标管理--投标结果 +export function apiMarketingBidResultDetailDelete(params: any) { + return request.post({ + url: "/marketing.marketing_bid_result_detail/delete", + params, + }); +} diff --git a/src/api/marketing_contract_change.ts b/src/api/marketing_contract_change.ts new file mode 100644 index 0000000..ccc2489 --- /dev/null +++ b/src/api/marketing_contract_change.ts @@ -0,0 +1,41 @@ +import request from "@/utils/request"; + +// 市场经营--投标管理--竞争对手列表 +export function apiMarketingContractChangeLists(params: any) { + return request.get({ + url: "/marketing.marketing_contract_change/lists", + params, + }); +} + +// 添加市场经营--投标管理--竞争对手 +export function apiMarketingContractChangeAdd(params: any) { + return request.post({ + url: "/marketing.marketing_contract_change/add", + params, + }); +} + +// 编辑市场经营--投标管理--竞争对手 +export function apiMarketingContractChangeEdit(params: any) { + return request.post({ + url: "/marketing.marketing_contract_change/edit", + params, + }); +} + +// 删除市场经营--投标管理--竞争对手 +export function apiMarketingContractChangeDelete(params: any) { + return request.post({ + url: "/marketing.marketing_contract_change/delete", + params, + }); +} + +// 市场经营--投标管理--竞争对手详情 +export function apiMarketingContractChangeDetail(params: any) { + return request.get({ + url: "/marketing.marketing_contract_change/detail", + params, + }); +} diff --git a/src/api/marketing_reflux_contract.ts b/src/api/marketing_reflux_contract.ts new file mode 100644 index 0000000..a6ccbc4 --- /dev/null +++ b/src/api/marketing_reflux_contract.ts @@ -0,0 +1,15 @@ +import request from "@/utils/request"; + +export function apiMarketingRefluxContractLists(params: any) { + return request.get({ + url: "/marketing.marketing_contract_reflux/lists", + params, + }); +} + +export function apiMarketingRefluxContractReflux(params: any) { + return request.post({ + url: "/marketing.marketing_contract_reflux/reflux", + params, + }); +} diff --git a/src/components/dialogTable/dialogTableConfig.ts b/src/components/dialogTable/dialogTableConfig.ts index 827b6b0..d35fe38 100644 --- a/src/components/dialogTable/dialogTableConfig.ts +++ b/src/components/dialogTable/dialogTableConfig.ts @@ -921,12 +921,18 @@ export const marketing_business_opportunity: Iconfig = { fetchFn: apiMarketingBusinessOpportunityLists, serchList: [ { - label: "项目名称", - value: "project_name", + label: "招标方式", + value: "bid_type", + select: "bidding_method", }, { - label: "项目编号", - value: "project_code", + label: "投标性质", + value: "bid__nature", + select: "bid_nature", + }, + { + label: "投标项目编号", + value: "bid_code", }, ], tableList: [ @@ -943,3 +949,103 @@ export const marketing_business_opportunity: Iconfig = { { approve_status_text: "流程状态" }, ], }; + +import { apiMarketingBidEvaluationLists } from "@/api/marketing_bid_evaluation"; + +export const marketing_bid_evaluation: Iconfig = { + fetchFn: apiMarketingBidEvaluationLists, + dictData: "bidding_method,bid_nature", + + serchList: [ + { + label: "招标方式", + value: "bid_type", + select: "bidding_method", + }, + { + label: "投标性质", + value: "bid__nature", + select: "bid_nature", + }, + { + label: "投标项目编号", + value: "bid_code", + }, + ], + tableList: [ + { "business_opportunity.project_name": "业务机会" }, + { "business_opportunity.project_name": "项目名称" }, + { "business_opportunity.construct_company_name": "建设单位" }, + { "business_opportunity.total_investment": "工程总投资" }, + { bid_date: "投标日期" }, + { "business_opportunity.status_text": "投标状态" }, + { "business_opportunity.jianan_investment": "建安投资额" }, + { "business_opportunity.approve_status_text": "流程状态" }, + { end_date: "报名截止日期" }, + ], +}; + +import { apiMarketingBidInfoLists } from "@/api/marketing_bid_info"; + +export const marketing_bid_info: Iconfig = { + fetchFn: apiMarketingBidInfoLists, + serchList: [ + { + label: "建设单位", + value: "construct_company", + }, + { + label: "拟派总监/总监", + value: "general_manager", + }, + { + label: "投标负责人", + value: "bid_head", + }, + ], + tableList: [ + { "business_opportunity.project_name": "项目名称" }, + { margin_end_date: "保证金递交截止日期" }, + { expected_return_date: "预计归还日期" }, + { service_charge: "中标服务费" }, + { publish_website: "发布网址" }, + { general_manager_name: "拟派总监/经理" }, + { bid_quotation: "拟投标报价" }, + { bid_rate: "拟投标费率" }, + { bid_head_name: "投标负责人" }, + { technology_head_name: "技术标负责人" }, + { business_head_name: "商务标负责人" }, + { other_user_name: "其他拟派人员" }, + { bid_status_text: "状态" }, + ], +}; + +import { apiMarketingCompetitorLists } from "@/api/marketing_competitor"; + +export const marketing_competitor: Iconfig = { + fetchFn: apiMarketingCompetitorLists, + dictData: "company_type", + serchList: [ + { + label: "单位名称", + value: "company_name", + }, + { + label: "企业类型", + value: "company_type", + select: "company_type", + }, + { + label: "法人代表", + value: "legal_representative", + }, + ], + tableList: [ + { company_name: "单位名称" }, + { company_type_text: "企业类型" }, + { legal_representative: "法人代表" }, + { telephone: "联系电话" }, + { address: "单位地址" }, + { qualifications: "企业资质" }, + ], +}; diff --git a/src/components/dialogTable/index.vue b/src/components/dialogTable/index.vue index 03e3ff6..355ef97 100644 --- a/src/components/dialogTable/index.vue +++ b/src/components/dialogTable/index.vue @@ -24,10 +24,12 @@ @selection-change="handleSelectionChange"> - + - {{ row[(Object.keys(item))[0]] }} + {{ (Object.keys(item))[0].includes('.') ? + row[(Object.keys(item))[0].split(".")[0]][(Object.keys(item))[0].split(".")[1]] : + row[(Object.keys(item))[0]] }} diff --git a/src/views/marketing_bid_evaluation/detail.vue b/src/views/marketing_bid_evaluation/detail.vue index a1361a4..c596164 100644 --- a/src/views/marketing_bid_evaluation/detail.vue +++ b/src/views/marketing_bid_evaluation/detail.vue @@ -14,9 +14,6 @@ {{ formData.business_opportunity.project_overview }} - diff --git a/src/views/marketing_bid_evaluation/edit.vue b/src/views/marketing_bid_evaluation/edit.vue index 3461e12..ba22842 100644 --- a/src/views/marketing_bid_evaluation/edit.vue +++ b/src/views/marketing_bid_evaluation/edit.vue @@ -90,6 +90,39 @@ placeholder="系统自动获取" disabled /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + 评审信息 + @@ -180,37 +213,7 @@ - - 跟进信息 - - - - - - - - - - - - - - - - - - - - - - - - - - + 附件 @@ -221,9 +224,6 @@ - @@ -293,8 +293,6 @@ const customEvent = (e) => { formData.business_opportunity_id = e.id formData.business_opportunity_name = e.project_name formData.business_opportunity = e - // const { head_name, dept_name, leader_name, project_name, contacts, project_code, construct_company_name, management_company, industry_nature_text, business_nature_text, const_area_text, project_address, info_sources_text, fund_sources_text, total_investment, jianan_investment, project_overview } = e - // Object.assign(formData, { head_name, dept_name, leader_name, project_name, contacts, project_name, project_code, construct_company_name, management_company, industry_nature_text, business_nature_text, const_area_text, project_address, info_sources_text, fund_sources_text, total_investment, jianan_investment, project_overview }) showDialog.value = false } diff --git a/src/views/marketing_bid_evaluation/index.vue b/src/views/marketing_bid_evaluation/index.vue index b0fc60b..bb76950 100644 --- a/src/views/marketing_bid_evaluation/index.vue +++ b/src/views/marketing_bid_evaluation/index.vue @@ -49,7 +49,7 @@ - + @@ -63,8 +63,8 @@ @click="handleDetail(row)"> 详情 - + 报名登记 @@ -81,13 +81,56 @@ :deptList="deptList" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/views/marketing_bid_result/detail.js b/src/views/marketing_bid_result/detail.js new file mode 100644 index 0000000..bd25dd5 --- /dev/null +++ b/src/views/marketing_bid_result/detail.js @@ -0,0 +1,103 @@ +import { apiMarketingBidResultDetailLists } from '@/api/marketing_bid_result' + +const detailConfig = { + title: "市场经营--投标管理--竞争对手", + config: [ + { + label: "投标信息", + value: "business_opportunity.project_name" + }, + { + label: "投标结果", + value: "bid_result_text" + }, + { + label: "中标通知书编号", + value: "bid_result_code" + }, + { + label: "中标报价", + value: "quotation" + }, + { + label: "开标日期", + value: "bid_open_date" + }, + { + label: "开标地点", + value: "bid_open_address" + }, + { + label: "我方报价", + value: "our_quotation" + }, + { + label: "中标费率", + value: "rate", + }, + { + label: "投标人月数", + value: "month", + }, + { + label: "中标总监/经理", + value: "manager_name", + }, + { + label: "投标结果分析", + value: "bid_result_analysis", + }, + { + label: "附件", + value: "annex", + column: 1 + }, + ], + table: { + title: "建设单位", + tableConfig: [ + { + label: "投标单位", + value: 'company_name' + + }, + { + label: "报价1", + value: 'quotation_one' + + }, + { + label: "报价2", + value: 'quotation_two' + }, + { + label: "报价3", + value: 'quotation_three', + + }, + { + label: "最终费率", + value: 'final_rate', + }, + { + label: "投标总监", + value: 'manager' + }, + { + label: "投标人月数", + value: 'month' + }, + { + label: "投标结果", + value: 'result_text' + }, + + + + ], + fetchFun: apiMarketingBidResultDetailLists, + query: 'bid_result_id' + } + +} +export default detailConfig; \ No newline at end of file diff --git a/src/views/marketing_bid_result/edit.vue b/src/views/marketing_bid_result/edit.vue index f249fd2..e1d4fc8 100644 --- a/src/views/marketing_bid_result/edit.vue +++ b/src/views/marketing_bid_result/edit.vue @@ -1,41 +1,118 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + 基本信息 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 参标单位 + + + + + + + + + + + + + + + 附件 + + + + + + + + + + + + + + + + + + + + @@ -43,9 +120,9 @@ diff --git a/src/views/marketing_competitor/detail.js b/src/views/marketing_competitor/detail.js new file mode 100644 index 0000000..9ad4784 --- /dev/null +++ b/src/views/marketing_competitor/detail.js @@ -0,0 +1,56 @@ +const detailConfig = { + title: "市场经营--投标管理--竞争对手", + config: [ + { + label: "单位名称", + value: "company_name" + }, + { + label: "企业类型", + value: "company_type_text" + }, + { + label: "法人代表", + value: "legal_representative" + }, + { + label: "成立日期", + value: "creation_date" + }, + { + label: "员工人数", + value: "employee_num" + }, + { + label: "联系电话", + value: "telephone" + }, + { + label: "单位地址", + value: "address" + }, + { + label: "企业网址", + value: "website", + }, + { + label: "企业资质", + value: "qualifications", + }, + { + label: "经营范围", + value: "business_scope", + }, + { + label: "竞争优势", + value: "competitive_edge", + }, + { + label: "附件", + value: "annex", + column: 1 + }, + ] + +} +export default detailConfig; \ No newline at end of file diff --git a/src/views/marketing_competitor/edit.vue b/src/views/marketing_competitor/edit.vue index baf6272..5434440 100644 --- a/src/views/marketing_competitor/edit.vue +++ b/src/views/marketing_competitor/edit.vue @@ -1,49 +1,47 @@ - + - + + + - + - - + + + - - + + - + - + - + - - + + - - + + - + @@ -54,8 +52,9 @@ import type { FormInstance } from 'element-plus' import Popup from '@/components/popup/index.vue' import { apiMarketingCompetitorAdd, apiMarketingCompetitorEdit, apiMarketingCompetitorDetail } from '@/api/marketing_competitor' -import { timeFormat } from '@/utils/util' import type { PropType } from 'vue' +import { checkPhone } from '@/utils/validate' + defineProps({ dictData: { type: Object as PropType>, @@ -87,7 +86,7 @@ const formData = reactive({ qualifications: '', business_scope: '', competitive_edge: '', - annex: '', + annex: [], }) @@ -122,7 +121,13 @@ const formRules = reactive({ required: true, message: '请输入联系电话', trigger: ['blur'] - }], + }, + { + validator: checkPhone, + trigger: ['blur'] + + } + ], address: [{ required: true, message: '请输入单位地址', @@ -159,8 +164,8 @@ const setFormData = async (data: Record) => { formData[key] = data[key] } } - - + + } const getDetail = async (row: Record) => { @@ -174,9 +179,9 @@ const getDetail = async (row: Record) => { // 提交按钮 const handleSubmit = async () => { await formRef.value?.validate() - const data = { ...formData, } - mode.value == 'edit' - ? await apiMarketingCompetitorEdit(data) + const data = { ...formData, } + mode.value == 'edit' + ? await apiMarketingCompetitorEdit(data) : await apiMarketingCompetitorAdd(data) popupRef.value?.close() emit('success') diff --git a/src/views/marketing_competitor/index.vue b/src/views/marketing_competitor/index.vue index 5817a64..462b476 100644 --- a/src/views/marketing_competitor/index.vue +++ b/src/views/marketing_competitor/index.vue @@ -1,19 +1,19 @@ - + - + + + - + @@ -31,46 +31,33 @@ 新增 - + 删除 - + - - - - - - - + - + 编辑 - + 删除 + + 详情 + @@ -80,20 +67,25 @@ + diff --git a/src/views/marketing_reflux_contract/index.vue b/src/views/marketing_reflux_contract/index.vue new file mode 100644 index 0000000..ed33376 --- /dev/null +++ b/src/views/marketing_reflux_contract/index.vue @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + 查询 + 重置 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/views/procurement_contract/index.vue b/src/views/procurement_contract/index.vue index 89d5111..58817a4 100644 --- a/src/views/procurement_contract/index.vue +++ b/src/views/procurement_contract/index.vue @@ -58,7 +58,7 @@ show-overflow-tooltip /> - + - +