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

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

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

102
src/views/ProcessApprovalSubPage/initiatesProjectsApproval.vue

@ -1,32 +1,15 @@
<template>
<!-- 自定义表单 -->
<div v-if="!IsbatchImportProjects">
<div>
<ProjectDetails :isEdit="resButton.isEdit" :projectid="projectid" ref="ProjectDetailsRef" />
</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" />
<ApprovalFromPage :showApprovalForm="showApprovalForm" :buttons="resButton.buttons" ref="ApprovalFromPageRef"
@submit="handleSubmit" @exit="exit" />
<BasicModal @register="registeProjectrModal" title="项目信息详情" width="1200px" :showOkBtn="false">
<childProjectsApproval :projectid="proid" :isEdit="proisEdit" @close="closeProjectrModal" />
</BasicModal>
</template>
<script lang="ts" name="initiatesProjectsApproval" setup>
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 { BasicModal, useModal } from '@/components/Modal';
import childProjectsApproval from '../ProcessApprovalSubPage/initiatesProjectsApproval/childProjectsApproval.vue'
import ApprovalDetails from "../ProcessApprovalSubPage/component/ApprovalDetails.vue";
import ProjectDetails from "../ProcessApprovalSubPage/component/ProjectDetails.vue"
import ApprovalFromPage from "../ProcessApprovalSubPage/component/ApprovalFromPage.vue"
@ -37,87 +20,23 @@ let projectid = dataTo.record.projectId
let taskid = dataTo.record.taskId
let ProjectDetailsRef = ref()
let ApprovalFromPageRef = ref()
let IsbatchImportProjects = ref<Boolean>(false);
let proisEdit = ref<Boolean>(false);
let showApprovalForm = ref()
let resButton = ref({
showApprovalForm: false,
isEdit: false,
buttons: []
})
let proid = ref()
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 })
console.log("resButton", resButton.value)
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() {
let approvalform = await ApprovalFromPageRef.value.getFieldsValueApprovalForm();
if (!IsbatchImportProjects.value) {
let projectform = await ProjectDetailsRef.value.getFieldsValueProjectForm()
let param = {
flag: approvalform.flag,
@ -129,30 +48,11 @@ async function handleSubmit() {
}
if (await ApprovalFromPageRef.value.validateApprovalForm() && await ProjectDetailsRef.value.validateProjectForm()) {
console.log("提交成功!1")
await submitTask(param)
console.log("提交成功!2", param, ProjectDetailsRef.value.isEdit)
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(){
emit("close")

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',
approvePlanFile = "/huzhouPlaninfofile/approvePlanFile",
queryProcessInfo = '/workflow/getprocessInfo',
modifyProjectInfoApproval="/huzhouProject/modifyProjectInfoApproval",
getProcessInstanceIdByProid = "/workflow/getProcessInstanceIdByProid",
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 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 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 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 planinfoFileDetail from '../projectPlan/planinfoFileDetail.vue'
import ApprovalDetails from "../../ProcessApprovalSubPage/component/ApprovalDetails.vue"
import { submitProjectArchive } from "./projectArchive.api"
import type { TabsPaneContext } from 'element-plus'
import { uploacFilePageList } from '../../projectLib/projectInfo/projectInfo.api'
@ -96,9 +95,7 @@ function handleDetail(record) {
openFileInfo()
}
async function submitImportForm() {
await submitProjectArchive({ projectid: dataTo.projectid })
}
function closeModel() {
emit("close")
}

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

@ -1,8 +1,6 @@
import { defHttp } from '@/utils/http/axios';
export enum Api {
submitProjectArchive = '/huzhouProject/submitProjectArchive',
approveProjectArchive="/huzhouProject/approveProjectArchive",
projectArchivePageList = '/huzhouProject/projectArchivePageList',
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 })

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

@ -15,7 +15,7 @@ import { ref, reactive, onMounted } from 'vue'
import { useForm, BasicForm } from '@/components/Form';
import { contractformSchemas, MoneyFormSchemas } from './projectContract.data';
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 { FormSchema } from '@/components/Form';
import UploadfileDetail from "@/views/ProcessApprovalSubPage/component/UploadfileDetail.vue"
@ -39,7 +39,7 @@ async function init(data) {
let parammoney: any = {
projectid: data.projectid
}
resMoney.value = await queryProjectInfoNewDataById(parammoney)
resMoney.value = await queryProjectInfoById(parammoney)
setFieldsValueMoneyForm(resMoney.value)
fileList.pop()
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,
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 { contractformSchemas, MoneyFormSchemas } from './projectContract.data';
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 { useModalInner, BasicModal } from '@/components/Modal';
import { FormSchema } from '@/components/Form';
@ -180,7 +180,7 @@ async function init(data) {
let parammoney: any = {
projectid: data.projectid
}
resMoney.value = await queryProjectInfoNewDataById(parammoney)
resMoney.value = await queryProjectInfoById(parammoney)
setFieldsValueMoneyForm(resMoney.value)
fileList.pop()
if (data.isModify != null) {

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

@ -7,14 +7,11 @@ export enum Api {
list = '/sys/user/queryByOrgCodeForAddressList',
queryProcessInfo = '/workflow/getprocessInfo',
queryProjectInfoById = '/huzhouProject/queryProjectInfoById',
queryProjectInfoNewDataById="/huzhouProject/queryProjectInfoNewDataById",
getProjectInfoAndChildPageList="/huzhouProject/getProjectInfoAndChildPageList",
getProjectInfoPageList="/huzhouProject/getProjectInfoPageList",
submitUploadFile = '/huzhouUploadfileinfo/submitUploadFile',
uploacFilePageList = '/huzhouUploadfileinfo/uploacFilePageList',
batchImportProjects="/huzhouProject/batchImportProjects",
getIsbatchImportProjects = '/huzhouProject/getIsbatchImportProjects',
batchImportProjectPageListByInstid = '/huzhouProject/batchImportProjectPageListByInstid',
batchdownloadProject="/huzhouProject/batchdownloadProject",
getChangeFieldManageDict="/huzhouChangefieldmanage/getChangeFieldManageDict",
@ -31,7 +28,6 @@ export enum Api {
*
*/
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 modifySubProjectinfo = (params?) => defHttp.post({ url: Api.modifySubProjectinfo, 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 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 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)

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

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

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

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

@ -1,10 +1,10 @@
<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" />
<el-divider content-position="left">上传周报文件</el-divider>
<el-divider content-position="left">上传{{reportType}}文件</el-divider>
<el-form ref="importFormRef" >
<el-form-item label="上传文件:">
@ -34,22 +34,28 @@ const [registerModal, { closeModal }] = useModalInner(init);
let fileList = reactive<Array<any>>([]);
let id = ref()
let projectid = ref()
let isModify = ref(false) //
let reportType = ref('') //
const emit = defineEmits(['close',"register"]);
async function init(data) {
reportType.value = data.reportType
console.log("datadatadata", data)
if (data.projectid) {
projectid.value = data.projectid
}
isModify.value = data.isModify
id.value = data.id
fileList.pop()
if (data.id != null) {
id.value = data.id
if (data.isModify == true) {
//
let param: any = {
id: data.id
}
let res = await getWorkreportById(param)
console.log("结果是", res)
res.reportType=reportType.value
setFieldsValue(res)
}else{
//
setFieldsValue({reportType:reportType.value})
}
}
@ -108,7 +114,7 @@ async function submitImportForm() {
let data = await getFieldsValue()
console.log("data", data)
// 使form
if (id.value != null) {
if (isModify.value == true) {
if (fileList.length > 0) {
data.file = fileList[0].file
}
@ -121,7 +127,7 @@ async function submitImportForm() {
return;
}
data.file = fileList[0].file
data.projectid = projectid.value
data.projectid = id.value
await addWorkreport(data)
}
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">
<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 #tableTitle>
<el-button type="primary" @click="handleAddWorkreport" v-if="isShowByRoles('projectContact,owner')">
新增项目周报</el-button>
新增项目周</el-button>
</template>
</BasicTable>
<addModifyWorkreport @register="registeraddworkreport" @close="closeModel" />
<ProjectinfoComponent @register="registerProjectinfo" @openChildModal="openModalProjectr">
<template #default="record">
<addModifyWorkreport @register="registeraddworkreport" @close="closeModel" />
<setProjectWorkReport @register="registersetProjectWorkReport" @close="closeModel" />
</template>
</ProjectinfoComponent>
<detaiWorkReport @register="registerdetaiWorkReport" @close="closeModel" />
</PageWrapper>
</template>
@ -28,21 +29,27 @@ import { useModal } from '@/components/Modal';
import { downloadFile } from "@/api/common/api"
import { PageWrapper } from '@/components/Page';
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 setProjectWorkReport from "@/views/projectLib/workReport/setProjectWorkReport.vue"
import detaiWorkReport from "@/views/projectLib/workReport/detaiWorkReport.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 [registeraddworkreport, { openModal,closeModal:closeModaladdworkreport }] = useModal();
const [registerProjectinfo, { openModal: openModalProjectinfo,closeModal: closeModalProjectinfo}] = useModal();
import { useUserStore } from '@/store/modules/user';
const [registerProjectinfo, { openModal: openModalProjectinfo,closeModal: closeModalProjectinfo}] = useModal();//
const [registerdetaiWorkReport, { openModal: openModaldetaiWorkReport,closeModal: closeModaldetaiWorkReport}] = useModal();//
const userStore = useUserStore();
const [registerTable, { reload }] = useTable({
title: '项目周报信息',
api: workreportPageList,
columns: workReportShowcolumns,
columns: workReportTablecolumns,
useSearchForm: true,
actionColumn: {
width: 140,
@ -59,38 +66,18 @@ const [registerTable, { reload }] = useTable({
function getTableAction(record): ActionItem[] {
return [
{
label: '下载',
onClick: handledown.bind(null, record)
label: '新增'+record.reportType,
onClick: handleadd.bind(null, record)
},
];
}
function getDropDownAction(record): ActionItem[] {
return [
{
label: '修改',
ifShow: () => {
return isShowByRoles('projectContact,owner')
},
onClick: handleModify.bind(null, record)
},
{
label: '删除',
ifShow: () => {
return isShowByRoles('projectContact,owner')
},
popConfirm: {
title: '确定删除吗?',
confirm: handleDelete.bind(null, record),
},
},
label: '详情',
onClick: handleDetail.bind(null, record)
}
];
}
function handleModify(record) {
openModal(true, { id: record.id })
function handleadd(record) {
openModal(true, { id: record.id,reportType:record.reportType,isModify:false })
}
@ -105,22 +92,22 @@ function handledown(record) {
downloadFile("/huzhouUploadfileinfo/downloadfile", record.documentName, param)
}
async function handleDelete(record) {
await deleteWorkreport({ id: record.id })
reload()
async function handleDetail(record) {
await openModaldetaiWorkReport(true,{ projectid: record.id,reportType:record.reportType })
}
function closeModel() {
closeModaladdworkreport()
closeModalsetProjectWorkReport()
closeModalProjectinfo()
reload()
}
function handleAddWorkreport() {
openModalProjectinfo(true,{title:"新增项目周报"})
openModalProjectinfo(true,{title:"设置项目周月报",api:getNoTypeWorkReportPageList})
}
function openModalProjectr(value) {
openModal(true,{projectid:value.id})
opensetProjectWorkReport(true,{projectid:value.id})
}
</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',
getWorkreportById="/huzhouWorkreport/getWorkreportById",
deleteWorkreport = '/huzhouWorkreport/deleteWorkreport',
setProjectWorkReport = '/huzhouWorkreport/setProjectWorkReport',
getNoTypeWorkReportPageList='/huzhouWorkreport/getNoTypeWorkReportPageList',
getProjectWorkReportByProjectId='/huzhouWorkreport/getProjectWorkReportByProjectId',
}
export const workreportPageList = (params) => defHttp.get({ url: Api.workreportPageList, 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 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 setProjectWorkReport = (params?) =>defHttp.post({ url: Api.setProjectWorkReport, params })

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

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

Loading…
Cancel
Save