workdesktop-ai 1.2.1 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +190 -190
- package/dist/chunks/Path-pIP0JQ0c.mjs +245 -0
- package/dist/chunks/Path-pIP0JQ0c.mjs.map +1 -0
- package/dist/chunks/Station-BTP0SbBg.mjs +818 -0
- package/dist/chunks/Station-BTP0SbBg.mjs.map +1 -0
- package/dist/index.esm.js +2 -2
- package/dist/index.umd.js +19 -19
- package/dist/index.umd.js.map +1 -1
- package/dist/path/index.mjs +1 -1
- package/dist/path/style.css +1 -1
- package/dist/station/index.mjs +1 -1
- package/dist/station/style.css +1 -1
- package/dist/style.css +1 -1
- package/dist/types/src/components/buttons/ApiButton.vue.d.ts +134 -0
- package/dist/types/src/components/buttons/ConfirmButton.vue.d.ts +169 -0
- package/dist/types/src/components/buttons/DialogButton.vue.d.ts +167 -0
- package/dist/types/src/components/buttons/DrawerButton.vue.d.ts +186 -0
- package/dist/types/src/components/buttons/PopconfirmButton.vue.d.ts +317 -0
- package/dist/types/src/components/buttons/PromptButton.vue.d.ts +180 -0
- package/dist/types/src/components/buttons/RouteButton.vue.d.ts +122 -0
- package/dist/types/src/components/buttons/TipsButton.vue.d.ts +66 -0
- package/dist/types/src/components/buttons/useApiAction.d.ts +20 -0
- package/dist/types/src/components/common/props.d.ts +122 -0
- package/dist/types/src/components/containers/Drawer.vue.d.ts +172 -0
- package/dist/types/src/components/containers/Iframe.vue.d.ts +81 -0
- package/dist/types/src/components/containers/containerContext.d.ts +15 -0
- package/dist/types/src/components/containers/useContainerController.d.ts +24 -0
- package/dist/types/src/components/containers/useIframeContainer.d.ts +20 -0
- package/dist/types/src/components/core/Requester.vue.d.ts +41 -0
- package/dist/types/src/components/data/datagrid/DataGrid.vue.d.ts +542 -0
- package/dist/types/src/components/data/datagrid/useColumnSettings.d.ts +62 -0
- package/dist/types/src/components/data/editable-grid/EditableGrid.vue.d.ts +586 -0
- package/dist/types/src/components/data/viewer/Viewer.vue.d.ts +187 -0
- package/dist/types/src/components/form/FormItem.vue.d.ts +62 -0
- package/dist/types/src/components/form/SearchItem.vue.d.ts +62 -0
- package/dist/types/src/components/form/SearchPanel.vue.d.ts +167 -0
- package/dist/types/src/components/form/data-form/DataForm.vue.d.ts +311 -0
- package/dist/types/src/components/index.d.ts +32 -0
- package/dist/types/src/components/inputs/AutoComplete.vue.d.ts +166 -0
- package/dist/types/src/components/inputs/CheckboxList.vue.d.ts +166 -0
- package/dist/types/src/components/inputs/RadioList.vue.d.ts +166 -0
- package/dist/types/src/components/inputs/Select.vue.d.ts +176 -0
- package/dist/types/src/components/inputs/Switch.vue.d.ts +116 -0
- package/dist/types/src/components/inputs/useOptionsLoader.d.ts +32 -0
- package/dist/types/src/components/layout/Station.vue.d.ts +313 -0
- package/dist/types/src/components/layout/StationMenuNode.vue.d.ts +20 -0
- package/dist/types/src/components/layout/types.d.ts +67 -0
- package/dist/types/src/components/styles/Panel.vue.d.ts +94 -0
- package/dist/types/src/components/styles/Path.vue.d.ts +103 -0
- package/dist/types/src/components/styles/Tips.vue.d.ts +60 -0
- package/dist/types/src/components/upload/ImageUpload.vue.d.ts +176 -0
- package/dist/types/src/components/upload/Upload.vue.d.ts +235 -0
- package/dist/types/src/entries/api-button.d.ts +9 -0
- package/dist/types/src/entries/auto-complete.d.ts +9 -0
- package/dist/types/src/entries/checkbox-list.d.ts +9 -0
- package/dist/types/src/entries/components-map.d.ts +8 -0
- package/dist/types/src/entries/confirm-button.d.ts +9 -0
- package/dist/types/src/entries/data-form.d.ts +9 -0
- package/dist/types/src/entries/data-grid.d.ts +9 -0
- package/dist/types/src/entries/dialog-button.d.ts +9 -0
- package/dist/types/src/entries/drawer-button.d.ts +9 -0
- package/dist/types/src/entries/drawer.d.ts +9 -0
- package/dist/types/src/entries/editable-grid.d.ts +9 -0
- package/dist/types/src/entries/form-item.d.ts +9 -0
- package/dist/types/src/entries/iframe.d.ts +9 -0
- package/dist/types/src/entries/image-upload.d.ts +9 -0
- package/dist/types/src/entries/panel.d.ts +9 -0
- package/dist/types/src/entries/path.d.ts +9 -0
- package/dist/types/src/entries/prompt-button.d.ts +9 -0
- package/dist/types/src/entries/radio-list.d.ts +9 -0
- package/dist/types/src/entries/requester.d.ts +9 -0
- package/dist/types/src/entries/route-button.d.ts +9 -0
- package/dist/types/src/entries/search-item.d.ts +9 -0
- package/dist/types/src/entries/search-panel.d.ts +9 -0
- package/dist/types/src/entries/select.d.ts +9 -0
- package/dist/types/src/entries/station.d.ts +9 -0
- package/dist/types/src/entries/switch.d.ts +9 -0
- package/dist/types/src/entries/tips-button.d.ts +9 -0
- package/dist/types/src/entries/tips.d.ts +9 -0
- package/dist/types/src/entries/upload.d.ts +9 -0
- package/dist/types/src/entries/viewer.d.ts +9 -0
- package/dist/types/src/index.d.ts +24 -0
- package/dist/types/src/lib/composables/useConfig.d.ts +19 -0
- package/dist/types/src/lib/composables/useDataGrid.d.ts +69 -0
- package/dist/types/src/lib/composables/useEventBus.d.ts +16 -0
- package/dist/types/src/lib/composables/useGlobalState.d.ts +5 -0
- package/dist/types/src/lib/composables/useRequest.d.ts +42 -0
- package/dist/types/src/lib/configs/default-config.d.ts +6 -0
- package/dist/types/src/lib/core/config.d.ts +28 -0
- package/dist/types/src/lib/core/http.d.ts +100 -0
- package/dist/types/src/lib/core/linkage.d.ts +48 -0
- package/dist/types/src/lib/core/skins/apple.d.ts +3 -0
- package/dist/types/src/lib/core/skins/business.d.ts +3 -0
- package/dist/types/src/lib/core/skins/chinese.d.ts +3 -0
- package/dist/types/src/lib/core/skins/cool.d.ts +3 -0
- package/dist/types/src/lib/core/skins/cyberpunk.d.ts +3 -0
- package/dist/types/src/lib/core/skins/default.d.ts +3 -0
- package/dist/types/src/lib/core/skins/fashion.d.ts +3 -0
- package/dist/types/src/lib/core/skins/flat.d.ts +3 -0
- package/dist/types/src/lib/core/skins/governance.d.ts +3 -0
- package/dist/types/src/lib/core/skins/index.d.ts +15 -0
- package/dist/types/src/lib/core/skins/tech.d.ts +3 -0
- package/dist/types/src/lib/core/skins/types.d.ts +19 -0
- package/dist/types/src/lib/core/station-linkage.d.ts +72 -0
- package/dist/types/src/lib/core/theme.d.ts +11 -0
- package/dist/types/src/lib/core/utils.d.ts +28 -0
- package/dist/types/src/lib/install.d.ts +11 -0
- package/dist/types/src/types/config.d.ts +130 -0
- package/dist/types/src/types/index.d.ts +4 -0
- package/dist/types/vite.config.d.ts +7 -0
- package/package.json +7 -2
- package/dist/chunks/Path-C_oyo6Dg.mjs +0 -200
- package/dist/chunks/Path-C_oyo6Dg.mjs.map +0 -1
- package/dist/chunks/Station-DLV19USa.mjs +0 -780
- package/dist/chunks/Station-DLV19USa.mjs.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,192 +1,192 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
本项目遵循 [Semantic Versioning](https://semver.org/lang/zh-CN/)。
|
|
4
|
-
|
|
5
|
-
## [Unreleased]
|
|
6
|
-
|
|
7
|
-
新增 `WdPath` 导航路径(面包屑)组件(组件总数 28 → 29)与 Station 菜单链联动能力;并将 `WdPath` 与 `WdTips` 一并归入「页面元素」分组(原「辅助组件」分组移除)。
|
|
8
|
-
|
|
9
|
-
### Added
|
|
10
|
-
|
|
11
|
-
- **`WdPath` 导航路径组件**:基于 el-breadcrumb 封装,支持手动与自动双模式。手动模式通过 `items` 填写路径节点(`title` / `icon` / `path`,支持 JSON 字符串);自动模式与 `WdStation` 按 `filter` 分组联动——自动读取当前激活菜单所在路径(分组 → 菜单 → 子菜单),并扫描内容区 `h1~h4` 标题按大纲收敛为当前章节链,标题段**始终跟随当前可视范围内第一个标题**(滚动跟随)。`container` 限定标题扫描范围(默认最近 `.wd-station__content`,无则整页),`show-home` / `home` / `separator` 可配。新增 `docs/src/examples/path.vue` 3 个示例与 `document/components/path_v1.0.md` 文档。
|
|
12
|
-
- **Station 菜单链联动 API**:`station-linkage.ts` 扩展——`WdStation` 新增 `getActiveMenuChain`(激活菜单路径链:分组 → 菜单 → 子菜单),并新增导出 `getStationMenuChain(target, selfFilter?)`(读取目标组 Station 菜单链)、`subscribeStationChange(filter, cb)` / `notifyStationChange(filter)`(菜单/分组切换时通知同组订阅者,供路径自动刷新)。`src/index.ts` 同步导出并补充类型 `MenuChainItem`。
|
|
13
|
-
- **按需入口**:新增 `workdesktop-ai/path` 子路径入口与 `path/style.css`,`package.json` exports 与 vite 多入口/CSS 归档同步。
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
本项目遵循 [Semantic Versioning](https://semver.org/lang/zh-CN/)。
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
新增 `WdPath` 导航路径(面包屑)组件(组件总数 28 → 29)与 Station 菜单链联动能力;并将 `WdPath` 与 `WdTips` 一并归入「页面元素」分组(原「辅助组件」分组移除)。
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- **`WdPath` 导航路径组件**:基于 el-breadcrumb 封装,支持手动与自动双模式。手动模式通过 `items` 填写路径节点(`title` / `icon` / `path`,支持 JSON 字符串);自动模式与 `WdStation` 按 `filter` 分组联动——自动读取当前激活菜单所在路径(分组 → 菜单 → 子菜单),并扫描内容区 `h1~h4` 标题按大纲收敛为当前章节链,标题段**始终跟随当前可视范围内第一个标题**(滚动跟随)。`container` 限定标题扫描范围(默认最近 `.wd-station__content`,无则整页),`show-home` / `home` / `separator` 可配。新增 `docs/src/examples/path.vue` 3 个示例与 `document/components/path_v1.0.md` 文档。
|
|
12
|
+
- **Station 菜单链联动 API**:`station-linkage.ts` 扩展——`WdStation` 新增 `getActiveMenuChain`(激活菜单路径链:分组 → 菜单 → 子菜单),并新增导出 `getStationMenuChain(target, selfFilter?)`(读取目标组 Station 菜单链)、`subscribeStationChange(filter, cb)` / `notifyStationChange(filter)`(菜单/分组切换时通知同组订阅者,供路径自动刷新)。`src/index.ts` 同步导出并补充类型 `MenuChainItem`。
|
|
13
|
+
- **按需入口**:新增 `workdesktop-ai/path` 子路径入口与 `path/style.css`,`package.json` exports 与 vite 多入口/CSS 归档同步。
|
|
14
14
|
- **分组调整**:原 `WdBreadcrumb` 改名为 `WdPath`,与原 `WdTips` 一并归入「页面元素」分组(docs 侧边栏 / Playground 同步);`BreadcrumbItem` 类型更名为 `PathItem`。
|
|
15
|
-
- **`WdStation` 新增 `header-mode="both"`**:顶栏中央形态由 `nav` / `title` 扩为 `nav` / `title` / `both`。`both` =
|
|
15
|
+
- **`WdStation` 新增 `header-mode="both"`**:顶栏中央形态由 `nav` / `title` 扩为 `nav` / `title` / `both`。`both` = 顶部显示分导台 + 左侧**跟随激活分组联动**:点击分导台切换激活分组,左侧联动显示该分组的一级菜单作 title 分组,二级菜单平铺全量展示(仅当二级含三级时才折叠为子菜单),一级为叶子菜单时直接显示为可点击菜单项,适合分组多且需在顶部切分组、侧边同步联动展示该组一级菜单的系统;单分组时分导台自动隐藏退化为普通侧栏。`showNav` 条件由 `headerMode==='nav'` 改为 `headerMode!=='title'`。新增集成用例(both 顶部分导台 + 左侧跟随激活分组 / 二级平铺 / 二级含三级折叠 / 点击分导台联动切换分组 / 单分组退化),全量 vitest 279 用例全绿;Playwright 实测联动语义 19 项断言全过;文档站新增「分导台 + 系统标题并存」demo(第 8 个),api-meta / FAQ / 设计文档 / 组件文档同步。
|
|
16
16
|
- **`WdPath` 新增 `animation` 属性**:设置路径段(内容)变动时的过渡动画——`none`(默认,零视觉变化)/ `fade`(淡入淡出)/ `slide`(横向滑移+淡入,留存段 FLIP 位移),基于 Vue `TransitionGroup` 实现,时长 0.2s,适用于自动模式滚动跟随章节、菜单链切换与手动 `items` 更新。同步修复自动模式下的自激刷新隐患:Path 位于自身标题观察容器内时,MutationObserver 会把动画产生的段节点增删误判为内容变化触发重扫——现过滤全部落在 `.wd-path` 子树内的变动,并对标题扫描结果做结构签名比对(层级+标题未变则不重建列表),彻底切断「动画改 DOM → 重扫 → 重渲染」循环。新增 6 个用例(动画渲染/切换 3 个 + 自激防护 3 个),全量 vitest 278 用例全绿;文档站自动模式示例增加 none/fade/slide 实时切换演示,api-meta 与 `document/components/path_v1.1.md` 同步。
|
|
17
|
-
- **`WdStation` 新增 `show-header-title` 属性**(Boolean,默认 `true`):控制 `headerMode` 非 `nav` 时顶栏中央的系统标题 fallback 是否渲染;需要完全自绘 `#header-center`(如文档站改用 `WdPath` 承载吸顶路径)时传 `false` 关闭,组件默认行为与既有 DOM 结构不变。新增 1 个集成用例;文档站框架已启用(去除顶栏中央重复的「WorkDesktop」标题)。
|
|
18
|
-
|
|
19
|
-
## [1.1.1] - 2026-09-24
|
|
20
|
-
|
|
21
|
-
预设皮肤系统与主题能力增强:`theme.skin` 一键套用 11 套预设皮肤,Element Plus 派生色阶自动生成,组件级 CSS 变量回退链全面打通。
|
|
22
|
-
|
|
23
|
-
### Added
|
|
24
|
-
|
|
25
|
-
- **预设皮肤系统(`theme.skin` 一键套用)**:新增 11 套预设皮肤——`default` / `fashion` / `business` / `tech` / `cyberpunk` / `chinese` / `flat` / `neumorphism` / `gradient` / `cool` / `governance`;通过 `app.use(WorkDesktop, { theme: { skin: 'tech' } })` 或 `setGlobalConfig({ theme: { skin: 'cyberpunk' } })` 一键切换,每套皮肤 = 语义色 + 组件级 CSS 变量整套预设。覆盖优先级 `theme.cssVars > theme.colors > theme.skin`;未传或传入未知皮肤名时 `console.warn` 并回退默认皮肤。主入口新增导出 `SKIN_PRESETS` / `getSkinPreset(key?)` / `listSkins()` 与类型 `SkinPreset` / `SkinName`(`listSkins()` 供设置面板遍历全部预设)。新增 `skins.test.ts` 单测。
|
|
26
|
-
- **Element Plus 派生色阶自动生成**:`resolveTheme` / `applyTheme` 重构——皮肤预设打底,`colors` / `cssVars` 依次覆盖;按 Element Plus 混色公式由语义主色自动推导 `--el-color-{key}-light-3/5/7/8/9` 与 `dark-2` 色阶(`error` 归一为 `danger`),换肤后 EP 组件的 hover / disabled 等派生态同步更新。写入 `:root` 顺序:colors 语义键 → El 派生色阶 → cssVars 精细覆盖。
|
|
27
|
-
- **组件级令牌回退链**:`WdDataGrid` / `WdEditableGrid`(卡片模式)、`WdSearchPanel`、`WdDataForm`(footer)、`WdStation`(aside / header / tabs)、`WdPanel` 等组件样式全部接入组件级 CSS 变量回退链(形如 `var(--wd-panel-bg, var(--wd-bg-color, #fff))`),皮肤可单独定制某个组件而不影响全局;可用令牌见 `src/styles/tokens.css`。
|
|
28
|
-
- **`WdPanel` 新增 `border` prop**(Boolean,默认 `true`):置于嵌套容器内时可传 `:border="false"` 关闭外边框(加 `wd-panel--no-border` 类),配合内容页多容器布局减少边框堆叠。
|
|
29
|
-
- **`ApiButton` 指定 `icon` 时请求期间按钮自动变 loading**:开发人员为按钮设置 `icon`(经 `$attrs` 透传 el-button)后,发起请求期间 el-button 自动进入 loading 加载形式(icon 被 loading 动画替换、按钮加 `is-loading`),严格遵循请求 loading 时机(请求开始置 true、结束置 false);原有的 `buttonLoading`(按钮转圈开关)、`pageLoading`(全局遮罩)与请求事件链路均不受影响。`api-button` 组件页基础用法示例补充带 `icon`(Edit)的「保存配置」按钮演示;新增 `ApiButton.loading.test.ts` 2 个回归用例(请求挂起时按钮 `is-loading` 出现、`button-loading=false` 时不转圈)。
|
|
30
|
-
|
|
31
|
-
### Changed
|
|
32
|
-
|
|
33
|
-
- package.json `files` 新增 `llms.txt`:AI 参考文档随 npm 包一起发布。
|
|
34
|
-
- 文档站:新增「自定义皮肤」示例与皮肤切换入口(可遍历 11 套预设皮肤),api-meta 同步组件级令牌说明。
|
|
35
|
-
|
|
36
|
-
## [1.1.0] - 2026-09-17
|
|
37
|
-
|
|
38
|
-
组件架构整合与能力扩充:容器组件统一为 `WdDrawer`;新增 5 个组件(`WdPopconfirmButton` / `WdStation` / `WdFormItem` / `WdSearchItem` / `WdRequester`),组件总数 24 → 28;新增 27 个 ESM 按需子路径入口。
|
|
39
|
-
|
|
40
|
-
### Changed
|
|
41
|
-
|
|
42
|
-
- `WdDialog` 合并进 `WdDrawer`:容器组件统一为一个,通过 `mode="drawer" | "dialog"` 切换(默认 `drawer`);`size` 同时作用于抽屉尺寸与对话框宽度,`direction` 仅抽屉模式生效,`filter` / `headRefreshDatagrid` / 事件 / 插槽保持不变。容器组件由 `WdDialog` / `WdDrawer` 两个合并为一个 `WdDrawer`(组件总数 -1)。
|
|
43
|
-
- `WdEditableTable`(`<wd-editable-table>`)重命名为 `WdEditableGrid`(`<wd-editable-grid>`),目录 `data/editable-table` → `data/editable-grid`。
|
|
44
|
-
- `WdDrawerButton` 新增 `mode="drawer" | "dialog"`(默认 `drawer`):一个按钮即可打开抽屉或对话框弹层;`WdDialogButton` 保留为 dialog 专用简化版(内部基于 `WdDrawer mode="dialog"`,无 `mode` / `direction`,默认 `type="primary"`,自带 `buttonSize`)。两个按钮属性统一命名(破坏性):`drawerTitle` / `dialogTitle` → `title`,`drawerUrl` / `dialogUrl` → `url`,`drawerData` / `dialogData` → `data`;`size`(弹层宽度)、`direction`(仅抽屉生效)、`filter`、`headRefreshDatagrid`、事件与插槽保持不变。
|
|
45
|
-
- 按钮组文案属性 `text` 改名为 `label`(破坏性):七个按钮组件(`WdApiButton` / `WdConfirmButton` / `WdDialogButton` / `WdPromptButton` / `WdRouteButton` / `WdTipsButton` / `WdDrawerButton`)的「按钮文案」属性由 `text` 统一改为 `label`,释放 `text` 给 el-button 原生「文字按钮」布尔语义(经 `$attrs` 透传,原声明截获已移除,`text` 不再作为 String 文案)。调用方需将 `text="文案"` 迁移为 `label="文案"`;el-button 的其它原生属性(`type` / `size` / `plain` / `round` / `circle` / `link` / `disabled` / `icon` / `native-type` 等)继续经 `$attrs` 透传支持,并在各按钮组件文档 Props 表中按「继承自 el-button」逐条列明(API 请求类按钮因内部已绑定 `:loading` 由 `buttonLoading` 控制,不列 `loading`;Route/Tips/Drawer 类含 `loading`)。
|
|
46
|
-
- **所有按钮组件均已集成语悬停提示**:和 TipsButton 一样,每个按钮组件都支持 `tips`(提示内容)、`tipsType`(主题)、`placement`(位置)三个属性;当 `tips` 非空时自动用 `el-tooltip` 包裹,无提示则不包裹;现在所有按钮都可按需添加悬停提示,无需额外套一层 tooltip。
|
|
47
|
-
- **PromptButton 自定义内容插槽**:新增 `#content` 插槽允许开发者自定义弹窗内容(示例中展示了嵌入 `WdDataForm` 实现多字段输入表单);点击确认后默认发起 API 请求,仅当 API 返回包 `success=true` 时自动关闭弹窗,API 请求失败时不关闭弹窗,允许开发者修改错误后重试。新增 `confirm` 事件(自定义内容模式点击确认触发)。
|
|
48
|
-
- **文档站 mock 改为 HTTP 层(请求真实可见)**:`docs/src/mock` 新增 `createMockHttpHandler`,由 `docs/vite.config.ts` 新增 `wd-mock-server` 插件在 dev server 中间件层拦截 `/mock/*` 返回假数据。开发模式下 `/mock/xxx` 请求**真实发出**(浏览器 Network 面板可见请求 URL、方法、参数与响应),示例数据不受影响;`docs/src/main.ts` 移除 axios adapter 短路(生产构建 `import.meta.env.PROD` 时回退 `createMockAdapter`,保证静态部署后示例仍可演示)。
|
|
49
|
-
|
|
50
|
-
### Removed
|
|
51
|
-
|
|
52
|
-
- 移除 `WdDialog` 容器组件及其导出,请改用 `WdDrawer` 并设置 `mode="dialog"`。
|
|
53
|
-
|
|
54
|
-
### Fixed
|
|
55
|
-
|
|
56
|
-
- 修复 `WdDialog` / `WdDrawer` 容器「外部 `v-model` 置 true 无法打开」:`useContainerController` 原先只在容器挂载时读一次 `modelValue`(`visible = ref(!!props.modelValue)`),不监听后续变化。而 `WdDrawerButton` 采用「先懒挂载容器、`nextTick` 后再置 `panelVisible=true`」的两段式时序,导致打开动作失效——dialog 模式完全不弹层、抽屉/对话框内容无法正确呈现,且关闭后父级状态不回写,二次打开同样失败。现补充双向同步:`watch(modelValue)` 使外部置位即时生效(受控打开),`watch(visible)` 在弹层被 X / 遮罩 / ESC 关闭后回写 `update:modelValue=false`,保证重复开关正常。新增 `useContainerController.test.ts` 4 个回归用例。
|
|
57
|
-
- 修复 `WdStation` 菜单徽章(badge)位置错乱:`el-badge` 继承 `el-menu-item` 的 `line-height:56px` 导致行盒撑满整行、圆点垂直沉底,且水平紧贴标题右侧而非菜单项右侧。现徽章转为 `inline-flex`(消除行盒撑高)+ `margin-left:auto` 靠右 + `align-self:center` 垂直居中;菜单折叠成窄条时隐藏徽章避免溢出。Playwright 坐标级断言 6 项全过。
|
|
58
|
-
- `WdStation` tabs 标签分隔线由 `border-left`(首个标签无左边框、末个标签右侧开口)改为 `border-right`:每个标签默认带右侧边框(含最后一个),tabs 区右端封闭,与右侧下拉按钮区自然分隔。Playwright 回归 24 项全过。
|
|
59
|
-
- 修复 `WdDataGrid` 表格/列表清单模式切换按钮不渲染:按钮渲染条件误用从未渲染的 `$slots.list` 插槽(顶/底工具组及 `hasTools` 判定共 3 处),与文档记载的 `card-item` 插槽不一致,导致开启 `mode-switch` 并提供 `card-item` 后按钮仍不出现、功能按文档契约完全不可达。现统一为 `card-item` 插槽判定。新增 2 个集成回归用例(提供插槽时渲染按钮 + 点击双向切换 + `mode-change` 事件回传;未提供插槽时不渲染按钮)。`WdEditableGrid` 无此问题(其切换按钮无插槽限制)。
|
|
60
|
-
|
|
61
|
-
### Added
|
|
62
|
-
|
|
63
|
-
- **`WdStation` 固定点位全面开放插槽(11 个新增)**:`logo`(side 模式在侧栏顶部、top/none 模式在顶栏左侧,两处共用同一插槽)、`menu-top` / `menu-bottom`(侧栏菜单滚动区上/下方,仅 side 模式)、`header-left` / `header-center` / `header-right`(顶栏左/中/右扩展位,`header-right` 位于工具栏右侧点位之前)、`top-menu-left` / `top-menu-right`(顶部菜单行两侧,仅 top 模式)、`tabs-left` / `tabs-right`(tabs 条两侧,仅 tabs 内容模式)、`footer`(底栏整区)。所有插槽内置默认内容 fallback——未传插槽时各点位保持原渲染,完全向后兼容;`logo` 与 `footer` 为替换型(传入后默认图标+标题 / footer-info+copyright 不再渲染),其余为追加型。`logo` / `menu-top` / `menu-bottom` 透传 `collapsed` 作用域参数,折叠时可切换 mini 形态(如 `v-show="!collapsed"` 隐藏文字)。顶部菜单行改 flex 布局(`el-menu` `flex:1` 占满中间)以容纳左右扩展位。新增 3 个集成用例(点位渲染与位置顺序 / top 模式点位与未传点位默认保持 / collapsed 作用域透传),Playwright 实测 25 项断言全过(含折叠/展开切换复核);文档站新增「固定点位插槽」示例(第 7 个 demo),api-meta slots 表同步补全。
|
|
64
|
-
|
|
65
|
-
- **`WdDataGrid` 分页支持位置指定 `pagerPosition`**:left / center / right,默认 right(与既有行为一致)。缺省时走全局配置 `page.pager.position`(`PagerConfig` 新增 `position` 项,默认 `'right'`),prop 优先于全局配置;有底部工具组(tools/toolbar 置 bottom)时分页仍按指定位置对齐,组自然排布于剩余空间。新增 2 个集成用例(prop 三档 + 全局配置优先级),Playwright 坐标级实测三档布局。
|
|
66
|
-
|
|
67
|
-
- **docs 新增 `WdDataGrid`「表格 / 列表清单模式(卡片)」示例**:静态项目台账数据 + 自定义 `card-item` 卡片(项目名称/状态/编号/负责人/截止日期/进度条/优先级标签)+ `mode-change` 事件 ElMessage 提示,演示开启 `mode-switch` 后工具栏切换按钮在表格视图与列表清单(卡片)视图间切换的完整用法;旧「静态数据」示例移除误导性的 `mode-switch` 声明(未提供 `card-item` 插槽时按钮本不渲染),更名「静态数据 + 动态列」。
|
|
68
|
-
|
|
69
|
-
- **`WdDrawerButton` 新增 `buttonSize`(按钮尺寸)**:DrawerButton 的 `size` 已被「弹层尺寸」占用,el-button 的按钮尺寸无法通过 `size` 透传(被截获)。现新增 `buttonSize` prop 专门控制按钮尺寸(large/default/small),与弹层尺寸解耦;`DialogButton` 已有 `buttonSize`。
|
|
70
|
-
- **修复 datagrid 示例操作列 el-button-group 样式错乱**:原示例把 `<el-button>` 放进 DrawerButton 的 `#button` 内容插槽,渲染出「button 嵌套 button」的非法 HTML,导致 group 内按钮尺寸/样式错乱。已改为 `label` + `type` + `button-size` 属性式写法,group 内两个按钮(详情 + 删除)尺寸一致、圆角衔接、边框合并、分割色全部正确(Playwright 实测验证)。
|
|
71
|
-
|
|
72
|
-
- **全部按钮组件支持 `el-button-group` 连排使用**:8 个 Wd 按钮组件(Api / Confirm / Popconfirm / Prompt / Route / Tips / Drawer / DialogButton)渲染根 DOM 均为 `button.el-button`(含 el-tooltip / el-popconfirm 包裹时 trigger 即按钮),天然命中 Element Plus `.el-button-group > .el-button` 样式——首尾圆角衔接、相邻 `margin-right:-1px` 边框合并、type 分割边框色、hover/active z-index 均与原生 el-button 一致;弹层类按钮(抽屉/对话框/气泡确认/提示)在 group 内点击能力不受影响。`api-button` 组件页新增「按钮组(el-button-group)」示例,混合 5 种按钮演示;`datagrid` 示例的操作列(详情 + 删除)同样使用 group。
|
|
73
|
-
- **`WdPopconfirmButton`(`<wd-popconfirm-button>`)新增组件**:基于 ApiButton 请求逻辑与 el-popconfirm 气泡确认封装——点击按钮弹出气泡确认,用户点击「确定」后自动请求 API(loading、成功/失败提示、`apiSuccess` 事件与声明式 DataGrid 刷新均复用按钮组请求链路)。集成属性:el-button 全属性(`$attrs` 透传,文档列明)、TipsButton 悬停提示(`tips`/`tipsType`/`placement`)、el-popconfirm 常用属性(`title`、`confirmButtonText`、`cancelButtonText`、`confirmButtonType`、`cancelButtonType`、`width`、`trigger`、`popperClass`、`teleported` 等;其中 `icon`→`popIcon`、`disabled`→`popDisabled` 以避免与 el-button 同名透传冲突)。事件:`click`/`confirm`/`cancel`/`show`/`hide` + 请求事件 `apiBefore`/`apiSuccess`/`apiFail`/`apiException`/`apiAfter`。**同时支持悬停提示**:el-tooltip 与 el-popconfirm 采用平级 `virtual-ref` 方案(均以 `virtual-ref` 指向同一按钮,互不嵌套),hover 显示提示、click 弹出确认,两者互不冲突、控制台零警告(嵌套方案会触发 EP `[ElOnlyChild]` / runtime directive 警告且外层弹层事件失效)。按钮组 7→8(文档新增 popconfirm-button 页与示例)。
|
|
74
|
-
|
|
75
|
-
- `WdEditableGrid` 完整集成 DataGrid 全部能力:API/静态双数据源(`api` / `dataSource` / `modelValue`)、分页、工具栏 tools(刷新/尺寸/列设置/模式切换)、高度模式(`height="fix"` / 固定高度 / 自适应)、表格/卡片模式切换、动态列设置(配置列与插槽列合并,localStorage 持久化)、行合并、树形、多选、`rowActions` 只读操作列、SearchPanel / `refreshDataGrid` 联动注册;同时保留可编辑能力:`columns` 配置驱动可编辑列、cell/row 双编辑模式、脏行跟踪、required + 自定义校验、`saveApi` 批量保存、新增/删除行。
|
|
76
|
-
- `WdEditableGrid` 新增单元格级「已修改」样式:进入编辑时记录该行基线,单元格当前值若与基线不一致(判定为用户编辑过)即自动标识(默认单元格最右侧显示红色感叹号小图标 `.is-dirty`,可自定义);改回原值或取消 / 保存成功后样式自动消失。脏状态粒度由整行细化到单元格。标识样式通过 CSS 变量自定义,默认:
|
|
77
|
-
- 显示感叹号图标(`--wd-cell-dirty-show-icon: true`)
|
|
78
|
-
- 图标颜色用警告色 `--wd-cell-dirty-color: var(--el-color-warning)`
|
|
79
|
-
- 单元格底色透明 `--wd-cell-dirty-bg: transparent`
|
|
80
|
-
开发者可覆盖:
|
|
81
|
-
```css
|
|
82
|
-
/* 恢复底色高亮 + 关闭图标 */
|
|
83
|
-
.wd-editable-grid__cell.is-dirty {
|
|
84
|
-
--wd-cell-dirty-show-icon: false;
|
|
85
|
-
--wd-cell-dirty-decoration: none;
|
|
86
|
-
--wd-cell-dirty-bg: rgba(230,162,60,.12);
|
|
87
|
-
}
|
|
88
|
-
```
|
|
89
|
-
- `WdEditableGrid` 新增与 ElForm 完全一致的 `rules` 单元格校验:`columns[].rules` 基于 `async-validator`(与 `el-form` 的 `:rules` 同源),规则不满足的单元格显示约束样式(`.is-error`),默认浅红底色 + 红色内边框;可通过 CSS 变量自定义:
|
|
90
|
-
- `--wd-cell-error-bg`:单元格背景色
|
|
91
|
-
- `--wd-cell-error-border`:边框阴影
|
|
92
|
-
示例:
|
|
93
|
-
```css
|
|
94
|
-
/* 自定义深色错误背景 */
|
|
95
|
-
.wd-editable-grid__cell.is-error {
|
|
96
|
-
--wd-cell-error-bg: rgba(245, 108, 108, 0.3);
|
|
97
|
-
}
|
|
98
|
-
```
|
|
99
|
-
批量保存与行内保存前先校验,失败即中断并 `ElMessage.warning` 提示 + 触发 `validate-fail` 事件(携带 `{ index, row, column, error }`),不发起保存请求。`required` / 自定义 `validator` 兼容沿用。
|
|
100
|
-
- `useColumnSettings` 新增 `initMetas(metas)`,支持以列元信息(而非插槽 vnode)初始化动态列设置,供 columns 配置驱动的组件复用。
|
|
101
|
-
- **`WdStation`(`<wd-station>`)新增组件**:中后台外框架组件,一个组件产出「logo + 分导台 + 菜单 + 内容区 + 工具栏 + 底部信息栏」完整骨架。顶栏中央二选一(`headerMode`):流式块状菜单分组切换条(分导台,点击后左侧菜单整体更换)或标题文案;统一菜单模型——优先 `menuGroups`(分组+菜单树),也接受扁平 `menus` 按 `groupKey||group` 自动聚合归一(无组归「默认」组、分导台自动隐藏),数组/对象属性均接受 JSON 字符串入参(UMD/HTML 场景降级);菜单三态 `menuMode`(side 左侧多层建议两层 / top 顶部 / none 不启用),折叠按钮固定分导台最左侧、侧栏收缩 logo 跟随收窄;内容区 `contentMode`(page 单页 / tabs 标签页,affix 固定标签、关闭跳相邻、`v-model:open-tabs` 受控)× `routerMode`(auto 检测 `$router` 自动走 router push + RouterView,否则降级 HTML 仅抛事件);工具栏 refresh/settings/user/login 四点位经 `toolbarConfig` 各自调 left/right/none;底部 `copyright` + `footerInfo`(`v-model:footer-info`)动态信息。新增 `lib/core/station-linkage` 注册中心,命令式导出 `registerStation` / `setStationFooter(target, info)` / `refreshStationView(target)`(target 语义复用联动心智:true 同 filter 组、字符串定向组)。暴露 `refresh()` / `openTab(item)` / `closeTab(key)`。组件分组新增 layout 布局组,按需子入口新增 `workdesktop-ai/station`,文档站新增「布局组件」分组与 6 个示例,集成测试 21 用例。
|
|
102
|
-
- `WdStation` 顶栏中央区由居中改为**左对齐**:左位/右位按内容宽度收缩,中央区 `flex:1` 占满剩余空间,分导台块状项 / 标题文案从左侧起排。
|
|
103
|
-
- `WdStation` tabs 条样式与交互增强:tabs 条整宽撑满内容列(el-tabs `flex:1`),消除 nav 左/上边框与 header 底线(底线由外层容器统一承担),tab 间保留分隔线;条最右侧新增下拉按钮,内置「关闭当前标签 / 关闭左侧标签 / 关闭其他标签 / 关闭所有标签」批量操作——`affix` 标签永不关闭,无可关对象时对应菜单项禁用,批量关闭逐个触发 `tab-close`,激活标签被关闭后跳转原位置相邻标签。集成测试扩为 22 用例。
|
|
104
|
-
- **`WdFormItem`(`<wd-form-item>`)与 `WdSearchItem`(`<wd-search-item>`)新增组件**:表单项包装器(`label` / `prop` / `tip` / `tipPlacement = 'top'`),`$attrs` 透传 `el-form-item`;`WdSearchItem` 为 SearchPanel 内的语义化别名。均有按需子入口(`form-item` / `search-item`)。
|
|
105
|
-
- **`WdRequester`(`<wd-requester>`)新增组件**:命令式请求器——`v-model` 置 true 触发一次请求后自动回 false(一次性开关语义),新请求自动静默中断旧请求;`method` / `reqOptions` 支持 `page.componentDefault.WdRequester` 全局覆盖;事件 `apiBefore`(可中断)/ `apiSuccess` / `apiFail` / `apiException` / `apiAfter`。
|
|
106
|
-
- **ESM 按需子路径入口(27 个)**:每个组件一个子路径 `workdesktop-ai/<subpath>`(含 types + ESM `.mjs`),14 个有独立样式的组件同步产出 `<subpath>/style.css`(按需引入:`base.css` + 对应组件样式);主入口全量引入方式不变。
|
|
107
|
-
|
|
108
|
-
## [1.0.2] - 2026-09-06
|
|
109
|
-
|
|
110
|
-
文档示例告警治理与 HTML 模板渲染友好性修复。基于文档站 24 个组件页 + 7 个场景页的自动化控制台检测,修复 5 类 Vue / Element Plus 警告。
|
|
111
|
-
|
|
112
|
-
### Fixed
|
|
113
|
-
|
|
114
|
-
**按钮组 text 属性透传报错(影响 5 个按钮)**
|
|
115
|
-
|
|
116
|
-
- `WdApiButton`、`WdConfirmButton`、`WdPromptButton`、`WdRouteButton`、`WdTipsButton` 新增 `text` 文字 prop(String),支持 `text="保存配置"` 属性式写法;默认插槽兜底渲染 `{{ text }}`。
|
|
117
|
-
- 根因:组件未声明 `text` 时,属性式写法的字符串会经 `$attrs` 透传给 `el-button`,而 el-button 的 `text` 是 Boolean 型「文字按钮」开关,触发类型校验警告。声明 prop 后该属性自动从 `$attrs` 移除。统一对齐 `WdDrawerButton` / `WdDialogButton` 已有的 `text` + 插槽范式。
|
|
118
|
-
|
|
119
|
-
**WdImageUpload thumbnailSize 类型**
|
|
120
|
-
|
|
121
|
-
- `thumbnail-size` prop 类型由 `Number` 放宽为 `[Number, String]`,兼容 HTML 属性式字符串写法(如 `thumbnail-size="90"`),`v-bind` CSS 对两种类型均正确产出像素值。
|
|
122
|
-
|
|
123
|
-
**WdDataForm 编辑态首帧控件告警**
|
|
124
|
-
|
|
125
|
-
- 同步数据(`props.data` / 容器 `data`)的回填由 `onMounted` 提前到 setup 阶段(首次渲染前),避免插槽内 `el-switch` / `el-radio` 等控件首帧绑定 `undefined` 触发 Element Plus 校验警告;api 异步详情仍在 `onMounted` 拉取并覆盖。
|
|
126
|
-
|
|
127
|
-
**WdAutoComplete v-loading 指令告警**
|
|
128
|
-
|
|
129
|
-
- `v-loading` 由根节点 `el-autocomplete`(根为 ElTooltip / fragment 非单一原生元素)移至包裹 `<div>`,修复 "Runtime directive used on component with non-element root node at <ElPopper>" 告警。
|
|
130
|
-
|
|
131
|
-
**文档示例**
|
|
132
|
-
|
|
133
|
-
- `select` 远程搜索示例补全 `value-prop="id" text-prop="name"`:mock `/user/list` 返回用户对象主键为 `id`、名称字段为 `name`(非默认 `value` / `text`),缺失映射导致 `el-option` 的 `value` 为 `undefined` 告警。
|
|
134
|
-
|
|
135
|
-
## [1.0.1] - 2026-09-05
|
|
136
|
-
|
|
137
|
-
1.0.0 修订发布。
|
|
138
|
-
|
|
139
|
-
## [1.0.0] - 2026-09-05
|
|
140
|
-
|
|
141
|
-
首个正式发布。
|
|
142
|
-
|
|
143
|
-
### Added
|
|
144
|
-
|
|
145
|
-
**基础设施**
|
|
146
|
-
|
|
147
|
-
- HTTP 客户端 `request` / `http`:axios 封装,统一 `{ code, message, data }` 解封包、`urlPrefix` 前缀、Loading、成功/失败/异常提示、请求全生命周期监听、`create()` 子实例配置覆盖、请求/响应拦截器。
|
|
148
|
-
- 三级配置系统:内置默认配置 → 全局配置(`app.use` 第二参 / `window.workDesktopConfig`)→ 组件 props,deep merge;运行期 API `initConfig / setGlobalConfig / getGlobalConfig / mergeConfig / resetConfig`。
|
|
149
|
-
- 主题系统:语义色令牌(primary/success/warning/danger/info)与自定义 CSS 变量,支持配置对象生成 + CSS 变量覆盖。
|
|
150
|
-
- 声明式联动注册中心(`registerDataGrid / refreshDataGrid / searchDataGrid / resetSearchDataGrid / getDataGrids`):属性式联动(`head-refresh-datagrid` / `head-close-drawer` 等)。
|
|
151
|
-
- 组合式 Hooks:`useRequest`、`useDataGrid`、`useConfig`、`useGlobalConfig`、`useEventBus`、`useGlobalState`。
|
|
152
|
-
- 轻量事件总线 `useEventBus` 支持跨层级事件驱动联动。
|
|
153
|
-
|
|
154
|
-
**数据组件**
|
|
155
|
-
|
|
156
|
-
- `WdDataGrid`:API / 静态双数据源、分页、搜索联动、工具栏(刷新 / 表格大小 / 视图切换)、动态列设置与本地持久化、序号列、多选、树形数据、卡片模式、行操作列场景规范。
|
|
157
|
-
- `WdEditableTable`:单元格级可编辑表格。
|
|
158
|
-
- `WdDataForm`:新增 / 编辑 / 详情回填、校验、提交(含保存并继续)、API 加载、字段白/黑名单、改动检测(`isDirty` / 离开拦截)、提交后联动刷新目标 DataGrid。
|
|
159
|
-
|
|
160
|
-
**按钮组(7)**
|
|
161
|
-
|
|
162
|
-
- `WdApiButton`、`WdConfirmButton`、`WdPromptButton`、`WdRouteButton`、`WdTipsButton`、`WdDrawerButton`、`WdDialogButton`。
|
|
163
|
-
|
|
164
|
-
**容器组(4)**
|
|
165
|
-
|
|
166
|
-
- `WdDialog`、`WdDrawer`、`WdIframe`、`WdSearchPanel`(含头部刷新/重置声明式联动)。
|
|
167
|
-
|
|
168
|
-
**输入选择组(5)**
|
|
169
|
-
|
|
170
|
-
- `WdSelect`、`WdAutoComplete`、`WdCheckboxList`、`WdRadioList`、`WdSwitch`。
|
|
171
|
-
|
|
172
|
-
**上传组(2)**
|
|
173
|
-
|
|
174
|
-
- `WdUpload`(单/多文件、模板下载、错误回显)、`WdImageUpload`(图片预览与裁剪配合 Viewer)。
|
|
175
|
-
|
|
176
|
-
**展示与工具**
|
|
177
|
-
|
|
178
|
-
- `WdPanel`、`WdTips`(长内容悬停提示)、`WdViewer`(图片 / PDF / 文档预览,缩放旋转翻页)。
|
|
179
|
-
|
|
180
|
-
**工程与质量**
|
|
181
|
-
|
|
182
|
-
- Vite 库模式双产物:ESM(`index.esm.js`)+ UMD(`index.umd.js`,全局名 `WorkDesktop`)+ 全量 `.d.ts` + 汇总 `style.css`。
|
|
183
|
-
- TypeScript 全类型导出;文档站(组件示例 + 场景演示 + Playground)、Mock 服务。
|
|
184
|
-
- 测试体系:vitest + @vue/test-utils,基础设施单测 87 用例 + DataGrid/DataForm 集成 19 用例,基础库行覆盖率 98%。
|
|
185
|
-
- 中文内置文案,语义化版本与开源配置(MIT)。
|
|
186
|
-
|
|
187
|
-
[Unreleased]: https://github.com/wordyhuang/workdesktop-ai/compare/v1.1.1...HEAD
|
|
188
|
-
[1.1.1]: https://github.com/wordyhuang/workdesktop-ai/compare/v1.1.0...v1.1.1
|
|
189
|
-
[1.1.0]: https://github.com/wordyhuang/workdesktop-ai/compare/v1.0.2...v1.1.0
|
|
190
|
-
[1.0.2]: https://github.com/wordyhuang/workdesktop-ai/compare/v1.0.1...v1.0.2
|
|
191
|
-
[1.0.1]: https://github.com/wordyhuang/workdesktop-ai/compare/v1.0.0...v1.0.1
|
|
192
|
-
[1.0.0]: https://github.com/wordyhuang/workdesktop-ai/releases/tag/v1.0.0
|
|
17
|
+
- **`WdStation` 新增 `show-header-title` 属性**(Boolean,默认 `true`):控制 `headerMode` 非 `nav` 时顶栏中央的系统标题 fallback 是否渲染;需要完全自绘 `#header-center`(如文档站改用 `WdPath` 承载吸顶路径)时传 `false` 关闭,组件默认行为与既有 DOM 结构不变。新增 1 个集成用例;文档站框架已启用(去除顶栏中央重复的「WorkDesktop」标题)。
|
|
18
|
+
|
|
19
|
+
## [1.1.1] - 2026-09-24
|
|
20
|
+
|
|
21
|
+
预设皮肤系统与主题能力增强:`theme.skin` 一键套用 11 套预设皮肤,Element Plus 派生色阶自动生成,组件级 CSS 变量回退链全面打通。
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
|
|
25
|
+
- **预设皮肤系统(`theme.skin` 一键套用)**:新增 11 套预设皮肤——`default` / `fashion` / `business` / `tech` / `cyberpunk` / `chinese` / `flat` / `neumorphism` / `gradient` / `cool` / `governance`;通过 `app.use(WorkDesktop, { theme: { skin: 'tech' } })` 或 `setGlobalConfig({ theme: { skin: 'cyberpunk' } })` 一键切换,每套皮肤 = 语义色 + 组件级 CSS 变量整套预设。覆盖优先级 `theme.cssVars > theme.colors > theme.skin`;未传或传入未知皮肤名时 `console.warn` 并回退默认皮肤。主入口新增导出 `SKIN_PRESETS` / `getSkinPreset(key?)` / `listSkins()` 与类型 `SkinPreset` / `SkinName`(`listSkins()` 供设置面板遍历全部预设)。新增 `skins.test.ts` 单测。
|
|
26
|
+
- **Element Plus 派生色阶自动生成**:`resolveTheme` / `applyTheme` 重构——皮肤预设打底,`colors` / `cssVars` 依次覆盖;按 Element Plus 混色公式由语义主色自动推导 `--el-color-{key}-light-3/5/7/8/9` 与 `dark-2` 色阶(`error` 归一为 `danger`),换肤后 EP 组件的 hover / disabled 等派生态同步更新。写入 `:root` 顺序:colors 语义键 → El 派生色阶 → cssVars 精细覆盖。
|
|
27
|
+
- **组件级令牌回退链**:`WdDataGrid` / `WdEditableGrid`(卡片模式)、`WdSearchPanel`、`WdDataForm`(footer)、`WdStation`(aside / header / tabs)、`WdPanel` 等组件样式全部接入组件级 CSS 变量回退链(形如 `var(--wd-panel-bg, var(--wd-bg-color, #fff))`),皮肤可单独定制某个组件而不影响全局;可用令牌见 `src/styles/tokens.css`。
|
|
28
|
+
- **`WdPanel` 新增 `border` prop**(Boolean,默认 `true`):置于嵌套容器内时可传 `:border="false"` 关闭外边框(加 `wd-panel--no-border` 类),配合内容页多容器布局减少边框堆叠。
|
|
29
|
+
- **`ApiButton` 指定 `icon` 时请求期间按钮自动变 loading**:开发人员为按钮设置 `icon`(经 `$attrs` 透传 el-button)后,发起请求期间 el-button 自动进入 loading 加载形式(icon 被 loading 动画替换、按钮加 `is-loading`),严格遵循请求 loading 时机(请求开始置 true、结束置 false);原有的 `buttonLoading`(按钮转圈开关)、`pageLoading`(全局遮罩)与请求事件链路均不受影响。`api-button` 组件页基础用法示例补充带 `icon`(Edit)的「保存配置」按钮演示;新增 `ApiButton.loading.test.ts` 2 个回归用例(请求挂起时按钮 `is-loading` 出现、`button-loading=false` 时不转圈)。
|
|
30
|
+
|
|
31
|
+
### Changed
|
|
32
|
+
|
|
33
|
+
- package.json `files` 新增 `llms.txt`:AI 参考文档随 npm 包一起发布。
|
|
34
|
+
- 文档站:新增「自定义皮肤」示例与皮肤切换入口(可遍历 11 套预设皮肤),api-meta 同步组件级令牌说明。
|
|
35
|
+
|
|
36
|
+
## [1.1.0] - 2026-09-17
|
|
37
|
+
|
|
38
|
+
组件架构整合与能力扩充:容器组件统一为 `WdDrawer`;新增 5 个组件(`WdPopconfirmButton` / `WdStation` / `WdFormItem` / `WdSearchItem` / `WdRequester`),组件总数 24 → 28;新增 27 个 ESM 按需子路径入口。
|
|
39
|
+
|
|
40
|
+
### Changed
|
|
41
|
+
|
|
42
|
+
- `WdDialog` 合并进 `WdDrawer`:容器组件统一为一个,通过 `mode="drawer" | "dialog"` 切换(默认 `drawer`);`size` 同时作用于抽屉尺寸与对话框宽度,`direction` 仅抽屉模式生效,`filter` / `headRefreshDatagrid` / 事件 / 插槽保持不变。容器组件由 `WdDialog` / `WdDrawer` 两个合并为一个 `WdDrawer`(组件总数 -1)。
|
|
43
|
+
- `WdEditableTable`(`<wd-editable-table>`)重命名为 `WdEditableGrid`(`<wd-editable-grid>`),目录 `data/editable-table` → `data/editable-grid`。
|
|
44
|
+
- `WdDrawerButton` 新增 `mode="drawer" | "dialog"`(默认 `drawer`):一个按钮即可打开抽屉或对话框弹层;`WdDialogButton` 保留为 dialog 专用简化版(内部基于 `WdDrawer mode="dialog"`,无 `mode` / `direction`,默认 `type="primary"`,自带 `buttonSize`)。两个按钮属性统一命名(破坏性):`drawerTitle` / `dialogTitle` → `title`,`drawerUrl` / `dialogUrl` → `url`,`drawerData` / `dialogData` → `data`;`size`(弹层宽度)、`direction`(仅抽屉生效)、`filter`、`headRefreshDatagrid`、事件与插槽保持不变。
|
|
45
|
+
- 按钮组文案属性 `text` 改名为 `label`(破坏性):七个按钮组件(`WdApiButton` / `WdConfirmButton` / `WdDialogButton` / `WdPromptButton` / `WdRouteButton` / `WdTipsButton` / `WdDrawerButton`)的「按钮文案」属性由 `text` 统一改为 `label`,释放 `text` 给 el-button 原生「文字按钮」布尔语义(经 `$attrs` 透传,原声明截获已移除,`text` 不再作为 String 文案)。调用方需将 `text="文案"` 迁移为 `label="文案"`;el-button 的其它原生属性(`type` / `size` / `plain` / `round` / `circle` / `link` / `disabled` / `icon` / `native-type` 等)继续经 `$attrs` 透传支持,并在各按钮组件文档 Props 表中按「继承自 el-button」逐条列明(API 请求类按钮因内部已绑定 `:loading` 由 `buttonLoading` 控制,不列 `loading`;Route/Tips/Drawer 类含 `loading`)。
|
|
46
|
+
- **所有按钮组件均已集成语悬停提示**:和 TipsButton 一样,每个按钮组件都支持 `tips`(提示内容)、`tipsType`(主题)、`placement`(位置)三个属性;当 `tips` 非空时自动用 `el-tooltip` 包裹,无提示则不包裹;现在所有按钮都可按需添加悬停提示,无需额外套一层 tooltip。
|
|
47
|
+
- **PromptButton 自定义内容插槽**:新增 `#content` 插槽允许开发者自定义弹窗内容(示例中展示了嵌入 `WdDataForm` 实现多字段输入表单);点击确认后默认发起 API 请求,仅当 API 返回包 `success=true` 时自动关闭弹窗,API 请求失败时不关闭弹窗,允许开发者修改错误后重试。新增 `confirm` 事件(自定义内容模式点击确认触发)。
|
|
48
|
+
- **文档站 mock 改为 HTTP 层(请求真实可见)**:`docs/src/mock` 新增 `createMockHttpHandler`,由 `docs/vite.config.ts` 新增 `wd-mock-server` 插件在 dev server 中间件层拦截 `/mock/*` 返回假数据。开发模式下 `/mock/xxx` 请求**真实发出**(浏览器 Network 面板可见请求 URL、方法、参数与响应),示例数据不受影响;`docs/src/main.ts` 移除 axios adapter 短路(生产构建 `import.meta.env.PROD` 时回退 `createMockAdapter`,保证静态部署后示例仍可演示)。
|
|
49
|
+
|
|
50
|
+
### Removed
|
|
51
|
+
|
|
52
|
+
- 移除 `WdDialog` 容器组件及其导出,请改用 `WdDrawer` 并设置 `mode="dialog"`。
|
|
53
|
+
|
|
54
|
+
### Fixed
|
|
55
|
+
|
|
56
|
+
- 修复 `WdDialog` / `WdDrawer` 容器「外部 `v-model` 置 true 无法打开」:`useContainerController` 原先只在容器挂载时读一次 `modelValue`(`visible = ref(!!props.modelValue)`),不监听后续变化。而 `WdDrawerButton` 采用「先懒挂载容器、`nextTick` 后再置 `panelVisible=true`」的两段式时序,导致打开动作失效——dialog 模式完全不弹层、抽屉/对话框内容无法正确呈现,且关闭后父级状态不回写,二次打开同样失败。现补充双向同步:`watch(modelValue)` 使外部置位即时生效(受控打开),`watch(visible)` 在弹层被 X / 遮罩 / ESC 关闭后回写 `update:modelValue=false`,保证重复开关正常。新增 `useContainerController.test.ts` 4 个回归用例。
|
|
57
|
+
- 修复 `WdStation` 菜单徽章(badge)位置错乱:`el-badge` 继承 `el-menu-item` 的 `line-height:56px` 导致行盒撑满整行、圆点垂直沉底,且水平紧贴标题右侧而非菜单项右侧。现徽章转为 `inline-flex`(消除行盒撑高)+ `margin-left:auto` 靠右 + `align-self:center` 垂直居中;菜单折叠成窄条时隐藏徽章避免溢出。Playwright 坐标级断言 6 项全过。
|
|
58
|
+
- `WdStation` tabs 标签分隔线由 `border-left`(首个标签无左边框、末个标签右侧开口)改为 `border-right`:每个标签默认带右侧边框(含最后一个),tabs 区右端封闭,与右侧下拉按钮区自然分隔。Playwright 回归 24 项全过。
|
|
59
|
+
- 修复 `WdDataGrid` 表格/列表清单模式切换按钮不渲染:按钮渲染条件误用从未渲染的 `$slots.list` 插槽(顶/底工具组及 `hasTools` 判定共 3 处),与文档记载的 `card-item` 插槽不一致,导致开启 `mode-switch` 并提供 `card-item` 后按钮仍不出现、功能按文档契约完全不可达。现统一为 `card-item` 插槽判定。新增 2 个集成回归用例(提供插槽时渲染按钮 + 点击双向切换 + `mode-change` 事件回传;未提供插槽时不渲染按钮)。`WdEditableGrid` 无此问题(其切换按钮无插槽限制)。
|
|
60
|
+
|
|
61
|
+
### Added
|
|
62
|
+
|
|
63
|
+
- **`WdStation` 固定点位全面开放插槽(11 个新增)**:`logo`(side 模式在侧栏顶部、top/none 模式在顶栏左侧,两处共用同一插槽)、`menu-top` / `menu-bottom`(侧栏菜单滚动区上/下方,仅 side 模式)、`header-left` / `header-center` / `header-right`(顶栏左/中/右扩展位,`header-right` 位于工具栏右侧点位之前)、`top-menu-left` / `top-menu-right`(顶部菜单行两侧,仅 top 模式)、`tabs-left` / `tabs-right`(tabs 条两侧,仅 tabs 内容模式)、`footer`(底栏整区)。所有插槽内置默认内容 fallback——未传插槽时各点位保持原渲染,完全向后兼容;`logo` 与 `footer` 为替换型(传入后默认图标+标题 / footer-info+copyright 不再渲染),其余为追加型。`logo` / `menu-top` / `menu-bottom` 透传 `collapsed` 作用域参数,折叠时可切换 mini 形态(如 `v-show="!collapsed"` 隐藏文字)。顶部菜单行改 flex 布局(`el-menu` `flex:1` 占满中间)以容纳左右扩展位。新增 3 个集成用例(点位渲染与位置顺序 / top 模式点位与未传点位默认保持 / collapsed 作用域透传),Playwright 实测 25 项断言全过(含折叠/展开切换复核);文档站新增「固定点位插槽」示例(第 7 个 demo),api-meta slots 表同步补全。
|
|
64
|
+
|
|
65
|
+
- **`WdDataGrid` 分页支持位置指定 `pagerPosition`**:left / center / right,默认 right(与既有行为一致)。缺省时走全局配置 `page.pager.position`(`PagerConfig` 新增 `position` 项,默认 `'right'`),prop 优先于全局配置;有底部工具组(tools/toolbar 置 bottom)时分页仍按指定位置对齐,组自然排布于剩余空间。新增 2 个集成用例(prop 三档 + 全局配置优先级),Playwright 坐标级实测三档布局。
|
|
66
|
+
|
|
67
|
+
- **docs 新增 `WdDataGrid`「表格 / 列表清单模式(卡片)」示例**:静态项目台账数据 + 自定义 `card-item` 卡片(项目名称/状态/编号/负责人/截止日期/进度条/优先级标签)+ `mode-change` 事件 ElMessage 提示,演示开启 `mode-switch` 后工具栏切换按钮在表格视图与列表清单(卡片)视图间切换的完整用法;旧「静态数据」示例移除误导性的 `mode-switch` 声明(未提供 `card-item` 插槽时按钮本不渲染),更名「静态数据 + 动态列」。
|
|
68
|
+
|
|
69
|
+
- **`WdDrawerButton` 新增 `buttonSize`(按钮尺寸)**:DrawerButton 的 `size` 已被「弹层尺寸」占用,el-button 的按钮尺寸无法通过 `size` 透传(被截获)。现新增 `buttonSize` prop 专门控制按钮尺寸(large/default/small),与弹层尺寸解耦;`DialogButton` 已有 `buttonSize`。
|
|
70
|
+
- **修复 datagrid 示例操作列 el-button-group 样式错乱**:原示例把 `<el-button>` 放进 DrawerButton 的 `#button` 内容插槽,渲染出「button 嵌套 button」的非法 HTML,导致 group 内按钮尺寸/样式错乱。已改为 `label` + `type` + `button-size` 属性式写法,group 内两个按钮(详情 + 删除)尺寸一致、圆角衔接、边框合并、分割色全部正确(Playwright 实测验证)。
|
|
71
|
+
|
|
72
|
+
- **全部按钮组件支持 `el-button-group` 连排使用**:8 个 Wd 按钮组件(Api / Confirm / Popconfirm / Prompt / Route / Tips / Drawer / DialogButton)渲染根 DOM 均为 `button.el-button`(含 el-tooltip / el-popconfirm 包裹时 trigger 即按钮),天然命中 Element Plus `.el-button-group > .el-button` 样式——首尾圆角衔接、相邻 `margin-right:-1px` 边框合并、type 分割边框色、hover/active z-index 均与原生 el-button 一致;弹层类按钮(抽屉/对话框/气泡确认/提示)在 group 内点击能力不受影响。`api-button` 组件页新增「按钮组(el-button-group)」示例,混合 5 种按钮演示;`datagrid` 示例的操作列(详情 + 删除)同样使用 group。
|
|
73
|
+
- **`WdPopconfirmButton`(`<wd-popconfirm-button>`)新增组件**:基于 ApiButton 请求逻辑与 el-popconfirm 气泡确认封装——点击按钮弹出气泡确认,用户点击「确定」后自动请求 API(loading、成功/失败提示、`apiSuccess` 事件与声明式 DataGrid 刷新均复用按钮组请求链路)。集成属性:el-button 全属性(`$attrs` 透传,文档列明)、TipsButton 悬停提示(`tips`/`tipsType`/`placement`)、el-popconfirm 常用属性(`title`、`confirmButtonText`、`cancelButtonText`、`confirmButtonType`、`cancelButtonType`、`width`、`trigger`、`popperClass`、`teleported` 等;其中 `icon`→`popIcon`、`disabled`→`popDisabled` 以避免与 el-button 同名透传冲突)。事件:`click`/`confirm`/`cancel`/`show`/`hide` + 请求事件 `apiBefore`/`apiSuccess`/`apiFail`/`apiException`/`apiAfter`。**同时支持悬停提示**:el-tooltip 与 el-popconfirm 采用平级 `virtual-ref` 方案(均以 `virtual-ref` 指向同一按钮,互不嵌套),hover 显示提示、click 弹出确认,两者互不冲突、控制台零警告(嵌套方案会触发 EP `[ElOnlyChild]` / runtime directive 警告且外层弹层事件失效)。按钮组 7→8(文档新增 popconfirm-button 页与示例)。
|
|
74
|
+
|
|
75
|
+
- `WdEditableGrid` 完整集成 DataGrid 全部能力:API/静态双数据源(`api` / `dataSource` / `modelValue`)、分页、工具栏 tools(刷新/尺寸/列设置/模式切换)、高度模式(`height="fix"` / 固定高度 / 自适应)、表格/卡片模式切换、动态列设置(配置列与插槽列合并,localStorage 持久化)、行合并、树形、多选、`rowActions` 只读操作列、SearchPanel / `refreshDataGrid` 联动注册;同时保留可编辑能力:`columns` 配置驱动可编辑列、cell/row 双编辑模式、脏行跟踪、required + 自定义校验、`saveApi` 批量保存、新增/删除行。
|
|
76
|
+
- `WdEditableGrid` 新增单元格级「已修改」样式:进入编辑时记录该行基线,单元格当前值若与基线不一致(判定为用户编辑过)即自动标识(默认单元格最右侧显示红色感叹号小图标 `.is-dirty`,可自定义);改回原值或取消 / 保存成功后样式自动消失。脏状态粒度由整行细化到单元格。标识样式通过 CSS 变量自定义,默认:
|
|
77
|
+
- 显示感叹号图标(`--wd-cell-dirty-show-icon: true`)
|
|
78
|
+
- 图标颜色用警告色 `--wd-cell-dirty-color: var(--el-color-warning)`
|
|
79
|
+
- 单元格底色透明 `--wd-cell-dirty-bg: transparent`
|
|
80
|
+
开发者可覆盖:
|
|
81
|
+
```css
|
|
82
|
+
/* 恢复底色高亮 + 关闭图标 */
|
|
83
|
+
.wd-editable-grid__cell.is-dirty {
|
|
84
|
+
--wd-cell-dirty-show-icon: false;
|
|
85
|
+
--wd-cell-dirty-decoration: none;
|
|
86
|
+
--wd-cell-dirty-bg: rgba(230,162,60,.12);
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
- `WdEditableGrid` 新增与 ElForm 完全一致的 `rules` 单元格校验:`columns[].rules` 基于 `async-validator`(与 `el-form` 的 `:rules` 同源),规则不满足的单元格显示约束样式(`.is-error`),默认浅红底色 + 红色内边框;可通过 CSS 变量自定义:
|
|
90
|
+
- `--wd-cell-error-bg`:单元格背景色
|
|
91
|
+
- `--wd-cell-error-border`:边框阴影
|
|
92
|
+
示例:
|
|
93
|
+
```css
|
|
94
|
+
/* 自定义深色错误背景 */
|
|
95
|
+
.wd-editable-grid__cell.is-error {
|
|
96
|
+
--wd-cell-error-bg: rgba(245, 108, 108, 0.3);
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
批量保存与行内保存前先校验,失败即中断并 `ElMessage.warning` 提示 + 触发 `validate-fail` 事件(携带 `{ index, row, column, error }`),不发起保存请求。`required` / 自定义 `validator` 兼容沿用。
|
|
100
|
+
- `useColumnSettings` 新增 `initMetas(metas)`,支持以列元信息(而非插槽 vnode)初始化动态列设置,供 columns 配置驱动的组件复用。
|
|
101
|
+
- **`WdStation`(`<wd-station>`)新增组件**:中后台外框架组件,一个组件产出「logo + 分导台 + 菜单 + 内容区 + 工具栏 + 底部信息栏」完整骨架。顶栏中央二选一(`headerMode`):流式块状菜单分组切换条(分导台,点击后左侧菜单整体更换)或标题文案;统一菜单模型——优先 `menuGroups`(分组+菜单树),也接受扁平 `menus` 按 `groupKey||group` 自动聚合归一(无组归「默认」组、分导台自动隐藏),数组/对象属性均接受 JSON 字符串入参(UMD/HTML 场景降级);菜单三态 `menuMode`(side 左侧多层建议两层 / top 顶部 / none 不启用),折叠按钮固定分导台最左侧、侧栏收缩 logo 跟随收窄;内容区 `contentMode`(page 单页 / tabs 标签页,affix 固定标签、关闭跳相邻、`v-model:open-tabs` 受控)× `routerMode`(auto 检测 `$router` 自动走 router push + RouterView,否则降级 HTML 仅抛事件);工具栏 refresh/settings/user/login 四点位经 `toolbarConfig` 各自调 left/right/none;底部 `copyright` + `footerInfo`(`v-model:footer-info`)动态信息。新增 `lib/core/station-linkage` 注册中心,命令式导出 `registerStation` / `setStationFooter(target, info)` / `refreshStationView(target)`(target 语义复用联动心智:true 同 filter 组、字符串定向组)。暴露 `refresh()` / `openTab(item)` / `closeTab(key)`。组件分组新增 layout 布局组,按需子入口新增 `workdesktop-ai/station`,文档站新增「布局组件」分组与 6 个示例,集成测试 21 用例。
|
|
102
|
+
- `WdStation` 顶栏中央区由居中改为**左对齐**:左位/右位按内容宽度收缩,中央区 `flex:1` 占满剩余空间,分导台块状项 / 标题文案从左侧起排。
|
|
103
|
+
- `WdStation` tabs 条样式与交互增强:tabs 条整宽撑满内容列(el-tabs `flex:1`),消除 nav 左/上边框与 header 底线(底线由外层容器统一承担),tab 间保留分隔线;条最右侧新增下拉按钮,内置「关闭当前标签 / 关闭左侧标签 / 关闭其他标签 / 关闭所有标签」批量操作——`affix` 标签永不关闭,无可关对象时对应菜单项禁用,批量关闭逐个触发 `tab-close`,激活标签被关闭后跳转原位置相邻标签。集成测试扩为 22 用例。
|
|
104
|
+
- **`WdFormItem`(`<wd-form-item>`)与 `WdSearchItem`(`<wd-search-item>`)新增组件**:表单项包装器(`label` / `prop` / `tip` / `tipPlacement = 'top'`),`$attrs` 透传 `el-form-item`;`WdSearchItem` 为 SearchPanel 内的语义化别名。均有按需子入口(`form-item` / `search-item`)。
|
|
105
|
+
- **`WdRequester`(`<wd-requester>`)新增组件**:命令式请求器——`v-model` 置 true 触发一次请求后自动回 false(一次性开关语义),新请求自动静默中断旧请求;`method` / `reqOptions` 支持 `page.componentDefault.WdRequester` 全局覆盖;事件 `apiBefore`(可中断)/ `apiSuccess` / `apiFail` / `apiException` / `apiAfter`。
|
|
106
|
+
- **ESM 按需子路径入口(27 个)**:每个组件一个子路径 `workdesktop-ai/<subpath>`(含 types + ESM `.mjs`),14 个有独立样式的组件同步产出 `<subpath>/style.css`(按需引入:`base.css` + 对应组件样式);主入口全量引入方式不变。
|
|
107
|
+
|
|
108
|
+
## [1.0.2] - 2026-09-06
|
|
109
|
+
|
|
110
|
+
文档示例告警治理与 HTML 模板渲染友好性修复。基于文档站 24 个组件页 + 7 个场景页的自动化控制台检测,修复 5 类 Vue / Element Plus 警告。
|
|
111
|
+
|
|
112
|
+
### Fixed
|
|
113
|
+
|
|
114
|
+
**按钮组 text 属性透传报错(影响 5 个按钮)**
|
|
115
|
+
|
|
116
|
+
- `WdApiButton`、`WdConfirmButton`、`WdPromptButton`、`WdRouteButton`、`WdTipsButton` 新增 `text` 文字 prop(String),支持 `text="保存配置"` 属性式写法;默认插槽兜底渲染 `{{ text }}`。
|
|
117
|
+
- 根因:组件未声明 `text` 时,属性式写法的字符串会经 `$attrs` 透传给 `el-button`,而 el-button 的 `text` 是 Boolean 型「文字按钮」开关,触发类型校验警告。声明 prop 后该属性自动从 `$attrs` 移除。统一对齐 `WdDrawerButton` / `WdDialogButton` 已有的 `text` + 插槽范式。
|
|
118
|
+
|
|
119
|
+
**WdImageUpload thumbnailSize 类型**
|
|
120
|
+
|
|
121
|
+
- `thumbnail-size` prop 类型由 `Number` 放宽为 `[Number, String]`,兼容 HTML 属性式字符串写法(如 `thumbnail-size="90"`),`v-bind` CSS 对两种类型均正确产出像素值。
|
|
122
|
+
|
|
123
|
+
**WdDataForm 编辑态首帧控件告警**
|
|
124
|
+
|
|
125
|
+
- 同步数据(`props.data` / 容器 `data`)的回填由 `onMounted` 提前到 setup 阶段(首次渲染前),避免插槽内 `el-switch` / `el-radio` 等控件首帧绑定 `undefined` 触发 Element Plus 校验警告;api 异步详情仍在 `onMounted` 拉取并覆盖。
|
|
126
|
+
|
|
127
|
+
**WdAutoComplete v-loading 指令告警**
|
|
128
|
+
|
|
129
|
+
- `v-loading` 由根节点 `el-autocomplete`(根为 ElTooltip / fragment 非单一原生元素)移至包裹 `<div>`,修复 "Runtime directive used on component with non-element root node at <ElPopper>" 告警。
|
|
130
|
+
|
|
131
|
+
**文档示例**
|
|
132
|
+
|
|
133
|
+
- `select` 远程搜索示例补全 `value-prop="id" text-prop="name"`:mock `/user/list` 返回用户对象主键为 `id`、名称字段为 `name`(非默认 `value` / `text`),缺失映射导致 `el-option` 的 `value` 为 `undefined` 告警。
|
|
134
|
+
|
|
135
|
+
## [1.0.1] - 2026-09-05
|
|
136
|
+
|
|
137
|
+
1.0.0 修订发布。
|
|
138
|
+
|
|
139
|
+
## [1.0.0] - 2026-09-05
|
|
140
|
+
|
|
141
|
+
首个正式发布。
|
|
142
|
+
|
|
143
|
+
### Added
|
|
144
|
+
|
|
145
|
+
**基础设施**
|
|
146
|
+
|
|
147
|
+
- HTTP 客户端 `request` / `http`:axios 封装,统一 `{ code, message, data }` 解封包、`urlPrefix` 前缀、Loading、成功/失败/异常提示、请求全生命周期监听、`create()` 子实例配置覆盖、请求/响应拦截器。
|
|
148
|
+
- 三级配置系统:内置默认配置 → 全局配置(`app.use` 第二参 / `window.workDesktopConfig`)→ 组件 props,deep merge;运行期 API `initConfig / setGlobalConfig / getGlobalConfig / mergeConfig / resetConfig`。
|
|
149
|
+
- 主题系统:语义色令牌(primary/success/warning/danger/info)与自定义 CSS 变量,支持配置对象生成 + CSS 变量覆盖。
|
|
150
|
+
- 声明式联动注册中心(`registerDataGrid / refreshDataGrid / searchDataGrid / resetSearchDataGrid / getDataGrids`):属性式联动(`head-refresh-datagrid` / `head-close-drawer` 等)。
|
|
151
|
+
- 组合式 Hooks:`useRequest`、`useDataGrid`、`useConfig`、`useGlobalConfig`、`useEventBus`、`useGlobalState`。
|
|
152
|
+
- 轻量事件总线 `useEventBus` 支持跨层级事件驱动联动。
|
|
153
|
+
|
|
154
|
+
**数据组件**
|
|
155
|
+
|
|
156
|
+
- `WdDataGrid`:API / 静态双数据源、分页、搜索联动、工具栏(刷新 / 表格大小 / 视图切换)、动态列设置与本地持久化、序号列、多选、树形数据、卡片模式、行操作列场景规范。
|
|
157
|
+
- `WdEditableTable`:单元格级可编辑表格。
|
|
158
|
+
- `WdDataForm`:新增 / 编辑 / 详情回填、校验、提交(含保存并继续)、API 加载、字段白/黑名单、改动检测(`isDirty` / 离开拦截)、提交后联动刷新目标 DataGrid。
|
|
159
|
+
|
|
160
|
+
**按钮组(7)**
|
|
161
|
+
|
|
162
|
+
- `WdApiButton`、`WdConfirmButton`、`WdPromptButton`、`WdRouteButton`、`WdTipsButton`、`WdDrawerButton`、`WdDialogButton`。
|
|
163
|
+
|
|
164
|
+
**容器组(4)**
|
|
165
|
+
|
|
166
|
+
- `WdDialog`、`WdDrawer`、`WdIframe`、`WdSearchPanel`(含头部刷新/重置声明式联动)。
|
|
167
|
+
|
|
168
|
+
**输入选择组(5)**
|
|
169
|
+
|
|
170
|
+
- `WdSelect`、`WdAutoComplete`、`WdCheckboxList`、`WdRadioList`、`WdSwitch`。
|
|
171
|
+
|
|
172
|
+
**上传组(2)**
|
|
173
|
+
|
|
174
|
+
- `WdUpload`(单/多文件、模板下载、错误回显)、`WdImageUpload`(图片预览与裁剪配合 Viewer)。
|
|
175
|
+
|
|
176
|
+
**展示与工具**
|
|
177
|
+
|
|
178
|
+
- `WdPanel`、`WdTips`(长内容悬停提示)、`WdViewer`(图片 / PDF / 文档预览,缩放旋转翻页)。
|
|
179
|
+
|
|
180
|
+
**工程与质量**
|
|
181
|
+
|
|
182
|
+
- Vite 库模式双产物:ESM(`index.esm.js`)+ UMD(`index.umd.js`,全局名 `WorkDesktop`)+ 全量 `.d.ts` + 汇总 `style.css`。
|
|
183
|
+
- TypeScript 全类型导出;文档站(组件示例 + 场景演示 + Playground)、Mock 服务。
|
|
184
|
+
- 测试体系:vitest + @vue/test-utils,基础设施单测 87 用例 + DataGrid/DataForm 集成 19 用例,基础库行覆盖率 98%。
|
|
185
|
+
- 中文内置文案,语义化版本与开源配置(MIT)。
|
|
186
|
+
|
|
187
|
+
[Unreleased]: https://github.com/wordyhuang/workdesktop-ai/compare/v1.1.1...HEAD
|
|
188
|
+
[1.1.1]: https://github.com/wordyhuang/workdesktop-ai/compare/v1.1.0...v1.1.1
|
|
189
|
+
[1.1.0]: https://github.com/wordyhuang/workdesktop-ai/compare/v1.0.2...v1.1.0
|
|
190
|
+
[1.0.2]: https://github.com/wordyhuang/workdesktop-ai/compare/v1.0.1...v1.0.2
|
|
191
|
+
[1.0.1]: https://github.com/wordyhuang/workdesktop-ai/compare/v1.0.0...v1.0.1
|
|
192
|
+
[1.0.0]: https://github.com/wordyhuang/workdesktop-ai/releases/tag/v1.0.0
|