Browse Source

详情里支持计划日期修改

master
wbc 12 hours ago
parent
commit
ba10201377
  1. 2
      src/components/registerGlobComp.ts
  2. 3
      src/views/ProcessApprovalSubPage/component/ApprovalPageModel.vue
  3. 8
      src/views/projectLib/projectArchive/index.vue
  4. 98
      src/views/projectLib/projectPlan/addProjectDate.vue
  5. 5
      src/views/projectLib/projectPlan/projectPlan.api.ts
  6. 29
      src/views/projectLib/projectPlan/viewPlanDetail.vue

2
src/components/registerGlobComp.ts

@ -37,6 +37,7 @@ import {
Skeleton,
Spin,
Col,
DatePicker
} from 'ant-design-vue';
export function registerGlobComp(app: App) {
@ -77,5 +78,6 @@ export function registerGlobComp(app: App) {
.use(Select)
.use(Skeleton)
.use(Spin)
.use(DatePicker)
.use(Col);
}

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

@ -62,7 +62,8 @@
'trainingPhase',
'requirementInvestigation',
'softwareDevelopmentPhase',
'setUpProjectTeam'
'setUpProjectTeam',
'JAA'
];
const [registerModal, { closeModal }] = useModalInner(init);
defineProps(['record']);

8
src/views/projectLib/projectArchive/index.vue

@ -42,7 +42,7 @@
useModal();
let projectid = ref();
let showApprovalForm = ref<boolean>(false);
const [registerTable] = useTable({
const [registerTable,{reload}] = useTable({
title: '项目归档信息',
api: projectArchivePageList,
columns: columns,
@ -83,7 +83,10 @@
ifShow: () => {
return record.isArchive == true;
},
onClick: handleArchive.bind(null, record),
popConfirm: {
title: '确定归档吗?',
confirm: handleArchive.bind(null, record),
},
},
];
}
@ -98,6 +101,7 @@
const res = await archiveProject(projectid.value);
if (res == '归档项目成功!') {
message.success('归档成功');
reload()
}
}
function close() {

98
src/views/projectLib/projectPlan/addProjectDate.vue

@ -0,0 +1,98 @@
<template>
<a-modal v-model:open="visible" :title="title" @ok="handleOk" @cancel="closeModal" width="50%">
<div style="margin:20px">
<a-form :model="form" layout="vertical" ref="formRef" :rules="rules">
<a-row :gutter="[16, 16]">
<a-col :span="24">
<a-form-item label="任务名称" name="id">
<a-select v-model:value="form.id" :options="idOptions" placeholder="请选择" />
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="[16, 16]">
<a-col :span="12">
<a-form-item label="项目开始日期" name="scheduledStartTime">
<a-date-picker v-model:value="form.scheduledStartTime" placeholder="请选择" valueFormat="YYYY-MM-DD" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="项目结束日期" name="scheduledEndTime">
<a-date-picker v-model:value="form.scheduledEndTime" placeholder="请选择" valueFormat="YYYY-MM-DD"/>
</a-form-item>
</a-col>
</a-row>
</a-form>
</div>
</a-modal>
</template>
<script>
import { reactive, ref } from 'vue';
import { message } from 'ant-design-vue';
import { getPlanNames, updateScheduledTime } from './projectPlan.api';
export default {
setup(props, { emit }) {
const title = ref('新增');
const formRef = ref();
const visible = ref(false);
const form = reactive({
scheduledStartTime: '',
scheduledEndTime: '',
id: null,
projectId: null,
});
//
const idOptions = ref([]);
const showModal = async (projectId) => {
visible.value = true;
form.projectId = projectId;
const res = await getPlanNames(projectId);
idOptions.value = res;
};
const rules = {
id: [{ required: true, message: '请选择' }],
scheduledStartTime: [{ required: true, message: '请选择' }],
scheduledEndTime: [{ required: true, message: '请选择' }],
};
const handleOk = () => {
formRef.value.validate().then((valid) => {
if (valid) {
let params = {};
for (let i in form) {
params[i] = form[i];
}
updateScheduledTime(params).then((_) => {
message.success('修改成功');
emit('success');
closeModal();
});
}
});
};
const closeModal = () => {
formRef.value.resetFields();
visible.value = false;
};
return {
visible,
title,
form,
showModal,
handleOk,
idOptions,
formRef,
closeModal,
rules,
};
},
};
</script>
<style scoped>
/* 可选样式调整 */
.ant-modal-body {
max-width: 600px;
margin: 0 auto;
}
</style>

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

@ -37,6 +37,9 @@ export enum Api {
queryUpdatePlanFlagById = "/huzhouProject/queryUpdatePlanFlagById",
deleteContractMoney = "/huzhouPlan/deleteContractMoney",
taskNameIsFinished = "/huzhouPlan/taskNameIsFinished",
//日期修改
getPlanNames = "/huzhouPlan/getPlanNames",
updateScheduledTime = "/huzhouPlan/updateScheduledTime",
}
/**
*
@ -77,3 +80,5 @@ export const getContractinfoByTaskName = (params) => defHttp.get({ url: Api.getC
export const queryUpdatePlanFlagById = (params) => defHttp.get({ url: Api.queryUpdatePlanFlagById, params })
export const deleteContractMoney = (id: any) =>defHttp.delete<boolean>({url: `${Api.deleteContractMoney}?projectid=${id}`})
export const taskNameIsFinished = (id: any) =>defHttp.get({url: `${Api.taskNameIsFinished}?projectid=${id}`})
export const getPlanNames = (id: any) =>defHttp.get({url: `${Api.getPlanNames}?projectid=${id}`})
export const updateScheduledTime = (params: any) =>defHttp.put({url:Api.updateScheduledTime,params})

29
src/views/projectLib/projectPlan/viewPlanDetail.vue

@ -77,6 +77,12 @@
<el-button type="primary" @click="handledownload" v-if="isShowByRoles('manageOrg,supervisor')"
>下载</el-button
>
<el-button
type="primary"
@click="showProjectDateModal"
v-if="isShowByRoles('manageOrg,supervisor')"
>项目日期修改</el-button
>
</template>
</BasicTable>
<div v-if="dataTo.projectStage == 4">
@ -108,6 +114,7 @@
<planFileApproval :record="recordData" @close="closeplanFile" />
</BasicModal>
<uploadURTfile @register="registerUnitedTechnicalReview" @close="closePlanFileModal" />
<addProjectDate ref="addProjectDateRef" @success="reload()" />
<BasicModal
@register="registerMessageInfo"
title="提示信息"
@ -132,7 +139,7 @@
getPlanFileApprovalInfoByPlaninfoId,
planUploadFile,
downloadPlanInfo,
deleteContractMoney
deleteContractMoney,
} from './projectPlan.api';
import { ActionItem, BasicTable, TableAction, useTable } from '@/components/Table';
import { useModal } from '@/components/Modal';
@ -141,8 +148,8 @@
import { isShowByRoles } from '../../projectLib/projectInfo/projectInfo.api';
import uploadURTfile from '@/views/projectLib/projectPlan/uploadURTfile.vue';
import { queryHasSubProject } from '@/views/projectLib/projectInfo/projectInfo.api';
let dataTo = defineProps(['projectId', 'projectStage', 'projectName','isArchiveFinish']);
import addProjectDate from './addProjectDate.vue';
let dataTo = defineProps(['projectId', 'projectStage', 'projectName', 'isArchiveFinish']);
let projectId = ref(dataTo.projectId);
let isfinish = ref();
let activities = ref([]);
@ -229,11 +236,12 @@
label: '上传资料',
ifShow: () => {
if (
(record.isfinish == 0&&dataTo.isArchiveFinish ==false&&
(record.isfinish == 0 &&
dataTo.isArchiveFinish == false &&
record.taskFile?.length > 0 &&
record.taskName != '可研技术审查报告确认' &&
record.taskName != '造价评估报告确认') ||
(record.ismodify && record.isfinish == 2&&dataTo.isArchiveFinish ==false)
(record.ismodify && record.isfinish == 2 && dataTo.isArchiveFinish == false)
) {
if (isShowByRoles('projectContact')) {
//
@ -271,7 +279,8 @@
ifShow: () => {
if (
record.isfinish == 2 &&
record.taskFile?.length > 0 &&dataTo.isArchiveFinish ==false&&
record.taskFile?.length > 0 &&
dataTo.isArchiveFinish == false &&
(record.taskName == '可研报告初稿编制' ||
record.taskName == '可研报告送审稿编制' ||
record.taskName == '造价评估报告确认' ||
@ -403,8 +412,8 @@
planinfoid: UnitedTechnicalReviewmode.value,
projectid: dataTo.projectId,
});
} else if(taskName.value.indexOf('合同签订') >= 0) {
await deleteContractMoney(dataTo.projectId)
} else if (taskName.value.indexOf('合同签订') >= 0) {
await deleteContractMoney(dataTo.projectId);
openPlanFile();
} else {
openPlanFile();
@ -445,6 +454,10 @@
//
await downloadPlanInfo({ projectid: dataTo.projectId });
}
const addProjectDateRef = ref()
async function showProjectDateModal() {
addProjectDateRef.value.showModal(dataTo.projectId)
}
</script>
<style scoped>
.timeline {

Loading…
Cancel
Save