完善合同气瓶绑定引导

This commit is contained in:
czl231
2026-08-14 20:10:09 +08:00
parent 14263416e0
commit 2cff8fb942
7 changed files with 82 additions and 7 deletions

View File

@@ -1,6 +1,6 @@
<!--
功能渲染标准资源的新建编辑和业务动作字段控件
版本v1.3.0
版本v1.4.0
-->
<template>
<div class="field-grid">
@@ -114,7 +114,17 @@
}}
</a-option>
<template #empty>
<div class="relation-empty">{{ relationEmptyText(field) }}</div>
<div class="relation-empty">
<span>{{ relationEmptyText(field) }}</span>
<a-button
v-if="field.relationEmptyAction && !relationRequiresParent(field)"
type="text"
size="mini"
@click.stop="navigateRelationEmptyAction(field)"
>
{{ field.relationEmptyAction.label }}
</a-button>
</div>
</template>
</a-select>
<div
@@ -137,6 +147,7 @@
<script setup lang="ts">
import { computed } from 'vue';
import { useRouter } from 'vue-router';
import { relationOptionLabel } from '@/api/resource-display';
import { dynamicRelationResource, type ResourceField } from '@/api/resources';
import type { ResourceRow } from '@/api/resource-page-rules';
@@ -181,6 +192,7 @@ const emit = defineEmits<{
'preview-attachment': [];
}>();
const model = defineModel<Record<string, any>>({ required: true });
const router = useRouter();
const disabledSet = computed(() => new Set(props.disabledKeys));
function isWide(field: ResourceField) {
@@ -267,6 +279,12 @@ function relationEmptyText(field: ResourceField) {
return field.relationEmptyText ?? '暂无数据';
}
/** 从空候选引导直接进入对应管理页面,避免管理员只能猜测前置操作。 */
function navigateRelationEmptyAction(field: ResourceField) {
if (!field.relationEmptyAction) return;
void router.push({ name: field.relationEmptyAction.routeName });
}
/** 为历史未知编码补充只读选项,避免下拉框退回显示原始值。 */
function selectOptions(field: ResourceField) {
const options = [...(field.options ?? [])];
@@ -309,6 +327,15 @@ function selectOptions(field: ResourceField) {
display: grid;
gap: 6px;
}
.relation-empty {
display: grid;
justify-items: center;
gap: 4px;
padding: 8px 12px;
color: var(--color-text-3);
text-align: center;
white-space: normal;
}
.relation-identity {
display: flex;
gap: 8px;