diff --git a/code/fms/fms-vue/src/components/ui/dropdown/DropdownItem.vue b/code/fms/fms-vue/src/components/ui/dropdown/DropdownItem.vue
index 7df2861d..68459813 100644
--- a/code/fms/fms-vue/src/components/ui/dropdown/DropdownItem.vue
+++ b/code/fms/fms-vue/src/components/ui/dropdown/DropdownItem.vue
@@ -6,7 +6,7 @@
* 从而复用现有的键盘导航 / 高亮 / 子菜单体系。
*
* 支持的属性与 items 数组项一一对应:
- * key 标识,点击时回传 @click 的 { key, item }
+ * itemKey 标识,点击时回传 @click 的 { key, item }
* icon 图标组件(Lucide)
* label 菜单文本(也可直接用默认插槽写富内容,由父级读取 children)
* danger 危险项(红色)
@@ -15,7 +15,7 @@
* onClick 项自带点击回调,命中时优先执行
*/
defineProps({
- key: { type: [String, Number], default: undefined },
+ itemKey: { type: [String, Number], default: undefined },
icon: { type: [Object, Function], default: undefined },
label: { type: String, default: '' },
danger: { type: Boolean, default: false },
diff --git a/code/fms/fms-vue/src/components/ui/dropdown/dropdown.vue b/code/fms/fms-vue/src/components/ui/dropdown/dropdown.vue
index 201be165..dbaa366b 100644
--- a/code/fms/fms-vue/src/components/ui/dropdown/dropdown.vue
+++ b/code/fms/fms-vue/src/components/ui/dropdown/dropdown.vue
@@ -50,7 +50,7 @@ function collectDropdownItems() {
continue
}
const item = {}
- if (p.key != null) item.key = p.key
+ if (p.itemKey != null) item.key = p.itemKey
if (p.icon != null) item.icon = p.icon
if (p.label != null) item.label = p.label
if (p.danger) item.danger = true
@@ -188,13 +188,7 @@ provide('dropdownActiveIndex', activeIndex)
-
diff --git a/code/fms/fms-vue/src/components/ui/notification/notification-container.vue b/code/fms/fms-vue/src/components/ui/notification/notification-container.vue
index e2a2b1fd..2990cb61 100644
--- a/code/fms/fms-vue/src/components/ui/notification/notification-container.vue
+++ b/code/fms/fms-vue/src/components/ui/notification/notification-container.vue
@@ -5,9 +5,15 @@ import { notificationState } from './notification-store.js'
/* 9 个方位:分组容器始终存在,仅通知项进出,保证 enter/leave 动画稳定触发 */
const PLACEMENTS = [
- 'top-left', 'top-center', 'top-right',
- 'center-left', 'center', 'center-right',
- 'bottom-left', 'bottom-center', 'bottom-right',
+ 'top-left',
+ 'top-center',
+ 'top-right',
+ 'center-left',
+ 'center',
+ 'center-right',
+ 'bottom-left',
+ 'bottom-center',
+ 'bottom-right',
]
/* ---------- 关闭某条 ---------- */
diff --git a/code/fms/fms-vue/src/components/ui/pagination/pagination.vue b/code/fms/fms-vue/src/components/ui/pagination/pagination.vue
index a7d8aaf9..ef1808a6 100644
--- a/code/fms/fms-vue/src/components/ui/pagination/pagination.vue
+++ b/code/fms/fms-vue/src/components/ui/pagination/pagination.vue
@@ -48,9 +48,7 @@ const pageSizeValue = computed(() =>
// 每页条数选项统一转为数字,保证与 pageSize 值类型匹配
const sizeOptions = computed(() => props.pageSizeOptions.map((item) => Number(item)))
-const totalPages = computed(() =>
- Math.max(1, Math.ceil((props.total || 0) / pageSizeValue.value)),
-)
+const totalPages = computed(() => Math.max(1, Math.ceil((props.total || 0) / pageSizeValue.value)))
// 显示层当前页:受控取 props,非受控取内部值;越界时收敛到 [1, totalPages],
// 受控模式不写回 props,保持受控语义由调用方同步
diff --git a/code/fms/fms-vue/src/components/ui/popover/popover.vue b/code/fms/fms-vue/src/components/ui/popover/popover.vue
index 431a77a6..5534e554 100644
--- a/code/fms/fms-vue/src/components/ui/popover/popover.vue
+++ b/code/fms/fms-vue/src/components/ui/popover/popover.vue
@@ -157,7 +157,14 @@ function onContextMenu(event) {
event.preventDefault()
const { clientX, clientY } = event
// 右键在鼠标位置弹出:构造零尺寸锚点矩形,computePosition 的 flip/shift 会兜底防溢出
- pointAnchor = { left: clientX, top: clientY, width: 0, height: 0, right: clientX, bottom: clientY }
+ pointAnchor = {
+ left: clientX,
+ top: clientY,
+ width: 0,
+ height: 0,
+ right: clientX,
+ bottom: clientY,
+ }
if (isOpen.value) {
// 已打开时右键到新位置,仅重新定位不重置状态
updatePosition()
diff --git a/code/fms/fms-vue/src/components/ui/spin/spin.vue b/code/fms/fms-vue/src/components/ui/spin/spin.vue
index 481f9faa..38958287 100644
--- a/code/fms/fms-vue/src/components/ui/spin/spin.vue
+++ b/code/fms/fms-vue/src/components/ui/spin/spin.vue
@@ -48,9 +48,7 @@ function hasDefaultSlot() {
return !!(slots.default && slots.default().length > 0)
}
-const hasDescription = computed(
- () => !!props.description || !!slots.description,
-)
+const hasDescription = computed(() => !!props.description || !!slots.description)
diff --git a/code/fms/fms-vue/src/components/ui/switch/index.scss b/code/fms/fms-vue/src/components/ui/switch/index.scss
index 6a77a81a..9d4308a6 100644
--- a/code/fms/fms-vue/src/components/ui/switch/index.scss
+++ b/code/fms/fms-vue/src/components/ui/switch/index.scss
@@ -45,8 +45,8 @@
.switch-checked .switch-thumb {
transform: translateX(
calc(
- var(--fms-switch-width) - var(--fms-switch-thumb-size) -
- var(--fms-switch-thumb-offset) - var(--fms-switch-thumb-offset)
+ var(--fms-switch-width) - var(--fms-switch-thumb-size) - var(--fms-switch-thumb-offset) -
+ var(--fms-switch-thumb-offset)
)
);
}
diff --git a/code/fms/fms-vue/src/components/ui/tabs/tabs.vue b/code/fms/fms-vue/src/components/ui/tabs/tabs.vue
index 04968fc1..c2760824 100644
--- a/code/fms/fms-vue/src/components/ui/tabs/tabs.vue
+++ b/code/fms/fms-vue/src/components/ui/tabs/tabs.vue
@@ -81,8 +81,7 @@ const slotPanes = computed(() => {
const paneProps = node.props ?? {}
const { content, label } = extractChildren(node.children)
// key 解析顺序:tabKey prop > vnode.key > 出现顺序索引
- const rawKey =
- paneProps.tabKey != null ? paneProps.tabKey : node.key != null ? node.key : index
+ const rawKey = paneProps.tabKey != null ? paneProps.tabKey : node.key != null ? node.key : index
panes.push({
key: String(rawKey),
rawKey,
diff --git a/code/fms/fms-vue/src/components/ui/tag/tag.vue b/code/fms/fms-vue/src/components/ui/tag/tag.vue
index 28a6a7a8..a5f9caeb 100644
--- a/code/fms/fms-vue/src/components/ui/tag/tag.vue
+++ b/code/fms/fms-vue/src/components/ui/tag/tag.vue
@@ -14,8 +14,7 @@ const props = defineProps({
/** @type {TagVariant} */
type: String,
default: 'default',
- validator: (value) =>
- ['default', 'secondary', 'outline', 'danger', 'ghost'].includes(value),
+ validator: (value) => ['default', 'secondary', 'outline', 'danger', 'ghost'].includes(value),
},
/** 是否可关闭:显示关闭按钮,点击后触发 close 并隐藏自身 */
closable: { type: Boolean, default: false },
diff --git a/code/fms/fms-vue/src/layouts/DefaultLayout.vue b/code/fms/fms-vue/src/layouts/DefaultLayout.vue
index ab9bb3ad..7a5b207f 100644
--- a/code/fms/fms-vue/src/layouts/DefaultLayout.vue
+++ b/code/fms/fms-vue/src/layouts/DefaultLayout.vue
@@ -1,5 +1,5 @@
@@ -8,7 +19,13 @@ import { LayoutDashboard } from '@lucide/vue'
工作台
- 布局壳与业务页面正在搭建中,敬请期待。
+ 布局壳与业务页面已就绪,点击下方按钮进入详情页验证多参数缓存。
+
+
+
+
+
+