djm-ui 0.0.0-stage → 0.67.2
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 +715 -0
- package/LICENSE +21 -0
- package/README.md +183 -2
- package/dist/djm-ui.cjs +15521 -0
- package/dist/djm-ui.cjs.map +7 -0
- package/dist/djm-ui.css +11817 -0
- package/dist/djm-ui.esm.js +15371 -0
- package/dist/djm-ui.esm.js.map +7 -0
- package/dist/djm-ui.esm.min.js +4059 -0
- package/dist/djm-ui.min.cjs +4059 -0
- package/dist/djm-ui.min.css +2 -0
- package/dist/djm-ui.umd.js +15331 -0
- package/dist/djm-ui.umd.min.js +4059 -0
- package/package.json +90 -4
- package/src/components/affix/index.js +98 -0
- package/src/components/alert/index.js +43 -0
- package/src/components/anchor/index.js +107 -0
- package/src/components/approval-flow/index.js +96 -0
- package/src/components/attachment-list/index.js +155 -0
- package/src/components/autocomplete/index.js +187 -0
- package/src/components/avatar/group.js +22 -0
- package/src/components/avatar/index.js +47 -0
- package/src/components/backtop/index.js +82 -0
- package/src/components/badge/index.js +43 -0
- package/src/components/batch-bar/index.js +52 -0
- package/src/components/breadcrumb/index.js +45 -0
- package/src/components/button/index.js +45 -0
- package/src/components/calendar/index.js +180 -0
- package/src/components/card/index.js +24 -0
- package/src/components/carousel/index.js +136 -0
- package/src/components/cascader/index.js +157 -0
- package/src/components/chat/index.js +157 -0
- package/src/components/checkbox/index.js +109 -0
- package/src/components/collapse/index.js +55 -0
- package/src/components/color-picker/index.js +133 -0
- package/src/components/command-palette/index.js +182 -0
- package/src/components/comment/index.js +149 -0
- package/src/components/config-provider/index.js +41 -0
- package/src/components/confirm-dialog/index.js +66 -0
- package/src/components/context-menu/index.js +148 -0
- package/src/components/date-picker/index.js +448 -0
- package/src/components/date-time-picker/index.js +376 -0
- package/src/components/descriptions/index.js +47 -0
- package/src/components/diff/index.js +172 -0
- package/src/components/divider/index.js +25 -0
- package/src/components/drawer/index.js +131 -0
- package/src/components/dropdown/index.js +236 -0
- package/src/components/editable-table/index.js +264 -0
- package/src/components/empty/index.js +31 -0
- package/src/components/field-list/index.js +221 -0
- package/src/components/filter-tags/index.js +33 -0
- package/src/components/float-button/index.js +97 -0
- package/src/components/floating-window/index.js +171 -0
- package/src/components/form/index.js +130 -0
- package/src/components/form-item/index.js +71 -0
- package/src/components/gantt/index.js +192 -0
- package/src/components/grid/col.js +21 -0
- package/src/components/grid/row.js +16 -0
- package/src/components/icon/index.js +87 -0
- package/src/components/image/index.js +110 -0
- package/src/components/import-wizard/index.js +306 -0
- package/src/components/input/index.js +117 -0
- package/src/components/input-number/index.js +106 -0
- package/src/components/input-tag/index.js +117 -0
- package/src/components/kanban/index.js +223 -0
- package/src/components/layout/content.js +5 -0
- package/src/components/layout/footer.js +5 -0
- package/src/components/layout/header.js +5 -0
- package/src/components/layout/index.js +15 -0
- package/src/components/layout/sider.js +13 -0
- package/src/components/list/index.js +31 -0
- package/src/components/media-picker/index.js +206 -0
- package/src/components/mentions/index.js +193 -0
- package/src/components/menu/index.js +248 -0
- package/src/components/message/index.js +56 -0
- package/src/components/modal/index.js +132 -0
- package/src/components/notification/index.js +140 -0
- package/src/components/org-chart/index.js +190 -0
- package/src/components/org-picker/index.js +414 -0
- package/src/components/page-header/index.js +24 -0
- package/src/components/page-tabs/index.js +80 -0
- package/src/components/pagination/index.js +124 -0
- package/src/components/password/index.js +92 -0
- package/src/components/popconfirm/index.js +161 -0
- package/src/components/popover/index.js +142 -0
- package/src/components/print/index.js +101 -0
- package/src/components/progress/index.js +37 -0
- package/src/components/qrcode/index.js +75 -0
- package/src/components/query-filter/index.js +171 -0
- package/src/components/radio/index.js +83 -0
- package/src/components/rate/index.js +84 -0
- package/src/components/result/index.js +52 -0
- package/src/components/rich-editor/index.js +235 -0
- package/src/components/schedule/index.js +287 -0
- package/src/components/schema-form/index.js +222 -0
- package/src/components/segmented/index.js +40 -0
- package/src/components/select/index.js +614 -0
- package/src/components/signature/index.js +243 -0
- package/src/components/skeleton/index.js +35 -0
- package/src/components/slider/index.js +166 -0
- package/src/components/space/index.js +32 -0
- package/src/components/spin/index.js +42 -0
- package/src/components/splitter/index.js +110 -0
- package/src/components/statistic/index.js +41 -0
- package/src/components/status/index.js +31 -0
- package/src/components/steps/index.js +49 -0
- package/src/components/switch/index.js +40 -0
- package/src/components/table/index.js +847 -0
- package/src/components/tabs/index.js +136 -0
- package/src/components/tag/index.js +56 -0
- package/src/components/time-picker/index.js +165 -0
- package/src/components/timeline/index.js +24 -0
- package/src/components/tooltip/index.js +129 -0
- package/src/components/tour/index.js +144 -0
- package/src/components/transfer/index.js +145 -0
- package/src/components/tree/index.js +485 -0
- package/src/components/tree-select/index.js +406 -0
- package/src/components/tree-table/index.js +318 -0
- package/src/components/upload/index.js +407 -0
- package/src/components/virtual-list/index.js +178 -0
- package/src/components/watermark/index.js +82 -0
- package/src/index.js +356 -0
- package/src/locale/en-US.js +254 -0
- package/src/locale/index.js +32 -0
- package/src/locale/zh-CN.js +254 -0
- package/src/styles/base.css +101 -0
- package/src/styles/components/account.css +230 -0
- package/src/styles/components/affix.css +11 -0
- package/src/styles/components/anchor.css +56 -0
- package/src/styles/components/approval-flow.css +196 -0
- package/src/styles/components/attachment-list.css +172 -0
- package/src/styles/components/autocomplete.css +42 -0
- package/src/styles/components/avatar.css +42 -0
- package/src/styles/components/backtop.css +33 -0
- package/src/styles/components/badge.css +72 -0
- package/src/styles/components/batch-bar.css +51 -0
- package/src/styles/components/breadcrumb.css +74 -0
- package/src/styles/components/button.css +237 -0
- package/src/styles/components/calendar.css +99 -0
- package/src/styles/components/card.css +74 -0
- package/src/styles/components/carousel.css +119 -0
- package/src/styles/components/cascader.css +118 -0
- package/src/styles/components/charts.css +173 -0
- package/src/styles/components/chat.css +162 -0
- package/src/styles/components/color-picker.css +93 -0
- package/src/styles/components/command-palette.css +97 -0
- package/src/styles/components/comment.css +164 -0
- package/src/styles/components/composite.css +353 -0
- package/src/styles/components/console.css +288 -0
- package/src/styles/components/context-menu.css +98 -0
- package/src/styles/components/dashboard.css +245 -0
- package/src/styles/components/date-picker.css +258 -0
- package/src/styles/components/date-time-picker.css +239 -0
- package/src/styles/components/demo.css +432 -0
- package/src/styles/components/descriptions.css +45 -0
- package/src/styles/components/diff.css +178 -0
- package/src/styles/components/divider.css +32 -0
- package/src/styles/components/drawer.css +82 -0
- package/src/styles/components/dropdown.css +97 -0
- package/src/styles/components/feedback.css +270 -0
- package/src/styles/components/field-list.css +132 -0
- package/src/styles/components/filter-tags.css +60 -0
- package/src/styles/components/float-button.css +80 -0
- package/src/styles/components/form.css +688 -0
- package/src/styles/components/frame.css +193 -0
- package/src/styles/components/gantt.css +241 -0
- package/src/styles/components/grid.css +161 -0
- package/src/styles/components/image.css +107 -0
- package/src/styles/components/import-wizard.css +262 -0
- package/src/styles/components/input-number.css +58 -0
- package/src/styles/components/input-tag.css +73 -0
- package/src/styles/components/kanban.css +181 -0
- package/src/styles/components/layout-container.css +59 -0
- package/src/styles/components/layout.css +765 -0
- package/src/styles/components/list.css +73 -0
- package/src/styles/components/lookup.css +142 -0
- package/src/styles/components/media-picker.css +154 -0
- package/src/styles/components/mentions.css +50 -0
- package/src/styles/components/menu.css +200 -0
- package/src/styles/components/modal.css +97 -0
- package/src/styles/components/motion.css +62 -0
- package/src/styles/components/notification.css +179 -0
- package/src/styles/components/org-chart.css +131 -0
- package/src/styles/components/org-picker.css +341 -0
- package/src/styles/components/overlay.css +234 -0
- package/src/styles/components/page-tabs.css +101 -0
- package/src/styles/components/pagination.css +113 -0
- package/src/styles/components/panel.css +99 -0
- package/src/styles/components/password.css +74 -0
- package/src/styles/components/permission.css +118 -0
- package/src/styles/components/placeholder.css +90 -0
- package/src/styles/components/popconfirm.css +51 -0
- package/src/styles/components/popover.css +134 -0
- package/src/styles/components/print.css +20 -0
- package/src/styles/components/qrcode.css +23 -0
- package/src/styles/components/query-filter.css +82 -0
- package/src/styles/components/rate.css +41 -0
- package/src/styles/components/responsive.css +599 -0
- package/src/styles/components/result.css +62 -0
- package/src/styles/components/rich-editor.css +216 -0
- package/src/styles/components/schedule.css +243 -0
- package/src/styles/components/schema-form.css +18 -0
- package/src/styles/components/signature.css +46 -0
- package/src/styles/components/skin.css +108 -0
- package/src/styles/components/slider.css +77 -0
- package/src/styles/components/sort.css +93 -0
- package/src/styles/components/space.css +35 -0
- package/src/styles/components/spin.css +44 -0
- package/src/styles/components/splitter.css +66 -0
- package/src/styles/components/statistic.css +53 -0
- package/src/styles/components/steps.css +123 -0
- package/src/styles/components/table.css +852 -0
- package/src/styles/components/tabs.css +192 -0
- package/src/styles/components/tag.css +74 -0
- package/src/styles/components/template.css +409 -0
- package/src/styles/components/time-picker.css +100 -0
- package/src/styles/components/timeline.css +78 -0
- package/src/styles/components/toast.css +52 -0
- package/src/styles/components/tooltip.css +60 -0
- package/src/styles/components/tour.css +86 -0
- package/src/styles/components/transfer.css +104 -0
- package/src/styles/components/tree-table.css +78 -0
- package/src/styles/components/tree.css +568 -0
- package/src/styles/components/upload.css +274 -0
- package/src/styles/components/virtual-list.css +56 -0
- package/src/styles/components/watermark.css +13 -0
- package/src/styles/index.css +109 -0
- package/src/styles/theme-dark.css +78 -0
- package/src/styles/tokens.css +110 -0
- package/src/theme/index.js +186 -0
- package/src/utils/export.js +14 -0
- package/src/utils/focus-trap.js +45 -0
- package/src/utils/panel.js +73 -0
- package/src/utils/permission.js +52 -0
- package/src/utils/row-move.js +26 -0
- package/src/utils/sanitize-html.js +92 -0
- package/src/utils/scroll-lock.js +39 -0
- package/src/utils/text-diff.js +62 -0
- package/src/utils/tree-move.js +51 -0
- package/types/index.d.ts +1714 -0
- package/types/usage-check.ts +50 -0
- package/vendor/qrcode.esm.js +8 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,715 @@
|
|
|
1
|
+
# 更新日志
|
|
2
|
+
|
|
3
|
+
## 0.67.2
|
|
4
|
+
|
|
5
|
+
- 数据字典页左侧类型列表改为独立列表:去掉与面板标题重复的表头,名称与条目数同行、编码跟随下一行,选中态用内缩圆角底色
|
|
6
|
+
- 面板标题里的条目数改为弱化的辅助文字,行内操作只保留编辑与删除
|
|
7
|
+
|
|
8
|
+
## 0.67.1
|
|
9
|
+
|
|
10
|
+
- 内容区去掉 `max-width: 1560px` 限制,2K / 超宽屏(1920、2560)下表格、工作台、表单铺满可用宽度,两侧不再留大片空白;136 项单测、143 页无障碍、64 张视觉基线均无变化
|
|
11
|
+
|
|
12
|
+
## 0.67.0
|
|
13
|
+
|
|
14
|
+
从「下载后直接做 CMS / OA 后台」的角度做了一轮组件级复查,补齐窄屏与接入细节:
|
|
15
|
+
|
|
16
|
+
- 文档示例容器允许收缩,320 / 390 宽下 QueryFilter、审批流、附件列表、通知、ConfigProvider、批量操作条不再被内容撑破
|
|
17
|
+
- DatePicker 范围选择在 760px 以下自动只显示一个月;面板超出视口时向上翻转并在内部滚动
|
|
18
|
+
- DateTimePicker 面板宽度改为跟随视口,窄屏时分秒列挪到日历下方
|
|
19
|
+
- Schedule 事件块高度不够时不再渲染时间行,标题不再被裁掉
|
|
20
|
+
- 批量操作条在 420px 以下换行
|
|
21
|
+
- 触屏设备(≤960px 或 pointer: coarse)扩大图标按钮的透明点击区,文字操作按钮、单选多选、开关、评分补足高度,滑块拖块加大
|
|
22
|
+
- 登录模板在 760px 以下隐藏左右分栏的品牌区,表单区可滚动,卡片居中不被裁切
|
|
23
|
+
- 应用外壳与文档站高度改用 100dvh,兼容手机浏览器地址栏
|
|
24
|
+
- 新增 `djm-ui/components/grid/row`、`djm-ui/components/grid/col` 子路径导出;README 补「响应式」章节与栅格按需引入说明
|
|
25
|
+
- 修正 SchemaForm、ConfigProvider 文档示例里按钮误用 `tone`(应为 `variant`)
|
|
26
|
+
|
|
27
|
+
## 0.66.0
|
|
28
|
+
|
|
29
|
+
从移动端视角做了一轮全盘适配,按 320 / 390 / 600 / 768 / 900 五档宽度逐页巡检,应用与文档站横向溢出全部归零:
|
|
30
|
+
|
|
31
|
+
- 栅格在 760px 以下一律单列,半列宽度的控件不再被挤到屏幕外
|
|
32
|
+
- 左右布局表单的标签挪到控件上方,行内筛选表单竖排成一字段一行
|
|
33
|
+
- 动态字段列表一行一个字段,序号与标签不再挤在一起;字段内的日期区间在 420px 以下上下排
|
|
34
|
+
- 手机端取消「只滚表格」的铺满骨架,改整页自然滚动,筛选栏不会把表格压得只剩表头
|
|
35
|
+
- 表格在手机上收紧单元格内边距、表头字号下调,能多露出一列信息
|
|
36
|
+
- 620px 以下顶栏搜索收成图标,点开后铺满顶栏;420px 以下隐藏皮肤按钮、压缩分页按钮
|
|
37
|
+
- 面板头部、分段控件、表格工具栏允许换行;工作台统计卡手机两列、超小屏单列
|
|
38
|
+
- 个人资料与修改密码的左右两栏在平板以下改成上下堆叠
|
|
39
|
+
- 文档站 API 表包一层局部横向滚动容器,不再把整页撑宽;内容区窄屏收紧留白、代码块缩小内边距
|
|
40
|
+
- 周日程、打印示例表、登录记录表加局部横向滚动容器,列宽不足时自己滚而不是压扁
|
|
41
|
+
|
|
42
|
+
## 0.65.3
|
|
43
|
+
|
|
44
|
+
- 顶栏搜索框改成 `type="search"` 并关闭自动填充,不再弹浏览器里保存的账号密码
|
|
45
|
+
- 示例应用与文档示例的搜索框、表单项统一加 `autocomplete="off"`,避免带入本地姓名、手机号、邮箱
|
|
46
|
+
- 组件库里的搜索类输入一并关闭自动填充:Select、TreeSelect、AutoComplete、OrgPicker、InputTag、Transfer、CommandPalette、Pagination 跳页、InputNumber、ColorPicker、FieldList
|
|
47
|
+
- 登录页保留正常密码管理行为:账号 `username`、密码 `current-password`
|
|
48
|
+
|
|
49
|
+
## 0.65.2
|
|
50
|
+
|
|
51
|
+
- 移动端汉堡菜单从顶栏右侧挪到最左侧,符合常见导航习惯,右上角只保留主题、皮肤、通知与账号
|
|
52
|
+
- 菜单按钮补 `aria-label` 与 `aria-expanded`,抽屉开合状态可被读屏感知
|
|
53
|
+
|
|
54
|
+
## 0.65.1
|
|
55
|
+
|
|
56
|
+
再清理一轮只弹提示的按钮:
|
|
57
|
+
|
|
58
|
+
- 工作台「导出日报」写入共享导出队列,导出记录页能看到这条任务,生成完成后状态同步更新
|
|
59
|
+
- 表格示例、固定列示例的「导出」改为真实导出:分别按当前筛选结果、当前可见列生成 CSV
|
|
60
|
+
- 新增 `utils/export.js`,操作日志、表格示例共用同一套 CSV 导出实现
|
|
61
|
+
|
|
62
|
+
## 0.65.0
|
|
63
|
+
|
|
64
|
+
把示例应用里原本只弹「开发中」的入口补成能真正操作的页面:
|
|
65
|
+
|
|
66
|
+
- 新增「操作日志」页:按模块 / 结果 / 时间段筛选,分页、详情抽屉,并可按当前筛选结果导出 CSV;菜单挂在「系统配置」下,工作台快捷入口直达
|
|
67
|
+
- 用户管理「导入」接上导入向导:本地解析 CSV、表头自动映射目标字段,逐行校验手机号与重复账号,失败行给出原因
|
|
68
|
+
- 角色与权限补齐三处:新增角色(名称、标识校验)、权限模板(4 套预设按角色应用)、查看成员列表;分配权限会记住上次保存的勾选
|
|
69
|
+
- 个人资料「更换头像」改为选择本地图片并预览(限 2MB);登录模板「忘记密码」补上找回表单、验证码倒计时与重置流程
|
|
70
|
+
- 顶栏全局搜索改为真实检索:按菜单名与层级路径过滤,↑↓ 选择、回车跳转、Esc 收起,⌘K 聚焦
|
|
71
|
+
- 工作台快捷入口「系统设置」改名为「参数设置」并直达参数设置页
|
|
72
|
+
|
|
73
|
+
## 0.64.2
|
|
74
|
+
|
|
75
|
+
修顶部菜单在窄屏挤成一团、压到右侧图标上的问题:
|
|
76
|
+
|
|
77
|
+
- 顶部菜单布局在 ≤1320px 收起横向菜单,改用汉堡按钮滑出侧栏抽屉,点遮罩收起
|
|
78
|
+
- 横向菜单条目与所在项同宽,空间不足时文字收成省略号,不再溢出压住右侧图标
|
|
79
|
+
- ≤1400px 隐藏「示例环境」标签,把宽度让给菜单
|
|
80
|
+
|
|
81
|
+
## 0.64.1
|
|
82
|
+
|
|
83
|
+
修掉示例应用与文档站里下拉、日期等浮层被后面的卡片盖住、切断的问题:
|
|
84
|
+
|
|
85
|
+
- 示例卡片、文档示例区、卡片、面板四类容器不再用 `overflow: hidden` 裁剪,头尾背景改由自身圆角贴合,卡片里的下拉、日期、级联面板不再被切边
|
|
86
|
+
- `DjmTreeSelect` 面板改为按视口计算的 fixed 定位,空间不足自动向上展开,左右收进视口,不再受滚动容器影响
|
|
87
|
+
- `DjmTooltip` 同样改为 fixed 定位,贴边时自动翻到对侧,表格、卡片里的提示不再被裁剪
|
|
88
|
+
- 移除示例页误用的 `.djm-popover-panel` 类,避免给卡片建层叠上下文导致互相遮挡;色彩、联想面板的 z-index 统一到 `--djm-z-popper`
|
|
89
|
+
|
|
90
|
+
## 0.64.0
|
|
91
|
+
|
|
92
|
+
补齐示例应用缺失的组件演示,101 个组件现在都能在示例应用里点到:
|
|
93
|
+
|
|
94
|
+
- 新增「业务表单」页:SchemaForm、QueryFilter + FilterTags、FieldList、DateTimePicker、ConfigProvider
|
|
95
|
+
- 新增「业务数据」页:TreeTable、EditableTable、VirtualList、BatchBar、Diff、ImportWizard、MediaPicker
|
|
96
|
+
- 新增「组织与流程」页:OrgPicker、OrgChart、ApprovalFlow、Print、PageTabs
|
|
97
|
+
- 新增「协作与沟通」页:Comment、Signature、AttachmentList、Notification、Chat
|
|
98
|
+
- 新增「计划与排期」页:Kanban、Schedule、Gantt
|
|
99
|
+
- 示例应用菜单在「界面组件」下新增「业务组件」分组;文档站侧边栏「示例应用」补 5 条入口
|
|
100
|
+
- 页面数据全部为本地常量,交互可实际操作(校验、拖拽、导入、发送、签名等)
|
|
101
|
+
|
|
102
|
+
## 0.63.2
|
|
103
|
+
|
|
104
|
+
- 顶部标签支持右键菜单:刷新、关闭、关闭其他、关闭全部,操作作用于右键的那一页;「关闭其他」会保留首页与该页,当前页被关掉时自动切过去
|
|
105
|
+
- 登录统计页统计卡片区与面板边框的留白从 12/14px 提到 16/18px,卡片不再贴边
|
|
106
|
+
|
|
107
|
+
## 0.63.1
|
|
108
|
+
|
|
109
|
+
- 示例应用记住已打开的标签页:打开多个页面后刷新不再只剩当前页,标签顺序与首屏一致,当前页由地址栏 hash 决定
|
|
110
|
+
- 持久化只存标签 key,标题与图标按菜单重建;菜单里已删除的页面会在加载时自动丢弃,无法解析的历史数据直接忽略
|
|
111
|
+
- 视觉回归脚本在每张截图前清空 localStorage,避免持久化标签导致截图相互影响
|
|
112
|
+
|
|
113
|
+
## 0.63.0
|
|
114
|
+
|
|
115
|
+
- `DjmTreeSelect` 新增 `nodeKey` / `labelKey`,后端返回 `deptId` / `deptName` 这类结构时不用再转换;选项异步到达时补一次默认展开
|
|
116
|
+
- 语义色取值统一:`DjmTag`、`DjmStatus`、`DjmResult` 均可用 `type="success | warning | danger | info"`,与原有的 `tone` / `status` 二选一,历史取值继续可用
|
|
117
|
+
- `DjmCalendar` 补 `grid` / `row` / `columnheader` / `gridcell` 语义,日期格方向键与 Home / End 移动已有测试覆盖
|
|
118
|
+
- 日历标题、上下月按钮、Tag 移除按钮的文案改为走 i18n
|
|
119
|
+
- 测试 136 项,无障碍 143 页 0 违规,视觉基线 64 张一致
|
|
120
|
+
|
|
121
|
+
## 0.62.0
|
|
122
|
+
|
|
123
|
+
逐个组件复查后的修复与体验打磨:
|
|
124
|
+
|
|
125
|
+
- 浮层层级统一为 `--djm-z-*` 令牌(下拉 1100 → 全局提示 1900),修复 Modal 被 Drawer 盖住、人员选择面板被遮罩吞掉等层级错乱
|
|
126
|
+
- 新增 `--djm-brand-solid` / `--djm-brand-solid-hover`:暗色主题下实底品牌色单独压深,主按钮、页签页码、日期选中、步骤、徽标、头像等白字恢复 4.5:1 对比度;自定义主色时按明暗推导
|
|
127
|
+
- 暗色语义色修正:实心绿色按钮、琥珀徽标改用深色文字或深底,聊天自消息气泡换实底令牌
|
|
128
|
+
- 功能性修复:TimePicker 分钟步长为 0 死循环、Slider `step=0` 产生 NaN、InputNumber 清空无法回到 null、FieldList 数字输入中间态变 NaN、Table 多级表头排序不生效、Transfer 搜索后勾选错位、Form.resetFields 残留字段、ImportWizard reset 不同步 mapping、Pagination / MediaPicker 页码越界、Schedule 隐藏周末列错位、FloatingWindow 最大化类名写错、Comment 不抛 reply、Cascader 缺空态、Statistic 精度越界抛错
|
|
129
|
+
- 键盘与无障碍:Table 表头 Enter / 空格排序、Rate 方向键与 roving tabindex、Calendar 方向键与 Home / End 移动、Dropdown / ContextMenu 方向键与 Esc、焦点回退、Tooltip 注入 `aria-describedby`、Toast 增加 `role="status"` / `aria-live`、Image 预览焦点管理、RichEditor 补 `role="textbox"` 与工具栏 `aria-pressed`
|
|
130
|
+
- 结构调整:OrgChart 节点改为「节点按钮 + 并列折叠按钮」,Upload 拖拽区去掉伪按钮语义,消除 nested-interactive 违规
|
|
131
|
+
- 体验细节:Notification 清空改二次确认、QueryFilter 输入框回车即查询、Tabs 徽标为 0 时隐藏与 Badge 一致、RichEditor 支持 `disabled`、DatePicker 支持 `disabled` 并跳过禁用日期、Tree/TreeSelect 尊重节点 `disabled` 与已加载空子节点
|
|
132
|
+
- 新增 `--djm-watermark` 与暗色水印色,签名 / 水印默认跟随主题
|
|
133
|
+
- 测试 135 项,无障碍 143 页 0 违规,视觉基线 64 张一致(18 张暗色与文档截图随配色与文档调整重建)
|
|
134
|
+
|
|
135
|
+
## 0.61.0
|
|
136
|
+
|
|
137
|
+
- 具备公开发布条件:补 MIT 许可证、README、npm 入口与 `exports` 映射,移除 `private` 限制
|
|
138
|
+
- 新增脚本构建,输出三种产物:`djm-ui.esm.js`(打包器,Vue 外置)、`djm-ui.cjs`(Node)、`djm-ui.umd.js`(浏览器,复用全局 Vue),均含压缩版;ESM / CJS 附带 sourcemap
|
|
139
|
+
- 样式产物只包含组件库自身样式,示例应用的布局、工作台、登录页等样式不再进入发布包;新增压缩版 `djm-ui.min.css`
|
|
140
|
+
- 支持按需样式:`djm-ui/styles/tokens.css`、`base.css`、`components/*.css` 可单独引入
|
|
141
|
+
- 新增 `npm run release`:统一更新 `package.json` 与 `src/index.js` 版本号,缺少对应 CHANGELOG 段落时拒绝执行
|
|
142
|
+
- 新增 `prepack` / `prepublishOnly`,打包前自动构建并跑测试;CI 增加产物齐全与 CJS 入口校验
|
|
143
|
+
- 文档「快速开始」改为 npm 包用法:安装、CDN、全量 / 按需注册、按需样式、主题、国际化、权限、发布命令
|
|
144
|
+
- 测试 135 项,无障碍 143 页 0 违规,视觉基线 64 张一致
|
|
145
|
+
|
|
146
|
+
## 0.60.0
|
|
147
|
+
|
|
148
|
+
- 文档站新增「快速开始」:浏览器直接引入、全量注册、按需引入、样式入口、主题与主色、国际化、按钮权限、本地开发命令,每段代码可单独复制
|
|
149
|
+
- 组件页页脚改为指向「快速开始」,不再重复堆叠引入说明
|
|
150
|
+
- 补齐文档:新增 FilterTags、FormItem 独立文档页;Menu 补 `highlight-group`;TreeTable 补 `loading`;移除审计中重复或已覆盖的 props 噪音
|
|
151
|
+
- 新增 `scripts/audit.js` 并纳入 `npm test`:检查组件注册(import / export / components)、样式、类型声明、文档页与 props / events 覆盖,组件与文档不一致时直接失败
|
|
152
|
+
- `DjmTreeTable` 的 `loading` 现在显示「正在加载…」并优先于空态,新增 `treeTable.loading` 中英文案
|
|
153
|
+
- `DjmConfigProvider` 包裹层改为 `display: contents`,只透传控件尺寸变量,不再产生额外盒子影响父级布局
|
|
154
|
+
- 加固 `sanitizeHtml`:URL 协议判断前先去掉控制字符(防 `java\nscript:` 绕过),`data:` 只允许用于 `img` 的图片地址
|
|
155
|
+
- 测试 135 项,无障碍 143 页 0 违规,视觉基线 64 张(docs 8 张随导航与页脚调整重建)
|
|
156
|
+
|
|
157
|
+
## 0.59.0
|
|
158
|
+
|
|
159
|
+
- `DjmMenu` 浮出面板支持任意层级:横向导航与收起态下,子项再带子项时从右侧展开三级甚至更深;内嵌展开(竖向)仍为两级
|
|
160
|
+
- 嵌套层用 fixed 定位并按视口计算坐标,避免被上级面板的滚动容器裁剪,底部空间不足时自动上移
|
|
161
|
+
- 下拉面板增加最大高度(72vh / 460px)与内部滚动,菜单项多时不再超出视口
|
|
162
|
+
- 去掉下拉面板与触发器之间的 4px 间隙,修复鼠标移向子菜单时面板提前收起的问题(收起态右侧面板同步处理)
|
|
163
|
+
- 示例应用顶部菜单改为传完整层级,恢复「系统管理 → 用户与权限 → 用户管理」三级结构,不再拍平
|
|
164
|
+
- 新增单测覆盖多级浮出、fixed 定位、长列表滚动与 hover 连续性
|
|
165
|
+
- 测试 134 项,无障碍 140 页 0 违规,视觉基线 64 张一致
|
|
166
|
+
|
|
167
|
+
## 0.58.0
|
|
168
|
+
|
|
169
|
+
- 新增「账户中心」示例页:个人资料、修改密码、账户设置
|
|
170
|
+
- 个人资料:左侧头像与工号信息卡,右侧两列表单(姓名/手机/邮箱/性别/生日/城市/简介)带校验
|
|
171
|
+
- 修改密码:当前密码、新密码、确认密码,实时强度提示与交叉校验,附最近登录记录
|
|
172
|
+
- 账户设置:通知偏好开关组、界面语言与信息密度、登录设备下线、注销账户二次确认
|
|
173
|
+
- 新增「页面模板」分组,每个模板单独一个菜单项
|
|
174
|
+
- 登录页三套版式:居中卡片、左右分栏、全屏背景(毛玻璃卡片)
|
|
175
|
+
- 异常页:403 无权限、404 页面不存在、500 服务异常
|
|
176
|
+
- 维护中:预计恢复时间、进度与订阅入口
|
|
177
|
+
- 示例应用支持无外壳页面(bare):登录、异常、维护等模板隐藏顶栏、侧栏与标签栏,独占整屏
|
|
178
|
+
- 顶栏用户菜单的「个人资料」「账号设置」改为跳转对应页面,不再只弹提示
|
|
179
|
+
- 修复密码页表单被压成两列、按钮被拉伸成整行的问题
|
|
180
|
+
- 设置页开关补无障碍名称,404 大号数字改用达标的文字色
|
|
181
|
+
- 测试 133 项,无障碍 140 页 0 违规,视觉基线 64 张(app 部分随侧栏新增菜单重建)
|
|
182
|
+
|
|
183
|
+
## 0.57.0
|
|
184
|
+
|
|
185
|
+
- 示例应用支持顶部菜单布局:与侧边菜单可一键切换,选择写入 localStorage,刷新后保持
|
|
186
|
+
- 顶部菜单复用 `DjmMenu` 的 horizontal 模式,三级结构自动拍平成「分组 · 页面」两级;新增 `highlight-group` 属性,子项选中时父项一并高亮
|
|
187
|
+
- 新增皮肤设置面板(顶栏入口):导航布局、明暗外观、8 款预设主题色、自定义取色器与恢复默认
|
|
188
|
+
- `theme` 模块新增 `setPrimaryColor` / `resetPrimaryColor` / `primaryColor` / `PRESET_COLORS`:按所选主色推导整套品牌色阶(明暗各一套),600 档即所选颜色,切换明暗自动重算
|
|
189
|
+
- 修复顶部菜单下拉被容器 overflow 裁剪的问题
|
|
190
|
+
- 测试 133 项,无障碍 130 页 0 违规,视觉回归 64 张一致
|
|
191
|
+
|
|
192
|
+
## 0.56.0
|
|
193
|
+
|
|
194
|
+
- 第五批业务组件:甘特图、动态字段列表、对话气泡、组织架构图、页面标签
|
|
195
|
+
- `DjmGantt` 甘特图:任务条按日期铺开,展示进度与语义色,左侧任务列滚动时固定,今日竖线定位,范围不足 14 天自动补齐
|
|
196
|
+
- `DjmFieldList` 动态字段列表:字段配置驱动,可增删行并限制最小 / 最大行数,必填失焦提示与 validate() 校验;每行用内部 uid 做 key,删除中间行不串值
|
|
197
|
+
- `DjmChat` 对话气泡:自己的消息靠右、系统消息居中,支持图片与发送状态,Enter 发送 / Shift + Enter 换行,新消息自动滚到底
|
|
198
|
+
- `DjmOrgChart` 组织架构图:单根树布局,叶子顺序占位、父节点取子节点中点,正交连线,节点可折叠,DOM 前序排列保证 Tab 顺序
|
|
199
|
+
- `DjmPageTabs` 页面标签:多页签切换与关闭,切换与关闭为并列按钮(避免交互元素嵌套),中键可关闭,超宽横向滚动
|
|
200
|
+
- 修复 FieldList 初始值不回填的问题
|
|
201
|
+
- 测试 133 项,无障碍 130 页 0 违规,视觉基线 64 张一致
|
|
202
|
+
|
|
203
|
+
## 0.55.0
|
|
204
|
+
|
|
205
|
+
- 第四批业务组件:树形表格、日程表、评论、签名、打印
|
|
206
|
+
- `DjmTreeTable` 树形表格:首列自动缩进 + 展开箭头,勾选支持父子联动与半选态,表头全选只勾叶子;展开项与勾选项均支持 v-model,单元格可用 `cell-字段名` 插槽自定义
|
|
207
|
+
- `DjmSchedule` 日程表:周视图时间轴,同一天重叠事件自动平分列宽,支持四种语义色、切周与回今天、当前时间线;点空白时段抛半小时粒度的 slot-click
|
|
208
|
+
- `DjmComment` 评论区:留言 + 一级回复,回复态切换占位文案,字数统计与超限提示,提交后自动清空
|
|
209
|
+
- `DjmSignature` 手写签名:canvas 按 devicePixelRatio 放大,支持鼠标 / 触屏 / 触控笔,抬手回传 dataURL,支持外部回显与容器变化重绘,暴露 clear / toDataURL / isEmpty
|
|
210
|
+
- `DjmPrint` 打印:克隆插槽内容与页面样式到临时 iframe 打印,自带标题、A4 横竖版与分页保护,工具栏打印时自动隐藏
|
|
211
|
+
- 新增 printer 图标
|
|
212
|
+
- 测试 128 项,无障碍 125 页 0 违规,视觉基线 64 张一致
|
|
213
|
+
|
|
214
|
+
## 0.54.0
|
|
215
|
+
|
|
216
|
+
- 第三批业务组件:日期时间、虚拟列表、批量条、导入向导、差异对比
|
|
217
|
+
- `DjmDateTimePicker` 日期时间选择:左侧月历 + 右侧时分秒列,面板内改动先存草稿,点确定才回传;支持 min / max、分钟步长、自定义禁用日期、「此刻」快捷
|
|
218
|
+
- `DjmVirtualList` 虚拟列表:只渲染可视区行,1 万条数据不卡;itemHeight 支持数字或函数(变高行),滚动到底抛 reach-bottom;暴露 scrollToIndex / measure
|
|
219
|
+
- `DjmBatchBar` 批量操作条:已选计数 + 全选提示 + 操作插槽 + 取消选择,count 为 0 自动隐藏,fixed 模式吸底
|
|
220
|
+
- `DjmImportWizard` 导入向导:选择文件(含拖拽、扩展名与大小校验)→ 字段映射(必填校验)→ 导入结果(统计 + 错误行);step / mapping 均支持 v-model,result 回填后自动进结果页
|
|
221
|
+
- `DjmDiff` 差异对比:行级 LCS 比对,统一视图与并排视图,相同区域按 context 折叠可点击展开;规模超 100 万格退化为整段替换
|
|
222
|
+
- 虚拟列表补 tabindex 与焦点轮廓,修复可滚动区域键盘不可达的无障碍问题
|
|
223
|
+
- 测试 123 项,无障碍 120 页 0 违规,视觉基线 64 张一致
|
|
224
|
+
|
|
225
|
+
## 0.53.0
|
|
226
|
+
|
|
227
|
+
- 第二批业务组件:看板、附件、通知与全局配置
|
|
228
|
+
- `DjmKanban` 看板:列式卡片拖拽(HTML5 原生 DnD),拖到卡片上插其前、拖列空白追加末尾;本地副本乐观更新后回传整份 columns;wipLimit 在制超限计数标红;card / column-header / column-footer 三个插槽
|
|
229
|
+
- `DjmAttachmentList` 附件列表:list 行式与 grid 图片墙两种模式,按 type 或扩展名判定图片;预览 / 下载 / 移除只抛事件,autoDownload 时有 url 直接触发浏览器下载;复用 upload 的 formatFileSize
|
|
230
|
+
- `DjmNotification` 通知列表:info / success / warning / error 四类图标与语义色,未读数 + 全部已读 + 清空单条移除;点击未读条目同时抛 click 与 read;time 由业务侧格式化北京时间字符串传入
|
|
231
|
+
- `DjmConfigProvider` 全局配置:locale 直接驱动全局语言;size 映射 xs/sm/md/lg → 24/28/30/34px,通过根元素内联 `--djm-control-h` 作用于 Button / Input / Select,组件显式 size 优先
|
|
232
|
+
- 新增 `v-permission` 按钮级权限指令:无权限移除元素(注释节点占位),`.disable` 修饰符改为禁用置灰;配套 setPermissions / addPermissions / clearPermissions / hasPermission,登录后一次性写入;只做界面显隐,校验仍在服务端
|
|
233
|
+
- 测试 117 项,无障碍 115 页 0 违规,视觉基线 64 张一致
|
|
234
|
+
|
|
235
|
+
## 0.52.0
|
|
236
|
+
|
|
237
|
+
- 新增「业务组件」分组,补齐 CMS / OA / CRM 场景最缺的六块能力
|
|
238
|
+
- `DjmOrgPicker` 人员组织选择器:左侧部门树 + 右侧人员列表,支持按部门(含下级)过滤、姓名/职位搜索、跨部门多选、已选标签与批量清空;面板 teleport 到 body,不受父级 overflow 裁剪
|
|
239
|
+
- `DjmSchemaForm` 动态表单:一份 fields 配置生成整张表单,校验复用 `DjmForm`;支持 17 种字段类型、栅格 span、required / rules / default、visibleWhen 条件显示、custom 插槽;暴露 validate / validateField / clearValidate / resetFields / getModel
|
|
240
|
+
- `DjmApprovalFlow` 审批流:节点状态(已通过 / 已驳回 / 审批中 / 待处理)、发起与抄送标识、会签人员逐个状态、审批意见、紧凑模式,`node-extra` 插槽放加签转办按钮
|
|
241
|
+
- `DjmQueryFilter` 查询筛选区 + `DjmFilterTags` 筛选标签:字段配置驱动,条件超过阈值自动折叠,查询 / 重置事件,标签支持单个移除与清空
|
|
242
|
+
- `DjmMediaPicker` 媒体库选择器:弹窗网格 + 搜索 + 前端分页 + 单选 / 多选 + 数量上限,`trigger` 与 `toolbar` 插槽可接自定义触发器和上传入口
|
|
243
|
+
- 文档站组件页支持 `note` 字段,用于补充字段类型等结构化说明
|
|
244
|
+
- 测试 112 项,无障碍 111 页 0 违规
|
|
245
|
+
|
|
246
|
+
## 0.51.3
|
|
247
|
+
|
|
248
|
+
- 修复示例应用各页面内容区宽度不一致的问题:`.djm-content` 在纵向 flex 容器里用 `margin: 0 auto` 居中,交叉轴上的 auto margin 会让宽度退化成内容自适应,实测各页在 609px 到 1408px 之间跳动
|
|
249
|
+
- 给 `.djm-content` 显式补 `width: 100%`,保留 `max-width: 1560px` 与居中;49 个页面内容区宽度统一(1440 视口下 1212px,超宽屏时 1560px 居中)
|
|
250
|
+
- 视觉基线按新宽度重建,其余组件行为不变
|
|
251
|
+
|
|
252
|
+
## 0.51.2
|
|
253
|
+
|
|
254
|
+
- 内部重构:浮层组件的全局监听与定位逻辑抽成公共模块 `src/utils/panel.js`,消除 12 个组件各自的复制粘贴
|
|
255
|
+
- `bindPanelListeners` 统一接管「外部点击关闭 / Esc 关闭 / resize、scroll 重定位」,接入 Select、Cascader、TimePicker、ColorPicker、AutoComplete、Mentions、Popover、Popconfirm、Dropdown、TreeSelect、DatePicker、ContextMenu
|
|
256
|
+
- `dropdownPanelStyle` / `shouldFlipUp` / `PANEL_HIDDEN_STYLE` 统一 cascader 族的下拉定位与首帧隐藏占位
|
|
257
|
+
- 行为保持不变;新增一条单测覆盖「外部点击关闭 + Esc 关闭」的公共路径,测试 106 项,无障碍 106 页 0 违规,视觉基线 64 张一致
|
|
258
|
+
|
|
259
|
+
## 0.51.1
|
|
260
|
+
|
|
261
|
+
- 全组件审计后的第三批:文档与源码偏差校准(脚本化比对 80 个文档页与 75 个组件的 props / events / slots)
|
|
262
|
+
- Table 主页补齐 maxHeight / rowDraggable / allowRowDrag / rowHeight / overscan 五个 props 与 update:sortKey / update:sortDir / row-drop 三个事件
|
|
263
|
+
- 补齐各组件文档遗漏的事件:Input `input`;Checkbox / Radio / Switch / InputTag `change`;InputNumber `update:modelValue` / `focus` / `blur` 与 `ariaLabel` prop;Rate / Slider / Cascader / ColorPicker / Transfer `update:modelValue`;TimePicker `update:modelValue` 与 `placeholder`;DatePicker `visible-change`;AutoComplete `focus` / `blur`
|
|
264
|
+
- Card 文档补 `title` 插槽;Menu / Collapse 事件名统一为 camelCase;Radio `value` 默认值更正为 `undefined`;InputNumber / Slider 的 `min` / `max` 拆成两行并更正默认值
|
|
265
|
+
- 测试 105 项,无障碍 106 页 0 违规,视觉基线 64 张一致
|
|
266
|
+
|
|
267
|
+
## 0.51.0
|
|
268
|
+
|
|
269
|
+
- 全组件审计后的第二批增强,补齐核心组件的常见能力缺口
|
|
270
|
+
- `DjmSelect` 支持分组选项:options 元素带 `options` 数组即按分组渲染,搜索时空组自动隐藏,分组模式下虚拟滚动自动失效;非分组用法 DOM 结构不变
|
|
271
|
+
- `DjmSelect` 补 `focus` / `blur` 事件(焦点移到面板内不算 blur),新增 `#option` 插槽自定义选项内容,参数 `{ option, selected, active }`
|
|
272
|
+
- `DjmTable` 新增 `row-dblclick` 事件(注意双击会同时触发两次 `row-click`)
|
|
273
|
+
- `DjmMenu` 新增 `accordion` 手风琴模式:竖向内嵌展开时同时只保留一组展开
|
|
274
|
+
- 类型声明、文档站(Select / Table / Menu 页)同步更新
|
|
275
|
+
- 测试 105 项,无障碍 106 页 0 违规,视觉基线 64 张一致
|
|
276
|
+
|
|
277
|
+
## 0.50.0
|
|
278
|
+
|
|
279
|
+
- 全组件审计后的第一批系统性增强,统一表单与浮层组件的事件面
|
|
280
|
+
- `DjmInput` 新增 `clearable` 清空按钮、`maxlength` + `showWordLimit` 字数统计,补 `focus` / `blur` / `clear` 事件与 `focus()` / `blur()` 方法;不传新属性时 DOM 结构与旧版完全一致
|
|
281
|
+
- `DjmPassword` 补 `change` / `enter` / `focus` / `blur`;`DjmInputNumber`、`DjmInputTag`、`DjmAutoComplete` 补 `focus` / `blur`
|
|
282
|
+
- `DjmCascader`、`DjmTimePicker`、`DjmColorPicker`、`DjmDatePicker` 补 `visible-change` 事件,与 Select / Dropdown / Popover / Popconfirm / TreeSelect 对齐
|
|
283
|
+
- `DjmPagination` 新增 `change` 事件(载荷 `{ page, pageSize }`),翻页与改页大小统一触发
|
|
284
|
+
- `djmMessage` 支持 `duration: 0` 常驻消息,新增 `djmMessage.close(id)` 手动关闭单条;返回值仍是 id,旧调用不受影响
|
|
285
|
+
- 类型声明同步:新增 6 组 Emits 类型,Input / Pagination / Message 声明更新
|
|
286
|
+
- 文档同步:Input / Password / InputTag / Pagination / Message / 三个选择器页的 props 与事件表更新
|
|
287
|
+
- 测试 99 项,无障碍 106 页 0 违规,视觉基线 64 张一致
|
|
288
|
+
|
|
289
|
+
## 0.49.1
|
|
290
|
+
|
|
291
|
+
- 示例与文档中的站点域名统一改为 `ui.duojumi.com`
|
|
292
|
+
- 修复顶部标签栏的无障碍问题:`role="tab"` 内嵌关闭按钮触发 `nested-interactive`;改为切换按钮 + 并列关闭按钮,选中态用 `aria-current="page"`
|
|
293
|
+
- 顺带撤掉 `tablist` / `tab` 语义(该标签栏本质是页面切换器,带关闭按钮不满足 tablist 子节点规则),视觉与交互不变
|
|
294
|
+
- 重新生成视觉基线,二维码内容随域名同步变化
|
|
295
|
+
|
|
296
|
+
## 0.49.0
|
|
297
|
+
|
|
298
|
+
- 新增 `DjmQRCode` 二维码组件,基于 `qrcode` 库把文本编成二维码
|
|
299
|
+
- 用 esbuild 把库打包成 `vendor/qrcode.esm.js`(24KB),页面运行时仍不依赖外网;`npm run build:qrcode` 可重新生成
|
|
300
|
+
- 支持尺寸、留白、容错等级(L/M/Q/H)与深浅色配置,生成 SVG 图片放大不糊,空内容显示占位
|
|
301
|
+
- 示例应用新增「二维码」页;文档站「其它组件」补一页
|
|
302
|
+
- 用 Chrome BarcodeDetector 实测:链接、中文文本、L/M/H 容错与品牌配色共 6 个二维码全部解码正确
|
|
303
|
+
- 测试 95 项,无障碍 106 页,视觉基线 64 张
|
|
304
|
+
|
|
305
|
+
## 0.48.0
|
|
306
|
+
|
|
307
|
+
- 新增结构与输入 11 个组件:`DjmRow` / `DjmCol`、`DjmLayout`(含 Header/Sider/Content/Footer)、`DjmList`、`DjmInputTag`、`DjmPassword`、`DjmCommandPalette`
|
|
308
|
+
- Row/Col 复用 12 栏栅格,span 分栏、offset 留空;Layout 用四段拼页面骨架,内容区独立滚动
|
|
309
|
+
- List 支持头尾插槽与整行自定义,空数据有占位文案
|
|
310
|
+
- InputTag 回车/逗号生成标签、空输入退格删除,带上限与去重;Password 可切换明文并按长度与字符种类提示强度
|
|
311
|
+
- CommandPalette 支持 Ctrl / ⌘ + K 唤起、输入过滤、键盘执行,执行后自动收起并解锁滚动
|
|
312
|
+
- 修复内容区滚动无法键盘访问:`.djm-content` 加 tabindex 与聚焦描边,纯文字页面也能用键盘滚动
|
|
313
|
+
- 示例应用新增「栅格与布局」「标签与命令」页;文档站新增六页
|
|
314
|
+
- 测试 94 项,无障碍 104 页,视觉基线 62 张
|
|
315
|
+
|
|
316
|
+
## 0.47.0
|
|
317
|
+
|
|
318
|
+
- 新增日期与浮层 3 个组件:`DjmCalendar`、`DjmMentions`、`DjmFloatButton`
|
|
319
|
+
- Calendar 固定 42 格月视图,支持标记日期、切月与回到今天,firstDay 可切换每周起始日
|
|
320
|
+
- Mentions 输入 @ 触发候选,上下键选择、回车插入并回填光标,Esc 或点外部关闭
|
|
321
|
+
- FloatButton 常驻右下角,点开展开一组操作,支持 Esc 与点外部收起
|
|
322
|
+
- 示例应用新增「日历与提及」页;文档站展示、表单、其它组件分组各补一页
|
|
323
|
+
- 测试 88 项,无障碍 96 页,视觉基线 58 张
|
|
324
|
+
|
|
325
|
+
## 0.46.0
|
|
326
|
+
|
|
327
|
+
- 新增面板与引导 3 个组件:`DjmSplitter`、`DjmCarousel`、`DjmTour`
|
|
328
|
+
- Splitter 拖拽分隔条调整两栏占比,支持上下分栏、占比上下限与方向键微调(Shift 一次 10%)
|
|
329
|
+
- Carousel 支持自动播放、悬停暂停、左右按钮、圆点与方向键切换,标题说明压在图片底部
|
|
330
|
+
- Tour 按步骤高亮目标并跟随滚动定位,卡片优先放高亮下方,Esc 随时退出
|
|
331
|
+
- 示例应用新增「面板与引导」页;文档站布局、展示、反馈三个分组各补一页
|
|
332
|
+
- 测试 85 项,无障碍 92 页,视觉基线 56 张
|
|
333
|
+
|
|
334
|
+
## 0.45.0
|
|
335
|
+
|
|
336
|
+
- 新增媒体与输入 3 个组件:`DjmImage`、`DjmWatermark`、`DjmAutoComplete`
|
|
337
|
+
- Image 固定尺寸配 object-fit,加载失败回落文字占位,点击放大进入预览层(Esc 或点空白关闭,打开时锁滚动)
|
|
338
|
+
- Watermark 用 canvas 生成平铺水印,按旋转包围盒算图块避免文字被裁;内容支持多行,不拦截鼠标
|
|
339
|
+
- AutoComplete 输入即过滤,上下键移动、回车确认、Esc 关闭,combobox 语义与 aria-activedescendant 齐全
|
|
340
|
+
- 示例应用新增「图片与水印」页;文档站展示分组补图片与水印、表单分组补自动完成
|
|
341
|
+
- 测试 82 项,无障碍 88 页,视觉基线 54 张
|
|
342
|
+
|
|
343
|
+
## 0.44.0
|
|
344
|
+
|
|
345
|
+
- 新增布局与切换 3 个组件:`DjmSpace`、`DjmAffix`、`DjmSegmented`
|
|
346
|
+
- Space 用 gap 统一间距,支持纵横两向、四种对齐与换行,size 收数字或带单位字符串
|
|
347
|
+
- Affix 滚到指定位置后吸顶或吸底,保留占位高度避免跳动,容器可选择器指定
|
|
348
|
+
- Segmented 支持数量徽标、禁用项与键盘操作,角色页原手写切换改为组件调用
|
|
349
|
+
- 示例应用新增「间距与固钉」页;文档站新增「布局」分组两页、导航分组补分段切换
|
|
350
|
+
- 测试 79 项,无障碍 84 页,视觉基线 52 张
|
|
351
|
+
|
|
352
|
+
## 0.43.0
|
|
353
|
+
|
|
354
|
+
- 新增导航与布局 3 个组件:`DjmAnchor`、`DjmBacktop`、`DjmDivider`
|
|
355
|
+
- Anchor 按区块 id 生成侧边导航,滚动自动高亮、点击平滑滚动,滚动容器默认取最近的 `.djm-content`
|
|
356
|
+
- Backtop 滚动超过阈值后出现,点击回到容器顶部;阈值、位置与容器都可配
|
|
357
|
+
- Divider 支持横向带文字、纯线条与行内竖线,带 `role="separator"` 与方向语义
|
|
358
|
+
- 示例应用新增「锚点与分割」页;文档站新增「导航」分组两页、基础分组补分割线
|
|
359
|
+
- 测试 76 项,无障碍 80 页,视觉基线 50 张
|
|
360
|
+
|
|
361
|
+
## 0.42.0
|
|
362
|
+
|
|
363
|
+
- 新增反馈类 3 个组件:`DjmAlert`、`DjmSpin`、`DjmPopconfirm`
|
|
364
|
+
- Alert 四种语义色,支持标题、图标开关与关闭按钮;关闭行为交给业务控制显隐
|
|
365
|
+
- Spin 单独使用是转圈提示,传入内容时盖一层遮罩,`spinning` 控制显隐,尺寸分 sm/md/lg
|
|
366
|
+
- Popconfirm 气泡二次确认,默认在上方展开,空间不足自动翻转;点击外部与 Esc 收起
|
|
367
|
+
- 提示条正文去掉透明度,语义色在浅色与深色下都满足对比度要求
|
|
368
|
+
- 示例应用新增「提示与加载」页;文档站「反馈」分组补 3 页
|
|
369
|
+
- 测试 73 项,无障碍 76 页,视觉基线 48 张
|
|
370
|
+
|
|
371
|
+
## 0.41.0
|
|
372
|
+
|
|
373
|
+
- 新增录入类 7 个组件:`DjmInputNumber`、`DjmRate`、`DjmSlider`、`DjmTimePicker`、`DjmColorPicker`、`DjmCascader`、`DjmTransfer`
|
|
374
|
+
- InputNumber 支持上下键与按钮步进、精度收敛、越界截断;Rate 支持悬浮预览、只读与再点清零
|
|
375
|
+
- Slider 支持单值与区间两种取值、按步长吸附、方向键微调;TimePicker 时/分/秒三列点选,可配分钟步长
|
|
376
|
+
- ColorPicker 预设色板加十六进制输入校验;Cascader 逐级展开、叶子节点回传完整路径;Transfer 双栏搜索、全选与禁用项
|
|
377
|
+
- TimePicker / Cascader 触发器改用 combobox 语义,清空按钮不再嵌套在按钮内,无障碍扫描恢复 0 违规
|
|
378
|
+
- 示例应用新增「数值与评分」「时间与颜色」「级联与穿梭」三页;文档站新增「表单」分组 7 页
|
|
379
|
+
- 测试 70 项,无障碍 72 页,视觉基线 46 张
|
|
380
|
+
|
|
381
|
+
## 0.40.0
|
|
382
|
+
|
|
383
|
+
- 新增展示类 9 个组件:`DjmTag`、`DjmCard`、`DjmStatistic`、`DjmProgress`、`DjmSkeleton`、`DjmResult`、`DjmTimeline`、`DjmCollapse`、`DjmSteps`
|
|
384
|
+
- Tag 支持五种语义色、小号与可关闭;Card 支持标题、右上角操作与页脚三段插槽
|
|
385
|
+
- Progress 百分比自动收敛到 0–100,支持成功/警告/失败配色与自定义高度
|
|
386
|
+
- Skeleton 支持头像、标题与行数配置,`loading` 为 false 时渲染真实内容
|
|
387
|
+
- Collapse 支持多开与手风琴两种模式;Steps 支持横向、纵向与失败状态
|
|
388
|
+
- 示例应用新增「标签与卡片」「进度与结果」「时间线与步骤」三页;文档站新增「展示」分组共 9 页
|
|
389
|
+
- 示例两列并排改为等高对齐,卡片与结果页底边不再参差;补充 info 图标
|
|
390
|
+
- 测试 64 项,无障碍 56 页,视觉基线 40 张
|
|
391
|
+
|
|
392
|
+
## 0.39.0
|
|
393
|
+
|
|
394
|
+
- 新增 `DjmAvatar` / `DjmAvatarGroup`:图片优先、文字首字兜底、尺寸与形状、自定义底色、叠放分组
|
|
395
|
+
- 新增 `DjmBadge`:未读计数与红点,支持上限显示 `99+` 与 danger/brand/green/amber 语义色
|
|
396
|
+
- 新增 `DjmMenu`:同一套 items 支持侧边竖向与顶部横向导航,两级结构、可收起、未读徽标、禁用项
|
|
397
|
+
- 新增 `DjmPopover`:自定义内容浮层,支持点击/悬浮触发、点击外部与 Esc 关闭
|
|
398
|
+
- 顶栏不再是演示占位:铃铛改为真实通知中心(未读计数、逐条已读、全部已读),用户区改为头像 + 账号菜单
|
|
399
|
+
- 示例应用新增「头像」「菜单与导航」「通知中心」三页;文档站新增 Avatar / Badge / Menu / Popover 四页
|
|
400
|
+
- 删除已无引用的旧红点样式;测试 58 项,无障碍扩到 50 页,视觉基线 34 张
|
|
401
|
+
|
|
402
|
+
## 0.38.0
|
|
403
|
+
|
|
404
|
+
- 新增 `DjmBreadcrumb` 面包屑组件:`items` 传层级数组,最后一项自动作为当前页并带 `aria-current`
|
|
405
|
+
- 支持文字分隔符(`separator`)与图标分隔符(`separator-icon`),图标优先
|
|
406
|
+
- 层级项有 `href` 走原生跳转,没有则渲染成按钮并抛 `navigate`,方便单页应用接管路由
|
|
407
|
+
- 容器变窄时自动换行,单个名称过长用省略号截断,不撑破布局
|
|
408
|
+
- 示例应用「界面组件」下新增「面包屑」页;文档站新增 Breadcrumb 页;测试 54 项,无障碍扩到 43 页,视觉基线 28 张
|
|
409
|
+
|
|
410
|
+
## 0.37.1
|
|
411
|
+
|
|
412
|
+
- 修复部门管理左侧搜索框贴着面板边框、看起来像双层边框的问题,补 10px 内边距并给树列表留白
|
|
413
|
+
- 禁用按钮统一改为灰态:此前危险按钮禁用后仍显示红色,容易被误认为可点击
|
|
414
|
+
- 字典左侧类型列表底部补 8px 内边距,最后一行不再压住面板边框
|
|
415
|
+
- 视觉回归:文档页改用 1400 高视口截全,截图前等合成阶段完成,修复同一页面两次截图不一致;修掉重截时丢失页面高度导致的尺寸不匹配
|
|
416
|
+
|
|
417
|
+
## 0.37.0
|
|
418
|
+
|
|
419
|
+
- 页头收敛为一行:标题(16px)与说明(12px)并排,操作区靠右,整体高度由约 86px 压到 30px
|
|
420
|
+
- 移除全局面包屑:左侧菜单与标签页已表达层级,面包屑是第三份重复导航
|
|
421
|
+
- 说明文案过长时自动换行,1280 与 1440 宽度下均保持单行不挤压标题
|
|
422
|
+
|
|
423
|
+
## 0.36.2
|
|
424
|
+
|
|
425
|
+
- 键盘焦点环统一:按钮、图标按钮、文字按钮、分页按钮、复选/单选、页签、下拉与右键菜单项全部补 `:focus-visible` 描边,颜色统一 `--djm-brand-500`
|
|
426
|
+
- 页签焦点态由 inset 浅阴影改为 2px 描边,暗色下不再看不清
|
|
427
|
+
- 表单错误提示加出现动效(淡入 + 下移 2px,尊重系统减少动态设置)
|
|
428
|
+
- 骨架屏扫光色抽为 `--djm-skeleton-hi`:修复暗色下扫光与底色太接近、动画看不见的问题
|
|
429
|
+
|
|
430
|
+
## 0.36.1
|
|
431
|
+
|
|
432
|
+
- 组件样式硬编码颜色清零:危险/成功实心按钮、徽章、链接按钮、铃铛角标全部接入语义令牌,暗色下与状态色协调
|
|
433
|
+
- 新增语义令牌:`--djm-green-strong/deep`、`--djm-red-strong/deep`(实心按钮底与 hover)、`--djm-text-inverse`、`--djm-media-mask`
|
|
434
|
+
- 阴影阶梯令牌化:`--djm-shadow-lg`(弹出层)、`--djm-shadow-xl`(模态/抽屉/浮动窗)、`--djm-shadow-sticky-l/r`(表格固定列)、`--djm-shadow-brand`,暗色下弹层投影不再消失
|
|
435
|
+
- 修复暗色下两个写死白色的点:折线图数据点填充、卡片页签激活底线,均改为跟随表面色
|
|
436
|
+
- 下拉面板、右键菜单、抽屉遮罩、移动端侧栏遮罩统一走 `--djm-shadow-lg/xl` 与 `--djm-mask`
|
|
437
|
+
- 视觉回归截图前增加逐页预热,修复冷启动时 Props 表格异步渲染导致的基线抖动
|
|
438
|
+
|
|
439
|
+
## 0.36.0
|
|
440
|
+
|
|
441
|
+
- 重构暗色主题配色:中性深灰层级、菜单与次级文字对比度提升(正文 12:1、菜单 12:1)
|
|
442
|
+
- 侧栏菜单、标签栏、分页、表格表头、表单、提示条、空状态等硬编码颜色改为语义令牌,明暗两套一致
|
|
443
|
+
- 应用壳改为定高视口:内容区内部滚动,页面本身不再上下滚动
|
|
444
|
+
- 用户管理、岗位管理、导出记录改为铺满布局:表格内部滚动并吸顶表头,分页固定右下角
|
|
445
|
+
- 页面与卡片统一 14px 间距,修复参数设置页表单与下方卡片外边框贴在一起的问题
|
|
446
|
+
- 弹窗滚动锁补偿滚动条宽度,打开/关闭不再引起内容横向抖动
|
|
447
|
+
- 新增滚动锁嵌套用例,测试 53 项;视觉基线 26 张重新生成
|
|
448
|
+
|
|
449
|
+
## 0.35.0
|
|
450
|
+
|
|
451
|
+
- Table 支持行拖拽排序:`row-draggable` 开启行首手柄,拖动中显示插入线,松手抛 `row-drop`
|
|
452
|
+
- `allow-row-drag` 按行控制是否可拖,返回 false 时手柄置灰并拦截 `dragstart`
|
|
453
|
+
- 新增 `moveRows` 工具:按 `dragIndex / dropIndex / position` 生成新数组,原位与紧邻位置返回 null
|
|
454
|
+
- 手柄列与选择、序号、展开列一起参与固定列偏移,可与固定列、多级表头共存
|
|
455
|
+
- 文档新增「Table 行拖拽排序」页,无障碍扫描扩到 41 页,测试 52 项
|
|
456
|
+
|
|
457
|
+
## 0.34.0
|
|
458
|
+
|
|
459
|
+
- 新增「树表联动选择」示例页:左侧勾选部门/小组筛选成员,右侧跨范围保留勾选
|
|
460
|
+
- 树节点实时显示已选人数(部门按子树汇总),支持「全选当前结果」「清空已选」「清空勾选」
|
|
461
|
+
- 表格全选只作用于当前筛选范围,未在范围内的已选成员会单独提示
|
|
462
|
+
- 组织树与成员分组规则抽到 `data.js` 共用,部门管理页改为引用(渲染结果不变)
|
|
463
|
+
- 视觉基线扩到 26 张,无障碍扫描 40 页 0 违规
|
|
464
|
+
|
|
465
|
+
## 0.33.0
|
|
466
|
+
|
|
467
|
+
- Table 支持多级表头:列配置 `children` 组成分组,可继续嵌套(文档含三级示例)
|
|
468
|
+
- 分组列按叶子数 colspan、普通列自动 rowspan 跨行;分组表头不参与排序与单元格渲染
|
|
469
|
+
- 排序、固定列、列设置、导出、列宽拖拽、虚拟滚动全部按叶子列工作
|
|
470
|
+
- 列设置按叶子列勾选并显示分组名;多行表头吸顶时逐行偏移,不会互相遮挡
|
|
471
|
+
- 修复固定列表头在未设置 max-height 时不吸边的问题
|
|
472
|
+
- 文档新增「Table 多级表头」页,无障碍扫描扩到 39 页,测试 50 项
|
|
473
|
+
|
|
474
|
+
## 0.32.0
|
|
475
|
+
|
|
476
|
+
- 新增 `DjmDescriptions` 描述列表:多列、跨列与自定义值插槽,适合详情页与抽屉
|
|
477
|
+
- 岗位管理、导出记录、登录统计接入详情抽屉:描述信息 + 明细表格 + 底部操作
|
|
478
|
+
- 导出记录表改用固定布局并收窄列宽,操作列不再被挤到视口外
|
|
479
|
+
- 文档新增「Descriptions 描述列表」页,无障碍扫描扩到 38 页,测试增至 49 项
|
|
480
|
+
|
|
481
|
+
## 0.31.0
|
|
482
|
+
|
|
483
|
+
- 补齐 5 个业务页面:岗位管理、数据字典、参数设置、登录统计、导出记录,示例应用不再有占位页
|
|
484
|
+
- Table 新增 `minWidth`:列少或容器窄时可调小最小宽度,不再被迫横向滚动
|
|
485
|
+
- Tabs 新增 `persist`:面板常驻只切换显隐,表单切换标签不丢输入与校验注册
|
|
486
|
+
- Switch 新增 `ariaLabel`:表格等无可见文案的场景补齐无障碍名称
|
|
487
|
+
- 修复筛选栏中日期控件被 `.djm-field` 规则压成 152px 宽度的问题
|
|
488
|
+
- 表格滚动区统一 `role=region` + `aria-label` + `tabindex`,可用键盘滚动
|
|
489
|
+
- 无障碍扫描扩展到应用示例页(37 页 0 违规),修复面包屑对比度、用户页日期输入无标签等历史问题
|
|
490
|
+
- 视觉回归基线扩到 24 张(新增 5 个页面的深浅色),测试增至 48 项
|
|
491
|
+
- 文档补充 Tabs `persist` 示例、Table `minWidth`、Switch `ariaLabel`,示例应用入口新增 5 个页面链接
|
|
492
|
+
|
|
493
|
+
## 0.30.0
|
|
494
|
+
|
|
495
|
+
- Table 新增 `resizable` 列宽拖拽:表头右侧分割线拖动调整列宽,双击恢复配置宽度
|
|
496
|
+
- 拖拽期间列宽实时生效,固定列偏移、表头吸顶、横向滚动同步跟随
|
|
497
|
+
- 新增 `minColumnWidth`(默认 60)限制最小列宽,单列可通过 `resizable: false` 关闭
|
|
498
|
+
- 新增 `column-resize` / `column-resize-end` 事件,便于持久化列宽
|
|
499
|
+
- 列配置 `width` 现在也接受百分比如 `'20%'`;开启拖拽时表格改用固定布局并裁切溢出内容
|
|
500
|
+
- 文档「Table 固定列与列宽」页补拖拽示例,测试增至 45 项
|
|
501
|
+
|
|
502
|
+
## 0.29.0
|
|
503
|
+
|
|
504
|
+
- DatePicker 范围模式默认并排显示两个月,新增 `panels`(默认 2,传 1 退回单面板)
|
|
505
|
+
- 选完起点后,鼠标悬停即预览整段区间,移出恢复,第二个月也能直接点选
|
|
506
|
+
- 双面板导航分离:左面板上年/上月,右面板下月/下年,标题始终居中
|
|
507
|
+
- 面板较宽时按视口宽度收回左侧,不再从右侧溢出屏幕
|
|
508
|
+
- 文档补单面板示例与 `panels` 参数,测试增至 44 项
|
|
509
|
+
|
|
510
|
+
## 0.28.0
|
|
511
|
+
|
|
512
|
+
- 新增 `DjmEditableTable` 行内编辑:列上配 `editor`(input / number / select / date / switch / textarea)即可编辑
|
|
513
|
+
- 支持必填、正则、自定义校验;校验失败保留编辑态并提示,通过后 `save` 只回传 `changes`,组件不直接改数据
|
|
514
|
+
- 操作列默认固定在右侧,横向滚动时「编辑 / 保存 / 取消」始终可见;Enter 保存、Esc 取消,编辑行有底色区分
|
|
515
|
+
- 其它能力(选择列、固定列、列设置、导出、空状态)原样继承 DjmTable
|
|
516
|
+
- 文档新增「EditableTable 行内编辑」页,测试增至 43 项
|
|
517
|
+
- 视觉回归脚本对超阈值截图补一次重截,避免偶发渲染抖动误报
|
|
518
|
+
|
|
519
|
+
## 0.27.0
|
|
520
|
+
|
|
521
|
+
- Tree 支持拖拽排序:`draggable` + `allowDrop` + `node-drop`,行上下 28% 落在前后、中间放入子级
|
|
522
|
+
- 拖拽自动拦截非法投放(自身、自身子树、禁用节点),放置过程有前后插入线与放入高亮
|
|
523
|
+
- 新增 `moveTreeNode(data, dragKey, dropKey, position)` 工具,直接就地更新树数据
|
|
524
|
+
- 文档补拖拽示例与 API,测试增至 42 项(含纯数据移动单测)
|
|
525
|
+
|
|
526
|
+
## 0.26.0
|
|
527
|
+
|
|
528
|
+
- DatePicker 新增 `presets` 快捷区间(值可为数组或函数),面板左侧展示「近 7 天 / 近 30 天」等
|
|
529
|
+
- DatePicker 新增 `disabledDate` 自定义禁用,与 `min` / `max` 共同生效
|
|
530
|
+
- DatePicker 面板改为 teleport 到 body + fixed 定位,空间不足自动向上展开,不再被父级 overflow 裁剪
|
|
531
|
+
- 补 `aria-controls` 关联触发器与面板,测试增至 40 项
|
|
532
|
+
|
|
533
|
+
## 0.25.0
|
|
534
|
+
|
|
535
|
+
- 新增视觉回归脚本:`npm run visual` 截取 7 个关键页面 × 浅/深色共 14 张图,与基线逐像素比对(阈值 0.2%)
|
|
536
|
+
- `npm run visual:update` 重新生成基线;基线跨平台不可比,平台不一致时只提示不判失败
|
|
537
|
+
- 截图前关闭动画与过渡(`prefers-reduced-motion`),并加了一次预热截图,保证结果稳定
|
|
538
|
+
- 支持 `?theme=dark` 临时覆盖主题,便于截图与分享;补充 `prefers-reduced-motion` 样式
|
|
539
|
+
|
|
540
|
+
## 0.24.0
|
|
541
|
+
|
|
542
|
+
- 新增 axe 无障碍扫描:`tests/a11y.html` 遍历 27 个文档页,只扫演示区域,当前 0 违规并接入 CI
|
|
543
|
+
- 对比度调整到 WCAG AA:`--djm-text-3`、`--djm-green`、`--djm-amber` 及成功按钮、状态点、日期占位
|
|
544
|
+
- Select / TreeSelect 触发器补可访问名称与 `aria-expanded`;Dropdown 把弹出层语义写到插槽里的真实控件,避免容器冒充 button
|
|
545
|
+
- Tabs 关闭图标改为鼠标点击 + `Delete` 键关闭,去掉 tab 内嵌可交互元素;表格 / 树勾选框、分页跳页与页大小补标签
|
|
546
|
+
- 滚动容器(表格、示例代码块)可键盘聚焦;表单错误提示此前已补 `role=alert`
|
|
547
|
+
|
|
548
|
+
## 0.23.0
|
|
549
|
+
|
|
550
|
+
- Select 新增虚拟滚动:`virtual` + `option-height` + `overscan`,大量选项只渲染可视区
|
|
551
|
+
- 键盘上下移动时会按行高自动滚动面板,高亮项超出可视区也能正确定位
|
|
552
|
+
- 搜索过滤后自动回到顶部,Select 搜索框补 `id` / `name` 便于表单与无障碍工具识别
|
|
553
|
+
- 文档 Select 示例补 3000 条选项演示,测试增至 39 项
|
|
554
|
+
|
|
555
|
+
## 0.22.0
|
|
556
|
+
|
|
557
|
+
- Table 新增虚拟滚动:`virtual` + `row-height` + `overscan`,只渲染可视区行,占位行撑起总高度
|
|
558
|
+
- 虚拟滚动兼容固定列、选择列、序号列与排序,序号与插槽 `index` 始终是原始下标
|
|
559
|
+
- 展开行模式高度不固定,会自动退回全量渲染,避免滚动位置漂移
|
|
560
|
+
- 文档新增「Table 虚拟滚动」页(5000 行),测试增至 38 项
|
|
561
|
+
|
|
562
|
+
## 0.21.0
|
|
563
|
+
|
|
564
|
+
- 工作台「最近登录」改用 `DjmTable`,示例应用内的列表已全部走框架表格
|
|
565
|
+
|
|
566
|
+
## 0.20.0
|
|
567
|
+
|
|
568
|
+
- `types/index.d.ts` 补全全部组件的事件类型(`DjmXxxEmits`),并接入 `DefineComponent` 的 emits 泛型
|
|
569
|
+
- 新增 `tsconfig.json` 与 `npm run typecheck`,`types/usage-check.ts` 用 `@ts-expect-error` 反向校验签名
|
|
570
|
+
- CI 增加类型声明检查(`npm ci` + `typecheck`)
|
|
571
|
+
- 类型声明统一改为 `type` 别名,便于按需组合
|
|
572
|
+
|
|
573
|
+
## 0.19.0
|
|
574
|
+
|
|
575
|
+
- Tree 支持键盘操作:上下移动、左右展开收起、Home/End 跳转、Enter 选中、空格勾选,配合 roving tabindex
|
|
576
|
+
- Tree 补 `aria-level` / `aria-selected` 与聚焦描边,箭头与复选框移出 tab 序列
|
|
577
|
+
- Form 错误提示加 `role="alert"`,校验失败时能被读屏播报
|
|
578
|
+
- 测试增至 37 项
|
|
579
|
+
|
|
580
|
+
## 0.18.0
|
|
581
|
+
|
|
582
|
+
- Tree 新增 `activeKey` 选中高亮与 `rowClass` 行类名,`node` 插槽补 `active` 参数
|
|
583
|
+
- 新增「部门管理」页面:左侧 Tree 选部门、右侧 Table 维护成员,新增走 Form 校验、移出走 ConfirmDialog,数据与用户列表共享
|
|
584
|
+
- 部门管理页同步适配深色主题与窄屏单列布局
|
|
585
|
+
|
|
586
|
+
## 0.17.0
|
|
587
|
+
|
|
588
|
+
- 新增 `DjmTree` 树形控件:展开收起、父子联动勾选(含半选)、`checkStrictly` 独立勾选、`defaultExpandAll`
|
|
589
|
+
- Tree 支持懒加载 `lazy` + `load(node) => Promise<children>`,加载中显示 spinner,结果按父节点缓存
|
|
590
|
+
- Tree 支持 `keyword` 过滤,命中叶子时保留祖先路径并自动展开;`node` 插槽可自定义节点内容
|
|
591
|
+
- 补齐 Tree 的类型声明与文档页,测试增至 36 项
|
|
592
|
+
|
|
593
|
+
## 0.16.0
|
|
594
|
+
|
|
595
|
+
- DatePicker 支持 `range` 日期范围:两次点击确定区间、区间高亮、回传 `[start, end]`
|
|
596
|
+
- Table 新增列设置:`column-setting` 打开面板勾选展示列,至少保留一列,支持重置
|
|
597
|
+
- Table 新增内置 CSV 导出:`exportable` / `export-name`,列可配 `exportValue` 与 `exportable: false`
|
|
598
|
+
- Table 新增 `toolbar` / `toolbar-extra` 插槽与 `export` 事件,UserList 工具条迁入表格
|
|
599
|
+
- 测试增至 33 项
|
|
600
|
+
|
|
601
|
+
## 0.15.0
|
|
602
|
+
|
|
603
|
+
- 新增 `sanitizeHtml` HTML 白名单清洗,富文本预览与粘贴内容统一过滤脚本、事件属性与危险协议
|
|
604
|
+
- 新增 `types/index.d.ts` 类型声明,覆盖全部组件 props 与工具函数,package.json 接入 `types`
|
|
605
|
+
- 新增 GitHub Actions:静态检查、样式构建与 headless Chrome 浏览器测试
|
|
606
|
+
- Table 列配置支持 `headerClass` / `cellClass`,可分别定制表头与单元格样式
|
|
607
|
+
- Form 的 `pattern` 规则跳过空值,可选字段不再误报格式错误
|
|
608
|
+
- UserList / RoleList 迁移到 DjmTable 与 DjmForm,删除手写表格、排序与校验逻辑
|
|
609
|
+
- Dropdown 触发器补 `aria-expanded` / `aria-haspopup`;测试增至 31 项
|
|
610
|
+
|
|
611
|
+
## 0.14.0
|
|
612
|
+
|
|
613
|
+
- Dropdown 新增 `trigger="hover"`、`disabled`、`close-on-select`、`max-height` 与 `visible-change` 事件
|
|
614
|
+
- Dropdown 菜单项支持 `description` 两行说明与 `active` 选中态,新增 `item` 插槽自定义
|
|
615
|
+
- Dropdown 菜单 teleport 到 body 并用 fixed 定位,空间不足自动向上展开,不再被容器裁剪
|
|
616
|
+
- TreeSelect 新增 `disabled` / `clearable` / `maxTagCount` / `showFooter`(关闭后勾选即生效)与 `change` 事件
|
|
617
|
+
- 文档补齐两个组件的示例与 API;测试增至 29 项
|
|
618
|
+
|
|
619
|
+
## 0.13.0
|
|
620
|
+
|
|
621
|
+
- Form 支持 `label-width` 左右布局与 `inline` 行内表单,无标签项自动横跨整行
|
|
622
|
+
- `resetFields()` 现在会还原初始值,新增 `setInitial()` 供异步数据加载后重新记录
|
|
623
|
+
- Checkbox 支持 `options` 选项组、`direction`、`min` / `max` 限制,超出时抛 `exceed`
|
|
624
|
+
- Radio 支持 `options` 选项组与 `direction`,自动生成 `name` 避免同页多组互相取消
|
|
625
|
+
- 文档补齐四个组件的示例与 API;测试增至 27 项
|
|
626
|
+
|
|
627
|
+
## 0.12.0
|
|
628
|
+
|
|
629
|
+
- Modal 新增 `fullscreen` 全屏模式、`show-close`、`close-on-esc`,并补 `header` 插槽与 `open` / `close` 事件
|
|
630
|
+
- Drawer 同步新增 `mask-closable`、`show-close`、`close-on-esc`、`header` 插槽与 `open` / `close` 事件
|
|
631
|
+
- 弹窗 `aria-labelledby` 指向头部容器,自定义头部时也能正确朗读
|
|
632
|
+
- 文档补充两个组件的 Props / Events / Slots;测试增至 24 项
|
|
633
|
+
|
|
634
|
+
## 0.11.0
|
|
635
|
+
|
|
636
|
+
- Select 重写为自绘下拉:支持搜索过滤、多选标签(`max-tag-count` 折叠)、清空与禁用选项
|
|
637
|
+
- 键盘操作:上下键切换、Enter 选中、Esc 关闭、多选退格删标签;补齐 listbox / aria 关联
|
|
638
|
+
- 面板 teleport 到 body 并用 fixed 定位,空间不足自动向上展开,不再被父级 overflow 裁剪
|
|
639
|
+
- 原生 select 样式收敛为 `select.djm-select`,页面里手写的 `<select class="djm-select">` 不受影响
|
|
640
|
+
- 文档 Select 页补充多选与搜索示例;测试增至 23 项
|
|
641
|
+
|
|
642
|
+
## 0.10.0
|
|
643
|
+
|
|
644
|
+
- 新增 `DjmUpload`:拖拽 / 点击选择、accept 与体积校验、数量上限、进度回传
|
|
645
|
+
- 上传动作交给 `request(file, { onProgress, onSuccess, onError })`,返回值支持取消函数或 Promise
|
|
646
|
+
- 支持 `list-type="picture"` 图片墙、`auto-upload=false` 手动提交、`before-upload` 前置拦截
|
|
647
|
+
- 暴露 `submit()` / `clear()` / `addFiles()` / `pick()`,事件含 success / error / remove / exceed
|
|
648
|
+
- 上传文案接入国际化;示例页与文档站改用新组件,文档新增「方法」表;测试增至 22 项
|
|
649
|
+
|
|
650
|
+
## 0.9.0
|
|
651
|
+
|
|
652
|
+
- Table 新增固定列:列配置 `fixed: 'left' | 'right'` 自动计算偏移,选择 / 序号 / 展开列会一并吸边
|
|
653
|
+
- Table 新增 `max-height`:纵向滚动 + 表头吸顶,固定列在滚动时保持可见并带投影分隔
|
|
654
|
+
- Table 新增展开行:`expandable` 支持布尔或 `(row) => boolean` 逐行控制,`v-model:expanded` 管理展开集合
|
|
655
|
+
- Table 新增 `header-<key>` 表头插槽与 `row-class` 行样式(字符串或函数)
|
|
656
|
+
- 展开内容走 `#expand` 插槽,参数 `{ row, index }`;展开行不参与 hover 高亮
|
|
657
|
+
- 文档新增「Table 固定列」页,表格页加入展开示例;测试增至 21 项
|
|
658
|
+
|
|
659
|
+
## 0.8.0
|
|
660
|
+
|
|
661
|
+
- Table 支持受控排序:列配置 `sortable`,可传自定义 `sorter`
|
|
662
|
+
- `sortKey` / `sortDir` 支持 v-model,点击表头按升序 → 降序 → 取消循环
|
|
663
|
+
- 表头补充 `aria-sort`,排序图标区分未激活 / 激活状态
|
|
664
|
+
- 文档表格页加入排序示例,测试增至 19 项
|
|
665
|
+
|
|
666
|
+
## 0.7.0
|
|
667
|
+
|
|
668
|
+
- Form 增加校验能力:`model` + `rules`(required / pattern / validator),提交前自动校验并回传 `valid`
|
|
669
|
+
- 暴露 `validate()` / `validateField()` / `clearValidate()` / `resetFields()`,支持通过 ref 主动调用
|
|
670
|
+
- FormItem 新增 `prop`,错误提示由表单统一管理,`error` 仍可直接覆盖
|
|
671
|
+
- 文档表单页改为规则校验示例;测试增至 18 项
|
|
672
|
+
|
|
673
|
+
## 0.6.0
|
|
674
|
+
|
|
675
|
+
- 新增暗色主题:`data-djm-theme="dark"`,示例应用顶栏与文档站均可切换,偏好写入 localStorage
|
|
676
|
+
- 高频硬编码颜色收敛为语义变量(surface / hover / brand-soft / glass / loading-mask 等),暗色下无浅底残留
|
|
677
|
+
- 新增国际化 `src/locale`:内置 zh-CN / en-US,`install(app, { locale })` 或运行时 `setLocale()` 切换
|
|
678
|
+
- 分页、表格、空状态、日期选择、树选择、弹窗、确认框的内置文案接入 `t()`
|
|
679
|
+
- 新增 `npm run build`,输出单文件 `dist/djm-ui.css`,便于嵌入宿主系统
|
|
680
|
+
- 文档站新增「主题与国际化」指南页;测试增至 17 项
|
|
681
|
+
|
|
682
|
+
## 0.5.0
|
|
683
|
+
|
|
684
|
+
- 示例页面从 `src/components/` 迁到 `src/views/`,组件库与示例应用分离
|
|
685
|
+
- 文档站补齐 DatePicker、TreeSelect、RichEditor、FloatingWindow、ContextMenu 五个页面(共 25 页)
|
|
686
|
+
- 文档站每个组件页新增「示例代码」块,支持一键复制
|
|
687
|
+
- 新增浏览器测试套件 `tests/index.html`,覆盖 15 项组件契约
|
|
688
|
+
- 新增语法检查脚本,`npm test` 同时执行语法与命名空间检查
|
|
689
|
+
|
|
690
|
+
## 0.4.0
|
|
691
|
+
|
|
692
|
+
- Modal / Drawer:焦点陷阱、`aria-labelledby`、关闭后焦点归还
|
|
693
|
+
- Tabs:方向键 / Home / End 切换,roving tabindex,tab 与 tabpanel 关联
|
|
694
|
+
- Tooltip:靠近视口边缘自动翻转
|
|
695
|
+
- Pagination:补充 aria-label 与 aria-current
|
|
696
|
+
- 新增零构建静态文档站 `docs/`,20 个组件页含实时示例与 API 表
|
|
697
|
+
|
|
698
|
+
## 0.3.0
|
|
699
|
+
|
|
700
|
+
- `app.css` 拆分为 tokens / base / layout / components 共 31 个样式文件
|
|
701
|
+
- 新增 Checkbox、Radio、Switch、Tooltip、Dropdown、Drawer
|
|
702
|
+
- 弹窗滚动锁改为计数式,多个弹层叠加不再互相解锁
|
|
703
|
+
- 新增「浮层与选择」示例页
|
|
704
|
+
|
|
705
|
+
## 0.2.0
|
|
706
|
+
|
|
707
|
+
- 10 个基础组件目录化到 `components/<name>/index.js`
|
|
708
|
+
- 新增统一入口 `src/index.js`(install 插件)与 `package.json` exports
|
|
709
|
+
- 消息服务 `djmMessage` 独立,组件不再依赖应用外壳的 provide
|
|
710
|
+
- 新增 Button、Input、Select、Form、FormItem、Table、Empty、PageHeader、Status
|
|
711
|
+
|
|
712
|
+
## 0.1.0
|
|
713
|
+
|
|
714
|
+
- 初始化 DJM UI:树形导航、多标签页、用户 / 角色管理、20+ 组件示例页
|
|
715
|
+
- 所有 class 统一 `djm-` 前缀,CSS 变量统一 `--djm-*`
|