| | |
| | | |
| | | <!-- 报工审批详情 --> |
| | | <template v-else-if="row.businessType === 19"> |
| | | <div v-if="formResolved.fields.length" class="report-detail"> |
| | | <div v-if="formResolved.fields.length || reportParamList.length" class="report-detail"> |
| | | <el-divider content-position="left">报工填报内容</el-divider> |
| | | <el-descriptions :column="2" border> |
| | | <el-descriptions v-if="formResolved.fields.length" :column="2" border> |
| | | <el-descriptions-item |
| | | v-for="field in formResolved.fields" |
| | | v-for="field in visibleFormFields" |
| | | :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> |
| | |
| | | }); |
| | | |
| | | const formResolved = computed(() => resolveInstanceFormFields(props.row)); |
| | | const visibleFormFields = computed(() => |
| | | (formResolved.value.fields || []).filter(field => { |
| | | const key = String(field?.key || "").toLowerCase(); |
| | | const label = String(field?.label || "").trim(); |
| | | if (["approvalstatus", "auditstatus", "status", "workhours", "schedulingnum"].includes(key)) return false; |
| | | if (["审批状态", "审核状态", "工时", "排产数量"].includes(label)) return false; |
| | | return true; |
| | | }) |
| | | ); |
| | | |
| | | |
| | | // 是否为特殊审批类型(采购、发货、报价) |
| | |
| | | // 详情数据(直接使用传入的 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)); |