Compare commits

...

2 Commits

@ -1,4 +1,4 @@
export interface ProjectReportVO extends extraInfo {
export interface ProjectReportVO extends BaseEntity, extraInfo {
/**
* ID
*/

@ -20,7 +20,9 @@ export enum CodeRuleEnum {
/**
*
*/
AFTER_SALES = '1012'
AFTER_SALES = '1012',
PROJECT_REPORT = '1011'
}
/**

@ -13,7 +13,7 @@
:mode="false"
/>
<el-form
ref="ProjectFormRef"
ref="projectFormRef"
:model="form"
:loading="buttonLoading"
:disabled="routeParams.type === 'view' || routeParams.type === 'approval'"
@ -169,7 +169,7 @@
:model="projectReportForm"
:loading="buttonLoading"
:disabled="routeParams.type === 'view' || routeParams.type === 'approval'"
:rules="rules"
:rules="reportRules"
label-width="120px"
v-if="routeParams.type == 'add' || routeParams.type === 'approval'"
>
@ -179,7 +179,7 @@
<el-input v-model="projectReportForm.reportId" placeholder="请输入项目周报ID" clearable @keyup.enter="console.log(1)" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="12" v-show="false">
<el-form-item label="项目ID" prop="projectId">
<el-input v-model="projectReportForm.projectId" placeholder="请输入项目ID" clearable @keyup.enter="console.log(1)" />
</el-form-item>
@ -369,6 +369,7 @@ import { getBasePrintTemplateList } from '@/api/oa/base/printTemplate';
import { CodeRuleEnum, FlowCodeEnum } from '@/enums/OAEnum';
import { getInfo } from '@/api/login';
import { ProjectReportVO, ProjectReportQuery, ProjectReportForm } from '@/api/oa/erp/projectReport/types';
import { listProjectReport, getProjectReport, delProjectReport, addProjectReport, updateProjectReport } from '@/api/oa/erp/projectReport';
import {
listProjectReportDetail,
getProjectReportDetail,
@ -396,7 +397,7 @@ const { contract_category, business_direction, contract_flag, contract_type, con
);
const buttonLoading = ref(false);
const ProjectFormRef = ref<ElFormInstance>();
const projectFormRef = ref<ElFormInstance>();
//
const submitVerifyRef = ref<InstanceType<typeof SubmitVerify>>();
@ -463,7 +464,14 @@ const data = reactive<PageData<ProjectReportForm, ProjectReportQuery>>({
deputyName: undefined,
params: {}
},
rules: {}
rules: {
projectName: [{ required: true, message: '项目名称不能为空', trigger: 'blur' }],
projectCode: [{ required: true, message: '项目编号不能为空', trigger: 'blur' }],
deptName: [{ required: true, message: '部门名称不能为空', trigger: 'blur' }],
managerName: [{ required: true, message: '项目经理不能为空', trigger: 'blur' }],
chargeName: [{ required: true, message: '部门负责人不能为空', trigger: 'blur' }],
deputyName: [{ required: true, message: '分管副总不能为空', trigger: 'blur' }]
}
});
const { form, queryParams, rules } = toRefs(data);
@ -550,10 +558,10 @@ const columns = ref<FieldOption[]>([
{ key: 26, label: `更新时间`, visible: true }
]);
//
//
const projectReportFormRef = ref<ElFormInstance>();
//
//
const initprojectReportFormData: ProjectReportDetailFormEx = {
reportDetailId: undefined,
reportId: undefined,
@ -583,11 +591,11 @@ const initprojectReportFormData: ProjectReportDetailFormEx = {
const projectReportForm = ref<ProjectReportDetailFormEx>({ ...initprojectReportFormData });
//
//
const reportRules = {
productName: [{ required: true, message: '产品名称不能为空', trigger: 'blur' }],
amount: [{ required: true, message: '数量不能为空', trigger: 'blur' }],
taxRate: [{ required: true, message: '税率不能为空', trigger: 'blur' }]
tasksCompleted: [{ required: true, message: '本周完成工作不能为空', trigger: 'blur' }],
nextPlan: [{ required: true, message: '下周计划不能为空', trigger: 'blur' }],
riskResolution: [{ required: true, message: '风险及解决措施不能为空', trigger: 'blur' }]
};
//
@ -675,165 +683,49 @@ onMounted(async () => {
nextTick(async () => {
//
routeParams.value = route.query;
//
if ((routeParams.value.type === 'update' || routeParams.value.type === 'view') && routeParams.value.reportData) {
// 使
try {
const reportDataStr = routeParams.value.reportData as string;
const reportData = JSON.parse(decodeURIComponent(reportDataStr));
// ProjectReportVO
if (reportData.reportId) {
form.value.reportId = reportData.reportId;
queryParams.value.reportId = reportData.reportId;
buttonLoading.value = true;
const res = await listProjectReportDetail(queryParams.value);
projectReportDetailList.value = res.rows;
total.value = res.total;
buttonLoading.value = false;
}
if (reportData.projectId) form.value.projectId = reportData.projectId;
if (reportData.projectName) form.value.projectName = reportData.projectName;
if (reportData.projectCode) form.value.projectCode = reportData.projectCode;
if (reportData.milestonePlan) form.value.milestonePlan = reportData.milestonePlan;
if (reportData.managerId) form.value.managerId = reportData.managerId;
if (reportData.deptId) form.value.deptId = reportData.deptId;
if (reportData.chargeId) form.value.chargeId = reportData.chargeId;
if (reportData.deputyId) form.value.deputyId = reportData.deputyId;
if (reportData.informationNote) form.value.informationNote = reportData.informationNote;
if (reportData.remark) form.value.remark = reportData.remark;
if (reportData.managerName) form.value.managerName = reportData.managerName;
if (reportData.deptName) form.value.deptName = reportData.deptName;
if (reportData.chargeName) form.value.chargeName = reportData.chargeName;
if (reportData.deputyName) form.value.deputyName = reportData.deputyName;
if (reportData.sortOrder !== undefined) form.value.sortOrder = reportData.sortOrder;
if (reportData.ossId) form.value.ossId = reportData.ossId;
if (reportData.activeFlag) form.value.activeFlag = reportData.activeFlag;
} catch (error) {
console.error('解析项目周报数据失败:', error);
proxy?.$modal.msgError('加载项目周报数据失败');
}
//
const reportDataStr = routeParams.value.reportData as string;
if (reportDataStr && (routeParams.value.type === 'update' || routeParams.value.type === 'view' || routeParams.value.type === 'add')) {
proxy?.$modal.loading('正在加载数据,请稍后...');
const reportData = JSON.parse(decodeURIComponent(reportDataStr));
Object.assign(form.value, reportData);
Object.assign(projectReportForm.value, reportData);
// console.log(form.value);
// console.log(projectReportForm.value);
proxy?.$modal.closeLoading();
} else if (routeParams.value.type === 'add') {
//
if (routeParams.value.reportData) {
const reportDataStr = routeParams.value.reportData as string;
const reportData = JSON.parse(decodeURIComponent(reportDataStr));
// ProjectReportVO
if (reportData.projectId) {
form.value.projectId = reportData.projectId;
projectReportForm.value.projectId = reportData.projectId;
}
if (reportData.reportId) {
form.value.reportId = reportData.reportId;
projectReportForm.value.reportId = reportData.reportId;
}
if (reportData.ossId) form.value.ossId = reportData.ossId;
if (reportData.projectName) form.value.projectName = reportData.projectName;
if (reportData.projectCode) form.value.projectCode = reportData.projectCode;
if (reportData.milestonePlan) form.value.milestonePlan = reportData.milestonePlan;
if (reportData.managerId) form.value.managerId = reportData.managerId;
if (reportData.deptId) form.value.deptId = reportData.deptId;
if (reportData.chargeId) form.value.chargeId = reportData.chargeId;
if (reportData.deputyId) form.value.deputyId = reportData.deputyId;
if (reportData.informationNote) form.value.informationNote = reportData.informationNote;
if (reportData.remark) form.value.remark = reportData.remark;
if (reportData.managerName) form.value.managerName = reportData.managerName;
if (reportData.deptName) form.value.deptName = reportData.deptName;
if (reportData.chargeName) form.value.chargeName = reportData.chargeName;
if (reportData.deputyName) form.value.deputyName = reportData.deputyName;
if (reportData.sortOrder !== undefined) form.value.sortOrder = reportData.sortOrder;
if (reportData.activeFlag) form.value.activeFlag = reportData.activeFlag;
} else {
}
} else if (routeParams.value.type === 'approval') {
} else if (routeParams.value.type === 'approval' || routeParams.value.type === 'view') {
//
const id = routeParams.value.id;
if (id) {
const projectDetailReportId = routeParams.value.id;
if (projectDetailReportId) {
proxy?.$modal.loading('正在加载数据,请稍后...');
const res = await getContractInfo(id);
Object.assign(form.value, res.data);
const reportDetailRes = await getProjectReportDetail(projectDetailReportId);
const reportId = reportDetailRes.data.reportId;
if (reportId && routeParams.value.type === 'view') {
const reportRes = await getProjectReport(reportId);
Object.assign(form.value, reportRes.data);
Object.assign(projectReportForm.value, reportDetailRes.data);
projectReportDetailList.value = [reportDetailRes.data];
}
if (reportId && routeParams.value.type === 'approval') {
const reportRes = await getProjectReport(reportId);
Object.assign(form.value, reportRes.data);
Object.assign(projectReportForm.value, reportDetailRes.data);
}
proxy?.$modal.closeLoading();
}
}
});
});
// onMounted(async () => {
// nextTick(async () => {
// // //
// // routeParams.value = route.query;
// // loadSelectOptions();
// // const id = routeParams.value.id as string | number;
// // if (id && (routeParams.value.type === 'update' || routeParams.value.type === 'view' || routeParams.value.type === 'approval')) {
// // proxy?.$modal.loading('...');
// // const res = await getContractInfo(id);
// // Object.assign(form.value, res.data);
// // proxy?.$modal.closeLoading();
// // //
// // if (form.value.contractCode) {
// // isCodeGenerated.value = true;
// // } else if (form.value.contractFlag === '1') {
// // //
// // isCodeGenerated.value = false;
// // }
// // } else {
// // // ID
// // try {
// // const userInfoRes = await getInfo();
// // if (userInfoRes.data?.user?.deptId && !form.value.contractDeptId) {
// // form.value.contractDeptId = userInfoRes.data.user.deptId;
// // }
// // } catch (error) {
// // console.error(':', error);
// // }
// // //
// // if (form.value.contractCode) {
// // isCodeGenerated.value = true;
// // } else if (form.value.contractFlag === '1') {
// // //
// // isCodeGenerated.value = false;
// // }
// // }
// //
// routeParams.value = route.query;
// loadSelectOptions();
// //
// if (routeParams.value.type === 'add') {
// //
// if (routeParams.value.projectId) {
// form.value.projectId = routeParams.value.projectId;
// form.value.projectName = routeParams.value.projectName;
// form.value.projectCode = routeParams.value.projectCode;
// form.value.managerId = routeParams.value.managerId;
// form.value.managerName = routeParams.value.managerName;
// form.value.deptId = routeParams.value.deptId;
// form.value.deptName = routeParams.value.deptName;
// form.value.chargeId = routeParams.value.chargeId;
// form.value.chargeName = routeParams.value.chargeName;
// form.value.deputyId = routeParams.value.deputyId;
// form.value.deputyName = routeParams.value.deputyName;
// }
// }
// //
// if (routeParams.value.type === 'update' || routeParams.value.type === 'approval') {
// const id = routeParams.value.id;
// if (id) {
// proxy?.$modal.loading('...');
// const res = await getContractInfo(id);
// Object.assign(form.value, res.data);
// proxy?.$modal.closeLoading();
// }
// }
// });
// });
//
const handleApprovalRecord = () => {
approvalRecordRef.value.init(form.value.contractId);
approvalRecordRef.value.init(projectReportForm.value.reportDetailId);
};
//
const submitCallback = async () => {
await proxy.$tab.closePage(proxy.$route);
await proxy.$tab.closePage(route);
router.go(-1);
};
@ -849,16 +741,30 @@ watch(
(val) => {
if (!dialog.visible) {
ossFileModel.value = val as any;
projectReportForm.value.ossId = val as any;
}
}
);
const isCodeGenerated = ref(false);
//
const generateUniqueId = () => {
const timestamp = Date.now().toString(36);
const randomStr = Math.random().toString(36).substr(2, 9);
return `XMZB-${timestamp}-${randomStr}`;
};
//
const generateCode = async () => {
if (isCodeGenerated.value) return; //
try {
const params = { codeRuleCode: CodeRuleEnum.PROJECT_REPORT } as any;
const res = await getRuleGenerateCode(params);
isCodeGenerated.value = true; //
return res.msg;
} catch (error) {
console.error('生成业务编号失败:', error);
proxy?.$modal.msgError('生成业务编号失败');
}
};
/** 提交按钮 */
const submitForm = async (status: string, mode: boolean) => {
try {

@ -147,7 +147,7 @@
<el-table-column label="项目编码" align="center" prop="projectCode" v-if="columns[20].visible" />
<el-table-column label="当前里程碑" align="center" prop="milestonePlan" v-if="columns[4].visible" />
<el-table-column label="项目经理" align="center" prop="managerName" v-if="columns[5].visible" />
<el-table-column label="部门ID" align="center" prop="deptName" v-if="columns[6].visible" />
<el-table-column label="部门名称" align="center" prop="deptName" v-if="columns[6].visible" />
<el-table-column label="部门负责人" align="center" prop="chargeName" v-if="columns[7].visible" />
<el-table-column label="分管副总" align="center" prop="deputyName" v-if="columns[8].visible" />
<el-table-column label="周报情况说明" align="center" prop="informationNote" v-if="columns[9].visible" />
@ -155,7 +155,8 @@
<el-table-column label="附件ID" align="center" prop="ossId" v-if="columns[11].visible" />
<el-table-column label="备注" align="center" prop="remark" v-if="columns[12].visible" />
<el-table-column label="激活标识" align="center" prop="activeFlag" v-if="columns[13].visible" />
<!-- <el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[20].visible" /> -->
<el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[17].visible" />
<el-table-column label="更新时间" align="center" prop="updateTime" v-if="columns[19].visible" />
<el-table-column label="操作" align="center" width="150" fixed="right" class-name="small-padding fixed-width">
<template #default="scope">
<el-tooltip content="新增" placement="top">
@ -222,15 +223,15 @@ const columns = ref<FieldOption[]>([
{ key: 3, label: `项目名称`, visible: true },
{ key: 4, label: `当前里程碑`, visible: true },
{ key: 5, label: `项目经理`, visible: true },
{ key: 6, label: `部门ID`, visible: true },
{ key: 6, label: `部门名称`, visible: true },
{ key: 7, label: `部门负责人`, visible: true },
{ key: 8, label: `分管副总`, visible: true },
{ key: 9, label: `周报情况说明`, visible: true },
{ key: 10, label: `排序号`, visible: true },
{ key: 10, label: `排序号`, visible: false },
{ key: 11, label: `附件ID`, visible: true },
{ key: 12, label: `备注`, visible: true },
{ key: 13, label: `激活标识`, visible: true },
{ key: 14, label: `删除标志`, visible: true },
{ key: 13, label: `激活标识`, visible: false },
{ key: 14, label: `删除标志`, visible: false },
{ key: 15, label: `创建部门`, visible: true },
{ key: 16, label: `创建人`, visible: true },
{ key: 17, label: `创建时间`, visible: true },
@ -383,7 +384,7 @@ const handleView = (row?: ProjectReportVO) => {
path: '/project/projectReport/edit',
query: {
type: 'view',
// 便使
//
reportData: encodeURIComponent(JSON.stringify(row))
}
});

Loading…
Cancel
Save