| | |
| | | {{ approvalTypeLabel(row.approvalType) }} |
| | | </span> |
| | | </el-descriptions-item> |
| | | <el-descriptions-item label="申请人编号">{{ row.applicantNo || "—" }}</el-descriptions-item> |
| | | <el-descriptions-item label="申请人名称">{{ row.applicantName || "—" }}</el-descriptions-item> |
| | | <el-descriptions-item label="申请摘要">{{ row.summary || "—" }}</el-descriptions-item> |
| | | <el-descriptions-item label="发起人编号">{{ row.applicantNo || "—" }}</el-descriptions-item> |
| | | <el-descriptions-item label="发起人名称">{{ row.applicantName || "—" }}</el-descriptions-item> |
| | | <el-descriptions-item label="摘要">{{ row.summary || "—" }}</el-descriptions-item> |
| | | <el-descriptions-item v-if="row.rejectReason" |
| | | label="驳回原因" |
| | | :span="2"> |
| | |
| | | <div class="detail-block"> |
| | | <div class="detail-block-title">填报内容</div> |
| | | <!-- 默认表单展示 --> |
| | | <FormPayloadFields v-if="!isSpecialApprovalType" |
| | | <FormPayloadFields v-if="!isSpecialApprovalType && row.businessType !== 19" |
| | | :fields="formResolved.fields" |
| | | :form-payload="formResolved.formPayload" |
| | | readonly /> |
| | |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <!-- 报工审批详情 --> |
| | | <template v-else-if="row.businessType === 19"> |
| | | <div v-if="formResolved.fields.length || reportParamList.length" class="report-detail"> |
| | | <el-divider content-position="left">报工填报内容</el-divider> |
| | | <el-descriptions v-if="formResolved.fields.length" :column="2" border> |
| | | <el-descriptions-item |
| | | v-for="field in formResolved.fields" |
| | | :key="field.key" |
| | | :label="field.label || field.key" |
| | | > |
| | | {{ formatFieldDisplayValue(field, formResolved.formPayload?.[field.key]) }} |
| | | </el-descriptions-item> |
| | | </el-descriptions> |
| | | <div v-if="reportParamList.length" class="report-param-block"> |
| | | <el-divider content-position="left">报工参数</el-divider> |
| | | <el-table :data="reportParamList" border size="small" style="width: 100%"> |
| | | <el-table-column label="参数名称" prop="paramName" min-width="180" show-overflow-tooltip /> |
| | | <el-table-column label="参数值" prop="inputValue" min-width="180" show-overflow-tooltip> |
| | | <template #default="scope"> |
| | | {{ scope.row.inputValue || '—' }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="单位" prop="unit" min-width="100" show-overflow-tooltip> |
| | | <template #default="scope"> |
| | | {{ scope.row.unit || '—' }} |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | <el-empty v-else description="暂无报工填报内容" /> |
| | | </template> |
| | | |
| | | <!-- 采购审批详情 --> |
| | |
| | | approvalStatusLabel, |
| | | approvalStatusTagType, |
| | | resolveInstanceFormFields, |
| | | formatFieldDisplayValue, |
| | | } from "../approveListConstants.js"; |
| | | import FormPayloadFields from "./FormPayloadFields.vue"; |
| | | |
| | |
| | | // 详情数据(直接使用传入的 detail-data 参数) |
| | | const detailData = computed(() => { |
| | | return props.detailData || {}; |
| | | }); |
| | | |
| | | const reportParamList = computed(() => { |
| | | const payload = formResolved.value?.formPayload || {}; |
| | | const sources = [ |
| | | payload.productionOperationParamList, |
| | | payload.reportParamList, |
| | | payload.paramList, |
| | | props.row?.productionOperationParamList, |
| | | props.row?.reportParamList, |
| | | props.row?.paramList, |
| | | ]; |
| | | const list = sources.find(item => Array.isArray(item) && item.length) || []; |
| | | return list.map((param, index) => ({ |
| | | id: param?.id ?? index, |
| | | paramName: param?.paramName || param?.parameterName || param?.name || `参数${index + 1}`, |
| | | inputValue: param?.inputValue ?? param?.value ?? param?.paramValue ?? '', |
| | | unit: param?.unit || '', |
| | | })); |
| | | }); |
| | | |
| | | const attachmentList = computed(() => { |
| | |
| | | color: var(--el-color-danger); |
| | | } |
| | | |
| | | .report-param-block { |
| | | margin-top: 20px; |
| | | } |
| | | |
| | | .attachment-list { |
| | | display: grid; |
| | | grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); |
| | |
| | | align-items: center; |
| | | flex-shrink: 0; |
| | | } |
| | | </style> |
| | | </style> |