|
|
@@ -26,7 +26,11 @@
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="责任部门:" prop="responsibleDeptIds" required>
|
|
|
+ <template v-if="isEditMode || isViewMode">
|
|
|
+ <el-input type="textarea" resize="none" v-model="deptName.responsibleDeptNames" disabled />
|
|
|
+ </template>
|
|
|
<el-cascader
|
|
|
+ v-else
|
|
|
v-model="form.responsibleDeptIds"
|
|
|
:options="deptTree"
|
|
|
:props="cascaderProp"
|
|
|
@@ -36,12 +40,16 @@
|
|
|
:max-collapse-tags="3"
|
|
|
placeholder="请选择责任部门"
|
|
|
style="width: 100%"
|
|
|
- :disabled="true"
|
|
|
+ :disabled="isEditMode || isViewMode"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="配合部门:" prop="cooperateDeptIds" required>
|
|
|
+ <template v-if="isEditMode || isViewMode">
|
|
|
+ <el-input type="textarea" resize="none" v-model="deptName.cooperateDeptNames" disabled />
|
|
|
+ </template>
|
|
|
<el-cascader
|
|
|
+ v-else
|
|
|
v-model="form.cooperateDeptIds"
|
|
|
:options="deptTree"
|
|
|
:props="cascaderProp"
|
|
|
@@ -52,7 +60,7 @@
|
|
|
popper-class="cascader-popper--custom"
|
|
|
placeholder="请选择配合部门"
|
|
|
style="width: 100%"
|
|
|
- :disabled="true"
|
|
|
+ :disabled="isEditMode || isViewMode"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
|
|
|
@@ -134,7 +142,6 @@
|
|
|
|
|
|
|
|
|
const currentId = computed(() => Number(route.query.id));
|
|
|
- const currentPlanId = computed(() => Number(route.query.planId));
|
|
|
|
|
|
const operate = computed(() => (route.query.operate as string) || 'work-plan-dept-view');
|
|
|
const isEditMode = computed(() => operate.value === 'work-plan-dept-issue');
|
|
|
@@ -150,6 +157,10 @@
|
|
|
plannedComplateTime: '',
|
|
|
fileUrl: '',
|
|
|
});
|
|
|
+ const deptName = reactive({
|
|
|
+ responsibleDeptNames: '',
|
|
|
+ cooperateDeptNames: '',
|
|
|
+ });
|
|
|
|
|
|
// 分类名称选项
|
|
|
const classifyNameOptions = ref<Array<{ label: string; value: string }>>([
|
|
|
@@ -198,7 +209,7 @@
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- const attachmentFileList = computed(() => convertAttachmentJsonToFileItems(form.fileUrl || ''));
|
|
|
+ const attachmentFileList = ref([]) //computed(() => convertAttachmentJsonToFileItems(form.fileUrl || ''));
|
|
|
|
|
|
async function handleAttachmentUploadSuccess(files: FileItem[]) {
|
|
|
if (!files?.length) {
|
|
|
@@ -236,14 +247,6 @@
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- // 时间格式化
|
|
|
- const formatDate = (date) => {
|
|
|
- if (!date) return '';
|
|
|
- const year = date.getFullYear();
|
|
|
- const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
|
- const day = String(date.getDate()).padStart(2, '0');
|
|
|
- return `${year}-${month}-${day}`; // 输出:****-**-**
|
|
|
- };
|
|
|
//转部门格式 “2,3“ -> [2,3]
|
|
|
const parseDeptIds = (ids: string | string[] | number[] | undefined | null): number[] => {
|
|
|
if (!ids) {
|
|
|
@@ -287,8 +290,12 @@
|
|
|
responsibleDeptIds: responsibleDeptIdsArray,
|
|
|
fileUrl: JSON.parse(res.fileUrl || '[]'),
|
|
|
});
|
|
|
+ deptName.cooperateDeptNames = res.cooperateDeptNames as string;
|
|
|
+ deptName.responsibleDeptNames = res.responsibleDeptName as string;
|
|
|
+ if(res.fileUrl) {
|
|
|
+ attachmentFileList.value = JSON.parse(res.fileUrl || '[]');
|
|
|
+ }
|
|
|
}
|
|
|
- // cloneRuleFormData();
|
|
|
} catch (e) {
|
|
|
console.error('获取物品库存详情失败:', e);
|
|
|
ElMessage.error('获取详情失败');
|
|
|
@@ -319,13 +326,6 @@
|
|
|
ElMessage.error('保存失败,请重试');
|
|
|
}
|
|
|
};
|
|
|
- // 强制触发组件重新匹配label, 解决视图无法匹配label问题
|
|
|
-watch(deptTree, () => {
|
|
|
- if (isEditMode.value || isViewMode.value) {
|
|
|
- form.cooperateDeptIds = [...parseDeptIds(form.cooperateDeptIds)];
|
|
|
- form.responsibleDeptIds = [...parseDeptIds(form.responsibleDeptIds)];
|
|
|
- }
|
|
|
-});
|
|
|
onMounted(async () => {
|
|
|
await loadDeptTreeData();
|
|
|
if (isEditMode.value || isViewMode.value) {
|