From 060cfeb39ff63aeacff2166660bd6db5f0f10aa6 Mon Sep 17 00:00:00 2001 From: zmj <1493694146@qq.com> Date: Mon, 15 Apr 2024 15:33:11 +0800 Subject: [PATCH] add --- src/api/financial_bid_statistics.ts | 35 + .../financial_performance_money_recovery.ts | 26 + .../dialogTable/dialogTableConfig.ts | 1 - src/views/InvoicingRequests/edit.vue | 9 +- src/views/InvoicingRequests/index.vue | 2 +- src/views/bid_document_examination/edit.vue | 2 +- src/views/bid_document_examination/index.vue | 6 +- .../bid_document_examination_detail/index.vue | 8 +- src/views/bid_margin_list/index.vue | 86 + .../bid_margin_recovery_search/index.vue | 82 + src/views/bid_margin_statistics/index.vue | 261 + src/views/bid_project_status/index.vue | 121 +- src/views/competitor/index.vue | 9 +- src/views/contract/index.vue | 2 +- src/views/custom/edit.vue | 10 +- src/views/custom/index.vue | 6 +- src/views/custom_contacts/index.vue | 8 +- src/views/custom_follow/index.vue | 8 +- src/views/customer_demand/index.vue | 9 +- src/views/customer_demand_solution/index.vue | 8 +- src/views/finance_receipt_record/index.vue | 5 +- .../edit.vue | 18 +- .../detail.js | 46 + .../edit.vue | 162 + .../index.vue | 134 + .../jianli_project_progress_report/edit.vue | 9 +- src/views/marketing_contract_change/edit.vue | 16 +- src/views/marketing_contract_change/index.vue | 2 +- .../index.vue | 3 +- src/views/performance_money_list/index.vue | 87 + .../index.vue | 79 + src/views/procurement_contract/edit.vue | 24 +- src/views/project/index.vue | 5 +- src/views/project_estimate/index.vue | 10 +- src/views/project_material_budget/edit.vue | 30 +- src/views/project_personnel/edit.vue | 8 +- .../index.vue | 9 +- src/views/quality_mbo/edit.vue | 12 +- src/views/quotation/edit.vue | 40 +- src/views/quotation/index.vue | 6 +- src/views/safety_check/index.vue | 2 +- src/views/safety_hazard/index.vue | 3 +- src/views/safety_modify/index.vue | 3 +- src/views/subcontracting_contract/index.vue | 27 +- .../index.vue | 6 +- stats.html | 4842 +++++++++++++++++ 46 files changed, 6085 insertions(+), 202 deletions(-) create mode 100644 src/api/financial_bid_statistics.ts create mode 100644 src/api/financial_performance_money_recovery.ts create mode 100644 src/views/bid_margin_list/index.vue create mode 100644 src/views/bid_margin_recovery_search/index.vue create mode 100644 src/views/bid_margin_statistics/index.vue create mode 100644 src/views/financial_performance_money_recovery/detail.js create mode 100644 src/views/financial_performance_money_recovery/edit.vue create mode 100644 src/views/financial_performance_money_recovery/index.vue create mode 100644 src/views/performance_money_list/index.vue create mode 100644 src/views/performance_money_recovery_search/index.vue create mode 100644 stats.html diff --git a/src/api/financial_bid_statistics.ts b/src/api/financial_bid_statistics.ts new file mode 100644 index 0000000..510ece9 --- /dev/null +++ b/src/api/financial_bid_statistics.ts @@ -0,0 +1,35 @@ +import request from "@/utils/request"; + +export function apibid_margin_recovery_searchs(params: any) { + return request.get({ + url: "/financial.financial_bid_statistics/bid_margin_recovery_search", + params, + }); +} + +export function apiperformance_money_recovery_search(params: any) { + return request.get({ + url: "/financial.financial_bid_statistics/performance_money_recovery_search", + params, + }); +} + +export function apiperformance_money_list(params: any) { + return request.get({ + url: "/financial.financial_bid_statistics/performance_money_list", + params, + }); +} + +export function apibid_margin_list(params: any) { + return request.get({ + url: "/financial.financial_bid_statistics/bid_margin_list", + params, + }); +} +export function apibid_margin_statistics(params: any) { + return request.get({ + url: "/financial.financial_bid_statistics/bid_margin_statistics", + params, + }); +} diff --git a/src/api/financial_performance_money_recovery.ts b/src/api/financial_performance_money_recovery.ts new file mode 100644 index 0000000..3b3bd39 --- /dev/null +++ b/src/api/financial_performance_money_recovery.ts @@ -0,0 +1,26 @@ +import request from '@/utils/request' + +// 财务管理--履约金回收列表 +export function apiFinancialPerformanceMoneyRecoveryLists(params: any) { + return request.get({ url: '/financial.financial_performance_money_recovery/lists', params }) +} + +// 添加财务管理--履约金回收 +export function apiFinancialPerformanceMoneyRecoveryAdd(params: any) { + return request.post({ url: '/financial.financial_performance_money_recovery/add', params }) +} + +// 编辑财务管理--履约金回收 +export function apiFinancialPerformanceMoneyRecoveryEdit(params: any) { + return request.post({ url: '/financial.financial_performance_money_recovery/edit', params }) +} + +// 删除财务管理--履约金回收 +export function apiFinancialPerformanceMoneyRecoveryDelete(params: any) { + return request.post({ url: '/financial.financial_performance_money_recovery/delete', params }) +} + +// 财务管理--履约金回收详情 +export function apiFinancialPerformanceMoneyRecoveryDetail(params: any) { + return request.get({ url: '/financial.financial_performance_money_recovery/detail', params }) +} \ No newline at end of file diff --git a/src/components/dialogTable/dialogTableConfig.ts b/src/components/dialogTable/dialogTableConfig.ts index d35fe38..4225773 100644 --- a/src/components/dialogTable/dialogTableConfig.ts +++ b/src/components/dialogTable/dialogTableConfig.ts @@ -883,7 +883,6 @@ export const marketing_contract: Iconfig = { { contract_code: "合同编号" }, { part_a_name: "甲方签约单位" }, { part_b: "乙方签约单位" }, - { part_b_signatory_name: "乙方签约人" }, { business_nature_text: "业务性质" }, { industry_nature_text: "行业性质" }, { fund_sources_text: "资金来源" }, diff --git a/src/views/InvoicingRequests/edit.vue b/src/views/InvoicingRequests/edit.vue index 8c67c0c..f44e2be 100644 --- a/src/views/InvoicingRequests/edit.vue +++ b/src/views/InvoicingRequests/edit.vue @@ -93,7 +93,8 @@ - + @@ -323,6 +324,12 @@ const formData = reactive({ approve_detail: {} }) +var numberRegex = /\d/g; + +const invoicChnage = (e) => { + formData.invoice_no = (e.match(numberRegex)).join(",").replace(/,/g, '') +} + // 表单验证 const formRules = reactive({ diff --git a/src/views/InvoicingRequests/index.vue b/src/views/InvoicingRequests/index.vue index 0b3d8b5..20179e4 100644 --- a/src/views/InvoicingRequests/index.vue +++ b/src/views/InvoicingRequests/index.vue @@ -59,7 +59,7 @@ show-overflow-tooltip width="120" /> - + - + diff --git a/src/views/bid_document_examination/index.vue b/src/views/bid_document_examination/index.vue index a7fbf8f..43a7777 100644 --- a/src/views/bid_document_examination/index.vue +++ b/src/views/bid_document_examination/index.vue @@ -41,10 +41,8 @@ show-overflow-tooltip /> - - + + - - + + - + diff --git a/src/views/bid_margin_list/index.vue b/src/views/bid_margin_list/index.vue new file mode 100644 index 0000000..631b3a9 --- /dev/null +++ b/src/views/bid_margin_list/index.vue @@ -0,0 +1,86 @@ + + + + + + + + + + 查询 + 重置 + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/views/bid_margin_recovery_search/index.vue b/src/views/bid_margin_recovery_search/index.vue new file mode 100644 index 0000000..c19f4e9 --- /dev/null +++ b/src/views/bid_margin_recovery_search/index.vue @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + 查询 + 重置 + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/views/bid_margin_statistics/index.vue b/src/views/bid_margin_statistics/index.vue new file mode 100644 index 0000000..1682acb --- /dev/null +++ b/src/views/bid_margin_statistics/index.vue @@ -0,0 +1,261 @@ + + + + + + + + + + + + + + + + + + 保证金统计表 + + + + + + + + diff --git a/src/views/bid_project_status/index.vue b/src/views/bid_project_status/index.vue index e66dfd8..5d8491a 100644 --- a/src/views/bid_project_status/index.vue +++ b/src/views/bid_project_status/index.vue @@ -34,7 +34,7 @@ var myChart: any const chartWitdth = ref(500) const chartHeight = ref(500) -const chartType = ref(3) +const chartType = ref(1) const chartTypeList = reactive([ { name: '柱状图', @@ -60,67 +60,40 @@ let option1 = { tooltip: { trigger: 'item', }, - xAxis: { - type: 'category', - data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] - }, yAxis: { type: 'value' }, + legend: { + data: ['总金额', '中标金额', '未中标金额'] + }, + xAxis: { + type: 'category', + data: ['房屋建筑工程', '化工石油工程', '矿山工程', '市政公用工程', '通信与光电工程', '其他工程', 'Sun'] + }, series: [ + // 总金额 { + name: '总金额', data: [120, 200, 150, 80, 70, 110, 130], type: 'bar', + }, + // 中标金额 + { + name: '中标金额', + data: [10, 20, 50, 10, 32, 46, 55], + type: 'bar', + }, + // 未中标金额 + { + name: '未中标金额', + data: [33, 47, 21, 80, 95, 35, 120], + type: 'bar', } ], }; -// 漏斗图 -let option4 = { - tooltip: { - trigger: 'item', - }, - legend: { - data: ['Show', 'Click', 'Visit', 'Inquiry', 'Order'] - }, - series: [ - { - name: 'Funnel', - type: 'funnel', - sort: 'descending', - gap: 2, - label: { - show: true, - position: 'inside' - }, - labelLine: { - length: 10, - lineStyle: { - width: 1, - type: 'solid' - } - }, - itemStyle: { - borderColor: '#fff', - borderWidth: 1 - }, - emphasis: { - label: { - fontSize: 20 - } - }, - data: [ - { value: 60, name: 'Visit' }, - { value: 40, name: 'Inquiry' }, - { value: 20, name: 'Order' }, - { value: 80, name: 'Click' }, - { value: 100, name: 'Show' } - ], - } - ] -}; // 折线图 let option2 = { @@ -174,14 +147,59 @@ let option3 = { ] }; +// 漏斗图 +let option4 = { + tooltip: { + trigger: 'item', + }, + legend: { + data: ['Show', 'Click', 'Visit', 'Inquiry', 'Order'] + }, + series: [ + { + name: 'Funnel', + type: 'funnel', + sort: 'descending', + gap: 2, + label: { + show: true, + position: 'inside' + }, + labelLine: { + length: 10, + lineStyle: { + width: 1, + type: 'solid' + } + }, + itemStyle: { + borderColor: '#fff', + borderWidth: 1 + }, + emphasis: { + label: { + fontSize: 20 + } + }, + data: [ + { value: 60, name: 'Visit' }, + { value: 40, name: 'Inquiry' }, + { value: 20, name: 'Order' }, + { value: 80, name: 'Click' }, + { value: 100, name: 'Show' } + ], + } + ] +}; let chartData: object; const getData = async (fetchFun: Function) => { let res = await fetchFun() chartData = res - option3.series[0].data = res.data - option = option3 + // option1.xAxis.data = chartData.data.map(item => item.name) + // option1.series[0].data = chartData.data.map(item => item.value) + option = option1 initChart() } @@ -205,6 +223,7 @@ const changeChartType = (e: any) => { option = option2 break; case 3: + option3.series[0].data = res.data option = option3 break; case 4: diff --git a/src/views/competitor/index.vue b/src/views/competitor/index.vue index e382251..df06579 100644 --- a/src/views/competitor/index.vue +++ b/src/views/competitor/index.vue @@ -46,18 +46,15 @@ - + - + - + diff --git a/src/views/contract/index.vue b/src/views/contract/index.vue index df8b9ee..8626506 100644 --- a/src/views/contract/index.vue +++ b/src/views/contract/index.vue @@ -68,7 +68,7 @@ show-overflow-tooltip /> - + diff --git a/src/views/custom/edit.vue b/src/views/custom/edit.vue index 6be5c78..f73b3e9 100644 --- a/src/views/custom/edit.vue +++ b/src/views/custom/edit.vue @@ -33,7 +33,8 @@ - + @@ -122,7 +123,7 @@ + :style="{ width: '100%' }" v-type="'code'"> @@ -176,7 +177,7 @@ - + @@ -532,9 +533,12 @@ const handleClose = () => { //获取省份 function province_change(value: string) { + formData.city = ''; + formData.area = ''; getCityList(); } function city_change(value: string) { + formData.area = ''; getAreaList(); } diff --git a/src/views/custom/index.vue b/src/views/custom/index.vue index 59e2866..2beef23 100644 --- a/src/views/custom/index.vue +++ b/src/views/custom/index.vue @@ -59,9 +59,9 @@ - - - + + + diff --git a/src/views/custom_contacts/index.vue b/src/views/custom_contacts/index.vue index ed5e326..6843cdc 100644 --- a/src/views/custom_contacts/index.vue +++ b/src/views/custom_contacts/index.vue @@ -37,10 +37,10 @@ - - - - + + + + diff --git a/src/views/custom_follow/index.vue b/src/views/custom_follow/index.vue index 5f82571..10f6412 100644 --- a/src/views/custom_follow/index.vue +++ b/src/views/custom_follow/index.vue @@ -53,12 +53,10 @@ - - + + - + - - - + + + - + diff --git a/src/views/customer_demand_solution/index.vue b/src/views/customer_demand_solution/index.vue index 5bb9842..4c11333 100644 --- a/src/views/customer_demand_solution/index.vue +++ b/src/views/customer_demand_solution/index.vue @@ -38,15 +38,13 @@ - + - + - + diff --git a/src/views/finance_receipt_record/index.vue b/src/views/finance_receipt_record/index.vue index 726f36a..e8eb1f9 100644 --- a/src/views/finance_receipt_record/index.vue +++ b/src/views/finance_receipt_record/index.vue @@ -50,7 +50,7 @@ :render-header="pager.calcWidth" /> - + - + diff --git a/src/views/financial_performance_money_apply/edit.vue b/src/views/financial_performance_money_apply/edit.vue index 42a4fdd..6e4b431 100644 --- a/src/views/financial_performance_money_apply/edit.vue +++ b/src/views/financial_performance_money_apply/edit.vue @@ -1,7 +1,6 @@ - + @@ -13,8 +12,8 @@ - + @@ -37,8 +36,7 @@ - + @@ -53,8 +51,8 @@ - + @@ -63,8 +61,8 @@ - + diff --git a/src/views/financial_performance_money_recovery/detail.js b/src/views/financial_performance_money_recovery/detail.js new file mode 100644 index 0000000..76ff3fa --- /dev/null +++ b/src/views/financial_performance_money_recovery/detail.js @@ -0,0 +1,46 @@ +const detailConfig = { + title: "财务管理--履约金回收", + config: [ + { + label: "合同名称", + value: "contract_name" + }, + { + label: "回收日期", + value: "recovery_date" + }, + { + label: "回收金额", + value: "recovery_amount" + }, + { + label: "未收金额", + value: "not_recovery_amount" + }, + + { + label: "说明", + value: "remark", + column: 1 + + }, + { + label: "附件", + value: "annex", + column: 1 + + }, + + { + label: "录入人", + value: "create_user", + }, + { + label: "录入时间", + value: "create_time", + }, + + ] + +} +export default detailConfig; \ No newline at end of file diff --git a/src/views/financial_performance_money_recovery/edit.vue b/src/views/financial_performance_money_recovery/edit.vue new file mode 100644 index 0000000..9d0a9a6 --- /dev/null +++ b/src/views/financial_performance_money_recovery/edit.vue @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/views/financial_performance_money_recovery/index.vue b/src/views/financial_performance_money_recovery/index.vue new file mode 100644 index 0000000..c6ba363 --- /dev/null +++ b/src/views/financial_performance_money_recovery/index.vue @@ -0,0 +1,134 @@ + + + + + + + + + + 查询 + 重置 + + + + + + + + + 新增 + + + 删除 + + + + + + + + + + + + + + 编辑 + + + 删除 + + + 详情 + + + + + + + + + + + + + + + + + diff --git a/src/views/jianli_project_progress_report/edit.vue b/src/views/jianli_project_progress_report/edit.vue index 4fe1a20..2652f2d 100644 --- a/src/views/jianli_project_progress_report/edit.vue +++ b/src/views/jianli_project_progress_report/edit.vue @@ -39,14 +39,14 @@ + value-format="YYYY-MM-DD" placeholder="请选择日期" @change="calcDuration"> + value-format="YYYY-MM-DD" placeholder="请选择日期" @change="calcDuration"> @@ -168,6 +168,11 @@ const formData = reactive({ projectInfo: {} }) +const calcDuration = () => { + + formData.duration = (new Date(formData.end_date) - new Date(formData.start_date)) / (1000 * 60 * 60 * 24) +} + const customEvent = (e: any) => { formData.project_id = e.id formData.project_name = e.project_name diff --git a/src/views/marketing_contract_change/edit.vue b/src/views/marketing_contract_change/edit.vue index 1eb6435..7db4af5 100644 --- a/src/views/marketing_contract_change/edit.vue +++ b/src/views/marketing_contract_change/edit.vue @@ -7,13 +7,21 @@ readonly /> - + + + + - + + + + - + @@ -127,7 +135,7 @@ const formRules = reactive({ change_user_name: [{ required: true, message: '请输入签证变更人员', - trigger: ['blur'] + trigger: ['change'] }], change_date: [{ required: true, diff --git a/src/views/marketing_contract_change/index.vue b/src/views/marketing_contract_change/index.vue index 00cce9e..4966321 100644 --- a/src/views/marketing_contract_change/index.vue +++ b/src/views/marketing_contract_change/index.vue @@ -90,7 +90,7 @@ const handleSelectionChange = (val: any[]) => { } // 获取字典数据 -const { dictData } = useDictData('') +const { dictData } = useDictData('cost_contract_type,cost_consultation_business_nature') // 分页相关 const { pager, getLists, resetParams, resetPage } = usePaging({ diff --git a/src/views/marketing_supplementary_agreement/index.vue b/src/views/marketing_supplementary_agreement/index.vue index c0eacf7..3dad833 100644 --- a/src/views/marketing_supplementary_agreement/index.vue +++ b/src/views/marketing_supplementary_agreement/index.vue @@ -55,8 +55,7 @@ show-overflow-tooltip /> - + + + + + + + + + + 查询 + 重置 + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/views/performance_money_recovery_search/index.vue b/src/views/performance_money_recovery_search/index.vue new file mode 100644 index 0000000..3b5927f --- /dev/null +++ b/src/views/performance_money_recovery_search/index.vue @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + 查询 + 重置 + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/views/procurement_contract/edit.vue b/src/views/procurement_contract/edit.vue index c8f103d..d3d8a8b 100644 --- a/src/views/procurement_contract/edit.vue +++ b/src/views/procurement_contract/edit.vue @@ -108,56 +108,56 @@ - - + - + - + - + - + - + - + - + - + - + @@ -167,13 +167,13 @@ - + - + diff --git a/src/views/project/index.vue b/src/views/project/index.vue index e7b961c..37e1be3 100644 --- a/src/views/project/index.vue +++ b/src/views/project/index.vue @@ -93,11 +93,10 @@ - + - + diff --git a/src/views/project_estimate/index.vue b/src/views/project_estimate/index.vue index 2544b74..727f5b2 100644 --- a/src/views/project_estimate/index.vue +++ b/src/views/project_estimate/index.vue @@ -63,9 +63,8 @@ show-overflow-tooltip /> - - + + @@ -74,13 +73,12 @@ show-overflow-tooltip /> - + - + diff --git a/src/views/project_material_budget/edit.vue b/src/views/project_material_budget/edit.vue index d8997d2..150e187 100644 --- a/src/views/project_material_budget/edit.vue +++ b/src/views/project_material_budget/edit.vue @@ -51,53 +51,60 @@ - + - + - + - + - + - + - + - + - + + + + + + + + - + - + 删除 @@ -180,6 +187,7 @@ const customEvent1 = (e) => { "specs": e.specs, "num": e.num, "price": e.price, + inventory: e.inventory, "remark": e.remark }) showDialog1.value = false diff --git a/src/views/project_personnel/edit.vue b/src/views/project_personnel/edit.vue index f5ec5a7..aca76a4 100644 --- a/src/views/project_personnel/edit.vue +++ b/src/views/project_personnel/edit.vue @@ -40,7 +40,8 @@ - + @@ -200,6 +201,11 @@ const formData = reactive({ opening_income: "", }) +const workChange = (e) => { + let workerInfo = allJobType.find(item => item.id == e) + formData.unit_price = workerInfo.type_unit_price + formData.daily_living_expenses = workerInfo.per_daily_living +} const customEvent2 = (e: any) => { formData.project_id = e.id; diff --git a/src/views/project_subpackage_budget_detail/index.vue b/src/views/project_subpackage_budget_detail/index.vue index 0259107..b48d992 100644 --- a/src/views/project_subpackage_budget_detail/index.vue +++ b/src/views/project_subpackage_budget_detail/index.vue @@ -29,6 +29,7 @@ + @@ -72,11 +73,9 @@ - - - - - + + + + +