diff --git a/src/api/oa/erp/projectReport/types.ts b/src/api/oa/erp/projectReport/types.ts index 6e5be0d..aed6a4a 100644 --- a/src/api/oa/erp/projectReport/types.ts +++ b/src/api/oa/erp/projectReport/types.ts @@ -68,6 +68,8 @@ export interface ProjectReportVO extends BaseEntity, extraInfo { * 项目编码 */ projectCode?: string; + + status?: string; } export interface ProjectReportForm extends BaseEntity, extraInfo { @@ -140,6 +142,8 @@ export interface ProjectReportForm extends BaseEntity, extraInfo { * 项目编码 */ projectCode?: string; + + status?: string; } export interface ProjectReportQuery extends PageQuery, extraInfo { @@ -211,6 +215,8 @@ export interface ProjectReportQuery extends PageQuery, extraInfo { * 日期范围参数 */ params?: any; + + status?: string; } export interface extraInfo { diff --git a/src/api/oa/erp/projectReportDetail/types.ts b/src/api/oa/erp/projectReportDetail/types.ts index 5ae0a65..e40809b 100644 --- a/src/api/oa/erp/projectReportDetail/types.ts +++ b/src/api/oa/erp/projectReportDetail/types.ts @@ -1,4 +1,4 @@ -import { ProjectReportVO, ProjectReportForm, ProjectReportQuery } from '@/api/oa/erp/projectReport/types'; +import { ProjectReportForm } from '@/api/oa/erp/projectReport/types'; export interface ProjectReportDetailVO extends BaseEntity, extraInfo { /** * 项目周报明细ID diff --git a/src/components/ProjectSelect/index.vue b/src/components/ProjectSelect/index.vue index c045a82..8400465 100644 --- a/src/components/ProjectSelect/index.vue +++ b/src/components/ProjectSelect/index.vue @@ -107,7 +107,7 @@ const { proxy } = getCurrentInstance() as ComponentInternalInstance; const { project_category } = toRefs(proxy?.useDict('project_category')); -const loading = ref(true); +const loading = ref(false); const showSearch = ref(true); const total = ref(0); // 所有项目数据 diff --git a/src/views/oa/erp/projectReport/edit.vue b/src/views/oa/erp/projectReport/edit.vue index 4f068fc..f3b36eb 100644 --- a/src/views/oa/erp/projectReport/edit.vue +++ b/src/views/oa/erp/projectReport/edit.vue @@ -9,28 +9,21 @@ :buttonLoading="buttonLoading" :id="projectReportForm.reportDetailId" :status="projectReportForm.flowStatus" - :pageType="routeParams.type" + :pageType="modifiedPageType" :mode="false" /> - + - + - - - - - - - - - - - @@ -325,6 +296,7 @@ import { ProjectReportVO, ProjectReportQuery, ProjectReportForm } from '@/api/oa import { listProjectReport, getProjectReport, delProjectReport, addProjectReport, updateProjectReport } from '@/api/oa/erp/projectReport'; import { allListDept } from '@/api/system/dept'; import { listUserByDeptId } from '@/api/system/user'; +import FileUpload from '@/components/FileUpload/index.vue'; const { proxy } = getCurrentInstance() as ComponentInternalInstance; @@ -362,7 +334,7 @@ const columns = ref([ { key: 9, label: `周报情况说明`, visible: true }, { key: 10, label: `排序号`, visible: false }, { key: 11, label: `附件ID`, visible: true }, - { key: 12, label: `备注`, visible: true }, + { key: 12, label: `备注`, visible: false }, { key: 13, label: `激活标识`, visible: false }, { key: 14, label: `创建时间`, visible: true }, { key: 15, label: `更新时间`, visible: true } @@ -385,7 +357,8 @@ const initFormData: ProjectReportForm = { deptName: undefined, managerName: undefined, chargeName: undefined, - deputyName: undefined + deputyName: undefined, + status: undefined }; const data = reactive>({ form: { ...initFormData }, @@ -409,6 +382,7 @@ const data = reactive>({ managerName: undefined, chargeName: undefined, deputyName: undefined, + status: undefined, params: {} }, rules: { @@ -419,43 +393,16 @@ const data = reactive>({ const { queryParams, form, rules } = toRefs(data); -const type = ref(0); -// OSS功能 -const dialogOSS = reactive({ - visible: false, - title: '' -}); -/** 文件按钮操作 */ -const handleFile = () => { - type.value = 0; - // 打开时回显已有附件 - ossFileModel.value = form.value.ossId as any; - dialogOSS.visible = true; - dialogOSS.title = '上传周报附件'; -}; -// OSS 上传内部 v-model 中转,避免直接绑定到 form 的未知属性 -const ossFileModel = ref(undefined); -// 确认上传,仅关闭弹窗并依赖 v-model 同步到 ossId -const submitOss = () => { - // 将上传组件返回的 ossId 串写回表单 - form.value.ossId = ossFileModel.value as any; - dialogOSS.visible = false; - proxy?.$modal.msgSuccess('附件已更新'); -}; -function cancelOss() { - dialogOSS.visible = false; -} - -// 监听上传组件返回的文件(ossId 串)并同步到表单字段 -// 同步表单初值到上传模型 -watch( - () => form.value.ossId, - (val) => { - if (!dialog.visible) { - ossFileModel.value = val as any; - } +// 定义计算属性用于双向绑定 +const ossIdString = computed({ + get() { + const v = form.value.ossId as any; + return v === undefined || v === null ? '' : String(v); + }, + set(val: string) { + form.value.ossId = val || (undefined as any); } -); +}); const deptList = ref([]); const managerList = ref([]); @@ -633,12 +580,12 @@ const handleView = (row?: ProjectReportVO) => { /** 修改按钮操作 */ const handleUpdateReport = (row?: ProjectReportVO) => { reset(); - const _projectId = row?.projectId; + const _reportId = row?.reportId; proxy.$tab.closePage(route); router.push({ path: '/project/projectReport/edit', query: { - id: _projectId, + id: _reportId, type: 'update', // 传递完整的行数据,方便合同信息页面直接使用 reportData: encodeURIComponent(JSON.stringify(row))