|
@@ -42,7 +42,16 @@ function getDictOptions(field: ConstructionDailyReportField) {
|
|
|
|
|
|
|
|
function getRelatedTaskOptions() {
|
|
function getRelatedTaskOptions() {
|
|
|
const relatedTasks = props.model.relatedTasks
|
|
const relatedTasks = props.model.relatedTasks
|
|
|
- if (!relatedTasks) return []
|
|
|
|
|
|
|
+ if (!relatedTasks || Object.keys(relatedTasks).length === 0) {
|
|
|
|
|
+ const taskId = props.model.taskId
|
|
|
|
|
+ if (taskId === null || taskId === undefined || taskId === '') return []
|
|
|
|
|
+ return [
|
|
|
|
|
+ {
|
|
|
|
|
+ label: String(taskId),
|
|
|
|
|
+ value: taskId
|
|
|
|
|
+ }
|
|
|
|
|
+ ]
|
|
|
|
|
+ }
|
|
|
return Object.entries(relatedTasks).map(([key, value]) => ({
|
|
return Object.entries(relatedTasks).map(([key, value]) => ({
|
|
|
label: value,
|
|
label: value,
|
|
|
value: Number.isNaN(Number(key)) ? key : Number(key)
|
|
value: Number.isNaN(Number(key)) ? key : Number(key)
|
|
@@ -56,6 +65,10 @@ function getSelectOptions(field: ConstructionDailyReportField) {
|
|
|
return getDictOptions(field)
|
|
return getDictOptions(field)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+function isSelectClearable(field: ConstructionDailyReportField) {
|
|
|
|
|
+ return field.prop !== 'taskId'
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
function getNumberSuffix(field: ConstructionDailyReportField) {
|
|
function getNumberSuffix(field: ConstructionDailyReportField) {
|
|
|
return field.suffix || ''
|
|
return field.suffix || ''
|
|
|
}
|
|
}
|
|
@@ -84,8 +97,7 @@ function getFieldClass(field: ConstructionDailyReportField) {
|
|
|
:key="`${props.section.title}-${String(field.prop)}-${field.label}`"
|
|
:key="`${props.section.title}-${String(field.prop)}-${field.label}`"
|
|
|
:label="field.label"
|
|
:label="field.label"
|
|
|
:prop="field.prop"
|
|
:prop="field.prop"
|
|
|
- :class="getFieldClass(field)"
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ :class="getFieldClass(field)">
|
|
|
<el-input
|
|
<el-input
|
|
|
v-if="field.type === 'textarea'"
|
|
v-if="field.type === 'textarea'"
|
|
|
size="default"
|
|
size="default"
|
|
@@ -94,20 +106,18 @@ function getFieldClass(field: ConstructionDailyReportField) {
|
|
|
:autosize="{ minRows: 3 }"
|
|
:autosize="{ minRows: 3 }"
|
|
|
resize="none"
|
|
resize="none"
|
|
|
:disabled="isFieldDisabled(field)"
|
|
:disabled="isFieldDisabled(field)"
|
|
|
- @update:model-value="updateField(field.prop, $event)"
|
|
|
|
|
- />
|
|
|
|
|
|
|
+ @update:model-value="updateField(field.prop, $event)" />
|
|
|
<el-select
|
|
<el-select
|
|
|
v-else-if="field.type === 'select'"
|
|
v-else-if="field.type === 'select'"
|
|
|
size="default"
|
|
size="default"
|
|
|
:model-value="props.model[field.prop]"
|
|
:model-value="props.model[field.prop]"
|
|
|
:options="getSelectOptions(field)"
|
|
:options="getSelectOptions(field)"
|
|
|
class="w-full"
|
|
class="w-full"
|
|
|
- clearable
|
|
|
|
|
|
|
+ :clearable="isSelectClearable(field)"
|
|
|
filterable
|
|
filterable
|
|
|
- placeholder="璇烽€夋嫨"
|
|
|
|
|
|
|
+ placeholder="请选择"
|
|
|
:disabled="isFieldDisabled(field)"
|
|
:disabled="isFieldDisabled(field)"
|
|
|
- @update:model-value="updateField(field.prop, $event)"
|
|
|
|
|
- />
|
|
|
|
|
|
|
+ @update:model-value="updateField(field.prop, $event)" />
|
|
|
<el-input-number
|
|
<el-input-number
|
|
|
v-else-if="field.type === 'number' || isNumberField(props.model[field.prop])"
|
|
v-else-if="field.type === 'number' || isNumberField(props.model[field.prop])"
|
|
|
:model-value="getNumberValue(field.prop)"
|
|
:model-value="getNumberValue(field.prop)"
|
|
@@ -117,8 +127,7 @@ function getFieldClass(field: ConstructionDailyReportField) {
|
|
|
size="default"
|
|
size="default"
|
|
|
:precision="field.precision"
|
|
:precision="field.precision"
|
|
|
:disabled="isFieldDisabled(field)"
|
|
:disabled="isFieldDisabled(field)"
|
|
|
- @update:model-value="updateField(field.prop, $event)"
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ @update:model-value="updateField(field.prop, $event)">
|
|
|
<template v-if="getNumberSuffix(field)" #suffix>
|
|
<template v-if="getNumberSuffix(field)" #suffix>
|
|
|
<span class="text-[var(--el-text-color-secondary)]">{{ getNumberSuffix(field) }}</span>
|
|
<span class="text-[var(--el-text-color-secondary)]">{{ getNumberSuffix(field) }}</span>
|
|
|
</template>
|
|
</template>
|
|
@@ -128,8 +137,7 @@ function getFieldClass(field: ConstructionDailyReportField) {
|
|
|
size="default"
|
|
size="default"
|
|
|
:model-value="props.model[field.prop]"
|
|
:model-value="props.model[field.prop]"
|
|
|
:disabled="isFieldDisabled(field)"
|
|
:disabled="isFieldDisabled(field)"
|
|
|
- @update:model-value="updateField(field.prop, $event)"
|
|
|
|
|
- />
|
|
|
|
|
|
|
+ @update:model-value="updateField(field.prop, $event)" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|