优化游戏用户信息展示-表单所属渠道一栏显示错误

This commit is contained in:
2026-04-02 11:39:57 +08:00
parent 81400d2ce1
commit 6b830f4e25
2 changed files with 26 additions and 5 deletions

View File

@@ -77,7 +77,7 @@
/>
<el-form-item :label="t('game.user.game_channel_id')" prop="admin_id">
<el-tree-select
v-model="baTable.form.items!.admin_id"
v-model="adminIdForTree"
class="w100"
clearable
filterable
@@ -104,7 +104,7 @@
<script setup lang="ts">
import type { FormItemRule } from 'element-plus'
import { inject, onMounted, reactive, ref, useTemplateRef, watch } from 'vue'
import { computed, inject, onMounted, reactive, ref, useTemplateRef, watch } from 'vue'
import { useI18n } from 'vue-i18n'
import FormItem from '/@/components/formItem/index.vue'
import { useConfig } from '/@/stores/config'
@@ -137,6 +137,26 @@ const treeProps = {
disabled: 'disabled',
}
/** 与 adminTree 叶子 value字符串一致避免 number 与 string 不一致导致 el-tree-select 只显示原始 ID */
const adminIdForTree = computed<string | undefined>({
get() {
const v = baTable.form.items?.admin_id
if (v === undefined || v === null || v === '') return undefined
return String(v)
},
set(v: string | number | undefined | null) {
if (!baTable.form.items) return
if (v === undefined || v === null || v === '') {
baTable.form.items.admin_id = undefined
return
}
const n = Number(v)
if (Number.isFinite(n)) {
baTable.form.items.admin_id = n
}
},
})
const loadChannelAdminTree = async () => {
const res = await createAxios({
url: '/admin/game.Channel/adminTree',
@@ -163,7 +183,7 @@ const onAdminTreeChange = (val: string | number | null) => {
if (val === null || val === undefined || val === '') {
return
}
const key = typeof val === 'number' ? String(val) : val
const key = typeof val === 'number' ? String(val) : String(val)
const channelId = adminIdToChannelId.value[key]
if (channelId !== undefined) {
baTable.form.items!.game_channel_id = channelId
@@ -178,7 +198,7 @@ watch(
() => baTable.form.items?.admin_id,
(val) => {
if (val === undefined || val === null || val === '') return
onAdminTreeChange(val as any)
onAdminTreeChange(typeof val === 'number' ? val : Number(val))
}
)