|
|
@@ -1,5 +1,13 @@
|
|
|
<template>
|
|
|
<main class="safety-platform-container__main">
|
|
|
+ <el-alert
|
|
|
+ v-if="rejectReason && (Number(approvalStatus) === 3)"
|
|
|
+ type="error"
|
|
|
+ :title="'不通过原因:' + rejectReason"
|
|
|
+ show-icon
|
|
|
+ class="detail-reject-alert"
|
|
|
+ />
|
|
|
+
|
|
|
<BasicForm
|
|
|
ref="basicFormRef"
|
|
|
:formData="ruleFormData"
|
|
|
@@ -12,7 +20,7 @@
|
|
|
v-model="ruleFormData.approvalTemplateId"
|
|
|
placeholder="审批流程"
|
|
|
filterable
|
|
|
- :disabled="!isCreateMode"
|
|
|
+ :disabled="isViewMode || isAuditMode"
|
|
|
popper-class="el-scrollbar--custom"
|
|
|
>
|
|
|
<el-option v-for="item in approvalList" :key="item.id" :label="item.templateName" :value="item.id" />
|
|
|
@@ -21,13 +29,13 @@
|
|
|
<template #reviewDepartmentId>
|
|
|
<el-cascader
|
|
|
v-model="ruleFormData.departmentCode"
|
|
|
- ref="cascaderRef"
|
|
|
+ ref="cascaderRef"
|
|
|
:options="firstLevelDepts"
|
|
|
:props="cascaderProp"
|
|
|
:show-all-levels="false"
|
|
|
placeholder="部门名称"
|
|
|
filterable
|
|
|
- :disabled="!isCreateMode"
|
|
|
+ :disabled="isViewMode || isAuditMode"
|
|
|
@change="handleChangeDept"
|
|
|
/>
|
|
|
</template>
|
|
|
@@ -35,8 +43,7 @@
|
|
|
<UploadFiles
|
|
|
label="上传事故报告"
|
|
|
:file-list="accidentCertUrl"
|
|
|
- :readonly="!isCreateMode"
|
|
|
- :disabled="!isCreateMode"
|
|
|
+ :disabled="isViewMode || isAuditMode"
|
|
|
@uploadSuccess="handleAccidentReportUploadSuccess"
|
|
|
@preview="handlePreview"
|
|
|
/>
|
|
|
@@ -45,8 +52,7 @@
|
|
|
<UploadFiles
|
|
|
label="上传委托书"
|
|
|
:file-list="powerAttorneyUrl"
|
|
|
- :readonly="!isCreateMode"
|
|
|
- :disabled="!isCreateMode"
|
|
|
+ :disabled="isViewMode || isAuditMode"
|
|
|
@uploadSuccess="handlePowerOfAttorneyUploadSuccess"
|
|
|
@preview="handlePreview"
|
|
|
/>
|
|
|
@@ -55,8 +61,7 @@
|
|
|
<UploadFiles
|
|
|
label="上传地址确认书"
|
|
|
:file-list="addressConfirmUrl"
|
|
|
- :readonly="!isCreateMode"
|
|
|
- :disabled="!isCreateMode"
|
|
|
+ :disabled="isViewMode || isAuditMode"
|
|
|
@uploadSuccess="handleAddressConfirmationUploadSuccess"
|
|
|
@preview="handlePreview"
|
|
|
/>
|
|
|
@@ -65,8 +70,7 @@
|
|
|
<UploadFiles
|
|
|
label="上传申请表"
|
|
|
:file-list="applicationFormUrl"
|
|
|
- :readonly="!isCreateMode"
|
|
|
- :disabled="!isCreateMode"
|
|
|
+ :disabled="isViewMode || isAuditMode"
|
|
|
@uploadSuccess="handleApplicationFormUploadSuccess"
|
|
|
@preview="handlePreview"
|
|
|
/>
|
|
|
@@ -75,8 +79,7 @@
|
|
|
<UploadFiles
|
|
|
label="上传身份证正反面"
|
|
|
:file-list="idCardUrl"
|
|
|
- :readonly="!isCreateMode"
|
|
|
- :disabled="!isCreateMode"
|
|
|
+ :disabled="isViewMode || isAuditMode"
|
|
|
@uploadSuccess="handleIdCardUploadSuccess"
|
|
|
@preview="handlePreview"
|
|
|
/>
|
|
|
@@ -85,8 +88,7 @@
|
|
|
<UploadFiles
|
|
|
label="上传劳动合同"
|
|
|
:file-list="laborContractUrl"
|
|
|
- :readonly="!isCreateMode"
|
|
|
- :disabled="!isCreateMode"
|
|
|
+ :disabled="isViewMode || isAuditMode"
|
|
|
@uploadSuccess="handleLaborContractUploadSuccess"
|
|
|
@preview="handlePreview"
|
|
|
/>
|
|
|
@@ -95,8 +97,7 @@
|
|
|
<UploadFiles
|
|
|
label="上传初次医疗证明"
|
|
|
:file-list="initialMedicalCertUrl"
|
|
|
- :readonly="!isCreateMode"
|
|
|
- :disabled="!isCreateMode"
|
|
|
+ :disabled="isViewMode || isAuditMode"
|
|
|
@uploadSuccess="handleInitialMedicalCertificateUploadSuccess"
|
|
|
@preview="handlePreview"
|
|
|
/>
|
|
|
@@ -105,8 +106,7 @@
|
|
|
<UploadFiles
|
|
|
label="上传被委托人员身份证正反面"
|
|
|
:file-list="trusteeIdCardUrl"
|
|
|
- :readonly="!isCreateMode"
|
|
|
- :disabled="!isCreateMode"
|
|
|
+ :disabled="isViewMode || isAuditMode"
|
|
|
@uploadSuccess="handleAgentIdCardUploadSuccess"
|
|
|
@preview="handlePreview"
|
|
|
/>
|
|
|
@@ -172,7 +172,7 @@
|
|
|
<el-button @click="basicDialogRef.closeDialog">取消</el-button>
|
|
|
</template>
|
|
|
</BasicDialog>
|
|
|
- <!-- 审核不通过原因 -->
|
|
|
+ <!-- 审核不通过原因 -->
|
|
|
<el-dialog
|
|
|
v-model="showRejectDialog"
|
|
|
title="审核不通过"
|
|
|
@@ -225,7 +225,14 @@
|
|
|
import BasicForm from '@/components/BasicForm.vue';
|
|
|
import { useFormConfigHook } from '@/hooks/useFormConfigHook';
|
|
|
import { INVENTORY_FORM_CONFIG, INVENTORY_FORM_DATA, INVENTORY_FORM_RULES } from '../configs/form';
|
|
|
- import { queryInventoryDetail, saveBusinessInformation, updateInventory , submitApprovalProcess, auditPurchaseApply } from '@/api/inventory';
|
|
|
+ import {
|
|
|
+ queryWorkInjuryApplyDetail,
|
|
|
+ saveBusinessInformation,
|
|
|
+ updateInventory ,
|
|
|
+ submitApprovalProcess,
|
|
|
+ auditPurchaseApply,
|
|
|
+ updateWorkInjuryApply,
|
|
|
+ } from '@/api/inventory';
|
|
|
import UploadFiles from '@/components/UploadFiles/UploadFiles.vue';
|
|
|
import type { FileItem } from '@/components/UploadFiles/types';
|
|
|
import { formatAttachmentList } from '@/components/UploadFiles/utils';
|
|
|
@@ -264,9 +271,10 @@ import { template } from 'lodash-es';
|
|
|
const isAuditMode = computed(() => operate.value === 'inventory-audit');
|
|
|
const previewOnlineRef = ref<InstanceType<typeof PreviewOnline>>();
|
|
|
const cascaderRef = ref();
|
|
|
- const rejectReason = ref('');
|
|
|
+ const rejectReason = ref<string>(route.query.rejectReason as string || '');
|
|
|
const approvalOrder = ref<string>(route.query.approvalOrder as string || '');
|
|
|
const approvalTemplateId = ref<string>(route.query.approvalTemplateId as string || '');
|
|
|
+ const approvalStatus = ref<string>(route.query.approvalStatus as string || '');
|
|
|
const auditType = ref(true);
|
|
|
|
|
|
const basicDialogRef = ref();
|
|
|
@@ -316,24 +324,25 @@ import { template } from 'lodash-es';
|
|
|
const getDetail = async () => {
|
|
|
if (!currentId.value) return;
|
|
|
try {
|
|
|
- const res = await queryInventoryDetail(currentId.value);
|
|
|
+ const res = await queryWorkInjuryApplyDetail(currentId.value);
|
|
|
if (res) {
|
|
|
// 映射接口字段到表单字段
|
|
|
ruleFormData.itemName = res.applicantName || ''; // 申请人姓名
|
|
|
- ruleFormData.applicantCode = res.applicantCode || ''; // 工号
|
|
|
- ruleFormData.warehouseDate = res.injuryTime ? res.injuryTime.split('T')[0] : ''; // 受伤时间
|
|
|
- ruleFormData.status = res.status ? 'ENABLE' : 'DISABLE'; // 状态
|
|
|
- ruleFormData.remarks = res.injuryReason || ''; // 受伤原因
|
|
|
- ruleFormData.accidentCertUrl = res.accidentCertUrl || ''; // 事故报告
|
|
|
- ruleFormData.powerAttorneyUrl = res.powerAttorneyUrl || ''; // 委托书
|
|
|
- ruleFormData.addressConfirmUrl = res.addressConfirmUrl || ''; // 地址确认书
|
|
|
- ruleFormData.applicationFormUrl = res.applicationFormUrl || ''; // 申请表
|
|
|
- ruleFormData.idCardUrl = res.idCardUrl || ''; // 身份证正反面
|
|
|
- ruleFormData.laborContractUrl = res.laborContractUrl || ''; // 劳动合同
|
|
|
- ruleFormData.initialMedicalCertUrl = res.initialMedicalCertUrl || ''; // 初次医疗证明
|
|
|
- ruleFormData.trusteeIdCardUrl = res.trusteeIdCardUrl || ''; // 被委托人员身份证正反面
|
|
|
- ruleFormData.departmentCode = JSON.parse(res.departmentCode || '[]') || ''; // 部门编码
|
|
|
- ruleFormData.approvalTemplateId = res.templateId || ''; // 审批模板ID
|
|
|
+ ruleFormData.applicantCode = res.applicantCode || ''; // 工号
|
|
|
+ ruleFormData.warehouseDate = res.injuryTime ? res.injuryTime.split('T')[0] : ''; // 受伤时间
|
|
|
+ ruleFormData.status = res.status ? 'ENABLE' : 'DISABLE'; // 状态
|
|
|
+ ruleFormData.remarks = res.injuryReason || ''; // 受伤原因
|
|
|
+ ruleFormData.accidentCertUrl = res.accidentCertUrl || ''; // 事故报告
|
|
|
+ ruleFormData.powerAttorneyUrl = res.powerAttorneyUrl || ''; // 委托书
|
|
|
+ ruleFormData.addressConfirmUrl = res.addressConfirmUrl || ''; // 地址确认书
|
|
|
+ ruleFormData.applicationFormUrl = res.applicationFormUrl || ''; // 申请表
|
|
|
+ ruleFormData.idCardUrl = res.idCardUrl || ''; // 身份证正反面
|
|
|
+ ruleFormData.laborContractUrl = res.laborContractUrl || ''; // 劳动合同
|
|
|
+ ruleFormData.initialMedicalCertUrl = res.initialMedicalCertUrl || ''; // 初次医疗证明
|
|
|
+ ruleFormData.trusteeIdCardUrl = res.trusteeIdCardUrl || ''; // 被委托人员身份证正反面
|
|
|
+ ruleFormData.departmentCode = JSON.parse(res.departmentCode || '[]') || ''; // 部门编码
|
|
|
+ ruleFormData.departmentName = res.departmentName || ''; // 添加这一行,设置部门名称
|
|
|
+ ruleFormData.approvalTemplateId = res.templateId || ''; // 审批模板ID
|
|
|
}
|
|
|
cloneRuleFormData();
|
|
|
} catch (e) {
|
|
|
@@ -376,13 +385,16 @@ import { template } from 'lodash-es';
|
|
|
basicDialogRef.value.openDialog();
|
|
|
return;
|
|
|
} else if (isEditMode.value && currentId.value) {
|
|
|
- await updateInventory({
|
|
|
+ await updateWorkInjuryApply({
|
|
|
id: currentId.value,
|
|
|
...basePayload,
|
|
|
});
|
|
|
ElMessage.success('保存成功');
|
|
|
+ await getApprovalNode(Number(ruleFormData.approvalTemplateId));
|
|
|
+ basicDialogRef.value.openDialog();
|
|
|
+ return;
|
|
|
}
|
|
|
-
|
|
|
+ cloneRuleFormData();
|
|
|
router.back();
|
|
|
} catch (e) {
|
|
|
console.error('保存物品库存失败:', e);
|
|
|
@@ -671,4 +683,7 @@ import { template } from 'lodash-es';
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
@use '@/styles/page-details-layout.scss' as *;
|
|
|
+ .detail-reject-alert{
|
|
|
+ margin-bottom: 20px;
|
|
|
+ }
|
|
|
</style>
|