diff --git a/code/fms/fms-vue/src/views/system/user/UserPowerDrawer.vue b/code/fms/fms-vue/src/views/system/user/UserPowerDrawer.vue index 190b6448..76c410cb 100644 --- a/code/fms/fms-vue/src/views/system/user/UserPowerDrawer.vue +++ b/code/fms/fms-vue/src/views/system/user/UserPowerDrawer.vue @@ -6,15 +6,15 @@ * s_user_field_power 字段权限(按模块 × 字段的 查看 / 编辑 / 查询 / 导出) * s_user_data_power 数据范围(按模块 × 操作的范围类型与条件) * - * 布局:右侧 Drawer,头部只有一行页签(不渲染标题),关闭按钮由 ui/Drawer 固定在最右端。 + * 布局:右侧 Drawer。头部是常规形态 —— 左侧账号标识(给谁配)、右侧关闭按钮; + * 三个页签在内容区顶部,与模块管理页的配置区同一形态(页签只管导航, + * 内容由下方 v-show 面板承载,切换页签不销毁已挂载的面板)。 * 账号级的「全授权 / 全禁用」在功能权限面板自己的工具栏里(见 UserPowerPanel), * 不占头部,也不会在切到其它页签时仍显示。 - * 页签用 nav-only(Tabs 只管导航),内容由下方 v-show 面板承载 —— 与模块管理的 - * 配置区同一形态,切换页签不销毁已挂载的面板。 * * 当前「功能权限」已接入;字段权限与数据范围仍为空面板。 */ -import { ref, watch } from 'vue' +import { computed, ref, watch } from 'vue' import { Button, Drawer, Message, Tabs } from '@/components/ui' import { loadDataApi, saveObjectApi } from '@/services/api' import UserPowerPanel from './UserPowerPanel.vue' @@ -27,6 +27,21 @@ const props = defineProps({ const emit = defineEmits(['update:open']) +/* ---------- 头部账号标识 ---------- */ +/** 当前账号:用户名 + 编码(名称缺失时只用编码) */ +const userLabel = computed(() => { + const name = String(props.user?.b_name ?? '').trim() + const id = String(props.user?.b_id ?? '').trim() + if (name && id) return `${name}(${id})` + return name || id || '' +}) + +/** + * 抽屉标题。列表行操作点进来后,抽屉里再没有第二条账号线索(页签与面板都只有模块、 + * 菜单、权限点),关掉抽屉才能核对是给谁配的权限,所以把账号提到头部。 + */ +const drawerTitle = computed(() => (userLabel.value ? `分配权限 · ${userLabel.value}` : '分配权限')) + /* ---------- 页签 ---------- */ const activeTab = ref('power') @@ -198,15 +213,15 @@ async function save() {