Browse Source

提交

master
zhouhaibin 5 months ago
parent
commit
83aa8eb1db
  1. 2
      src/views/ProcessApprovalSubPage/component/ApprovalPageModel.vue
  2. 38
      src/views/ProcessApprovalSubPage/component/ProjectinfoComponent.vue
  3. 102
      src/views/ProcessApprovalSubPage/initiatesProjectsApproval.vue
  4. 0
      src/views/ProcessApprovalSubPage/initiatesProjectsApproval/childProjectsApproval(弃用).vue
  5. 2
      src/views/myWork/inComplete/inComplete.api.ts
  6. 5
      src/views/projectLib/projectArchive/SubmitProjectArchive.vue
  7. 4
      src/views/projectLib/projectArchive/projectArchive.api.ts
  8. 6
      src/views/projectLib/projectContract/DetailTable.vue
  9. 4
      src/views/projectLib/projectContract/projectContract.vue
  10. 6
      src/views/projectLib/projectInfo/projectInfo.api.ts
  11. 4
      src/views/projectLib/projectPlan/index.vue
  12. 4
      src/views/projectLib/projectPlan/projectPlan.api.ts
  13. 28
      src/views/projectLib/workReport/addModifyWorkreport.vue
  14. 95
      src/views/projectLib/workReport/detaiWorkReport.vue
  15. 73
      src/views/projectLib/workReport/index.vue
  16. 58
      src/views/projectLib/workReport/setProjectWorkReport.vue
  17. 8
      src/views/projectLib/workReport/workReport.api.ts
  18. 136
      src/views/projectLib/workReport/workReport.data.ts
  19. 2
      src/views/projectSummary/planSummary/index.vue

2
src/views/ProcessApprovalSubPage/component/ApprovalPageModel.vue

@ -4,7 +4,6 @@
<uploadfileApproval :record="record" @close="exit" v-if="record.stage=='supervisionFile'"/> <uploadfileApproval :record="record" @close="exit" v-if="record.stage=='supervisionFile'"/>
<projectPlanApproval :record="record" @close="exit" v-if="record.stage=='createPlaninfo'"/> <projectPlanApproval :record="record" @close="exit" v-if="record.stage=='createPlaninfo'"/>
<planFileApproval :record="record" @close="exit" v-if="record.stage=='createPlaninfoFile'||record.stage=='createPlaninfoFile2'"/> <planFileApproval :record="record" @close="exit" v-if="record.stage=='createPlaninfoFile'||record.stage=='createPlaninfoFile2'"/>
<ProjectArchiveApproval :record="record" @close="exit" v-if="record.stage==5"/>
<fieldChangeApproval :record="record" @close="exit" v-if="record.stage=='fieldChange'"/> <fieldChangeApproval :record="record" @close="exit" v-if="record.stage=='fieldChange'"/>
</BasicModal> </BasicModal>
</template> </template>
@ -16,7 +15,6 @@ import initiatesProjectsApproval from "../initiatesProjectsApproval.vue"
import planFileApproval from '@/views/ProcessApprovalSubPage/planFileApproval.vue' import planFileApproval from '@/views/ProcessApprovalSubPage/planFileApproval.vue'
import uploadfileApproval from '../uploadfileApproval.vue' import uploadfileApproval from '../uploadfileApproval.vue'
import projectPlanApproval from '../projectPlanApproval.vue' import projectPlanApproval from '../projectPlanApproval.vue'
import ProjectArchiveApproval from '../ProjectArchiveApproval.vue'
import fieldChangeApproval from '../fieldChangeApproval.vue' import fieldChangeApproval from '../fieldChangeApproval.vue'
const [registerModal, { closeModal }] = useModalInner(); const [registerModal, { closeModal }] = useModalInner();

38
src/views/ProcessApprovalSubPage/component/ProjectinfoComponent.vue

@ -75,25 +75,25 @@ function getTableAction(record): ActionItem[] {
return [ return [
{ {
label: dataTo.title, label: dataTo.title,
ifShow: () => { // ifShow: () => {
if (dataTo.title == "新增项目周报") { // if (dataTo.title == "") {
if (record.projectId == undefined) { // if (record.projectId == undefined) {
return true // return true
} else { // } else {
return false // return false
} // }
} else if (dataTo.title == "新增项目合同") { // } else if (dataTo.title == "") {
if (record.projectId != undefined) { // if (record.projectId != undefined) {
return true // return true
} else if (record.children == null) { // } else if (record.children == null) {
return true // return true
} else { // } else {
return false // return false
} // }
} else { // } else {
return true // return true
} // }
}, // },
onClick: handlemodify.bind(null, record), onClick: handlemodify.bind(null, record),
} }
]; ];

102
src/views/ProcessApprovalSubPage/initiatesProjectsApproval.vue

@ -1,32 +1,15 @@
<template> <template>
<!-- 自定义表单 --> <!-- 自定义表单 -->
<div v-if="!IsbatchImportProjects"> <div>
<ProjectDetails :isEdit="resButton.isEdit" :projectid="projectid" ref="ProjectDetailsRef" /> <ProjectDetails :isEdit="resButton.isEdit" :projectid="projectid" ref="ProjectDetailsRef" />
</div> </div>
<div v-if="IsbatchImportProjects">
<el-divider content-position="left">批量导入项目入库详情</el-divider>
<BasicTable @register="registerbatchImportTable">
<template #action="{ record }">
<!-- <TableAction :actions="getTableAction(record)" /> -->
<TableAction :actions="getTableAction(record)" />
</template>
</BasicTable>
</div>
<ApprovalDetails :processInstanceId="processInstanceId" /> <ApprovalDetails :processInstanceId="processInstanceId" />
<ApprovalFromPage :showApprovalForm="showApprovalForm" :buttons="resButton.buttons" ref="ApprovalFromPageRef" <ApprovalFromPage :showApprovalForm="showApprovalForm" :buttons="resButton.buttons" ref="ApprovalFromPageRef"
@submit="handleSubmit" @exit="exit" /> @submit="handleSubmit" @exit="exit" />
<BasicModal @register="registeProjectrModal" title="项目信息详情" width="1200px" :showOkBtn="false">
<childProjectsApproval :projectid="proid" :isEdit="proisEdit" @close="closeProjectrModal" />
</BasicModal>
</template> </template>
<script lang="ts" name="initiatesProjectsApproval" setup> <script lang="ts" name="initiatesProjectsApproval" setup>
import { ref, onMounted } from 'vue' import { ref, onMounted } from 'vue'
import { columns } from '../projectLib/projectInfo/projectInfo.data';
import { getIsbatchImportProjects, batchImportProjectPageListByInstid } from '../projectLib/projectInfo/projectInfo.api'
import { ActionItem, BasicTable, TableAction,useTable } from '@/components/Table';
import { submitTask, getActionParam } from '../myWork/inComplete/inComplete.api'; import { submitTask, getActionParam } from '../myWork/inComplete/inComplete.api';
import { BasicModal, useModal } from '@/components/Modal';
import childProjectsApproval from '../ProcessApprovalSubPage/initiatesProjectsApproval/childProjectsApproval.vue'
import ApprovalDetails from "../ProcessApprovalSubPage/component/ApprovalDetails.vue"; import ApprovalDetails from "../ProcessApprovalSubPage/component/ApprovalDetails.vue";
import ProjectDetails from "../ProcessApprovalSubPage/component/ProjectDetails.vue" import ProjectDetails from "../ProcessApprovalSubPage/component/ProjectDetails.vue"
import ApprovalFromPage from "../ProcessApprovalSubPage/component/ApprovalFromPage.vue" import ApprovalFromPage from "../ProcessApprovalSubPage/component/ApprovalFromPage.vue"
@ -37,87 +20,23 @@ let projectid = dataTo.record.projectId
let taskid = dataTo.record.taskId let taskid = dataTo.record.taskId
let ProjectDetailsRef = ref() let ProjectDetailsRef = ref()
let ApprovalFromPageRef = ref() let ApprovalFromPageRef = ref()
let IsbatchImportProjects = ref<Boolean>(false);
let proisEdit = ref<Boolean>(false);
let showApprovalForm = ref() let showApprovalForm = ref()
let resButton = ref({ let resButton = ref({
showApprovalForm: false, showApprovalForm: false,
isEdit: false, isEdit: false,
buttons: [] buttons: []
}) })
let proid = ref()
onMounted(async () => { onMounted(async () => {
//id
IsbatchImportProjects.value = await getIsbatchImportProjects({ processInstanceId: processInstanceId })
if (IsbatchImportProjects.value) {
//
reloadBatchImportTable()
}
resButton.value = await getActionParam({ processInstanceId: processInstanceId, taskId: taskid, procesType: dataTo.record.procesType }) resButton.value = await getActionParam({ processInstanceId: processInstanceId, taskId: taskid, procesType: dataTo.record.procesType })
console.log("resButton", resButton.value) console.log("resButton", resButton.value)
showApprovalForm.value = resButton.value.showApprovalForm showApprovalForm.value = resButton.value.showApprovalForm
}) })
/**
* 批量导入表格
*/
const [registerbatchImportTable, { reload: reloadBatchImportTable, getDataSource }] = useTable({
size: 'small',//
title: '入库项目',
api: batchImportProjectPageListByInstid,
columns: columns,
actionColumn: {
width: 140,
title: '操作',
dataIndex: 'action',
slots: { customRender: 'action' },
},
useSearchForm: false,
beforeFetch(params) {
params.processInstanceId = processInstanceId
},
});
//
function getTableAction(record): ActionItem[] {
return [
{
label: '详情',
onClick: handleDetailpage.bind(null, record),
},
{
label: '修改',
onClick: handleModifyDetailpage.bind(null, record),
ifShow: () => {
return resButton.value.isEdit
}
},
];
}
const [registeProjectrModal, { openModal: openModalProjectr, closeModal: closeModalProjectr }] = useModal();//
function handleDetailpage(record) {
proisEdit.value = false
proid.value = record.id
openModalProjectr()
}
function handleModifyDetailpage(record) {
proisEdit.value = resButton.value.isEdit == true ? true : false
proid.value = record.id
openModalProjectr()
}
function closeProjectrModal() {
closeModalProjectr()
console.log("qqqqqqqqqqq")
reloadBatchImportTable()
}
/** /**
* 提交 * 提交
*/ */
async function handleSubmit() { async function handleSubmit() {
let approvalform = await ApprovalFromPageRef.value.getFieldsValueApprovalForm(); let approvalform = await ApprovalFromPageRef.value.getFieldsValueApprovalForm();
if (!IsbatchImportProjects.value) {
let projectform = await ProjectDetailsRef.value.getFieldsValueProjectForm() let projectform = await ProjectDetailsRef.value.getFieldsValueProjectForm()
let param = { let param = {
flag: approvalform.flag, flag: approvalform.flag,
@ -129,29 +48,10 @@ async function handleSubmit() {
} }
if (await ApprovalFromPageRef.value.validateApprovalForm() && await ProjectDetailsRef.value.validateProjectForm()) { if (await ApprovalFromPageRef.value.validateApprovalForm() && await ProjectDetailsRef.value.validateProjectForm()) {
console.log("提交成功!1") console.log("提交成功!1")
await submitTask(param) await submitTask(param)
console.log("提交成功!2", param, ProjectDetailsRef.value.isEdit) console.log("提交成功!2", param, ProjectDetailsRef.value.isEdit)
emit("close") emit("close")
}
} else {
if (await ApprovalFromPageRef.value.validateApprovalForm()) {
console.log("提交成功!3")
let projectArr = await getDataSource()
let param = {
flag: approvalform.flag,
projectid: projectid,
comment: approvalform.comment,
taskId: taskid,
isEdit: resButton.value.isEdit == true ? "1" : "0",
projectArr: projectArr
}
let res = await submitTask(param)
console.log("提交成功!", res)
emit("close")
}
} }
} }
function exit(){ function exit(){

0
src/views/ProcessApprovalSubPage/initiatesProjectsApproval/childProjectsApproval.vue → src/views/ProcessApprovalSubPage/initiatesProjectsApproval/childProjectsApproval(弃用).vue

2
src/views/myWork/inComplete/inComplete.api.ts

@ -10,7 +10,6 @@ export enum Api {
modifyProjectInfo = '/huzhouProject/modifyProjectInfo', modifyProjectInfo = '/huzhouProject/modifyProjectInfo',
approvePlanFile = "/huzhouPlaninfofile/approvePlanFile", approvePlanFile = "/huzhouPlaninfofile/approvePlanFile",
queryProcessInfo = '/workflow/getprocessInfo', queryProcessInfo = '/workflow/getprocessInfo',
modifyProjectInfoApproval="/huzhouProject/modifyProjectInfoApproval",
getProcessInstanceIdByProid = "/workflow/getProcessInstanceIdByProid", getProcessInstanceIdByProid = "/workflow/getProcessInstanceIdByProid",
getWorkcountNumber="/workflow/getWorkcountNumber", getWorkcountNumber="/workflow/getWorkcountNumber",
} }
@ -28,7 +27,6 @@ export const myCompleteTask = (params) => defHttp.get({ url: Api.myCompleteTask,
export const getActionParam = (params) => defHttp.get({ url: Api.getActionParam, params }) export const getActionParam = (params) => defHttp.get({ url: Api.getActionParam, params })
export const approveUploadFile = (params) => defHttp.post({ url: Api.approveUploadFile, headers: { "Content-Type": "multipart/form-data" }, params }) export const approveUploadFile = (params) => defHttp.post({ url: Api.approveUploadFile, headers: { "Content-Type": "multipart/form-data" }, params })
export const modifyProjectInfo = (params) => defHttp.post({ url: Api.modifyProjectInfo, params }) export const modifyProjectInfo = (params) => defHttp.post({ url: Api.modifyProjectInfo, params })
export const modifyProjectInfoApproval = (params) => defHttp.post({ url: Api.modifyProjectInfoApproval, params })
export const approvePlanFile = (params) => defHttp.post({ url: Api.approvePlanFile, headers: { "Content-Type": "multipart/form-data" }, params }) export const approvePlanFile = (params) => defHttp.post({ url: Api.approvePlanFile, headers: { "Content-Type": "multipart/form-data" }, params })
export const openApprovePage = (record,router) => { export const openApprovePage = (record,router) => {

5
src/views/projectLib/projectArchive/SubmitProjectArchive.vue

@ -37,7 +37,6 @@ import PlaninfoDetails from "../../ProcessApprovalSubPage/component/PlaninfoDeta
import { ActionItem, TableAction } from '@/components/Table'; import { ActionItem, TableAction } from '@/components/Table';
import planinfoFileDetail from '../projectPlan/planinfoFileDetail.vue' import planinfoFileDetail from '../projectPlan/planinfoFileDetail.vue'
import ApprovalDetails from "../../ProcessApprovalSubPage/component/ApprovalDetails.vue" import ApprovalDetails from "../../ProcessApprovalSubPage/component/ApprovalDetails.vue"
import { submitProjectArchive } from "./projectArchive.api"
import type { TabsPaneContext } from 'element-plus' import type { TabsPaneContext } from 'element-plus'
import { uploacFilePageList } from '../../projectLib/projectInfo/projectInfo.api' import { uploacFilePageList } from '../../projectLib/projectInfo/projectInfo.api'
@ -96,9 +95,7 @@ function handleDetail(record) {
openFileInfo() openFileInfo()
} }
async function submitImportForm() {
await submitProjectArchive({ projectid: dataTo.projectid })
}
function closeModel() { function closeModel() {
emit("close") emit("close")
} }

4
src/views/projectLib/projectArchive/projectArchive.api.ts

@ -1,8 +1,6 @@
import { defHttp } from '@/utils/http/axios'; import { defHttp } from '@/utils/http/axios';
export enum Api { export enum Api {
submitProjectArchive = '/huzhouProject/submitProjectArchive',
approveProjectArchive="/huzhouProject/approveProjectArchive",
projectArchivePageList = '/huzhouProject/projectArchivePageList', projectArchivePageList = '/huzhouProject/projectArchivePageList',
queryPlanModuleDetailPage = "/huzhouPlan/queryPlanModuleDetailPage", queryPlanModuleDetailPage = "/huzhouPlan/queryPlanModuleDetailPage",
@ -11,8 +9,6 @@ export enum Api {
/** /**
* *
*/ */
export const submitProjectArchive = (params) => defHttp.post({ url: Api.submitProjectArchive, params })
export const approveProjectArchive = (params) => defHttp.post({ url: Api.approveProjectArchive, params })
export const projectArchivePageList = (params) => defHttp.get({ url: Api.projectArchivePageList, params }) export const projectArchivePageList = (params) => defHttp.get({ url: Api.projectArchivePageList, params })

6
src/views/projectLib/projectContract/DetailTable.vue

@ -15,7 +15,7 @@ import { ref, reactive, onMounted } from 'vue'
import { useForm, BasicForm } from '@/components/Form'; import { useForm, BasicForm } from '@/components/Form';
import { contractformSchemas, MoneyFormSchemas } from './projectContract.data'; import { contractformSchemas, MoneyFormSchemas } from './projectContract.data';
import { getContractinfoByProjectId } from './projectContract.api'; import { getContractinfoByProjectId } from './projectContract.api';
import { queryProjectInfoNewDataById } from '@/views/projectLib/projectInfo/projectInfo.api' import { queryProjectInfoById } from '@/views/projectLib/projectInfo/projectInfo.api'
import { useModalInner, BasicModal } from '@/components/Modal'; import { useModalInner, BasicModal } from '@/components/Modal';
import { FormSchema } from '@/components/Form'; import { FormSchema } from '@/components/Form';
import UploadfileDetail from "@/views/ProcessApprovalSubPage/component/UploadfileDetail.vue" import UploadfileDetail from "@/views/ProcessApprovalSubPage/component/UploadfileDetail.vue"
@ -39,7 +39,7 @@ async function init(data) {
let parammoney: any = { let parammoney: any = {
projectid: data.projectid projectid: data.projectid
} }
resMoney.value = await queryProjectInfoNewDataById(parammoney) resMoney.value = await queryProjectInfoById(parammoney)
setFieldsValueMoneyForm(resMoney.value) setFieldsValueMoneyForm(resMoney.value)
fileList.pop() fileList.pop()
let param: any = { let param: any = {
@ -108,7 +108,7 @@ const [registerMoneyForm, { setFieldsValue: setFieldsValueMoneyForm }] = useForm
// //
const [registerContractForm, { setFieldsValue: setFieldsValue, getFieldsValue, validate, resetSchema, removeSchemaByField }] = useForm({ const [registerContractForm, { setFieldsValue: setFieldsValue, resetSchema }] = useForm({
// //
schemas: contractformSchemas, schemas: contractformSchemas,
showActionButtonGroup: false, showActionButtonGroup: false,

4
src/views/projectLib/projectContract/projectContract.vue

@ -39,7 +39,7 @@ import { ref, reactive, onMounted } from 'vue'
import { useForm, BasicForm } from '@/components/Form'; import { useForm, BasicForm } from '@/components/Form';
import { contractformSchemas, MoneyFormSchemas } from './projectContract.data'; import { contractformSchemas, MoneyFormSchemas } from './projectContract.data';
import { modifyContractinfo, addContractinfo, getContractinfoByProjectId } from './projectContract.api'; import { modifyContractinfo, addContractinfo, getContractinfoByProjectId } from './projectContract.api';
import { queryProjectInfoNewDataById } from '@/views/projectLib/projectInfo/projectInfo.api' import { queryProjectInfoById } from '@/views/projectLib/projectInfo/projectInfo.api'
import { ElMessage } from 'element-plus' import { ElMessage } from 'element-plus'
import { useModalInner, BasicModal } from '@/components/Modal'; import { useModalInner, BasicModal } from '@/components/Modal';
import { FormSchema } from '@/components/Form'; import { FormSchema } from '@/components/Form';
@ -180,7 +180,7 @@ async function init(data) {
let parammoney: any = { let parammoney: any = {
projectid: data.projectid projectid: data.projectid
} }
resMoney.value = await queryProjectInfoNewDataById(parammoney) resMoney.value = await queryProjectInfoById(parammoney)
setFieldsValueMoneyForm(resMoney.value) setFieldsValueMoneyForm(resMoney.value)
fileList.pop() fileList.pop()
if (data.isModify != null) { if (data.isModify != null) {

6
src/views/projectLib/projectInfo/projectInfo.api.ts

@ -7,14 +7,11 @@ export enum Api {
list = '/sys/user/queryByOrgCodeForAddressList', list = '/sys/user/queryByOrgCodeForAddressList',
queryProcessInfo = '/workflow/getprocessInfo', queryProcessInfo = '/workflow/getprocessInfo',
queryProjectInfoById = '/huzhouProject/queryProjectInfoById', queryProjectInfoById = '/huzhouProject/queryProjectInfoById',
queryProjectInfoNewDataById="/huzhouProject/queryProjectInfoNewDataById",
getProjectInfoAndChildPageList="/huzhouProject/getProjectInfoAndChildPageList", getProjectInfoAndChildPageList="/huzhouProject/getProjectInfoAndChildPageList",
getProjectInfoPageList="/huzhouProject/getProjectInfoPageList", getProjectInfoPageList="/huzhouProject/getProjectInfoPageList",
submitUploadFile = '/huzhouUploadfileinfo/submitUploadFile', submitUploadFile = '/huzhouUploadfileinfo/submitUploadFile',
uploacFilePageList = '/huzhouUploadfileinfo/uploacFilePageList', uploacFilePageList = '/huzhouUploadfileinfo/uploacFilePageList',
batchImportProjects="/huzhouProject/batchImportProjects", batchImportProjects="/huzhouProject/batchImportProjects",
getIsbatchImportProjects = '/huzhouProject/getIsbatchImportProjects',
batchImportProjectPageListByInstid = '/huzhouProject/batchImportProjectPageListByInstid',
batchdownloadProject="/huzhouProject/batchdownloadProject", batchdownloadProject="/huzhouProject/batchdownloadProject",
getChangeFieldManageDict="/huzhouChangefieldmanage/getChangeFieldManageDict", getChangeFieldManageDict="/huzhouChangefieldmanage/getChangeFieldManageDict",
@ -31,7 +28,6 @@ export enum Api {
* *
*/ */
export const queryProjectInfoById = (params?) => defHttp.get({ url: Api.queryProjectInfoById, params }); export const queryProjectInfoById = (params?) => defHttp.get({ url: Api.queryProjectInfoById, params });
export const queryProjectInfoNewDataById = (params?) => defHttp.get({ url: Api.queryProjectInfoNewDataById, params });
export const addSubProjectinfo = (params?) => defHttp.post({ url: Api.addSubProjectinfo, params }); export const addSubProjectinfo = (params?) => defHttp.post({ url: Api.addSubProjectinfo, params });
export const modifySubProjectinfo = (params?) => defHttp.post({ url: Api.modifySubProjectinfo, params }); export const modifySubProjectinfo = (params?) => defHttp.post({ url: Api.modifySubProjectinfo, params });
export const getRemainingMoneyinfo = (params?) => defHttp.get({ url: Api.getRemainingMoneyinfo, params }); export const getRemainingMoneyinfo = (params?) => defHttp.get({ url: Api.getRemainingMoneyinfo, params });
@ -57,8 +53,6 @@ export const submitFieldchange = (params?) =>defHttp.post({ url: Api.submitFiel
export const submitUploadFile = (params?) =>defHttp.post({ url: Api.submitUploadFile,headers:{ "Content-Type": "multipart/form-data" }, params }) export const submitUploadFile = (params?) =>defHttp.post({ url: Api.submitUploadFile,headers:{ "Content-Type": "multipart/form-data" }, params })
export const uploacFilePageList =(params?) => defHttp.get({ url: Api.uploacFilePageList, params }); export const uploacFilePageList =(params?) => defHttp.get({ url: Api.uploacFilePageList, params });
export const batchImportProjects = (params?) =>defHttp.post({ url: Api.batchImportProjects,headers:{ "Content-Type": "multipart/form-data" }, params }) export const batchImportProjects = (params?) =>defHttp.post({ url: Api.batchImportProjects,headers:{ "Content-Type": "multipart/form-data" }, params })
export const getIsbatchImportProjects = (params?) =>defHttp.get({ url: Api.getIsbatchImportProjects, params });
export const batchImportProjectPageListByInstid = (params?) =>defHttp.get({ url: Api.batchImportProjectPageListByInstid, params });
export const batchdownloadProject = (params?) => downloadFile(Api.batchdownloadProject,"项目入库数据.xlsx",params) export const batchdownloadProject = (params?) => downloadFile(Api.batchdownloadProject,"项目入库数据.xlsx",params)

4
src/views/projectLib/projectPlan/index.vue

@ -34,7 +34,7 @@ import { isShowByRoles } from '@/views/projectLib/projectInfo/projectInfo.api';
import { columns, searchFormSchema } from '@/views/projectLib/projectInfo/projectInfo.data'; import { columns, searchFormSchema } from '@/views/projectLib/projectInfo/projectInfo.data';
import { projectApprovedPageList } from '@/views/projectLib/projectPlan/projectPlan.api'; import { projectPlanPageList } from '@/views/projectLib/projectPlan/projectPlan.api';
import { useUserStore } from '@/store/modules/user'; import { useUserStore } from '@/store/modules/user';
import { useRouter } from 'vue-router'; // useRouter import { useRouter } from 'vue-router'; // useRouter
const router = useRouter(); const router = useRouter();
@ -46,7 +46,7 @@ const [registerProjectPlan, { openModal: openProjectPlan, closeModal: closeProje
const [registerTable, { reload }]= useTable({ const [registerTable, { reload }]= useTable({
title: '项目信息', title: '项目信息',
api: projectApprovedPageList, api: projectPlanPageList,
columns: columns, columns: columns,
useSearchForm: true, useSearchForm: true,
showIndexColumn:false, showIndexColumn:false,

4
src/views/projectLib/projectPlan/projectPlan.api.ts

@ -3,7 +3,7 @@ import { downloadFile } from "@/api/common/api"
export enum Api { export enum Api {
saveprojectInfo = "", saveprojectInfo = "",
projectApprovedPageList = '/huzhouProject/projectApprovedPageList', projectPlanPageList = '/huzhouPlan/projectPlanPageList',
queryPlanModuleDetailPage = "/huzhouPlan/queryPlanModuleDetailPage", queryPlanModuleDetailPage = "/huzhouPlan/queryPlanModuleDetailPage",
queryPlanModuleone = '/huzhouPlan/queryPlanModuleone', queryPlanModuleone = '/huzhouPlan/queryPlanModuleone',
saveProjectPlan = '/huzhouPlan/saveProjectPlan', saveProjectPlan = '/huzhouPlan/saveProjectPlan',
@ -23,7 +23,7 @@ export enum Api {
/** /**
* *
*/ */
export const projectApprovedPageList = (params) => defHttp.get({ url: Api.projectApprovedPageList, params }) export const projectPlanPageList = (params) => defHttp.get({ url: Api.projectPlanPageList, params })
export const queryPlanModuleDetailPage = (params) => defHttp.get({ url: Api.queryPlanModuleDetailPage, params }) export const queryPlanModuleDetailPage = (params) => defHttp.get({ url: Api.queryPlanModuleDetailPage, params })
export const queryPlanModuleone = (params) => defHttp.get({ url: Api.queryPlanModuleone, params }) export const queryPlanModuleone = (params) => defHttp.get({ url: Api.queryPlanModuleone, params })
export const getPlanFileApprovalInfoByPlaninfoId = (params) => defHttp.get({ url: Api.getPlanFileApprovalInfoByPlaninfoId, params }) export const getPlanFileApprovalInfoByPlaninfoId = (params) => defHttp.get({ url: Api.getPlanFileApprovalInfoByPlaninfoId, params })

28
src/views/projectLib/workReport/addModifyWorkreport.vue

@ -1,10 +1,10 @@
<template> <template>
<!-- 自定义表单 --> <!-- 自定义表单 -->
<BasicModal v-bind="$attrs" @register="registerModal" title="新增修改周报" width="1200px" :showOkBtn="false" :showCancelBtn="false"> <BasicModal v-bind="$attrs" @register="registerModal" title="新增修改周报" width="1200px" :showOkBtn="false" :showCancelBtn="false">
<el-divider content-position="left">周报信息</el-divider> <el-divider content-position="left">{{reportType}}信息</el-divider>
<BasicForm @register="registerWorkreport" /> <BasicForm @register="registerWorkreport" />
<el-divider content-position="left">上传周报文件</el-divider> <el-divider content-position="left">上传{{reportType}}文件</el-divider>
<el-form ref="importFormRef" > <el-form ref="importFormRef" >
<el-form-item label="上传文件:"> <el-form-item label="上传文件:">
@ -34,22 +34,28 @@ const [registerModal, { closeModal }] = useModalInner(init);
let fileList = reactive<Array<any>>([]); let fileList = reactive<Array<any>>([]);
let id = ref() let id = ref()
let projectid = ref() let isModify = ref(false) //
let reportType = ref('') //
const emit = defineEmits(['close',"register"]); const emit = defineEmits(['close',"register"]);
async function init(data) { async function init(data) {
reportType.value = data.reportType
console.log("datadatadata", data) console.log("datadatadata", data)
if (data.projectid) { isModify.value = data.isModify
projectid.value = data.projectid
}
fileList.pop()
if (data.id != null) {
id.value = data.id id.value = data.id
fileList.pop()
if (data.isModify == true) {
//
let param: any = { let param: any = {
id: data.id id: data.id
} }
let res = await getWorkreportById(param) let res = await getWorkreportById(param)
console.log("结果是", res) console.log("结果是", res)
res.reportType=reportType.value
setFieldsValue(res) setFieldsValue(res)
}else{
//
setFieldsValue({reportType:reportType.value})
} }
} }
@ -108,7 +114,7 @@ async function submitImportForm() {
let data = await getFieldsValue() let data = await getFieldsValue()
console.log("data", data) console.log("data", data)
// 使form // 使form
if (id.value != null) { if (isModify.value == true) {
if (fileList.length > 0) { if (fileList.length > 0) {
data.file = fileList[0].file data.file = fileList[0].file
} }
@ -121,7 +127,7 @@ async function submitImportForm() {
return; return;
} }
data.file = fileList[0].file data.file = fileList[0].file
data.projectid = projectid.value data.projectid = id.value
await addWorkreport(data) await addWorkreport(data)
} }
dialogVisible() dialogVisible()

95
src/views/projectLib/workReport/detaiWorkReport.vue

@ -0,0 +1,95 @@
<template>
<BasicModal v-bind="$attrs" @register="registerModal" title="设置类型" width="1200px" :showOkBtn="false">
<BasicTable @register="registerTable">
<template #action="{ record }">
<!-- <TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)"/> -->
<TableAction :actions="getTableAction(record)" />
</template>
</BasicTable>
<addModifyWorkreport @register="registeraddworkreport" @close="closeModel" />
</BasicModal>
</template>
<script lang="ts" name="system-user" setup>
//ts
import { ref } from "vue"
import { ActionItem, BasicTable, TableAction, useTable } from '@/components/Table';
import { useModal } from '@/components/Modal';
import { downloadFile } from "@/api/common/api"
import { workReportShowDetailcolumns } from '@/views/projectLib/workReport/workReport.data';
import addModifyWorkreport from "@/views/projectLib/workReport/addModifyWorkreport.vue"
import { searchFormSchema } from '@/views/projectLib/projectInfo/projectInfo.data';
import { useModalInner, BasicModal } from '@/components/Modal';
import { getProjectWorkReportByProjectId, deleteWorkreport } from '@/views/projectLib/workReport/workReport.api';
const [registeraddworkreport, { openModal,closeModal:closeModaladdworkreport }] = useModal();//
const [registerModal] = useModalInner(init);
let projectid = ref()
let reportType = ref()
const [registerTable, { reload}] = useTable({
title: '项目周报信息',
api: getProjectWorkReportByProjectId,
columns: workReportShowDetailcolumns,
useSearchForm: true,
actionColumn: {
width: 140,
title: '操作',
dataIndex: 'action',
slots: { customRender: 'action' },
},
//
formConfig: {
schemas: searchFormSchema,
},
beforeFetch(param){
param.projectid = projectid.value
}
});
async function init(data){
projectid.value = data.projectid
reportType.value = data.reportType
reload()
}
function getTableAction(record): ActionItem[] {
return [
{
label: '修改',
onClick: handlemodify.bind(null, record)
},
{
label: '下载',
onClick: handledown.bind(null, record)
},
];
}
function handlemodify(record) {
openModal(true, { id: record.id,isModify:true,reportType:reportType.value })
}
function handledown(record) {
console.log("我这一行的数据是", record)
let param = {
path: record.documentPath,
fileName: record.documentName
}
//
console.log("我这一行的数据是", param)
downloadFile("/huzhouUploadfileinfo/downloadfile", record.documentName, param)
}
async function handleDelete(record) {
await deleteWorkreport({ id: record.id })
reload()
}
function closeModel() {
closeModaladdworkreport()
reload()
}
</script>
<style scoped></style>

73
src/views/projectLib/workReport/index.vue

@ -3,20 +3,21 @@
<!--引用表格--> <!--引用表格-->
<BasicTable @register="registerTable"> <BasicTable @register="registerTable">
<template #action="{ record }"> <template #action="{ record }">
<!-- <TableAction :actions="getTableAction(record)" /> --> <!-- <TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)"/> -->
<TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)" /> <TableAction :actions="getTableAction(record)" />
</template> </template>
<template #tableTitle> <template #tableTitle>
<el-button type="primary" @click="handleAddWorkreport" v-if="isShowByRoles('projectContact,owner')"> <el-button type="primary" @click="handleAddWorkreport" v-if="isShowByRoles('projectContact,owner')">
新增项目周报</el-button> 新增项目周</el-button>
</template> </template>
</BasicTable> </BasicTable>
<addModifyWorkreport @register="registeraddworkreport" @close="closeModel" /> <addModifyWorkreport @register="registeraddworkreport" @close="closeModel" />
<ProjectinfoComponent @register="registerProjectinfo" @openChildModal="openModalProjectr"> <ProjectinfoComponent @register="registerProjectinfo" @openChildModal="openModalProjectr">
<template #default="record"> <template #default="record">
<addModifyWorkreport @register="registeraddworkreport" @close="closeModel" /> <setProjectWorkReport @register="registersetProjectWorkReport" @close="closeModel" />
</template> </template>
</ProjectinfoComponent> </ProjectinfoComponent>
<detaiWorkReport @register="registerdetaiWorkReport" @close="closeModel" />
</PageWrapper> </PageWrapper>
</template> </template>
@ -28,21 +29,27 @@ import { useModal } from '@/components/Modal';
import { downloadFile } from "@/api/common/api" import { downloadFile } from "@/api/common/api"
import { PageWrapper } from '@/components/Page'; import { PageWrapper } from '@/components/Page';
import { isShowByRoles } from '@/views/projectLib/projectInfo/projectInfo.api'; import { isShowByRoles } from '@/views/projectLib/projectInfo/projectInfo.api';
import { workReportShowcolumns, searchFormSchema } from '@/views/projectLib/workReport/workReport.data'; import { workReportTablecolumns } from '@/views/projectLib/workReport/workReport.data';
import addModifyWorkreport from "@/views/projectLib/workReport/addModifyWorkreport.vue" import addModifyWorkreport from "@/views/projectLib/workReport/addModifyWorkreport.vue"
import setProjectWorkReport from "@/views/projectLib/workReport/setProjectWorkReport.vue"
import detaiWorkReport from "@/views/projectLib/workReport/detaiWorkReport.vue"
import ProjectinfoComponent from '@/views/ProcessApprovalSubPage/component/ProjectinfoComponent.vue' import ProjectinfoComponent from '@/views/ProcessApprovalSubPage/component/ProjectinfoComponent.vue'
import { searchFormSchema } from '@/views/projectLib/projectInfo/projectInfo.data';
import { workreportPageList, getNoTypeWorkReportPageList } from '@/views/projectLib/workReport/workReport.api';
const [registeraddworkreport, { openModal,closeModal:closeModaladdworkreport }] = useModal();//
const [registersetProjectWorkReport, { openModal:opensetProjectWorkReport,closeModal:closeModalsetProjectWorkReport }] = useModal();//
import { workreportPageList, deleteWorkreport } from '@/views/projectLib/workReport/workReport.api'; const [registerProjectinfo, { openModal: openModalProjectinfo,closeModal: closeModalProjectinfo}] = useModal();//
const [registeraddworkreport, { openModal,closeModal:closeModaladdworkreport }] = useModal();
const [registerProjectinfo, { openModal: openModalProjectinfo,closeModal: closeModalProjectinfo}] = useModal(); const [registerdetaiWorkReport, { openModal: openModaldetaiWorkReport,closeModal: closeModaldetaiWorkReport}] = useModal();//
import { useUserStore } from '@/store/modules/user';
const userStore = useUserStore();
const [registerTable, { reload }] = useTable({ const [registerTable, { reload }] = useTable({
title: '项目周报信息', title: '项目周报信息',
api: workreportPageList, api: workreportPageList,
columns: workReportShowcolumns, columns: workReportTablecolumns,
useSearchForm: true, useSearchForm: true,
actionColumn: { actionColumn: {
width: 140, width: 140,
@ -59,38 +66,18 @@ const [registerTable, { reload }] = useTable({
function getTableAction(record): ActionItem[] { function getTableAction(record): ActionItem[] {
return [ return [
{ {
label: '下载', label: '新增'+record.reportType,
onClick: handledown.bind(null, record) onClick: handleadd.bind(null, record)
},
];
}
function getDropDownAction(record): ActionItem[] {
return [
{
label: '修改',
ifShow: () => {
return isShowByRoles('projectContact,owner')
},
onClick: handleModify.bind(null, record)
}, },
{ {
label: '删除', label: '详情',
ifShow: () => { onClick: handleDetail.bind(null, record)
return isShowByRoles('projectContact,owner') }
},
popConfirm: {
title: '确定删除吗?',
confirm: handleDelete.bind(null, record),
},
},
]; ];
} }
function handleModify(record) { function handleadd(record) {
openModal(true, { id: record.id }) openModal(true, { id: record.id,reportType:record.reportType,isModify:false })
} }
@ -105,22 +92,22 @@ function handledown(record) {
downloadFile("/huzhouUploadfileinfo/downloadfile", record.documentName, param) downloadFile("/huzhouUploadfileinfo/downloadfile", record.documentName, param)
} }
async function handleDelete(record) { async function handleDetail(record) {
await deleteWorkreport({ id: record.id }) await openModaldetaiWorkReport(true,{ projectid: record.id,reportType:record.reportType })
reload()
} }
function closeModel() { function closeModel() {
closeModaladdworkreport() closeModaladdworkreport()
closeModalsetProjectWorkReport()
closeModalProjectinfo() closeModalProjectinfo()
reload() reload()
} }
function handleAddWorkreport() { function handleAddWorkreport() {
openModalProjectinfo(true,{title:"新增项目周报"}) openModalProjectinfo(true,{title:"设置项目周月报",api:getNoTypeWorkReportPageList})
} }
function openModalProjectr(value) { function openModalProjectr(value) {
openModal(true,{projectid:value.id}) opensetProjectWorkReport(true,{projectid:value.id})
} }
</script> </script>

58
src/views/projectLib/workReport/setProjectWorkReport.vue

@ -0,0 +1,58 @@
<template>
<!-- 自定义表单 -->
<BasicModal v-bind="$attrs" @register="registerModal" title="设置类型" width="1200px" :showOkBtn="false"
:showCancelBtn="false">
<BasicForm @register="registerSetProjectWorkReport" @submit="handleSubmit" />
</BasicModal>
</template>
<script lang="ts" name="setProjectWorkReport" setup>
import { useForm, BasicForm } from '@/components/Form';
import { setProjectWorkReportformSchemas } from '@/views/projectLib/workReport/workReport.data';
import { useModalInner, BasicModal } from '@/components/Modal';
import { setProjectWorkReport} from '@/views/projectLib/workReport/workReport.api'
import { queryProjectInfoById } from '@/views/projectLib/projectInfo/projectInfo.api'
const [registerModal, { closeModal }] = useModalInner(init);
const emit = defineEmits(['close', "register"]);
async function init(data) {
console.log("datadatadata", data)
let res = await queryProjectInfoById({ projectid: data.projectid })
console.log("结果是", res)
setFieldsValue(res)
}
//
const [registerSetProjectWorkReport, { setFieldsValue: setFieldsValue, getFieldsValue, validate }] = useForm({
//
schemas: setProjectWorkReportformSchemas,
showActionButtonGroup: true,
resetButtonOptions: { text: '取消' },
submitButtonOptions: { text: '提交' },
// 24 0-24
resetFunc: dialogVisible,
actionColOptions: { span: 14 },
labelCol: { style: { width: '120px' } },
wrapperCol: { style: { width: 'auto' } },
});
//Excel
async function handleSubmit() {
if (await validate()) {
let data = await getFieldsValue()
await setProjectWorkReport({id:data.id,reportType:data.reportType})
console.log("data", data)
closeModal()
emit("close")
}
}
async function dialogVisible() {
closeModal()
}
</script>
<style></style>

8
src/views/projectLib/workReport/workReport.api.ts

@ -7,17 +7,23 @@ export enum Api {
modifyWorkreport = '/huzhouWorkreport/modifyWorkreport', modifyWorkreport = '/huzhouWorkreport/modifyWorkreport',
getWorkreportById="/huzhouWorkreport/getWorkreportById", getWorkreportById="/huzhouWorkreport/getWorkreportById",
deleteWorkreport = '/huzhouWorkreport/deleteWorkreport', deleteWorkreport = '/huzhouWorkreport/deleteWorkreport',
setProjectWorkReport = '/huzhouWorkreport/setProjectWorkReport',
getNoTypeWorkReportPageList='/huzhouWorkreport/getNoTypeWorkReportPageList',
getProjectWorkReportByProjectId='/huzhouWorkreport/getProjectWorkReportByProjectId',
} }
export const workreportPageList = (params) => defHttp.get({ url: Api.workreportPageList, params }) export const workreportPageList = (params) => defHttp.get({ url: Api.workreportPageList, params })
export const getWorkreportById = (params) => defHttp.get({ url: Api.getWorkreportById, params }) export const getWorkreportById = (params) => defHttp.get({ url: Api.getWorkreportById, params })
export const getNoTypeWorkReportPageList = (params) => defHttp.get({ url: Api.getNoTypeWorkReportPageList, params })
export const getProjectWorkReportByProjectId = (params) => defHttp.get({ url: Api.getProjectWorkReportByProjectId, params })
export const addWorkreport = (params?) =>defHttp.post({ url: Api.addWorkreport,headers:{ "Content-Type": "multipart/form-data" }, params }) export const addWorkreport = (params?) =>defHttp.post({ url: Api.addWorkreport,headers:{ "Content-Type": "multipart/form-data" }, params })
export const modifyWorkreport = (params?) =>defHttp.post({ url: Api.modifyWorkreport,headers:{ "Content-Type": "multipart/form-data" }, params }) export const modifyWorkreport = (params?) =>defHttp.post({ url: Api.modifyWorkreport,headers:{ "Content-Type": "multipart/form-data" }, params })
export const deleteWorkreport = (params?) =>defHttp.post({ url: Api.deleteWorkreport, params }) export const deleteWorkreport = (params?) =>defHttp.post({ url: Api.deleteWorkreport, params })
export const setProjectWorkReport = (params?) =>defHttp.post({ url: Api.setProjectWorkReport, params })

136
src/views/projectLib/workReport/workReport.data.ts

@ -3,14 +3,14 @@ import { BasicColumn } from '@/components/Table';
import dayjs from "dayjs"; import dayjs from "dayjs";
export const workReportShowcolumns: BasicColumn[] = [ export const workReportShowDetailcolumns: BasicColumn[] = [
{ {
title: '项目名称', title: '项目名称',
dataIndex: 'projectName', dataIndex: 'projectName',
}, },
{ {
title: '类型', title: '类型',
dataIndex: 'type', dataIndex: 'reportType',
}, },
{ {
title: '开始时间', title: '开始时间',
@ -43,61 +43,51 @@ export const workReportShowcolumns: BasicColumn[] = [
}, },
]; ];
export const workReportDetailcolumns: BasicColumn[] = [ export const workReportTablecolumns: BasicColumn[] = [
{ {
title: '合同总金额', title: '项目编号',
dataIndex: 'totalAmount', width: 150,
}, dataIndex: 'id',
{ ifShow: false,
title: '首付时间',
dataIndex: 'downpaymentDate',
}, },
{ {
title: '首付比例', title: '项目名称',
dataIndex: 'downpaymentRatio', dataIndex: 'projectName',
width: 300,
resizable: true,
align:'left',
slots: { customRender: 'projectName' },
}, },
{ {
title: '初验时间', title: '周月报类型',
dataIndex: 'initialDate', dataIndex: 'reportType',
}, },
{ {
title: '初验比例', title: '行政区划',
dataIndex: 'initialRatio', dataIndex: 'adminDivision',
resizable: true
}, },
{ {
title: '终验时间', title: '责任单位',
dataIndex: 'finalDate', dataIndex: 'dutyWorkplace',
resizable: true
}, },
{ {
title: '终验比例', title: '单位属性',
dataIndex: 'finalRatio', dataIndex: 'workplaceProperties',
resizable: true
}, },
{ {
title: '文件名称', title: '改革所属项目',
dataIndex: 'documentName', dataIndex: 'reformName',
width: 150, format: 'dict|reformTasks',
resizable: true
}, },
{ {
title: '文件大小', title: '上级指导处室',
dataIndex: 'size', dataIndex: 'superLeader',
width: 150, format: 'dict|superLeader',
customRender: ({ record }) => { resizable: true
let kbNum: number = record.size / 1024
if (kbNum < 1024) {
return kbNum.toFixed(2).toString() + "KB"
} else {
let mbNum: number = kbNum / 1024
return mbNum.toFixed(2).toString() + "MB"
}
},
}, },
]; ];
@ -114,14 +104,26 @@ export const searchFormSchema: FormSchema[] = [
} }
]; ];
export const workReportformSchemas: FormSchema[] = [ export const setProjectWorkReportformSchemas: FormSchema[] = [
{
label: '项目id',
field: 'id',
component: 'Input',
show: false,
colProps: { span: 12 },
},
{
label: '项目名称',
field: 'projectName',
component: 'Input',
dynamicDisabled: true,
colProps: { span: 12 },
},
{ {
label: '类型', label: '类型',
field: 'type', field: 'reportType',
component: 'Select', component: 'Select',
componentProps: ({ formModel, formActionType }) => { componentProps:{
return {
//
options: [ options: [
{ {
value: '周报', value: '周报',
@ -131,24 +133,30 @@ export const workReportformSchemas: FormSchema[] = [
label: '月报' label: '月报'
} }
], ],
onChange: async (value) => {
const { setFieldsValue } = formActionType;
if(formModel.startDate){
if(value=="周报"){
let nextDate = dayjs(formModel.startDate).add(7,"day").format("YYYY-MM-DD")
setFieldsValue({ endDate: nextDate })
}else{
let nextDate = dayjs(formModel.startDate).add(1,"month").format("YYYY-MM-DD")
setFieldsValue({ endDate: nextDate })
}
}
},
};
}, },
required: true, required: true,
colProps: { span: 12 }, colProps: { span: 12 },
}, },
]
export const workReportformSchemas: FormSchema[] = [
{
label: '类型',
field: 'reportType',
component: 'Select',
componentProps:{
options: [
{
value: '周报',
label: '周报'
}, {
value: '月报',
label: '月报'
}
],
},
dynamicDisabled: true,
colProps: { span: 12 },
},
{ {
label: '开始时间', label: '开始时间',
field: 'startDate', field: 'startDate',
@ -158,7 +166,6 @@ export const workReportformSchemas: FormSchema[] = [
// }, // },
componentProps: ({ formModel, formActionType }) => { componentProps: ({ formModel, formActionType }) => {
return { return {
// //
valueFormat: 'YYYY-MM-DD', valueFormat: 'YYYY-MM-DD',
@ -166,8 +173,8 @@ export const workReportformSchemas: FormSchema[] = [
const { setFieldsValue } = formActionType; const { setFieldsValue } = formActionType;
console.log("data", value, dayjs(value).add(7,"day").format("YYYY-MM-DD")) console.log("data", value, dayjs(value).add(7,"day").format("YYYY-MM-DD"))
if(formModel.type){ if(formModel.reportType){
if(formModel.type=="周报"){ if(formModel.reportType=="周报"){
let nextDate = dayjs(value).add(7,"day").format("YYYY-MM-DD") let nextDate = dayjs(value).add(7,"day").format("YYYY-MM-DD")
setFieldsValue({ endDate: nextDate }) setFieldsValue({ endDate: nextDate })
}else{ }else{
@ -181,7 +188,6 @@ export const workReportformSchemas: FormSchema[] = [
required: true, required: true,
colProps: { span: 12 }, colProps: { span: 12 },
}, },
{ {
label: '结束时间', label: '结束时间',
field: 'endDate', field: 'endDate',

2
src/views/projectSummary/planSummary/index.vue

@ -81,7 +81,7 @@ import { isShowByRoles } from '@/views/projectLib/projectInfo/projectInfo.api';
import { columns, searchFormSchema } from '@/views/projectLib/projectInfo/projectInfo.data'; import { columns, searchFormSchema } from '@/views/projectLib/projectInfo/projectInfo.data';
import { planSummaryColumn } from '@/views/projectSummary/planSummary/planSummary.data'; import { planSummaryColumn } from '@/views/projectSummary/planSummary/planSummary.data';
import { getplanSummary } from '@/views/projectSummary/planSummary/planSummary.api' import { getplanSummary } from '@/views/projectSummary/planSummary/planSummary.api'
import { projectApprovedPageList } from '@/views/projectLib/projectPlan/projectPlan.api'; import { projectPlanPageList } from '@/views/projectLib/projectPlan/projectPlan.api';
import { useUserStore } from '@/store/modules/user'; import { useUserStore } from '@/store/modules/user';
import { color } from 'echarts'; import { color } from 'echarts';
onMounted(async () => { onMounted(async () => {

Loading…
Cancel
Save