项目周报修改完善

dev
lh 2 weeks ago
parent d4aa14cc21
commit 3b059ba3d4

@ -1,5 +1,5 @@
import { ProjectReportVO, ProjectReportForm, ProjectReportQuery } from '@/api/oa/erp/projectReport/types'; import { ProjectReportVO, ProjectReportForm, ProjectReportQuery } from '@/api/oa/erp/projectReport/types';
export interface ProjectReportDetailVO extends extraInfo { export interface ProjectReportDetailVO extends BaseEntity, extraInfo {
/** /**
* ID * ID
*/ */

@ -135,10 +135,10 @@
<ProjectSelect ref="projectSelectRef" :multiple="false" @confirm-call-back="projectInfoSelectCallBack"></ProjectSelect> <ProjectSelect ref="projectSelectRef" :multiple="false" @confirm-call-back="projectInfoSelectCallBack"></ProjectSelect>
<!-- 项目周报具体信息管理区域 --> <!-- 项目周报具体信息管理区域 -->
<el-card shadow="never" style="margin-top: 20px"> <el-card shadow="hover" style="margin-top: 20px">
<template #header>
<div style="text-align: left; font-weight: bold; font-size: 18px">项目周报具体信息</div> <div style="text-align: left; font-weight: bold; font-size: 18px">项目周报具体信息</div>
</template> </el-card>
<el-card shadow="never"> <el-card shadow="never">
<template #header> <template #header>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
@ -177,42 +177,15 @@
>导出</el-button >导出</el-button
> >
</el-col> </el-col>
<right-toolbar v-model:showSearch="showSearch" :columns="columns" :search="false" @queryTable="getProjectDetail"></right-toolbar> <right-toolbar
v-model:showSearch="showSearch"
v-if="routeParams.type === 'view' && routeParams.reportData"
:columns="columns"
:search="false"
@queryTable="getProjectDetail"
></right-toolbar>
</el-row> </el-row>
</template> </template>
<!-- 项目周报具体信息表格 -->
<!-- <div style="margin-bottom: 16px">
<el-button
type="success"
plain
icon="Edit"
:disabled="single"
@click="handleUpdate()"
v-if="routeParams.type === 'view' && routeParams.reportData"
v-hasPermi="['oa/erp:projectReportDetail:edit']"
>修改</el-button
>
<el-button
type="danger"
plain
icon="Delete"
:disabled="multiple"
@click="handleDelete()"
v-if="routeParams.type === 'view' && routeParams.reportData"
v-hasPermi="['oa/erp:projectReportDetail:remove']"
>删除</el-button
>
<el-button
type="warning"
plain
icon="Download"
@click="handleExport"
v-hasPermi="['oa/erp:projectReportDetail:export']"
v-if="routeParams.type === 'view'"
>导出</el-button
>
</div> -->
<el-table <el-table
v-loading="loading" v-loading="loading"
border border
@ -268,11 +241,9 @@
v-model:limit="projectReportFormQuery.pageSize" v-model:limit="projectReportFormQuery.pageSize"
@pagination="getProjectDetail" @pagination="getProjectDetail"
/> />
</el-card>
<el-form <el-form
ref="projectReportDetailFormRef" ref="projectReportDetailFormRef"
:model="projectReportForm" :model="projectReportForm"
:loading="buttonLoading"
:disabled="routeParams.type === 'view' || routeParams.type === 'approval'" :disabled="routeParams.type === 'view' || routeParams.type === 'approval'"
:rules="reportRules" :rules="reportRules"
label-width="120px" label-width="120px"
@ -384,9 +355,9 @@
</el-form> </el-form>
</el-card> </el-card>
<!-- 添加或修改项目周报明细对话框 --> <!-- 修改项目周报明细对话框 -->
<el-dialog :title="ReportDialog.title" v-model="ReportDialog.visible" width="800px" append-to-body> <el-dialog :title="ReportDialog.title" v-model="ReportDialog.visible" width="800px" append-to-body>
<el-form ref="projectReportDetailDialogFormRef" :model="detailForm" :rules="rules" label-width="120px"> <el-form ref="projectReportDetailDialogFormRef" :model="detailForm" :rules="detailRules" label-width="120px">
<el-row :gutter="10" class="form-row"> <el-row :gutter="10" class="form-row">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="项目周报ID" prop="reportId"> <el-form-item label="项目周报ID" prop="reportId">
@ -400,15 +371,18 @@
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="10" class="form-row"> <el-row :gutter="10" class="form-row">
<!-- 修改对话框中的日期选择器 -->
<el-col :span="12"> <el-col :span="12">
<el-form-item label="填写日期" prop="fillTime"> <el-form-item label="填写日期" prop="fillTime">
<el-date-picker <el-date-picker
clearable clearable
v-model="detailForm.fillTime" v-model="modifyDatePart"
type="datetime" type="date"
value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
placeholder="请选择填写日期" placeholder="请选择填写日期"
style="width: 100%" style="width: 100%"
@change="handleModifyDateChange"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -458,9 +432,16 @@
<el-row :gutter="10" class="form-row"> <el-row :gutter="10" class="form-row">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="计划完成率" prop="plannedCompletionRate"> <el-form-item label="计划完成率" prop="plannedCompletionRate">
<el-input v-model="detailForm.plannedCompletionRate" placeholder="请输入计划完成率"> <el-input
<template #append>%</template> v-model="detailForm.plannedCompletionRate"
</el-input> placeholder="请输入0-1之间的数字"
clearable
type="number"
:min="0"
:max="1"
:step="0.01"
@input="validateModifyPlannedCompletionRate"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
@ -738,12 +719,70 @@ const projectReportDetailData = reactive<PageData<ProjectReportDetailForm, Proje
activeFlag: undefined, activeFlag: undefined,
params: {} params: {}
}, },
rules: {} rules: {
tasksCompleted: [{ required: true, message: '本周完成工作不能为空', trigger: 'blur' }],
nextPlan: [{ required: true, message: '下周计划不能为空', trigger: 'blur' }],
secondaryPhase: [{ required: true, message: '二级进度阶段不能为空', trigger: 'blur' }],
// detailRules
plannedCompletionRate: [
{ required: false, message: '请填写计划完成率', trigger: 'blur' },
{
validator: (rule: any, value: any, callback: any) => {
if (value === null || value === undefined || value === '') {
callback();
return;
}
//
const numValue = Number(value);
//
if (isNaN(numValue)) {
callback(new Error('请输入有效的数字'));
return;
}
// 0-1
if (numValue < 0 || numValue > 1) {
callback(new Error('请输入0-1之间的数字'));
return;
}
//
const decimalPlaces = value.toString().split('.')[1];
if (decimalPlaces && decimalPlaces.length > 2) {
callback(new Error('最多支持两位小数'));
return;
}
callback();
},
trigger: 'blur'
}
]
}
}); });
// //
const { form: detailForm, queryParams: detailQueryParams, rules: detailRules } = toRefs(projectReportDetailData); const { form: detailForm, queryParams: detailQueryParams, rules: detailRules } = toRefs(projectReportDetailData);
//
const validateModifyPlannedCompletionRate = (value: string) => {
if (!value) return;
//
const numValue = Number(value);
//
if (isNaN(numValue)) {
detailForm.value.plannedCompletionRate = 0;
return;
}
// 0-1
if (numValue < 0) {
detailForm.value.plannedCompletionRate = 0;
} else if (numValue > 1) {
detailForm.value.plannedCompletionRate = 1;
} else {
//
const decimalPlaces = value.split('.')[1];
if (decimalPlaces && decimalPlaces.length > 2) {
detailForm.value.plannedCompletionRate = parseFloat(numValue.toFixed(2));
}
}
};
// OSS // OSS
const dialog = reactive<DialogOption>({ const dialog = reactive<DialogOption>({
visible: false, visible: false,
@ -786,7 +825,17 @@ const submitOss = () => {
dialog.visible = false; dialog.visible = false;
proxy?.$modal.msgSuccess('附件已更新'); proxy?.$modal.msgSuccess('附件已更新');
}; };
// ossId
//
watch(
() => form.value.ossId,
(val) => {
if (!dialog.visible) {
ossFileModel.value = val as any;
projectReportForm.value.ossId = val as any;
}
}
);
const ReportDialog = reactive<DialogOption>({ const ReportDialog = reactive<DialogOption>({
visible: false, visible: false,
title: '' title: ''
@ -825,13 +874,13 @@ const columns = ref<FieldOption[]>([
{ key: 17, label: `合同ID(预留)`, visible: false }, { key: 17, label: `合同ID(预留)`, visible: false },
{ key: 18, label: `附件ID`, visible: true }, { key: 18, label: `附件ID`, visible: true },
{ key: 19, label: `备注`, visible: true }, { key: 19, label: `备注`, visible: true },
{ key: 20, label: `激活标识`, visible: false }, { key: 20, label: `激活标识`, visible: false }
{ key: 21, label: `删除标志`, visible: true }, // { key: 21, label: ``, visible: true },
{ key: 22, label: `创建部门`, visible: true }, // { key: 22, label: ``, visible: true },
{ key: 23, label: `创建时间`, visible: true }, // { key: 23, label: ``, visible: true },
{ key: 24, label: `创建人`, visible: true }, // { key: 24, label: ``, visible: true },
{ key: 25, label: `更新人`, visible: true }, // { key: 25, label: ``, visible: true },
{ key: 26, label: `更新时间`, visible: true } // { key: 26, label: ``, visible: true }
]); ]);
// //
@ -937,7 +986,7 @@ const validatePlannedCompletionRate = (value: string) => {
const numValue = Number(value); const numValue = Number(value);
// //
if (isNaN(numValue)) { if (isNaN(numValue)) {
projectReportForm.value.plannedCompletionRate = ''; projectReportForm.value.plannedCompletionRate = 0;
return; return;
} }
// 0-1 // 0-1
@ -968,6 +1017,7 @@ const formattedPlannedCompletionRate = computed(() => {
/** 表单重置 */ /** 表单重置 */
const reset = () => { const reset = () => {
detailForm.value = { ...initProjectReportDetailFormData }; detailForm.value = { ...initProjectReportDetailFormData };
modifyDatePart.value = ''; //
projectReportDetailDialogFormRef.value?.resetFields(); projectReportDetailDialogFormRef.value?.resetFields();
}; };
/** 修改按钮操作 */ /** 修改按钮操作 */
@ -976,6 +1026,34 @@ const handleUpdate = async (row?: ProjectReportDetailVO) => {
const _reportDetailId = row?.reportDetailId || ids.value[0]; const _reportDetailId = row?.reportDetailId || ids.value[0];
const res = await getProjectReportDetail(_reportDetailId); const res = await getProjectReportDetail(_reportDetailId);
Object.assign(detailForm.value, res.data); Object.assign(detailForm.value, res.data);
// fillTime
if (detailForm.value.fillTime) {
const [date] = detailForm.value.fillTime.split(' ');
if (date) {
modifyDatePart.value = date;
//
detailForm.value.currentWorkWeek = getWorkWeek(date);
}
} else {
//
const now = new Date();
const year = now.getFullYear();
const month = String(now.getMonth() + 1).padStart(2, '0');
const day = String(now.getDate()).padStart(2, '0');
const dateStr = `${year}-${month}-${day}`;
//
const hours = String(now.getHours()).padStart(2, '0');
const minutes = String(now.getMinutes()).padStart(2, '0');
const seconds = String(now.getSeconds()).padStart(2, '0');
const timeStr = `${hours}:${minutes}:${seconds}`;
modifyDatePart.value = dateStr;
detailForm.value.fillTime = `${dateStr} ${timeStr}`;
detailForm.value.currentWorkWeek = getWorkWeek(dateStr);
}
ReportDialog.visible = true; ReportDialog.visible = true;
ReportDialog.title = '修改项目周报明细'; ReportDialog.title = '修改项目周报明细';
}; };
@ -1146,6 +1224,41 @@ watch(
{ immediate: true } { immediate: true }
); );
//
const modifyDatePart = ref('');
//
const handleModifyDateChange = (selectedDate) => {
if (selectedDate) {
// 使
let timeStr = '';
if (detailForm.value.fillTime && detailForm.value.fillTime.includes(' ')) {
const [, time] = detailForm.value.fillTime.split(' ');
if (time) {
timeStr = time;
} else {
const now = new Date();
const hours = String(now.getHours()).padStart(2, '0');
const minutes = String(now.getMinutes()).padStart(2, '0');
const seconds = String(now.getSeconds()).padStart(2, '0');
timeStr = `${hours}:${minutes}:${seconds}`;
}
} else {
const now = new Date();
const hours = String(now.getHours()).padStart(2, '0');
const minutes = String(now.getMinutes()).padStart(2, '0');
const seconds = String(now.getSeconds()).padStart(2, '0');
timeStr = `${hours}:${minutes}:${seconds}`;
}
//
detailForm.value.fillTime = `${selectedDate} ${timeStr}`;
//
detailForm.value.currentWorkWeek = getWorkWeek(selectedDate);
} else {
//
detailForm.value.fillTime = '';
detailForm.value.currentWorkWeek = '';
}
};
// //
const handleApprovalRecord = () => { const handleApprovalRecord = () => {
approvalRecordRef.value.init(projectReportForm.value.reportDetailId); approvalRecordRef.value.init(projectReportForm.value.reportDetailId);
@ -1162,17 +1275,6 @@ const approvalVerifyOpen = async () => {
await submitVerifyRef.value.openDialog(routeParams.value.taskId); await submitVerifyRef.value.openDialog(routeParams.value.taskId);
}; };
// ossId
//
watch(
() => form.value.ossId,
(val) => {
if (!dialog.visible) {
ossFileModel.value = val as any;
projectReportForm.value.ossId = val as any;
}
}
);
const isCodeGenerated = ref(false); const isCodeGenerated = ref(false);
// //

@ -5,13 +5,7 @@
<el-card shadow="hover"> <el-card shadow="hover">
<el-form ref="queryFormRef" :model="queryParams" :inline="true" label-width="120px"> <el-form ref="queryFormRef" :model="queryParams" :inline="true" label-width="120px">
<el-form-item label="项目名称" prop="projectName"> <el-form-item label="项目名称" prop="projectName">
<el-input v-model="queryParams.projectName" placeholder="请输入项目名称" clearable @keyup.enter="handleQuery"> <el-input v-model="queryParams.projectName" placeholder="请输入项目名称" clearable @keyup.enter="handleQuery" />
<!-- <template #suffix>
<el-icon style="cursor: pointer; margin-right: 4px; font-size: 14px" @click="openProjectSelect">
<Search />
</el-icon>
</template> -->
</el-input>
</el-form-item> </el-form-item>
<el-form-item label="项目编号" prop="projectCode"> <el-form-item label="项目编号" prop="projectCode">
<el-input v-model="queryParams.projectCode" placeholder="请输入项目编号" clearable @keyup.enter="handleQuery" /> <el-input v-model="queryParams.projectCode" placeholder="请输入项目编号" clearable @keyup.enter="handleQuery" />
@ -107,13 +101,11 @@
</div> </div>
</transition> </transition>
<!-- <ProjectSelect ref="projectSelectRef" :multiple="false" @confirm-call-back="projectInfoSelectCallBack"></ProjectSelect> -->
<el-card shadow="never"> <el-card shadow="never">
<template #header> <template #header>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['oa/erp:projectReport:add']"></el-button> <el-button type="primary" plain icon="Plus" @click="handleAdd(null)" v-hasPermi="['oa/erp:projectReport:add']"></el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['oa/erp:projectReport:edit']" <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['oa/erp:projectReport:edit']"
@ -135,9 +127,9 @@
<el-table v-loading="loading" border :data="projectReportList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" border :data="projectReportList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="项目周报ID" align="center" prop="reportId" v-if="columns[0].visible" /> <el-table-column label="项目周报ID" align="center" prop="reportId" v-if="columns[0].visible" />
<el-table-column label="项目ID" align="center" prop="projectId" v-if="columns[2].visible" /> <el-table-column label="项目ID" align="center" prop="projectId" v-if="columns[1].visible" />
<el-table-column label="项目名称" align="center" prop="projectName" v-if="columns[3].visible" /> <el-table-column label="项目名称" align="center" prop="projectName" v-if="columns[2].visible" />
<el-table-column label="项目编码" align="center" prop="projectCode" v-if="columns[20].visible" /> <el-table-column label="项目编码" align="center" prop="projectCode" v-if="columns[3].visible" />
<el-table-column label="当前里程碑" align="center" prop="milestonePlan" v-if="columns[4].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="项目经理" align="center" prop="managerName" v-if="columns[5].visible" />
<el-table-column label="部门名称" align="center" prop="deptName" v-if="columns[6].visible" /> <el-table-column label="部门名称" align="center" prop="deptName" v-if="columns[6].visible" />
@ -148,11 +140,11 @@
<el-table-column label="附件ID" align="center" prop="ossId" v-if="columns[11].visible" /> <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="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="activeFlag" v-if="columns[13].visible" />
<el-table-column label="创建时间" align="center" prop="createTime" width="100" v-if="columns[17].visible" /> <el-table-column label="创建时间" align="center" prop="createTime" width="100" v-if="columns[14].visible" />
<el-table-column label="更新时间" align="center" prop="updateTime" width="100" v-if="columns[19].visible" /> <el-table-column label="更新时间" align="center" prop="updateTime" width="100" v-if="columns[15].visible" />
<el-table-column label="操作" align="center" width="150" fixed="right" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" width="150" fixed="right" class-name="small-padding fixed-width">
<template #default="scope"> <template #default="scope">
<el-tooltip content="新增" placement="top"> <el-tooltip content="新增已有周报明细" placement="top">
<el-button link type="primary" icon="Plus" @click="handleAdd(scope.row)" v-hasPermi="['oa/erp:projectReport:add']"></el-button> <el-button link type="primary" icon="Plus" @click="handleAdd(scope.row)" v-hasPermi="['oa/erp:projectReport:add']"></el-button>
</el-tooltip> </el-tooltip>
<el-tooltip content="查看详情" placement="top"> <el-tooltip content="查看详情" placement="top">
@ -176,7 +168,7 @@
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" /> <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
<!-- 添加或修改项目周报信息对话框 --> <!-- 修改项目周报信息对话框 -->
<el-dialog :title="dialog.title" v-model="dialog.visible" width="800px" append-to-body> <el-dialog :title="dialog.title" v-model="dialog.visible" width="800px" append-to-body>
<el-form ref="projectReportFormRef" :model="form" :rules="rules" label-width="120px"> <el-form ref="projectReportFormRef" :model="form" :rules="rules" label-width="120px">
<el-row :gutter="10" class="form-row"> <el-row :gutter="10" class="form-row">
@ -331,12 +323,8 @@
<script setup name="ProjectReport" lang="ts"> <script setup name="ProjectReport" lang="ts">
import { ProjectReportVO, ProjectReportQuery, ProjectReportForm } from '@/api/oa/erp/projectReport/types'; import { ProjectReportVO, ProjectReportQuery, ProjectReportForm } from '@/api/oa/erp/projectReport/types';
import { listProjectReport, getProjectReport, delProjectReport, addProjectReport, updateProjectReport } from '@/api/oa/erp/projectReport'; import { listProjectReport, getProjectReport, delProjectReport, addProjectReport, updateProjectReport } from '@/api/oa/erp/projectReport';
import ProjectSelect from '@/components/ProjectSelect/index.vue'; import { allListDept } from '@/api/system/dept';
import { report } from 'process'; import { listUserByDeptId } from '@/api/system/user';
import { fa } from 'element-plus/es/locale/index.mjs';
import { allListDept, listDept } from '@/api/system/dept';
import { listUserByDeptAndRole, listUserByDeptId } from '@/api/system/user';
import { delProjectReportDetailByReportId } from '@/api/oa/erp/projectReportDetail/index';
const { proxy } = getCurrentInstance() as ComponentInternalInstance; const { proxy } = getCurrentInstance() as ComponentInternalInstance;
@ -354,8 +342,6 @@ const total = ref(0);
const queryFormRef = ref<ElFormInstance>(); const queryFormRef = ref<ElFormInstance>();
// //
const projectReportFormRef = ref<ElFormInstance>(); const projectReportFormRef = ref<ElFormInstance>();
//
const projectSelectRef = ref<InstanceType<typeof ProjectSelect>>();
const dialog = reactive<DialogOption>({ const dialog = reactive<DialogOption>({
visible: false, visible: false,
@ -365,9 +351,9 @@ const dialog = reactive<DialogOption>({
// //
const columns = ref<FieldOption[]>([ const columns = ref<FieldOption[]>([
{ key: 0, label: `项目周报ID`, visible: false }, { key: 0, label: `项目周报ID`, visible: false },
{ key: 1, label: `租户编号`, visible: false }, { key: 1, label: `项目ID`, visible: false },
{ key: 2, label: `项目ID`, visible: false }, { key: 2, label: `项目名称`, visible: true },
{ key: 3, label: `项目名称`, visible: true }, { key: 3, label: `项目编码`, visible: true },
{ key: 4, label: `当前里程碑`, visible: true }, { key: 4, label: `当前里程碑`, visible: true },
{ key: 5, label: `项目经理`, visible: true }, { key: 5, label: `项目经理`, visible: true },
{ key: 6, label: `部门名称`, visible: true }, { key: 6, label: `部门名称`, visible: true },
@ -378,13 +364,8 @@ const columns = ref<FieldOption[]>([
{ key: 11, label: `附件ID`, visible: true }, { key: 11, label: `附件ID`, visible: true },
{ key: 12, label: `备注`, visible: true }, { key: 12, label: `备注`, visible: true },
{ key: 13, label: `激活标识`, visible: false }, { key: 13, label: `激活标识`, visible: false },
{ key: 14, label: `删除标志`, visible: false }, { key: 14, label: `创建时间`, visible: true },
{ key: 15, label: `创建部门`, visible: true }, { key: 15, label: `更新时间`, visible: true }
{ key: 16, label: `创建人`, visible: true },
{ key: 17, label: `创建时间`, visible: true },
{ key: 18, label: `更新人`, visible: true },
{ key: 19, label: `更新时间`, visible: true },
{ key: 20, label: `项目编码`, visible: true }
]); ]);
const initFormData: ProjectReportForm = { const initFormData: ProjectReportForm = {
reportId: undefined, reportId: undefined,
@ -447,10 +428,10 @@ const dialogOSS = reactive<DialogOption>({
/** 文件按钮操作 */ /** 文件按钮操作 */
const handleFile = () => { const handleFile = () => {
type.value = 0; type.value = 0;
dialogOSS.visible = true;
dialogOSS.title = '上传周报附件';
// //
ossFileModel.value = form.value.ossId as any; ossFileModel.value = form.value.ossId as any;
dialogOSS.visible = true;
dialogOSS.title = '上传周报附件';
}; };
// OSS v-model form // OSS v-model form
const ossFileModel = ref<string | string[] | undefined>(undefined); const ossFileModel = ref<string | string[] | undefined>(undefined);
@ -472,7 +453,6 @@ watch(
(val) => { (val) => {
if (!dialog.visible) { if (!dialog.visible) {
ossFileModel.value = val as any; ossFileModel.value = val as any;
// form.value.ossId = val as any;
} }
} }
); );
@ -502,16 +482,12 @@ const getUsersByDept = async (deptId: number | string) => {
deputyList.value = []; deputyList.value = [];
return; return;
} }
try { try {
loadingUsers.value = true; loadingUsers.value = true;
// //
const currentDeptUsers = await listUserByDeptId(deptId); const currentDeptUsers = await listUserByDeptId(deptId);
// ID // ID
const currentDept = deptList.value.find((dept) => String(dept.deptId) === String(deptId)); const currentDept = deptList.value.find((dept) => String(dept.deptId) === String(deptId));
if (currentDept) { if (currentDept) {
// //
managerList.value = currentDeptUsers.data || []; managerList.value = currentDeptUsers.data || [];
@ -524,7 +500,6 @@ const getUsersByDept = async (deptId: number | string) => {
// //
deputyList.value = currentDeptUsers.data || []; deputyList.value = currentDeptUsers.data || [];
} }
// //
form.value.deptName = currentDept.deptName || currentDept.label; form.value.deptName = currentDept.deptName || currentDept.label;
} }
@ -546,12 +521,10 @@ const handleDeptChange = async (deptId: number | string) => {
form.value.managerName = undefined; form.value.managerName = undefined;
form.value.chargeName = undefined; form.value.chargeName = undefined;
form.value.deputyName = undefined; form.value.deputyName = undefined;
// //
managerList.value = []; managerList.value = [];
chargeList.value = []; chargeList.value = [];
deputyList.value = []; deputyList.value = [];
// //
await getUsersByDept(deptId); await getUsersByDept(deptId);
}; };
@ -676,7 +649,7 @@ const handleUpdateReport = (row?: ProjectReportVO) => {
const handleUpdate = async (row?: ProjectReportVO) => { const handleUpdate = async (row?: ProjectReportVO) => {
reset(); reset();
// //
proxy?.$modal.loading('正在导出数据,请稍后...'); proxy?.$modal.loading('正在查询数据,请稍后...');
const _reportId = row?.reportId || ids.value[0]; const _reportId = row?.reportId || ids.value[0];
const res = await getProjectReport(_reportId); const res = await getProjectReport(_reportId);

Loading…
Cancel
Save