diff --git a/package.json b/package.json index 0746e67..81da768 100644 --- a/package.json +++ b/package.json @@ -112,7 +112,8 @@ "xe-utils": "^3.5.11", "xlsx": "^0.18.5", "element-plus": "2.2.28", - "vue3-tree-org":"^4.2.2" + "vue3-tree-org":"^4.2.2", + "streamsaver":"^2.0.6" }, "devDependencies": { "@commitlint/cli": "^17.6.6", diff --git a/src/api/common/api.ts b/src/api/common/api.ts index 24cd44c..01fcb47 100644 --- a/src/api/common/api.ts +++ b/src/api/common/api.ts @@ -1,5 +1,11 @@ import { defHttp } from '@/utils/http/axios'; import { message } from 'ant-design-vue'; + +import * as streamSaver from "streamsaver" +import { getToken } from '@/utils/auth'; +import { useGlobSetting } from '@/hooks/setting'; + +const { apiUrl } = useGlobSetting(); /** * 下载文件 * @param url 文件路径 @@ -28,7 +34,40 @@ export const downloadFile = (url, fileName?, parameter?) => { } }); }; +export const downloadResource = async (url, fileName,parameter) =>{ + url = apiUrl + url+"?path="+encodeURIComponent(parameter.path)+"&fileName="+parameter.fileName + let filename = fileName + if (!fileName) { + filename = url.substring(url.lastIndexOf('/') + 1); + } + console.log(filename,'filename') + return fetch(url, { + method: 'GET', + cache: 'no-cache', + headers:{ + Authorization: `Bearer ${getToken()}`, + // clientId: clientId, + }, + + }).then(res => { + const fileStream = streamSaver.createWriteStream(filename,{ + //增加小视图,体现下载进度条与总大小 + size : res.headers.get("content-length") + }) + const readableStream = res.body + if (window.WritableStream && readableStream.pipeTo) { + return readableStream.pipeTo(fileStream) + } + window.writer = fileStream.getWriter() + const reader = res.body.getReader() + const pump = () => reader.read() + .then(res => res.done + ? window.writer.close() + : window.writer.write(res.value).then(pump)) + pump() + }) +} /** * 下载文件 用于excel导出 * @param url @@ -41,6 +80,7 @@ export const getFileblob = (url, parameter) => { url: url, params: parameter, responseType: 'blob', + timeout: 1000 * 60 * 5, // 5分钟超时 }, { isTransformResponse: false } ); diff --git a/src/views/ProcessApprovalSubPage/component/ApprovalFromPage.vue b/src/views/ProcessApprovalSubPage/component/ApprovalFromPage.vue index 5dd1476..8b77d15 100644 --- a/src/views/ProcessApprovalSubPage/component/ApprovalFromPage.vue +++ b/src/views/ProcessApprovalSubPage/component/ApprovalFromPage.vue @@ -29,7 +29,7 @@ onUpdated(()=>{ options: dataTo.buttons, } }) - if(projectName.value=="可研报告终稿编制"&&taskName.value=="总咨询单位"){ + if(projectName.value=="可研报告送审稿编制"&&taskName.value=="总咨询单位"){ updateSchema({ field: 'modifyNum', ifShow: ({ values }) => { diff --git a/src/views/ProcessApprovalSubPage/component/PlanFileDetail.vue b/src/views/ProcessApprovalSubPage/component/PlanFileDetail.vue index 43f699a..1beb107 100644 --- a/src/views/ProcessApprovalSubPage/component/PlanFileDetail.vue +++ b/src/views/ProcessApprovalSubPage/component/PlanFileDetail.vue @@ -15,7 +15,7 @@ import { BasicTable, ActionItem, TableAction, useTable } from '@/components/Tabl import { PlaninfoFiletableColumns } from '@/views/projectLib/projectPlan/projectPlan.data'; import { planFilePageList ,getplaninfoByid } from '@/views/projectLib/projectPlan/projectPlan.api' import { BasicColumn } from '@/components/Table'; -import { downloadFile } from "@/api/common/api" +import { downloadFile,downloadResource } from "@/api/common/api" let dataTo = defineProps(["stage", "planinfoid"]) //我的待办表格组件 @@ -39,7 +39,7 @@ const [registerResourceTable,{setColumns}] = useTable({ onMounted(async()=>{ let details = await getplaninfoByid({planinfoid:dataTo.planinfoid}) console.log("sdsdadad",details) - if(details[0].taskName=="可研报告终稿编制"){ + if(details[0].taskName=="可研报告送审稿编制"){ setColumns(PlaninfoFiletableColumns) }else{ setColumns(PlaninfoFiletableColumns12) @@ -63,7 +63,8 @@ function handleDetailpage(record) { // console.log("我这一行的数据是", param) - downloadFile("/huzhouUploadfileinfo/downloadfile", record.documentName, param) + // downloadFile("/huzhouUploadfileinfo/downloadfile", record.documentName, param) + downloadResource("/huzhouUploadfileinfo/downloadfile", record.documentName,param) } const PlaninfoFiletableColumns12: BasicColumn[] = [ { diff --git a/src/views/ProcessApprovalSubPage/planFileApproval.vue b/src/views/ProcessApprovalSubPage/planFileApproval.vue index 5198b34..6a88742 100644 --- a/src/views/ProcessApprovalSubPage/planFileApproval.vue +++ b/src/views/ProcessApprovalSubPage/planFileApproval.vue @@ -196,7 +196,7 @@ } if (data[0].taskName.indexOf('可研报告初稿编制') >= 0) { tableDataFiles.value.push('《项目建议书》'); - } else if (data[0].taskName.indexOf('可研报告终稿编制') >= 0) { + } else if (data[0].taskName.indexOf('可研报告送审稿编制') >= 0) { tableDataFiles.value.push('《项目建议书》'); tableDataFiles.value.push('《补充说明》'); @@ -404,12 +404,12 @@ // type ==0新增,type ==1 是修改 let dataSource = await getDataSource(); if ( - dataSource[0].taskName.indexOf('可研技术审查报告确认') == -1 || - dataSource[0].taskName.indexOf('可研报告初稿编制') == -1 || - dataSource[0].taskName.indexOf('可研报告终稿编制') == -1 + dataSource[0].taskName.indexOf('可研技术审查报告确认') == -1 && + dataSource[0].taskName.indexOf('可研报告初稿编制') == -1 && + dataSource[0].taskName.indexOf('可研报告送审稿编制') == -1 ) { if (fileList.length != tableDataFiles.value.length) { - message.error('上传的文件不符合要求请检查'); + message.error('上传的文件数量与项目计划资料数量不一致,请检查'); return; } } diff --git a/src/views/ProcessApprovalSubPage/uploadURTfileApproval.vue b/src/views/ProcessApprovalSubPage/uploadURTfileApproval.vue index 806858a..1667737 100644 --- a/src/views/ProcessApprovalSubPage/uploadURTfileApproval.vue +++ b/src/views/ProcessApprovalSubPage/uploadURTfileApproval.vue @@ -3,7 +3,7 @@ 项目名称: {{ dataTo.record.projectName }} 联合技术审查文件详情 - + + + + + + + + + + + + + + + + diff --git a/src/views/projectBoard/urt/qingkuang/qingkuang.api.ts b/src/views/projectBoard/urt/qingkuang/qingkuang.api.ts new file mode 100644 index 0000000..ccebcd9 --- /dev/null +++ b/src/views/projectBoard/urt/qingkuang/qingkuang.api.ts @@ -0,0 +1,24 @@ +import { defHttp } from '@/utils/http/axios'; + +export enum Api { + getSuperLeaderApproveInfo = '/workflow/getSuperLeaderApproveInfo', + + getURTUnApprovedDaysPage = "/workflow/getURTUnApprovedDaysPage", + showCountBoardByAdminDivision = "/huzhouProject/showCountBoardByAdminDivision", + + getDimensionPageSorted= "/huzhouProject/getDimensionPageSorted", + getPageSorted = "/huzhouProject/getPageSorted", +} +/** + * 总体看板 + */ + +export const getSuperLeaderApproveInfo = (params?) => defHttp.get({ url: Api.getSuperLeaderApproveInfo,params}) +export const getURTUnApprovedDaysPage = (params?) => defHttp.get({ url: Api.getURTUnApprovedDaysPage,params}) +// export const getDimensionPageSorted = (params) => defHttp.get({ url: Api.getDimensionPageSorted,params }) +// export const getPageSorted = (params) => defHttp.get({ url: Api.getPageSorted,params }) + +// export const submitplaninfoUploadFile = (params?) =>defHttp.post({ url: Api.submitplaninfoUploadFile,headers:{ "Content-Type": "multipart/form-data" }, params }) + + + diff --git a/src/views/projectBoard/urt/qingkuang/qingkuang.data.ts b/src/views/projectBoard/urt/qingkuang/qingkuang.data.ts new file mode 100644 index 0000000..ee6af9d --- /dev/null +++ b/src/views/projectBoard/urt/qingkuang/qingkuang.data.ts @@ -0,0 +1,231 @@ +import { FormSchema } from '@/components/Form'; +import { BasicColumn } from '@/components/Table'; + +export const qingkuangcolumns: BasicColumn[] = [ + { + title: '上级指导处室', + dataIndex: 'superLeader', + format: 'dict|superLeader', + resizable: true + }, + { + title: '改革所属项目', + dataIndex: 'reformName', + format: 'dict|reformTasks', + resizable: true + }, + + { + title: '处理人', + dataIndex: 'nickname', + }, + { + title: '手机号', + dataIndex: 'phone', + }, + { + title: '未审批流程数', + dataIndex: 'unapprovedCount', + }, + { + title: '2天未审批流程数', + dataIndex: 'unapprovedCount2d', + }, + { + title: '3天未审批流程数', + dataIndex: 'unapprovedCount3d', + }, + { + title: '5天未审批流程数', + dataIndex: 'unapprovedCount5d', + }, + { + title: '超过5天未审批流程数', + dataIndex: 'unapprovedCountOver5d', + } + +]; + +export const qingkuangUrtcolumns: BasicColumn[] = [ + { + title: '联审部门', + dataIndex: 'urtDep', + resizable: true + }, + + { + title: '处理人', + dataIndex: 'nickname', + }, + { + title: '手机号', + dataIndex: 'phone', + }, + { + title: '未审批流程数', + dataIndex: 'unapprovedCount', + }, + { + title: '2天未审批流程数', + dataIndex: 'unapprovedCount2d', + }, + { + title: '3天未审批流程数', + dataIndex: 'unapprovedCount3d', + }, + { + title: '5天未审批流程数', + dataIndex: 'unapprovedCount5d', + }, + { + title: '超过5天未审批流程数', + dataIndex: 'unapprovedCountOver5d', + } + +]; +export const danweizhutisearchFormSchema: FormSchema[] = [ + { + //标题名称 + label: '责任单位', + //字段 + field: 'dutyWorkplace', + //组件 支持组件详见 components/Form/src/types/index.ts 中的 ComponentType + component: 'Input', + labelWidth: 'auto' + }, + { + label: '行政区划', + field: 'adminDivision', + component: 'Input', + labelWidth: 'auto' + //colProps: { span: 6 }, + }, + + { + //标题名称 + label: '单位属性', + //字段 + field: 'workplaceProperties', + //组件 支持组件详见 components/Form/src/types/index.ts 中的 ComponentType + component: 'Input', + labelWidth: 'auto' + }, + +]; + +export const shifanxiangmucolumns: BasicColumn[] = [ + { + title: '项目名称', + dataIndex: 'projectName', + resizable: true, + ellipsis: false + }, + { + title: '行政区划', + dataIndex: 'adminDivision', + resizable: true, + sorter: true, + }, + { + title: '责任单位', + dataIndex: 'dutyWorkplace', + resizable: true, + sorter: true, + }, + { + title: '单位属性', + dataIndex: 'workplaceProperties', + resizable: true, + sorter: true, + }, + { + title: '上级指导处室', + dataIndex: 'superLeader', + format: 'dict|superLeader', + resizable: true, + sorter: true, + }, + { + title: '合同金额', + dataIndex: 'totalMoney', + resizable: true, + sorter: true, + }, + { + title: '合同资金支付率', + dataIndex: 'paymentExecutionRate', + resizable: true, + sorter: true, + }, + { + title: '中央资金', + dataIndex: 'centralMoney', + resizable: true, + sorter: true, + }, + { + title: '省级资金', + dataIndex: 'provincialMoney', + resizable: true, + sorter: true, + }, + { + title: '上级资金支付率', + dataIndex: 'superiorFundExecutionRate', + resizable: true, + sorter: true, + }, + { + title: '项目总进度', + dataIndex: 'projectProgress', + resizable: true, + slots: { customRender: 'projectProgress' }, + fixed: 'right', + sorter: true, + }, +]; + +export const shifanxiangsearchFormSchema: FormSchema[] = [ + { + label: '项目名称', + field: 'projectName', + component: 'Input', + labelWidth: 'auto' + //colProps: { span: 6 }, + }, + { + label: '行政区划', + field: 'adminDivision', + component: 'Input', + labelWidth: 'auto' + //colProps: { span: 6 }, + }, + { + //标题名称 + label: '责任单位', + //字段 + field: 'dutyWorkplace', + //组件 支持组件详见 components/Form/src/types/index.ts 中的 ComponentType + component: 'Input', + labelWidth: 'auto' + }, + { + //标题名称 + label: '单位属性', + //字段 + field: 'workplaceProperties', + //组件 支持组件详见 components/Form/src/types/index.ts 中的 ComponentType + component: 'Input', + labelWidth: 'auto' + }, + { + field: 'superLeader', + label: '上级指导处室', + component: 'DictSelect', + componentProps: { + dictType: 'superLeader', + }, + labelWidth: 'auto' + + }, +]; diff --git a/src/views/projectBoard/urt/urt/index.vue b/src/views/projectBoard/urt/urt/index.vue new file mode 100644 index 0000000..6e7ff38 --- /dev/null +++ b/src/views/projectBoard/urt/urt/index.vue @@ -0,0 +1,100 @@ + + + + + \ No newline at end of file diff --git a/src/views/projectBoard/urt/urt/urt.api.ts b/src/views/projectBoard/urt/urt/urt.api.ts new file mode 100644 index 0000000..a7e06fc --- /dev/null +++ b/src/views/projectBoard/urt/urt/urt.api.ts @@ -0,0 +1,24 @@ +import { defHttp } from '@/utils/http/axios'; + +export enum Api { + getURTProcessPage = '/workflow/getURTProcessPage', + + showCountBoardByReformName = "/huzhouProject/showCountBoardByReformName", + showCountBoardByAdminDivision = "/huzhouProject/showCountBoardByAdminDivision", + + getDimensionPageSorted= "/huzhouProject/getDimensionPageSorted", + getPageSorted = "/huzhouProject/getPageSorted", +} +/** + * 总体看板 + */ + +export const getURTProcessPage = (params?) => defHttp.get({ url: Api.getURTProcessPage,params}) +// export const showCountBoardByAdminDivision = (params?) => defHttp.get({ url: Api.showCountBoardByAdminDivision,params}) +// export const getDimensionPageSorted = (params) => defHttp.get({ url: Api.getDimensionPageSorted,params }) +// export const getPageSorted = (params) => defHttp.get({ url: Api.getPageSorted,params }) + +// export const submitplaninfoUploadFile = (params?) =>defHttp.post({ url: Api.submitplaninfoUploadFile,headers:{ "Content-Type": "multipart/form-data" }, params }) + + + diff --git a/src/views/projectBoard/urt/urt/urt.data.ts b/src/views/projectBoard/urt/urt/urt.data.ts new file mode 100644 index 0000000..ad461b1 --- /dev/null +++ b/src/views/projectBoard/urt/urt/urt.data.ts @@ -0,0 +1,182 @@ +import { FormSchema } from '@/components/Form'; +import { BasicColumn } from '@/components/Table'; + +export const urtgcolumns: BasicColumn[] = [ + { + title: '项目名称', + dataIndex: 'projectName', + resizable: true, + ellipsis: false, + }, + { + title: '市卫生健康委', + dataIndex: 'shwjk', + ellipsis: false, + +}, +{ + title: '市财政局', + dataIndex: 'sczj', + ellipsis: false, + +}, +{ + title: '市发展改革委', + dataIndex: 'sfzgw', + ellipsis: false, + +}, +{ + title: '市数据局', + dataIndex: 'ssjj', + ellipsis: false, + +}, +{ + title: '市委网信办', + dataIndex: 'swxb', + ellipsis: false, + +}, +{ + title: '市密码管理局', + dataIndex: 'smmglj', + ellipsis: false, + +}, +{ + title: '市公安局', + dataIndex: 'sgaj', + ellipsis: false, + +} +]; +export const urtFormSchema: FormSchema[] = [ + { + //标题名称 + label: '项目名称', + //字段 + field: 'projectName', + //组件 支持组件详见 components/Form/src/types/index.ts 中的 ComponentType + component: 'Input', + labelWidth: 'auto' + }, + +]; + +export const shifanxiangmucolumns: BasicColumn[] = [ + { + title: '项目名称', + dataIndex: 'projectName', + resizable: true, + ellipsis:false + }, + { + title: '行政区划', + dataIndex: 'adminDivision', + resizable: true, + sorter: true, + }, + { + title: '责任单位', + dataIndex: 'dutyWorkplace', + resizable: true, + sorter: true, + }, + { + title: '单位属性', + dataIndex: 'workplaceProperties', + resizable: true, + sorter: true, + }, + { + title: '上级指导处室', + dataIndex: 'superLeader', + format: 'dict|superLeader', + resizable: true, + sorter: true, + }, + { + title: '合同金额', + dataIndex: 'totalMoney', + resizable: true, + sorter: true, + }, + { + title: '合同资金支付率', + dataIndex: 'paymentExecutionRate', + resizable: true, + sorter: true, + }, + { + title: '中央资金', + dataIndex: 'centralMoney', + resizable: true, + sorter: true, + }, + { + title: '省级资金', + dataIndex: 'provincialMoney', + resizable: true, + sorter: true, + }, + { + title: '上级资金支付率', + dataIndex: 'superiorFundExecutionRate', + resizable: true, + sorter: true, + }, + { + title: '项目总进度', + dataIndex: 'projectProgress', + resizable: true, + slots: { customRender: 'projectProgress' }, + fixed: 'right', + sorter: true, + }, +]; + +export const shifanxiangsearchFormSchema: FormSchema[] = [ + { + label: '项目名称', + field: 'projectName', + component: 'Input', + labelWidth: 'auto' + //colProps: { span: 6 }, + }, + { + label: '行政区划', + field: 'adminDivision', + component: 'Input', + labelWidth: 'auto' + //colProps: { span: 6 }, + }, + { + //标题名称 + label: '责任单位', + //字段 + field: 'dutyWorkplace', + //组件 支持组件详见 components/Form/src/types/index.ts 中的 ComponentType + component: 'Input', + labelWidth: 'auto' + }, + { + //标题名称 + label: '单位属性', + //字段 + field: 'workplaceProperties', + //组件 支持组件详见 components/Form/src/types/index.ts 中的 ComponentType + component: 'Input', + labelWidth: 'auto' + }, + { + field: 'superLeader', + label: '上级指导处室', + component: 'DictSelect', + componentProps: { + dictType: 'superLeader', + }, + labelWidth: 'auto' + + }, +]; diff --git a/src/views/projectLib/projectPlan/addPlanFile.vue b/src/views/projectLib/projectPlan/addPlanFile.vue index 5d6e5e2..44aa96c 100644 --- a/src/views/projectLib/projectPlan/addPlanFile.vue +++ b/src/views/projectLib/projectPlan/addPlanFile.vue @@ -11,7 +11,7 @@ 支持上传文件数量为1-2份 - 支持上传文件数量为1-3份 @@ -187,12 +187,12 @@ //“可研报告初稿编制”阶段:需支持上传《可行性研究报告(初稿)》或《项目建议书》(支持上传文件数量为1-2份) if ( dataTo.taskName.indexOf('可研报告初稿编制') >= 0 || - dataTo.taskName.indexOf('可研报告终稿编制') >= 0 + dataTo.taskName.indexOf('可研报告送审稿编制') >= 0 ) { //有一个文件就行 } else { if (fileList.length != dataTo.files.length && dataTo.type == 0) { - message.error('上传的文件不符合要求请检查'); + message.error('上传的文件数量与项目计划资料数量不一致,请检查'); return; } } diff --git a/src/views/projectLib/projectPlan/projectPlan.api.ts b/src/views/projectLib/projectPlan/projectPlan.api.ts index 3d04252..64a0971 100644 --- a/src/views/projectLib/projectPlan/projectPlan.api.ts +++ b/src/views/projectLib/projectPlan/projectPlan.api.ts @@ -5,6 +5,8 @@ import { e } from 'unocss'; export enum Api { saveprojectInfo = "", projectPlanPageList = '/huzhouPlan/projectPlanPageList', + // projectPlanPageList = '/huzhouProject/import', + queryPlanModuleDetailPage = "/huzhouPlan/queryPlanModuleDetailPage", queryPlanModuleone = '/huzhouPlan/queryPlanModuleone', saveProjectPlan = '/huzhouPlan/saveProjectPlan', diff --git a/src/views/projectLib/projectPlan/uploadURTfile.vue b/src/views/projectLib/projectPlan/uploadURTfile.vue index e0eae97..c48e2f8 100644 --- a/src/views/projectLib/projectPlan/uploadURTfile.vue +++ b/src/views/projectLib/projectPlan/uploadURTfile.vue @@ -165,6 +165,10 @@ message.error('请上传《部门联审意见》'); return; } + if (fileList.length <=1) { + message.error('请上传终稿'); + return; + } if (await validateMoneyForm()) { let moneydata = await getMoneyFieldsValue(); // // 使用form表单的数据格式 diff --git a/src/views/projectLib/projectPlan/viewPlanDetail.vue b/src/views/projectLib/projectPlan/viewPlanDetail.vue index 74812bc..3e28d5c 100644 --- a/src/views/projectLib/projectPlan/viewPlanDetail.vue +++ b/src/views/projectLib/projectPlan/viewPlanDetail.vue @@ -248,7 +248,7 @@ record.isfinish ==2 && record.taskFile?.length > 0 &&( record.taskName == '可研报告初稿编制' || - record.taskName == '可研报告终稿编制') + record.taskName == '可研报告送审稿编制') ) { if (isShowByRoles('projectContact')) { return true; @@ -281,7 +281,7 @@ } if (record.taskName.indexOf('可研报告初稿编制') >= 0) { fileArr.value.push("《项目建议书》"); - }else if (record.taskName.indexOf('可研报告终稿编制') >= 0) { + }else if (record.taskName.indexOf('可研报告送审稿编制') >= 0) { fileArr.value.push("《项目建议书》"); fileArr.value.push("《补充说明》"); @@ -299,7 +299,7 @@ } if (record.taskName.indexOf('可研报告初稿编制') >= 0) { fileArr.value.push("《项目建议书》"); - }else if (record.taskName.indexOf('可研报告终稿编制') >= 0) { + }else if (record.taskName.indexOf('可研报告送审稿编制') >= 0) { fileArr.value.push("《项目建议书》"); fileArr.value.push("《补充说明》"); diff --git a/src/views/projectSummary/planSummary/SetWanCheng.vue b/src/views/projectSummary/planSummary/SetWanCheng.vue index c49d991..1e0132d 100644 --- a/src/views/projectSummary/planSummary/SetWanCheng.vue +++ b/src/views/projectSummary/planSummary/SetWanCheng.vue @@ -3,7 +3,7 @@
- + + @@ -17,6 +59,48 @@
单位:(万元)
更多 +
@@ -41,9 +125,14 @@ const [register, { openModal }] = useModal(); onMounted(async () => {}); - let planSummary = ref>([]); + let planSummary = ref({ + projectNum: '', + centralMoney: '', + totalMoney: '', + projectProgress: '', + }); let activeKey = ref('1'); - const [registerRenwuTable] = useTable({ + const [registerRenwuTable,{ reload:rwload }] = useTable({ api: getProjectSummaryPageByTask, title: '入库项目汇总', columns: renwuColumn, @@ -59,7 +148,7 @@ // slots: { customRender: 'action' }, // }, }); - const [registerCengjiTable] = useTable({ + const [registerCengjiTable,{ reload:cjload }] = useTable({ api: getProjectSummaryPage, title: '入库项目汇总', columns: cengjiColumn, @@ -87,23 +176,41 @@ console.log(type); } function onSummary(tableData: Recordable[]) { - const totals = mapTableTotalSummary(tableData, ["projectNum", 'projectProgress',"totalMoney","centralMoney"]); + const totals = mapTableTotalSummary(tableData, [ + 'projectNum', + 'projectProgress', + 'totalMoney', + 'centralMoney', + ]); console.log('onSummary****totals>>>', totals); + planSummary.value = { + projectNum: totals.projectNum, + centralMoney: (totals.centralMoney/10000).toFixed(2), + totalMoney: (totals.totalMoney/10000).toFixed(2), + projectProgress: ((totals.projectProgress / tableData.length)*100).toFixed(2)+"%", + } return [ - // totals, + // // totals, { reformName: '总计', // superLeader:"总计", dutyWorkplace: '总计', // 计算平均值 - projectNum: totals.projectNum , - centralMoney:totals.centralMoney, - totalMoney:totals.totalMoney, + projectNum: totals.projectNum, + centralMoney: totals.centralMoney, + totalMoney: totals.totalMoney, projectProgress: (totals.projectProgress / tableData.length).toFixed(2), - }, ]; } + function handleTabChange(key) { + // activeKey.value = key; + if (key === '1') { + rwload(); + } else { + cjload(); + } + }