|
|
|
|
@ -14,9 +14,9 @@
|
|
|
|
|
<template v-if="section.fields && Array.isArray(section.fields)">
|
|
|
|
|
<table class="info-table">
|
|
|
|
|
<tr
|
|
|
|
|
v-for="field in getVisibleFields(section)"
|
|
|
|
|
:key="field.key || field.element_id"
|
|
|
|
|
>
|
|
|
|
|
v-for="field in getVisibleFields(section)"
|
|
|
|
|
:key="field.key || field.element_id"
|
|
|
|
|
>
|
|
|
|
|
<td class="label">{{ field.label || field.name || '-' }}</td>
|
|
|
|
|
<td class="value">
|
|
|
|
|
<template v-if="getFieldValue(field)">
|
|
|
|
|
@ -48,13 +48,13 @@
|
|
|
|
|
disabled
|
|
|
|
|
class="checklist-checkbox"
|
|
|
|
|
>
|
|
|
|
|
{{ `${idx + 1}、${opt.label}` }}
|
|
|
|
|
{{ `${idx + 1}、${opt.label}` }}
|
|
|
|
|
</el-checkbox>
|
|
|
|
|
<span
|
|
|
|
|
v-if="getChecklistRemark(field, opt.value)"
|
|
|
|
|
class="checklist-remark-text"
|
|
|
|
|
>
|
|
|
|
|
{{ getChecklistRemark(field, opt.value) }}
|
|
|
|
|
<span
|
|
|
|
|
v-if="getChecklistRemark(field, opt.value)"
|
|
|
|
|
class="checklist-remark-text"
|
|
|
|
|
>
|
|
|
|
|
{{ getChecklistRemark(field, opt.value) }}
|
|
|
|
|
</span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
@ -88,43 +88,43 @@
|
|
|
|
|
v-for="(row, rowIdx) in getDetailTableData(field)"
|
|
|
|
|
:key="`row_${rowIdx}`"
|
|
|
|
|
class="detail-table-card"
|
|
|
|
|
>
|
|
|
|
|
>
|
|
|
|
|
<div class="detail-table-card__header">
|
|
|
|
|
<span class="detail-table-card__index">第 {{ rowIdx + 1 }} 条</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="detail-table-card__body">
|
|
|
|
|
<template v-if="getDetailTableFields(field).length">
|
|
|
|
|
<template v-if="getDetailTableFields(field).length">
|
|
|
|
|
<div
|
|
|
|
|
v-for="col in getDetailTableFields(field)"
|
|
|
|
|
:key="col.field_key"
|
|
|
|
|
v-for="col in getDetailTableFields(field)"
|
|
|
|
|
:key="col.field_key"
|
|
|
|
|
v-show="!isEmptyDetailTableValue(row[col.field_key])"
|
|
|
|
|
class="detail-table-card__field"
|
|
|
|
|
>
|
|
|
|
|
>
|
|
|
|
|
<span class="detail-table-card__label">{{ col.field_name }}</span>
|
|
|
|
|
<span class="detail-table-card__value">
|
|
|
|
|
<span v-if="col.field_type === 'department'">
|
|
|
|
|
{{ getDepartmentName(row[col.field_key]) }}
|
|
|
|
|
</span>
|
|
|
|
|
<span v-else-if="col.field_type === 'user'">
|
|
|
|
|
{{ getUserName(row[col.field_key]) }}
|
|
|
|
|
</span>
|
|
|
|
|
<span v-else>
|
|
|
|
|
{{ row[col.field_key] ?? '-' }}
|
|
|
|
|
</span>
|
|
|
|
|
<span v-if="col.field_type === 'department'">
|
|
|
|
|
{{ getDepartmentName(row[col.field_key]) }}
|
|
|
|
|
</span>
|
|
|
|
|
<span v-else-if="col.field_type === 'user'">
|
|
|
|
|
{{ getUserName(row[col.field_key]) }}
|
|
|
|
|
</span>
|
|
|
|
|
<span v-else>
|
|
|
|
|
{{ row[col.field_key] ?? '-' }}
|
|
|
|
|
</span>
|
|
|
|
|
</span>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-else>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-else>
|
|
|
|
|
<div
|
|
|
|
|
v-for="k in getAutoKeysForDetailTable(field)"
|
|
|
|
|
:key="k"
|
|
|
|
|
v-for="k in getAutoKeysForDetailTable(field)"
|
|
|
|
|
:key="k"
|
|
|
|
|
v-show="!isEmptyDetailTableValue(row[k])"
|
|
|
|
|
class="detail-table-card__field"
|
|
|
|
|
>
|
|
|
|
|
<span class="detail-table-card__label">{{ k }}</span>
|
|
|
|
|
<span class="detail-table-card__value">{{ row[k] ?? '-' }}</span>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</template>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
@ -189,7 +189,7 @@
|
|
|
|
|
</el-link>
|
|
|
|
|
<span v-if="idx < getFileItems(field).length - 1" class="file-separator">,</span>
|
|
|
|
|
</template>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<span v-else class="muted">-</span>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- 默认显示 -->
|
|
|
|
|
@ -214,26 +214,26 @@
|
|
|
|
|
<h6 class="round-title">第 {{ round.round }} 轮支付</h6>
|
|
|
|
|
<table class="info-table">
|
|
|
|
|
<tr
|
|
|
|
|
v-for="field in getVisibleRoundFields(round)"
|
|
|
|
|
:key="field.key || field.element_id"
|
|
|
|
|
>
|
|
|
|
|
v-for="field in getVisibleRoundFields(round)"
|
|
|
|
|
:key="field.key || field.element_id"
|
|
|
|
|
>
|
|
|
|
|
<td class="label">{{ field.label || field.name || '-' }}</td>
|
|
|
|
|
<td class="value">
|
|
|
|
|
<template v-if="getFieldValue(field)">
|
|
|
|
|
<span v-if="field.element_type === 'text' || field.element_type === 'textarea'">
|
|
|
|
|
{{ getFieldValue(field) }}
|
|
|
|
|
</span>
|
|
|
|
|
<span v-else-if="field.element_type === 'number'">
|
|
|
|
|
{{ formatNumber(getFieldValue(field)) }}
|
|
|
|
|
</span>
|
|
|
|
|
<span v-else-if="field.element_type === 'date'">
|
|
|
|
|
{{ formatDate(getFieldValue(field)) }}
|
|
|
|
|
</span>
|
|
|
|
|
<span v-else>
|
|
|
|
|
{{ formatDefaultValue(getFieldValue(field)) }}
|
|
|
|
|
</span>
|
|
|
|
|
</template>
|
|
|
|
|
<span v-else class="empty-value">-</span>
|
|
|
|
|
<template v-if="getFieldValue(field)">
|
|
|
|
|
<span v-if="field.element_type === 'text' || field.element_type === 'textarea'">
|
|
|
|
|
{{ getFieldValue(field) }}
|
|
|
|
|
</span>
|
|
|
|
|
<span v-else-if="field.element_type === 'number'">
|
|
|
|
|
{{ formatNumber(getFieldValue(field)) }}
|
|
|
|
|
</span>
|
|
|
|
|
<span v-else-if="field.element_type === 'date'">
|
|
|
|
|
{{ formatDate(getFieldValue(field)) }}
|
|
|
|
|
</span>
|
|
|
|
|
<span v-else>
|
|
|
|
|
{{ formatDefaultValue(getFieldValue(field)) }}
|
|
|
|
|
</span>
|
|
|
|
|
</template>
|
|
|
|
|
<span v-else class="empty-value">-</span>
|
|
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
@ -535,7 +535,7 @@ const getFlowItems = (field) => {
|
|
|
|
|
const bindings = Array.isArray(props.flowBindings) ? props.flowBindings : []
|
|
|
|
|
|
|
|
|
|
let flowIds = []
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 1) 优先按 element_id / field_key 精确匹配(可能多条)
|
|
|
|
|
const direct = bindings.filter(b => {
|
|
|
|
|
if (!b) return false
|
|
|
|
|
|