1738 Commits

Author SHA1 Message Date
芋道源码
6d524906a3 !313 Merge remote-tracking branch 'yudao/dev' into dev
Merge pull request !313 from Jason/dev
2025-12-29 14:43:47 +00:00
jason
cbd1f0bcbb Merge remote-tracking branch 'yudao/dev' into dev 2025-12-29 11:53:00 +08:00
jason
2ba2c8e986 feat: [bpm] [ele,antd] todo 优化, 更多设置问题修复 2025-12-29 11:51:48 +08:00
YunaiV
06f1ae1a66 review:【mall】营销相关 2025-12-29 08:17:35 +08:00
YunaiV
029b2ffaab review:【antd/ele】【mall】营销活动的实现 2025-12-29 07:03:00 +08:00
jason
64ac25de00 Merge remote-tracking branch 'yudao/dev' into dev 2025-12-29 00:12:30 +08:00
jason
6606dfd40a feat: [bpm][ele] todo 优化 2025-12-29 00:09:22 +08:00
芋道源码
6da4a39ff9 !312 feat:【ele/antd】mall todo 优化
Merge pull request !312 from puhui999/dev-mall
2025-12-28 13:23:18 +00:00
puhui999
aa95d0e87c feat:【ele/antd】profile todo 优化 2025-12-28 18:55:07 +08:00
puhui999
6353f0a8e9 feat:【ele/antd】discountActivity todo 优化 2025-12-28 18:34:28 +08:00
puhui999
e6327ae9da feat:【ele】spu todo 优化 2025-12-28 17:57:10 +08:00
puhui999
4395353c22 feat:【ele/antd】rewardActivity todo 优化 2025-12-28 17:35:43 +08:00
puhui999
c023ebbdb9 feat:【ele】cropper、form-create\rules todo 优化 2025-12-28 15:44:21 +08:00
YunaiV
63a8d562ce feat:【antd/ele】文件上传的组件优化 2025-12-27 18:50:42 +08:00
YunaiV
a109168c66 fix:【pay】修复钱包支付、模拟支付配置的修改报错问题 2025-12-27 17:29:08 +08:00
YunaiV
304f2442eb feat:【antd/ele】【infra】统一 cron-tab 的封装 2025-12-27 17:13:40 +08:00
YunaiV
826a1b355a feat:【antd/ele】对齐两侧的代码 2025-12-27 17:06:15 +08:00
YunaiV
9ef218f930 refactor: 【crm】【antd/ele】提取图表配置生成函数,统一 legend/grid/tooltip 处理,优化饼图面板生成 2025-12-27 17:02:11 +08:00
YunaiV
5a5d2f17da feat:【bpm】【antd/ele】业务表单,支持重新发起流程 2025-12-27 12:49:14 +08:00
xingyu4j
ab7b77989f fix: lint 2025-12-26 14:25:55 +08:00
xingyu4j
eacff553bd docs: README 2025-12-26 14:18:47 +08:00
xingyu4j
331cb2ca70 fix: sort 2025-12-26 14:18:38 +08:00
xingyu4j
703561ea33 chore: update deps 2025-12-26 14:18:29 +08:00
xingyu4j
c32a4c3e05 feat: remove playground 2025-12-26 14:11:34 +08:00
xingyu4j
77cd814c99 Merge branch 'main' of https://github.com/vbenjs/vue-vben-admin into dev 2025-12-26 14:00:55 +08:00
YunaiV
68bb90a503 review:【antd】【iot】代码实现 2025-12-25 09:19:17 +08:00
YunaiV
11b5068e91 review:【antd】【bpm】评审流程详情界面 2025-12-25 00:58:16 +08:00
芋道源码
cb8a633f1f !308 refactor:【antd】【iot】代码优化
Merge pull request !308 from haohaoMT/dev
2025-12-22 14:21:49 +00:00
JyQAQ
a1bb132233 feat(api-cascader): 添加联级组件ApiCascader (#7031) 2025-12-22 20:00:31 +08:00
zhenghaoyang24
022d538940 Fix formatting in thin.md for clarity (#7008)
修改一些语句错误
2025-12-22 19:58:05 +08:00
xueyitt
ccf70a1b76 feat: 修正菜单排序在二级菜单不生效问题 (#7007)
* treeUtil增加对树形结构数据进行递归排序

* 菜单sort排序各级菜单均生效
2025-12-22 19:57:21 +08:00
haohao
6bf9acbfb2 refactor:【antd】【iot】代码优化 2025-12-22 17:30:59 +08:00
YunaiV
13f81b3130 review:【antd】【iot】代码实现 2025-12-21 23:04:57 +08:00
YunaiV
835da00f2c review:【antd/ele】【bpm】流程模型的迁移 2025-12-21 22:41:03 +08:00
YunaiV
bc654c9d45 fix:【ele】【mall】商品列表的“商品分类”不展示的问题,对应 https://t.zsxq.com/JCOWV 2025-12-21 21:24:59 +08:00
YunaiV
0f864b22c1 fix:【ele】【infra】代码生成时,无法选中菜单,对应 https://t.zsxq.com/xZ4fL 2025-12-21 21:15:49 +08:00
芋道源码
08f6cb7d14 !305 fix: [ele] 树形控件展开和选择属性配置问题
Merge pull request !305 from Lcp/dev
2025-12-21 12:53:39 +00:00
YunaiV
3ea5510a21 review:【antd/ele】【mall】营销模块的迁移 2025-12-21 20:50:27 +08:00
芋道源码
a3f282cba3 !307 mall 商城优化完善
Merge pull request !307 from puhui999/dev-mall
2025-12-21 11:13:33 +00:00
YunaiV
7ab917dc48 fix:【system】邮箱移除无用的 remark 字段及相关表单项 2025-12-20 20:48:24 +08:00
YunaiV
e850ffb038 fix:【bpm】修复流程模型的业务表单,路径的 tooltip 不对 2025-12-20 15:11:54 +08:00
芋道源码
1fc39e3fbb !306 Merge remote-tracking branch 'yudao/dev' into dev
Merge pull request !306 from Jason/dev
2025-12-20 07:10:35 +00:00
puhui999
568d5aa4cf feat:【antd】【mall】修复满减送编辑时表单打开异常的问题,原因:antd RangePicker 需要 dayjs 对象 2025-12-20 11:35:01 +08:00
puhui999
535c82c844 feat:【ele】【mall】seckill 代码对齐 antd 2025-12-20 11:20:34 +08:00
puhui999
c1b1343794 feat:【ele】【mall】rewardActivity 代码对齐 antd 2025-12-20 11:11:00 +08:00
puhui999
41f0a9465d feat:【ele】【mall】point 代码对齐 antd 2025-12-20 10:59:40 +08:00
puhui999
a7054ec09c feat:【ele】【mall】coupon 代码对齐 antd 2025-12-20 10:46:59 +08:00
puhui999
ebf7221fd2 feat:【ele】【mall】ElDialog :append-to-body="true" 2025-12-20 10:40:27 +08:00
puhui999
fad560db52 feat:【ele】【mall】discountActivity 代码对齐 antd 2025-12-20 10:36:50 +08:00
puhui999
503ed01c57 feat:【ele】【mall】combination 代码对齐 antd 2025-12-20 10:32:38 +08:00
puhui999
b9466282fc feat:【ele】【mall】bargain 代码对齐 antd 2025-12-20 10:10:19 +08:00
puhui999
d3a7a874a6 feat:【ele】【mall】comment 代码对齐 antd 2025-12-20 10:04:24 +08:00
YunaiV
d4b99f321d fix:【system】登录日志的“操作类型”改为“登录类型” 2025-12-20 09:23:34 +08:00
puhui999
e1e0554aca feat:【ele】【mall】spu 代码对齐 antd 2025-12-20 09:13:38 +08:00
puhui999
f429e74e79 feat:【antd】【mall】point 优化完善 2025-12-20 08:56:32 +08:00
puhui999
f99d708c97 feat:【antd】【mall】rewardActivity 优化完善 2025-12-20 08:53:47 +08:00
puhui999
57855eff06 feat:【antd】【mall】seckill 优化完善 2025-12-20 08:40:09 +08:00
puhui999
348cc35aec feat:【antd】【mall】combination 优化完善 2025-12-20 08:33:40 +08:00
puhui999
6922ab13fc feat:【antd】【mall】bargain 优化完善 2025-12-20 08:24:30 +08:00
jason
01dd8171e9 Merge remote-tracking branch 'yudao/dev' into dev 2025-12-18 23:32:39 +08:00
jason
0d043bca94 feat: [bpm][ele] bpmn 设计器问题修复 2025-12-18 23:28:59 +08:00
jason
9504fa3980 feat: [bpm][ele] bpmn 设计器流程监听器选择弹窗组件 2025-12-18 23:27:38 +08:00
jason
a91be61c21 feat: [bpm][ele] bpmn 设计器流程表达式选择弹窗组件 2025-12-18 23:25:37 +08:00
jason
b18353e171 feat: [bpm][ele] bpmn 设计器时间事件配置优化 2025-12-18 11:15:35 +08:00
YunaiV
fbcb498f5b feat:【system】操作日志增加 userType 的展示 2025-12-17 13:13:22 +08:00
Liu
32263c2b09 fix: [ele] 树形控件展开和选择属性配置问题 2025-12-17 11:12:51 +08:00
芋道源码
2202ef3b3c !304 refactor:【antd】【iot】重构设备详情页面,优化组件结构与路径,优化设备配置、属性、事件管理等功能
Merge pull request !304 from haohaoMT/dev
2025-12-16 14:55:09 +00:00
haohao
191e15975c refactor:【antd】【iot】重构设备详情页面,优化组件结构与路径,优化设备配置、属性、事件管理等功能 2025-12-16 16:45:35 +08:00
YunaiV
eb17976e96 merge: 合并远程 origin/dev 分支代码 2025-12-16 13:35:38 +08:00
YunaiV
70982eff92 fix:【ele】promotion activity 漏了一个 } 导致报错 2025-12-16 13:33:26 +08:00
芋道源码
5532f59c40 !303 refactor:【antd】【iot】统一列表视图和卡片视图的查询接口
Merge pull request !303 from haohaoMT/dev
2025-12-16 05:28:16 +00:00
haohao
439a35c165 refactor:【antd】【iot】统一列表视图和卡片视图的查询接口 2025-12-16 09:58:16 +08:00
芋道源码
42bdc15df5 !302 Merge remote-tracking branch 'yudao/dev' into dev
Merge pull request !302 from Jason/dev
2025-12-16 00:55:46 +00:00
haohao
3744069aa2 refactor:【antd】【iot】产品详情修改路径到 detail 2025-12-15 22:48:09 +08:00
jason
936e127c0d Merge remote-tracking branch 'yudao/dev' into dev 2025-12-15 22:42:17 +08:00
jason
ba126288a0 feat: [bpm][ele] bpmn 设计器 用户任务配置迁移优化 2025-12-15 22:39:59 +08:00
芋道源码
1d8d70e71a !301 refactor:【antd】【iot】更新首页必要的 ReqVO、RespVO
Merge pull request !301 from haohaoMT/dev
2025-12-15 14:28:31 +00:00
haohao
5cb412a4da refactor:【antd】【iot】更新首页必要的 ReqVO、RespVO 2025-12-15 21:51:09 +08:00
jason
dde16e26fe feat: [bpm][ele] bpmn 设计器迁移 2025-12-15 21:21:54 +08:00
jason
ca8ac99b6e feat: [bpm][ele] bpmn 设计器迁移 2025-12-15 21:03:28 +08:00
YunaiV
e3c1676523 review:【antd/ele】【mall】商品模块的迁移 2025-12-15 19:44:11 +08:00
YunaiV
4ec82f0fd0 review:【antd/ele】【mall】营销模块的迁移 2025-12-15 19:29:47 +08:00
芋道源码
ef0f0a9a9d !300 feat:【ele】【mall】promotion 代码迁移
Merge pull request !300 from puhui999/dev-mall
2025-12-15 09:01:19 +00:00
puhui999
b36c3c4209 feat:【ele】【mall】combination 代码迁移 2025-12-15 16:26:23 +08:00
puhui999
f137a66b6c feat:【ele】【mall】bargain 代码迁移 2025-12-15 16:18:14 +08:00
puhui999
e8526674c5 feat:【ele】【mall】seckill 代码迁移 2025-12-15 16:16:50 +08:00
puhui999
5417b19a8b feat:【ele】【mall】spu 选择组件优化 2025-12-15 16:07:47 +08:00
puhui999
e0d3fac19e feat:【ele】【mall】rewardActivity 代码迁移 2025-12-15 15:55:56 +08:00
puhui999
f943b175eb feat:【ele】【mall】point 代码迁移 2025-12-15 15:29:37 +08:00
YunaiV
3088fb3d46 review:【antd/ele】【MP】代码迁移的 review 2025-12-15 14:27:09 +08:00
芋道源码
43f3303ad2 !299 Merge branch 'dev' of <a href="https://gitee.com/yudaocode/yudao-ui-admin-vben">https://gitee.com/yudaocode/yudao-ui-admin-vben</a> into dev
Merge pull request !299 from dylanmay/dev
2025-12-15 06:17:56 +00:00
dylanmay
bdf1c293bd Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-12-15 10:18:46 +08:00
dylanmay
12b0575ca1 fix: resolve todo 2025-12-15 10:13:13 +08:00
puhui999
3102eb511f feat:【ele】【mall】spu 代码迁移 2025-12-14 16:35:58 +08:00
puhui999
d8c87c0f7c feat:【antd】【mall】砍价活动商品选择优化 2025-12-14 15:05:46 +08:00
puhui999
f849f3ad3d feat:【antd】【mall】拼团活动商品选择优化 2025-12-14 14:59:24 +08:00
芋道源码
47dfccd9eb Merge pull request #187 from solante1012/dev
fix: [bpm][antd] BPM 设计器用户任务, 点击查不到数据问题
2025-12-13 10:27:01 +08:00
芋道源码
1d0b14bbe5 !298 Merge remote-tracking branch 'yudao/dev' into dev
Merge pull request !298 from Jason/dev
2025-12-13 01:15:08 +00:00
jason
07c8763fae Merge remote-tracking branch 'yudao/dev' into dev 2025-12-13 00:43:26 +08:00
jason
8df5fbc843 feat: [bpm][antd] bpmn 设计器时间事件定义优化 2025-12-13 00:39:00 +08:00
chencan
51ce864dbd fix: [bpm][antd] BPM 设计器用户任务, 点击查不到数据问题 2025-12-12 15:12:39 +08:00
jason
d50b9fae60 fix: [bpm][antd] bpmn 设计器审批人超时未处理自定义配置问题修复 2025-12-12 13:36:50 +08:00
jason
0db2710e80 fix: [bpm][antd] bpmn 设计器流转条件问题修复 2025-12-11 18:05:58 +08:00
芋道源码
380f74015e !297 Merge remote-tracking branch 'yudao/dev' into dev
Merge pull request !297 from Jason/dev
2025-12-09 15:26:58 +00:00
jason
2fc76789e2 Merge remote-tracking branch 'yudao/dev' into dev 2025-12-09 23:15:54 +08:00
jason
43ed7aeefb feat: [bpm][antd] bpmn 设计器子流程调用问题修复 2025-12-09 23:14:35 +08:00
jason
28e4305916 feat: [bpm][antd] bpm 设计器接收任务优化 2025-12-09 20:20:47 +08:00
芋道源码
223be87dc8 !296 feat: [bpm][antd] bpmn设计器脚本任务优化
Merge pull request !296 from Jason/dev
2025-12-09 01:11:31 +00:00
jason
70bcc5ea0f feat: [bpm][antd] bpmn设计器脚本任务优化 2025-12-08 23:41:34 +08:00
jason
fba43de19f fix: [bpm][antd] bpm设计器 ServiceTask 问题修复 2025-12-08 22:55:27 +08:00
YunaiV
f1c7a4ebfb review:【antd】【BPM】代码迁移的 review 2025-12-08 08:59:55 +08:00
芋道源码
67ed1753a7 !295 feat: [bpm][antd] bpm设计器 用户任务自定义配置优化
Merge pull request !295 from Jason/dev
2025-12-08 00:54:24 +00:00
jason
1c17746864 feat: [bpm][antd] bpm设计器 用户任务自定义配置优化 2025-12-08 00:01:44 +08:00
jason
2cf7e70b70 feat: [bpm][antd] bpm设计器 多人审批方式优化 2025-12-07 23:59:50 +08:00
jason
cfb9a9b3c9 fix: 冲突解决 2025-12-07 21:22:27 +08:00
YunaiV
2a4c774aca review:【antd/ele】【iot】代码迁移的 review 2025-12-07 16:36:55 +08:00
芋道源码
250109507f !294 refactor:【antd】【iot】将物联网设备和产品枚举整合为常量,优化设备导入功能,简化设备管理UI组件
Merge pull request !294 from haohaoMT/dev
2025-12-07 04:53:11 +00:00
YunaiV
03d25bf85a review:【antd/ele】【mp】代码迁移的 review 2025-12-07 12:51:51 +08:00
芋道源码
2fc86b7bda !292 fix: todo 处理
Merge pull request !292 from dylanmay/dev
2025-12-07 04:36:19 +00:00
YunaiV
274aa7da73 fix: 【bpm】bpmn设计器: 消息与信号不能保存,对应issure:#202 #206【同步自 vue3 + element-plus】 2025-12-07 12:28:24 +08:00
YunaiV
7366b948a3 fix: 【bpm】bpmn设计器: 组件部分属性第一次失去焦点丢失数据问题 #204 【同步自 vue3 + element-plus】 2025-12-07 12:26:03 +08:00
jason
89f93d0291 feat: [bpm][antd] bpm 设计器消息与信号,文档描述优化 2025-12-06 21:56:27 +08:00
haohao
2b270caf30 refactor:【antd】【iot】将物联网设备和产品枚举整合为常量,优化设备导入功能,简化设备管理UI组件 2025-12-06 17:54:46 +08:00
jason
21b5dc255e fix: [bpm][antd] bpm 设计器添加属性问题修复 2025-12-06 16:59:02 +08:00
JyQAQ
1479f159aa feat(CellImage): CellImage组件支持图片属性写入 (#6992) 2025-12-06 10:12:58 +08:00
jason
5e1abfb08a Merge remote-tracking branch 'yudao/dev' into dev 2025-12-05 22:54:07 +08:00
jason
604517b2ab feat: [bpm][antd] bpm 设计器执行监听器优化 2025-12-05 22:52:42 +08:00
jason
d3cfc67bd7 feat: [bpm][antd] BPM 设计器选择监听器 2025-12-05 21:24:32 +08:00
dylanmay
5bae28516c fix: todo 处理 2025-12-05 11:00:48 +08:00
dylanmay
5a6122ab75 Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-12-05 09:37:41 +08:00
dylanmay
5021f2487d fix: ele mp 素材管理 2025-12-05 09:35:49 +08:00
jason
75a2b331b7 feat: [bpm][antd] 用户和部门选择组件位置优化 2025-12-04 22:35:40 +08:00
xingyu
cc375100cb !290 refactor:【antd】【iot】产品管理问题修复
Merge pull request !290 from haohaoMT/dev
2025-12-04 03:07:26 +00:00
xingyu
dea8bf4631 !291 Merge remote-tracking branch 'yudao/dev' into dev
Merge pull request !291 from Jason/dev
2025-12-04 03:05:40 +00:00
jason
d7d883a54c Merge remote-tracking branch 'yudao/dev' into dev 2025-12-03 23:57:54 +08:00
jason
943a8e0cee fix: [bpm][antd] BPM 设计器任务监听器问题修复 2025-12-03 23:55:28 +08:00
JyQAQ
9105d4d14a feat(api-component): api-component组件的options支持指定disabled值 (#6991) 2025-12-03 10:03:23 +08:00
haohao
62b12235f7 refactor:【antd】【iot】产品管理问题修复 2025-12-02 17:54:18 +08:00
haohao
00ee233f14 refactor:【antd】【iot】设备分组和产品分类表单简化 2025-12-02 16:17:00 +08:00
芋道源码
ae1c75ae9a !289 Merge remote-tracking branch 'yudao/dev' into dev
Merge pull request !289 from Jason/dev
2025-12-01 16:50:15 +00:00
jason
b94513dee4 Merge remote-tracking branch 'yudao/dev' into dev 2025-12-01 20:47:51 +08:00
YunaiV
16f9057e1c review:【antd】【mall】diy 店铺装修 2025-12-01 19:40:07 +08:00
芋道源码
60400525cc !287 fix: ele wx-material-select组件同步
Merge pull request !287 from hw/dev
2025-12-01 11:23:59 +00:00
YunaiV
c05463ca0a review:【antd】【mall】营销活动的商品选择 2025-12-01 19:21:30 +08:00
YunaiV
a2e6e5097d review:【antd】【mall】营销活动的商品选择 2025-12-01 19:20:28 +08:00
芋道源码
68fc2f6a33 !288 feat:【antd】【mall】商城活动优化
Merge pull request !288 from puhui999/dev-mall
2025-12-01 10:54:59 +00:00
puhui999
a5b51f45da feat:【antd】【mall】商城活动优化 2025-12-01 18:37:05 +08:00
xingyu4j
05c064a250 fix: lint 2025-12-01 17:03:38 +08:00
xingyu4j
d16ebea639 fix: #ID9R98 2025-12-01 16:56:22 +08:00
jason
29e79448e4 feat: [bpm][antd] todo 修改, 一些优化 2025-12-01 15:53:57 +08:00
hw
a9a075346f fix: 【装修】todo修复 2025-12-01 15:48:27 +08:00
jason
0731999e7d feat: [bpm][antd] bpmn 设计器问题修复 2025-12-01 12:52:18 +08:00
hw
aedcf2d05c fix: ele wx-material-select组件同步 2025-12-01 10:40:36 +08:00
luoqiz
c76db7d8d1 fix: 修复icon丢失根属性导致的样式错误 (#6986) 2025-12-01 09:51:27 +08:00
芋道源码
df7135b288 !286 Merge remote-tracking branch 'yudao/dev' into dev
Merge pull request !286 from Jason/dev
2025-11-30 02:07:47 +00:00
jason
867ebf2967 Merge remote-tracking branch 'yudao/dev' into dev 2025-11-30 00:12:03 +08:00
jason
56669b134c feat: [bpm][ele] bpm 迁移优化 2025-11-30 00:10:54 +08:00
jason
e18bbca376 feat: [bpm][ele] bpm 迁移优化 2025-11-30 00:08:25 +08:00
YunaiV
86894d6e66 fix:【antd】【bpm】simple 设计器:画布的 CSS transition 属性以解决拖拽卡顿问题,来自:https://github.com/yudaocode/yudao-ui-admin-vue3/pull/173 2025-11-29 19:51:19 +08:00
YunaiV
2548db3fda feat:【antd】【bpm】bpmn 设计器:服务任务中新增执行类型,来自:https://github.com/yudaocode/yudao-ui-admin-vue3/pull/200/ 2025-11-29 18:46:40 +08:00
YunaiV
3f9dc0becc feat:【antd】【bpm】bpmn 设计器:修复一些bpmn-js标签typo问题,新增一些翻译,来自:https://github.com/yudaocode/yudao-ui-admin-vue3/pull/201 2025-11-29 18:36:58 +08:00
YunaiV
22aefe72f4 feat:【antd】【bpm】bpmn 设计器:优化 消息和信号 的新增,自动生成符合BPMN规范的id,来自:https://github.com/yudaocode/yudao-ui-admin-vue3/pull/203 2025-11-29 18:30:23 +08:00
YunaiV
6c9affae76 feat:【antd】【bpm】bpmn 设计器:工作流节点操作按钮的操作不起作用,来自:9f1c4f2578 2025-11-29 18:14:41 +08:00
YunaiV
71c80efab0 feat:【antd】【bpm】bpmn 设计器:增加消息与信号的编辑、删除功能,来自:c568d45180 2025-11-29 18:09:49 +08:00
YunaiV
f7ce553771 feat:【antd】【bpm】bpmn 设计器:bpmn 设计器:使用定时中间捕获事件,部署流程图提示校验失败:flowable-event-timer-missing-configuration,来自:b666e1bdd4 2025-11-29 18:05:03 +08:00
YunaiV
f9913692f0 feat:【antd】【bpm】bpmn 设计器:保留非监听器类型的扩展属性,避免移除监听器时清空其他配置,来自:33e489ebfc 2025-11-29 18:01:22 +08:00
YunaiV
72bbfd4a9c fix:【infra】数据源 id = 0 可以被编辑的错误 2025-11-29 16:12:38 +08:00
YunaiV
7aab11b984 feat:【system】支付宝小程序登录补充 2025-11-29 16:06:23 +08:00
YunaiV
09300af7bc feat:【infra】文件配置,增加 region 区域 2025-11-29 15:59:55 +08:00
YunaiV
6fb3480676 review:【antd/ele】【mp】代码迁移的 review 2025-11-29 11:54:15 +08:00
芋道源码
3409a8a88f !284 Merge branch 'dev' of <a href="https://gitee.com/yudaocode/yudao-ui-admin-vben">https://gitee.com/yudaocode/yudao-ui-admin-vben</a> into dev
Merge pull request !284 from dylanmay/dev
2025-11-29 03:34:46 +00:00
YunaiV
bdb63cb293 review:【antd】【mall】店铺装修 2025-11-29 11:32:37 +08:00
YunaiV
0ffebd6de4 feat:【antd】【mall】优化满减送的界面 2025-11-29 11:17:37 +08:00
YunaiV
56409edff4 Merge remote-tracking branch 'origin/dev' 2025-11-29 10:42:13 +08:00
YunaiV
d868e4abfc review:【antd】【mall】商品选择相关逻辑 2025-11-29 10:30:48 +08:00
dylanmay
6214c33c86 Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-11-28 15:51:53 +08:00
dylanmay
1dc2a31f84 fix: resolve ele to do 2025-11-28 15:42:19 +08:00
dylanmay
0d0d9e30c0 fix: resolve antd to do 2025-11-28 15:41:17 +08:00
dylanmay
ffc48fa171 fix: resolve antd to do 2025-11-28 15:39:39 +08:00
xingyu
8fa541ac95 !283 Merge remote-tracking branch 'yudao/dev' into dev
Merge pull request !283 from Jason/dev
2025-11-28 02:34:23 +00:00
jason
86efe618de Merge remote-tracking branch 'yudao/dev' into dev 2025-11-28 09:13:09 +08:00
jason
c9d917b649 feat: [bpm][ele] 发起流程迁移 2025-11-28 00:26:42 +08:00
YunaiV
6a8f60957d review:【antd/ele】【mall】代码迁移的 review 2025-11-27 17:58:54 +08:00
芋道源码
271923999c !282 feat:【antd】【mall】满减送组件优化
Merge pull request !282 from puhui999/dev-mall
2025-11-27 09:54:39 +00:00
puhui999
33c7f38ec3 feat:【antd】【mall】满减送组件优化 2025-11-27 17:50:07 +08:00
xingyu4j
1f212e7e6a Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-11-27 17:25:13 +08:00
puhui999
07c209bd1d feat:【antd】【mall】满减送组件优化 2025-11-27 17:20:12 +08:00
YunaiV
7d9285de96 review:【antd/ele】【mp】代码迁移的 review 2025-11-27 16:24:39 +08:00
xingyu4j
d558ebe510 fix: todo 比较通用 2025-11-27 14:08:17 +08:00
xingyu4j
0ab23a98d8 fix: todo 比较通用的功能 2025-11-27 14:07:00 +08:00
xingyu4j
7fea95adff fix: lint 2025-11-27 13:55:12 +08:00
xingyu
a976ca88f6 !281 Merge branch 'dev' of <a href="https://gitee.com/yudaocode/yudao-ui-admin-vben">https://gitee.com/yudaocode/yudao-ui-admin-vben</a> into dev
Merge pull request !281 from dylanmay/dev
2025-11-27 05:33:41 +00:00
dylanmay
6c5a65a6bd Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-11-27 12:17:53 +08:00
xingyu4j
8d9d60b960 fix: ele build error 2025-11-27 11:27:42 +08:00
xingyu4j
80c61f00eb fix: build error 2025-11-27 11:24:07 +08:00
xingyu4j
08eb0d6bc0 fix: build error 2025-11-27 11:22:19 +08:00
xingyu4j
dcb491dfa8 fix: build error 2025-11-27 11:22:17 +08:00
xingyu4j
45449475e3 chore: deps 2025-11-27 11:08:23 +08:00
xingyu4j
219c8e19c4 fix: tailwindcss style 2025-11-27 11:05:57 +08:00
xingyu4j
1a18c5c771 fix: tailwindcss style 2025-11-27 11:05:04 +08:00
xingyu4j
8e2c85770c fix: lint 2025-11-27 11:04:41 +08:00
xingyu4j
54bd498f24 fix: tailwindcss style 2025-11-27 11:04:23 +08:00
xingyu4j
9ce498f269 fix: lint 2025-11-27 11:03:49 +08:00
dylanmay
5374e64bcb fix: resolve todo 2025-11-27 09:55:24 +08:00
芋道源码
631c098c11 !280 Merge remote-tracking branch 'yudao/dev' into dev
Merge pull request !280 from Jason/dev
2025-11-26 15:13:19 +00:00
jason
8fa9366a19 Merge remote-tracking branch 'yudao/dev' into dev 2025-11-26 22:50:12 +08:00
jason
fe8d13da66 feat: [bpm][ele] 流程/任务详情迁移 2025-11-26 22:49:00 +08:00
jason
ac305676d8 feat: [bpm][ele] 流程/任务详情迁移 2025-11-26 22:46:38 +08:00
YunaiV
03e5bf5c3d fix:【antd】构建失败的问题 2025-11-26 19:24:49 +08:00
YunaiV
4af433e4d7 review:【antd/ele】代码迁移的 review 2025-11-26 19:17:55 +08:00
芋道源码
d5e2afdb55 !279 fix: 图文草稿箱样式调整、todo修复
Merge pull request !279 from hw/dev
2025-11-26 11:08:51 +00:00
YunaiV
3cb0afe319 feat:【ele】【mp】模版消息的新增 2025-11-26 19:08:09 +08:00
YunaiV
672a6c9ccc feat:【antd】【mp】模版消息的新增 2025-11-26 19:05:08 +08:00
puhui999
4f45438e11 feat:【antd】【mall】积分商城活动优化 2025-11-26 16:40:13 +08:00
puhui999
0ded54872b fix:【antd】【mall】优化修复 spu-and-sku-list 选择器 2025-11-26 16:34:14 +08:00
puhui999
ea57b64795 fix:【antd】【mall】优化修复 sku-table-select 选择器 2025-11-26 16:30:30 +08:00
hw
0b2d35fc67 fix: 草稿箱行内样式修改 2025-11-26 15:44:00 +08:00
hw
c014f2a188 fix: 图文草稿箱样式调整、todo修复 2025-11-26 10:46:24 +08:00
芋道源码
4be5f8f799 !278 fix: 修复freePublish list类型错误
Merge pull request !278 from jawe/dev
2025-11-26 02:22:31 +00:00
YunaiV
2401559fa5 review:【antd】【mall】商品发布的迁移 2025-11-26 10:21:19 +08:00
芋道源码
58e8a71936 !277 feat:【antd】【mall】spu 优化
Merge pull request !277 from puhui999/dev-mall
2025-11-26 01:58:40 +00:00
jawe
6a95ed1af0 fix: 修复freePublish list类型错误 2025-11-26 09:53:26 +08:00
puhui999
c6ef772f93 fix:【antd】【mall】完善评论商品选择 2025-11-25 23:36:17 +08:00
puhui999
9b521cff90 fix:【antd】【mall】业务弹窗选择组件的 Modal 改成使用 antd 自己的。原因是 vben modal 嵌套关闭一个会全都关闭。 2025-11-25 21:29:35 +08:00
YunaiV
eb27bd5c6d review:【antd/ele】代码迁移的 review 2025-11-25 21:13:46 +08:00
YunaiV
b4a679dd08 feat: 【antd/ele】【infra】表单设计器:添加返回值类型配置到部门选择器 2025-11-25 20:09:06 +08:00
puhui999
c1fa433348 fix:【antd】【mall】业务弹窗选择组件的 Modal 改成使用 antd 自己的。原因是 vben modal 嵌套关闭一个会全都关闭。 2025-11-25 19:02:56 +08:00
puhui999
58e958fd87 fix:【antd】【mall】sku-list 为选择列(checkbox)添加了 fixed="left" 属性,确保它始终固定在第一列 2025-11-25 18:25:11 +08:00
puhui999
46129c53af feat:【antd】【mall】 优化积分商城活动表单 2025-11-25 18:22:00 +08:00
芋道源码
d40b6bc25b !276 fix: 启动命令还原
Merge pull request !276 from hw/dev
2025-11-25 10:18:15 +00:00
hw
11e3528eec fix: 启动命令还原 2025-11-25 14:46:55 +08:00
hw
46663651b4 fix: 遗漏修改 2025-11-25 14:45:52 +08:00
hw
1aad3b641c fix: eslint 2025-11-25 14:44:08 +08:00
hw
b4c77f5498 fix: 新分支迁移mp 2025-11-25 14:42:56 +08:00
Jin Mao
6f39e9136e Merge branch 'main' into feature/antd上传组件支持调用Image组件查看图片 2025-11-24 21:59:34 +08:00
xingyu4j
f22b390380 fix: lint 2025-11-24 15:34:25 +08:00
xingyu4j
c3a702efbf chore: lock 2025-11-24 15:34:18 +08:00
puhui999
26416b0acd feat:【antd】【mall】 spu 相关公共组件迁移 2025-11-24 15:07:00 +08:00
puhui999
390d9d7ca7 feat:【antd】【mall】 spu 相关公共组件迁移 2025-11-24 15:03:20 +08:00
xingyu4j
5804bc59f4 fix: lint 2025-11-24 14:35:21 +08:00
xingyu4j
a8fc1e5d33 fix: tdesign lint 2025-11-24 14:35:16 +08:00
xingyu4j
2c0c71e20a fix: naive lint 2025-11-24 14:35:01 +08:00
xingyu4j
db8d66d046 fix: ele lint 2025-11-24 14:34:52 +08:00
xingyu4j
50ba0c137a fix: antd lint 2025-11-24 14:34:38 +08:00
puhui999
c842592d10 feat:【antd】【mall】ProductAttributes 组件样式优化 2025-11-24 14:23:36 +08:00
xingyu4j
709afe9a83 Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-11-24 13:54:12 +08:00
puhui999
0ae62ef7e7 feat:【antd】【mall】spu 优化 2025-11-24 12:00:50 +08:00
xingyu4j
8f0b784124 feat: merge github 2025-11-24 11:47:54 +08:00
YunaiV
2926a8aa36 feat:【antd/ele】【mp】freePublish review 2025-11-24 11:47:47 +08:00
xingyu4j
e44f9a0aca Merge branch 'main' of https://github.com/vbenjs/vue-vben-admin into dev 2025-11-24 11:47:31 +08:00
芋道源码
ffba101d39 !271 feat: [mp] 图文发表记录迁移
Merge pull request !271 from jawe/dev
2025-11-24 03:30:18 +00:00
jawe
77596d716b feat: [mp] 图文发表记录迁移 2025-11-24 11:04:38 +08:00
milletpeak
1f1ba16ead Merge branch 'main' into milletpeak-fontsize 2025-11-24 08:55:54 +08:00
panda7
b6edc5f574 fix: centered 为 true 时设置 draggable 无法拖拽 (#6948)
Co-authored-by: sqchen <chenshiqi@sshlx.com>
2025-11-24 08:38:10 +08:00
Jin Mao
8b0f138100 Merge branch 'main' into deps 2025-11-24 08:23:02 +08:00
ming4762
a810cd0b48 fix: fix IconPicker reporting an error when using search if no icon is found (#6944)
* 修复未搜索图标时分页报错的问题
 * 优化`IconPicker` 的分页逻辑,由total触发跳转到第一页,而不是用户控制
2025-11-24 07:56:55 +08:00
aonoa
b17fec41b0 fix: tree component cannot set a value (#6941)
Signed-off-by: aonoa <1991849113@qq.com>
2025-11-24 07:56:16 +08:00
Rex
5fcfabf1d4 fix: 修复菜单管理中标题栏样式异常问题 (#6934) 2025-11-24 07:00:08 +08:00
YunaiV
cc7e8eda4f feat:【antd/ele】【mp】菜单的 review 2025-11-23 21:03:36 +08:00
YunaiV
5622b810e4 feat:【antd/ele】【mp】图文草稿箱的 review 2025-11-23 20:52:13 +08:00
YunaiV
97e337ef16 feat:【antd/ele】【mp】autoReply 迁移完成 2025-11-23 20:08:49 +08:00
芋道源码
e60bbcf1d5 !268 Merge branch 'dev' of <a href="https://gitee.com/yudaocode/yudao-ui-admin-vben">https://gitee.com/yudaocode/yudao-ui-admin-vben</a> …
Merge pull request !268 from hw/reform-mp
2025-11-23 10:53:33 +00:00
YunaiV
42697ec614 review:【antd】【iot】首页的迁移 2025-11-23 18:51:16 +08:00
芋道源码
a32ff4a9c9 !269 refactor:【antd】【iot】重构首页统计组件,优化图表配置和数据加载逻辑,移除未使用的比较卡片组件
Merge pull request !269 from haohaoMT/dev
2025-11-23 10:43:57 +00:00
YunaiV
7a3780ca0b fix:【antd】DatePicker 在 valueFormat: 'x' 时,会存在告警,对应 https://gitee.com/yudaocode/yudao-ui-admin-vben/issues/ID43CX 2025-11-23 18:42:44 +08:00
YunaiV
adf4c23dbc fix:【antd/ele】【bpm】修复模型管理的权限控制错误,对应 https://github.com/yudaocode/yudao-ui-admin-vben/issues/142 2025-11-23 18:23:47 +08:00
芋道源码
183547cdf2 !270 Merge remote-tracking branch 'yudao/dev' into dev
Merge pull request !270 from Jason/dev
2025-11-23 10:15:45 +00:00
jason
5b3f1b7ea0 Merge remote-tracking branch 'yudao/dev' into dev 2025-11-23 17:41:22 +08:00
jason
82b787188b feat: [bpm][ele] 仿钉钉流程设计器子流程迁移问题修复 2025-11-23 17:40:08 +08:00
haohao
c4ec1748a8 refactor:【antd】【iot】更新消息趋势卡片组件,替换日期选择器为快捷日期范围选择器 2025-11-23 16:02:21 +08:00
haohao
7d8c57711f refactor:【antd】【iot】优化消息趋势卡片组件,调整图表渲染逻辑 2025-11-23 15:44:24 +08:00
YunaiV
86991eb67b fix:【bpm】提交人权限的错误文案提示,https://gitee.com/zhijiantianya/yudao-cloud/issues/ICXD5T 2025-11-23 15:32:42 +08:00
YunaiV
3b5850bf6b fix:【framework】文件、图片上传的类型限制多选配置不正确的问题,https://t.zsxq.com/Pf1m7 2025-11-23 15:17:33 +08:00
haohao
a1e6982a28 refactor:【antd】【iot】重构首页统计组件,优化图表配置和数据加载逻辑,移除未使用的比较卡片组件 2025-11-23 15:07:21 +08:00
jason
c9fc450d74 Merge remote-tracking branch 'yudao/dev' into dev 2025-11-23 12:00:12 +08:00
jason
fec9a768d9 feat: [bpm][ele] 仿钉钉流程设计器迁移问题修复 2025-11-23 10:56:59 +08:00
jason
0e6d92e328 feat: [bpm][ele] 仿钉钉设计器迁移问题修复 2025-11-23 00:06:12 +08:00
YunaiV
b06278b3fd 834 fix:bpm 流程表单编辑打开直接保存js丢失问题修复 2025-11-22 22:05:27 +08:00
jason
c01b09b64b feat: [bpm][ele] 仿钉钉流程模型迁移 2025-11-22 09:29:25 +08:00
jason
9fa9437abf feat: [bpm][ele] 仿钉钉流程模型迁移 2025-11-22 09:20:49 +08:00
jason
dee1764556 feat: [bpm][ele] 用户选择弹窗,部门选择弹窗组件迁移 2025-11-21 22:12:24 +08:00
hw
a76583a522 Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into reform-mp 2025-11-21 18:20:07 +08:00
hw
8d7d3d5fe1 fix: todo修复 2025-11-21 18:19:42 +08:00
yuan.ji
1d77b018bb feat(function): add antd上传组件支持调用Image组件查看图片 2025-11-21 17:33:59 +08:00
YunaiV
80b4a16dc4 review:【antd】【iot】数据流转 2025-11-21 11:35:39 +08:00
YunaiV
f650d44194 review:【antd】【iot】物模型的管理 2025-11-21 11:20:27 +08:00
YunaiV
543e48504b review:【antd】【iot】设备管理(暂未彻底 review,等 product 搞完) 2025-11-21 10:53:54 +08:00
YunaiV
77afbe4d64 review:【antd】【iot】产品管理 2025-11-21 10:48:06 +08:00
jason
ff8187bcb0 feat: [bpm][ele] 新建流程模型 20% 2025-11-21 09:44:56 +08:00
YunaiV
863fbf7456 review:【antd】【iot】设备分组 2025-11-21 09:34:28 +08:00
YunaiV
0251dc2f3b review:【antd】【iot】商品分类 2025-11-21 09:23:55 +08:00
YunaiV
c38d746c25 review:【antd】【iot】首页统计 2025-11-21 09:17:19 +08:00
芋道源码
23b87b13c4 !260 refactor:【antd】【iot】优化设备详情中的自动刷新开关样式
Merge pull request !260 from haohaoMT/dev
2025-11-20 13:54:57 +00:00
YunaiV
0207271e62 feat:【ele/antd】【mall】diy 的 coupon 组件的代码风格统一 2025-11-20 21:39:53 +08:00
YunaiV
5c9a86c0f0 feat:【antd】【mp】mp 的代码评审(menu) 2025-11-20 21:36:36 +08:00
YunaiV
53ef992d1e feat:【antd】【mp】mp 的代码评审(material) 2025-11-20 21:25:46 +08:00
YunaiV
e2848653f9 feat:【antd】【mp】mp 的代码评审(autoReply) 2025-11-20 21:18:21 +08:00
YunaiV
8d2da0a4d1 feat:【antd】【mp】mp 的代码评审(components) 2025-11-20 21:09:02 +08:00
YunaiV
c39a445d77 feat:【antd】【mp】mp 的代码评审(draft) 2025-11-20 18:40:35 +08:00
YunaiV
5b4d3c9820 feat:【antd】【mp】mp 的代码评审 2025-11-20 18:08:15 +08:00
芋道源码
7f9041da18 !266 【antd/ele】【mp】迁移
Merge pull request !266 from hw/reform-mp
2025-11-20 09:57:17 +00:00
芋道源码
ee7b0de534 !267 Merge remote-tracking branch 'yudao/dev' into dev
Merge pull request !267 from Jason/dev
2025-11-20 09:54:06 +00:00
hw
c815e07321 fix: gitignore 2025-11-20 16:46:04 +08:00
hw
99e9d90e66 fix: gitignore 2025-11-20 16:38:35 +08:00
hw
05bf8092d0 Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into reform-mp 2025-11-20 16:31:23 +08:00
hw
0cb43368b4 fix: 环境变量还原 2025-11-20 16:30:35 +08:00
jason
fe940663cd Merge remote-tracking branch 'yudao/dev' into dev 2025-11-20 16:27:47 +08:00
YunaiV
21b5c126c1 feat:【antd/ele】【组件】dict-tag 封装的代码统一评审 2025-11-20 16:22:47 +08:00
YunaiV
342a948bc0 feat:【antd/ele】【组件】form-create 封装的代码统一评审 2025-11-20 16:10:41 +08:00
jason
acb0cd350c feat: [bpm][ele] 流程定义列表 2025-11-20 16:06:35 +08:00
YunaiV
4aef96a8f8 feat:【antd/ele】【组件】cron-tab 封装的代码统一评审 2025-11-20 15:41:36 +08:00
YunaiV
c295fdda37 feat:【antd/ele】【组件】cropper 封装的代码统一评审 2025-11-20 15:41:29 +08:00
YunaiV
76c3632c52 feat:【antd/ele】【组件】table-action 封装的代码统一(剩余部分) 2025-11-20 15:24:09 +08:00
YunaiV
5147e75331 feat:【antd/ele】【组件】tinymce 封装的代码统一 2025-11-20 15:19:45 +08:00
jason
656e6447f0 Merge remote-tracking branch 'yudao/dev' into dev 2025-11-20 13:32:53 +08:00
jason
2cf122ed14 feat: [bpm][ele] 流程模型列表 2025-11-20 13:02:37 +08:00
YunaiV
f425b821b3 feat:【ele】【infra】优化文件管理 2025-11-20 11:56:12 +08:00
YunaiV
cf581f3bb3 feat:【antd/ele】【mall/stat】优化 api 的注释 2025-11-20 11:05:51 +08:00
hw
0ea99e5aa8 fix: ele改回使用账号选择组件 2025-11-20 11:05:18 +08:00
YunaiV
f278ebaf79 feat:【antd/ele】【mall/stat】优化 api 的注释 2025-11-20 11:00:24 +08:00
YunaiV
937aac5b01 feat:【antd/ele】【mall/trade】优化 api 的注释 2025-11-20 10:50:17 +08:00
hw
cf14806b6f fix: todo修复 2025-11-20 10:34:21 +08:00
xingyu4j
712fdb6382 docs: images 2025-11-20 09:21:40 +08:00
xingyu4j
648224c252 docs: image 2025-11-20 09:21:24 +08:00
xingyu4j
17cd7670ab chore: move ci 2025-11-20 09:18:58 +08:00
YunaiV
2e4d79c99d feat:【antd/ele】【mall/product】优化 api 的注释 2025-11-20 09:16:08 +08:00
YunaiV
19c45368db feat:【antd/ele】【mall/promotion】优化 api 的注释 2025-11-20 09:09:46 +08:00
YunaiV
4d6eeb2681 feat:【antd/ele】【pay】优化 api 的注释 2025-11-20 08:43:34 +08:00
YunaiV
5743c213c2 feat:【ele】【bpm】优化 api 的注释 2025-11-20 08:37:08 +08:00
YunaiV
55cd88080c feat:【antd】【mp】优化 api 的注释 2025-11-19 22:18:02 +08:00
YunaiV
d7b6c87e33 feat:【antd/ele】【mp】优化 mp 账号的选择逻辑 2025-11-19 21:58:25 +08:00
YunaiV
25cd2b629c feat:【antd】【mp】review 枚举类相关的代码 2025-11-19 21:05:32 +08:00
YunaiV
234ca5cfa4 feat:【全局】system-enum.ts 拆分成 biz-*-enum.ts 多个枚举类,解耦 2025-11-19 20:51:26 +08:00
YunaiV
c0fe164710 feat:【ele】【ai】chat/index:修复小按钮之间的间隙不生效问题 2025-11-19 20:31:33 +08:00
YunaiV
55b47214c6 feat:【ele】【ai】chat/index:修复 conversation 高度不够的问题 2025-11-19 20:21:03 +08:00
YunaiV
ca04195846 feat:【ele】【ai】chat/index:关键组件的 review 2025-11-19 20:16:31 +08:00
YunaiV
241471f17a feat:【ele】【ai】chat/index:角色面板的优化 2025-11-19 18:48:19 +08:00
YunaiV
3b434cefa9 feat:【antd】【ai】chat/index:角色面板的优化 2025-11-19 17:10:51 +08:00
YunaiV
523e4b81da feat:【antd/ele】【ai】优化 api 格式 2025-11-19 16:46:34 +08:00
YunaiV
42f30230f2 feat:【ele】【ai】优化 chat 界面 2025-11-19 11:47:26 +08:00
米山
f7d9d1b1af chore: update package.json and app.vue imports, and ensure global styles are included 2025-11-19 11:13:06 +08:00
hw
c65fcfa2f3 Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into reform-mp 2025-11-19 11:12:42 +08:00
hw
887e9766be fix: todo修改 2025-11-19 11:12:09 +08:00
YunaiV
07cb707e82 feat:【antd/ele】useFormSchema 的 placeholder 2025-11-19 10:52:29 +08:00
米山
aaf0274fe9 feat: add menu font size variable and update related components
- Introduced a new CSS variable `--menu-font-size` calculated from the base font size.
- Updated `PreferenceManager` to trigger CSS variable updates when `fontSize` is modified.
- Adjusted `updateCSSVariables` to set the new `--menu-font-size` based on the theme's font size.
- Ensured that the menu components utilize the updated font size with `!important` to maintain styling consistency.
2025-11-19 10:51:10 +08:00
YunaiV
b5adb74349 feat:【antd/ele】useFormSchema 的 placeholder 2025-11-19 10:44:49 +08:00
YunaiV
b67c24021c feat:【antd/ele】useFormSchema 的 placeholder 2025-11-19 10:40:59 +08:00
YunaiV
6b1a054e11 feat:【ele】DatePicker 补全 class 2025-11-19 10:25:47 +08:00
YunaiV
1100626968 feat:【ele】InputNumber 补全 controlsPosition、class 2025-11-19 10:21:31 +08:00
米山
c142af482b fix: update snapshot for defaultPreferences immutability test to reflect fontSize change
- Adjusted the snapshot to ensure consistency with the updated defaultPreferences configuration, specifically retaining the fontSize property.
2025-11-19 10:19:16 +08:00
YunaiV
2144a1103b feat:【ele】【crm】backlog 迁移完成 2025-11-19 10:16:04 +08:00
米山
cd7c11c7d0 fix: run 'pnpm format' update various components and improve layout structure
- Updated demo-preview and preview-group components for better error handling and layout.
- Enhanced drawer and modal components for improved auto-height functionality.
- Refactored layout components including header, footer, sidebar, and tabbar for better responsiveness and usability.
- Adjusted tooltip and help tooltip components for better user guidance.
- Fixed issues in various UI components to ensure consistent styling and functionality across the application.
2025-11-19 10:14:04 +08:00
YunaiV
43f7a12b59 feat:【ele】【crm】backlog 迁移初始化 2025-11-19 09:56:08 +08:00
YunaiV
b3b0ab83f9 feat:【ele】【crm】公海配置的迁移 2025-11-19 09:49:27 +08:00
YunaiV
99cd094cb0 feat:【ele】【crm】statistics 的部分(performance) 2025-11-19 09:42:23 +08:00
milletpeak
fb8f36eeec Merge branch 'main' into milletpeak-fontsize 2025-11-19 09:41:55 +08:00
YunaiV
9dbfe579e2 feat:【ele】【crm】statistics 的部分(除 performance 外) 2025-11-19 09:17:14 +08:00
YunaiV
7baf8d7e06 feat:【ele】【crm】customer 的部分(limitConfig) 2025-11-19 09:01:30 +08:00
YunaiV
63a4e1e901 feat:【ele】【crm】customer 的部分(import-form) 2025-11-19 08:47:17 +08:00
YunaiV
c1b55dccf3 feat:【ele】【crm】customer 的部分(form、list、detail) 2025-11-19 08:38:55 +08:00
YunaiV
9b7bd5d36a feat:【ele】【crm】contact 的全部 2025-11-19 08:32:37 +08:00
YunaiV
07f62cf882 feat:【ele】【crm】business 的全部(list、form、detail) 2025-11-19 08:29:06 +08:00
YunaiV
775fd1d732 feat:【ele】【crm】contact 的迁移初始化 2025-11-19 08:23:18 +08:00
YunaiV
20f0ed8415 feat:【ele】【crm】customer 的迁移初始化 2025-11-19 08:12:39 +08:00
YunaiV
37e6775282 feat:【ele】【crm】business 的迁移部分(list、form、detail) 2025-11-18 22:17:29 +08:00
YunaiV
5690645bd1 feat:【ele】【crm】statistics 的迁移初始化 2025-11-18 21:55:30 +08:00
YunaiV
0fdb6a739a feat:【ele】【crm】business 的迁移完成(status) 2025-11-18 21:42:40 +08:00
YunaiV
67af3f6e80 feat:【ele】【crm】business 的迁移初始化 2025-11-18 21:22:39 +08:00
YunaiV
4dc9ffdb29 feat:【ele】【crm】contract 的迁移完成(config) 2025-11-18 19:52:27 +08:00
YunaiV
666d932968 feat:【ele】【crm】contract 的迁移完成(list、detail、form) 2025-11-18 19:27:31 +08:00
YunaiV
abfbb851cb feat:【ele】【crm】contract 的初始化 2025-11-18 19:08:51 +08:00
xingyu4j
60854e59f1 feat: use vben/utils upload 2025-11-18 17:33:39 +08:00
xingyu4j
ec23e8acf6 feat: import form vben/utils 2025-11-18 17:29:52 +08:00
xingyu4j
b3a1848243 feat: add uploadError locales 2025-11-18 17:24:51 +08:00
xingyu4j
114114fc32 feat: 统一使用 utils 2025-11-18 17:22:12 +08:00
jason
e1ee1f1176 feat: [bpm][antd] review todo 修改 2025-11-18 16:24:36 +08:00
xingyu4j
03a5af3ba3 fix: antd mall diy 切换 2025-11-18 15:54:18 +08:00
xingyu4j
f1d9ffa47d docs: README 2025-11-18 14:07:25 +08:00
xingyu4j
3d4dcddb1e Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-11-18 14:02:25 +08:00
xingyu4j
79c6fdc7a2 chore: lock 2025-11-18 13:58:46 +08:00
hw
f1aec24f34 Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into reform-mp 2025-11-18 13:45:13 +08:00
hw
9c8316c385 fix: ele改造 2025-11-18 13:44:41 +08:00
YunaiV
07c3cb2f13 feat:【ele】【crm】receivable 完成 2025-11-18 13:13:20 +08:00
xingyu4j
de15aa7b59 chore: remove playground and backend-mock 2025-11-18 11:56:48 +08:00
xingyu4j
40674bf1ad fix: lint 2025-11-18 11:52:27 +08:00
xingyu4j
ec69318078 chore: add tdesign 2025-11-18 11:49:09 +08:00
YunaiV
ffd74a749f feat:【ele】【crm】receivable 迁移的初始化 2025-11-18 10:58:27 +08:00
YunaiV
9680f80735 feat:【antd】【crm】api 请求的注释优化 2025-11-18 10:47:17 +08:00
YunaiV
6d37af629c feat:【antd】【crm】api 请求的注释优化 2025-11-18 09:20:09 +08:00
YunaiV
0b20f69a68 feat:【ele】【crm】clue 迁移 2025-11-18 08:57:22 +08:00
YunaiV
4c37f5f0ac feat:【ele】【crm】product 迁移 2025-11-18 08:35:31 +08:00
YunaiV
de46eb380a feat:【ele】【crm】product/category 迁移 2025-11-17 18:58:04 +08:00
jason
208a72aa8b Merge remote-tracking branch 'yudao/dev' into dev 2025-11-17 17:26:06 +08:00
YunaiV
f24c5f8be9 feat:【antd】【bpm】流程打印的设计 review 2025-11-17 16:53:28 +08:00
xingyu4j
9a4f0f6ab1 feat: Consider multi-line formatting for readability 2025-11-17 14:24:43 +08:00
芋道源码
5568a174af !264 Merge remote-tracking branch 'yudao/dev' into dev
Merge pull request !264 from Jason/dev
2025-11-17 06:00:14 +00:00
YunaiV
f11b7aea69 review:【antd】【mp】代码评审 2025-11-17 13:57:41 +08:00
jason
2b9f869bb2 Merge remote-tracking branch 'yudao/dev' into dev 2025-11-17 13:57:03 +08:00
xingyu4j
bed52983a0 fix: lint 2025-11-17 12:15:14 +08:00
xingyu4j
655ce2c2e8 chore: update node version >=20.12.0 2025-11-17 12:11:43 +08:00
xingyu4j
f841568e5a chore: update vue-tsc 2025-11-17 12:04:30 +08:00
xingyu4j
469697845c fix: sort 2025-11-17 11:21:49 +08:00
xingyu4j
273f3cbaf8 Merge branch 'main' of https://github.com/xingyu4j/vue-vben-admin into deps 2025-11-17 11:21:16 +08:00
xingyu4j
96f671908e chore: update deps 2025-11-17 11:17:47 +08:00
芋道源码
6f0273ab4e !263 feat:【antd】【mp】迁移
Merge pull request !263 from hw/reform-mp
2025-11-17 01:29:13 +00:00
YunaiV
32ffc2e556 feat:【ele】【crm】初始化界面 2025-11-17 09:28:32 +08:00
YunaiV
a273ab2882 feat:【ele/antd】【erp】优化详情界面,隐藏“操作”列 2025-11-16 22:55:34 +08:00
YunaiV
d9f4333e77 feat:【ele】【erp】purchase 的迁移(100%)- order/return 2025-11-16 21:55:32 +08:00
YunaiV
cfda6f4ea0 feat:【ele】【erp】purchase 的迁移(40%)- in 2025-11-16 21:49:36 +08:00
YunaiV
2973e0b70f feat:【ele】【erp】purchase 的迁移(20%)- supplier 2025-11-16 20:27:30 +08:00
YunaiV
e9164912e5 feat:【ele】【erp】home 的迁移(100%) 2025-11-16 20:02:53 +08:00
YunaiV
6fa33f4a62 feat:【ele】【erp】sale 的迁移(100%)- return 2025-11-16 19:53:41 +08:00
YunaiV
94a0c2e581 feat:【ele】【erp】sale 的迁移(30%)- order 2025-11-16 19:10:11 +08:00
YunaiV
6e2e357fed feat:【ele】【erp】sale 的迁移(10%)- 初始化 2025-11-16 19:02:31 +08:00
YunaiV
bb749844fe feat:【ele】【erp】stock 的迁移(100%)- move、out 2025-11-16 18:41:46 +08:00
YunaiV
cb9aaa338c feat:【ele】【erp】stock 的迁移(50%)- in 2025-11-16 18:36:53 +08:00
YunaiV
1810c5dc4a feat:【ele】【erp】stock 的迁移(30%)- check 2025-11-16 18:29:24 +08:00
YunaiV
14016b8d4e feat:【ele】【erp】stock 的迁移(20%)- warehouse 2025-11-16 17:48:44 +08:00
YunaiV
008f7cdbbf feat:【ele】【erp】stock 的迁移(10%) 2025-11-16 16:29:15 +08:00
YunaiV
8d3dd06266 feat:【ele】【erp】product 的迁移 2025-11-16 15:48:39 +08:00
YunaiV
1bc55e8fd0 feat:【ele】【erp】finance/receipt 的迁移 2025-11-16 15:38:22 +08:00
YunaiV
268a2d5504 feat:【ele】【erp】finance/payment 的迁移(80%) 2025-11-16 11:15:49 +08:00
YunaiV
982fe3b964 feat:【ele】【erp】finance/payment 的迁移(50%) 2025-11-16 09:25:43 +08:00
YunaiV
b3b7d2c78b feat:【ele】【erp】finance/account 的迁移 2025-11-16 09:13:09 +08:00
YunaiV
bebe2ea547 feat:【ele】【ai】chat 的迁移(初始化) 2025-11-15 22:15:01 +08:00
jason
aa76dd09e7 Merge remote-tracking branch 'yudao/dev' into dev 2025-11-15 22:02:48 +08:00
jason
22c1d5b2ec feat: [bpm][antd] todo 修改 2025-11-15 22:01:27 +08:00
YunaiV
1aa15ae62a feat:【antd】【ai】chat 的样式 review 修复 2025-11-15 21:56:16 +08:00
jason
ec0518f36a feat: [bpm][antd] 流程打印自定义模板 2025-11-15 21:52:09 +08:00
YunaiV
a5d1ab75f8 feat:【antd】【ai】chat 的样式 review 修复 2025-11-15 21:48:44 +08:00
YunaiV
a15511ee6b feat:【antd】【ai】chat 的样式 review 2025-11-15 21:34:19 +08:00
YunaiV
a35485e618 feat:【antd】【ai】chat “附件列表功能”的迁移 2025-11-15 21:25:14 +08:00
YunaiV
844d4b9b1c feat:【antd】【ai】chat “Thinking 深度思考功能”的迁移 2025-11-15 20:34:36 +08:00
YunaiV
fc9663a100 feat:【antd】【ai】chat “Thinking 深度思考功能”的迁移 2025-11-15 19:46:10 +08:00
YunaiV
71e638188e feat:【antd】【ai】chat “返回异常时空消息删除”的迁移 2025-11-15 19:06:37 +08:00
YunaiV
6dd9e9e699 feat:【antd】【ai】chat 增加联网搜索的迁移 2025-11-15 19:02:21 +08:00
haohao
3bab9bdd11 refactor:【antd】【iot】统一组件文件命名规则,调整导入路径以匹配小写格式 2025-11-15 17:35:20 +08:00
YunaiV
23fd82b31b feat:【ele】【ai】image 全部实现 2025-11-15 15:51:21 +08:00
YunaiV
104be22d0d feat:【ele】【ai】image 的代码评审 2025-11-15 15:31:47 +08:00
YunaiV
636df26e73 feat:【ele】【ai】image 的迁移初始化 2025-11-15 14:50:27 +08:00
YunaiV
5858c435e8 feat:【antd】【ai】image 的代码优化 2025-11-15 13:58:33 +08:00
YunaiV
cc8703ca90 feat:【antd】【ai】chat 的代码优化 2025-11-15 13:50:55 +08:00
YunaiV
7c7a843e94 feat:【antd】【ai】image 的代码优化 2025-11-15 13:50:48 +08:00
haohao
7e6dd0a4df refactor:【antd】【iot】统一组件文件命名规则,调整导入路径以匹配小写格式 2025-11-15 12:03:48 +08:00
YunaiV
51fb4b479e feat:【ele】【ai】工作流的代码迁移 2025-11-15 09:26:36 +08:00
YunaiV
dc68abd4d9 feat:【antd】【ai】工作流的代码优化 2025-11-15 08:54:25 +08:00
YunaiV
02f2e90d43 feat:【ele】【antd】代码的差异同步 2025-11-14 22:23:05 +08:00
YunaiV
1cbd4033b8 feat:【ele】【ai】音乐的迁移 2025-11-14 22:22:43 +08:00
Jin Mao
f09aace765 fix: 更新依赖后的表格显示问题 2025-11-14 21:44:32 +08:00
YunaiV
d056629332 feat:【ele】【ai】知识库的 knowledge 优化实现 2025-11-14 20:51:14 +08:00
YunaiV
6d1f7a7d98 feat:【ele】【ai】知识库的 knowledge 优化实现 2025-11-14 18:25:03 +08:00
YunaiV
5dc6f2d672 feat:【ele】【ai】知识库的 knowledge 优化实现 2025-11-14 18:22:56 +08:00
Copilot
772529e2fb fix: rollback zod-defaults version to 0.1.3 (#6925)
* Initial plan

* fix: downgrade zod-defaults from 0.2.3 to 0.1.3 for Zod v3 compatibility

Co-authored-by: likui628 <90845831+likui628@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: likui628 <90845831+likui628@users.noreply.github.com>
2025-11-14 16:16:45 +08:00
YunaiV
78bd8bee8f feat:【ele】【ai】知识库的 knowledge 初始化 2025-11-14 13:52:11 +08:00
hw
3e1dac41b6 fix: 环境变量复原 2025-11-14 11:23:39 +08:00
hw
48597a9e0b fix: 冲突 2025-11-14 11:18:50 +08:00
xingyu4j
eeff017b9f chore: add tdesign cspell 2025-11-14 10:22:18 +08:00
xingyu4j
22394ebdeb chore: move tdesign-vue-next to workspace 2025-11-14 10:21:48 +08:00
hw
d3cc555030 fix: 环境变量复原 2025-11-14 09:46:55 +08:00
YunaiV
33c066f0f0 feat:【antd】【ai】知识库的 knowledge document 优化(编辑) 2025-11-14 09:43:47 +08:00
YunaiV
132ce52e36 feat:【antd】【ai】知识库的 knowledge segment、document 优化 2025-11-14 09:07:26 +08:00
dependabot[bot]
ffbc9b22a7 chore(deps): bump the non-breaking-changes group across 1 directory with 26 updates (#6914)
Bumps the non-breaking-changes group with 20 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [vue](https://github.com/vuejs/core) | `3.5.23` | `3.5.24` |
| [@clack/prompts](https://github.com/bombshell-dev/clack/tree/HEAD/packages/prompts) | `0.10.1` | `0.11.0` |
| [@iconify/json](https://github.com/iconify/icon-sets) | `2.2.404` | `2.2.406` |
| [@pnpm/workspace.read-manifest](https://github.com/pnpm/pnpm) | `1000.2.5` | `1000.2.6` |
| [@tanstack/vue-query](https://github.com/TanStack/query/tree/HEAD/packages/vue-query) | `5.90.7` | `5.91.0` |
| [@tanstack/vue-store](https://github.com/TanStack/store/tree/HEAD/packages/vue-store) | `0.7.7` | `0.8.0` |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.46.3` | `8.46.4` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.46.3` | `8.46.4` |
| [@vue/shared](https://github.com/vuejs/core/tree/HEAD/packages/shared) | `3.5.23` | `3.5.24` |
| [commitlint-plugin-function-rules](https://github.com/vidavidorra/commitlint-plugin-function-rules) | `4.1.0` | `4.1.1` |
| [eslint-config-turbo](https://github.com/vercel/turborepo/tree/HEAD/packages/eslint-config-turbo) | `2.6.0` | `2.6.1` |
| [lucide-vue-next](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-vue-next) | `0.507.0` | `0.553.0` |
| [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) | `0.6.14` | `0.7.1` |
| [sass](https://github.com/sass/dart-sass) | `1.93.3` | `1.94.0` |
| [typescript](https://github.com/microsoft/TypeScript) | `5.8.2` | `5.9.3` |
| [unplugin-element-plus](https://github.com/element-plus/unplugin-element-plus) | `0.10.0` | `0.11.1` |
| [vxe-pc-ui](https://github.com/x-extends/vxe-pc-ui) | `4.10.16` | `4.10.22` |
| [vxe-table](https://github.com/x-extends/vxe-table) | `4.17.10` | `4.17.14` |
| [zod-defaults](https://github.com/Ced-Sharp/zod-defaults) | `0.1.3` | `0.2.3` |
| [@ast-grep/napi](https://github.com/ast-grep/ast-grep) | `0.37.0` | `0.39.9` |



Updates `vue` from 3.5.23 to 3.5.24
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/compare/v3.5.23...v3.5.24)

Updates `@clack/prompts` from 0.10.1 to 0.11.0
- [Release notes](https://github.com/bombshell-dev/clack/releases)
- [Changelog](https://github.com/bombshell-dev/clack/blob/@clack/prompts@0.11.0/packages/prompts/CHANGELOG.md)
- [Commits](https://github.com/bombshell-dev/clack/commits/@clack/prompts@0.11.0/packages/prompts)

Updates `@iconify/json` from 2.2.404 to 2.2.406
- [Commits](https://github.com/iconify/icon-sets/compare/2.2.404...2.2.406)

Updates `@pnpm/workspace.read-manifest` from 1000.2.5 to 1000.2.6
- [Release notes](https://github.com/pnpm/pnpm/releases)
- [Commits](https://github.com/pnpm/pnpm/commits)

Updates `@tanstack/vue-query` from 5.90.7 to 5.91.0
- [Release notes](https://github.com/TanStack/query/releases)
- [Changelog](https://github.com/TanStack/query/blob/main/packages/vue-query/CHANGELOG.md)
- [Commits](https://github.com/TanStack/query/commits/@tanstack/vue-query@5.91.0/packages/vue-query)

Updates `@tanstack/vue-store` from 0.7.7 to 0.8.0
- [Release notes](https://github.com/TanStack/store/releases)
- [Commits](https://github.com/TanStack/store/commits/v0.8.0/packages/vue-store)

Updates `@typescript-eslint/eslint-plugin` from 8.46.3 to 8.46.4
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.46.4/packages/eslint-plugin)

Updates `@typescript-eslint/parser` from 8.46.3 to 8.46.4
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.46.4/packages/parser)

Updates `@vue/shared` from 3.5.23 to 3.5.24
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/commits/v3.5.24/packages/shared)

Updates `autoprefixer` from 10.4.21 to 10.4.22
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.21...10.4.22)

Updates `commitlint-plugin-function-rules` from 4.1.0 to 4.1.1
- [Release notes](https://github.com/vidavidorra/commitlint-plugin-function-rules/releases)
- [Changelog](https://github.com/vidavidorra/commitlint-plugin-function-rules/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vidavidorra/commitlint-plugin-function-rules/compare/v4.1.0...v4.1.1)

Updates `eslint-config-turbo` from 2.6.0 to 2.6.1
- [Release notes](https://github.com/vercel/turborepo/releases)
- [Changelog](https://github.com/vercel/turborepo/blob/main/release.md)
- [Commits](https://github.com/vercel/turborepo/commits/v2.6.1/packages/eslint-config-turbo)

Updates `lodash.clonedeep` from 4.5.0 to 
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/commits)

Updates `lodash.get` from 4.4.2 to 
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/commits)

Updates `lodash.isequal` from 4.5.0 to 
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/commits)

Updates `lodash.set` from 4.3.2 to 
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/commits)

Updates `lucide-vue-next` from 0.507.0 to 0.553.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/0.553.0/packages/lucide-vue-next)

Updates `prettier-plugin-tailwindcss` from 0.6.14 to 0.7.1
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.6.14...v0.7.1)

Updates `sass` from 1.93.3 to 1.94.0
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.93.3...1.94.0)

Updates `typescript` from 5.8.2 to 5.9.3
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.8.2...v5.9.3)

Updates `unplugin-element-plus` from 0.10.0 to 0.11.1
- [Release notes](https://github.com/element-plus/unplugin-element-plus/releases)
- [Commits](https://github.com/element-plus/unplugin-element-plus/compare/v0.10.0...v0.11.1)

Updates `vxe-pc-ui` from 4.10.16 to 4.10.22
- [Release notes](https://github.com/x-extends/vxe-pc-ui/releases)
- [Commits](https://github.com/x-extends/vxe-pc-ui/commits)

Updates `vxe-table` from 4.17.10 to 4.17.14
- [Release notes](https://github.com/x-extends/vxe-table/releases)
- [Commits](https://github.com/x-extends/vxe-table/compare/4.17.10...4.17.14)

Updates `zod-defaults` from 0.1.3 to 0.2.3
- [Commits](https://github.com/Ced-Sharp/zod-defaults/commits)

Updates `@ast-grep/napi` from 0.37.0 to 0.39.9
- [Release notes](https://github.com/ast-grep/ast-grep/releases)
- [Changelog](https://github.com/ast-grep/ast-grep/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ast-grep/ast-grep/compare/0.37.0...0.39.9)

Updates `@vue/reactivity` from 3.5.23 to 3.5.24
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/commits/v3.5.24/packages/reactivity)

---
updated-dependencies:
- dependency-name: vue
  dependency-version: 3.5.24
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-breaking-changes
- dependency-name: "@clack/prompts"
  dependency-version: 0.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: non-breaking-changes
- dependency-name: "@iconify/json"
  dependency-version: 2.2.406
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-breaking-changes
- dependency-name: "@pnpm/workspace.read-manifest"
  dependency-version: 1000.2.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-breaking-changes
- dependency-name: "@tanstack/vue-query"
  dependency-version: 5.91.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: non-breaking-changes
- dependency-name: "@tanstack/vue-store"
  dependency-version: 0.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: non-breaking-changes
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-version: 8.46.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-breaking-changes
- dependency-name: "@typescript-eslint/parser"
  dependency-version: 8.46.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-breaking-changes
- dependency-name: "@vue/shared"
  dependency-version: 3.5.24
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-breaking-changes
- dependency-name: autoprefixer
  dependency-version: 10.4.22
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-breaking-changes
- dependency-name: commitlint-plugin-function-rules
  dependency-version: 4.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-breaking-changes
- dependency-name: eslint-config-turbo
  dependency-version: 2.6.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-breaking-changes
- dependency-name: lodash.clonedeep
  dependency-version: 
  dependency-type: direct:production
  dependency-group: non-breaking-changes
- dependency-name: lodash.get
  dependency-version: 
  dependency-type: direct:production
  dependency-group: non-breaking-changes
- dependency-name: lodash.isequal
  dependency-version: 
  dependency-type: direct:production
  dependency-group: non-breaking-changes
- dependency-name: lodash.set
  dependency-version: 
  dependency-type: direct:production
  dependency-group: non-breaking-changes
- dependency-name: lucide-vue-next
  dependency-version: 0.553.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: non-breaking-changes
- dependency-name: prettier-plugin-tailwindcss
  dependency-version: 0.7.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: non-breaking-changes
- dependency-name: sass
  dependency-version: 1.94.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: non-breaking-changes
- dependency-name: typescript
  dependency-version: 5.9.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: non-breaking-changes
- dependency-name: unplugin-element-plus
  dependency-version: 0.11.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: non-breaking-changes
- dependency-name: vxe-pc-ui
  dependency-version: 4.10.22
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-breaking-changes
- dependency-name: vxe-table
  dependency-version: 4.17.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-breaking-changes
- dependency-name: zod-defaults
  dependency-version: 0.2.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: non-breaking-changes
- dependency-name: "@ast-grep/napi"
  dependency-version: 0.39.9
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: non-breaking-changes
- dependency-name: "@vue/reactivity"
  dependency-version: 3.5.24
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-breaking-changes
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-14 08:05:04 +08:00
YunaiV
4452de0677 feat:【antd】【ai】知识库的 knowledge 优化(retrieval) 2025-11-13 22:27:28 +08:00
YunaiV
26b1ea3888 chore: 合并远程 dev 分支代码 2025-11-13 20:45:00 +08:00
YunaiV
1ec739e62c chore: update pnpm-lock.yaml 2025-11-13 20:41:58 +08:00
YunaiV
2f67bdd410 feat:【antd】【ai】知识库的 knowledge 优化 2025-11-13 20:32:12 +08:00
YunaiV
e092ec737e review:【antd】【mp】material、message 的迁移 v2 2025-11-13 20:31:46 +08:00
xingyu4j
7f84c42bcc feat: use lucide icons 2025-11-13 18:36:35 +08:00
hw
6ae21c978b fix: eslint 2025-11-13 18:35:44 +08:00
hw
cdae277868 fix: ele统一风格 2025-11-13 18:35:10 +08:00
xingyu4j
83a5ca15b5 fix: doc slot 2025-11-13 17:44:44 +08:00
Jin Mao
c3a7562e2c Merge branch 'main' into milletpeak-fontsize 2025-11-13 17:01:42 +08:00
xingyu4j
8a4af8c55b fix: api 2025-11-13 16:57:06 +08:00
xingyu4j
ccab033c4b fix: kefu store 2025-11-13 16:56:52 +08:00
xingyu4j
da0946ebcd fix: api 2025-11-13 16:55:28 +08:00
xingyu4j
100f0a41b6 fix: mp 2025-11-13 16:12:44 +08:00
xingyu4j
62f630fd19 refactor: mp comps 2025-11-13 14:44:25 +08:00
xingyu4j
1ef38bc8b9 refactor: mp comps 2025-11-13 14:44:08 +08:00
xingyu4j
9a53edec8d feat: remove mp modules 2025-11-13 14:14:15 +08:00
xingyu4j
ebd51b0ecb feat: import from components 2025-11-13 14:13:51 +08:00
xingyu4j
b9073ff4bd feat: import form components 2025-11-13 14:12:48 +08:00
xingyu4j
edba53272d chore: deps 2025-11-13 14:12:20 +08:00
xingyu4j
1b5d03879f Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-11-13 14:11:01 +08:00
YunaiV
80bb508e78 review:【antd】【mp】material、message 的迁移 v1 2025-11-13 13:57:17 +08:00
xingyu4j
2577c1e4fc Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-11-13 13:53:57 +08:00
芋道源码
b3c1dff37d !252 【antd】【mp】消息管理 迁移
Merge pull request !252 from dylanmay/dev
2025-11-13 01:27:31 +00:00
Jin Mao
605e0ea128 chore: 更新依赖 2025-11-13 09:23:12 +08:00
dependabot[bot]
c89a83f980 chore(deps): bump stylelint-config-recommended from 14.0.1 to 17.0.0 (#6901)
Bumps [stylelint-config-recommended](https://github.com/stylelint/stylelint-config-recommended) from 14.0.1 to 17.0.0.
- [Release notes](https://github.com/stylelint/stylelint-config-recommended/releases)
- [Changelog](https://github.com/stylelint/stylelint-config-recommended/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint-config-recommended/compare/14.0.1...17.0.0)

---
updated-dependencies:
- dependency-name: stylelint-config-recommended
  dependency-version: 17.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-13 09:17:44 +08:00
Jin Mao
cfad88666b chore: 替换 lodash-es为 es-toolkit 并调整样式引入方式 (#6912) 2025-11-13 08:20:30 +08:00
Jin Mao
f918dc24c6 chore(@vben/utils): 移除冗余的 lodash 依赖 2025-11-13 07:47:48 +08:00
Jin Mao
e898993fe8 chore(@vben/utils): 替换 lodash 工具函数为 es-toolkit 实现 2025-11-13 07:45:10 +08:00
Jin Mao
5cafcb4a01 refactor(shared): 替换 lodash 工具函数为 es-toolkit 兼容版本
- 将 get 和 isEqual 方法从 lodash 替换为 es-toolkit/compat 导出
- 更新 package.json 添加 es-toolkit 依赖
- 注释掉原有的 lodash.get 和 lodash.isequal 导出语句- 锁定 es-toolkit 版本至1.41.0 并更新相关依赖配置
2025-11-13 07:28:52 +08:00
Jin Mao
03154cde88 chore: update depends 2025-11-13 07:16:28 +08:00
dependabot[bot]
a74bf7b63f chore(deps): bump echarts from 5.6.0 to 6.0.0 (#6859)
Bumps [echarts](https://github.com/apache/echarts) from 5.6.0 to 6.0.0.
- [Release notes](https://github.com/apache/echarts/releases)
- [Commits](https://github.com/apache/echarts/compare/5.6.0...6.0.0)

---
updated-dependencies:
- dependency-name: echarts
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jin Mao <50581550+jinmao88@users.noreply.github.com>
2025-11-13 07:10:59 +08:00
YunaiV
a0b235134c fix:【antd】【mall】diy-editor 里的 component-container-property.vue 的 label-width 2025-11-13 00:02:11 +08:00
YunaiV
d15ff4bc80 fix:【antd】【mall】diy-editor 里的 mobile 各种修复,不限于 Image 的 preview、Form 的 label-col 的宽度、FormItem 的 prop 属性 2025-11-12 22:55:02 +08:00
米山
0bc7169698 feat: add global font size adjustment 2025-11-12 17:39:07 +08:00
米山
24b6e7a835 feat: add global font size adjustment 2025-11-12 17:38:41 +08:00
hw
7733d0a7f4 fix: todo修复 2025-11-12 16:56:18 +08:00
dylanmay
971b7e28f6 Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-11-12 14:32:42 +08:00
dylanmay
5e183ee729 fix: 依赖处理 2025-11-12 14:32:14 +08:00
YunaiV
0263508912 fix:【antd】【mall】diy-editor 里的 carousel、navigation-bar 不支持 :show-input-controls、input-size、show-input 移除 2025-11-12 13:24:41 +08:00
dylanmay
64baf79bb6 Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-11-12 12:25:53 +08:00
dylanmay
7d21ea2dcb fix: add vueuse/components 2025-11-12 11:18:14 +08:00
xingyu4j
dad002163b Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-11-12 09:58:23 +08:00
YunaiV
d4f9bb20dd feat:【antd】【mall】diy-editor 代码风格统一 & 逐个测试 70% 2025-11-12 09:30:46 +08:00
YunaiV
045ccca2a6 fix:【antd】【mall】diy-editor 的 hot-zone-edit-dialog 不正确 2025-11-12 08:54:34 +08:00
YunaiV
aa425e93a5 fix:【antd】【mall】diy-editor 的 menu-grid、menu-swiper 的 radio 不正确 2025-11-12 08:46:10 +08:00
YunaiV
f3c862faae fix:【antd】【mall】diy-editor 的 navigation-bar 的 radio 不正确 2025-11-12 08:43:37 +08:00
Jin Mao
f59e33682c Merge branch 'main' into main 2025-11-12 04:27:57 +08:00
Jin Mao
d811af37dd Merge branch 'main' into profile 2025-11-12 04:03:27 +08:00
Jin Mao
0e1a7d61f3 Merge branch 'main' into fix-downloader 2025-11-12 02:05:03 +08:00
panda7
573637222d feat: add form handleCollapsedChange event (#6893)
* feat: add form handleCollapsedChange event

* fix: ts lint

* fix: ts error

---------

Co-authored-by: sqchen <chenshiqi@sshlx.com>
2025-11-12 02:03:12 +08:00
shixi
05e9d65251 fix: for tdesign 2025-11-12 01:14:28 +08:00
shixi
0bbb20fee0 feat: sport notification link 2025-11-12 00:55:24 +08:00
shixi
dbc5ea32ae feat: add read and delete for each notification 2025-11-12 00:02:13 +08:00
YunaiV
4a03825313 fix:【antd】【mall】diy-editor 的 carousel 的 radio 不正确 2025-11-11 22:51:35 +08:00
YunaiV
7bd3a31a09 feat:【antd】【mall】diy-editor 代码风格统一 & 逐个测试 60% 2025-11-11 22:20:52 +08:00
YunaiV
4488425cbf feat:【antd】【mall】diy-editor 代码风格统一 & 逐个测试 50% 2025-11-11 19:34:42 +08:00
xingyu4j
16b42afc93 fix: todo 2025-11-11 15:26:52 +08:00
xingyu4j
7b0bb55df0 Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-11-11 15:26:08 +08:00
xingyu4j
9d21b0e49a fix: lint 2025-11-11 15:25:44 +08:00
xingyu4j
736d91019e feat: add views 2025-11-11 15:24:41 +08:00
xingyu4j
10f2583e2f fix: bugs 2025-11-11 15:19:46 +08:00
xingyu4j
829d3afe4b fix: some bugs 2025-11-11 15:19:21 +08:00
xingyu4j
ac573416ef fix: lint 2025-11-11 15:08:11 +08:00
xingyu4j
5d0269da99 feat: code format 2025-11-11 13:52:01 +08:00
xingyu4j
15cf8571af feat: router 2025-11-11 13:44:51 +08:00
xingyu4j
af2eb88474 feat: core views 2025-11-11 13:44:33 +08:00
xingyu4j
b6d6edeeeb feat: utils 2025-11-11 13:43:53 +08:00
xingyu4j
9c8faf1db2 feat: infra api 2025-11-11 13:43:31 +08:00
xingyu4j
fd6192766d feat: system api 2025-11-11 13:43:13 +08:00
xingyu4j
b041b8e7d7 feat: auth and route 2025-11-11 13:42:13 +08:00
xingyu4j
21ec8975f8 feat: vxe config 2025-11-11 13:41:41 +08:00
xingyu4j
6b0da7e397 feat: api config 2025-11-11 13:41:14 +08:00
xingyu4j
26918cd56d chore: deps 2025-11-11 13:39:37 +08:00
YunaiV
a275432840 feat:【antd】【mall】diy-editor 代码风格统一 & 逐个测试 40% 2025-11-11 12:53:50 +08:00
YunaiV
6a270e26d8 feat:【antd】【mall】diy-editor 代码风格统一 & 逐个测试 30% 2025-11-11 09:58:36 +08:00
YunaiV
fadad35b20 feat:【antd】【mall】diy-editor 代码风格统一 & 逐个测试 20% 2025-11-10 19:13:25 +08:00
xingyu4j
0319604863 feat: playground add profile 2025-11-10 18:00:50 +08:00
xingyu4j
acf99f2441 feat: tdesign add profile 2025-11-10 18:00:25 +08:00
xingyu4j
cbf2a02877 feat: naive add profile 2025-11-10 17:59:58 +08:00
xingyu4j
226d9bd1ad feat: ele add profile 2025-11-10 17:59:33 +08:00
xingyu4j
48b3d30088 fix: types 2025-11-10 17:54:01 +08:00
xingyu4j
e311cfb8da feat: route add profile 2025-11-10 17:51:10 +08:00
xingyu4j
4347fba80a feat: antdv add profile 2025-11-10 17:50:47 +08:00
xingyu4j
7dc68ed368 feat: add profile comps 2025-11-10 17:49:58 +08:00
haohao
ef5b7e9c07 fix:【antd】【iot】修正导出功能中的时间格式化为更精确的格式 2025-11-10 17:12:25 +08:00
haohao
35dc2960b8 feat:【antd】【iot】添加设备状态和颜色映射功能,优化设备卡片样式 2025-11-10 17:05:35 +08:00
haohao
e12ac0c31d refactor:【antd】【iot】优化设备详情中的自动刷新开关样式 2025-11-10 15:17:13 +08:00
haohao
65d3be03b8 feat:【antd】【iot】将 DataZoom 组件添加到 echarts 集成中 2025-11-10 15:15:57 +08:00
haohao
9129b1eb41 fix:【antd】【iot】修改根据产品 ID 查询物模型列表接口 2025-11-10 15:11:40 +08:00
xingyu4j
488a9ecbde docs: README 2025-11-10 09:52:00 +08:00
xingyu4j
a3356a0a5e Merge branch 'main' of https://github.com/vbenjs/vue-vben-admin into dev 2025-11-10 09:16:13 +08:00
YunaiV
e231a0a948 review:【antd】【bpm】打印功能 2025-11-09 17:36:01 +08:00
芋道源码
b1b7934eb0 !259 流程打印迁移
Merge pull request !259 from Jason/dev
2025-11-09 09:31:59 +00:00
YunaiV
9fc5c7561e review:【antd】【mp】components 组件 2025-11-09 17:30:37 +08:00
YunaiV
229ead48f1 review:【antd】【mp】图文草稿箱 2025-11-09 17:16:51 +08:00
YunaiV
d6cbad72e5 review:【antd】【mp】自动回复优化 2025-11-09 16:55:03 +08:00
YunaiV
f8abee2b63 review:【antd】【mp】菜单优化 2025-11-09 15:31:20 +08:00
Jin Mao
a4aa133db5 Merge branch 'main' into tdesign 2025-11-09 12:04:30 +08:00
Utopia
6bbe523f6f chore: 增强 util-formatDate ts 类型提示 (#6886)
* feat: 为 auth layout 添加 slot: logo, 提升组件的灵活性和可复用性

* feat: 增强 util-formatDate ts 类型提示
2025-11-09 12:00:49 +08:00
Copilot
fef1e35c54 fix: prevent JSONBigInt parsing error on non-string data (#6891)
* Initial plan

* Fix json-bigint serialization error when data is not a string

Co-authored-by: likui628 <90845831+likui628@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: likui628 <90845831+likui628@users.noreply.github.com>
2025-11-09 11:49:38 +08:00
xingyu
20410aeb03 fix: updating Tailwind CSS variables from --radix-* to --reka-* (#6890)
* fix: radix => reka

* chore: add reka cspell

* fix: Composition url
2025-11-09 11:49:01 +08:00
jason
045095922f chore: update pnpm-lock.yaml 2025-11-08 22:44:23 +08:00
jason
c09ff0cfb3 feat: 冲突解决 2025-11-08 22:23:19 +08:00
jason
143c9660da feat: [bpm][antd] 流程打印迁移 2025-11-08 22:13:29 +08:00
xingyu4j
15215b4f4c feat: mp 2025-11-07 19:06:34 +08:00
xingyu4j
31a8d38174 refactor: mp export 2025-11-07 17:58:24 +08:00
xingyu4j
51169116ae refactor: move assets 2025-11-07 17:44:26 +08:00
xingyu4j
0b3c1540d0 refactor: comps 2025-11-07 17:43:13 +08:00
xingyu4j
e94cedb591 fix: icon 2025-11-07 16:24:56 +08:00
xingyu4j
52a00b64ae fix: v-access:code 2025-11-07 15:27:41 +08:00
xingyu4j
85353ead55 fix: v-access:code 2025-11-07 15:26:09 +08:00
xingyu4j
cdcd782162 chore: deps 2025-11-07 15:25:52 +08:00
xingyu4j
288efce3c9 Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-11-07 15:18:53 +08:00
xingyu
439906a67f !258 fix: 环境变量复原
Merge pull request !258 from hw/reform-mp
2025-11-07 07:18:41 +00:00
xingyu4j
a3dcb150a3 fix: OAuth 2.0 i18n warn 2025-11-07 15:17:08 +08:00
xingyu4j
2788964c62 chore: add cspell 2025-11-07 15:14:02 +08:00
xingyu4j
d7e585641f fix: use tabs warn 2025-11-07 15:13:34 +08:00
xingyu4j
5f071c20f3 fix: bpmn style 2025-11-07 14:29:18 +08:00
hw
93baa9602d fix: 环境变量复原 2025-11-07 14:12:42 +08:00
xingyu4j
aa13d2a67c fix: bugs 2025-11-07 14:09:03 +08:00
dylanmay
e577b084c7 fix: change table to grid 2025-11-07 13:21:42 +08:00
hw
dcc543cd7f fix: 组件名称修改 css样式使用tindwind 2025-11-07 11:33:32 +08:00
hw
92a1909ad8 fix: code 2025-11-07 10:27:03 +08:00
hw
bd9edc3fee fix: 插件修改为全局 2025-11-07 09:56:20 +08:00
hw
c745304e5f fix: eslint 2025-11-07 09:43:39 +08:00
dylanmay
bdfe23a14a Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-11-06 23:34:08 +08:00
dylanmay
33c6ccf654 fix: code style 2025-11-06 23:24:05 +08:00
dylanmay
007bb2dd26 fix: code style 2025-11-06 23:23:25 +08:00
Li Kui
83ea27af3e fix: fix lint 2025-11-06 23:16:23 +08:00
Li Kui
b7bfd69788 fix: fix lint 2025-11-06 23:10:03 +08:00
Li Kui
99d663a6f2 fix: fix typecheck 2025-11-06 23:02:24 +08:00
Li Kui
1af11240a6 chore: add tdesign logo 2025-11-06 22:37:55 +08:00
YunaiV
9248a321fe fix:【ele/antd】【mall】component-container-property.vue 的报错 2025-11-06 22:37:44 +08:00
YunaiV
63e94da3ca feat:【antd/ele】差异化代码的统一 2025-11-06 21:16:28 +08:00
YunaiV
80c31c3f32 feat:【antd/ele】【mall】客服的样式略微优化 2025-11-06 21:03:10 +08:00
xingyu4j
3483dceab3 feat: tailwindcss 2025-11-06 19:13:35 +08:00
xingyu4j
1aaae15706 fix: show full 2025-11-06 18:57:04 +08:00
Li Kui
3e8e8690e3 chore: Merge branch 'main' into tdesign 2025-11-06 17:49:51 +08:00
Li Kui
be843300be chore: update demo routes 2025-11-06 17:44:34 +08:00
xingyu4j
44675a847c Merge branch 'main' of https://github.com/vbenjs/vue-vben-admin into dev 2025-11-06 16:50:09 +08:00
hw
02fa21488c fix: 环境变量修改 2025-11-06 16:44:37 +08:00
Li Kui
dc77721c11 chore: demo i18n 2025-11-06 16:42:25 +08:00
Li Kui
a38d081f17 chore: enable VITE_NITRO_MOCK 2025-11-06 16:37:15 +08:00
xingyu4j
b82397fa5d chore: remove vueuse/components 2025-11-06 16:34:48 +08:00
xingyu4j
3cb140942c refactor: ele kefu 2025-11-06 16:30:36 +08:00
xingyu4j
c405e464a0 refactor: ele kefu 2025-11-06 16:27:18 +08:00
xingyu4j
36addb1380 refactor: kefu 2025-11-06 16:26:49 +08:00
Copilot
1e09fa4642 feat: migrate from Radix Vue to Reka UI (#6870)
* Initial plan

* Update dependencies and imports from radix-vue to reka-ui

Co-authored-by: likui628 <90845831+likui628@users.noreply.github.com>

* Fix type errors after reka-ui migration

Co-authored-by: likui628 <90845831+likui628@users.noreply.github.com>

* Run formatter to fix code style

Co-authored-by: likui628 <90845831+likui628@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: likui628 <90845831+likui628@users.noreply.github.com>
2025-11-06 16:22:24 +08:00
dylanmay
500ce9cf7c fix: code style 2025-11-06 15:36:08 +08:00
Li Kui
bd8ff73f9e fix: fix build error 2025-11-06 15:26:24 +08:00
dylanmay
5269d4c387 fix: code style 2025-11-06 15:25:11 +08:00
Li Kui
57620dc2ea chore: apply coderabbitai suggestions 2025-11-06 15:11:28 +08:00
xingyu4j
af60802840 refactor: kefu 2025-11-06 15:04:27 +08:00
xingyu4j
103f633344 chore: use vueuse 2025-11-06 15:03:50 +08:00
Li Kui
b472fbb72f Merge branch 'main' into tdesign 2025-11-06 14:36:27 +08:00
Copilot
04321b16c1 fix: replace ant-design-vue with tdesign components in web-tdesign app (#6880)
* Initial plan

* fix: replace ant-design-vue with tdesign components

Co-authored-by: likui628 <90845831+likui628@users.noreply.github.com>

* fix: remove trailing comma in package.json

Co-authored-by: likui628 <90845831+likui628@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: likui628 <90845831+likui628@users.noreply.github.com>
2025-11-06 14:35:50 +08:00
xingyu4j
c6732bd658 feat: kefu 2025-11-06 12:44:50 +08:00
xingyu4j
c8e574b6c2 feat: 优化显示效果 2025-11-06 11:28:04 +08:00
xingyu4j
a4cbd5c094 fix: import 2025-11-05 21:06:26 +08:00
xingyu4j
12d55a8c3b fix: bugs 2025-11-05 20:30:42 +08:00
xingyu4j
35733c40eb fix: 切换页面 2025-11-05 20:13:00 +08:00
xingyu4j
e4040520e0 feat: VerticalButtonGroup style 2025-11-05 20:08:46 +08:00
xingyu4j
beec71dbbd fix: import 2025-11-05 19:47:35 +08:00
xingyu4j
0e185d1ed6 fix: style 2025-11-05 19:43:35 +08:00
xingyu4j
4ef521698a fix: style 2025-11-05 19:42:58 +08:00
xingyu4j
d6cd6cf133 fix: style 2025-11-05 19:37:41 +08:00
xingyu4j
89d758b071 feat: style 2025-11-05 19:07:32 +08:00
xingyu4j
56ae9c0230 feat: 优化 diy editor 2025-11-05 18:31:37 +08:00
xingyu4j
f60069d662 feat: icon 2025-11-05 18:27:17 +08:00
xingyu4j
dec939ee30 feat: 优化客服 2025-11-05 18:26:40 +08:00
hw
b897f50420 fix: eslint 2025-11-05 17:02:16 +08:00
hw
6a3e8173e0 feat: 图文草稿箱迁移 2025-11-05 17:01:42 +08:00
xingyu4j
318f142fa7 feat: diy editor style 2025-11-05 15:31:07 +08:00
xingyu4j
109c6226b4 fix: component property 2025-11-05 15:25:18 +08:00
xingyu4j
326e88762c feat: diy editor property 2025-11-05 15:24:20 +08:00
xingyu4j
15835352cc chore: cspell 2025-11-05 14:11:08 +08:00
xingyu4j
57f39fbc90 feat: 优化 diy editor 样式 2025-11-05 14:09:38 +08:00
xingyu
769c56aeff !250 fix: 去掉本地调试地址
Merge pull request !250 from jawe/dev
2025-11-05 02:43:20 +00:00
xingyu
5ecbb1b031 !255 Merge remote-tracking branch 'yudao/dev' into dev
Merge pull request !255 from Jason/dev
2025-11-05 02:41:09 +00:00
jason
ed923a2661 Merge remote-tracking branch 'yudao/dev' into dev 2025-11-05 09:56:47 +08:00
jason
62407c7aa2 feat: [antd][bpm] 流程签名问题修复 2025-11-05 09:52:23 +08:00
YunaiV
db804c2602 feat:【antd】【mall】diy-editor 的 vertical-button-group 迁移 2025-11-05 00:31:10 +08:00
xingyu4j
6ac33e0208 fix: type cell dict props 2025-11-04 20:12:24 +08:00
hw
c59e03073f fix: 环境变量修改 2025-11-04 18:12:50 +08:00
hw
978b9f8cd2 fix: 删除tagsView,使用vben useTabs 2025-11-04 18:07:04 +08:00
xingyu4j
58dc5aefab fix: lint 2025-11-04 17:56:30 +08:00
xingyu4j
689d4cd2a1 fix: lint 2025-11-04 17:50:03 +08:00
xingyu4j
b9b131296b fix: lint 2025-11-04 17:48:30 +08:00
xingyu4j
9082e82d98 fix: lint 2025-11-04 17:47:29 +08:00
dylanmay
c238920588 feat: 素材管理迁移 2025-11-04 17:32:12 +08:00
xingyu4j
df935a8f3b fix: use antdv qrcode 2025-11-04 17:21:50 +08:00
xingyu4j
d507cc6d6b Merge branch 'master' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-11-04 17:08:57 +08:00
hw
84795d10cd feat: 自动回复迁移 2025-11-04 16:53:08 +08:00
jawe
f1941bf9ab Merge branch 'dev' of gitee.com:yudaocode/yudao-ui-admin-vben into dev
Signed-off-by: jawe <532159638@qq.com>
2025-11-04 07:19:46 +00:00
jawe
bd7610c90d feat: [mall][kefu] 客服模块迁移至element-plus版 2025-11-04 15:11:14 +08:00
dylanmay
2153b1325c Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-11-04 14:38:50 +08:00
dylanmay
c2b0a91ffc feat: 消息迁移 2025-11-04 14:31:32 +08:00
Olexandr88
7268824612 Update README.md (#6828)
Co-authored-by: Jin Mao <50581550+jinmao88@users.noreply.github.com>
2025-11-04 04:34:55 +08:00
dependabot[bot]
23c41a8059 chore(deps): bump @types/node from 12.20.55 to 24.9.2 (#6860)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 12.20.55 to 24.9.2.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.9.2
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-04 04:16:59 +08:00
dependabot[bot]
fdc78faa13 chore(deps): bump @vueuse/integrations from 12.8.2 to 14.0.0 (#6861)
Bumps [@vueuse/integrations](https://github.com/vueuse/vueuse/tree/HEAD/packages/integrations) from 12.8.2 to 14.0.0.
- [Release notes](https://github.com/vueuse/vueuse/releases)
- [Commits](https://github.com/vueuse/vueuse/commits/v14.0.0/packages/integrations)

---
updated-dependencies:
- dependency-name: "@vueuse/integrations"
  dependency-version: 14.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-04 04:16:37 +08:00
dependabot[bot]
c8af580866 chore(deps): bump SamKirkland/FTP-Deploy-Action (#6873)
Bumps the non-breaking-changes group with 1 update: [SamKirkland/FTP-Deploy-Action](https://github.com/samkirkland/ftp-deploy-action).


Updates `SamKirkland/FTP-Deploy-Action` from 4.3.5 to 4.3.6
- [Release notes](https://github.com/samkirkland/ftp-deploy-action/releases)
- [Commits](https://github.com/samkirkland/ftp-deploy-action/compare/v4.3.5...v4.3.6)

---
updated-dependencies:
- dependency-name: SamKirkland/FTP-Deploy-Action
  dependency-version: 4.3.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-breaking-changes
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-04 04:14:47 +08:00
YunaiV
f32bce424b feat:【antd】【mall】diy-editor 的整体继续迁移 2025-11-04 00:04:07 +08:00
YunaiV
fde4b7852c feat:【antd】【mall】diy-editor 的整体继续迁移 2025-11-03 23:53:31 +08:00
YunaiV
06309e40b8 feat:【antd】【mall】diy-editor 的 config.ts 同步。 2025-11-03 22:53:13 +08:00
Jin Mao
348c97710f Revert "refactor(jwt): 更新 JWT 工具函数实现方式 (#6869)"
This reverts commit a854760d26.
2025-11-03 19:34:45 +08:00
xingyu4j
bd38cf4c7d Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-11-03 18:09:01 +08:00
xingyu4j
56cd619e3c fix: todo 2025-11-03 18:08:45 +08:00
xingyu4j
34a8c44f9a feat: 优化sku list 显示效果 2025-11-03 18:05:53 +08:00
jawe
f3b7b4f66f fix: 去掉本地调试地址 2025-11-03 17:10:47 +08:00
jawe
b94f34c67d feat: 使用tailwindcss简化style,统一文件命名 2025-11-03 16:42:13 +08:00
hw
7a5f4b01e2 fix: eslint 2025-11-03 14:04:38 +08:00
hw
3e826de4aa feat: antd菜单模块迁移 2025-11-03 14:04:00 +08:00
YunaiV
f0f738a368 feat:【ele】【mall】diy-editor 的 index.vue 使用 tailwindcss 简化 style 2025-11-03 13:57:52 +08:00
YunaiV
27d47c13f2 feat:【ele】【mall】diy-editor 的 component-container.vue 使用 tailwindcss 简化 style 2025-11-03 13:44:40 +08:00
YunaiV
3b4cdfef82 feat:【ele】【mall】diy-editor 的 component-library.vue 使用 tailwindcss 简化 style 2025-11-03 13:34:55 +08:00
zengmingyong
a854760d26 refactor(jwt): 更新 JWT 工具函数实现方式 (#6869)
refactor(jwt): 更新 JWT 工具函数实现方式

- 将默认导入 jsonwebtoken 改为解构导入 sign 和 verify 方法
2025-11-03 13:08:06 +08:00
Copilot
c7c39047de feat: add theme-aware logo support via optional sourceDark configuration (#6866)
* Initial plan

* Initial exploration and setup

Co-authored-by: aonoa <32682251+aonoa@users.noreply.github.com>

* Add support for separate light and dark theme logos

Co-authored-by: aonoa <32682251+aonoa@users.noreply.github.com>

* Update documentation with dark theme logo configuration

Co-authored-by: aonoa <32682251+aonoa@users.noreply.github.com>

* feat: Add theme-aware logo support for authentication/login page

Co-authored-by: aonoa <32682251+aonoa@users.noreply.github.com>

* revert: .npmrc

Signed-off-by: aonoa <1991849113@qq.com>

---------

Signed-off-by: aonoa <1991849113@qq.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: aonoa <32682251+aonoa@users.noreply.github.com>
Co-authored-by: Li Kui <90845831+likui628@users.noreply.github.com>
Co-authored-by: aonoa <1991849113@qq.com>
2025-11-03 13:07:36 +08:00
hw
8f5c928ab1 fix: 冲突合并 2025-11-03 11:22:11 +08:00
hw
81f85c200e style: 代码风格统一 2025-11-03 11:18:45 +08:00
xingyu
6e10534833 update pipeline-20251103.yml 2025-11-03 02:59:38 +00:00
xingyu
8db8536662 update pipeline-20251103.yml 2025-11-03 02:52:22 +00:00
xingyu
67bb3da219 update pipeline-20251103.yml 2025-11-03 02:31:22 +00:00
xingyu
a7836137ef create pipeline-20251103.yml 2025-11-03 02:22:36 +00:00
YunaiV
a79483a71d Merge branch 'origin/dev' into dev 2025-11-03 09:48:11 +08:00
YunaiV
03d5be1e41 feat:【ele】【mall】diy-editor 的 vertical-button-group 使用 tailwindcss 简化 style 2025-11-03 09:46:54 +08:00
xingyu
e4f64d2786 !247 Merge remote-tracking branch 'yudao/dev' into dev
Merge pull request !247 from Jason/dev
2025-11-03 01:39:01 +00:00
YunaiV
fe2f8182f1 feat:【ele】【mall】diy-editor 的 magic-cube-editor 使用 tailwindcss 简化 style 2025-11-03 09:32:14 +08:00
YunaiV
b4c90b39c9 feat:【ele】【mall】diy-editor 的 floating-action-button 使用 tailwindcss 简化 style 2025-11-03 09:27:17 +08:00
YunaiV
e5ba8ca4f1 feat:【ele】【mall】diy-editor 的 hot-zone-edit-dialog 使用 tailwindcss 简化 style 2025-11-03 09:26:40 +08:00
jason
7d202f5d7d Merge remote-tracking branch 'yudao/dev' into dev 2025-11-03 09:14:09 +08:00
jason
60190fc94f feat: [antd][bpm] bpmn 流程图查看修改 2025-11-03 09:11:49 +08:00
YunaiV
b6920f332a feat:【ele】【mall】diy-editor 的 tab-bar 使用 tailwindcss 简化 style 2025-11-03 08:46:26 +08:00
YunaiV
ff28f089d4 feat:【ele】【mall】diy-editor 的 title-bar 使用 tailwindcss 简化 style 2025-11-03 08:44:27 +08:00
YunaiV
a33907d4ae feat:【ele】【mall】diy-editor 的 tab-bar 使用 tailwindcss 简化 style 2025-11-03 08:42:47 +08:00
YunaiV
19d30980d7 feat:【ele】【mall】diy-editor 的 navigation-bar 使用 tailwindcss 简化 style 2025-11-03 08:41:56 +08:00
YunaiV
0addd0c77b feat:【ele】【mall】diy-editor 的 menu-list 使用 tailwindcss 简化 style 2025-11-03 08:41:18 +08:00
YunaiV
28029becbd feat:【ele】【mall】diy-editor 的 hot-zone-edit-dialog 使用 tailwindcss 简化 style 2025-11-03 08:40:27 +08:00
YunaiV
fe2396f346 feat:【ele】【mall】diy-editor 的 floating-action-button 使用 tailwindcss 简化 style 2025-11-03 08:38:49 +08:00
YunaiV
60219ace92 feat:【ele】【mall】diy-editor 移除 mobile 多余的 style 标签 2025-11-03 08:33:52 +08:00
YunaiV
a92b98aa41 feat:【ele】【mall】diy-editor 对比 vue3 + element-plus 的最新代码,确保迁移的正确性! 2025-11-02 20:31:23 +08:00
YunaiV
dd86598833 fix:【ele】【mall】修复 diy-editor 拖拽后,无法切回“index”首页的问题 2025-11-02 19:59:30 +08:00
YunaiV
b4ed04f695 fix:【ele】【mall】修复 navigation-bar 选中格子后,无法编辑内容、颜色、链接 2025-11-02 19:43:36 +08:00
YunaiV
de39f4683a fix:【ele】【mall】修复 diy-editor 的“组件容器属性”的【外部边距】【内部边距】的间隙不太对 2025-11-02 18:15:08 +08:00
YunaiV
f984cb6dbd fix:【ele】【mall】修复 diy-editor 的“中心:设计区域(ComponentContainer)”宽度不对的问题 2025-11-02 17:22:38 +08:00
YunaiV
39ddf5a1ea feat:【antd】【mall】diy-editor 的 promotion-point 初始化 100% 2025-11-02 17:05:18 +08:00
YunaiV
2683f10bb5 feat:【antd】【mall】diy-editor 的 promotion-seckill 初始化 100% 2025-11-02 16:45:42 +08:00
YunaiV
0ffe7554ea feat:【antd】【mall】diy-editor 的 promotion-seckill 初始化 50% 2025-11-02 16:36:46 +08:00
YunaiV
82bc4e8b70 feat:【antd】【mall】diy-editor 的 promotion-combination 的代码优化 2025-11-02 16:01:44 +08:00
YunaiV
99a4aa993b fix:【ele】【member】会员详情的修改按钮不生效 2025-11-02 15:32:28 +08:00
YunaiV
f683f01efa feat:【antd】【ele】member 的 balance-list.vue、experience-record-list.vue、point-list.vue、sign-list.vue 增强 data.ts 的复用 2025-11-02 15:20:26 +08:00
YunaiV
d7cb4bdab5 review:【antd】【ele】member 增加 brokerage-list.vue 列表 2025-11-02 14:55:21 +08:00
YunaiV
889b97370a review:【antd】【ele】member 增加 address-list、favorite-list 列表 2025-11-02 14:43:01 +08:00
YunaiV
17ccc0a27f review:【antd】【ele】member 增加 coupon-list 列表 2025-11-02 14:30:17 +08:00
YunaiV
603f0d9c0d Merge remote-tracking branch 'origin/dev' into dev 2025-11-02 12:36:46 +08:00
YunaiV
5d61860996 review:【antd】【ele】member 增加 after-sale-list 列表 2025-11-02 12:35:53 +08:00
xingyu4j
c1777ffda0 fix: lints 2025-11-02 12:32:36 +08:00
xingyu4j
2d51c652b2 Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-11-02 12:17:35 +08:00
YunaiV
1a3ce89f4b review:【antd】【ele】member 增加 order-list 列表 2025-11-02 12:10:46 +08:00
xingyu4j
adb5e3178b fix: lint 2025-11-02 12:09:34 +08:00
xingyu4j
a675e90328 chore: deps 2025-11-02 12:04:50 +08:00
jason
1dcb9688dd Merge remote-tracking branch 'yudao/dev' into dev 2025-11-02 09:31:26 +08:00
jason
1f767c5090 feat: [antd][bpm] 发起流程问题修复, todo 修改 2025-11-02 09:29:46 +08:00
YunaiV
904cf46ec0 review:【antd】【mall】客服模块 2025-11-02 09:20:25 +08:00
芋道源码
ac98a876b5 !243 feat(@vben/web-antd):迁移客服模块
Merge pull request !243 from jawe/dev
2025-11-02 00:51:59 +00:00
芋道源码
b3bc18096c !246 Merge remote-tracking branch 'yudao/dev' into dev
Merge pull request !246 from Jason/dev
2025-11-02 00:49:39 +00:00
YunaiV
aee9e4ad1f review:【antd】【iot】设备分类、分组的 review 2025-11-02 08:47:58 +08:00
芋道源码
00e587593d !245 feat: 【antd】【iot】启用状态的产品不能删除
Merge pull request !245 from haohaoMT/dev
2025-11-02 00:46:34 +00:00
YunaiV
01e3c8e0f6 feat:【antd】【ele】优惠劵的 select 组件的统一 2025-11-02 08:42:30 +08:00
YunaiV
682a63bc6e feat:【antd】【mall】满减送的建议 2025-11-02 08:20:11 +08:00
jason
40f615d3c5 Merge remote-tracking branch 'yudao/dev' into dev 2025-11-01 22:57:04 +08:00
jason
cbe7797a1c feat: [antd] [bpm] 代码评审 todo 修改 2025-11-01 22:55:45 +08:00
YunaiV
4412d455a3 feat:【antd】【ele】代码风格统一 2025-11-01 22:50:24 +08:00
haohao
cc5477dc48 feat: 【antd】【iot】启用状态的产品不能删除 2025-11-01 21:55:01 +08:00
haohao
66c9398760 fix: 【antd】【iot】修改设备状态字典为 IOT_DEVICE_STATE 2025-11-01 21:53:22 +08:00
YunaiV
d7cea8be39 feat:【mall】video-player 优化 2025-11-01 21:42:23 +08:00
YunaiV
37afa49011 feat:【mall】diy editor 的 user-bard、user-wallet、user-order 优化 2025-11-01 21:38:39 +08:00
YunaiV
a1a037174c feat:【mall】diy editor 的 title-bar 优化 2025-11-01 21:35:28 +08:00
YunaiV
b8f3f74a01 feat:【mall】diy editor 的 tab-bar 优化 2025-11-01 21:29:25 +08:00
YunaiV
149caebaac feat:【mall】diy editor 的 tab-bar 优化 2025-11-01 21:24:50 +08:00
YunaiV
b880043900 feat:【mall】diy editor 的 search-bar 优化 2025-11-01 21:19:05 +08:00
YunaiV
c6d6d1c1e8 feat:【ele】【mall】draggable 优化 2025-11-01 21:18:49 +08:00
YunaiV
b3e1dab487 feat:【ele】【mall】product/spu 的 components 迁移 2025-11-01 21:09:29 +08:00
YunaiV
4bb631fb24 feat:【mall】diy editor 的 promotion-combination 优化 2025-11-01 19:58:34 +08:00
xingyu
e74cf2e237 !241 feat: 【antd】【iot】设备分组代码迁移
Merge pull request !241 from haohao/dev
2025-11-01 06:01:52 +00:00
YunaiV
2e50526922 feat:【mall】diy editor 的 promotion-article 优化 2025-11-01 12:09:10 +08:00
YunaiV
0741ae4b63 feat:【mall】diy editor 的 product-list 优化 2025-11-01 12:02:08 +08:00
YunaiV
43e758023a feat:【ele】【mall】product/spu 的 components 迁移 2025-11-01 11:46:43 +08:00
YunaiV
7f192823d7 review:【antd】【mall】商品发布相关 2025-11-01 11:05:04 +08:00
芋道源码
f2c90ea7a4 !244 mall 商城vue3组件迁移
Merge pull request !244 from puhui999/dev-mall
2025-11-01 02:48:46 +00:00
YunaiV
1a8b9873e0 feat:【mall】diy editor 的 product-card 优化 50% 2025-11-01 10:45:06 +08:00
YunaiV
98e3078784 feat:【mall】diy editor 的 popover 优化 2025-11-01 10:16:40 +08:00
YunaiV
48292b1a98 feat:【mall】diy editor 的 page-config 优化 2025-11-01 10:07:25 +08:00
YunaiV
a7d24de126 feat:【mall】diy editor 的 notice-bar 优化 2025-11-01 09:40:03 +08:00
YunaiV
5e1c7bb54c feat:【mall】diy editor 的 navigation-bar 优化 2025-11-01 09:21:26 +08:00
YunaiV
12968a3d66 feat:【mall】diy editor 的 menu-swiper 优化 2025-11-01 08:47:47 +08:00
YunaiV
27b35ac0cf feat:【mall】diy editor 的 menu-list 优化 2025-11-01 08:42:55 +08:00
YunaiV
356e8071ed feat:【mall】diy editor 的 menu-grid 优化 2025-11-01 08:33:49 +08:00
puhui999
abe2c04171 feat:【mall 商城】sku-list 组件优化(antd) 2025-10-31 23:40:48 +08:00
puhui999
58a0636959 feat:【mall 商城】满减送活动优化(antd) 2025-10-31 23:00:21 +08:00
puhui999
dd37e58a41 feat:【mall 商城】商品橱窗组件(antd) 2025-10-31 22:59:42 +08:00
puhui999
0956c79aa5 feat:【mall 商城】spu sku 选择器优化(antd) 2025-10-31 20:51:25 +08:00
hw
7cc72018ea Merge branch 'reform-menu' of https://gitee.com/huang-wen199982/yudao-ui-admin-vben into reform-menu 2025-10-31 18:10:12 +08:00
hw
20f838adde fix: eslint errors 2025-10-31 18:09:57 +08:00
puhui999
3802a87659 feat:【mall 商城】优惠券选择组件迁移(antd) 2025-10-31 15:48:18 +08:00
puhui999
83d3188477 feat:【mall 商城】秒杀活动表单优化(antd) 2025-10-31 10:44:22 +08:00
Jin Mao
f8a7a0a9a2 chore: lint 2025-10-31 09:11:40 +08:00
Jin Mao
2cb3dcf499 Merge branch 'fork/ming4762/timezone-fix-20251030'
# Conflicts:
#	packages/stores/src/modules/timezone.ts
2025-10-31 09:08:08 +08:00
Jin Mao
b36d32b66d chore(timezone): 添加 $reset 方法并初始化时区存储
- 在时区存储中添加 `$reset` 方法
-修复导入语句引号为双引号
- 优化时区初始化错误处理逻辑- 导出 `$reset` 方法以便外部调用- 确保时区设置与默认选项同步
- 提升代码一致性和可维护性
2025-10-30 23:27:53 +08:00
zhongming4762
639ea96bb9 fix: resolve the issue of logout failure caused by the timezone store 2025-10-30 17:12:45 +08:00
zhongming4762
565be77e96 fix: resolve the issue of logout failure caused by the timezone store 2025-10-30 17:01:49 +08:00
hw
0f3f6c0c20 chore: 更新配置文件和依赖 2025-10-30 16:33:33 +08:00
jawe
f331f46ff9 feat: [mall] kefu 客服模块迁移 代码风格统一 2025-10-30 16:27:44 +08:00
jawe
0ef91c1cad feat(@vben/web-antd):迁移客服模块 2025-10-30 15:39:08 +08:00
Jin Mao
ac6de0324c Merge branch 'fork/ming4762/timezone-20251020' 2025-10-30 00:42:05 +08:00
YunaiV
38df83e281 feat:【mall】diy editor 的 magic-cube-editor 优化 2025-10-30 00:11:56 +08:00
zhongming4762
f46ae023ba feat: increase support for multiple time zones
* 优化实现方法
2025-10-29 20:14:48 +08:00
zhongming4762
212144feca feat: increase support for multiple time zones
* 优化实现方法
2025-10-29 20:10:25 +08:00
zhongming4762
3eed51fd3e feat: increase support for multiple time zones
* 优化实现方法
2025-10-29 20:03:21 +08:00
zhongming4762
4d713db546 feat: increase support for multiple time zones
* 优化实现方法
2025-10-29 19:47:10 +08:00
YunaiV
cb9fc7ad3f feat:【mall】diy editor 的 magic-cube-editor 优化 2025-10-29 13:56:10 +08:00
YunaiV
fa383159ea feat:【mall】diy editor 的 magic-cube 注释 2025-10-29 09:52:01 +08:00
YunaiV
d6faed9d0e feat:【mall】diy editor 的 image-bar 2025-10-28 23:39:52 +08:00
YunaiV
fe7a69f570 feat:【mall】diy editor 的 hot-zone 代码优化(100%)完成商品分类的支持 2025-10-28 23:21:07 +08:00
YunaiV
05dc2c7eb2 feat:【mall】diy editor 的 hot-zone 代码优化(80%)进一步使用 Modal 2025-10-28 22:56:01 +08:00
YunaiV
a171489dbc feat:【mall】diy editor 的 hot-zone 代码优化(70%)使用 Modal 替代 el-dialog 2025-10-28 21:03:18 +08:00
YunaiV
ec29c25271 feat:【mall】diy editor 的 hot-zone 代码优化(70%)使用 Modal 替代 el-dialog 2025-10-28 20:31:12 +08:00
YunaiV
24757bb562 feat:【mall】diy editor 的 app-link-input 代码优化(50%) 2025-10-28 20:22:53 +08:00
YunaiV
4de0050610 feat:【mall】diy editor 的 hot-zone 代码优化(50%) 2025-10-28 19:22:27 +08:00
YunaiV
a4f7a51ba0 feat:【mall】diy editor 的 floating-action-button 组件 2025-10-28 19:08:39 +08:00
YunaiV
328ad78a2c feat:【mall】diy editor 的 divider 组件 2025-10-28 18:49:26 +08:00
YunaiV
11ac616fd1 feat:【mall】diy editor 的 coupon-card 的全部代码 & 增加优惠劵 select 组件 2025-10-28 18:04:37 +08:00
YunaiV
958f64a9c8 feat:【mall】diy editor 的 coupon-card 部分代码的优化 2025-10-28 17:07:08 +08:00
YunaiV
0f3f220d4b feat:【mall】diy editor 的 carousel 统一小写 2025-10-28 15:13:50 +08:00
YunaiV
71fe98723a fix: 解决合并冲突并更新依赖
解决多个组件模块的合并冲突,包括:
- BPM流程实例创建页面
- 基础设施相关模块(API访问日志、错误日志等)
- 商城促销相关组件
- 支付相关模块
- 系统管理模块
- Element Plus组件描述模块
- 依赖包更新

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-28 14:44:29 +08:00
YunaiV
01ffcb3598 feat:【mall】diy editor 解决 property-group 间距不生效的问题 2025-10-28 14:41:03 +08:00
xingyu4j
32d8af5475 fix: lint 2025-10-28 14:29:42 +08:00
xingyu4j
f88713ce28 chore: engines 2025-10-28 14:19:22 +08:00
xingyu4j
2dd3471f98 fix: antdv ele detail 保持一致 2025-10-28 14:17:28 +08:00
xingyu
8e174a8308 !242 fix: 不能打包
Merge pull request !242 from xingyu/dev
2025-10-28 05:40:28 +00:00
xingyu4j
1338637c00 fix: 不能打包 2025-10-28 11:46:56 +08:00
xingyu4j
e29ea7b34e fix: 不能打包 2025-10-28 11:46:33 +08:00
xingyu4j
fbbcca20e7 fix: 不能打包 2025-10-28 11:42:56 +08:00
YunaiV
b5c8197f20 feat:【mall】diy editor 恢复中间,宽度还有点问题 2025-10-28 07:45:27 +08:00
YunaiV
fd58c4c4e4 feat:【mall】diy editor 修复左侧、中间的宽度问题 2025-10-28 07:24:28 +08:00
YunaiV
715551d431 feat:【mall】diy editor 的告警修复 2025-10-27 23:42:43 +08:00
YunaiV
7d55a39635 feat:【mall】diy editor 的 “右侧操作区” 操作按钮的样式优化 2025-10-27 19:11:33 +08:00
YunaiV
b5cd15c28c feat:【mall】diy 优化,使用 useVbenModal 替代 ElModal 组件,弹出预览 2025-10-27 18:57:00 +08:00
YunaiV
b262dc7303 feat:【mall】diy 优化 index.vue 的注释 2025-10-27 12:59:53 +08:00
xingyu
a00c5caf6c !240 Merge remote-tracking branch 'yudao/dev' into dev
Merge pull request !240 from Jason/dev
2025-10-27 02:28:52 +00:00
YunaiV
86c68b5466 feat:【代码优化】减少部分模块的 import * 的 API 2025-10-27 09:34:45 +08:00
YunaiV
d2db16c8c6 feat:【代码优化】减少部分模块的 import * 的 API 2025-10-27 09:13:32 +08:00
YunaiV
b7d32e315b feat:【代码优化】use-dict-select.ts 的 API 导入问题,不在 import * 2025-10-27 08:44:07 +08:00
jason
a325d3585e Merge remote-tracking branch 'yudao/dev' into dev 2025-10-26 23:21:11 +08:00
jason
66dbf16a77 feat: [antd] [bpm] 流程模型排序代码评审修改 2025-10-26 23:19:01 +08:00
jason
2f254d1285 Merge remote-tracking branch 'yudao/dev' into dev 2025-10-26 21:10:27 +08:00
YunaiV
9651ec49a6 feat:对齐 antd、ele 的代码逻辑 2025-10-26 21:10:16 +08:00
YunaiV
b1479c34c5 review:description 组件的实现 2025-10-26 20:47:24 +08:00
YunaiV
e139481973 feat:【全局】融合下 common card 目录的功能 2025-10-26 20:40:45 +08:00
YunaiV
bcf4fc102e feat:【ele】删除冗余的 summary-card.vue 2025-10-26 20:33:53 +08:00
YunaiV
e30c2c5412 feat:【全局】简化 handleStatusChange 类型逻辑的写法! 2025-10-26 20:25:52 +08:00
YunaiV
94e9d9a228 feat:【ele】【ai】manager 相关的迁移 2025-10-26 20:13:39 +08:00
haohao
fb481994bc feat: 【antd】【iot】产品分类代码迁移 2025-10-26 19:04:54 +08:00
haohao
8203f436cd feat: 【antd】【iot】设备分组代码迁移 2025-10-26 18:26:41 +08:00
YunaiV
60e199abf0 feat:【antd】【ai】image/manager 的代码优化 2025-10-26 18:14:08 +08:00
YunaiV
3d4aeb77b5 feat:【antd】【ai】music/manager 的代码优化 2025-10-26 18:11:10 +08:00
YunaiV
02b6ab1886 feat:【antd】【ai】chat/manager 的代码优化 2025-10-26 17:56:47 +08:00
YunaiV
86cae454d1 feat:【ele】【ai】modal 部分的代码迁移 2025-10-26 16:41:03 +08:00
YunaiV
fc6a467e63 feat:【ele】【ai】modal 部分的代码迁移 2025-10-26 16:32:52 +08:00
YunaiV
67952762ed feat:【ele】【ai】modal 部分的代码迁移 2025-10-26 16:32:43 +08:00
YunaiV
e301bee211 feat:【antd】【ai】modal 部分的代码优化 2025-10-26 16:06:45 +08:00
YunaiV
178a0a3bb2 feat:【antd】【ai】modal 部分的代码优化 2025-10-26 16:05:10 +08:00
YunaiV
0bb0c656b8 feat:【ele】【ai】mindmap 的代码迁移 2025-10-26 15:36:52 +08:00
YunaiV
eeed0f182b feat:【ele】【ai】mindmap 的代码迁移 2025-10-26 15:34:53 +08:00
Jin Mao
0cd9f4615c Merge branch 'main' into fix-downloader 2025-10-26 15:28:34 +08:00
Jin Mao
cfbce0d737 chore: fix lint 2025-10-26 15:27:28 +08:00
Jin Mao
1d9cd88dd7 Merge branch 'main' into fix-downloader 2025-10-26 15:16:32 +08:00
YunaiV
4d388bdb04 feat:【antd】【ai】mindmap 的代码优化 2025-10-26 15:16:09 +08:00
Jin Mao
0e62862119 chore: fix lint 2025-10-26 15:01:58 +08:00
Jin Mao
6b6cdef42d chore: 一些调整 2025-10-26 15:00:47 +08:00
Jin Mao
33b7a605c0 chore: 一些调整和兼容性更新 2025-10-26 14:23:37 +08:00
YunaiV
a35350d055 feat:【ele】【ai】write 的代码迁移 2025-10-26 14:16:10 +08:00
YunaiV
98d69fbee9 feat:【ele】【ai】write 的代码迁移 2025-10-26 14:00:30 +08:00
YunaiV
82917f88a5 feat:【antd】【ai】write 的代码优化 2025-10-26 13:56:46 +08:00
YunaiV
19959c79fc feat:【antd】【ai】write/manager 的代码优化 2025-10-26 13:35:39 +08:00
YunaiV
e218be3fdf feat:【antd】【mall】diy-editor 修复 element-plus 组件之路:部分解决 21% 2025-10-26 10:21:38 +08:00
YunaiV
21d03d8bac feat:【antd】【mall】diy-editor 修复 element-plus 组件之路:部分解决 20% 2025-10-26 10:11:36 +08:00
jason
9ed3c6b377 Merge remote-tracking branch 'yudao/dev' into dev 2025-10-26 09:12:17 +08:00
jason
e01fc275e1 feat: [antd]->[bpm] 代码评审修改 20% 2025-10-26 09:10:52 +08:00
YunaiV
289f6e3de4 feat:【antd】【mall】diy-editor 修复 element-plus 组件之路:部分解决 10% 2025-10-26 00:02:51 +08:00
YunaiV
0fb4f0f9eb feat:【antd】【mall】diy-editor 初始化(暂时不可用,保证界面先有。。。)linter 2025-10-25 23:40:03 +08:00
YunaiV
db1b3be27a feat:【antd】【mall】diy-editor 初始化(暂时不可用,保证界面先有。。。) 2025-10-25 23:18:55 +08:00
YunaiV
5e259eb685 feat:【antd】【mall】diy 主页面的迁移 2025-10-25 21:27:37 +08:00
YunaiV
d8f4979a47 feat:【ele】【mall】diy/page 代码优化 2025-10-25 21:02:09 +08:00
jason
adcacf1ff7 Merge remote-tracking branch 'yudao/dev' into dev 2025-10-25 20:35:52 +08:00
YunaiV
900671babd feat:【ele】【mall】diy/page 代码优化 2025-10-25 19:51:04 +08:00
YunaiV
6d3afd8ccf feat:【ele】【mall】diy-editor 调整目录到 promotion 更聚焦 2025-10-25 17:26:32 +08:00
YunaiV
a624307532 feat:【ele】【mall】diy-editor linter 修复 2025-10-25 17:05:13 +08:00
YunaiV
ae345d6fb2 feat:【ele】【mall】将 draggable 迁移到 mall/promotion/components 中,聚焦一点 2025-10-25 16:31:59 +08:00
YunaiV
1af1a9b2d4 feat:【ele】【mall】将 magic-cube-editor 迁移到 mall/promotion/components 中,聚焦一点 2025-10-25 16:23:44 +08:00
YunaiV
d550ef626c feat:【ele】【mall】将 input-with-colour 迁移到 mall/promotion/components 中,聚焦一点 2025-10-25 16:16:02 +08:00
YunaiV
cd14b16213 feat:【ele】【mall】将 color-input 迁移到 mall/promotion/components 中,聚焦一点 2025-10-25 16:04:28 +08:00
YunaiV
3d14d00a23 feat:【ele】【mall】将 color-input 迁移到 mall/promotion/components 中,聚焦一点 2025-10-25 16:04:21 +08:00
YunaiV
2909d1c4fa feat:【ele】【mall】将 app-link-input 迁移到 mall/promotion/components 中,聚焦一点 2025-10-25 15:53:51 +08:00
YunaiV
457add90bd feat:【ele】【mall】将 vertical-button-group 迁移到 mall/promotion/components 中,聚焦一点 2025-10-25 15:30:19 +08:00
YunaiV
870566dc12 feat:【ele】mp/user 的代码迁移 2025-10-25 15:18:40 +08:00
YunaiV
0566014501 feat:【ele】mp/tag 的代码迁移 2025-10-25 15:18:32 +08:00
YunaiV
a3890a120f feat:【ele】mp/tag 的代码迁移 2025-10-25 15:01:31 +08:00
YunaiV
fde9ddf468 feat:【ele】mp/statistics 的代码迁移 2025-10-25 14:44:58 +08:00
YunaiV
82e524076c feat:【antd】mp/statistics 的代码迁移 2025-10-25 14:33:16 +08:00
YunaiV
080b57af07 feat:【ele】mp/account 的代码迁移 2025-10-25 14:24:01 +08:00
YunaiV
402cab05b9 feat:【antd】mp/account 的代码优化 2025-10-25 14:16:10 +08:00
YunaiV
ec48c8859b fix:【ele】文件上传的 bug 2025-10-25 10:56:33 +08:00
YunaiV
c27b33bae8 feat:【antd】【ele】form-create 集成的 todo 处理 2025-10-25 09:59:29 +08:00
YunaiV
e6e891898c feat:【antd】【ele】form-create 集成的 todo 处理 2025-10-25 09:57:24 +08:00
YunaiV
4de08db26d feat:【antd】【ele】form-create 集成的 todo 处理 2025-10-25 09:56:01 +08:00
YunaiV
5e5a50615b feat:【antd】首页项目点击时,可以进行跳转 2025-10-25 09:24:33 +08:00
YunaiV
9a526f83cc feat:【antd】【bpm】修复 bpmn 设计器的高度不对的问题 2025-10-24 22:33:00 +08:00
YunaiV
db57d82799 feat:【antd】【bpm】oa 相关代码优化 2025-10-24 22:22:34 +08:00
YunaiV
d181c2a228 feat:【antd】【bpm】oa 相关代码优化 2025-10-24 22:18:32 +08:00
YunaiV
616dbf3b32 feat:【antd】【bpm】将 simple-model-design 迁移到 bpm components 下。 2025-10-24 21:24:59 +08:00
YunaiV
6f5a5ab3d4 feat:【antd】【bpm】将 bpmn-process-designer 迁移到 bpm components 下。 2025-10-24 20:46:43 +08:00
YunaiV
0046e49ab0 feat:【antd】【bpm】bpm/definition 的优化 2025-10-24 20:11:35 +08:00
YunaiV
9bb554f474 feat:【antd】【bpm】model/index.vue 代码评审 2025-10-24 20:03:30 +08:00
YunaiV
d568ab0fe9 feat:【antd】【bpm】model/form/ 代码评审 2025-10-24 13:57:31 +08:00
YunaiV
bbd32a274e feat:【antd】【bpm】processInstance/detail 代码评审 2025-10-24 00:01:38 +08:00
YunaiV
cbb65ffff3 feat:【antd】【bpm】processInstance/create 代码评审 2025-10-23 23:14:01 +08:00
YunaiV
abf015c444 feat:【antd】满减送活动的 review 2025-10-23 13:02:17 +08:00
YunaiV
319e9dc7bd Merge remote-tracking branch 'origin/dev' into dev
# Conflicts:
#	apps/web-antd/src/views/mall/promotion/point/activity/data.ts
#	apps/web-antd/src/views/mall/promotion/point/activity/index.vue
2025-10-23 12:46:02 +08:00
YunaiV
74bf240f52 feat:【antd】商品积分活动的 review 2025-10-23 12:44:19 +08:00
xingyu4j
8b7780d52d feat: 调整样式 2025-10-23 10:50:46 +08:00
xingyu4j
e73305d440 feat: boolean 类型使用 RadioGroup 解决 select boolean 类型 warn 2025-10-23 10:14:47 +08:00
xingyu4j
7ae3ac66fc fix: lint 2025-10-23 09:51:25 +08:00
xingyu4j
806caf8b48 Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-10-23 09:47:08 +08:00
xingyu4j
7324166a4c fix: lint 2025-10-23 09:41:05 +08:00
xingyu4j
dd6d9d8868 Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-10-23 09:40:16 +08:00
YunaiV
d14177a4c0 feat: merge remote dev branch changes
Merge IoT-related updates and improvements from remote dev branch

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-23 09:36:19 +08:00
YunaiV
9abaf69df1 feat:【antd】商品积分活动的 review 2025-10-23 09:35:16 +08:00
xingyu
0628280ea5 !238 修复物联网OTA升级页面和接口不可用的问题
Merge pull request !238 from huppygo/dev
2025-10-23 01:34:30 +00:00
YunaiV
ebc7aba637 feat:【antd】mall 发布界面的评审 2025-10-22 23:53:48 +08:00
Administrator
aefcd240e3 修复 2025-10-22 22:08:31 +08:00
zhongming4762
e01803ce9d feat: increase support for multiple time zones 2025-10-22 20:39:00 +08:00
zhongming4762
e3e5755903 feat: increase support for multiple time zones 2025-10-22 20:29:53 +08:00
zhongming4762
61ce53b686 feat: increase support for multiple time zones 2025-10-22 20:23:55 +08:00
zhongming4762
b029f77b6a feat: increase support for multiple time zones 2025-10-22 20:18:25 +08:00
zhongming4762
0a8339a405 feat: increase support for multiple time zones 2025-10-22 19:52:01 +08:00
Administrator
7ea4f836a4 修改物联网OTA升级页面和接口不可用的问题 2025-10-22 18:22:16 +08:00
xingyu4j
1db4c4170b fix: mall 2025-10-22 18:17:21 +08:00
xingyu4j
1f64551a3e fix: cellDictTag => CellDict 2025-10-22 18:07:46 +08:00
xingyu
495a924d56 !236 【mall 商城】promotion【antd】迁移
Merge pull request !236 from puhui999/dev-promotion
2025-10-22 10:06:51 +00:00
xingyu4j
cc937a88f1 feat: mp statistics 2025-10-22 18:03:32 +08:00
puhui999
cec1a58eab feat:【mall 商城】promotion reward【antd】100%: 迁移完成 2025-10-22 17:31:10 +08:00
puhui999
ca508caf61 feat:【mall 商城】promotion point【antd】100%: 迁移完成 2025-10-22 16:52:43 +08:00
xingyu4j
d0b66dbee4 fix: format 2025-10-22 16:35:01 +08:00
puhui999
ae0f3d39a2 feat:【mall 商城】promotion 公共组件【antd】100%: 迁移完成 2025-10-22 16:27:57 +08:00
xingyu4j
02945ef12a feat: mp user 2025-10-22 16:26:07 +08:00
xingyu4j
a23aaa473f feat: mp tag 2025-10-22 16:25:13 +08:00
puhui999
29b845ba05 feat:【mall 商城】SPU 商品选择弹窗组件【antd】100%: 迁移完成 2025-10-22 16:15:14 +08:00
xingyu4j
943ac99805 fix: 打包不成功 2025-10-22 15:41:13 +08:00
xingyu4j
2884ca72f7 fix: erp warn 2025-10-22 15:32:50 +08:00
xingyu4j
66647802af feat: ai code 2025-10-22 14:52:42 +08:00
xingyu4j
7aacec3e69 fix: crm statistics 2025-10-22 12:29:44 +08:00
xingyu4j
fc475c128c feat: mall detail 2025-10-22 10:22:51 +08:00
xingyu4j
9602ab6a1b fix: i18n 2025-10-22 10:18:11 +08:00
YunaiV
b5874bd0cd feat:【antd】mall 发布界面,独立目录 2025-10-22 00:21:00 +08:00
YunaiV
a7b9292b8d feat:【antd】mall 商品列表的优化代码 2025-10-21 23:48:41 +08:00
YunaiV
1286623863 feat:移除“ // 路由”重复注释。 2025-10-21 20:56:53 +08:00
YunaiV
28843fc8fe feat:【ele】bpm processInstance/report/ 的迁移 2025-10-21 19:39:06 +08:00
YunaiV
8721c4de72 chore: merge remote changes
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-21 19:27:55 +08:00
YunaiV
17558993d4 feat:【antd】bpm processInstance/report/ 的迁移 2025-10-21 19:26:06 +08:00
xingyu4j
760c5dde2a feat: 进一步优化显示效果 2025-10-21 18:17:02 +08:00
xingyu4j
20f95bb8ab refactor: spu form 2025-10-21 18:08:51 +08:00
xingyu4j
44e0a527a1 feat: 优化显示效果 2025-10-21 18:00:24 +08:00
xingyu4j
9ab51a137c fix: sku list 2025-10-21 17:55:23 +08:00
xingyu4j
80545f973a fix: lint 2025-10-21 17:45:43 +08:00
xingyu4j
5203b991de feat: add i18n 2025-10-21 17:42:02 +08:00
xingyu
d44ff7006a !235 feat:【mall 商城】商品发布 - 库存价格【antd】100%: 迁移完成
Merge pull request !235 from puhui999/dev-spu
2025-10-21 09:31:07 +00:00
puhui999
65e9aeed7f feat:【mall 商城】SKU 选择弹窗组件【antd】100%: 迁移完成 2025-10-21 17:18:06 +08:00
puhui999
5a4ecd4ad7 Merge branch 'dev' of gitee.com:yudaocode/yudao-ui-admin-vben into dev-spu
Signed-off-by: puhui999 <puhui999@163.com>
2025-10-21 08:53:26 +00:00
puhui999
38d345115c feat:【mall 商城】商品发布 - 库存价格【antd】100%: 迁移完成 2025-10-21 16:49:31 +08:00
puhui999
6bbf878171 feat:【mall 商城】商品发布 - 库存价格【antd】100%: 迁移完成 2025-10-21 16:39:54 +08:00
xingyu4j
985ce257e0 feat: use desc comp 2025-10-21 16:39:35 +08:00
xingyu4j
bb9cb64c64 refactor: refactor naive desc comp 2025-10-21 16:39:15 +08:00
xingyu4j
4959a8f401 fix: desc 2025-10-21 16:38:39 +08:00
xingyu4j
4726238e9a fix: desc 2025-10-21 16:38:24 +08:00
puhui999
93149876e5 feat:【mall 商城】商品发布 - 库存价格【antd】80%: 完善 sku form 逻辑 2025-10-21 16:10:49 +08:00
xingyu4j
d368582a90 feat: ele use desc comp 2025-10-21 15:33:32 +08:00
puhui999
6ea2082e4b feat:【mall 商城】商品发布 - 库存价格【antd】30%: 初始化 2025-10-21 15:18:04 +08:00
xingyu4j
18ef9031ca refactor: refactor ele desc comp 2025-10-21 15:16:32 +08:00
xingyu4j
94628d0c56 feat: use desc comp 2025-10-21 14:41:25 +08:00
xingyu4j
cc4a99c47d feat: desc 支持 嵌套字段 2025-10-21 14:40:20 +08:00
xingyu4j
e5d69952cb fix: 统一代码格式 2025-10-21 14:34:05 +08:00
xingyu4j
7f7f7cda2b fix: color: 'auto' => color: 'inherit' 2025-10-21 13:47:52 +08:00
xingyu4j
14093bec07 feat: 优化 desc 组件的显示效果 2025-10-21 13:42:52 +08:00
YunaiV
f61e58db96 feat:【ele】bpm processInstance/index.vue 的迁移 2025-10-21 13:11:08 +08:00
YunaiV
3f58003341 feat:【ele】bpm processInstance/index.vue 的迁移 2025-10-21 13:10:47 +08:00
YunaiV
b3b3e632ec feat:【antd】bpm processInstance/index.vue 的迁移 2025-10-21 13:06:37 +08:00
YunaiV
f488d7e414 feat:【ele】bpm processInstance/manager 的迁移 2025-10-21 12:52:31 +08:00
YunaiV
1ed485fe3e feat:【antd】bpm processInstance/manager 的迁移 2025-10-21 12:44:03 +08:00
xingyu4j
2d40c0c9f5 Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-10-21 12:12:05 +08:00
xingyu4j
bd09ecf2b5 fix: 缺失的字典枚举 2025-10-21 11:41:07 +08:00
xingyu4j
de4ca0a5a4 feat: use new desc comp 2025-10-21 11:40:42 +08:00
xingyu4j
284c47b721 refactor: antdv desc comp 2025-10-21 11:38:02 +08:00
puhui999
1ad4f2681e feat:【mall 商城】商品发布 - 库存价格 - 添加属性【antd】100%: 组件迁移 2025-10-21 11:00:33 +08:00
puhui999
3dc2d96514 feat:【mall 商城】商品属性列表组件【antd】100%: 组件迁移 2025-10-21 10:49:15 +08:00
Jin Mao
2264eaae18 feat: 新增集成tdesign组件的apps 2025-10-21 10:47:39 +08:00
YunaiV
77ba1ee68f feat:【ele】bpm task 的迁移 2025-10-21 09:41:25 +08:00
YunaiV
ad00cf839c feat:简化 ApiSelect 的 api 写法~ 2025-10-21 09:06:17 +08:00
YunaiV
3b4c01cedf feat:【antd】bpm task 的部分迁移 2025-10-20 23:33:52 +08:00
YunaiV
002ac223f0 feat:【ele】bpm processListener 的迁移 2025-10-20 23:12:24 +08:00
YunaiV
412982436a feat:【ele】bpm processListener 的迁移 2025-10-20 23:09:07 +08:00
YunaiV
fe1dccdcaa feat:【ele】bpm processExpression 的迁移 2025-10-20 23:05:35 +08:00
YunaiV
11bc471ef1 feat:【antd】bpm processExpression 的迁移 2025-10-20 23:01:05 +08:00
YunaiV
7f031ee59e feat:【ele】【ant】bpm form 高度不正确的问题 2025-10-20 22:55:27 +08:00
YunaiV
337c695b1d feat:【ele】bpm form 的迁移 100% 已完成 2025-10-20 22:33:55 +08:00
YunaiV
39508453fa feat:【ele】bpm form 的迁移 50% 初始化 2025-10-20 22:22:56 +08:00
YunaiV
f2f1675087 feat:【ele】bpm form 的迁移 50% 初始化 2025-10-20 22:22:49 +08:00
YunaiV
0b39a8ff38 feat:【antd】bpm form 的迁移 2025-10-20 22:06:36 +08:00
YunaiV
fe9928f9bf feat:【antd】bpm group 的迁移 2025-10-20 21:02:59 +08:00
YunaiV
55ea34c740 feat:【antd】bpm group 的迁移 2025-10-20 20:51:01 +08:00
YunaiV
20ac88271e feat:【ele】bpm category 的迁移 2025-10-20 20:27:08 +08:00
YunaiV
2cd4bc127d feat:【antd】bpm category 的代码风格统一 2025-10-20 19:59:32 +08:00
YunaiV
1b869a1e3a feat:使用 router name 进行跳转 2025-10-20 19:24:14 +08:00
YunaiV
fba34d6ceb feat:使用 router name 进行跳转 2025-10-20 19:14:00 +08:00
YunaiV
2b15a1835d fix:router push 无法使用 name 的问题 2025-10-20 19:09:14 +08:00
YunaiV
777ace6913 feat:统一 ele 和 antd 代码风格,移除
```
<style scoped>
:deep(.vxe-toolbar div) {
  z-index: 1;
}
</style>
```
2025-10-20 18:37:18 +08:00
YunaiV
376520253d feat:【mall 商城】交易统计【ele】100% 2025-10-20 18:31:14 +08:00
xingyu4j
03644613f3 feat: 使用 path 进行跳转 2025-10-20 15:42:23 +08:00
xingyu4j
dd70dc0012 fix: router push 2025-10-20 15:36:06 +08:00
xingyu4j
95bda979a1 Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-10-20 14:45:04 +08:00
xingyu4j
5ceffa2fe9 feat: 优化 table tab 的显示 2025-10-20 14:44:39 +08:00
xingyu4j
eb61ac3adb fix: handlePickup prompt 2025-10-20 14:13:49 +08:00
YunaiV
b28209afe7 feat:【mall 商城】交易统计【antd】30%:优化 trend-card.vue 的实现 2025-10-20 13:58:34 +08:00
xingyu4j
27eb3e6d21 fix: SummaryCard import 2025-10-20 13:50:59 +08:00
xingyu4j
91dd233727 fix: reload config 2025-10-20 13:49:09 +08:00
YunaiV
7ed34921bc feat:【mall 商城】交易统计【antd】30%:优化 trend-card.vue 的实现 2025-10-20 13:16:41 +08:00
YunaiV
49b2b40210 feat: 2025-10-20 13:08:56 +08:00
YunaiV
72dca61f74 chore: complete merge
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-20 13:00:21 +08:00
xingyu4j
705b16b0d1 fix: sort 2025-10-20 11:35:12 +08:00
xingyu
38664bf047 !234 fix: lint
Merge pull request !234 from xingyu/dev
2025-10-20 02:54:38 +00:00
xingyu4j
496a808b86 fix: lint 2025-10-20 10:49:08 +08:00
xingyu4j
30c7727361 feat: 统一 api 组件的调用方法 2025-10-20 10:41:57 +08:00
xingyu4j
c6ef77694e fix: iot warn 2025-10-20 10:37:23 +08:00
xingyu
948cb916c4 !232 iot产品管理问题修复接口
Merge pull request !232 from huppygo/dev
2025-10-20 01:59:37 +00:00
YunaiV
faa4a9140d feat:【mall 商城】商品统计【ele】100%:迁移完成 2025-10-20 09:51:31 +08:00
YunaiV
12075acefa feat:【mall 商城】交易统计、商品统计【ele】60%:初始化 2025-10-20 09:45:49 +08:00
YunaiV
b11b7582c2 feat:【mall 商城】交易统计、商品统计【antd】30%:迁移完成 2025-10-20 09:39:41 +08:00
YunaiV
3aee960954 feat:【mall 商城】交易统计、商品统计【antd】20%:product-summary-card.vue 完善 2025-10-20 09:29:00 +08:00
YunaiV
b5bc8d24b9 feat:【mall 商城】交易统计、商品统计【antd】15%:product-rank-card.vue 完善 2025-10-19 22:14:49 +08:00
YunaiV
cb717a9d84 feat:【mall 商城】交易统计、商品统计【antd】10%:初始化 2025-10-19 20:57:57 +08:00
YunaiV
6c7af029a2 feat:【mall 商城】会员统计【ele】100% 全部完成 2025-10-19 20:29:18 +08:00
YunaiV
936806bd2d feat:【mall 商城】会员统计【antd】50% 全部完成 2025-10-19 19:42:07 +08:00
YunaiV
b2b43f2d19 feat:【mall 商城】会员统计【antd】45% area-card.vue 优化代码风格 2025-10-19 19:29:45 +08:00
YunaiV
f84a296416 feat:【mall 商城】会员统计【antd】40% area-card.vue 修复界面 2025-10-19 19:22:03 +08:00
YunaiV
05bc69541b feat:summary-card 重构到 common-ui 里! 2025-10-19 19:10:09 +08:00
YunaiV
f6053bd6ca feat:【mall 商城】会员统计【antd】30% summary-card.vue 优化界面 2025-10-19 19:05:41 +08:00
YunaiV
01aef369d7 feat:【mall 商城】会员统计【antd】20% sex-card.vue 完善 2025-10-19 18:47:48 +08:00
YunaiV
fe62992d78 feat:【mall 商城】会员统计【antd】10% 初始化 2025-10-19 18:40:27 +08:00
YunaiV
bd9d8376c2 feat:【mall 商城】商城首页的迁移【ele】100%:评审完成 2025-10-19 16:59:47 +08:00
YunaiV
73208aa304 feat:【mall 商城】商城首页的迁移【ele】60%:初始化 2025-10-19 16:41:58 +08:00
YunaiV
5b3749d535 feat:【mall 商城】商城首页的迁移【antd】55%:member-stat 修复缺陷 2025-10-19 16:21:53 +08:00
YunaiV
79f633bb86 feat:【mall 商城】商城首页的迁移【antd】50%:trade-trend-card 修复缺陷 2025-10-19 16:12:21 +08:00
YunaiV
f6a251243f feat:【mall 商城】商城首页的迁移【antd】45%:terminal-card 修复缺陷 2025-10-19 15:49:53 +08:00
YunaiV
1628ab8cb5 feat:【mall 商城】商城首页的迁移【antd】45%:member-funnel-card.vue 修复缺陷 2025-10-19 15:37:48 +08:00
YunaiV
af61726e0e feat:【mall 商城】商城首页的迁移【antd】40%:member-funnel-card.vue、member-terminal-card.vue 2025-10-19 11:18:40 +08:00
YunaiV
7b8a7efc5b feat:【mall 商城】商城首页的迁移【antd】30%:shortcut-card、operation-data-card.vue 2025-10-19 10:25:04 +08:00
YunaiV
95fffb8af0 feat:【mall 商城】商城首页的迁移【antd】20%:初始化 2025-10-19 10:09:33 +08:00
jason
61b64b21aa Merge remote-tracking branch 'yudao/dev' into dev 2025-10-19 09:34:23 +08:00
zoumingjun
38f91da5af fix: 优化双列布局组件点击展开左侧按钮位置不居中问题 2025-10-18 21:22:58 +08:00
zoumingjun
8edea3aee5 fix: 调整zh-CN/system.json中<"title": "系统管理">配置位置,保持与en-US/system.json中位置一致 2025-10-18 21:20:54 +08:00
zoumingjun
08b6e7713e fix: 修复对话框modal组件方法名错误 2025-10-18 21:13:34 +08:00
zoumingjun
6a89814b83 chore: 优化侧边栏展开折叠图标 2025-10-18 20:59:14 +08:00
zoumingjun
52d3aa9315 fix: 优化Checkbox组件hover样式,Input组件placeholder样式,TabsList组件圆角样式 2025-10-18 20:58:48 +08:00
zoumingjun
4e264c503a fix: 锁屏和解锁密码输入框自动聚焦 2025-10-18 20:55:53 +08:00
zoumingjun
32051e9ca0 fix: 优化左侧和右侧认证面板动画效果 2025-10-18 20:52:27 +08:00
YunaiV
ad6ba25b3e feat:【mall 商城】商城首页的迁移【antd】10%:初始化 2025-10-18 19:47:36 +08:00
芋道源码
fffe060ab1 !233 【antd】【ele】Mall 迁移 80%
Merge pull request !233 from 芋道源码/dev
2025-10-18 11:30:44 +00:00
YunaiV
769510c4f6 feat:统一两端 data.ts 关联数据的加载逻辑(写法) 2025-10-18 17:14:28 +08:00
zoumingjun
2b0079580b fix: 修复mock-data.ts父id错误 2025-10-18 16:32:23 +08:00
YunaiV
2288748ca8 feat:【mall 商城】优惠劵-模版(100% ele) 2025-10-18 11:45:57 +08:00
YunaiV
97e692d2fc feat:【mall 商城】优惠劵-领取记录(50% ele) 2025-10-18 11:37:28 +08:00
YunaiV
4084009556 feat:【mall 商城】优惠劵-模版(100% antd) 2025-10-18 11:13:50 +08:00
YunaiV
6577794b7d feat:【mall 商城】优惠劵-模版(70% antd) 2025-10-17 23:14:37 +08:00
YunaiV
20f7a9d087 feat:add formatFileSize 2025-10-17 21:47:54 +08:00
xingyu4j
b23581ba3b fix: warn 2025-10-17 18:17:01 +08:00
Administrator
cec1cc7590 修复下面的问题 和其他页面中的类似问题
1.apps/web-antd/src/views/iot/device/device/modules/DeviceForm.vue
type 是和方法分离的

2.apps/web-antd/src/views/iot/device/device/modules/detail/DeviceDetailsMessage.vue
const getMessageList = async () => {
方法使用function 不要用const,保持一致

3.apps/web-antd/src/views/iot/device/device/modules/detail/DeviceDetailsMessage.vue
<script setup lang="ts">
文件结构是

4.apps/web-antd/src/views/iot/rule/data/rule/index.vue
handleRefresh 统一命名

Signed-off-by: Administrator <425053404@qq.com>
2025-10-17 18:06:58 +08:00
xingyu4j
23537b9f74 fix: warn 2025-10-17 17:36:55 +08:00
xingyu4j
1629003cdc feat: form create 2025-10-17 16:23:43 +08:00
xingyu4j
7704aef4c8 feat: form-create 2025-10-17 16:15:54 +08:00
xingyu4j
41baa56bf8 fix: remove message 2025-10-17 15:55:48 +08:00
xingyu4j
332de6dd91 fix: sort 2025-10-17 15:55:26 +08:00
xingyu4j
e14d10a4ba feat: 按需引入 form-create 2025-10-17 15:53:52 +08:00
xingyu4j
14a83d91f1 feat: 优化显示效果 2025-10-17 15:29:51 +08:00
xingyu4j
a65a5d2aab fix: getRangePickerDefaultProps 2025-10-17 15:10:23 +08:00
xingyu4j
22cf883cc4 fix: naive DatePicker default value use formatted-value 2025-10-17 15:03:43 +08:00
xingyu4j
09afe93a7a feat: add formatFileSize 2025-10-17 14:38:52 +08:00
xingyu4j
4f7b7c0e59 feat: job add crontab 2025-10-17 14:27:18 +08:00
xingyu4j
d4acf33a35 fix: select options 2025-10-17 14:26:59 +08:00
xingyu4j
81d92da3ac feat: add corn-tab 2025-10-17 14:24:56 +08:00
xingyu4j
ca1fefd197 feat: id use inputNumber 2025-10-17 13:39:23 +08:00
xingyu4j
15edcb1d7b fix: switch 2025-10-17 13:39:05 +08:00
xingyu4j
6979dbfa52 fix: switch slots 2025-10-17 11:33:49 +08:00
xingyu4j
a5e3406849 fix: naive code 2025-10-17 11:24:07 +08:00
xingyu4j
9499a80e8a feat: add FileUpload, ImageUpload 2025-10-17 11:23:43 +08:00
xingyu4j
ba7aa17dc3 fix: naive dict type 2025-10-17 11:23:23 +08:00
xingyu4j
c26d730a5a fix: ele createtime 2025-10-17 11:23:01 +08:00
xingyu4j
40a8e924a4 fix: antd createtime 2025-10-17 10:49:02 +08:00
xingyu4j
ee879055bb fix: ele Rate 2025-10-17 09:35:09 +08:00
xingyu4j
3055931904 feat: ele 注册rate组件 2025-10-17 09:34:10 +08:00
Administrator
1190121773 iot产品管理问题修复接口 2025-10-17 00:19:43 +08:00
Administrator
54afd4555d iot产品管理问题
1.修复物模型列表无限加载的问题
2.修复物模型管理页面添加,TSL,编辑,删除,功能类型选项功能不用问题
3.修复TSL按钮物模型接口没有的问题
4.修复物模型新增编辑页面的属性不能正常编辑修改问题美化显示
iot设备管理问题
1.修复新增编辑页面缺少字段相关组件
2.修复设备详情中子页面不显示问题
3.修复设备详情子页面物模型数据页面不显示问题
4.修复模拟设备右侧不显示问题 右侧溢出,改为上下分栏

Signed-off-by: Administrator <425053404@qq.com>
2025-10-17 00:13:48 +08:00
YunaiV
22bd8b8f45 feat:【mall 商城】优惠劵-模版(50% antd) 2025-10-16 23:34:41 +08:00
YunaiV
47a6a7284c feat:【mall 商城】优惠劵-领取记录(100% antd) 2025-10-16 23:04:33 +08:00
YunaiV
1394688364 feat:【mall 商城】文章分类(100% ele) 2025-10-16 22:06:52 +08:00
xingyu4j
e358c85c15 feat: allowClear to clearable 2025-10-16 18:05:39 +08:00
xingyu4j
dd1528d45a feat: add naive infra 2025-10-16 18:04:17 +08:00
xingyu4j
f6ad13b4f1 feat: add router 2025-10-16 18:03:51 +08:00
xingyu4j
4319b4ec26 feat: add upload 2025-10-16 18:03:33 +08:00
xingyu4j
d92cd2e48e feat: add report 2025-10-16 16:40:34 +08:00
xingyu4j
afdf859900 Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-10-16 16:38:50 +08:00
xingyu4j
0094459b22 feat: naive desc comp label default left 2025-10-16 16:38:32 +08:00
xingyu4j
27c5dc65be feat: code style 2025-10-16 16:35:51 +08:00
xingyu4j
757eb72018 feat: naive system init 2025-10-16 16:35:02 +08:00
xingyu4j
bac9b0d747 feat: remove demo 2025-10-16 16:34:35 +08:00
xingyu4j
ecc9bdaad7 feat: add dayjs 2025-10-16 16:34:16 +08:00
xingyu4j
6c82311b1f feat: 保持方法一致性 2025-10-16 16:33:49 +08:00
YunaiV
3f6c405376 feat:清理多余的 buttonStyle: 'solid', 【ele】 2025-10-16 14:00:53 +08:00
YunaiV
d1089d7a50 feat:【mall 商城】文章分类(100% ele) 2025-10-16 13:16:53 +08:00
xingyu4j
79d7972172 feat: init naive vxe-table config 2025-10-16 11:27:50 +08:00
xingyu4j
27c1fdd1c0 feat: naive add dict-tag 2025-10-16 11:25:10 +08:00
xingyu4j
4e03d3577c feat: init naive base 2025-10-16 11:22:43 +08:00
xingyu4j
efc8607848 chore: init naive config 2025-10-16 11:21:19 +08:00
xingyu4j
1f81f07191 feat: init naive locales 2025-10-16 10:36:07 +08:00
xingyu4j
dc874aa090 feat: ini naive config 2025-10-16 10:32:39 +08:00
xingyu4j
b8cfb196e9 feat: add naive system infra api 2025-10-16 10:31:09 +08:00
xingyu4j
402f9a9080 chore: init naive config 2025-10-16 10:30:36 +08:00
xingyu4j
2ee3412aef fix: sort 2025-10-16 10:28:42 +08:00
xingyu4j
466d0c829e feat: naive adapter form 2025-10-16 10:20:45 +08:00
xingyu4j
bc6d0f7dd6 chore: 还原naive初始化 2025-10-16 10:16:45 +08:00
YunaiV
b28a35cd79 feat:【mall 商城】文章分类(100% antd) 2025-10-15 23:53:10 +08:00
YunaiV
6c6e1d4720 feat:【mall 商城】文章列表(100% antd) 2025-10-15 23:37:05 +08:00
YunaiV
68192bfacc Merge remote-tracking branch 'origin/dev' into dev
Resolved merge conflicts and integrated changes from remote branch.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-15 21:18:29 +08:00
YunaiV
d9da7bd6fb feat:【mall 商城】交易订单(100% ele 部分) 2025-10-15 21:17:05 +08:00
xingyu4j
4052e3c8d2 feat: 统一方法名 on => handle 2025-10-15 14:19:30 +08:00
YunaiV
daf01c0da8 feat:【mall 商城】交易订单(90% ele 部分) 2025-10-15 13:25:52 +08:00
YunaiV
ce5fc8cf3d feat:【mall 商城】交易订单(90% ele 部分) 2025-10-15 13:25:46 +08:00
YunaiV
7fd071a79b feat:【mall 商城】交易订单(80% ele 部分) 2025-10-15 13:14:59 +08:00
YunaiV
a82d492f58 feat:【mall 商城】交易订单(70% ele 初始化) 2025-10-15 12:37:15 +08:00
YunaiV
318cbc31b2 feat:【mall 商城】交易订单(60% antd delivery 优化代码风格) 2025-10-15 09:51:01 +08:00
YunaiV
8bd135414e feat:【mall 商城】交易订单(50% antd address 优化代码风格) 2025-10-15 09:45:38 +08:00
YunaiV
26f3aa18c2 feat:【mall 商城】交易订单(40% antd price 优化代码风格) 2025-10-15 09:37:02 +08:00
YunaiV
b40f10c68b feat:【mall 商城】交易订单(30% antd remark 优化代码风格) 2025-10-15 09:20:17 +08:00
YunaiV
a101cdf2f8 feat:【mall 商城】交易订单(30% antd remark 优化代码风格) 2025-10-15 09:12:51 +08:00
YunaiV
cc44ee3daa feat:【mall 商城】交易订单(30% antd list 优化代码风格) 2025-10-14 23:49:51 +08:00
YunaiV
8c5680de81 feat:【mall 商城】交易订单(20% antd detail 优化代码风格) 2025-10-14 23:17:28 +08:00
YunaiV
fc9d7232be feat:【mall 商城】交易订单(10% antd detail 初始化) 2025-10-14 22:18:57 +08:00
YunaiV
0d551f72a4 feat:【mall 商城】售后退款(100% ele) 2025-10-14 21:32:51 +08:00
YunaiV
6fe61f9efb feat:【mall 商城】售后退款(100% antd table) 2025-10-14 20:52:35 +08:00
YunaiV
5e8c9175bb feat:【mall 商城】售后退款(100% antd form) 2025-10-14 20:28:21 +08:00
YunaiV
9f3a0a9f34 feat:【mall 商城】售后退款(100% antd detail) 2025-10-14 19:46:15 +08:00
YunaiV
b512bcc134 feat:【mall 商城】售后退款(20% antd detail grid 相关的几个描述) 2025-10-14 19:07:31 +08:00
YunaiV
68fbd98991 feat:【mall 商城】售后退款(10% antd detail description 相关的几个描述) 2025-10-14 13:02:27 +08:00
YunaiV
876c32e833 feat:【框架】description 增加对 xx.yyy 属性的读取支持 2025-10-14 12:58:11 +08:00
xingyu4j
0a09970efb feat: 代码保持一致 2025-10-14 10:21:57 +08:00
xingyu4j
c19097ec0c Merge branch 'main' of https://github.com/vbenjs/vue-vben-admin into dev 2025-10-14 10:06:36 +08:00
xingyu
5f6b876c11 !230 修复iot产品管理:
Merge pull request !230 from huppygo/dev
2025-10-14 02:01:32 +00:00
YunaiV
c27378e75f feat:【mall 商城】售后退款(10% antd detail 初始化) 2025-10-14 09:46:45 +08:00
lidongcheng88
03ce030e7c fix: 混合双列 onMounted 关闭二级侧边栏 (#6807)
Co-authored-by: ldc <lidchen@tencent.com>
2025-10-14 06:56:00 +08:00
zouawen
59097e2466 chore: 新增是否开启首选项导航栏(外观、布局、快捷键、通用)吸顶效果,调整部分样式 (#6804) 2025-10-14 06:55:11 +08:00
YunaiV
1cf77fe6de feat:【mall 商城】门店自提的迁移(ele 100%) 2025-10-13 23:39:09 +08:00
YunaiV
a3d56ae6a3 feat:【mall 商城】门店自提的迁移(ele 80%) 2025-10-13 22:21:08 +08:00
huppygo
4261ca0a50 修复iot产品管理:
1.删除,导出,获取分页 引入地址不正确的问题
2.新增修改页面 点击确定按钮没有调用接口
3.新增修改页面productKey不显示问题,修复新增没有生成按钮问题
4.新增更多设置折叠框标题为更多设置 图标 图片 产品描述放到 更多配置折叠区域默认折叠点击展开
5.卡片列表中的产品图标根据设置的图标显示

Signed-off-by: Administrator <425053404@qq.com>
2025-10-13 22:20:35 +08:00
YunaiV
75c24789ff feat:【mall 商城】门店自提的迁移(antd 100%) 2025-10-13 21:17:34 +08:00
YunaiV
59b13842c4 feat:【mall 商城】门店自提的迁移(antd 50%) 2025-10-13 20:50:42 +08:00
YunaiV
e1cb380fdc feat:【mall 商城】门店自提待完成部分的梳理(antd 1%) 2025-10-13 19:50:28 +08:00
xingyu4j
f54424ced3 feat: 统一代码格式 2025-10-13 18:21:47 +08:00
xingyu4j
202a82bf44 refactor: 重构 dict_type 将每个模块分开,便于维护 2025-10-13 18:08:03 +08:00
xingyu4j
57d3ea3446 feat: cron-tab 2025-10-13 16:34:15 +08:00
xingyu4j
137c3f46a3 fix: error 2025-10-13 16:30:39 +08:00
xingyu4j
6720882dc1 feat: use Object.assign 2025-10-13 16:10:33 +08:00
xingyu4j
4358335d47 chore: 移除 min-dash 使用vben/utils 中的方法 2025-10-13 16:02:02 +08:00
xingyu4j
31e72c19ad feat: ele codegen use code editor 2025-10-13 15:01:52 +08:00
xingyu4j
2a71d61e21 feat: codegen use code editor 2025-10-13 14:55:22 +08:00
xingyu4j
8b423d3f08 feat: css style 2025-10-13 14:54:56 +08:00
xingyu4j
e7f1eb0844 feat: add code editor 2025-10-13 14:53:56 +08:00
YunaiV
a3a292db80 feat:【mall 商城】门店管理的迁移(ele 100%) 2025-10-13 13:10:46 +08:00
xingyu
938498ebc8 !226 feat:【mall 商城】分销提现的迁移(ele 100%)
Merge pull request !226 from 芋道源码/dev
2025-10-13 02:56:44 +00:00
xingyu4j
7b7ca39d83 fix: Top-level await is not available in the configured target environment 2025-10-13 10:55:54 +08:00
xingyu4j
a4561b3dd8 fix: iot && IconifyIcon 2025-10-13 10:41:08 +08:00
xingyu4j
4b69721a90 Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-10-13 10:17:36 +08:00
xingyu4j
4c4cd57ef0 fix: iot 2025-10-13 10:17:19 +08:00
YunaiV
99c0945989 feat:【mall 商城】门店管理的迁移(antd 100%) 2025-10-13 09:53:11 +08:00
jason
be47a4482c Merge remote-tracking branch 'yudao/dev' into dev 2025-10-13 09:22:09 +08:00
YunaiV
1a9037f6ab feat:【mall 商城】门店管理的迁移(antd 50%) 2025-10-12 20:55:28 +08:00
YunaiV
8c6d1d68d1 feat:【mall 商城】快递模版的迁移(ele 100%)fix 必须要有 node-key 2025-10-12 20:19:43 +08:00
YunaiV
0d02c60478 feat:【mall 商城】快递模版的迁移(ele 100%) 2025-10-12 19:45:52 +08:00
YunaiV
31a583419a feat:【mall 商城】快递模版的迁移(antd 100%) 2025-10-12 19:29:55 +08:00
YunaiV
4270916ce4 chore: complete merge with remote changes
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-12 17:22:19 +08:00
YunaiV
43dc2d4446 feat:【mall 商城】快递模版的迁移(antd 40% 表单部分) 2025-10-12 17:20:49 +08:00
xingyu
efd1bda0d0 Merge branch 'master' of gitee.com:yudaocode/yudao-ui-admin-vben into dev
Signed-off-by: xingyu <xingyu4j@vip.qq.com>
2025-10-12 03:01:31 +00:00
YunaiV
7eeb52c582 feat:【mall 商城】快递模版的迁移(antd 30% 列表 ok) 2025-10-11 22:03:40 +08:00
YunaiV
53195748b8 feat:【mall 商城】快递公司的迁移(ele 100%) 2025-10-11 21:00:23 +08:00
YunaiV
a46fa6442c feat:【mall 商城】快递公司的迁移(antd 100%) 2025-10-11 20:26:57 +08:00
YunaiV
59bbe4cc93 fix:vite 被 ai 错误的从 7.1.2 降级成 5.4.10 iota问题 2025-10-11 20:24:32 +08:00
芋道源码
7824506e86 !225 fix: namespace缺少}
Merge pull request !225 from SNOWFLAKE/N/A
2025-10-11 11:20:40 +00:00
YunaiV
5f88a54d60 feat:【mall 商城】分销提现的迁移(ele 100%) 2025-10-11 13:47:28 +08:00
SNOWFLAKE
9c079ca220 fix: namespace缺少} 2025-10-11 05:33:59 +00:00
YunaiV
2f0ba0458e feat:【mall 商城】分销提现的迁移(antd 100%)样式优化 2025-10-11 13:06:22 +08:00
YunaiV
ced545a791 Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-10-11 12:52:46 +08:00
YunaiV
51a9f05c47 feat:【mall 商城】分销提现的迁移(antd 50%) 2025-10-11 12:49:54 +08:00
xingyu4j
15c8146eda fix: names 2025-10-11 10:58:01 +08:00
xingyu4j
a156873437 fix: iot 2025-10-11 10:56:12 +08:00
YunaiV
28566a659f feat:【mall 商城】分销记录的迁移(antd、ele 100%) 2025-10-11 09:54:49 +08:00
YunaiV
9bf2846a12 Merge branch 'master' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-10-11 08:39:36 +08:00
YunaiV
bc6dfad4c9 fix: 【infra 基础设施】update label and dependencies in data.ts 2025-10-11 00:57:52 +08:00
xingyu4j
abcc062ba1 fix: v-access:code 2025-10-10 21:56:07 +08:00
xingyu4j
fac8cee297 fix: iot 2025-10-10 21:55:50 +08:00
xingyu4j
7ef1da4f2c Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-10-10 21:44:32 +08:00
xingyu4j
691f9aa764 fix: iot 2025-10-10 21:44:08 +08:00
YunaiV
8465941011 fix:【system 系统管理】linter 报错 2025-10-10 21:32:15 +08:00
xingyu4j
00a25ed1d3 feat: dict enum 2025-10-10 20:58:41 +08:00
xingyu4j
c57c82264a Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-10-10 20:56:20 +08:00
xingyu4j
196622a8d0 feat: add iot dict enum 2025-10-10 20:53:21 +08:00
YunaiV
f740461c2a fix:【iot 物联网】linter 报错 2025-10-10 20:26:17 +08:00
xingyu
84cd10eb93 !224 修改iot前端接口调用失败问题
Merge pull request !224 from huppygo/master
2025-10-10 12:22:47 +00:00
YunaiV
b6fee5c05b feat:【mall 商城】分销用户的 form 迁移(ele 100%) 2025-10-10 20:22:33 +08:00
xingyu4j
d789072aa3 Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-10-10 20:21:09 +08:00
YunaiV
5e66e6bfac feat:【mall 商城】分销用户的 list modal 迁移(ele 60%) 2025-10-10 19:40:02 +08:00
huppygo
2db27d522f update apps/web-antd/src/api/iot/ota/task/record/index.ts.
Signed-off-by: huppygo <huppygo@qq.com>
2025-10-10 11:26:09 +00:00
huppygo
5dfdf4b10c update apps/web-antd/src/api/iot/ota/task/index.ts.
Signed-off-by: huppygo <huppygo@qq.com>
2025-10-10 11:25:39 +00:00
huppygo
752a450add update apps/web-antd/src/api/iot/ota/firmware/index.ts.
Signed-off-by: huppygo <huppygo@qq.com>
2025-10-10 11:24:04 +00:00
xingyu4j
850df7149a fix: style lint 2025-10-10 18:10:59 +08:00
YunaiV
f41e746a81 feat:【mall 商城】分销用户的 list modal 迁移(ele 50%) 2025-10-10 13:28:25 +08:00
YunaiV
f77e731357 feat:统一优化 useGridColumns<T = 泛型的使用 2025-10-10 09:50:37 +08:00
YunaiV
740da3f545 feat:【mall 商城】分销用户的 list modal 迁移(antd 100%) 2025-10-10 09:30:52 +08:00
YunaiV
94d0550ecc feat:【mall 商城】分销用户的 update 迁移(antd 50%) 2025-10-09 22:18:57 +08:00
YunaiV
db38eb23da feat:【mall 商城】分销用户的 create 迁移(antd 40%) 2025-10-09 21:28:13 +08:00
xingyu4j
b2ba1d9d37 fix: tenant tenantPackage 2025-10-09 18:38:13 +08:00
xingyu4j
378cdd4c38 fix: dept leaderUser 2025-10-09 18:33:01 +08:00
xingyu4j
d2f50c9388 fix: tree bugs 2025-10-09 18:23:35 +08:00
xingyu4j
f63dc0ecef fix: content warp extra css 2025-10-09 17:58:40 +08:00
xingyu4j
ab54628f79 feat: ele spu form 保持一致 2025-10-09 17:51:14 +08:00
xingyu4j
2e4b788c5d feat: spu 保持一致 2025-10-09 17:50:43 +08:00
xingyu4j
3d67a376a3 Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-10-09 17:13:14 +08:00
xingyu4j
6f46dc90f2 fix: el pick up order css 2025-10-09 17:12:28 +08:00
xingyu4j
41fe54e5f0 feat: use Rate 2025-10-09 17:11:53 +08:00
xingyu4j
3829fa0b49 fix: pick up order css 2025-10-09 17:09:17 +08:00
xingyu4j
9520d7016e feat: use Rate 2025-10-09 17:07:30 +08:00
xingyu4j
5e1187bab5 fix: icon 2025-10-09 16:51:57 +08:00
YunaiV
f2c34d42b0 feat:【mall 商城】分销用户的迁移(antd 30%) 2025-10-09 13:29:18 +08:00
xingyu4j
7533486cf8 fix: captcha icon 2025-10-09 11:24:40 +08:00
xingyu4j
066b28b2cc fix: bug 2025-10-09 11:20:28 +08:00
xingyu4j
99dd3350f4 Merge branch 'main' of https://github.com/vbenjs/vue-vben-admin into dev 2025-10-09 11:19:32 +08:00
YunaiV
96a1232b1e feat:【mall 商城】交易配置的迁移与 bugfix(ele) 2025-10-09 10:01:33 +08:00
YunaiV
20adbc65a8 feat:【mall 商城】交易配置的迁移与 bugfix(antd) 2025-10-09 09:21:51 +08:00
YunaiV
f83a0adb2b feat:【mall 商城】商品评论的迁移(ele) 2025-10-08 20:04:48 +08:00
YunaiV
637d02d33c feat:【mall 商城】商品评论的迁移(ele) 2025-10-08 19:54:14 +08:00
YunaiV
e226e09e8a feat:【mall 商城】商品属性的迁移(ele) 2025-10-08 18:10:42 +08:00
YunaiV
276d91190c feat:【mall 商城】商品属性的迁移(antd) 2025-10-08 17:01:18 +08:00
YunaiV
5cdf1af39f feat:【mall 商城】API 风格调整 2025-10-08 11:17:22 +08:00
YunaiV
4648f2023b feat:【mall 商城】商品分类的迁移 2025-10-08 10:53:22 +08:00
YunaiV
e84cd6147c feat:【mall 商城】商品分类的迁移 2025-10-08 10:22:27 +08:00
芋道源码
1e9bfb419e !223 【antd】Member 迁移彻底完成
Merge pull request !223 from 芋道源码/dev
2025-10-07 12:55:45 +00:00
芋道源码
9b36b84253 !222 Vue3 + Element Plus版本iot前端迁移到vben版本
Merge pull request !222 from huppygo/master
2025-10-07 12:54:45 +00:00
YunaiV
2e91f912d5 fix:【antd】【ele】system 下角色分配,不支持多选的问题 2025-10-07 20:53:31 +08:00
YunaiV
5e5ae1195e feat:【ele】【member 会员】优化会员详情 2025-10-07 20:46:52 +08:00
YunaiV
a2ed4445f2 feat:【ele】【member 会员】优化会员 list、form 相关的代码 2025-10-07 20:30:18 +08:00
YunaiV
2efefb30bb feat:【ele】【member 会员】优化会员 list、form 相关的代码 2025-10-07 20:20:41 +08:00
YunaiV
cdd7e69f8e feat:【ele】【member 会员】优化会员 list、form 相关的代码 2025-10-07 20:20:33 +08:00
Administrator
877a03df4a Vue3 + Element Plus版本iot前端迁移到vben版本 2025-10-07 19:58:59 +08:00
YunaiV
d3e7c49255 feat:【ele】【member 会员】会员详情独立 detail 目录 2025-10-07 19:35:08 +08:00
YunaiV
412dd3c05c feat:【ele】【member 会员】会员详情独立 detail 目录 2025-10-07 19:35:02 +08:00
YunaiV
4978bbbcf1 feat:【antd】【member 会员】完成详情界面的迁移 2025-10-07 17:10:54 +08:00
YunaiV
25af653216 feat:【antd】【member 会员】迁移 CouponSendForm 组件 2025-10-07 16:28:15 +08:00
YunaiV
4809b7847a feat:【antd】【member 会员】迁移 CouponSendForm 组件 2025-10-07 16:17:21 +08:00
YunaiV
d88ba2ad4e feat:【antd】【member 会员】完成 balance-form 的迁移与 bugfix 2025-10-07 15:11:51 +08:00
YunaiV
a18126a761 feat:【antd】【member 会员】完成 balance-form 的迁移与 bugfix 2025-10-07 15:11:46 +08:00
YunaiV
dabbeaae81 feat:【antd】【member 会员】完成 point-form 的迁移与 bugfix 2025-10-07 14:40:00 +08:00
YunaiV
3f1e48de54 feat:【antd】【member 会员】完成 level-form 的迁移与 bugfix 2025-10-07 14:26:35 +08:00
YunaiV
d53e1f0397 feat:【antd】【member 会员】完成 index 和 form 的重构 2025-10-07 14:19:12 +08:00
YunaiV
a60c29169b feat:【antd】【member 会员】完成 index 和 form 的重构 2025-10-07 14:18:48 +08:00
YunaiV
b9593c7a4a feat:【antd】【member 会员】将 detail 独立目录 2025-10-07 11:25:39 +08:00
YunaiV
e546247c0b fix:【ele】统一 InputNumber 的 controlsPosition 写法 2025-10-07 11:11:15 +08:00
YunaiV
9e89cdbced feat:【antd】【ele】【member 会员】signin 迁移 ele 2025-10-07 11:04:07 +08:00
YunaiV
8d34744deb fix:【antd】移除 controlsPosition ,因为 inputnumber 没这个属性,只有 ele 才有 2025-10-07 10:55:34 +08:00
YunaiV
64eed7b39a feat:【antd】【ele】【member 会员】signin 迁移 antd 2025-10-07 10:47:07 +08:00
YunaiV
3e5a1ea5aa feat:【antd】【ele】【member 会员】tag 迁移 ele 2025-10-07 10:44:11 +08:00
YunaiV
d00f8538fd feat:【antd】【ele】【member 会员】tag 迁移 antd 2025-10-07 10:42:04 +08:00
YunaiV
7b7323d519 feat:【antd】【ele】【member 会员】point 迁移 ele 2025-10-07 10:40:29 +08:00
YunaiV
960413ed58 feat:【antd】【ele】【member 会员】point 迁移 antd 2025-10-07 10:32:16 +08:00
YunaiV
ba47b627c8 feat:【antd】【ele】【member 会员】level 迁移 ele 2025-10-07 10:30:24 +08:00
YunaiV
2f6e7ced5e feat:【antd】【ele】【member 会员】level 迁移 antd 2025-10-07 10:14:23 +08:00
YunaiV
f6ca135efb feat:【antd】【ele】【member 会员】group 迁移 ele 2025-10-07 09:46:47 +08:00
YunaiV
d150475efb feat:【antd】【ele】【member 会员】group 迁移 antd 2025-10-07 09:40:52 +08:00
YunaiV
a025d12790 feat:【antd】【ele】【member 会员】config 迁移 ele 2025-10-07 09:35:01 +08:00
YunaiV
fb37b7eec3 feat:【antd】【ele】【member 会员】config 迁移 antd 2025-10-07 09:26:12 +08:00
zouawen
2ce161e585 feat: 1、新增水印文案自定义功能;2、input-item输入框组件新增清除功能(可用于快捷清除水印文案);3、偏好设置、主题切换、语言选择、是否全屏按钮新增动画效果 (#6800)
* feature: 新增水印文案自定义功能;

* chore: 偏好设置、主题切换、语言选择、是否全屏按钮新增动画效果
2025-10-07 06:15:41 +08:00
芋道源码
e4707ef380 !220 【antd】ERP、PAY 迁移彻底完成
Merge pull request !220 from 芋道源码/dev
2025-10-06 12:48:00 +00:00
YunaiV
825a052533 feat:【antd】【ele】【pay 支付】pay/cashier 迁移 antd、ele 版本 2025-10-06 20:45:29 +08:00
YunaiV
38040be98f feat:【antd】【ele】【pay 支付】pay/demo/withdraw 迁移 ele 版本 2025-10-06 20:37:19 +08:00
YunaiV
584dcd5819 feat:【antd】【ele】【pay 支付】pay/demo/withdraw 迁移 antd 版本 2025-10-06 20:29:12 +08:00
YunaiV
dd7e4d9513 feat:【antd】【ele】【pay 支付】pay/demo/withdraw 迁移 ele 版本 2025-10-06 20:15:17 +08:00
YunaiV
5d9af538fd feat:【antd】【ele】【pay 支付】pay/demo/order 迁移 ele 版本 2025-10-06 20:09:25 +08:00
YunaiV
fbd6c86ee4 feat:【antd】【ele】【pay 支付】pay/demo/order 迁移 antd 版本 2025-10-06 19:55:14 +08:00
YunaiV
9fd1c507a2 feat:【antd】【ele】【pay 支付】pay/demo/order 迁移 antd 版本 2025-10-06 19:48:41 +08:00
YunaiV
4f2ffc58f7 feat:【antd】【ele】【pay 支付】pay/wallet/package 迁移 antd、ele 版本 2025-10-06 17:41:59 +08:00
YunaiV
b2de0e2a29 feat:【antd】【ele】【pay 支付】pay/wallet/balance 迁移 ele 版本 2025-10-06 13:36:03 +08:00
YunaiV
385b5eaaec feat:【antd】【ele】【pay 支付】pay/wallet/balance 迁移 antd 版本 2025-10-06 13:06:57 +08:00
YunaiV
0627f5072d feat:【antd】【ele】【pay 支付】pay/notify 迁移 ele 版本 2025-10-06 11:11:51 +08:00
YunaiV
c168045639 feat:【antd】【ele】【pay 支付】pay/notify 迁移 antd 版本 2025-10-06 10:40:20 +08:00
YunaiV
96026b85b5 feat:【antd】【ele】【pay 支付】order/refund/transfer 导出的缺失补全 2025-10-06 09:33:43 +08:00
YunaiV
fcc6162692 feat:【antd】【ele】【pay 支付】pay/transfer 迁移 ele 版本 2025-10-06 09:18:37 +08:00
zouawen
33306a5aff chore: 更换其他登录方式图标为彩色图标,新增其他登录方式tooltip文字提示 (#6799) 2025-10-06 06:56:54 +08:00
YunaiV
b587032597 feat:【antd】【ele】【pay 支付】pay/transfer 迁移 antd 版本 2025-10-05 22:06:58 +08:00
YunaiV
25e434276a fix:【antd】【ele】【pay 支付】pay/refund 迁移 ele 版本 2025-10-05 21:48:00 +08:00
YunaiV
cb04558426 fix:【antd】【ele】【pay 支付】pay/refund 迁移 antd 版本 2025-10-05 21:42:12 +08:00
YunaiV
25fe87e94c fix:【antd】【ele】【pay 支付】pay/order 详情使用错接口 2025-10-05 21:30:04 +08:00
YunaiV
112a7dfb93 feat:【antd】【ele】【pay 支付】pay/order 在 ele 代码优化 2025-10-05 21:12:25 +08:00
YunaiV
73e64b468a feat:【antd】【ele】【pay 支付】pay/order 在 antd 代码优化 2025-10-05 20:45:55 +08:00
YunaiV
8f20182050 feat:【ele】【pay 支付】pay/app 代码优化 4/4(对齐 ele 和 antd) 2025-10-05 20:32:46 +08:00
YunaiV
22b0496428 feat:【ele】【pay 支付】pay/app 代码优化 3/4(对齐 ele 和 antd) 2025-10-05 20:13:32 +08:00
YunaiV
b2e2fe7ccb feat:【ele】【框架】调整 CellSwitch,使用 inlinePrompt 内嵌展示文案 2025-10-05 19:52:54 +08:00
YunaiV
5393623f45 feat:【ele】【框架】调整 CellSwitch,注释 activeText、inactiveText 禁用文字展示 2025-10-05 19:49:40 +08:00
YunaiV
e6e0621c20 feat:【antd】【pay 支付】pay/app 代码优化 2/4 2025-10-05 18:56:39 +08:00
YunaiV
7bdfa99042 feat:【antd】【pay 支付】pay/app 代码优化 1/4 2025-10-05 16:51:59 +08:00
YunaiV
98d7ed663f fix:【antd】【erp 系统】tableData.value.findIndex((item) => item.id === row.id) 不正确的问题,使用 seq 比对 2025-10-05 14:38:00 +08:00
YunaiV
c6bd38f98d fix:【antd】【erp 系统】finance/account 切换默认的逻辑未实现 2025-10-05 14:19:28 +08:00
YunaiV
8266490674 feat:【antd】【erp 系统】finance/receipt 的迁移 4/4(已完成) 2025-10-05 13:59:14 +08:00
YunaiV
ce709742fd feat:【antd】【erp 系统】finance/receipt 的迁移 4/4(已完成) 2025-10-05 13:59:01 +08:00
YunaiV
8789cd1ff2 feat:【antd】【erp 系统】统一审批接口的写法与调用 2025-10-05 11:12:19 +08:00
YunaiV
95ba94ee5e feat:【antd】【erp 系统】finance/receipt 的迁移 1/4(初始化) 2025-10-05 11:04:27 +08:00
YunaiV
9a17613823 feat:【antd】【erp 系统】finance/payment 的迁移 4/4(form 部分) 2025-10-05 10:52:17 +08:00
YunaiV
14dd95b915 feat:【antd】【erp 系统】finance/payment 的迁移 4/4(form 部分) 2025-10-05 10:52:13 +08:00
YunaiV
43533b5499 feat:【antd】【erp 系统】finance/payment 的迁移 2/4(form 部分) 2025-10-05 10:30:48 +08:00
YunaiV
af29a0e29b feat:【antd】【erp 系统】finance/payment 的迁移 2/4(form 部分) 2025-10-05 10:19:22 +08:00
YunaiV
386919030d feat:【antd】【erp 系统】finance/payment 的迁移 1/4(列表 ok) 2025-10-05 09:28:53 +08:00
YunaiV
02adb68581 feat:【antd】【erp 系统】库存相关的 3 位保留的补全 2025-10-05 09:19:39 +08:00
YunaiV
f98cef8c71 feat:【antd】【erp 系统】stock/check 1/1 重构完成 2025-10-05 09:00:39 +08:00
YunaiV
9567fb39c1 feat:【antd】【erp 系统】stock/move 1/1 重构完成 2025-10-05 08:52:58 +08:00
YunaiV
33de8dcdf2 feat:【antd】【erp 系统】stock/out 1/1 重构完成 2025-10-04 22:34:25 +08:00
YunaiV
a6c4fde2c4 feat:【antd】【erp 系统】stock/in 1/1 重构完成 2025-10-04 21:52:37 +08:00
YunaiV
a7c4e6ac11 feat:【antd】【erp 系统】purchase/in 重构 4/4(bugfix) 2025-10-04 21:34:11 +08:00
YunaiV
7d3f5dc149 feat:【antd】【erp 系统】purchase/return 重构 4/4 2025-10-04 21:26:43 +08:00
YunaiV
7d9b3f89fa feat:【antd】【erp 系统】purchase/return 重构 2/4 2025-10-04 21:14:41 +08:00
YunaiV
1350342715 feat:【antd】【erp 系统】purchase/return 重构 1/4 2025-10-04 21:04:30 +08:00
YunaiV
655b3d87c0 feat:【antd】【erp 系统】purchase/in 重构 4/4 2025-10-04 20:52:20 +08:00
YunaiV
ff2f176917 feat:【antd】【erp 系统】purchase/in 重构 4/4 2025-10-04 20:37:30 +08:00
YunaiV
f7c0b41199 feat:【antd】【erp 系统】purchase/in 重构 1/4 2025-10-04 20:05:58 +08:00
YunaiV
c401000eb9 feat:【antd】【erp 系统】purchase/order 重构 4/4 2025-10-04 20:00:37 +08:00
YunaiV
9406593d6e feat:【antd】【erp 系统】purchase/order 重构 3/4 2025-10-04 19:37:28 +08:00
YunaiV
2039cbc0d0 feat:【antd】【erp 系统】purchase/order 重构 2/4 2025-10-04 19:27:44 +08:00
YunaiV
5e13d28d46 feat:【antd】【erp 系统】purchase/order 重构 1/4 2025-10-04 19:18:22 +08:00
YunaiV
7250934a41 feat:【antd】【erp 系统】sale 重构代码风格(增加已出库等动态列) 2025-10-04 17:07:58 +08:00
YunaiV
dd9fd6e284 feat:【antd】【erp 系统】sale 重构代码风格(修复“优惠后金额”未计算的问题) 2025-10-04 16:48:03 +08:00
YunaiV
888a6d9ec8 feat:【antd】【erp 系统】sale 重构代码风格(处理文案等) 2025-10-04 16:29:36 +08:00
YunaiV
a9c9e0f8b2 feat:【antd】【erp 系统】stock/stock 重构代码风格 2025-10-04 15:44:11 +08:00
YunaiV
34167a38de feat:【antd】【erp 系统】stock/record 重构代码风格 2025-10-04 15:39:56 +08:00
YunaiV
b0c32a2a18 feat:【antd】【erp 系统】finance/account 重构代码风格 2025-10-04 15:31:26 +08:00
YunaiV
f63cb9ed2f feat:【antd】【erp 系统】sale/return 重构初始化 2025-10-04 15:16:51 +08:00
YunaiV
480ed5c83d feat:【antd】【erp 系统】sale/out 全部重构 ok 2025-10-04 15:04:12 +08:00
YunaiV
3182a86b80 feat:【antd】调整 formatNumber 为 formatAmount3 保留 3 位,formatAmount2 保留 2 位 2025-10-04 14:53:31 +08:00
YunaiV
ceabd731ba feat:【antd】【erp 系统】sale/out 部分重构(sale-order-select) 2025-10-04 14:45:03 +08:00
YunaiV
40b5d952eb feat:【antd】【erp 系统】sale/out 部分重构(form 基本重构完) 2025-10-04 10:56:40 +08:00
YunaiV
86e701ba3a feat:【antd】【erp 系统】sale/out 部分重构(form 部分重构 +1) 2025-10-04 10:21:14 +08:00
YunaiV
c603b7002c feat:【antd】【erp 系统】sale/out 部分重构(form 部分重构) 2025-10-04 09:52:40 +08:00
YunaiV
c8c4693983 feat:【antd】【erp 系统】sale/out 部分重构(列表 ok) 2025-10-04 09:15:11 +08:00
YunaiV
e073a40153 feat:【antd】【erp 系统】sale/out 部分重构(列表 ok) 2025-10-04 09:15:01 +08:00
YunaiV
d5712f2640 feat:【antd】【erp 系统】sale/order 重构完成 2025-10-03 20:54:22 +08:00
YunaiV
83cffeafc3 feat:【antd】【erp 系统】sale/order 部分代码优化(form 基本完善) 2025-10-03 20:38:44 +08:00
YunaiV
95295d5b93 feat:【框架】form-api 增加 disabled 控制的能力 2025-10-03 20:15:31 +08:00
YunaiV
e9fafab07c feat:【antd】【erp 系统】sale/order 部分代码优化(form 继续优化代码) 2025-10-03 20:06:05 +08:00
YunaiV
945e0902ae feat:【antd】【erp 系统】sale/order 部分代码优化(form 修复 init 问题) 2025-10-03 19:37:56 +08:00
YunaiV
b57cbc798a feat:【antd】【erp 系统】sale/order 部分代码优化(form 中量) 2025-10-03 18:36:05 +08:00
YunaiV
3f0c60be04 feat:【antd】【erp 系统】sale/order 部分代码优化(form 中量) 2025-10-03 18:26:30 +08:00
YunaiV
3902005ad4 feat:【antd】【erp 系统】sale/order 部分代码优化(form 少量) 2025-10-03 17:21:08 +08:00
YunaiV
8d897e89a3 feat:【antd】【erp 系统】sale/order 部分代码优化 2025-10-03 16:14:30 +08:00
YunaiV
1a33f2562e feat:【antd】【erp 系统】customer 迁移 2025-10-03 11:50:26 +08:00
YunaiV
c208c56f72 feat:【antd】【erp 系统】warehouse 迁移 2025-10-03 11:38:08 +08:00
YunaiV
2572824d1a feat:【antd】【erp 系统】warehouse 迁移 2025-10-03 11:37:34 +08:00
YunaiV
85b6d0c4d6 feat:【antd】【erp 系统】supplier 迁移 2025-10-03 10:12:00 +08:00
YunaiV
eeb1f1ebf9 feat:【antd】【erp 系统】product 迁移 2025-10-03 09:55:03 +08:00
YunaiV
325cede2ed feat:【antd】【ele】统一 await formApi.setValues(formData.value); 的写法 2025-10-03 09:07:01 +08:00
YunaiV
7934cbdd7b feat:【antd】【erp 系统】product unit 迁移 2025-10-03 08:58:11 +08:00
YunaiV
f3390427ac feat:【antd】【erp 系统】product category 迁移 2025-10-03 08:52:55 +08:00
YunaiV
bfbf97874c feat:【antd】【erp 系统】product category 迁移 2025-10-03 08:50:43 +08:00
YunaiV
76b00821cb feat:【antd】【erp 系统】home 界面的代码优化 2025-10-02 20:14:20 +08:00
YunaiV
1bf4238609 Merge branch 'master' of https://github.com/yudaocode/yudao-ui-admin-vben into dev 2025-10-02 16:17:02 +08:00
芋道源码
63f58fa84d !219 【antd】CRM 迁移彻底完成
Merge pull request !219 from 芋道源码/dev
2025-10-02 08:10:55 +00:00
YunaiV
463a9fb509 fix:【pay 支付】微信支付 publicKeyContent 调整为非必填,兼容 https://t.zsxq.com/ODR5V、https://gitee.com/yudaocode/yudao-ui-admin-vue3/issues/ICUE53 2025-10-02 10:24:10 +08:00
YunaiV
783f510229 fix:【bpm 工作流】已办任务的审批状态过滤不正确 2025-10-02 09:35:46 +08:00
YunaiV
92c433a6aa feat:【antd】【ele】统一 infra 和 system 的代码风格(demo03/normal) 2025-10-01 13:00:13 +08:00
YunaiV
599e1b342a feat:【antd】【ele】统一 infra 和 system 的代码风格(demo03/inner) 2025-10-01 12:44:06 +08:00
YunaiV
2e2a147815 feat:【antd】【ele】统一 infra 和 system 的代码风格(demo03/erp) 2025-10-01 10:48:23 +08:00
YunaiV
67b39cfe8a feat:【antd】【ele】统一 infra 和 system 的代码风格(demo01、demo02) 2025-10-01 09:49:04 +08:00
YunaiV
cdc0cbc431 feat:【antd】【crm】团队成员的代码实现 2025-09-30 22:23:54 +08:00
YunaiV
5eec2050a9 feat:【antd】【crm】跟进记录的代码优化 2025-09-30 22:13:37 +08:00
YunaiV
3708af6738 feat:【antd】【crm】回款的新增/修改的时,正确处理合同 2025-09-30 20:52:00 +08:00
YunaiV
6b0d783564 feat:【antd】【crm】修改时,负责人不允许直接修改 2025-09-30 20:01:37 +08:00
lw567
6e03de5011 fix: watermark create error #6788 (#6789)
Co-authored-by: liwei567 <liwei567@example.com>
2025-09-30 19:53:09 +08:00
YunaiV
6410c83b13 feat:【antd】【crm】修改时,负责人不允许直接修改 2025-09-30 19:51:24 +08:00
YunaiV
9e6d8ff3e9 feat:【antd】【crm】调整操作日志和团队成员的标签顺序,优化表单字段的规则和属性 2025-09-30 19:42:20 +08:00
YunaiV
0f6868febf feat:【antd】【crm】将 defineAsyncComponent 调整成 export 2025-09-30 15:24:00 +08:00
YunaiV
0d07db46f0 feat:【antd】【crm】优化整体的 allowClear 2025-09-30 14:56:55 +08:00
YunaiV
2d5f24c626 feat:【antd】【crm】优化 statistics 的整体代码 2025-09-30 13:16:52 +08:00
YunaiV
0d1901abdb feat:【antd】【crm】优化 backlog 的整体代码 2025-09-30 13:08:46 +08:00
YunaiV
f381f934e8 feat:【antd】【crm】优化 receivable-plan 的整体代码风格 2025-09-30 09:56:35 +08:00
YunaiV
05ec6a16b3 feat:【antd】【crm】优化 receivable-plan 的整体代码风格 2025-09-30 09:24:52 +08:00
jason
4edecbf3fa Merge remote-tracking branch 'yudao/dev' into dev 2025-09-30 09:11:48 +08:00
HaHa
713281a8ba fix(theme-button): fix flicker during theme switch (#6782) 2025-09-30 05:10:51 +08:00
shierd
42e3de9e2c fix: 修复设置表单值时合并子对象的错误 (#6780)
Co-authored-by: shier <shier@shierd.com>
2025-09-30 05:10:39 +08:00
vent
1e029dbc9a fix: 修复部分场景 echarts 在使用 v-show 时获取不到 width 的问题 (#6776) 2025-09-30 05:09:33 +08:00
YunaiV
0afd36172b feat:【antd】【crm】优化 receivable-plan 的整体代码风格 2025-09-29 23:32:16 +08:00
YunaiV
9bfd314311 feat:【antd】【crm】优化 receivable 的整体代码风格 2025-09-29 23:19:46 +08:00
YunaiV
e441978662 feat:【antd】【crm】优化 receivable 的整体代码风格 2025-09-29 09:47:16 +08:00
YunaiV
985dca4990 feat:【antd】【crm】优化合同的整体代码风格 2025-09-29 09:16:44 +08:00
YunaiV
a4aa2b7711 feat:【antd】【crm】优化合同的整体代码风格 2025-09-29 09:16:16 +08:00
YunaiV
876768e98d feat:【antd】【crm】优化合同的整体代码风格 2025-09-29 08:41:41 +08:00
YunaiV
41530a40e5 feat:【antd】【crm】优化合同配置的代码 2025-09-28 23:09:44 +08:00
YunaiV
252b530526 feat:【antd】【crm】商机状态的代码优化 2025-09-28 23:00:40 +08:00
YunaiV
9c564ea3af feat:【antd】【crm】商机的整体代码结构优化 2025-09-28 22:46:00 +08:00
YunaiV
1a3441b662 feat:【antd】【crm】商机的整体代码结构优化 2025-09-28 21:06:08 +08:00
YunaiV
c60c2a5b76 feat:【antd】【crm】商机的整体代码结构优化 2025-09-28 21:04:20 +08:00
YunaiV
3d2a53a6b2 feat:【antd】【crm】产品的 components 优化 2025-09-28 20:00:06 +08:00
YunaiV
ee3af0293b feat:【antd】【crm】产品的列表、详情优化 2025-09-28 13:02:10 +08:00
YunaiV
43c3169c54 feat:【antd】【crm】产品分类的代码优化 2025-09-28 09:51:07 +08:00
YunaiV
968552ec4b feat:【antd】【crm】客户公海分配 form 的优化 2025-09-27 21:10:02 +08:00
YunaiV
3ba046def7 feat:【antd】【crm】客户公海分配 form 的优化 2025-09-27 21:08:08 +08:00
YunaiV
9dd6e0f687 feat:【antd】【crm】客户公海配置优化 2025-09-27 20:40:34 +08:00
YunaiV
45fb4dc3fe feat:【antd】【crm】客户限制配置的重构与修复部分缺陷 2025-09-27 17:19:54 +08:00
YunaiV
082fddcb64 feat:【antd】【crm】线索、联系人的详情,改成 TableAction 实现 2025-09-27 17:04:06 +08:00
YunaiV
10018fcc85 feat:【antd】【crm】客户的详情的重构 2025-09-27 16:56:36 +08:00
YunaiV
09abc9cead feat:【antd】【crm】客户的列表的重构 2025-09-27 16:36:18 +08:00
YunaiV
06633c336e feat:【antd】【crm】联系人列表和详情组件的重构与优化 2025-09-27 15:44:55 +08:00
YunaiV
84bb8331c2 feat:【antd】【crm】contact 详情的优化 2025-09-27 15:25:09 +08:00
YunaiV
af291928ad review:【antd】流程设计器、文件上传等 2025-09-27 14:02:47 +08:00
xingyu4j
f50ca431ec docs: readme 2025-09-26 13:48:15 +08:00
xingyu4j
9936be1346 Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-09-26 13:46:48 +08:00
xingyu4j
a56ab2212d fix: lint 2025-09-26 13:46:21 +08:00
xingyu
27d767f812 !218 ele:重新封装上传组件、新增 CronTab CRON 表达式配置组件
Merge pull request !218 from puhui999/dev-ele
2025-09-26 05:43:12 +00:00
puhui999
8229ca1335 fix:【ele】代码生成预览 2025-09-26 11:12:32 +08:00
puhui999
f0fbaf45f4 refactor:【ele】重新封装上传组件 2025-09-26 10:52:30 +08:00
YunaiV
0d018c37c5 feat:【antd】【crm】contact form 的优化 2025-09-26 08:38:57 +08:00
YunaiV
3c0723d82f feat:【antd】【crm】contact 列表的优化 2025-09-25 23:39:44 +08:00
YunaiV
655940bc4f feat:【antd】【crm】contact 整体结构调整 2025-09-25 21:39:06 +08:00
puhui999
c64c770f54 feat:【ele】新增 CronTab CRON 表达式配置组件、JOB 表单优化 2025-09-25 17:05:26 +08:00
xingyu4j
daf0cd9f27 Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-09-25 16:35:19 +08:00
xingyu
7157254482 !217 上传组件增加 modelValue 参数适配,同时支持 modelValue 和 value 参数(适配 FormCreate)
Merge pull request !217 from puhui999/dev-form-create
2025-09-25 08:32:33 +00:00
puhui999
1f1a26bc11 feat:【antd】优化 bpmn-process-designer 组件图标 2025-09-25 11:52:26 +08:00
puhui999
510825bb49 feat:【antd】图片上传组件增加 modelValue 参数适配,同时支持 modelValue 和 value 参数(适配 FormCreate) 2025-09-25 11:29:10 +08:00
xingyu4j
0b64363eeb Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-09-25 11:23:52 +08:00
puhui999
fbeeb151ff feat:【antd】文件上传组件增加 modelValue 参数适配,同时支持 modelValue 和 value 参数(适配 FormCreate) 2025-09-25 11:16:56 +08:00
YunaiV
484cd432fe feat:【antd】【crm】基本完成代码风格优化和统一 2025-09-25 09:38:51 +08:00
puhui999
9bd1252dd6 feat:【antd】优化 bpmn-process-designer penal 样式 2025-09-24 20:45:30 +08:00
xingyu4j
808b2970ca fix: lint 2025-09-24 18:08:21 +08:00
xingyu4j
b26f9b1380 feat: use common-ui ContentWrap 2025-09-24 15:05:23 +08:00
xingyu4j
80b2e4fce4 feat: add ContentWrap comp 2025-09-24 15:04:29 +08:00
xingyu4j
0cfdbe75e4 Merge branch 'main' of https://github.com/vbenjs/vue-vben-admin into dev 2025-09-24 14:30:35 +08:00
xingyu4j
959c747f69 Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-09-24 14:17:22 +08:00
puhui999
aaa821fbee fix:【antd】移除 bpmn-process-designer 不必要的编译器宏导入 2025-09-24 11:07:34 +08:00
YunaiV
8324295ee6 feat:【antd】【crm】重构 clue detail 路由 2025-09-24 09:52:31 +08:00
YunaiV
7dc6929b79 feat:【antd】【crm】增加 clue detail 的优化想法 2025-09-24 09:36:46 +08:00
Cup_Of_Bread
81bb7456f8 fix: 修复注解错误 (#6763) 2025-09-23 23:49:25 +08:00
pangyajun123
26f8d2aa30 perf: 表单需要通过权限控制是否需要展示,dependencies.if 这种方式需要别triggerFields触发字段,不能满足要求 (#6756) 2025-09-23 23:48:27 +08:00
YunaiV
95ce3e40f7 feat:【antd】【crm】优化 clue 线索的列表界面 2025-09-23 23:47:09 +08:00
boisduval
a8b848d367 fix: 解决搜索表单中arrayToStringFields属性无法在搜索时生效的问题 (#6591)
- 合并handleArrayToStringFields与handleStringToArrayFields为handleMultiFields
- 在handleMultiFields判断arrayToString或stringToArray
- 删除两个方法在其他地方的引用 统一为在handleRangeTimeValue内调用handleMultiFields实现数据转换

Co-authored-by: 宛晴 <wanqing@mengtaigroup.com>
2025-09-23 23:45:26 +08:00
YunaiV
634b5be676 feat:【antd】【crm】优化 clue 线索的列表界面 2025-09-23 23:44:56 +08:00
xingyu4j
d3513782b0 fix: mp api 2025-09-23 15:07:59 +08:00
xingyu4j
b7bb7ecd5d Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-09-23 14:52:15 +08:00
YunaiV
94c5c4c57e feat:【antd】【ele】统一 infra 和 system 的代码风格 2025-09-23 09:42:06 +08:00
YunaiV
5ddc25f4f2 feat:【antd】【ele】统一 mail/template 的实现 2025-09-23 09:21:08 +08:00
YunaiV
3c67ecada0 feat:【antd】【ele】统一 dataSourceConfig 的实现 2025-09-23 08:31:14 +08:00
YunaiV
af74cf6ad9 feat:【antd】【ele】统一 infra 和 system 的代码风格 2025-09-23 00:04:41 +08:00
xingyu4j
a143e0cee3 fix: lint 2025-09-22 18:53:39 +08:00
xingyu4j
b6d7dda0b3 fix: 空白页面关闭后其他页面无法正常显示 2025-09-22 18:40:00 +08:00
xingyu4j
ac82b49425 fix: iframe 2025-09-22 18:31:02 +08:00
xingyu4j
be1250e71a fix: mp tag 2025-09-22 18:13:52 +08:00
xingyu4j
47c0c847eb feat: 统一消息提醒 2025-09-22 18:06:09 +08:00
YunaiV
a1e756c0e5 feat:【antd】【ele】统一 api 的 system、infra 实现 2025-09-22 12:58:22 +08:00
YunaiV
6ca2b0f1ca feat:【antd】【ele】统一 codegen、file 的 API 参数 2025-09-22 09:59:22 +08:00
YunaiV
c9f123be2a feat:【antd】数据源管理,增加批量删除 2025-09-22 09:24:05 +08:00
YunaiV
38919dfc8e fix:【antd】【ele】activeMenu => activePath 解决激活菜单 2025-09-21 21:59:01 +08:00
芋道源码
d21031ecf4 Merge pull request #125 from inside5545/master
fix:流程表单字典选择器无法正常回显
2025-09-21 11:22:46 +08:00
苏俊言
c4babbecf0 fix:流程表单字典选择器无法正常回显 2025-09-20 16:55:41 +08:00
YunaiV
ca3fae4611 fix:【pay 支付】收银界面,关闭后清理定时轮询 2025-09-20 12:45:40 +08:00
YunaiV
65d24fa6be feat:【antd】【bpm 工作流】开启流程类型的 BPMN 的配置 2025-09-20 10:17:28 +08:00
xingyu
45a5c9bc8e !214 merge dev
Merge pull request !214 from xingyu/dev
2025-09-19 08:20:33 +00:00
xingyu4j
66e2158fa7 chore: ele 缺失 tinymce 依赖 2025-09-19 16:18:40 +08:00
xingyu4j
d9a543ffaa fix: lint 2025-09-19 16:12:16 +08:00
xingyu4j
a75754c2ec fix: ele 不存在InputPassword组件 2025-09-19 16:09:45 +08:00
xingyu4j
033bd21ff8 fix: assign menu form 2025-09-19 16:09:14 +08:00
xingyu4j
2f55bca2e4 fix: 使用Tree替换原有VbenTree 2025-09-19 16:08:23 +08:00
xingyu4j
7689aff790 Merge branch 'main' of https://github.com/vbenjs/vue-vben-admin into dev 2025-09-18 17:58:14 +08:00
ming4762
482ce981ce chore: update deps vxe, vxe-table: 4.14.4 -> 4.16.11 vxe-pc-ui: 4.7.… (#6752)
* chore: update deps vxe, vxe-table: 4.14.4 -> 4.16.11  vxe-pc-ui: 4.7.12 -> 4.9.29

* fix: resolve the ESLint warning generated by #6317
2025-09-17 17:42:39 +08:00
Jin Mao
97ad93ab1f Merge branch 'zouawen-main' 2025-09-17 17:41:05 +08:00
Jin Mao
319b7fcdaa Merge branch 'main' of https://github.com/zouawen/vue-vben-admin into zouawen-main 2025-09-17 17:37:43 +08:00
Jin Mao
4de8220ce6 feat(common-ui): 添加 Tree 组件
- 在 common-ui 包中新增 Tree 组件
- 实现了基本的树形结构展示功能
- 集成了 VbenTree 组件和自定义样式- 添加了空数据时的占位展示
2025-09-17 17:28:39 +08:00
xingyu
fce9536213 !213 bpmn 流程模型设计器 bpmn-process-designer 整合
Merge pull request !213 from puhui999/dev
2025-09-15 10:31:45 +00:00
xingyu4j
e0c2ebae8a Merge branch 'main' of https://github.com/vbenjs/vue-vben-admin into dev 2025-09-15 13:56:25 +08:00
xingyu4j
3c5285ba72 chore: 恢复 单引号 2025-09-15 13:56:03 +08:00
xingyu4j
65bbccbe9e Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-09-15 13:41:30 +08:00
puhui999
058e20d311 style: 移除 bpmn-process-designer element-variables.scss 2025-09-15 11:37:12 +08:00
puhui999
2458046afe fix: bpmn-process-designer SelectOption 标题展示问题 2025-09-15 11:18:45 +08:00
puhui999
40e04f773d fix: bpmn-process-designer structuredClone => cloneDeep 2025-09-15 11:05:25 +08:00
puhui999
9e3b4461cf fix: 修复 bpmn-process-designer 图标使用问题,使用 h 函数 2025-09-15 10:44:36 +08:00
puhui999
9af3745670 feat: bpmn 流程模型设计器 bpmn-process-designer 整合 2025-09-15 10:23:17 +08:00
puhui999
26f00f3d37 refactor: 重构 bpmnProcessDesigner => bpmn-process-designer 2025-09-15 09:43:52 +08:00
芋道源码
391f08804f !212 迁移重构 bpmnProcessDesigner 组件 ele => antd
Merge pull request !212 from puhui999/dev
2025-09-15 01:17:14 +00:00
Jin Mao
9114692f95 Merge branch 'main' into main 2025-09-15 08:08:31 +08:00
Jin Mao
0f7731b611 Merge branch 'ming4762-stream-2025091101' 2025-09-15 08:03:52 +08:00
Jin Mao
8040bc1a22 Merge branch 'stream-2025091101' of https://github.com/ming4762/smart-boot-ui-vben into ming4762-stream-2025091101 2025-09-15 08:02:30 +08:00
oc
11d273cbb6 feat(authentication): 二维码登录和验证码登录组件增加返回按钮显隐配置 (#6713)
- 在 CodeLogin 和 QrcodeLogin 组件中添加 showBack 属性
- 根据 showBack 属性决定是否显示返回按钮
- 默认值为 true,即默认显示返回按钮
2025-09-15 07:43:18 +08:00
puhui999
85de19a422 Merge remote-tracking branch 'yudao/dev' into dev 2025-09-14 19:54:23 +08:00
puhui999
9f1c3831fa refactor: 重构 bpmnProcessDesigner 组件 ele => antd 2025-09-14 19:53:25 +08:00
puhui999
6ffd3dbd67 refactor: 重构 bpmnProcessDesigner 组件 ele => antd 2025-09-14 18:20:11 +08:00
puhui999
71dd9f2d88 refactor: 重构 bpmnProcessDesigner 组件 ele => antd 2025-09-14 18:16:02 +08:00
zouawen
a4b8f8f795 fix: 节点选中时过滤父节点禁用状态 2025-09-12 17:31:42 +08:00
xingyu4j
39081139e2 fix: element-plus button 的 text 类型,后续会废弃 2025-09-12 16:38:25 +08:00
xingyu4j
2c5557aa30 fix: codegen demo 2025-09-12 16:14:16 +08:00
xingyu
5f5fb9e544 !211 fix(system): 角色管理分配菜单使用简化菜单列表接口
Merge pull request !211 from Lex/dev
2025-09-12 03:35:50 +00:00
Lex
94d44340a3 fix(system): 角色管理分配菜单使用简化菜单列表接口
- 在 web-antd、web-ele 和 web-naive 应用中,修改了角色管理模块的分配菜单表单
- 将原有的 getMenuList() 调用替换为 getSimpleMenusList(),用于【角色分配菜单】功能的选项。在多租户的场景下,会只返回租户所在套餐有的菜单
2025-09-12 10:19:08 +08:00
zouawen
dfa2ac3435 fix: 全选时过滤disabled的节点 2025-09-11 18:16:10 +08:00
zouawen
39820c783c fix:
1、VbenTree新增是否全选、展开折叠功能;
2、解决当点击子节点label文字区域,而非checkbox时,关联父组件不能选中问题;
3、优化子节点选中时关联父节点选中功能:删除VbenTree中processParentSelection方法,改为在onSelect中实现,原因:processParentSelection在每次模型值更新时都会被调用,且计算复杂度为O(n^2),onSelect只在交互时触发,复杂度为O(n);
4、新增中间层tree组件,处理无数据时显示场景(显示图标Inbox和国际化comom.noData文本);
5、为防止父组件传值子组件boolean类型默认false问题,新增treePropsDefaults方法,为TreeProps赋默认值,Tree组件和VbenTree组件统一使用;
6、优化VbenTree组件整体样式(优化padding、margin、gap值,优化type为button时outline左右空白区域不对称问题),优化内部header、footer插槽样式。
2025-09-11 16:41:42 +08:00
xingyu4j
ccbcb3d9bf docs: readme 2025-09-11 14:48:25 +08:00
zhongming4762
66822a5f95 feat: add SSE support to request-client 2025-09-11 11:22:47 +08:00
zhongming4762
eb4f1f8164 feat: add SSE support to request-client 2025-09-11 10:50:19 +08:00
jason
8637f8a5c0 Merge remote-tracking branch 'yudao/dev' into dev 2025-09-11 09:26:22 +08:00
YunaiV
e3e3c2e968 reactor:统一 Description 命名为 Descriptions 2025-09-10 23:58:31 +08:00
YunaiV
5ec4d8ab82 reactor:【infra 基础设施】infra 的 job、joblogger 描述的统一 2025-09-10 23:50:56 +08:00
YunaiV
21f76355fa reactor:【infra 基础设施】infra 的 job、joblogger 描述的统一 2025-09-10 22:33:38 +08:00
puhui999
a277f0fa03 refactor: 重构 bpmnProcessDesigner 组件 ele => antd 2025-09-10 15:39:32 +08:00
puhui999
6759bd1b77 refactor: 重构 bpmnProcessDesigner listeners 组件 ele => antd 2025-09-10 15:03:49 +08:00
xingyu4j
4cb1ecfb1c refactor: 移动 iframe 到 @vben/common-ui 2025-09-10 11:55:09 +08:00
puhui999
f17e4fdc58 refactor: 重构 bpmnProcessDesigner 组件 ele => antd 2025-09-10 11:30:08 +08:00
YunaiV
b3a4a91a25 reactor:【system 系统管理】notifymessage、operatelog、socialuser 2025-09-10 09:53:55 +08:00
YunaiV
6bf1392edf reactor:【system 系统管理】loginlog、maillog、smslog 的描述统一 2025-09-10 00:37:49 +08:00
YunaiV
69b662bb53 reactor:【system 系统管理】loginlog、maillog、smslog 的描述统一 2025-09-10 00:29:08 +08:00
YunaiV
68f64c9d67 reactor:【infra 基础设施】build 进一步统一代码风格 2025-09-09 23:24:31 +08:00
芋道源码
0bff8bd7a9 !210 feat: ele table-toolbar
Merge pull request !210 from 芋道源码/dev-vxe
2025-09-09 15:17:55 +00:00
YunaiV
16f4892fac reactor:【infra 基础设施】codegen 进一步统一代码风格(100%) 2025-09-09 23:11:33 +08:00
YunaiV
044db12224 reactor:【infra 基础设施】codegen 进一步统一代码风格(50%) 2025-09-09 22:58:58 +08:00
xingyu4j
a5156f1e10 feat: ele table-toolbar 2025-09-09 19:44:07 +08:00
YunaiV
08b4176fb3 reactor:【infra 基础设施】job/logger 进一步统一代码风格 2025-09-09 18:44:42 +08:00
puhui999
b913ece251 refactor: 重构 bpmnProcessDesigner 组件 ele => antd 2025-09-09 17:49:46 +08:00
puhui999
be276ac651 refactor: 重构 bpmnProcessDesigner 组件 ele => antd 2025-09-09 17:43:40 +08:00
xingyu4j
29e5017913 feat: table-toolbar 2025-09-09 17:04:57 +08:00
YunaiV
b3a65f2492 reactor:【infra 基础设施】job 进一步统一代码风格 2025-09-09 13:18:27 +08:00
YunaiV
96158f22b9 reactor:【infra 基础设施】config 进一步统一代码风格 2025-09-09 12:20:48 +08:00
YunaiV
8d10030185 reactor:【infra 基础设施】file 进一步统一代码风格 2025-09-09 09:56:09 +08:00
YunaiV
cdc350cef9 reactor:【infra 基础设施】fileConfig 进一步统一代码风格 2025-09-09 09:06:46 +08:00
YunaiV
b52f7803ad reactor:【infra 基础设施】fileConfig 进一步统一代码风格 2025-09-09 09:06:42 +08:00
YunaiV
6bb4005ae0 reactor:【infra 基础设施】redis 进一步统一代码风格 2025-09-08 23:51:07 +08:00
YunaiV
58ed3bfc2e reactor:【system 系统管理】infra 的 apiErrorLog 进一步统一代码风格 2025-09-08 23:42:43 +08:00
YunaiV
cec3b7ab1e reactor:【system 系统管理】infra 的 apiAccessLog 进一步统一代码风格 2025-09-08 23:25:33 +08:00
YunaiV
2e38b1906d fix:【element-plus】getRangePickerDefaultProps 默认结束为 23:59:59 2025-09-08 23:24:02 +08:00
YunaiV
51d2d66f76 fix:【element-plus】button 的 text 类型,后续会废弃 2025-09-08 23:00:53 +08:00
YunaiV
2becb1b09d reactor:【system 系统管理】menu 进一步统一代码风格 2025-09-08 22:53:18 +08:00
puhui999
3665e655e2 refactor: 重构 bpmnProcessDesigner 组件 ele => antd 2025-09-08 17:36:21 +08:00
YunaiV
3564c123a1 reactor:【system 系统管理】menu 进一步统一代码风格(暂时只包括 element-plus) 2025-09-08 13:12:57 +08:00
YunaiV
96dadf9971 reactor:【system 系统管理】user 进一步统一代码风格(dept tree) 2025-09-08 12:51:07 +08:00
YunaiV
28df31cc37 reactor:【system 系统管理】user 进一步统一代码风格 2025-09-08 09:52:43 +08:00
puhui999
ed1b152a39 refactor: 重构 bpmnProcessDesigner ProcessPalette 组件 ele => antd 2025-09-07 19:36:10 +08:00
puhui999
3036a174fc refactor: 重构 bpmnProcessDesigner designer 模块 ele => antd 2025-09-07 19:25:34 +08:00
YunaiV
74ffefb09f fix:【infra 基础设施】websocket 推送,无法选中所有人 2025-09-06 21:21:43 +08:00
YunaiV
4cbbad4d40 reactor:【system 系统管理】tenantPackage 进一步统一代码风格 2025-09-06 20:54:48 +08:00
YunaiV
942c4ef389 reactor:【system 系统管理】tenant 进一步统一代码风格 2025-09-06 20:46:33 +08:00
YunaiV
35bd5adf45 reactor:【system 系统管理】social 进一步统一代码风格 2025-09-06 20:32:46 +08:00
YunaiV
8d5a6d8aa0 reactor:【system 系统管理】role 进一步统一代码风格 2025-09-06 20:17:38 +08:00
YunaiV
6d47871f02 reactor:【system 系统管理】operate 进一步统一代码风格 2025-09-06 19:55:38 +08:00
YunaiV
1d11ebad3a reactor:【system 系统管理】oauth2/token 进一步统一代码风格 2025-09-06 19:47:13 +08:00
YunaiV
c9e782fefe reactor:【system 系统管理】oauth2/client 进一步统一代码风格 2025-09-06 19:38:48 +08:00
YunaiV
4bdd5552dd feat:【element-plus】form schema 支持 InputTag 组件 2025-09-06 19:38:35 +08:00
YunaiV
03618a6265 reactor:【system 系统管理】sms/template 进一步统一代码风格 2025-09-06 17:36:04 +08:00
YunaiV
15359ab9a3 reactor:【system 系统管理】sms/channel 进一步统一代码风格 2025-09-06 17:18:17 +08:00
YunaiV
965ccdbea1 reactor:【system 系统管理】notify/my 进一步统一代码风格 2025-09-06 16:39:52 +08:00
YunaiV
11f507ed2b reactor:【system 系统管理】notify/message 进一步统一代码风格 2025-09-06 16:13:49 +08:00
YunaiV
94d778c0df reactor:【system 系统管理】notify/template 进一步统一代码风格 2025-09-06 15:44:02 +08:00
YunaiV
a38e55651b reactor:【system 系统管理】岗位 post 进一步统一代码风格 2025-09-06 15:12:58 +08:00
YunaiV
5f77cde53f reactor:【system 系统管理】mail/log 进一步统一代码风格 2025-09-06 11:21:34 +08:00
YunaiV
9565de2b5c reactor:【system 系统管理】mail/template 进一步统一代码风格 2025-09-06 11:13:27 +08:00
YunaiV
e3b2f944a8 reactor:【system 系统管理】mail/account 进一步统一代码风格 2025-09-06 10:37:26 +08:00
YunaiV
0539aece1b fix:【system 系统管理】ele、antd 的搜索清理属性不对的问题 2025-09-06 10:24:59 +08:00
YunaiV
fcaa81ff3b reactor:【system 系统管理】area、dept、dict、loginlog 进一步统一代码风格 2025-09-06 09:39:09 +08:00
YunaiV
84e32a0884 reactor:【system 系统管理】dict 在 element-plus 和 antd 保持一致 2025-09-06 00:20:05 +08:00
YunaiV
e81a759e0d reactor:element-plus 移除 loading 的 fullscreen = true(默认就是 true) 2025-09-05 23:39:33 +08:00
YunaiV
8d93c843ad reactor:【system 系统管理】area 在 element-plus 和 antd 保持一致 2025-09-05 23:27:12 +08:00
YunaiV
079dac3969 reactor:【system 系统管理】dept 部门管理的实现,对齐 ele 和 antd(处理上级逻辑) 2025-09-05 23:12:31 +08:00
YunaiV
330b06e024 reactor:【system 系统管理】dept 部门管理的实现,对齐 ele 和 antd(处理上级逻辑) 2025-09-05 22:59:23 +08:00
YunaiV
4183fee283 reactor:【system 系统管理】dept 部门管理的实现,对齐 ele 和 antd(isExpanded 放在 onRefresh 前面) 2025-09-05 22:46:50 +08:00
YunaiV
92044f8282 reactor:【system 系统管理】dept 部门管理的实现,对齐 ele 和 antd(handleAppend 注释文案统一) 2025-09-05 22:13:41 +08:00
YunaiV
4cd1be1a31 reactor:【system 系统管理】dept 部门管理的实现,对齐 ele 和 antd(pagerConfig 顺序) 2025-09-05 22:07:37 +08:00
YunaiV
c34fdcc5e8 reactor:【system 系统管理】dept 部门管理的实现,对齐 ele 和 antd(reserve 持久化树状态) 2025-09-05 21:22:57 +08:00
YunaiV
5776bf99f8 reactor:【system 系统管理】dept 部门管理的实现,对齐 ele 和 antd 2025-09-05 20:28:47 +08:00
xingyu4j
817a157645 feat: antdv mall spu form 2025-09-05 16:17:10 +08:00
puhui999
82fdcb5da5 feat: bpmnProcessDesigner 迁移(纯复制) 2025-09-05 15:38:09 +08:00
xingyu4j
f30a3451de fix: todo 2025-09-05 14:11:35 +08:00
xingyu4j
2369f06654 fix: crm todo 2025-09-05 13:16:29 +08:00
xingyu
2daebde092 !209 refactor: dict 抽离
Merge pull request !209 from 芋道源码/dev-dict
2025-09-05 04:30:09 +00:00
xingyu
a303a93a6d Merge branch 'dev' of gitee.com:yudaocode/yudao-ui-admin-vben into dev-dict
Signed-off-by: xingyu <xingyu4j@vip.qq.com>
2025-09-05 04:28:43 +00:00
xingyu4j
ffbaa89323 Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-09-05 12:26:36 +08:00
xingyu4j
c288098e10 refactor: 破坏性更新 dict 抽离 2025-09-05 12:24:58 +08:00
xingyu4j
6e19749ca3 refactor: 破坏性更新 dict 抽离 2025-09-05 12:24:16 +08:00
xingyu4j
386370f640 refactor: 破坏性更新 dict 抽离 2025-09-05 12:10:52 +08:00
xingyu4j
5ef57590e0 refactor: 破坏性更新 dict 抽离 2025-09-05 12:00:24 +08:00
YunaiV
0bf1635090 reactor:去除多余的 data.id as number 2025-09-05 00:46:57 +08:00
YunaiV
a153a86142 reactor:【system 系统管理】notice 在 ele 和 antd 的代码一致性 2025-09-04 21:31:24 +08:00
xingyu4j
b79bebab18 refactor: dict 抽离 2025-09-04 20:42:56 +08:00
xingyu4j
48ec3e15ab refactor: 将字典从store 移动到@vben/stores 2025-09-04 18:36:05 +08:00
xingyu4j
cf8745d844 refactor: 将枚举和常量从utils移动到constants 2025-09-04 18:28:13 +08:00
xingyu4j
37fba1474e refactor: 将枚举和常量从utils移动到constants 2025-09-04 18:19:49 +08:00
xingyu4j
d7d445617f feat: format time 已经迁移到 @vben/utils 2025-09-04 10:18:03 +08:00
xingyu4j
6b3818ff40 fix: workflow 2025-09-04 10:17:08 +08:00
xingyu4j
e7e2ebdb73 refactor: tinyflow 2025-09-03 19:19:50 +08:00
xingyu4j
78d005f7e1 refactor: tinyflow 2025-09-03 19:14:10 +08:00
xingyu4j
e802a39aa3 fix: import @vben/utils 2025-09-03 19:12:52 +08:00
xingyu4j
7f3e2a90ae fix: captcha aes encrypt 2025-09-03 18:04:35 +08:00
xingyu4j
1b4335760b fix: tinymce 2025-09-03 18:03:45 +08:00
xingyu4j
50a3e6daba fix: 引入错误 2025-09-03 18:03:14 +08:00
xingyu4j
f0f094a28d chore: fix missing dependencies 2025-09-03 17:10:12 +08:00
xingyu4j
046c8820ac fix: 循环依赖 2025-09-03 16:59:45 +08:00
xingyu4j
a238f635be fix: types 2025-09-03 16:58:31 +08:00
xingyu4j
deb412662e refactor: 提取正则和验证到 @vben/utils 2025-09-03 16:46:22 +08:00
xingyu4j
44eebda749 fix: code format 2025-09-03 16:35:00 +08:00
xingyu4j
e6f76c097d refactor: 破坏性重构,将枚举类由 utils 提取到 @vben/utils 2025-09-03 16:08:40 +08:00
xingyu4j
25468bece5 Merge branch 'main' of https://github.com/vbenjs/vue-vben-admin into dev 2025-09-03 14:58:59 +08:00
YunaiV
18a63913d1 review:【ai 支付】相关代码 2025-09-03 09:18:44 +08:00
YunaiV
18de49e2fe review:【crm 支付】相关代码 2025-09-02 23:37:24 +08:00
YunaiV
40566f8e4a review:【pay 支付】相关代码 2025-09-02 23:29:53 +08:00
YunaiV
41583c5e41 review:【erp 系统】相关代码 2025-09-02 23:16:28 +08:00
YunaiV
744eef46f4 review:【member 会员】相关代码 2025-09-02 21:22:03 +08:00
YunaiV
5e85efb23e review:【mall 商城】promotion 相关代码 2025-09-02 20:59:21 +08:00
YunaiV
bb97aca0be review:【mall 商城】trade 相关代码 2025-09-02 20:29:01 +08:00
YunaiV
d0457b4e4b review:【mall 商城】product 相关代码 2025-09-02 19:41:18 +08:00
谦元吉
6a85b3ab84 fix(@vben/common-ui): resolve #6698 (#6700)
* fix(@vben/common-ui): resolve #6698

* fix(@vben/common-ui): resolve #6698

* fix(@vben/common-ui): resolve conversation

* fix(@vben/common-ui): resolve #6698
2025-09-02 17:02:11 +08:00
谦元吉
c57592f3a6 fix(@vben-core/shadcn-ui): 修复VbenPinInput组件在点击获取验证码和回车同时进行时会重复触发计时器的问题 (#6705) 2025-09-02 16:56:46 +08:00
YunaiV
160846b665 fix: download query bug 2025-09-02 09:42:21 +08:00
YunaiV
c25ea731fd reactor:优化批量删除的代码,从 as number 变成 ! 2025-09-02 09:28:19 +08:00
YunaiV
67da079606 review:同步 vue5 官方的差异 2025-09-01 23:29:44 +08:00
YunaiV
4062bb03fb review:同步 vue5 官方的差异 2025-09-01 22:24:15 +08:00
xingyu
0f0ae5de48 !208 fix: download query bug
Merge pull request !208 from puhui999/dev
2025-09-01 02:29:58 +00:00
puhui999
71d2c380b3 fix: download query bug 2025-08-31 21:17:11 +08:00
YunaiV
06ea290306 (〃'▽'〃) v2025.09 发布:新增 AI 支持联网搜索、推理、文件/图片、MCP 等功能,完善 IoT 场景联动 2025-08-31 11:38:45 +08:00
xingyu
8e4f52c8aa !207 fix: bugs
Merge pull request !207 from xingyu/dev
2025-08-26 09:14:39 +00:00
xingyu4j
433d12ed35 fix: bugs 2025-08-26 17:13:27 +08:00
xingyu4j
f317508d39 fix: build bugs 2025-08-26 17:07:27 +08:00
xingyu4j
b55c291af1 Merge branch 'main' of https://github.com/vbenjs/vue-vben-admin into dev 2025-08-26 16:57:32 +08:00
jason
9301962e12 fix: 去掉 console 打印 2025-08-26 08:50:24 +00:00
jason
367a5b9924 fix: [BPM 工作流] 流程表单字段解析调整为使用库解析 2025-08-26 08:50:24 +00:00
XuZhiqiang
bc2b71baa3 !205 feat(@vben/web-antd): erp 模块除去收款单和付款单功能基本完成
* fix(@vben/web-antd): erp 解决冲突
* fix(@vben/web-antd): erp 更新采购和销售退货表单,修复关联订单选择功能不统一详细可编辑的问题,统一文件名称格式
* feat(@vben/web-antd): erp-finance-account 新增结算账户管理功能,包括表单、列表及相关操作
* feat(@vben/web-antd): erp-sale-return 新增销售退货管理功能,包括退货列表、表单及相关操作
* feat(@vben/web-antd): erp-sale-out 新增销售出库管理功能,包括出库列表、表单及相关操作
* feat(@vben/web-antd): erp-sale-order 新增销售订单管理功能,包括订单列表、表单及相关操作
* feat(@vben/web-antd): erp-sale-customer 新增客户管理功能,包括客户表单、列表及相关操作
* feat(@vben/web-antd): erp-purchase-return 新增采购退货管理功能,包括表单、列表及相关操作
* feat(@vben/web-antd): erp-purchase-in 新增采购入库管理功能,包括表单、列表及相关操作
* feat(@vben/web-antd): erp-stock-check 新增库存盘点单管理功能,包括表单、列表及相关操作
* feat(@vben/web-antd): erp-stock-move 新增库存调拨单管理功能,包括表单、列表及相关操作
* feat(@vben/web-antd): erp-stock-out 新增其它出库单管理功能,包括表单、列表及相关操作
* fix(@vben/web-antd): erp-stock-in 修复提交表单时清空产品项 ID,确保请求成功不报row_xxx报错
2025-08-26 08:40:01 +00:00
Ken Hai
b0d7b177be fix: 角色管理,授权的树形组件,取消勾选叶子节点,父级节点状态错误 (#6680)
Co-authored-by: haiyinlong <haiyinlong@uhigame.com>
2025-08-25 21:32:01 +08:00
LinaBell
566d3bdf7c fix: appendToMain warning (#6684) 2025-08-25 21:25:29 +08:00
螃蟹
adbf793e79 fix(@vben/web-ele): the main color tone for switching between dark and light themes has been reset (#6678) 2025-08-25 11:03:54 +08:00
jason
e43bb989b3 fix: 去掉 console 打印 2025-08-25 10:17:19 +08:00
jason
51471e2344 Merge remote-tracking branch 'yudao/dev' into dev 2025-08-25 09:45:03 +08:00
jason
4f65156a95 fix: [BPM 工作流] 流程表单字段解析调整为使用库解析 2025-08-25 09:42:18 +08:00
LinaBell
cf6c4c9aae fix: cannot read properties of null (reading 'nextSibling') (#6667) 2025-08-21 22:26:10 +08:00
Ken Hai
ffaf85c8f3 fix: 修复角色修改时VbenTree组件没有回显选中 (#6662)
* fix: 修复角色修改时VbenTree组件没有回显选中

* chore: use nextTick

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: merge

* chore: 更新

---------

Co-authored-by: haiyinlong <haiyinlong@uhigame.com>
Co-authored-by: Jin Mao <50581550+jinmao88@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-08-21 15:30:58 +08:00
panda7
2cc78f925f fix: the bug in the lock method of the vbenModal component (#6648) 2025-08-21 15:17:55 +08:00
ming4762
93f0eea4e7 fix: fix the issue of excessive line spacing in vbenForm (#6653)
* gap-2和 pb-4/2 重叠导致间距过宽,gap-x只保留列间距
2025-08-21 12:41:04 +08:00
lighua
fddfc6d494 fix: 增加对不支持的 HTTP 方法的错误处理 2025-08-21 11:13:02 +08:00
xingyu
4af5931e92 !203 增加表单就绪状态,让表单数据先于form-create渲染,解决发起流程时表单事件不触发问题
Merge pull request !203 from 崔什么/master
2025-08-21 02:10:28 +00:00
yu.cui
80e0d05f4e 增加表单就绪状态,让表单数据先于form-create渲染,解决发起流程时表单事件不触发问题 2025-08-20 17:39:01 +08:00
YunaiV
8e372fa7da feat:【system 系统管理】租户管理时,支持填写多个域名 websites 2025-08-19 23:00:50 +08:00
YunaiV
3b2b0d5438 feat:【system 系统管理】租户管理时,支持填写多个域名 websites 2025-08-19 22:59:07 +08:00
xingyu
fb8179fef2 !202 docs: update deps
Merge pull request !202 from xingyu/dev
2025-08-19 09:47:11 +00:00
xingyu4j
ebac48524d docs: update deps 2025-08-19 17:46:25 +08:00
xingyu
807451bf2a !201 update vben 5.5.9
Merge pull request !201 from xingyu/dev
2025-08-19 09:45:44 +00:00
xingyu4j
8fdbbfad22 Merge branch 'main' of https://github.com/vbenjs/vue-vben-admin into dev 2025-08-19 17:41:16 +08:00
xingyu4j
1d5bfaac5a Merge branch 'master' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-08-19 17:34:00 +08:00
xingyu
f5d9d7596a !200 fix: 修改Api日志界面打开后关不掉的问题
Merge pull request !200 from 痴货/master
2025-08-19 09:28:21 +00:00
谦元吉
58e3941810 chore(docs): update the component import of the form adapter description in the document (#6656) 2025-08-19 16:48:10 +08:00
Svend
3ad433a50b fix: 修复在 hash 路由模式下无法在新窗口打开路由的问题 (#6652)
此问题是由于 PR #6583 中新增的 `resolveHref` 函数导致的。其在 hash 路由模式下,得到的 URL 会包含 #/ 前缀。在经过 openRouteInNewWindow 的逻辑后就会出现两次 /# 前缀
2025-08-19 16:47:45 +08:00
ming4762
8ac2db5b7c fix: fix the issue of VbenForm compact reactive failure (#6654) 2025-08-19 16:46:14 +08:00
Elm1992
a441dcebae fix: meta.link invalid issue 2025-08-19 16:40:16 +08:00
吃货
b546ea8720 refactor(infra): 调整 API 错误日志页面组件导入顺序
- 将 Textarea 组件的导入顺序提前- 优化组件导入的组织结构
2025-08-19 11:01:33 +08:00
吃货
90895db1e7 fix: 修改Api日志界面打开后关不掉的问题
BUG连接:https://gitee.com/yudaocode/yudao-ui-admin-vben/issues/ICT6PI
2025-08-19 10:56:37 +08:00
YunaiV
2dfa34d096 feat:【infra 基础设施】文件配置时,增加“公开访问” 2025-08-18 00:00:04 +08:00
Vben
ff4704d5ea chore: Upgrade vite to version 7.x (#6645) 2025-08-16 22:50:31 +08:00
菠萝吹雪
6ddfbd84b0 chore: modify the contributor showcase in the README (#6636) 2025-08-16 22:47:08 +08:00
ming4762
1e6417f95b feat: vBenForm add layout: inline (#6644) 2025-08-16 22:41:08 +08:00
vben
e147a9d2fd chore: release 5.5.9 2025-08-16 22:16:02 +08:00
XuZhiqiang
cb1b441f7b !199 feat(@vben/web-antd): erp-stock-out 新增其它出库单管理功能,包括表单、列表及相关操作
* feat(@vben/web-antd): erp-stock-out 新增其它出库单管理功能,包括表单、列表及相关操作
* fix(@vben/web-antd): erp-stock-in 修复提交表单时清空产品项 ID,确保请求成功不报row_xxx报错
2025-08-16 13:14:38 +00:00
芋道源码
43c8ce2d7d !194 refactor: (web-ele)优化移动端组件代码结构
Merge pull request !194 from 痴货/master
2025-08-16 13:12:10 +00:00
YunaiV
271546a98b feat:【framework 框架】增加 api 加解密能力(默认登录先不加密,避免大家不理解) 2025-08-16 17:20:59 +08:00
YunaiV
4be6d26375 feat:【framework 框架】增加 api 加解密能力(优化代码) 2025-08-16 17:20:45 +08:00
YunaiV
2920dabb99 feat:【framework 框架】增加 api 加解密能力 2025-08-16 17:09:08 +08:00
xingyu
5b50a91529 !198 feat(@vben/web-antd): erp-product 新增产品管理功能,包括表单、列表及相关操作
Merge pull request !198 from XuZhiqiang/feat-erp
2025-08-15 10:47:54 +00:00
xingyu
f0e09f78e8 !195 feat:Tinyflow因大小写导致的引用问题
Merge pull request !195 from Codingendless/master
2025-08-15 10:46:38 +00:00
xuzhiqiang
133f90f34e fix(@vben/web-antd): erp-purchase-order修复新增采购订单时的报错,清除项的 ID 2025-08-15 09:40:34 +08:00
谦元吉
4efebb8c0b fix:update (#6635) 2025-08-14 22:01:12 +08:00
gxc685
9ce0df88ae fix: 修复mock里面eventHandler重复导致无法启动 (#6631) 2025-08-14 22:00:54 +08:00
xuzhiqiang
5076e3ff72 feat(@vben/web-antd): erp-product 新增产品管理功能,包括表单、列表及相关操作 2025-08-14 16:17:05 +08:00
xuzhiqiang
7fb9f6e064 feat(@vben/web-antd): erp-product-unit 新增产品单位管理功能,包括表单、列表及相关操作 2025-08-14 16:16:34 +08:00
xuzhiqiang
2a655a04c9 fix(@vben/web-antd): erp-product-category移除erp产品分类未使用的复选框处理逻辑,简化代码 2025-08-14 14:56:39 +08:00
xuzhiqiang
5eaeab0cff feat(@vben/web-antd): 新增产品分类表单和列表功能,优化产品分类接口 2025-08-14 14:33:42 +08:00
谦元吉
3cf0c0eb04 fix(@vben/backend-mock): go back to the last modification (#6634)
* fix(@vben/backend-mock): the version went back to the last submission, and the latest submission was completely useless.

* fix: resolve conflicts
2025-08-14 12:06:41 +08:00
Codingendless
0c371a78dc feat:Tinyflow因大小写导致的引用问题 2025-08-14 00:02:39 +08:00
谦元吉
ab7e363279 fix(@vben/backend-mock): fix all ts type errors in this module (#6613)
* fix(@vben/backend-mock): 修复所有 ts 类型报错

* fix(@vben/backend-mock): 修复该模块所有 ts 类型报错

* fix(@vben/backend-mock): 解决 coderabbitai

* fix(@vben/backend-mock): 解决 coderabbitai

* fix(@vben/backend-mock): 解决 coderabbitai
2025-08-12 17:23:39 +08:00
吃货
218f28f35c refactor: (web-ele)优化移动端组件代码结构
-调整组件内元素的排列顺序
- 修复部分组件的样式问题
- 优化代码结构,提高可维护性
2025-08-10 21:18:00 +08:00
吃货
b8c66b23f9 refactor: (ele,diy-editor)重构组件库结构和功能
- 新增 ComponentContainer、ComponentContainerProperty、ComponentLibrary 组件
- 优化导航栏单元格属性组件,更名为 CellProperty
- 更新优惠券相关组件导出方式
- 删除旧版 ComponentContainer 组件
2025-08-10 21:17:03 +08:00
吃货
d7397f28a0 Merge branch 'masterApiTreeSelect' 2025-08-10 16:42:57 +08:00
芋道源码
9cac5a2937 !193 修复批量删除后 checkedIds 未重置的问题
Merge pull request !193 from puhui999/dev
2025-08-09 07:15:42 +00:00
puhui999
8eae74879b fix(@vben/web-ele): 修复批量删除后 checkedIds 未重置的问题 2025-08-09 12:14:19 +08:00
puhui999
ccf9c3fd53 fix(@vben/web-antd): 修复批量删除后 checkedIds 未重置的问题 2025-08-09 12:10:10 +08:00
lighua
df655015b1 fix: 优化文件下载器方法 2025-08-08 15:31:31 +08:00
xingyu
6c425b4dbc !192 feat: BUG[Bug]: ele 版本 ApiTreeSelect 无法选择非末级 https://gitee.com/yudaoco…
Merge pull request !192 from 痴货/masterApiTreeSelect
2025-08-08 05:49:03 +00:00
xueyang
9fc594434f perf: 优化useVbenForm样式 (#6611)
* perf(style): 优化useVbenForm垂直布局 actions 样式

* perf(style): 优化useVbenForm actions 布局样式

- 操作按钮组显示位置
```
actionPosition?: 'center' | 'left' | 'right';
```
- 操作按钮组的样式
```
actionType?: 'block' | 'inline'
inline: 行类显示,block: 新一行单独显示
```

* perf: 优化useVbenForm actions 布局样式

删除 actionType
增加 actionLayout
- actionLayout?: 'inline' | 'newLine' | 'rowEnd';
- newLine: 在新行显示。rowEnd: 在行内显示,靠右对齐(默认)。inline: 使用grid默认样式
- 删除无用代码 queryFormStyle

* perf: 优化useVbenForm使用案例

* perf: 优化form组件样式

去掉padding,改为gap

* docs: update vben-form.md

* fix: 修复FormMessage位置

* perf: Avoid direct mutation of props object.

-  props.actionLayout = props.actionLayout || 'rowEnd';
-  props.actionPosition = props.actionPosition || 'right';
+  const actionLayout = props.actionLayout || 'rowEnd';
+  const actionPosition = props.actionPosition || 'right';

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix: 修复 wrapperClass 权重

* fix: 全局搜索结果不匹配 #6603

* fix: 避免FormMessage溢出

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-08-07 23:48:34 +08:00
吃货
63ce6f5669 feat: BUG[Bug]: ele 版本 ApiTreeSelect 无法选择非末级 https://gitee.com/yudaocode/yudao-ui-admin-vben/issues/ICGUVV
在菜单数据配置中添加 checkStrictly 属性,设置为 true,可以选择任何节点数据。
2025-08-07 21:10:39 +08:00
xingyu4j
9ef75f4fbe fix: JsonViewer 2025-08-06 15:36:02 +08:00
xingyu
ce1f3735ad !191 Merge remote-tracking branch 'yudao/dev' into dev
Merge pull request !191 from Jason/dev
2025-08-06 03:30:54 +00:00
jason
07d15f5c88 Merge remote-tracking branch 'yudao/dev' into dev 2025-08-05 23:01:03 +08:00
jason
849f2becd8 feat: [BPM 工作流] Simple 模型新增跳过表达式 2025-08-05 22:58:11 +08:00
YunaiV
d48b78a462 feat:【system 系统功能】邮箱增加抄送、密送,支持多个 2025-08-05 22:23:29 +08:00
jason
8e4ea3ca44 fix: [BPM 工作流] 更多设置表单选项问题修复 2025-08-05 22:11:21 +08:00
YunaiV
55061b73de feat:【system 系统功能】邮箱增加抄送、密送,支持多个 2025-08-05 21:45:23 +08:00
lrl
73bddd119e style: (web-ele)优化多个组件的样式和布局
-调整图像上传组件的样式,优化上传区域和处理按钮的布局
- 改进魔方编辑器组件的样式,统一边框和对齐方式
-统一垂直按钮组组件的样式,修复按钮圆角问题
2025-08-05 15:34:25 +08:00
lrl
e7fc44715b feat: (web-ele)新增颜色输入框组件并优化图片上传组件
- 新增 ColorInput 组件用于颜色选择
- 重构 ImageUpload 组件,增加编辑和删除功能
- 更新 DIY 编辑器相关组件,优化用户体验
- 添加商城 H5 预览地址配置
- 优化导航栏单元格属性配置
2025-08-05 15:32:12 +08:00
YunaiV
6d99bf3a46 review:【erp 系统】purchase/order 的管理 2025-08-04 22:42:59 +08:00
xingyu
02f1bd3251 !190 fix: 优化角色菜单表单加载逻辑,移除重复的菜单列表加载调用,确保在打开模态框时正确加载菜单数据。
Merge pull request !190 from xingyu/dev
2025-08-04 11:23:08 +00:00
xingyu4j
9a305e6cbd fix: 优化角色菜单表单加载逻辑,移除重复的菜单列表加载调用,确保在打开模态框时正确加载菜单数据。 2025-08-04 19:12:51 +08:00
xingyu4j
990ae4463a fix: types 2025-08-04 18:43:33 +08:00
xingyu
3f1c3a283f !189 !188 feat(@vben/web-antd): vxe-table) 其他入库模块、简单验证样式
Merge pull request !189 from xingyu/dev
2025-08-04 10:30:33 +00:00
xingyu
229a6f017a !187 update apps/web-ele/src/views/system/user/data.ts.
Merge pull request !187 from 青木/N/A
2025-08-04 09:58:23 +00:00
xingyu
93290bf441 !188 feat(@vben/web-antd): vxe-table) 其他入库模块、简单验证样式
Merge pull request !188 from 陈賝/dev
2025-08-04 09:57:54 +00:00
nehc
c64be886b4 feat(@vben/web-antd): vxe-table)新增表单验证功能
- 在 vxe-table.ts 中添加 createRequiredValidation函数
- 在 data.ts 中使用 createRequiredValidation 替代原有的 className 函数
- 在 vxe-table 插件中添加 validation 相关的工具函数
- 优化表格列的验证逻辑,提高代码复用性和可维护性
2025-08-04 09:22:51 +08:00
nehc
5f56b14733 feat(@vben/web-antd): 验证样式
- 添加 isValidating 状态管理,用于控制验证过程
- 在表格列定义中增加验证错误样式
- 实现必填字段错误提示功能
- 优化表格渲染逻辑,确保验证错误及时显示
- 新增相关 CSS 样式,定义验证错误的视觉效果
2025-08-04 09:22:51 +08:00
nehc
9d80b9fc71 feat(@vben/web-antd): erp-stock-in 优化入库单产品清单组件 2025-08-04 09:22:51 +08:00
nehc
1433a0980d feat(@vben/web-antd): erp-stock-in 优化入库单产品清单组件
- 移除了 totalCount 和 totalPrice 的计算逻辑
- 调整了添加产品的按钮位置
- 为表格底部的单元格添加了自定义样式
- 简化了组件的 props 接口
2025-08-04 09:22:51 +08:00
nehc
3afd957713 feat(@vben/web-antd): erp-stock-in 优化库存入库模块
- 为表格列设置 minWidth 以优化布局
- 使用 Popconfirm组件替代 Modal 确认框
- 通过 message 组件展示操作结果
- 优化删除和审核操作的处理流程
- 引入 useVbenModal 优化表单弹窗
2025-08-04 09:22:51 +08:00
nehc
510ec12582 feat(@vben/web-antd): erp-stock-in 添加其它入库单功能
- 新增其它入库单列表页面
- 实现其它入库单的创建、编辑和删除功能
- 添加产品清单管理功能
- 集成供应商、产品和仓库的选择接口
- 优化表格展示和搜索功能
2025-08-04 09:22:51 +08:00
nehc
2e6575f368 feat(@vben/web-antd): erp-stock-record 添加产品库存明细管理功能
- 实现了产品库存明细的查询、导出功能
- 添加了搜索表单和列表展示
- 集成了仓库和产品选择器
- 使用了 VxeTable 组件
2025-08-04 09:22:51 +08:00
nehc
8d660404dc feat(@vben/web-antd): erp-stock-stock 实现产品库存管理功能
- 新增产品库存管理页面,包括库存列表和搜索功能
- 添加导出库存数据功能
- 集成 API 接口和数据处理逻辑
- 优化页面布局和组件使用
2025-08-04 09:22:50 +08:00
lrl
1f155fa7c5 feat: (web-ele)创建 DIY编辑器组件
- 新增 DIY 编辑器组件主入口文件
- 创建移动端组件索引文件
2025-08-04 09:11:58 +08:00
lrl
2166ce3e4e feat: 新增多个组件并优化优惠券相关功能
- 新增 AppLinkSelectDialog 组件,用于选择 APP 链接- 新增 NavigationBarCellProperty组件,用于导航栏单元格属性设置
- 新增 CombinationShowcase 和 CombinationTableSelect 组件,用于拼团活动展示和选择- 优化优惠券相关组件,导出所有优惠券相关组件
- 新增 ComponentContainer 组件,用于包裹和样式化 DIY 组件
2025-08-04 09:09:39 +08:00
青木
ec14751aeb update apps/web-ele/src/views/system/user/data.ts.
对应ele的 vxe-table的activeValue: 1,inactiveValue: 0

Signed-off-by: 青木 <720227+9mgps@user.noreply.gitee.com>
2025-08-03 13:28:05 +00:00
芋道源码
aa6639a108 !185 refactor: (web-ele)优化多个组件的删除操作和确认逻辑
Merge pull request !185 from 痴货/master
2025-08-03 12:12:53 +00:00
YunaiV
32ee1b11ec feat:【bpm 工作流】审批人自选时,相同节点共享数据 2025-08-02 22:25:30 +08:00
YunaiV
2c687266b2 feat:【BPM 工作流】增加审批人撤销的能力 2025-08-02 16:25:06 +08:00
lrl
38daaa2934 refactor: (web-ele)优化多个组件的删除操作和确认逻辑
- 将 ElMessageBox 替换为自定义 confirm 函数- 添加全局 loading 功能
- 优化错误处理和消息提示- 调整部分组件属性和样式
2025-08-01 13:56:55 +08:00
xingyu
5a31e80c2d !184 feat(@vben/web-antd): erp-stock-warehouse 仓库列表管理
Merge pull request !184 from 陈賝/dev
2025-07-31 07:04:35 +00:00
xingyu
ff62e4c368 !183 feat(@vben/web-antd): erp-purchase-supplier-优化采购订单导出功能并添加供应商管理权限控制
Merge pull request !183 from 陈賝/dev
2025-07-31 02:47:33 +00:00
nehc
8d17d8d915 feat(@vben/web-antd): erp-stock-warehouse 修复仓库列表的状态切换功能
- 将默认状态切换逻辑从组件模板移到单独的函数中
- 使用 confirm 对话框替代 message.confirm
- 优化了默认状态切换的用户体验和错误处理
- 引入了 Promise 机制,允许异步操作
2025-07-30 17:42:50 +08:00
nehc
787f5168ad feat(@vben/web-antd): erp-stock-warehouse 新增仓库管理功能
- 添加仓库管理相关的数据结构和 API 接口
- 实现仓库列表展示、搜索、添加、编辑和删除功能
- 添加仓库默认状态切换和导出功能
- 优化表格展示效果,固定操作列
- 移除不必要的按钮和链接
2025-07-30 16:48:52 +08:00
nehc
423bfffbea feat(@vben/web-antd): erp-purchase-supplier-优化采购订单导出功能并添加供应商管理权限控制
- 在供应商管理页面添加权限控制:
  - 创建供应商
  - 导出供应商信息
  - 编辑供应商
  - 删除供应商
2025-07-30 15:40:34 +08:00
nehc
33cec7caee feat(@vben/web-antd): erp-purchase-supplier-供应商管理页面
- 移除状态字段,增加联系电话字段
- 调整供应商列表的展示逻辑
- 优化搜索和导出功能
- 使用 useVbenVxeGrid 替代原有的表格实现
- 用 downloadFileFromBlobPart 处理文件下载
2025-07-30 15:40:33 +08:00
nehc
93c0d9e486 feat(@vben/web-antd): erp-purchase-supplier-添加供应商管理功能
- 新增供应商管理页面,包括搜索、列表、新增、编辑和删除功能
- 实现供应商数据的分页查询、导出功能
- 使用 Vben Form 和 Vxe Table 组件构建表单和表格
- 添加国际化支持
2025-07-30 15:40:33 +08:00
xingyu4j
8b89a32813 Merge branch 'main' of https://github.com/vbenjs/vue-vben-admin into dev 2025-07-29 15:21:32 +08:00
leo
b93e22c45a fix(@vben/layouts): respect base URL when opening route in new window (#6583)
Previously, the generated URL for opening routes in a new window did not include the router base,
which led to incorrect paths when the app was deployed under a subdirectory (e.g., /admin/).
This change ensures that the resolved path includes the configured base by using
router.resolve(path).href.
2025-07-29 13:46:05 +08:00
xingyu
0694eb2b29 !181 feat(@vben/web-antd): erp-优化采购订单功能
Merge pull request !181 from 陈賝/dev
2025-07-28 10:04:42 +00:00
Jin Mao
193f5b6512 Merge branch 'main' into 2025072604 2025-07-28 15:53:04 +08:00
Jin Mao
cb3f96683f fix: 修复双列布局模式下,路由为hideInMenu时,空白右列 2025-07-28 15:50:21 +08:00
nehc
b3942bb8ff feat(@vben/web-antd): erp-移除重复接口
-移除了 stock API 中的 getStockCountByProductId 函数
-将 getStockCount 函数的使用范围从 product 模块扩展到 purchase 模块
- 更新了 PurchaseOrderItemForm 组件中的库存查询逻辑
2025-07-28 14:45:47 +08:00
nehc
b3a2d29a3b feat(@vben/web-antd): erp-优化采购订单功能
- 移除采购订单明细项表单配置
- 调整采购订单表格列定义
- 优化采购订单删除操作,增加加载提示和错误处理
- 添加采购订单详情页面
- 重新计算采购订单项的价格字段
- 调整采购订单状态更新和删除的交互方式,增加二次确认
2025-07-28 14:04:00 +08:00
nehc
f242f1c37d feat(@vben/web-antd): erp-优化上传附件及验证
- 修改订单时间格式为 timestamp
- 限制文件上传数量为 1
- 调整表格列宽和显示逻辑
- 优化子表单验证和提交逻辑
- 修复文件上传组件的兼容性问题
- 优化产品清单的初始化和验证
2025-07-26 17:36:59 +08:00
zhongming4762
06ffdf164a feat: add dingding login 2025-07-25 22:02:55 +08:00
ming4762
5b75e5e917 perf: perf the control logic of VbenModal full screen and header (#6566)
* resolve the issue of header=false and full screen button display but not operable
2025-07-25 21:45:45 +08:00
aonoa
fad0b49841 fix: adding roles does not automatically refresh (#6548)
* fix: adding roles does not automatically refresh

* style: fix code style err
2025-07-25 21:35:57 +08:00
Jin Mao
260e45cd7b Merge branch 'main' into feat/add-vben-modal-animation 2025-07-25 21:33:11 +08:00
nehc
8a7239ce24 feat(@vben/web-antd): erp-采购订单表单逻辑
- 使用 handleValuesChange
- 优化 discountPrice 和 totalPrice 的计算逻辑
- 改进子表单的验证和数据处理
- 统一数值格式化处理
- 优化表格数据的更新方式
2025-07-25 19:21:33 +08:00
nehc
e319888240 feat(@vben/web-antd): erp-优化采购订单表单布局和功能
- 添加订单单号字段并设置为只读
- 将附件上传组件替换为 FileUpload
- 新增产品清单字段
- 调整表单项的布局和样式
- 优化订单产品清单的展示方式
2025-07-25 19:21:32 +08:00
nehc
83010b6590 style(@vben/web-antd): erp-优化采购订单表单样式
- 更新 Tab 卡片样式,使用 border 和 bg-card 类
- 修改合计行样式,使用 rounded、border、bg-muted 和 text-muted-foreground 类
- 调整字体颜色,使用 text-foreground 类
2025-07-25 19:21:32 +08:00
nehc
a24f08cbb0 feat(@vben/web-antd): erp-采购订单明细表
- 使用 useVbenVxeGrid 重构
2025-07-25 19:21:31 +08:00
nehc
f9407ca8bc feat(@vben/web-antd): erp-采购订单明细表
- 优化了产品变更、价格计算和表单验证逻辑
- 更新了表格列定义和单元格模板
- 删除了冗余的组件挂载逻辑
2025-07-25 19:21:31 +08:00
nehc
7c2c249e5d feat(@vben/web-antd): erp-重构采购订单模块
- 更新表单组件,使用已有的 VbenForm 组件
- 优化表单字段定义,使用 useFormSchema 函数统一管理
- 重构表格组件,使用 VxeTable
- 优化数据处理逻辑,提高代码复用性和可维护性
- 调整界面布局和样式,提升用户体验
2025-07-25 19:21:31 +08:00
nehc
1cad71f3bf feat(@vben/web-antd): erp-区分采购对象
- 修改命名空间 PurchaseOrderApi 为 ErpPurchaseOrderApi
- 为接口属性添加注释,明确其含义和单位
- 更新相关视图和组件中的导入和使用
2025-07-25 19:21:31 +08:00
nehc
0b47648650 feat(@vben/web-antd): erp-添加采购订单功能
- 新增采购订单列表页面
- 添加采购订单表单和子表单组件
- 实现采购订单的查询、创建、编辑和删除功能
- 优化采购订单的审批和反审批操作- 增加采购订单的导出功能
2025-07-25 19:21:30 +08:00
YunaiV
f14954f7e2 fix:【BPM 工作流】流程预测时,“查看子流程”按钮不支持点击 2025-07-25 06:13:35 +00:00
nehc
7526ff5b87 refactor(@vben/web-antd): 移除 CardTitle 组件
移除了 CardTitle 组件及相关样式,直接使用 <span> 标签展示标题。
受影响的主要文件:
- 删除了 card-title.vue 文件
- 更新了 SummaryCard 组件的标题展示方式
- 修改了 TimeSummaryChart组件,用 <span> 替代 CardTitle 组件
2025-07-25 06:13:35 +00:00
nehc
b41ac68e06 refactor(@vben/web-antd): ERP 首页适配已有组件
- 移除不必要的 API 调用和数据处理逻辑
- 使用 AnalysisOverview 组件替换自定义统计卡片
- 优化 TimeSummaryChart组件,支持不同类型的数据展示
- 简化页面结构,提高组件的可复用性和可维护性
2025-07-25 06:13:35 +00:00
nehc
dcffb9bbe3 feat(@vben/web-antd): 新增 CardTitle组件并优化 TimeSummaryChart
- 新增 CardTitle 组件用于统一卡片标题样式
- 在 TimeSummaryChart 中使用 CardTitle 组件替代原生标题
- 调整 EchartsUI 组件的 height 属性单位
2025-07-25 06:13:35 +00:00
nehc
f763ad2855 feat(@vben/web-antd): 新增 ERP API 接口并符合 Vben 项目标准
- 将所有 ERP API 文件从旧的 axios 配置迁移到新的 requestClient
- 使用 namespace 组织接口类型定义,提高代码可维护性
- 将对象方法改为独立的导出函数,符合现代 JavaScript 最佳实践
- 为所有 API 函数添加完整的 TypeScript 类型定义
- 统一分页查询参数和状态更新参数的接口定义
- 涵盖财务、采购、销售、库存等所有 ERP 业务模块
2025-07-25 06:13:35 +00:00
YunaiV
7b7402b986 review:【BPM 工作流】模型分类内,排序不正确的问题 2025-07-25 06:13:35 +00:00
YunaiV
7b06bd27b3 fix:【BPM 工作流】工作流模型维护时,key 缺少参数校验 2025-07-25 06:13:35 +00:00
YunaiV
e6f4cf5660 review:【ANTD】相关的代码 2025-07-25 06:13:35 +00:00
vben
1575619d53 chore: release v5.5.8 2025-07-19 22:19:50 +08:00
panda7
fc9ea347ca Merge branch 'main' into feat/add-vben-modal-animation 2025-07-18 00:38:54 +08:00
 panda7
1a9b0509d5 feat: add animation effects to VbenModal component 2025-07-18 00:15:40 +08:00
4046 changed files with 304724 additions and 89443 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

View File

Before

Width:  |  Height:  |  Size: 348 KiB

After

Width:  |  Height:  |  Size: 348 KiB

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

Before

Width:  |  Height:  |  Size: 238 KiB

After

Width:  |  Height:  |  Size: 238 KiB

View File

Before

Width:  |  Height:  |  Size: 139 KiB

After

Width:  |  Height:  |  Size: 139 KiB

View File

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 69 KiB

View File

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

Before

Width:  |  Height:  |  Size: 201 KiB

After

Width:  |  Height:  |  Size: 201 KiB

View File

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 60 KiB

View File

Before

Width:  |  Height:  |  Size: 196 KiB

After

Width:  |  Height:  |  Size: 196 KiB

BIN
.gitee/image/wx-xingyu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 495 KiB

View File

Before

Width:  |  Height:  |  Size: 177 KiB

After

Width:  |  Height:  |  Size: 177 KiB

View File

Before

Width:  |  Height:  |  Size: 126 KiB

After

Width:  |  Height:  |  Size: 126 KiB

View File

@@ -1,89 +0,0 @@
## Git Commit Message Convention
> This is adapted from [Angular's commit convention](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular).
#### TL;DR:
Messages must be matched by the following regex:
```js
/^(revert: )?(feat|fix|docs|style|refactor|perf|test|workflow|build|ci|chore|types|wip): .{1,50}/;
```
#### Examples
Appears under "Features" header, `dev` subheader:
```
feat(dev): add 'comments' option
```
Appears under "Bug Fixes" header, `dev` subheader, with a link to issue #28:
```
fix(dev): fix dev error
close #28
```
Appears under "Performance Improvements" header, and under "Breaking Changes" with the breaking change explanation:
```
perf(build): remove 'foo' option
BREAKING CHANGE: The 'foo' option has been removed.
```
The following commit and commit `667ecc1` do not appear in the changelog if they are under the same release. If not, the revert commit appears under the "Reverts" header.
```
revert: feat(compiler): add 'comments' option
This reverts commit 667ecc1654a317a13331b17617d973392f415f02.
```
### Full Message Format
A commit message consists of a **header**, **body** and **footer**. The header has a **type**, **scope** and **subject**:
```
<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
```
The **header** is mandatory and the **scope** of the header is optional.
### Revert
If the commit reverts a previous commit, it should begin with `revert: `, followed by the header of the reverted commit. In the body, it should say: `This reverts commit <hash>.`, where the hash is the SHA of the commit being reverted.
### Type
If the prefix is `feat`, `fix` or `perf`, it will appear in the changelog. However, if there is any [BREAKING CHANGE](#footer), the commit will always appear in the changelog.
Other prefixes are up to your discretion. Suggested prefixes are `docs`, `chore`, `style`, `refactor`, and `test` for non-changelog related tasks.
### Scope
The scope could be anything specifying the place of the commit change. For example `dev`, `build`, `workflow`, `cli` etc...
### Subject
The subject contains a succinct description of the change:
- use the imperative, present tense: "change" not "changed" nor "changes"
- don't capitalize the first letter
- no dot (.) at the end
### Body
Just as in the **subject**, use the imperative, present tense: "change" not "changed" nor "changes". The body should include the motivation for the change and contrast this with previous behavior.
### Footer
The footer should contain any information about **Breaking Changes** and is also the place to reference GitHub issues that this commit **Closes**.
**Breaking Changes** should start with the word `BREAKING CHANGE:` with a space or two newlines. The rest of the commit message is then used for this.

View File

@@ -30,7 +30,7 @@ jobs:
run: pnpm build:play
- name: Sync Playground files
uses: SamKirkland/FTP-Deploy-Action@v4.3.5
uses: SamKirkland/FTP-Deploy-Action@v4.3.6
with:
server: ${{ secrets.PRO_FTP_HOST }}
username: ${{ secrets.WEB_PLAYGROUND_FTP_ACCOUNT }}
@@ -54,7 +54,7 @@ jobs:
run: pnpm build:docs
- name: Sync Docs files
uses: SamKirkland/FTP-Deploy-Action@v4.3.5
uses: SamKirkland/FTP-Deploy-Action@v4.3.6
with:
server: ${{ secrets.PRO_FTP_HOST }}
username: ${{ secrets.WEBSITE_FTP_ACCOUNT }}
@@ -85,7 +85,7 @@ jobs:
run: pnpm run build:antd
- name: Sync files
uses: SamKirkland/FTP-Deploy-Action@v4.3.5
uses: SamKirkland/FTP-Deploy-Action@v4.3.6
with:
server: ${{ secrets.PRO_FTP_HOST }}
username: ${{ secrets.WEB_ANTD_FTP_ACCOUNT }}
@@ -116,7 +116,7 @@ jobs:
run: pnpm run build:ele
- name: Sync files
uses: SamKirkland/FTP-Deploy-Action@v4.3.5
uses: SamKirkland/FTP-Deploy-Action@v4.3.6
with:
server: ${{ secrets.PRO_FTP_HOST }}
username: ${{ secrets.WEB_ELE_FTP_ACCOUNT }}
@@ -147,7 +147,7 @@ jobs:
run: pnpm run build:naive
- name: Sync files
uses: SamKirkland/FTP-Deploy-Action@v4.3.5
uses: SamKirkland/FTP-Deploy-Action@v4.3.6
with:
server: ${{ secrets.PRO_FTP_HOST }}
username: ${{ secrets.WEB_NAIVE_FTP_ACCOUNT }}

1
.gitignore vendored
View File

@@ -49,3 +49,4 @@ vite.config.ts.*
*.sln
*.sw?
.history
.cursor

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

2
.npmrc
View File

@@ -1,4 +1,4 @@
registry = "https://registry.npmmirror.com"
registry=https://registry.npmmirror.com
public-hoist-pattern[]=lefthook
public-hoist-pattern[]=eslint
public-hoist-pattern[]=prettier

9
.vscode/launch.json vendored
View File

@@ -2,15 +2,6 @@
"$schema": "https://json.schemastore.org/launchsettings.json",
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"name": "vben admin playground dev",
"request": "launch",
"url": "http://localhost:5555",
"env": { "NODE_ENV": "development" },
"sourceMaps": true,
"webRoot": "${workspaceFolder}/playground"
},
{
"type": "chrome",
"name": "vben admin antd dev",

View File

@@ -189,10 +189,7 @@
],
"github.copilot.enable": {
"*": true,
"markdown": true,
"plaintext": false,
"yaml": false
"*": false
},
"cssVariables.lookupFiles": ["packages/core/base/design/src/**/*.css"],

227
README.md
View File

@@ -9,7 +9,7 @@
## 🐶 新手必读
- nodejs > 20.10.0 && pnpm > 10.10.0 (强制使用pnpm)
- nodejs > 20.12.0 && pnpm > 10.22.0 (强制使用pnpm)
- 演示地址【Vue3 + element-plus】<http://dashboard-vue3.yudao.iocoder.cn>
- 演示地址【Vue3 + vben5(ant-design-vue)】:<http://dashboard-vben.yudao.iocoder.cn>
- 演示地址【Vue2 + element-ui】<http://dashboard.yudao.iocoder.cn>
@@ -21,9 +21,9 @@
**芋道**,以开发者为中心,打造中国第一流的快速开发平台,全部开源,个人与企业可 100% 免费使用。
- 采用最新 [vue-vben-admin](https://github.com/vbenjs/vue-vben-admin) v5 实现
- 支持 [Ant Design Vue](https://www.antdv.com/) | [Element Plus](https://element-plus.org/zh-CN/) | [Naive UI](https://www.naiveui.com/) 多种免费开源的中后台模版,具备如下特性:
- 支持 [Ant Design Vue](https://www.antdv.com/) | [Element Plus](https://element-plus.org/zh-CN/) | [Naive UI](https://www.naiveui.com/) | [TDesign](https://tdesign.tencent.com/) 多种免费开源的中后台模版,具备如下特性:
![首页](.image/demo/vben.png)
![首页](.gitee/image/demo/vben.png)
- **最新技术栈**:使用 Vue3、Vite6 等前端前沿技术开发
- **TypeScript**: 应用程序级 JavaScript 的语言
@@ -33,32 +33,34 @@
- **组件**:二次封装了多个常用的组件
- **示例**:内置丰富的示例
## 外包项目请联系【非项目需求请勿扫码,非客服,不解答项目问题】
## [外包项目请联系【非项目需求请勿扫码,非客服,不解答项目问题】](https://www.shuduokeji.com)
![alt 定制开发](.image/wx-xingyu.png)
![alt 软件定制开发 数舵科技](.gitee/image/wx-xingyu.png)
## 技术栈
| 框架 | 说明 | 版本 |
| --- | --- | --- |
| [Vue](https://staging-cn.vuejs.org/) | vue框架 | 3.5.13 |
| [Vite](https://cn.vitejs.dev//) | 开发与构建工具 | 6.2.5 |
| [Vue](https://staging-cn.vuejs.org/) | vue框架 | 3.5.24 |
| [Vite](https://cn.vitejs.dev//) | 开发与构建工具 | 7.2.2 |
| [Ant Design Vue](https://www.antdv.com/) | Ant Design Vue | 4.2.6 |
| [Element Plus](https://element-plus.org/zh-CN/) | Element Plus | 2.9.7 |
| [Naive UI](https://www.naiveui.com/) | Naive UI | 2.41.0 |
| [TypeScript](https://www.typescriptlang.org/docs/) | JavaScript 超集 | 5.8.3 |
| [pinia](https://pinia.vuejs.org/) | Vue 存储库替代 vuex5 | 2.3.1 |
| [vueuse](https://vueuse.org/) | 常用工具集 | 12.8.2 |
| [vue-i18n](https://kazupon.github.io/vue-i18n/zh/introduction.html/) | 国际化 | 11.1.3 |
| [vue-router](https://router.vuejs.org/) | Vue 路由 | 4.5.0 |
| [Tailwind CSS](https://tailwindcss.com/) | 原子 CSS | 3.4.17 |
| [Iconify](https://icon-sets.iconify.design/) | 在线图标库 | 2.2.324 |
| [Element Plus](https://element-plus.org/zh-CN/) | Element Plus | 2.10.2 |
| [Naive UI](https://www.naiveui.com/) | Naive UI | 2.42.0 |
| [TDesign](https://tdesign.tencent.com/) | TDesign | 1.17.1 |
| [TypeScript](https://www.typescriptlang.org/docs/) | JavaScript 超集 | 5.9.3 |
| [pinia](https://pinia.vuejs.org/) | Vue 存储库替代 vuex5 | 3.0.3 |
| [vueuse](https://vueuse.org/) | 常用工具集 | 13.4.0 |
| [vue-i18n](https://kazupon.github.io/vue-i18n/zh/introduction.html/) | 国际化 | 11.1.7 |
| [vue-router](https://router.vuejs.org/) | Vue 路由 | 4.5.1 |
| [Tailwind CSS](https://tailwindcss.com/) | 原子 CSS | 3.4.18 |
| [Iconify](https://iconify.design/) | 图标组件 | 5.0.0 |
| [Iconify](https://icon-sets.iconify.design/) | 在线图标库 | 2.2.406 |
| [TinyMCE](https://www.tiny.cloud/) | 富文本编辑器 | 6.1.0 |
| [Echarts](https://echarts.apache.org/) | 图表库 | 5.6.0 |
| [axios](https://axios-http.com/) | http客户端 | 1.8.4 |
| [Echarts](https://echarts.apache.org/) | 图表库 | 6.0.0 |
| [axios](https://axios-http.com/) | http客户端 | 1.10.0 |
| [dayjs](https://day.js.org/) | 日期处理库 | 1.11.13 |
| [vee-validate](https://vee-validate.logaretm.com/) | 表单验证 | 4.15.0 |
| [zod](https://zod.dev/) | 数据验证 | 3.24.2 |
| [vee-validate](https://vee-validate.logaretm.com/) | 表单验证 | 4.15.1 |
| [zod](https://zod.dev/) | 数据验证 | 3.25.67 |
## 🔥 后端架构
@@ -66,11 +68,11 @@
① Spring Boot 单体架构:<https://doc.iocoder.cn>
![架构图](/.image/common/ruoyi-vue-pro-architecture.png)
![架构图](/.gitee/image/common/ruoyi-vue-pro-architecture.png)
② Spring Cloud 微服务架构:<https://cloud.iocoder.cn>
![架构图](/.image/common/yudao-cloud-architecture.png)
![架构图](/.gitee/image/common/yudao-cloud-architecture.png)
## 内置功能
@@ -78,7 +80,7 @@
系统内置多种多种业务功能,可以用于快速你的业务系统:
![功能分层](/.image/common/ruoyi-vue-pro-biz.png)
![功能分层](/.gitee/image/common/ruoyi-vue-pro-biz.png)
- 通用模块(必选):系统功能、基础设施
- 通用模块(可选):工作流程、支付系统、数据报表、会员中心
@@ -86,70 +88,70 @@
### 系统功能
| | 功能 | 描述 |
| --- | --- | --- |
| | 用户管理 | 用户是系统操作者,该功能主要完成系统用户配置 |
| ⭐️ | 在线用户 | 当前系统中活跃用户状态监控,支持手动踢下线 |
| | 角色管理 | 角色菜单权限分配、设置角色按机构进行数据范围权限划分 |
| | 菜单管理 | 配置系统菜单、操作权限、按钮权限标识等,本地缓存提供性能 |
| | 部门管理 | 配置系统组织机构(公司、部门、小组),树结构展现支持数据权限 |
| | 岗位管理 | 配置系统用户所属担任职务 |
| 🚀 | 租户管理 | 配置系统租户,支持 SaaS 场景下的多租户功能 |
| 🚀 | 租户套餐 | 配置租户套餐,自定每个租户的菜单、操作、按钮的权限 |
| | 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护 |
| 🚀 | 短信管理 | 短信渠道、短息模板、短信日志,对接阿里云、腾讯云等主流短信平台 |
| 🚀 | 邮件管理 | 邮箱账号、邮件模版、邮件发送日志,支持所有邮件平台 |
| 🚀 | 站内信 | 系统内的消息通知,提供站内信模版、站内信消息 |
| 🚀 | 操作日志 | 系统正常操作日志记录和查询,集成 Swagger 生成日志内容 |
| ⭐️ | 登录日志 | 系统登录日志记录查询,包含登录异常 |
| 🚀 | 错误码管理 | 系统所有错误码的管理,可在线修改错误提示,无需重启服务 |
| | 通知公告 | 系统通知公告信息发布维护 |
| 🚀 | 敏感词 | 配置系统敏感词,支持标签分组 |
| 🚀 | 应用管理 | 管理 SSO 单点登录的应用,支持多种 OAuth2 授权方式 |
| 🚀 | 地区管理 | 展示省份、城市、区镇等城市信息,支持 IP 对应城市 |
| | 功能 | 描述 |
|----|-------|---------------------------------|
| | 用户管理 | 用户是系统操作者,该功能主要完成系统用户配置 |
| ⭐️ | 在线用户 | 当前系统中活跃用户状态监控,支持手动踢下线 |
| | 角色管理 | 角色菜单权限分配、设置角色按机构进行数据范围权限划分 |
| | 菜单管理 | 配置系统菜单、操作权限、按钮权限标识等,本地缓存提供性能 |
| | 部门管理 | 配置系统组织机构(公司、部门、小组),树结构展现支持数据权限 |
| | 岗位管理 | 配置系统用户所属担任职务 |
| 🚀 | 租户管理 | 配置系统租户,支持 SaaS 场景下的多租户功能 |
| 🚀 | 租户套餐 | 配置租户套餐,自定每个租户的菜单、操作、按钮的权限 |
| | 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护 |
| 🚀 | 短信管理 | 短信渠道、短息模板、短信日志,对接阿里云、腾讯云等主流短信平台 |
| 🚀 | 邮件管理 | 邮箱账号、邮件模版、邮件发送日志,支持所有邮件平台 |
| 🚀 | 站内信 | 系统内的消息通知,提供站内信模版、站内信消息 |
| 🚀 | 操作日志 | 系统正常操作日志记录和查询,集成 Swagger 生成日志内容 |
| ⭐️ | 登录日志 | 系统登录日志记录查询,包含登录异常 |
| 🚀 | 错误码管理 | 系统所有错误码的管理,可在线修改错误提示,无需重启服务 |
| | 通知公告 | 系统通知公告信息发布维护 |
| 🚀 | 敏感词 | 配置系统敏感词,支持标签分组 |
| 🚀 | 应用管理 | 管理 SSO 单点登录的应用,支持多种 OAuth2 授权方式 |
| 🚀 | 地区管理 | 展示省份、城市、区镇等城市信息,支持 IP 对应城市 |
![功能图](/.image/common/system-feature.png)
![功能图](/.gitee/image/common/system-feature.png)
### 工作流程
![功能图](/.image/common/bpm-feature.png)
![功能图](/.gitee/image/common/bpm-feature.png)
基于 Flowable 构建,可支持信创(国产)数据库,满足中国特色流程操作:
| BPMN 设计器 | 钉钉/飞书设计器 |
| --- | --- |
| ![工作流设计器](.image/工作流设计器-bpmn.jpg) | ![工作流设计器](.image/工作流设计器-simple.jpg) |
| ![工作流设计器](.gitee/image/工作流设计器-bpmn.jpg) | ![工作流设计器](.gitee/image/工作流设计器-simple.jpg) |
> 历经头部企业生产验证,工作流引擎须标配仿钉钉/飞书 + BPMN 双设计器!!!
>
> 前者支持轻量配置简单流程,后者实现复杂场景深度编排
| 功能列表 | 功能描述 | 是否完成 |
| --- | --- | --- |
| SIMPLE 设计器 | 仿钉钉/飞书设计器支持拖拽搭建表单流程10 分钟快速完成审批流程配置 | ✅ |
| BPMN 设计器 | 基于 BPMN 标准开发,适配复杂业务场景,满足多层级审批及流程自动化需求 | ✅ |
| 会签 | 同一个审批节点设置多个人(如 A、B、C 三人,三人会同时收到待办任务),需全部同意之后,审批才可到下一审批节点 | ✅ |
| 或签 | 同一个审批节点设置多个人,任意一个人处理后,就能进入下一个节点 | ✅ |
| 依次审批 | (顺序会签)同一个审批节点设置多个人(如 A、B、C 三人),三人按顺序依次收到待办,即 A 先审批A 提交后 B 才能审批,需全部同意之后,审批才可到下一审批节点 | ✅ |
| 抄送 | 将审批结果通知给抄送人,同一个审批默认排重,不重复抄送给同一人 | ✅ |
| 驳回 | (退回)将审批重置发送给某节点,重新审批。可驳回至发起人、上一节点、任意节点 | ✅ |
| 转办 | A 转给其 B 审批B 审批后,进入下一节点 | ✅ |
| 委派 | A 转给其 B 审批B 审批后,转给 AA 继续审批后进入下一节点 | ✅ |
| 加签 | 允许当前审批人根据需要,自行增加当前节点的审批人,支持向前、向后加签 | ✅ |
| 减签 | (取消加签)在当前审批人操作之前,减少审批人 | ✅ |
| 撤销 | (取消流程)流程发起人,可以对流程进行撤销处理 | ✅ |
| 终止 | 系统管理员,在任意节点终止流程实例 | ✅ |
| 表单权限 | 支持拖拉拽配置表单,每个审批节点可配置只读、编辑、隐藏权限 | ✅ |
| 超时审批 | 配置超时审批时间,超时后自动触发审批通过、不通过、驳回等操作 | ✅ |
| 自动提醒 | 配置提醒时间,到达时间后自动触发短信、邮箱、站内信等通知提醒,支持自定义重复提醒频次 | ✅ |
| 父子流程 | 主流程设置子流程节点,子流程节点会自动触发子流程。子流程结束后,主流程才会执行(继续往下下执行),支持同步子流程、异步子流程 | ✅ |
| 条件分支 | (排它分支)用于在流程中实现决策,即根据条件选择一个分支执行 | ✅ |
| 并行分支 | 允许将流程分成多条分支,不进行条件判断,所有分支都会执行 | ✅ |
| 包容分支 | (条件分支 + 并行分支的结合体)允许基于条件选择多条分支执行,但如果没有任何一个分支满足条件,则可以选择默认分支 | ✅ |
| 路由分支 | 根据条件选择一个分支执行(重定向到指定配置节点),也可以选择默认分支执行(继续往下执行) | ✅ |
| 触发节点 | 执行到该节点,触发 HTTP 请求、HTTP 回调、更新数据、删除数据等 | ✅ |
| 延迟节点 | 执行到该节点,审批等待一段时间再执行,支持固定时长、固定日期等 | ✅ |
| 拓展设置 | 流程前置/后置通知,节点(任务)前置、后置通知,流程报表,自动审批去重,自定流程编号、标题、摘要,流程报表等 | ✅ |
| 功能列表 | 功能描述 | 是否完成 |
|------------|-------------------------------------------------------------------------------------|------|
| SIMPLE 设计器 | 仿钉钉/飞书设计器支持拖拽搭建表单流程10 分钟快速完成审批流程配置 | ✅ |
| BPMN 设计器 | 基于 BPMN 标准开发,适配复杂业务场景,满足多层级审批及流程自动化需求 | ✅ |
| 会签 | 同一个审批节点设置多个人(如 A、B、C 三人,三人会同时收到待办任务),需全部同意之后,审批才可到下一审批节点 | ✅ |
| 或签 | 同一个审批节点设置多个人,任意一个人处理后,就能进入下一个节点 | ✅ |
| 依次审批 | (顺序会签)同一个审批节点设置多个人(如 A、B、C 三人),三人按顺序依次收到待办,即 A 先审批A 提交后 B 才能审批,需全部同意之后,审批才可到下一审批节点 | ✅ |
| 抄送 | 将审批结果通知给抄送人,同一个审批默认排重,不重复抄送给同一人 | ✅ |
| 驳回 | (退回)将审批重置发送给某节点,重新审批。可驳回至发起人、上一节点、任意节点 | ✅ |
| 转办 | A 转给其 B 审批B 审批后,进入下一节点 | ✅ |
| 委派 | A 转给其 B 审批B 审批后,转给 AA 继续审批后进入下一节点 | ✅ |
| 加签 | 允许当前审批人根据需要,自行增加当前节点的审批人,支持向前、向后加签 | ✅ |
| 减签 | (取消加签)在当前审批人操作之前,减少审批人 | ✅ |
| 撤销 | (取消流程)流程发起人,可以对流程进行撤销处理 | ✅ |
| 终止 | 系统管理员,在任意节点终止流程实例 | ✅ |
| 表单权限 | 支持拖拉拽配置表单,每个审批节点可配置只读、编辑、隐藏权限 | ✅ |
| 超时审批 | 配置超时审批时间,超时后自动触发审批通过、不通过、驳回等操作 | ✅ |
| 自动提醒 | 配置提醒时间,到达时间后自动触发短信、邮箱、站内信等通知提醒,支持自定义重复提醒频次 | ✅ |
| 父子流程 | 主流程设置子流程节点,子流程节点会自动触发子流程。子流程结束后,主流程才会执行(继续往下下执行),支持同步子流程、异步子流程 | ✅ |
| 条件分支 | (排它分支)用于在流程中实现决策,即根据条件选择一个分支执行 | ✅ |
| 并行分支 | 允许将流程分成多条分支,不进行条件判断,所有分支都会执行 | ✅ |
| 包容分支 | (条件分支 + 并行分支的结合体)允许基于条件选择多条分支执行,但如果没有任何一个分支满足条件,则可以选择默认分支 | ✅ |
| 路由分支 | 根据条件选择一个分支执行(重定向到指定配置节点),也可以选择默认分支执行(继续往下执行) | ✅ |
| 触发节点 | 执行到该节点,触发 HTTP 请求、HTTP 回调、更新数据、删除数据等 | ✅ |
| 延迟节点 | 执行到该节点,审批等待一段时间再执行,支持固定时长、固定日期等 | ✅ |
| 拓展设置 | 流程前置/后置通知,节点(任务)前置、后置通知,流程报表,自动审批去重,自定流程编号、标题、摘要,流程报表等 | ✅ |
### 支付系统
@@ -163,28 +165,28 @@
### 基础设施
| | 功能 | 描述 |
| --- | --- | --- |
| 🚀 | 代码生成 | 前后端代码的生成Java、Vue、SQL、单元测试支持 CRUD 下载 |
| 🚀 | 系统接口 | 基于 Swagger 自动生成相关的 RESTful API 接口文档 |
| 🚀 | 数据库文档 | 基于 Screw 自动生成数据库文档,支持导出 Word、HTML、MD 格式 |
| | 表单构建 | 拖动表单元素生成相应的 HTML 代码,支持导出 JSON、Vue 文件 |
| 🚀 | 配置管理 | 对系统动态配置常用参数,支持 SpringBoot 加载 |
| ⭐️ | 定时任务 | 在线(添加、修改、删除)任务调度包含执行结果日志 |
| 🚀 | 文件服务 | 支持将文件存储到 S3MinIO、阿里云、腾讯云、七牛云、本地、FTP、数据库等 |
| 🚀 | WebSocket | 提供 WebSocket 接入示例,支持一对一、一对多发送方式 |
| 🚀 | API 日志 | 包括 RESTful API 访问日志、异常日志两部分,方便排查 API 相关的问题 |
| | MySQL 监控 | 监视当前系统数据库连接池状态可进行分析SQL找出系统性能瓶颈 |
| | Redis 监控 | 监控 Redis 数据库的使用情况,使用的 Redis Key 管理 |
| 🚀 | 消息队列 | 基于 Redis 实现消息队列Stream 提供集群消费Pub/Sub 提供广播消费 |
| 🚀 | Java 监控 | 基于 Spring Boot Admin 实现 Java 应用的监控 |
| 🚀 | 链路追踪 | 接入 SkyWalking 组件,实现链路追踪 |
| 🚀 | 日志中心 | 接入 SkyWalking 组件,实现日志中心 |
| 🚀 | 服务保障 | 基于 Redis 实现分布式锁、幂等、限流功能,满足高并发场景 |
| 🚀 | 日志服务 | 轻量级日志中心,查看远程服务器的日志 |
| 🚀 | 单元测试 | 基于 JUnit + Mockito 实现单元测试,保证功能的正确性、代码的质量等 |
| | 功能 | 描述 |
|----|-----------|----------------------------------------------|
| 🚀 | 代码生成 | 前后端代码的生成Java、Vue、SQL、单元测试支持 CRUD 下载 |
| 🚀 | 系统接口 | 基于 Swagger 自动生成相关的 RESTful API 接口文档 |
| 🚀 | 数据库文档 | 基于 Screw 自动生成数据库文档,支持导出 Word、HTML、MD 格式 |
| | 表单构建 | 拖动表单元素生成相应的 HTML 代码,支持导出 JSON、Vue 文件 |
| 🚀 | 配置管理 | 对系统动态配置常用参数,支持 SpringBoot 加载 |
| ⭐️ | 定时任务 | 在线(添加、修改、删除)任务调度包含执行结果日志 |
| 🚀 | 文件服务 | 支持将文件存储到 S3MinIO、阿里云、腾讯云、七牛云、本地、FTP、数据库等 |
| 🚀 | WebSocket | 提供 WebSocket 接入示例,支持一对一、一对多发送方式 |
| 🚀 | API 日志 | 包括 RESTful API 访问日志、异常日志两部分,方便排查 API 相关的问题 |
| | MySQL 监控 | 监视当前系统数据库连接池状态可进行分析SQL找出系统性能瓶颈 |
| | Redis 监控 | 监控 Redis 数据库的使用情况,使用的 Redis Key 管理 |
| 🚀 | 消息队列 | 基于 Redis 实现消息队列Stream 提供集群消费Pub/Sub 提供广播消费 |
| 🚀 | Java 监控 | 基于 Spring Boot Admin 实现 Java 应用的监控 |
| 🚀 | 链路追踪 | 接入 SkyWalking 组件,实现链路追踪 |
| 🚀 | 日志中心 | 接入 SkyWalking 组件,实现日志中心 |
| 🚀 | 服务保障 | 基于 Redis 实现分布式锁、幂等、限流功能,满足高并发场景 |
| 🚀 | 日志服务 | 轻量级日志中心,查看远程服务器的日志 |
| 🚀 | 单元测试 | 基于 JUnit + Mockito 实现单元测试,保证功能的正确性、代码的质量等 |
![功能图](/.image/common/infra-feature.png)
![功能图](/.gitee/image/common/infra-feature.png)
### 数据报表
@@ -195,43 +197,44 @@
### 微信公众号
| | 功能 | 描述 |
| --- | --- | --- |
| 🚀 | 账号管理 | 配置接入的微信公众号,可支持多个公众号 |
| 🚀 | 数据统计 | 统计公众号的用户增减、累计用户、消息概况、接口分析等数据 |
| 🚀 | 粉丝管理 | 查看已关注、取关的粉丝列表,可对粉丝进行同步、打标签等操作 |
| 🚀 | 消息管理 | 查看粉丝发送的消息列表,可主动回复粉丝消息 |
| 🚀 | 自动回复 | 自动回复粉丝发送的消息,支持关注回复、消息回复、关键字回复 |
| 🚀 | 标签管理 | 对公众号的标签进行创建、查询、修改、删除等操作 |
| 🚀 | 菜单管理 | 自定义公众号的菜单,也可以从公众号同步菜单 |
| 🚀 | 素材管理 | 管理公众号的图片、语音、视频等素材,支持在线播放语音、视频 |
| 🚀 | 图文草稿箱 | 新增常用的图文素材到草稿箱,可发布到公众号 |
| 🚀 | 图文发表记录 | 查看已发布成功的图文素材,支持删除操作 |
| | 功能 | 描述 |
|----|--------|-------------------------------|
| 🚀 | 账号管理 | 配置接入的微信公众号,可支持多个公众号 |
| 🚀 | 数据统计 | 统计公众号的用户增减、累计用户、消息概况、接口分析等数据 |
| 🚀 | 粉丝管理 | 查看已关注、取关的粉丝列表,可对粉丝进行同步、打标签等操作 |
| 🚀 | 消息管理 | 查看粉丝发送的消息列表,可主动回复粉丝消息 |
| 🚀 | 模版消息 | 配置和发送模版消息,用于向粉丝推送通知类消息 |
| 🚀 | 自动回复 | 自动回复粉丝发送的消息,支持关注回复、消息回复、关键字回复 |
| 🚀 | 标签管理 | 对公众号的标签进行创建、查询、修改、删除等操作 |
| 🚀 | 菜单管理 | 自定义公众号的菜单,也可以从公众号同步菜单 |
| 🚀 | 素材管理 | 管理公众号的图片、语音、视频等素材,支持在线播放语音、视频 |
| 🚀 | 图文草稿箱 | 新增常用的图文素材到草稿箱,可发布到公众号 |
| 🚀 | 图文发表记录 | 查看已发布成功的图文素材,支持删除操作 |
### 商城系统
演示地址:<https://doc.iocoder.cn/mall-preview/>
![功能图](/.image/common/mall-feature.png)
![功能图](/.gitee/image/common/mall-feature.png)
![功能图](/.image/common/mall-preview.png)
![功能图](/.gitee/image/common/mall-preview.png)
### ERP 系统
演示地址:<https://doc.iocoder.cn/erp-preview/>
![功能图](/.image/common/erp-feature.png)
![功能图](/.gitee/image/common/erp-feature.png)
### CRM 系统
演示地址:<https://doc.iocoder.cn/crm-preview/>
![功能图](/.image/common/crm-feature.png)
![功能图](/.gitee/image/common/crm-feature.png)
### AI 大模型
演示地址:<https://doc.iocoder.cn/ai-preview/>
![功能图](/.image/common/ai-feature.png)
![功能图](/.gitee/image/common/ai-feature.png)
![功能图](/.image/common/ai-preview.gif)
![功能图](/.gitee/image/common/ai-preview.gif)

View File

@@ -1,3 +0,0 @@
PORT=5320
ACCESS_TOKEN_SECRET=access_token_secret
REFRESH_TOKEN_SECRET=refresh_token_secret

View File

@@ -1,15 +0,0 @@
# @vben/backend-mock
## Description
Vben Admin 数据 mock 服务,没有对接任何的数据库,所有数据都是模拟的,用于前端开发时提供数据支持。线上环境不再提供 mock 集成,可自行部署服务或者对接真实数据,由于 `mock.js` 等工具有一些限制,比如上传文件不行、无法模拟复杂的逻辑等,所以这里使用了真实的后端服务来实现。唯一麻烦的是本地需要同时启动后端服务和前端服务,但是这样可以更好的模拟真实环境。该服务不需要手动启动,已经集成在 vite 插件内,随应用一起启用。
## Running the app
```bash
# development
$ pnpm run start
# production mode
$ pnpm run build
```

View File

@@ -1,14 +0,0 @@
import { verifyAccessToken } from '~/utils/jwt-utils';
import { unAuthorizedResponse } from '~/utils/response';
export default eventHandler((event) => {
const userinfo = verifyAccessToken(event);
if (!userinfo) {
return unAuthorizedResponse(event);
}
const codes =
MOCK_CODES.find((item) => item.username === userinfo.username)?.codes ?? [];
return useResponseSuccess(codes);
});

View File

@@ -1,36 +0,0 @@
import {
clearRefreshTokenCookie,
setRefreshTokenCookie,
} from '~/utils/cookie-utils';
import { generateAccessToken, generateRefreshToken } from '~/utils/jwt-utils';
import { forbiddenResponse } from '~/utils/response';
export default defineEventHandler(async (event) => {
const { password, username } = await readBody(event);
if (!password || !username) {
setResponseStatus(event, 400);
return useResponseError(
'BadRequestException',
'Username and password are required',
);
}
const findUser = MOCK_USERS.find(
(item) => item.username === username && item.password === password,
);
if (!findUser) {
clearRefreshTokenCookie(event);
return forbiddenResponse(event, 'Username or password is incorrect.');
}
const accessToken = generateAccessToken(findUser);
const refreshToken = generateRefreshToken(findUser);
setRefreshTokenCookie(event, refreshToken);
return useResponseSuccess({
...findUser,
accessToken,
});
});

View File

@@ -1,15 +0,0 @@
import {
clearRefreshTokenCookie,
getRefreshTokenFromCookie,
} from '~/utils/cookie-utils';
export default defineEventHandler(async (event) => {
const refreshToken = getRefreshTokenFromCookie(event);
if (!refreshToken) {
return useResponseSuccess('');
}
clearRefreshTokenCookie(event);
return useResponseSuccess('');
});

View File

@@ -1,33 +0,0 @@
import {
clearRefreshTokenCookie,
getRefreshTokenFromCookie,
setRefreshTokenCookie,
} from '~/utils/cookie-utils';
import { verifyRefreshToken } from '~/utils/jwt-utils';
import { forbiddenResponse } from '~/utils/response';
export default defineEventHandler(async (event) => {
const refreshToken = getRefreshTokenFromCookie(event);
if (!refreshToken) {
return forbiddenResponse(event);
}
clearRefreshTokenCookie(event);
const userinfo = verifyRefreshToken(refreshToken);
if (!userinfo) {
return forbiddenResponse(event);
}
const findUser = MOCK_USERS.find(
(item) => item.username === userinfo.username,
);
if (!findUser) {
return forbiddenResponse(event);
}
const accessToken = generateAccessToken(findUser);
setRefreshTokenCookie(event, refreshToken);
return accessToken;
});

View File

@@ -1,28 +0,0 @@
export default eventHandler(async (event) => {
const userinfo = verifyAccessToken(event);
if (!userinfo) {
return unAuthorizedResponse(event);
}
const data = `
{
"code": 0,
"message": "success",
"data": [
{
"id": 123456789012345678901234567890123456789012345678901234567890,
"name": "John Doe",
"age": 30,
"email": "john-doe@demo.com"
},
{
"id": 987654321098765432109876543210987654321098765432109876543210,
"name": "Jane Smith",
"age": 25,
"email": "jane@demo.com"
}
]
}
`;
setHeader(event, 'Content-Type', 'application/json');
return data;
});

View File

@@ -1,13 +0,0 @@
import { verifyAccessToken } from '~/utils/jwt-utils';
import { unAuthorizedResponse } from '~/utils/response';
export default eventHandler(async (event) => {
const userinfo = verifyAccessToken(event);
if (!userinfo) {
return unAuthorizedResponse(event);
}
const menus =
MOCK_MENUS.find((item) => item.username === userinfo.username)?.menus ?? [];
return useResponseSuccess(menus);
});

View File

@@ -1,5 +0,0 @@
export default eventHandler((event) => {
const { status } = getQuery(event);
setResponseStatus(event, Number(status));
return useResponseError(`${status}`);
});

View File

@@ -1,15 +0,0 @@
import { verifyAccessToken } from '~/utils/jwt-utils';
import {
sleep,
unAuthorizedResponse,
useResponseSuccess,
} from '~/utils/response';
export default eventHandler(async (event) => {
const userinfo = verifyAccessToken(event);
if (!userinfo) {
return unAuthorizedResponse(event);
}
await sleep(600);
return useResponseSuccess(null);
});

View File

@@ -1,15 +0,0 @@
import { verifyAccessToken } from '~/utils/jwt-utils';
import {
sleep,
unAuthorizedResponse,
useResponseSuccess,
} from '~/utils/response';
export default eventHandler(async (event) => {
const userinfo = verifyAccessToken(event);
if (!userinfo) {
return unAuthorizedResponse(event);
}
await sleep(1000);
return useResponseSuccess(null);
});

View File

@@ -1,15 +0,0 @@
import { verifyAccessToken } from '~/utils/jwt-utils';
import {
sleep,
unAuthorizedResponse,
useResponseSuccess,
} from '~/utils/response';
export default eventHandler(async (event) => {
const userinfo = verifyAccessToken(event);
if (!userinfo) {
return unAuthorizedResponse(event);
}
await sleep(2000);
return useResponseSuccess(null);
});

View File

@@ -1,61 +0,0 @@
import { faker } from '@faker-js/faker';
import { verifyAccessToken } from '~/utils/jwt-utils';
import { unAuthorizedResponse, useResponseSuccess } from '~/utils/response';
const formatterCN = new Intl.DateTimeFormat('zh-CN', {
timeZone: 'Asia/Shanghai',
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
second: '2-digit',
});
function generateMockDataList(count: number) {
const dataList = [];
for (let i = 0; i < count; i++) {
const dataItem: Record<string, any> = {
id: faker.string.uuid(),
pid: 0,
name: faker.commerce.department(),
status: faker.helpers.arrayElement([0, 1]),
createTime: formatterCN.format(
faker.date.between({ from: '2021-01-01', to: '2022-12-31' }),
),
remark: faker.lorem.sentence(),
};
if (faker.datatype.boolean()) {
dataItem.children = Array.from(
{ length: faker.number.int({ min: 1, max: 5 }) },
() => ({
id: faker.string.uuid(),
pid: dataItem.id,
name: faker.commerce.department(),
status: faker.helpers.arrayElement([0, 1]),
createTime: formatterCN.format(
faker.date.between({ from: '2023-01-01', to: '2023-12-31' }),
),
remark: faker.lorem.sentence(),
}),
);
}
dataList.push(dataItem);
}
return dataList;
}
const mockData = generateMockDataList(10);
export default eventHandler(async (event) => {
const userinfo = verifyAccessToken(event);
if (!userinfo) {
return unAuthorizedResponse(event);
}
const listData = structuredClone(mockData);
return useResponseSuccess(listData);
});

View File

@@ -1,12 +0,0 @@
import { verifyAccessToken } from '~/utils/jwt-utils';
import { MOCK_MENU_LIST } from '~/utils/mock-data';
import { unAuthorizedResponse, useResponseSuccess } from '~/utils/response';
export default eventHandler(async (event) => {
const userinfo = verifyAccessToken(event);
if (!userinfo) {
return unAuthorizedResponse(event);
}
return useResponseSuccess(MOCK_MENU_LIST);
});

View File

@@ -1,28 +0,0 @@
import { verifyAccessToken } from '~/utils/jwt-utils';
import { MOCK_MENU_LIST } from '~/utils/mock-data';
import { unAuthorizedResponse } from '~/utils/response';
const namesMap: Record<string, any> = {};
function getNames(menus: any[]) {
menus.forEach((menu) => {
namesMap[menu.name] = String(menu.id);
if (menu.children) {
getNames(menu.children);
}
});
}
getNames(MOCK_MENU_LIST);
export default eventHandler(async (event) => {
const userinfo = verifyAccessToken(event);
if (!userinfo) {
return unAuthorizedResponse(event);
}
const { id, name } = getQuery(event);
return (name as string) in namesMap &&
(!id || namesMap[name as string] !== String(id))
? useResponseSuccess(true)
: useResponseSuccess(false);
});

View File

@@ -1,28 +0,0 @@
import { verifyAccessToken } from '~/utils/jwt-utils';
import { MOCK_MENU_LIST } from '~/utils/mock-data';
import { unAuthorizedResponse } from '~/utils/response';
const pathMap: Record<string, any> = { '/': 0 };
function getPaths(menus: any[]) {
menus.forEach((menu) => {
pathMap[menu.path] = String(menu.id);
if (menu.children) {
getPaths(menu.children);
}
});
}
getPaths(MOCK_MENU_LIST);
export default eventHandler(async (event) => {
const userinfo = verifyAccessToken(event);
if (!userinfo) {
return unAuthorizedResponse(event);
}
const { id, path } = getQuery(event);
return (path as string) in pathMap &&
(!id || pathMap[path as string] !== String(id))
? useResponseSuccess(true)
: useResponseSuccess(false);
});

View File

@@ -1,83 +0,0 @@
import { faker } from '@faker-js/faker';
import { verifyAccessToken } from '~/utils/jwt-utils';
import { getMenuIds, MOCK_MENU_LIST } from '~/utils/mock-data';
import { unAuthorizedResponse, usePageResponseSuccess } from '~/utils/response';
const formatterCN = new Intl.DateTimeFormat('zh-CN', {
timeZone: 'Asia/Shanghai',
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
second: '2-digit',
});
const menuIds = getMenuIds(MOCK_MENU_LIST);
function generateMockDataList(count: number) {
const dataList = [];
for (let i = 0; i < count; i++) {
const dataItem: Record<string, any> = {
id: faker.string.uuid(),
name: faker.commerce.product(),
status: faker.helpers.arrayElement([0, 1]),
createTime: formatterCN.format(
faker.date.between({ from: '2022-01-01', to: '2025-01-01' }),
),
permissions: faker.helpers.arrayElements(menuIds),
remark: faker.lorem.sentence(),
};
dataList.push(dataItem);
}
return dataList;
}
const mockData = generateMockDataList(100);
export default eventHandler(async (event) => {
const userinfo = verifyAccessToken(event);
if (!userinfo) {
return unAuthorizedResponse(event);
}
const {
page = 1,
pageSize = 20,
name,
id,
remark,
startTime,
endTime,
status,
} = getQuery(event);
let listData = structuredClone(mockData);
if (name) {
listData = listData.filter((item) =>
item.name.toLowerCase().includes(String(name).toLowerCase()),
);
}
if (id) {
listData = listData.filter((item) =>
item.id.toLowerCase().includes(String(id).toLowerCase()),
);
}
if (remark) {
listData = listData.filter((item) =>
item.remark?.toLowerCase()?.includes(String(remark).toLowerCase()),
);
}
if (startTime) {
listData = listData.filter((item) => item.createTime >= startTime);
}
if (endTime) {
listData = listData.filter((item) => item.createTime <= endTime);
}
if (['0', '1'].includes(status as string)) {
listData = listData.filter((item) => item.status === Number(status));
}
return usePageResponseSuccess(page as string, pageSize as string, listData);
});

View File

@@ -1,73 +0,0 @@
import { faker } from '@faker-js/faker';
import { verifyAccessToken } from '~/utils/jwt-utils';
import { unAuthorizedResponse, usePageResponseSuccess } from '~/utils/response';
function generateMockDataList(count: number) {
const dataList = [];
for (let i = 0; i < count; i++) {
const dataItem = {
id: faker.string.uuid(),
imageUrl: faker.image.avatar(),
imageUrl2: faker.image.avatar(),
open: faker.datatype.boolean(),
status: faker.helpers.arrayElement(['success', 'error', 'warning']),
productName: faker.commerce.productName(),
price: faker.commerce.price(),
currency: faker.finance.currencyCode(),
quantity: faker.number.int({ min: 1, max: 100 }),
available: faker.datatype.boolean(),
category: faker.commerce.department(),
releaseDate: faker.date.past(),
rating: faker.number.float({ min: 1, max: 5 }),
description: faker.commerce.productDescription(),
weight: faker.number.float({ min: 0.1, max: 10 }),
color: faker.color.human(),
inProduction: faker.datatype.boolean(),
tags: Array.from({ length: 3 }, () => faker.commerce.productAdjective()),
};
dataList.push(dataItem);
}
return dataList;
}
const mockData = generateMockDataList(100);
export default eventHandler(async (event) => {
const userinfo = verifyAccessToken(event);
if (!userinfo) {
return unAuthorizedResponse(event);
}
await sleep(600);
const { page, pageSize, sortBy, sortOrder } = getQuery(event);
const listData = structuredClone(mockData);
if (sortBy && Reflect.has(listData[0], sortBy as string)) {
listData.sort((a, b) => {
if (sortOrder === 'asc') {
if (sortBy === 'price') {
return (
Number.parseFloat(a[sortBy as string]) -
Number.parseFloat(b[sortBy as string])
);
} else {
return a[sortBy as string] > b[sortBy as string] ? 1 : -1;
}
} else {
if (sortBy === 'price') {
return (
Number.parseFloat(b[sortBy as string]) -
Number.parseFloat(a[sortBy as string])
);
} else {
return a[sortBy as string] < b[sortBy as string] ? 1 : -1;
}
}
});
}
return usePageResponseSuccess(page as string, pageSize as string, listData);
});

View File

@@ -1 +0,0 @@
export default defineEventHandler(() => 'Test get handler');

View File

@@ -1 +0,0 @@
export default defineEventHandler(() => 'Test post handler');

View File

@@ -1,13 +0,0 @@
import { verifyAccessToken } from '~/utils/jwt-utils';
import { unAuthorizedResponse } from '~/utils/response';
export default eventHandler((event) => {
const userinfo = verifyAccessToken(event);
if (!userinfo) {
return unAuthorizedResponse(event);
}
return useResponseSuccess({
url: 'https://unpkg.com/@vbenjs/static-source@0.1.7/source/logo-v1.webp',
});
// return useResponseError("test")
});

View File

@@ -1,10 +0,0 @@
import { verifyAccessToken } from '~/utils/jwt-utils';
import { unAuthorizedResponse } from '~/utils/response';
export default eventHandler((event) => {
const userinfo = verifyAccessToken(event);
if (!userinfo) {
return unAuthorizedResponse(event);
}
return useResponseSuccess(userinfo);
});

View File

@@ -1,7 +0,0 @@
import type { NitroErrorHandler } from 'nitropack';
const errorHandler: NitroErrorHandler = function (error, event) {
event.node.res.end(`[Error Handler] ${error.stack}`);
};
export default errorHandler;

View File

@@ -1,19 +0,0 @@
import { forbiddenResponse, sleep } from '~/utils/response';
export default defineEventHandler(async (event) => {
event.node.res.setHeader(
'Access-Control-Allow-Origin',
event.headers.get('Origin') ?? '*',
);
if (event.method === 'OPTIONS') {
event.node.res.statusCode = 204;
event.node.res.statusMessage = 'No Content.';
return 'OK';
} else if (
['DELETE', 'PATCH', 'POST', 'PUT'].includes(event.method) &&
event.path.startsWith('/api/system/')
) {
await sleep(Math.floor(Math.random() * 2000));
return forbiddenResponse(event, '演示环境,禁止修改');
}
});

View File

@@ -1,20 +0,0 @@
import errorHandler from './error';
process.env.COMPATIBILITY_DATE = new Date().toISOString();
export default defineNitroConfig({
devErrorHandler: errorHandler,
errorHandler: '~/error',
routeRules: {
'/api/**': {
cors: true,
headers: {
'Access-Control-Allow-Credentials': 'true',
'Access-Control-Allow-Headers':
'Accept, Authorization, Content-Length, Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, X-CSRF-TOKEN, X-Requested-With',
'Access-Control-Allow-Methods': 'GET,HEAD,PUT,PATCH,POST,DELETE',
'Access-Control-Allow-Origin': '*',
'Access-Control-Expose-Headers': '*',
},
},
},
});

View File

@@ -1,21 +0,0 @@
{
"name": "@vben/backend-mock",
"version": "0.0.1",
"description": "",
"private": true,
"license": "MIT",
"author": "",
"scripts": {
"build": "nitro build",
"start": "nitro dev"
},
"dependencies": {
"@faker-js/faker": "catalog:",
"jsonwebtoken": "catalog:",
"nitropack": "catalog:"
},
"devDependencies": {
"@types/jsonwebtoken": "catalog:",
"h3": "catalog:"
}
}

View File

@@ -1,13 +0,0 @@
export default defineEventHandler(() => {
return `
<h1>Hello Vben Admin</h1>
<h2>Mock service is starting</h2>
<ul>
<li><a href="/api/user">/api/user/info</a></li>
<li><a href="/api/menu">/api/menu/all</a></li>
<li><a href="/api/auth/codes">/api/auth/codes</a></li>
<li><a href="/api/auth/login">/api/auth/login</a></li>
<li><a href="/api/upload">/api/upload</a></li>
</ul>
`;
});

View File

@@ -1,4 +0,0 @@
{
"extends": "./tsconfig.json",
"exclude": ["node_modules", "test", "dist", "**/*spec.ts"]
}

View File

@@ -1,3 +0,0 @@
{
"extends": "./.nitro/types/tsconfig.json"
}

View File

@@ -1,26 +0,0 @@
import type { EventHandlerRequest, H3Event } from 'h3';
export function clearRefreshTokenCookie(event: H3Event<EventHandlerRequest>) {
deleteCookie(event, 'jwt', {
httpOnly: true,
sameSite: 'none',
secure: true,
});
}
export function setRefreshTokenCookie(
event: H3Event<EventHandlerRequest>,
refreshToken: string,
) {
setCookie(event, 'jwt', refreshToken, {
httpOnly: true,
maxAge: 24 * 60 * 60, // unit: seconds
sameSite: 'none',
secure: true,
});
}
export function getRefreshTokenFromCookie(event: H3Event<EventHandlerRequest>) {
const refreshToken = getCookie(event, 'jwt');
return refreshToken;
}

View File

@@ -1,59 +0,0 @@
import type { EventHandlerRequest, H3Event } from 'h3';
import jwt from 'jsonwebtoken';
import { UserInfo } from './mock-data';
// TODO: Replace with your own secret key
const ACCESS_TOKEN_SECRET = 'access_token_secret';
const REFRESH_TOKEN_SECRET = 'refresh_token_secret';
export interface UserPayload extends UserInfo {
iat: number;
exp: number;
}
export function generateAccessToken(user: UserInfo) {
return jwt.sign(user, ACCESS_TOKEN_SECRET, { expiresIn: '7d' });
}
export function generateRefreshToken(user: UserInfo) {
return jwt.sign(user, REFRESH_TOKEN_SECRET, {
expiresIn: '30d',
});
}
export function verifyAccessToken(
event: H3Event<EventHandlerRequest>,
): null | Omit<UserInfo, 'password'> {
const authHeader = getHeader(event, 'Authorization');
if (!authHeader?.startsWith('Bearer')) {
return null;
}
const token = authHeader.split(' ')[1];
try {
const decoded = jwt.verify(token, ACCESS_TOKEN_SECRET) as UserPayload;
const username = decoded.username;
const user = MOCK_USERS.find((item) => item.username === username);
const { password: _pwd, ...userinfo } = user;
return userinfo;
} catch {
return null;
}
}
export function verifyRefreshToken(
token: string,
): null | Omit<UserInfo, 'password'> {
try {
const decoded = jwt.verify(token, REFRESH_TOKEN_SECRET) as UserPayload;
const username = decoded.username;
const user = MOCK_USERS.find((item) => item.username === username);
const { password: _pwd, ...userinfo } = user;
return userinfo;
} catch {
return null;
}
}

View File

@@ -1,390 +0,0 @@
export interface UserInfo {
id: number;
password: string;
realName: string;
roles: string[];
username: string;
homePath?: string;
}
export const MOCK_USERS: UserInfo[] = [
{
id: 0,
password: '123456',
realName: 'Vben',
roles: ['super'],
username: 'vben',
},
{
id: 1,
password: '123456',
realName: 'Admin',
roles: ['admin'],
username: 'admin',
homePath: '/workspace',
},
{
id: 2,
password: '123456',
realName: 'Jack',
roles: ['user'],
username: 'jack',
homePath: '/analytics',
},
];
export const MOCK_CODES = [
// super
{
codes: ['AC_100100', 'AC_100110', 'AC_100120', 'AC_100010'],
username: 'vben',
},
{
// admin
codes: ['AC_100010', 'AC_100020', 'AC_100030'],
username: 'admin',
},
{
// user
codes: ['AC_1000001', 'AC_1000002'],
username: 'jack',
},
];
const dashboardMenus = [
{
meta: {
order: -1,
title: 'page.dashboard.title',
},
name: 'Dashboard',
path: '/dashboard',
redirect: '/analytics',
children: [
{
name: 'Analytics',
path: '/analytics',
component: '/dashboard/analytics/index',
meta: {
affixTab: true,
title: 'page.dashboard.analytics',
},
},
{
name: 'Workspace',
path: '/workspace',
component: '/dashboard/workspace/index',
meta: {
title: 'page.dashboard.workspace',
},
},
],
},
];
const createDemosMenus = (role: 'admin' | 'super' | 'user') => {
const roleWithMenus = {
admin: {
component: '/demos/access/admin-visible',
meta: {
icon: 'mdi:button-cursor',
title: 'demos.access.adminVisible',
},
name: 'AccessAdminVisibleDemo',
path: '/demos/access/admin-visible',
},
super: {
component: '/demos/access/super-visible',
meta: {
icon: 'mdi:button-cursor',
title: 'demos.access.superVisible',
},
name: 'AccessSuperVisibleDemo',
path: '/demos/access/super-visible',
},
user: {
component: '/demos/access/user-visible',
meta: {
icon: 'mdi:button-cursor',
title: 'demos.access.userVisible',
},
name: 'AccessUserVisibleDemo',
path: '/demos/access/user-visible',
},
};
return [
{
meta: {
icon: 'ic:baseline-view-in-ar',
keepAlive: true,
order: 1000,
title: 'demos.title',
},
name: 'Demos',
path: '/demos',
redirect: '/demos/access',
children: [
{
name: 'AccessDemos',
path: '/demosaccess',
meta: {
icon: 'mdi:cloud-key-outline',
title: 'demos.access.backendPermissions',
},
redirect: '/demos/access/page-control',
children: [
{
name: 'AccessPageControlDemo',
path: '/demos/access/page-control',
component: '/demos/access/index',
meta: {
icon: 'mdi:page-previous-outline',
title: 'demos.access.pageAccess',
},
},
{
name: 'AccessButtonControlDemo',
path: '/demos/access/button-control',
component: '/demos/access/button-control',
meta: {
icon: 'mdi:button-cursor',
title: 'demos.access.buttonControl',
},
},
{
name: 'AccessMenuVisible403Demo',
path: '/demos/access/menu-visible-403',
component: '/demos/access/menu-visible-403',
meta: {
authority: ['no-body'],
icon: 'mdi:button-cursor',
menuVisibleWithForbidden: true,
title: 'demos.access.menuVisible403',
},
},
roleWithMenus[role],
],
},
],
},
];
};
export const MOCK_MENUS = [
{
menus: [...dashboardMenus, ...createDemosMenus('super')],
username: 'vben',
},
{
menus: [...dashboardMenus, ...createDemosMenus('admin')],
username: 'admin',
},
{
menus: [...dashboardMenus, ...createDemosMenus('user')],
username: 'jack',
},
];
export const MOCK_MENU_LIST = [
{
id: 1,
name: 'Workspace',
status: 1,
type: 'menu',
icon: 'mdi:dashboard',
path: '/workspace',
component: '/dashboard/workspace/index',
meta: {
icon: 'carbon:workspace',
title: 'page.dashboard.workspace',
affixTab: true,
order: 0,
},
},
{
id: 2,
meta: {
icon: 'carbon:settings',
order: 9997,
title: 'system.title',
badge: 'new',
badgeType: 'normal',
badgeVariants: 'primary',
},
status: 1,
type: 'catalog',
name: 'System',
path: '/system',
children: [
{
id: 201,
pid: 2,
path: '/system/menu',
name: 'SystemMenu',
authCode: 'System:Menu:List',
status: 1,
type: 'menu',
meta: {
icon: 'carbon:menu',
title: 'system.menu.title',
},
component: '/system/menu/list',
children: [
{
id: 20_101,
pid: 201,
name: 'SystemMenuCreate',
status: 1,
type: 'button',
authCode: 'System:Menu:Create',
meta: { title: 'common.create' },
},
{
id: 20_102,
pid: 201,
name: 'SystemMenuEdit',
status: 1,
type: 'button',
authCode: 'System:Menu:Edit',
meta: { title: 'common.edit' },
},
{
id: 20_103,
pid: 201,
name: 'SystemMenuDelete',
status: 1,
type: 'button',
authCode: 'System:Menu:Delete',
meta: { title: 'common.delete' },
},
],
},
{
id: 202,
pid: 2,
path: '/system/dept',
name: 'SystemDept',
status: 1,
type: 'menu',
authCode: 'System:Dept:List',
meta: {
icon: 'carbon:container-services',
title: 'system.dept.title',
},
component: '/system/dept/list',
children: [
{
id: 20_401,
pid: 201,
name: 'SystemDeptCreate',
status: 1,
type: 'button',
authCode: 'System:Dept:Create',
meta: { title: 'common.create' },
},
{
id: 20_402,
pid: 201,
name: 'SystemDeptEdit',
status: 1,
type: 'button',
authCode: 'System:Dept:Edit',
meta: { title: 'common.edit' },
},
{
id: 20_403,
pid: 201,
name: 'SystemDeptDelete',
status: 1,
type: 'button',
authCode: 'System:Dept:Delete',
meta: { title: 'common.delete' },
},
],
},
],
},
{
id: 9,
meta: {
badgeType: 'dot',
order: 9998,
title: 'demos.vben.title',
icon: 'carbon:data-center',
},
name: 'Project',
path: '/vben-admin',
type: 'catalog',
status: 1,
children: [
{
id: 901,
pid: 9,
name: 'VbenDocument',
path: '/vben-admin/document',
component: 'IFrameView',
type: 'embedded',
status: 1,
meta: {
icon: 'carbon:book',
iframeSrc: 'https://doc.vben.pro',
title: 'demos.vben.document',
},
},
{
id: 902,
pid: 9,
name: 'VbenGithub',
path: '/vben-admin/github',
component: 'IFrameView',
type: 'link',
status: 1,
meta: {
icon: 'carbon:logo-github',
link: 'https://github.com/vbenjs/vue-vben-admin',
title: 'Github',
},
},
{
id: 903,
pid: 9,
name: 'VbenAntdv',
path: '/vben-admin/antdv',
component: 'IFrameView',
type: 'link',
status: 0,
meta: {
icon: 'carbon:hexagon-vertical-solid',
badgeType: 'dot',
link: 'https://ant.vben.pro',
title: 'demos.vben.antdv',
},
},
],
},
{
id: 10,
component: '_core/about/index',
type: 'menu',
status: 1,
meta: {
icon: 'lucide:copyright',
order: 9999,
title: 'demos.vben.about',
},
name: 'About',
path: '/about',
},
];
export function getMenuIds(menus: any[]) {
const ids: number[] = [];
menus.forEach((item) => {
ids.push(item.id);
if (item.children && item.children.length > 0) {
ids.push(...getMenuIds(item.children));
}
});
return ids;
}

View File

@@ -1,68 +0,0 @@
import type { EventHandlerRequest, H3Event } from 'h3';
export function useResponseSuccess<T = any>(data: T) {
return {
code: 0,
data,
error: null,
message: 'ok',
};
}
export function usePageResponseSuccess<T = any>(
page: number | string,
pageSize: number | string,
list: T[],
{ message = 'ok' } = {},
) {
const pageData = pagination(
Number.parseInt(`${page}`),
Number.parseInt(`${pageSize}`),
list,
);
return {
...useResponseSuccess({
items: pageData,
total: list.length,
}),
message,
};
}
export function useResponseError(message: string, error: any = null) {
return {
code: -1,
data: null,
error,
message,
};
}
export function forbiddenResponse(
event: H3Event<EventHandlerRequest>,
message = 'Forbidden Exception',
) {
setResponseStatus(event, 403);
return useResponseError(message, message);
}
export function unAuthorizedResponse(event: H3Event<EventHandlerRequest>) {
setResponseStatus(event, 401);
return useResponseError('Unauthorized Exception', 'Unauthorized Exception');
}
export function sleep(ms: number) {
return new Promise((resolve) => setTimeout(resolve, ms));
}
export function pagination<T = any>(
pageNo: number,
pageSize: number,
array: T[],
): T[] {
const offset = (pageNo - 1) * Number(pageSize);
return offset + Number(pageSize) >= array.length
? array.slice(offset)
: array.slice(offset, offset + Number(pageSize));
}

View File

@@ -24,3 +24,12 @@ VITE_APP_BAIDU_CODE = e98f2eab6ceb8688bc6d8fc5332ff093
# GoView域名
VITE_GOVIEW_URL='http://127.0.0.1:3000'
# API 加解密
VITE_APP_API_ENCRYPT_ENABLE = true
VITE_APP_API_ENCRYPT_HEADER = X-Api-Encrypt
VITE_APP_API_ENCRYPT_ALGORITHM = AES
VITE_APP_API_ENCRYPT_REQUEST_KEY = 52549111389893486934626385991395
VITE_APP_API_ENCRYPT_RESPONSE_KEY = 96103715984234343991809655248883
# VITE_APP_API_ENCRYPT_REQUEST_KEY = MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCls2rIpnGdYnLFgz1XU13GbNQ5DloyPpvW00FPGjqn5Z6JpK+kDtVlnkhwR87iRrE5Vf2WNqRX6vzbLSgveIQY8e8oqGCb829myjf1MuI+ZzN4ghf/7tEYhZJGPI9AbfxFqBUzm+kR3/HByAI22GLT96WM26QiMK8n3tIP/yiLswIDAQAB
# VITE_APP_API_ENCRYPT_RESPONSE_KEY = MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAOH8IfIFxL/MR9XIg1UDv5z1fGXQI93E8wrU4iPFovL/sEt9uSgSkjyidC2O7N+m7EKtoN6b1u7cEwXSkwf3kfK0jdWLSQaNpX5YshqXCBzbDfugDaxuyYrNA4/tIMs7mzZAk0APuRXB35Dmupou7Yw7TFW/7QhQmGfzeEKULQvnAgMBAAECgYAw8LqlQGyQoPv5p3gRxEMOCfgL0JzD3XBJKztiRd35RDh40Nx1ejgjW4dPioFwGiVWd2W8cAGHLzALdcQT2KDJh+T/tsd4SPmI6uSBBK6Ff2DkO+kFFcuYvfclQQKqxma5CaZOSqhgenacmgTMFeg2eKlY3symV6JlFNu/IKU42QJBAOhxAK/Eq3e61aYQV2JSguhMR3b8NXJJRroRs/QHEanksJtl+M+2qhkC9nQVXBmBkndnkU/l2tYcHfSBlAyFySMCQQD445tgm/J2b6qMQmuUGQAYDN8FIkHjeKmha+l/fv0igWm8NDlBAem91lNDIPBUzHL1X1+pcts5bjmq99YdOnhtAkAg2J8dN3B3idpZDiQbC8fd5bGPmdI/pSUudAP27uzLEjr2qrE/QPPGdwm2m7IZFJtK7kK1hKio6u48t/bg0iL7AkEAuUUs94h+v702Fnym+jJ2CHEkXvz2US8UDs52nWrZYiM1o1y4tfSHm8H8bv8JCAa9GHyriEawfBraILOmllFdLQJAQSRZy4wmlaG48MhVXodB85X+VZ9krGXZ2TLhz7kz9iuToy53l9jTkESt6L5BfBDCVdIwcXLYgK+8KFdHN5W7HQ==

View File

@@ -1,6 +1,6 @@
{
"name": "@vben/web-antd",
"version": "5.5.7",
"version": "5.5.9",
"homepage": "https://vben.pro",
"bugs": "https://github.com/vbenjs/vue-vben-admin/issues",
"repository": {
@@ -43,20 +43,29 @@
"@vben/styles": "workspace:*",
"@vben/types": "workspace:*",
"@vben/utils": "workspace:*",
"@videojs-player/vue": "catalog:",
"@vueuse/core": "catalog:",
"@vueuse/integrations": "catalog:",
"ant-design-vue": "catalog:",
"benz-amr-recorder": "catalog:",
"bpmn-js": "catalog:",
"bpmn-js-properties-panel": "catalog:",
"bpmn-js-token-simulation": "catalog:",
"camunda-bpmn-moddle": "catalog:",
"cropperjs": "catalog:",
"crypto-js": "catalog:",
"dayjs": "catalog:",
"diagram-js": "catalog:",
"fast-xml-parser": "catalog:",
"highlight.js": "catalog:",
"pinia": "catalog:",
"steady-xml": "catalog:",
"tinymce": "catalog:",
"video.js": "catalog:",
"vue": "catalog:",
"vue-dompurify-html": "catalog:",
"vue-router": "catalog:",
"vue3-signature": "catalog:"
},
"devDependencies": {
"@types/crypto-js": "catalog:"
"vue3-print-nb": "catalog:",
"vue3-signature": "catalog:",
"vuedraggable": "catalog:"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 495 KiB

View File

@@ -3,15 +3,31 @@
* 可用于 vben-form、vben-modal、vben-drawer 等组件使用,
*/
import type { Component } from 'vue';
import type {
UploadChangeParam,
UploadFile,
UploadProps,
} from 'ant-design-vue';
import type { Component, Ref } from 'vue';
import type { BaseFormComponentType } from '@vben/common-ui';
import type { Recordable } from '@vben/types';
import { defineAsyncComponent, defineComponent, h, ref } from 'vue';
import {
defineAsyncComponent,
defineComponent,
h,
ref,
render,
unref,
watch,
} from 'vue';
import { ApiComponent, globalShareState, IconPicker } from '@vben/common-ui';
import { IconifyIcon } from '@vben/icons';
import { $t } from '@vben/locales';
import { isEmpty } from '@vben/utils';
import { notification } from 'ant-design-vue';
@@ -59,10 +75,20 @@ const Textarea = defineAsyncComponent(() =>
const TimePicker = defineAsyncComponent(
() => import('ant-design-vue/es/time-picker'),
);
const TimeRangePicker = defineAsyncComponent(() =>
import('ant-design-vue/es/time-picker').then((res) => res.TimeRangePicker),
);
const TreeSelect = defineAsyncComponent(
() => import('ant-design-vue/es/tree-select'),
);
const Cascader = defineAsyncComponent(
() => import('ant-design-vue/es/cascader'),
);
const Upload = defineAsyncComponent(() => import('ant-design-vue/es/upload'));
const Image = defineAsyncComponent(() => import('ant-design-vue/es/image'));
const PreviewGroup = defineAsyncComponent(() =>
import('ant-design-vue/es/image').then((res) => res.ImagePreviewGroup),
);
const withDefaultPlaceholder = <T extends Component>(
component: T,
@@ -98,11 +124,223 @@ const withDefaultPlaceholder = <T extends Component>(
});
};
const withPreviewUpload = () => {
return defineComponent({
name: Upload.name,
emits: ['change', 'update:modelValue'],
setup: (
props: any,
{ attrs, slots, emit }: { attrs: any; emit: any; slots: any },
) => {
const previewVisible = ref<boolean>(false);
const placeholder = attrs?.placeholder || $t(`ui.placeholder.upload`);
const listType = attrs?.listType || attrs?.['list-type'] || 'text';
const fileList = ref<UploadProps['fileList']>(
attrs?.fileList || attrs?.['file-list'] || [],
);
const handleChange = async (event: UploadChangeParam) => {
fileList.value = event.fileList;
emit('change', event);
emit(
'update:modelValue',
event.fileList?.length ? fileList.value : undefined,
);
};
const handlePreview = async (file: UploadFile) => {
previewVisible.value = true;
await previewImage(file, previewVisible, fileList);
};
const renderUploadButton = (): any => {
const isDisabled = attrs.disabled;
// 如果禁用,不渲染上传按钮
if (isDisabled) {
return null;
}
// 否则渲染默认上传按钮
return isEmpty(slots)
? createDefaultSlotsWithUpload(listType, placeholder)
: slots;
};
// 可以监听到表单API设置的值
watch(
() => attrs.modelValue,
(res) => {
fileList.value = res;
},
);
return () =>
h(
Upload,
{
...props,
...attrs,
fileList: fileList.value,
onChange: handleChange,
onPreview: handlePreview,
},
renderUploadButton(),
);
},
});
};
const createDefaultSlotsWithUpload = (
listType: string,
placeholder: string,
) => {
switch (listType) {
case 'picture-card': {
return {
default: () => placeholder,
};
}
default: {
return {
default: () =>
h(
Button,
{
icon: h(IconifyIcon, {
icon: 'ant-design:upload-outlined',
class: 'mb-1 size-4',
}),
},
() => placeholder,
),
};
}
}
};
const previewImage = async (
file: UploadFile,
visible: Ref<boolean>,
fileList: Ref<UploadProps['fileList']>,
) => {
// 检查是否为图片文件的辅助函数
const isImageFile = (file: UploadFile): boolean => {
const imageExtensions = new Set([
'bmp',
'gif',
'jpeg',
'jpg',
'png',
'webp',
]);
if (file.url) {
const ext = file.url?.split('.').pop()?.toLowerCase();
return ext ? imageExtensions.has(ext) : false;
}
if (!file.type) {
const ext = file.name?.split('.').pop()?.toLowerCase();
return ext ? imageExtensions.has(ext) : false;
}
return file.type.startsWith('image/');
};
// 如果当前文件不是图片,直接打开
if (!isImageFile(file)) {
if (file.url) {
window.open(file.url, '_blank');
} else if (file.preview) {
window.open(file.preview, '_blank');
} else {
console.warn('无法打开文件没有可用的URL或预览地址');
}
return;
}
// 对于图片文件,继续使用预览组
const [ImageComponent, PreviewGroupComponent] = await Promise.all([
Image,
PreviewGroup,
]);
const getBase64 = (file: File) => {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsDataURL(file);
reader.addEventListener('load', () => resolve(reader.result));
reader.addEventListener('error', (error) => reject(error));
});
};
// 从fileList中过滤出所有图片文件
const imageFiles = (unref(fileList) || []).filter((element) =>
isImageFile(element),
);
// 为所有没有预览地址的图片生成预览
for (const imgFile of imageFiles) {
if (!imgFile.url && !imgFile.preview && imgFile.originFileObj) {
imgFile.preview = (await getBase64(imgFile.originFileObj)) as string;
}
}
const container: HTMLElement | null = document.createElement('div');
document.body.append(container);
// 用于追踪组件是否已卸载
let isUnmounted = false;
const PreviewWrapper = {
setup() {
return () => {
if (isUnmounted) return null;
return h(
PreviewGroupComponent,
{
class: 'hidden',
preview: {
visible: visible.value,
// 设置初始显示的图片索引
current: imageFiles.findIndex((f) => f.uid === file.uid),
onVisibleChange: (value: boolean) => {
visible.value = value;
if (!value) {
// 延迟清理,确保动画完成
setTimeout(() => {
if (!isUnmounted && container) {
isUnmounted = true;
render(null, container);
container.remove();
}
}, 300);
}
},
},
},
() =>
// 渲染所有图片文件
imageFiles.map((imgFile) =>
h(ImageComponent, {
key: imgFile.uid,
src: imgFile.url || imgFile.preview,
}),
),
);
};
},
};
render(h(PreviewWrapper), container);
};
// 这里需要自行根据业务组件库进行适配,需要用到的组件都需要在这里类型说明
export type ComponentType =
| 'ApiCascader'
| 'ApiSelect'
| 'ApiTreeSelect'
| 'AutoComplete'
| 'Cascader'
| 'Checkbox'
| 'CheckboxGroup'
| 'DatePicker'
@@ -126,6 +364,7 @@ export type ComponentType =
| 'Switch'
| 'Textarea'
| 'TimePicker'
| 'TimeRangePicker'
| 'TreeSelect'
| 'Upload'
| BaseFormComponentType;
@@ -135,6 +374,13 @@ async function initComponentAdapter() {
// 如果你的组件体积比较大,可以使用异步加载
// Button: () =>
// import('xxx').then((res) => res.Button),
ApiCascader: withDefaultPlaceholder(ApiComponent, 'select', {
component: Cascader,
fieldNames: { label: 'label', value: 'value', children: 'children' },
loadingSlot: 'suffixIcon',
modelPropName: 'value',
visibleEvent: 'onVisibleChange',
}),
ApiSelect: withDefaultPlaceholder(
{
...ApiComponent,
@@ -164,6 +410,7 @@ async function initComponentAdapter() {
},
),
AutoComplete,
Cascader,
Checkbox,
CheckboxGroup,
DatePicker,
@@ -195,8 +442,10 @@ async function initComponentAdapter() {
Textarea: withDefaultPlaceholder(Textarea, 'input'),
RichTextarea,
TimePicker,
TimeRangePicker,
TreeSelect: withDefaultPlaceholder(TreeSelect, 'select'),
Upload,
PreviewUpload: withPreviewUpload(),
FileUpload,
ImageUpload,
};

View File

@@ -7,9 +7,7 @@ import type { ComponentType } from './component';
import { setupVbenForm, useVbenForm as useForm, z } from '@vben/common-ui';
import { $t } from '@vben/locales';
/** 手机号正则表达式(中国) */
const MOBILE_REGEX = /(?:0|86|\+86)?1[3-9]\d{9}/;
import { isMobile } from '@vben/utils';
async function initSetupVbenForm() {
setupVbenForm<ComponentType>({
@@ -44,7 +42,7 @@ async function initSetupVbenForm() {
mobile: (value, _params, ctx) => {
if (value === undefined || value === null || value.length === 0) {
return true;
} else if (!MOBILE_REGEX.test(value)) {
} else if (!isMobile(value)) {
return $t('ui.formRules.mobile', [ctx.label]);
}
return true;
@@ -54,7 +52,7 @@ async function initSetupVbenForm() {
if (value === undefined || value === null || value.length === 0) {
return $t('ui.formRules.required', [ctx.label]);
}
if (!MOBILE_REGEX.test(value)) {
if (!isMobile(value)) {
return $t('ui.formRules.mobile', [ctx.label]);
}
return true;

View File

@@ -1,79 +0,0 @@
/* 来自 @vben/plugins/vxe-table style.css覆盖 vxe-table 原有的样式定义,使用 vben 的样式主题 */
:root {
--vxe-ui-font-color: hsl(var(--foreground));
--vxe-ui-font-primary-color: hsl(var(--primary));
/* --vxe-ui-font-lighten-color: #babdc0;
--vxe-ui-font-darken-color: #86898e; */
--vxe-ui-font-disabled-color: hsl(var(--foreground) / 50%);
/* base */
--vxe-ui-base-popup-border-color: hsl(var(--border));
--vxe-ui-input-disabled-color: hsl(var(--border) / 60%);
/* --vxe-ui-base-popup-box-shadow: 0px 12px 30px 8px rgb(0 0 0 / 50%); */
/* layout */
--vxe-ui-layout-background-color: hsl(var(--background));
--vxe-ui-table-resizable-line-color: hsl(var(--heavy));
/* --vxe-ui-table-fixed-left-scrolling-box-shadow: 8px 0px 10px -5px hsl(var(--accent));
--vxe-ui-table-fixed-right-scrolling-box-shadow: -8px 0px 10px -5px hsl(var(--accent)); */
/* input */
--vxe-ui-input-border-color: hsl(var(--border));
/* --vxe-ui-input-placeholder-color: #8d9095; */
/* --vxe-ui-input-disabled-background-color: #262727; */
/* loading */
--vxe-ui-loading-background-color: hsl(var(--overlay-content));
/* table */
--vxe-ui-table-header-background-color: hsl(var(--accent));
--vxe-ui-table-border-color: hsl(var(--border));
--vxe-ui-table-row-hover-background-color: hsl(var(--accent-hover));
--vxe-ui-table-row-striped-background-color: hsl(var(--accent) / 60%);
--vxe-ui-table-row-hover-striped-background-color: hsl(var(--accent));
--vxe-ui-table-row-radio-checked-background-color: hsl(var(--accent));
--vxe-ui-table-row-hover-radio-checked-background-color: hsl(
var(--accent-hover)
);
--vxe-ui-table-row-checkbox-checked-background-color: hsl(var(--accent));
--vxe-ui-table-row-hover-checkbox-checked-background-color: hsl(
var(--accent-hover)
);
--vxe-ui-table-row-current-background-color: hsl(var(--accent));
--vxe-ui-table-row-hover-current-background-color: hsl(var(--accent-hover));
--vxe-ui-font-primary-tinge-color: hsl(var(--primary));
--vxe-ui-font-primary-lighten-color: hsl(var(--primary) / 60%);
--vxe-ui-font-primary-darken-color: hsl(var(--primary));
/* height: auto !important; */
/* --vxe-ui-table-fixed-scrolling-box-shadow-color: rgb(0 0 0 / 80%); */
}
.vxe-tools--operate {
margin-right: 0.25rem;
margin-left: 0.75rem;
}
.vxe-table-custom--checkbox-option:hover {
background: none !important;
}
.vxe-toolbar {
padding: 0;
}
.vxe-buttons--wrapper:not(:empty),
.vxe-tools--operate:not(:empty),
.vxe-tools--wrapper:not(:empty) {
padding: 0.6em 0;
}
.vxe-tools--operate:not(:has(button)) {
margin-left: 0;
}

View File

@@ -6,7 +6,9 @@ import { h } from 'vue';
import { IconifyIcon } from '@vben/icons';
import { $te } from '@vben/locales';
import {
AsyncComponents,
AsyncVxeColumn,
AsyncVxeTable,
createRequiredValidation,
setupVbenVxeTable,
useVbenVxeGrid,
} from '@vben/plugins/vxe-table';
@@ -14,6 +16,7 @@ import {
erpCountInputFormatter,
erpNumberFormatter,
fenToYuan,
formatFileSize,
formatPast2,
isFunction,
isString,
@@ -33,8 +36,6 @@ import { $t } from '#/locales';
import { useVbenForm } from './form';
import '#/adapter/style.css';
setupVbenVxeTable({
configVxeTable: (vxeUI) => {
vxeUI.setConfig({
@@ -83,9 +84,10 @@ setupVbenVxeTable({
// 表格配置项可以用 cellRender: { name: 'CellImage' },
vxeUI.renderer.add('CellImage', {
renderTableDefault(_renderOpts, params) {
renderTableDefault(renderOpts, params) {
const { props } = renderOpts;
const { column, row } = params;
return h(Image, { src: row[column.field] });
return h(Image, { src: row[column.field], ...props });
},
});
@@ -332,40 +334,39 @@ setupVbenVxeTable({
},
});
// add by 星语:数量格式化,例如说:金额
vxeUI.formats.add('formatNumber', {
// add by 星语:数量格式化,保留 3 位
vxeUI.formats.add('formatAmount3', {
tableCellFormatMethod({ cellValue }) {
return erpCountInputFormatter(cellValue);
},
});
// add by 星语:数量格式化,保留 2 位
vxeUI.formats.add('formatAmount2', {
tableCellFormatMethod({ cellValue }, digits = 2) {
return `${erpNumberFormatter(cellValue, digits)}`;
return `${erpNumberFormatter(cellValue, digits)}`;
},
});
vxeUI.formats.add('formatFenToYuanAmount', {
tableCellFormatMethod({ cellValue }, digits = 2) {
return `${erpNumberFormatter(fenToYuan(cellValue), digits)}`;
return `${erpNumberFormatter(fenToYuan(cellValue), digits)}`;
},
});
// add by 星语:文件大小格式化
vxeUI.formats.add('formatFileSize', {
tableCellFormatMethod({ cellValue }, digits = 2) {
return formatFileSize(cellValue, digits);
},
});
},
useVbenForm,
});
export { useVbenVxeGrid };
export { createRequiredValidation, useVbenVxeGrid };
const [VxeTable, VxeColumn, VxeToolbar] = AsyncComponents;
export { VxeColumn, VxeTable, VxeToolbar };
export const [VxeTable, VxeColumn] = [AsyncVxeTable, AsyncVxeColumn];
// add by 芋艿from https://github.com/vbenjs/vue-vben-admin/blob/main/playground/src/adapter/vxe-table.ts#L264-L270
export type OnActionClickParams<T = Recordable<any>> = {
code: string;
row: T;
};
export type OnActionClickFn<T = Recordable<any>> = (
params: OnActionClickParams<T>,
) => void;
export * from '#/components/table-action';
export type * from '@vben/plugins/vxe-table';

View File

@@ -15,7 +15,6 @@ export namespace AiChatConversationApi {
maxTokens: number; // 单条回复的最大 Token 数量
maxContexts: number; // 上下文的最大 Message 数量
createTime?: Date; // 创建时间
// 额外字段
systemMessage?: string; // 角色设定
modelName?: string; // 模型名字
roleAvatar?: string; // 角色头像
@@ -24,52 +23,52 @@ export namespace AiChatConversationApi {
}
}
// 获得【我的】聊天对话
/** 获得【我的】聊天对话 */
export function getChatConversationMy(id: number) {
return requestClient.get<AiChatConversationApi.ChatConversation>(
`/ai/chat/conversation/get-my?id=${id}`,
);
}
// 新增【我的】聊天对话
/** 新增【我的】聊天对话 */
export function createChatConversationMy(
data: AiChatConversationApi.ChatConversation,
) {
return requestClient.post('/ai/chat/conversation/create-my', data);
}
// 更新【我的】聊天对话
/** 更新【我的】聊天对话 */
export function updateChatConversationMy(
data: AiChatConversationApi.ChatConversation,
) {
return requestClient.put(`/ai/chat/conversation/update-my`, data);
}
// 删除【我的】聊天对话
/** 删除【我的】聊天对话 */
export function deleteChatConversationMy(id: number) {
return requestClient.delete(`/ai/chat/conversation/delete-my?id=${id}`);
}
// 删除【我的】所有对话,置顶除外
/** 删除【我的】所有对话,置顶除外 */
export function deleteChatConversationMyByUnpinned() {
return requestClient.delete(`/ai/chat/conversation/delete-by-unpinned`);
}
// 获得【我的】聊天对话列表
/** 获得【我的】聊天对话列表 */
export function getChatConversationMyList() {
return requestClient.get<AiChatConversationApi.ChatConversation[]>(
`/ai/chat/conversation/my-list`,
);
}
// 获得【我的】聊天对话列表
/** 获得【我的】聊天对话列表 */
export function getChatConversationPage(params: any) {
return requestClient.get<
PageResult<AiChatConversationApi.ChatConversation[]>
>(`/ai/chat/conversation/page`, { params });
}
// 管理员删除消息
/** 管理员删除消息 */
export function deleteChatConversationByAdmin(id: number) {
return requestClient.delete(`/ai/chat/conversation/delete-by-admin?id=${id}`);
}

View File

@@ -8,6 +8,7 @@ import { requestClient } from '#/api/request';
const { apiURL } = useAppConfig(import.meta.env, import.meta.env.PROD);
const accessStore = useAccessStore();
export namespace AiChatMessageApi {
export interface ChatMessage {
id: number; // 编号
@@ -18,6 +19,7 @@ export namespace AiChatMessageApi {
model: number; // 模型标志
modelId: number; // 模型编号
content: string; // 聊天内容
reasoningContent?: string; // 推理内容(深度思考)
tokens: number; // 消耗 Token 数量
segmentIds?: number[]; // 段落编号
segments?: {
@@ -26,13 +28,25 @@ export namespace AiChatMessageApi {
documentName: string; // 文档名称
id: number; // 段落编号
}[];
webSearchPages?: WebSearchPage[]; // 联网搜索结果
attachmentUrls?: string[]; // 附件 URL 数组
createTime: Date; // 创建时间
roleAvatar: string; // 角色头像
userAvatar: string; // 用户头像
}
/** 联网搜索页面接口 */
export interface WebSearchPage {
name: string; // 网站名称
icon: string; // 网站图标 URL
title: string; // 页面标题
url: string; // 页面 URL
snippet: string; // 简短描述
summary: string; // 内容摘要
}
}
// 消息列表
/** 消息列表 */
export function getChatMessageListByConversationId(
conversationId: null | number,
) {
@@ -41,15 +55,17 @@ export function getChatMessageListByConversationId(
);
}
// 发送 Stream 消息
/** 发送 Stream 消息 */
export function sendChatMessageStream(
conversationId: number,
content: string,
ctrl: any,
enableContext: boolean,
enableWebSearch: boolean,
onMessage: any,
onError: any,
onClose: any,
attachmentUrls?: string[],
) {
const token = accessStore.accessToken;
return fetchEventSource(`${apiURL}/ai/chat/message/send-stream`, {
@@ -63,6 +79,8 @@ export function sendChatMessageStream(
conversationId,
content,
useContext: enableContext,
useSearch: enableWebSearch,
attachmentUrls: attachmentUrls || [],
}),
onmessage: onMessage,
onerror: onError,
@@ -71,25 +89,27 @@ export function sendChatMessageStream(
});
}
// 删除消息
/** 删除消息 */
export function deleteChatMessage(id: number) {
return requestClient.delete(`/ai/chat/message/delete?id=${id}`);
}
// 删除指定对话的消息
/** 删除指定对话的消息 */
export function deleteByConversationId(conversationId: number) {
return requestClient.delete(
`/ai/chat/message/delete-by-conversation-id?conversationId=${conversationId}`,
);
}
// 获得消息分页
/** 获得消息分页 */
export function getChatMessagePage(params: any) {
return requestClient.get<PageResult<AiChatMessageApi.ChatMessage>>(
'/ai/chat/message/page',
{ params },
);
}
// 管理员删除消息
/** 管理员删除消息 */
export function deleteChatMessageByAdmin(id: number) {
return requestClient.delete(`/ai/chat/message/delete-by-admin?id=${id}`);
}

View File

@@ -3,15 +3,10 @@ import type { PageParam, PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export namespace AiImageApi {
export interface ImageMidjourneyButtons {
customId: string; // MJ::JOB::upsample::1::85a4b4c1-8835-46c5-a15c-aea34fad1862 动作标识
emoji: string; // 图标 emoji
label: string; // Make Variations 文本
style: number; // 样式: 2Primary、3Green
}
// AI 绘图
/** 绘图 */
export interface Image {
id: number; // 编号
userId: number;
platform: string; // 平台
model: string; // 模型
prompt: string; // 提示词
@@ -28,7 +23,14 @@ export namespace AiImageApi {
finishTime: Date; // 完成时间
}
export interface ImageDrawReq {
export interface ImageMidjourneyButtons {
customId: string; // MJ::JOB::upsample::1::85a4b4c1-8835-46c5-a15c-aea34fad1862 动作标识
emoji: string; // 图标 emoji
label: string; // Make Variations 文本
style: number; // 样式: 2Primary、3Green
}
export interface ImageDrawReqVO {
prompt: string; // 提示词
modelId: number; // 模型
style: string; // 图像生成的风格
@@ -37,7 +39,7 @@ export namespace AiImageApi {
options: object; // 绘制参数Map<String, String>
}
export interface ImageMidjourneyImagineReq {
export interface ImageMidjourneyImagineReqVO {
prompt: string; // 提示词
modelId: number; // 模型
base64Array?: string[]; // size不能为空
@@ -52,58 +54,62 @@ export namespace AiImageApi {
}
}
// 获取【我的】绘图分页
/** 获取【我的】绘图分页 */
export function getImagePageMy(params: PageParam) {
return requestClient.get<PageResult<AiImageApi.Image>>('/ai/image/my-page', {
params,
});
}
// 获取【我的】绘图记录
/** 获取【我的】绘图记录 */
export function getImageMy(id: number) {
return requestClient.get<AiImageApi.Image>(`/ai/image/get-my?id=${id}`);
}
// 获取【我的】绘图记录列表
/** 获取【我的】绘图记录列表 */
export function getImageListMyByIds(ids: number[]) {
return requestClient.get<AiImageApi.Image[]>(`/ai/image/my-list-by-ids`, {
params: { ids: ids.join(',') },
});
}
// 生成图片
export function drawImage(data: AiImageApi.ImageDrawReq) {
/** 生成图片 */
export function drawImage(data: AiImageApi.ImageDrawReqVO) {
return requestClient.post(`/ai/image/draw`, data);
}
// 删除【我的】绘画记录
/** 删除【我的】绘画记录 */
export function deleteImageMy(id: number) {
return requestClient.delete(`/ai/image/delete-my?id=${id}`);
}
// ================ midjourney 专属 ================
// 【Midjourney】生成图片
export function midjourneyImagine(data: AiImageApi.ImageMidjourneyImagineReq) {
/** ================ midjourney 专属 ================ */
/** 【Midjourney】生成图片 */
export function midjourneyImagine(
data: AiImageApi.ImageMidjourneyImagineReqVO,
) {
return requestClient.post(`/ai/image/midjourney/imagine`, data);
}
// 【Midjourney】Action 操作(二次生成图片)
/** 【Midjourney】Action 操作(二次生成图片) */
export function midjourneyAction(data: AiImageApi.ImageMidjourneyAction) {
return requestClient.post(`/ai/image/midjourney/action`, data);
}
// ================ 绘图管理 ================
// 查询绘画分页
/** ================ 绘图管理 ================ */
/** 查询绘画分页 */
export function getImagePage(params: any) {
return requestClient.get<AiImageApi.Image[]>(`/ai/image/page`, { params });
}
// 更新绘画发布状态
/** 更新绘画发布状态 */
export function updateImage(data: any) {
return requestClient.put(`/ai/image/update`, data);
}
// 删除绘画
/** 删除绘画 */
export function deleteImage(id: number) {
return requestClient.delete(`/ai/image/delete?id=${id}`);
}

View File

@@ -15,36 +15,39 @@ export namespace AiKnowledgeDocumentApi {
}
}
// 查询知识库文档分页
/** 查询知识库文档分页 */
export function getKnowledgeDocumentPage(params: PageParam) {
return requestClient.get<
PageResult<AiKnowledgeDocumentApi.KnowledgeDocument>
>('/ai/knowledge/document/page', { params });
}
// 查询知识库文档详情
/** 查询知识库文档详情 */
export function getKnowledgeDocument(id: number) {
return requestClient.get(`/ai/knowledge/document/get?id=${id}`);
}
// 新增知识库文档(单个)
/** 新增知识库文档(单个) */
export function createKnowledge(data: any) {
return requestClient.post('/ai/knowledge/document/create', data);
}
// 新增知识库文档(多个)
/** 新增知识库文档(多个) */
export function createKnowledgeDocumentList(data: any) {
return requestClient.post('/ai/knowledge/document/create-list', data);
}
// 修改知识库文档
/** 修改知识库文档 */
export function updateKnowledgeDocument(data: any) {
return requestClient.put('/ai/knowledge/document/update', data);
}
// 修改知识库文档状态
/** 修改知识库文档状态 */
export function updateKnowledgeDocumentStatus(data: any) {
return requestClient.put('/ai/knowledge/document/update-status', data);
}
// 删除知识库文档
/** 删除知识库文档 */
export function deleteKnowledgeDocument(id: number) {
return requestClient.delete(`/ai/knowledge/document/delete?id=${id}`);
}

View File

@@ -13,7 +13,7 @@ export namespace AiKnowledgeKnowledgeApi {
}
}
// 查询知识库分页
/** 查询知识库分页 */
export function getKnowledgePage(params: PageParam) {
return requestClient.get<PageResult<AiKnowledgeKnowledgeApi.Knowledge>>(
'/ai/knowledge/page',
@@ -21,28 +21,29 @@ export function getKnowledgePage(params: PageParam) {
);
}
// 查询知识库详情
/** 查询知识库详情 */
export function getKnowledge(id: number) {
return requestClient.get<AiKnowledgeKnowledgeApi.Knowledge>(
`/ai/knowledge/get?id=${id}`,
);
}
// 新增知识库
/** 新增知识库 */
export function createKnowledge(data: AiKnowledgeKnowledgeApi.Knowledge) {
return requestClient.post('/ai/knowledge/create', data);
}
// 修改知识库
/** 修改知识库 */
export function updateKnowledge(data: AiKnowledgeKnowledgeApi.Knowledge) {
return requestClient.put('/ai/knowledge/update', data);
}
// 删除知识库
/** 删除知识库 */
export function deleteKnowledge(id: number) {
return requestClient.delete(`/ai/knowledge/delete?id=${id}`);
}
// 获取知识库简单列表
/** 获取知识库简单列表 */
export function getSimpleKnowledgeList() {
return requestClient.get<AiKnowledgeKnowledgeApi.Knowledge[]>(
'/ai/knowledge/simple-list',

View File

@@ -3,7 +3,6 @@ import type { PageParam, PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export namespace AiKnowledgeSegmentApi {
// AI 知识库分段
export interface KnowledgeSegment {
id: number; // 编号
documentId: number; // 文档编号
@@ -18,7 +17,7 @@ export namespace AiKnowledgeSegmentApi {
}
}
// 查询知识库分段分页
/** 查询知识库分段分页 */
export function getKnowledgeSegmentPage(params: PageParam) {
return requestClient.get<PageResult<AiKnowledgeSegmentApi.KnowledgeSegment>>(
'/ai/knowledge/segment/page',
@@ -26,50 +25,55 @@ export function getKnowledgeSegmentPage(params: PageParam) {
);
}
// 查询知识库分段详情
/** 查询知识库分段详情 */
export function getKnowledgeSegment(id: number) {
return requestClient.get<AiKnowledgeSegmentApi.KnowledgeSegment>(
`/ai/knowledge/segment/get?id=${id}`,
);
}
// 新增知识库分段
/** 新增知识库分段 */
export function createKnowledgeSegment(
data: AiKnowledgeSegmentApi.KnowledgeSegment,
) {
return requestClient.post('/ai/knowledge/segment/create', data);
}
// 修改知识库分段
/** 修改知识库分段 */
export function updateKnowledgeSegment(
data: AiKnowledgeSegmentApi.KnowledgeSegment,
) {
return requestClient.put('/ai/knowledge/segment/update', data);
}
// 修改知识库分段状态
export function updateKnowledgeSegmentStatus(data: any) {
return requestClient.put('/ai/knowledge/segment/update-status', data);
/** 修改知识库分段状态 */
export function updateKnowledgeSegmentStatus(id: number, status: number) {
return requestClient.put('/ai/knowledge/segment/update-status', {
id,
status,
});
}
// 删除知识库分段
/** 删除知识库分段 */
export function deleteKnowledgeSegment(id: number) {
return requestClient.delete(`/ai/knowledge/segment/delete?id=${id}`);
}
// 切片内容
/** 切片内容 */
export function splitContent(url: string, segmentMaxTokens: number) {
return requestClient.get('/ai/knowledge/segment/split', {
params: { url, segmentMaxTokens },
});
}
// 获取文档处理列表
/** 获取文档处理列表 */
export function getKnowledgeSegmentProcessList(documentIds: number[]) {
return requestClient.get('/ai/knowledge/segment/get-process-list', {
params: { documentIds: documentIds.join(',') },
});
}
// 搜索知识库分段
/** 搜索知识库分段 */
export function searchKnowledgeSegment(params: any) {
return requestClient.get('/ai/knowledge/segment/search', {
params,

View File

@@ -6,8 +6,8 @@ import { requestClient } from '#/api/request';
const { apiURL } = useAppConfig(import.meta.env, import.meta.env.PROD);
const accessStore = useAccessStore();
export namespace AiMindmapApi {
// AI 思维导图
export interface MindMap {
id: number; // 编号
userId: number; // 用户编号
@@ -18,12 +18,12 @@ export namespace AiMindmapApi {
errorMessage: string; // 错误信息
}
// AI 思维导图生成
export interface AiMindMapGenerateReq {
export interface AiMindMapGenerateReqVO {
prompt: string;
}
}
/** 生成思维导图 Stream */
export function generateMindMap({
data,
onClose,
@@ -32,7 +32,7 @@ export function generateMindMap({
ctrl,
}: {
ctrl: AbortController;
data: AiMindmapApi.AiMindMapGenerateReq;
data: AiMindmapApi.AiMindMapGenerateReqVO;
onClose?: (...args: any[]) => void;
onError?: (...args: any[]) => void;
onMessage?: (res: any) => void;
@@ -53,12 +53,12 @@ export function generateMindMap({
});
}
// 查询思维导图分页
/** 查询思维导图分页 */
export function getMindMapPage(params: any) {
return requestClient.get(`/ai/mind-map/page`, { params });
}
// 删除思维导图
/** 删除思维导图 */
export function deleteMindMap(id: number) {
return requestClient.delete(`/ai/mind-map/delete?id=${id}`);
}

View File

@@ -13,7 +13,7 @@ export namespace AiModelApiKeyApi {
}
}
// 查询 API 密钥分页
/** 查询 API 密钥分页 */
export function getApiKeyPage(params: PageParam) {
return requestClient.get<PageResult<AiModelApiKeyApi.ApiKey>>(
'/ai/api-key/page',
@@ -21,28 +21,29 @@ export function getApiKeyPage(params: PageParam) {
);
}
// 获得 API 密钥列表
/** 获得 API 密钥列表 */
export function getApiKeySimpleList() {
return requestClient.get<AiModelApiKeyApi.ApiKey[]>(
'/ai/api-key/simple-list',
);
}
// 查询 API 密钥详情
/** 查询 API 密钥详情 */
export function getApiKey(id: number) {
return requestClient.get<AiModelApiKeyApi.ApiKey>(`/ai/api-key/get?id=${id}`);
}
// 新增 API 密钥
/** 新增 API 密钥 */
export function createApiKey(data: AiModelApiKeyApi.ApiKey) {
return requestClient.post('/ai/api-key/create', data);
}
// 修改 API 密钥
/** 修改 API 密钥 */
export function updateApiKey(data: AiModelApiKeyApi.ApiKey) {
return requestClient.put('/ai/api-key/update', data);
}
// 删除 API 密钥
/** 删除 API 密钥 */
export function deleteApiKey(id: number) {
return requestClient.delete(`/ai/api-key/delete?id=${id}`);
}

View File

@@ -20,7 +20,7 @@ export namespace AiModelChatRoleApi {
}
// AI 聊天角色 分页请求
export interface ChatRolePageReq {
export interface ChatRolePageReqVO {
name?: string; // 角色名称
category?: string; // 角色类别
publicStatus: boolean; // 是否公开
@@ -29,7 +29,7 @@ export namespace AiModelChatRoleApi {
}
}
// 查询聊天角色分页
/** 查询聊天角色分页 */
export function getChatRolePage(params: PageParam) {
return requestClient.get<PageResult<AiModelChatRoleApi.ChatRole>>(
'/ai/chat-role/page',
@@ -37,49 +37,49 @@ export function getChatRolePage(params: PageParam) {
);
}
// 查询聊天角色详情
/** 查询聊天角色详情 */
export function getChatRole(id: number) {
return requestClient.get<AiModelChatRoleApi.ChatRole>(
`/ai/chat-role/get?id=${id}`,
);
}
// 新增聊天角色
/** 新增聊天角色 */
export function createChatRole(data: AiModelChatRoleApi.ChatRole) {
return requestClient.post('/ai/chat-role/create', data);
}
// 修改聊天角色
/** 修改聊天角色 */
export function updateChatRole(data: AiModelChatRoleApi.ChatRole) {
return requestClient.put('/ai/chat-role/update', data);
}
// 删除聊天角色
/** 删除聊天角色 */
export function deleteChatRole(id: number) {
return requestClient.delete(`/ai/chat-role/delete?id=${id}`);
}
// ======= chat 聊天
// 获取 my role
export function getMyPage(params: AiModelChatRoleApi.ChatRolePageReq) {
/** 获取 my role */
export function getMyPage(params: AiModelChatRoleApi.ChatRolePageReqVO) {
return requestClient.get('/ai/chat-role/my-page', { params });
}
// 获取角色分类
/** 获取角色分类 */
export function getCategoryList() {
return requestClient.get('/ai/chat-role/category-list');
}
// 创建角色
/** 创建角色 */
export function createMy(data: AiModelChatRoleApi.ChatRole) {
return requestClient.post('/ai/chat-role/create-my', data);
}
// 更新角色
/** 更新角色 */
export function updateMy(data: AiModelChatRoleApi.ChatRole) {
return requestClient.put('/ai/chat-role/update', data);
}
// 删除角色 my
/** 删除角色 my */
export function deleteMy(id: number) {
return requestClient.delete(`/ai/chat-role/delete-my?id=${id}`);
}

View File

@@ -18,7 +18,7 @@ export namespace AiModelModelApi {
}
}
// 查询模型分页
/** 查询模型分页 */
export function getModelPage(params: PageParam) {
return requestClient.get<PageResult<AiModelModelApi.Model>>(
'/ai/model/page',
@@ -26,7 +26,7 @@ export function getModelPage(params: PageParam) {
);
}
// 获得模型列表
/** 获得模型列表 */
export function getModelSimpleList(type?: number) {
return requestClient.get<AiModelModelApi.Model[]>('/ai/model/simple-list', {
params: {
@@ -35,21 +35,22 @@ export function getModelSimpleList(type?: number) {
});
}
// 查询模型详情
/** 查询模型详情 */
export function getModel(id: number) {
return requestClient.get<AiModelModelApi.Model>(`/ai/model/get?id=${id}`);
}
// 新增模型
/** 新增模型 */
export function createModel(data: AiModelModelApi.Model) {
return requestClient.post('/ai/model/create', data);
}
// 修改模型
/** 修改模型 */
export function updateModel(data: AiModelModelApi.Model) {
return requestClient.put('/ai/model/update', data);
}
// 删除模型
/** 删除模型 */
export function deleteModel(id: number) {
return requestClient.delete(`/ai/model/delete?id=${id}`);
}

View File

@@ -11,33 +11,34 @@ export namespace AiModelToolApi {
}
}
// 查询工具分页
/** 查询工具分页 */
export function getToolPage(params: PageParam) {
return requestClient.get<PageResult<AiModelToolApi.Tool>>('/ai/tool/page', {
params,
});
}
// 查询工具详情
/** 查询工具详情 */
export function getTool(id: number) {
return requestClient.get<AiModelToolApi.Tool>(`/ai/tool/get?id=${id}`);
}
// 新增工具
/** 新增工具 */
export function createTool(data: AiModelToolApi.Tool) {
return requestClient.post('/ai/tool/create', data);
}
// 修改工具
/** 修改工具 */
export function updateTool(data: AiModelToolApi.Tool) {
return requestClient.put('/ai/tool/update', data);
}
// 删除工具
/** 删除工具 */
export function deleteTool(id: number) {
return requestClient.delete(`/ai/tool/delete?id=${id}`);
}
// 获取工具简单列表
/** 获取工具简单列表 */
export function getToolSimpleList() {
return requestClient.get<AiModelToolApi.Tool[]>('/ai/tool/simple-list');
}

View File

@@ -26,19 +26,19 @@ export namespace AiMusicApi {
}
}
// 查询音乐分页
/** 查询音乐分页 */
export function getMusicPage(params: PageParam) {
return requestClient.get<PageResult<AiMusicApi.Music>>(`/ai/music/page`, {
params,
});
}
// 更新音乐
/** 更新音乐 */
export function updateMusic(data: any) {
return requestClient.put('/ai/music/update', data);
}
// 删除音乐
/** 删除音乐 */
export function deleteMusic(id: number) {
return requestClient.delete(`/ai/music/delete?id=${id}`);
}

View File

@@ -2,28 +2,48 @@ import type { PageParam, PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export function getWorkflowPage(params: PageParam) {
return requestClient.get<PageResult<any>>('/ai/workflow/page', {
params,
});
export namespace AiWorkflowApi {
/** 工作流 */
export interface Workflow {
id?: number; // 编号
name: string; // 工作流名称
code: string; // 工作流标识
graph: string; // 工作流模型 JSON 数据
remark?: string; // 备注
status: number; // 状态
createTime?: Date; // 创建时间
}
}
export const getWorkflow = (id: number | string) => {
return requestClient.get(`/ai/workflow/get?id=${id}`);
};
/** 查询工作流管理列表 */
export function getWorkflowPage(params: PageParam) {
return requestClient.get<PageResult<AiWorkflowApi.Workflow>>(
'/ai/workflow/page',
{ params },
);
}
export const createWorkflow = (data: any) => {
/** 查询工作流详情 */
export function getWorkflow(id: number) {
return requestClient.get<AiWorkflowApi.Workflow>(`/ai/workflow/get?id=${id}`);
}
/** 新增工作流 */
export function createWorkflow(data: AiWorkflowApi.Workflow) {
return requestClient.post('/ai/workflow/create', data);
};
}
export const updateWorkflow = (data: any) => {
/** 修改工作流 */
export function updateWorkflow(data: AiWorkflowApi.Workflow) {
return requestClient.put('/ai/workflow/update', data);
};
}
export const deleteWorkflow = (id: number | string) => {
/** 删除工作流 */
export function deleteWorkflow(id: number) {
return requestClient.delete(`/ai/workflow/delete?id=${id}`);
};
}
export const testWorkflow = (data: any) => {
/** 测试工作流 */
export function testWorkflow(data: any) {
return requestClient.post('/ai/workflow/test', data);
};
}

View File

@@ -1,7 +1,6 @@
import type { AiWriteTypeEnum } from '@vben/constants';
import type { PageParam, PageResult } from '@vben/request';
import type { AiWriteTypeEnum } from '#/utils';
import { useAppConfig } from '@vben/hooks';
import { fetchEventSource } from '@vben/request';
import { useAccessStore } from '@vben/stores';
@@ -10,8 +9,10 @@ import { requestClient } from '#/api/request';
const { apiURL } = useAppConfig(import.meta.env, import.meta.env.PROD);
const accessStore = useAccessStore();
export namespace AiWriteApi {
export interface Write {
id?: number;
type: AiWriteTypeEnum.REPLY | AiWriteTypeEnum.WRITING; // 1:撰写 2:回复
prompt: string; // 写作内容提示 1。撰写 2回复
originalContent: string; // 原文
@@ -27,31 +28,15 @@ export namespace AiWriteApi {
createTime?: Date; // 创建时间
}
export interface AiWritePageReq extends PageParam {
export interface AiWritePageReqVO extends PageParam {
userId?: number; // 用户编号
type?: AiWriteTypeEnum; // 写作类型
platform?: string; // 平台
createTime?: [string, string]; // 创建时间
}
export interface AiWriteResp {
id: number;
userId: number;
type: number;
platform: string;
model: string;
prompt: string;
generatedContent: string;
originalContent: string;
length: number;
format: number;
tone: number;
language: number;
errorMessage: string;
createTime: string;
}
}
/** 写作 Stream */
export function writeStream({
data,
onClose,
@@ -81,15 +66,14 @@ export function writeStream({
});
}
// 获取写作列表
export function getWritePage(params: any) {
return requestClient.get<PageResult<AiWriteApi.AiWritePageReq>>(
`/ai/write/page`,
{ params },
);
/** 获取写作列表 */
export function getWritePage(params: AiWriteApi.AiWritePageReqVO) {
return requestClient.get<PageResult<AiWriteApi.Write>>(`/ai/write/page`, {
params,
});
}
// 删除音乐
/** 删除写作记录 */
export function deleteWrite(id: number) {
return requestClient.delete(`/ai/write/delete`, { params: { id } });
}

View File

@@ -1,57 +0,0 @@
import type { PageParam, PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export namespace ProductUnitApi {
/** 产品单位信息 */
export interface ProductUnit {
id: number; // 编号
groupId?: number; // 分组编号
name?: string; // 单位名称
basic?: number; // 基础单位
number?: number; // 单位数量/相对于基础单位
usageType: number; // 用途
}
}
/** 查询产品单位分页 */
export function getProductUnitPage(params: PageParam) {
return requestClient.get<PageResult<ProductUnitApi.ProductUnit>>(
'/basic/product-unit/page',
{ params },
);
}
/** 查询产品单位详情 */
export function getProductUnit(id: number) {
return requestClient.get<ProductUnitApi.ProductUnit>(
`/basic/product-unit/get?id=${id}`,
);
}
/** 新增产品单位 */
export function createProductUnit(data: ProductUnitApi.ProductUnit) {
return requestClient.post('/basic/product-unit/create', data);
}
/** 修改产品单位 */
export function updateProductUnit(data: ProductUnitApi.ProductUnit) {
return requestClient.put('/basic/product-unit/update', data);
}
/** 删除产品单位 */
export function deleteProductUnit(id: number) {
return requestClient.delete(`/basic/product-unit/delete?id=${id}`);
}
/** 批量删除产品单位 */
export function deleteProductUnitListByIds(ids: number[]) {
return requestClient.delete(
`/basic/product-unit/delete-list?ids=${ids.join(',')}`,
);
}
/** 导出产品单位 */
export function exportProductUnit(params: any) {
return requestClient.download('/basic/product-unit/export-excel', params);
}

View File

@@ -1,61 +0,0 @@
import type { PageParam, PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export namespace ProductUnitGroupApi {
/** 产品单位组信息 */
export interface ProductUnitGroup {
id: number; // 编号
name?: string; // 产品单位组名称
status?: number; // 开启状态
}
}
/** 查询产品单位组分页 */
export function getProductUnitGroupPage(params: PageParam) {
return requestClient.get<PageResult<ProductUnitGroupApi.ProductUnitGroup>>(
'/basic/product-unit-group/page',
{ params },
);
}
/** 查询产品单位组详情 */
export function getProductUnitGroup(id: number) {
return requestClient.get<ProductUnitGroupApi.ProductUnitGroup>(
`/basic/product-unit-group/get?id=${id}`,
);
}
/** 新增产品单位组 */
export function createProductUnitGroup(
data: ProductUnitGroupApi.ProductUnitGroup,
) {
return requestClient.post('/basic/product-unit-group/create', data);
}
/** 修改产品单位组 */
export function updateProductUnitGroup(
data: ProductUnitGroupApi.ProductUnitGroup,
) {
return requestClient.put('/basic/product-unit-group/update', data);
}
/** 删除产品单位组 */
export function deleteProductUnitGroup(id: number) {
return requestClient.delete(`/basic/product-unit-group/delete?id=${id}`);
}
/** 批量删除产品单位组 */
export function deleteProductUnitGroupListByIds(ids: number[]) {
return requestClient.delete(
`/basic/product-unit-group/delete-list?ids=${ids.join(',')}`,
);
}
/** 导出产品单位组 */
export function exportProductUnitGroup(params: any) {
return requestClient.download(
'/basic/product-unit-group/export-excel',
params,
);
}

View File

@@ -10,7 +10,7 @@ export namespace BpmCategoryApi {
code: string;
status: number;
description?: string;
sort: number; // 分类排序
sort: number;
}
}

View File

@@ -1,23 +1,31 @@
import type { PageParam, PageResult } from '@vben/request';
import type { BpmModelApi } from '#/api/bpm/model';
import { requestClient } from '#/api/request';
export namespace BpmProcessDefinitionApi {
/** 流程定义 */
export interface ProcessDefinition {
id: string;
key?: string;
version: number;
name: string;
category: string;
description: string;
deploymentTime: number;
suspensionState: number;
modelType: number;
modelId: string;
formType?: number;
formId?: number;
formName?: string;
formCustomCreatePath?: string;
bpmnXml?: string;
simpleModel?: string;
formFields?: string[];
icon?: string;
startUsers?: BpmModelApi.UserInfo[];
}
}

View File

@@ -5,7 +5,7 @@ import { requestClient } from '#/api/request';
export namespace BpmFormApi {
/** 流程表单 */
export interface Form {
id?: number | undefined;
id?: number;
name: string;
conf: string;
fields: string[];
@@ -23,7 +23,7 @@ export async function getFormPage(params: PageParam) {
}
/** 获取表单详情 */
export async function getFormDetail(id: number) {
export async function getForm(id: number) {
return requestClient.get<BpmFormApi.Form>(`/bpm/form/get?id=${id}`);
}

View File

@@ -1,27 +1,6 @@
import { requestClient } from '#/api/request';
export namespace BpmModelApi {
/** 用户信息 TODO 这个是不是可以抽取出来定义在公共模块 */
// TODO @芋艿:一起看看。
export interface UserInfo {
id: number;
nickname: string;
avatar?: string;
deptId?: number;
deptName?: string;
}
/** 流程定义 */
export interface ProcessDefinition {
id: string;
key?: string;
version: number;
deploymentTime: number;
suspensionState: number;
formType?: number;
formCustomViewPath?: string;
}
/** 流程模型 */
export interface Model {
id: number;
@@ -42,6 +21,28 @@ export namespace BpmModelApi {
bpmnXml: string;
startUsers?: UserInfo[];
}
/** 流程定义 */
export interface ProcessDefinition {
id: string;
key?: string;
version: number;
deploymentTime: number;
suspensionState: number;
formType?: number;
formCustomCreatePath?: string;
formCustomViewPath?: string;
formFields?: string[];
}
/** 用户信息 */
export interface UserInfo {
id: number;
nickname: string;
avatar?: string;
deptId?: number;
deptName?: string;
}
}
/** 模型分类信息 */
@@ -52,7 +53,7 @@ export interface ModelCategoryInfo {
}
/** 获取流程模型列表 */
export async function getModelList(name: string | undefined) {
export async function getModelList(name?: string) {
return requestClient.get<BpmModelApi.Model[]>('/bpm/model/list', {
params: { name },
});

View File

@@ -49,5 +49,7 @@ export async function deleteProcessExpression(id: number) {
/** 导出流程表达式 */
export async function exportProcessExpression(params: any) {
return requestClient.download('/bpm/process-expression/export-excel', params);
return requestClient.download('/bpm/process-expression/export-excel', {
params,
});
}

View File

@@ -1,52 +1,21 @@
import type {
BpmCandidateStrategyEnum,
BpmNodeTypeEnum,
} from '@vben/constants';
import type { PageParam, PageResult } from '@vben/request';
import type { BpmTaskApi } from '../task';
import type { BpmModelApi } from '#/api/bpm/model';
import type { BpmCandidateStrategyEnum, BpmNodeTypeEnum } from '#/utils';
import { requestClient } from '#/api/request';
export namespace BpmProcessInstanceApi {
// TODO @芋艿:一些注释缺少或者不对;
export interface Task {
id: number;
name: string;
}
export interface User {
avatar: string;
id: number;
nickname: string;
}
// 审批任务信息
export interface ApprovalTaskInfo {
assigneeUser: User;
id: number;
ownerUser: User;
reason: string;
signPicUrl: string;
status: number;
}
// 审批节点信息
export interface ApprovalNodeInfo {
candidateStrategy?: BpmCandidateStrategyEnum;
candidateUsers?: User[];
endTime?: Date;
id: string;
name: string;
nodeType: BpmNodeTypeEnum;
startTime?: Date;
status: number;
tasks: ApprovalTaskInfo[];
}
/** 流程实例 */
export interface ProcessInstance {
businessKey: string;
category: string;
categoryName?: string;
createTime: string;
endTime: string;
fields: string[];
@@ -60,11 +29,30 @@ export namespace BpmProcessInstanceApi {
startTime?: Date;
startUser?: User;
status: number;
summary?: {
key: string;
value: string;
}[];
tasks?: BpmProcessInstanceApi.Task[];
}
// 审批详情
export interface ApprovalDetail {
/** 流程实例的任务 */
export interface Task {
id: number;
name: string;
assigneeUser?: User;
}
/** 流程实例的用户信息 */
export interface User {
id: number;
nickname: string;
avatar: string;
deptName?: string;
}
/** 审批详情 */
export interface ApprovalDetailRespVO {
activityNodes: BpmProcessInstanceApi.ApprovalNodeInfo[];
formFieldsPermission: any;
processDefinition: BpmModelApi.ProcessDefinition;
@@ -73,8 +61,32 @@ export namespace BpmProcessInstanceApi {
todoTask: BpmTaskApi.Task;
}
// 抄送流程实例
export interface Copy {
/** 审批详情的节点信息 */
export interface ApprovalNodeInfo {
candidateStrategy?: BpmCandidateStrategyEnum;
candidateUsers?: User[];
endTime?: Date;
id: string;
name: string;
nodeType: BpmNodeTypeEnum;
startTime?: Date;
status: number;
processInstanceId?: string;
tasks: ApprovalTaskInfo[];
}
/** 审批详情的节点的任务 */
export interface ApprovalTaskInfo {
id: number;
assigneeUser: User;
ownerUser: User;
reason: string;
signPicUrl: string;
status: number;
}
/** 抄送流程实例 */
export interface ProcessInstanceCopyRespVO {
activityId: string;
activityName: string;
createTime: number;
@@ -91,6 +103,19 @@ export namespace BpmProcessInstanceApi {
}[];
taskId: string;
}
/** 流程实例的打印数据响应 */
export interface ProcessPrintDataRespVO {
printTemplateEnable: boolean;
printTemplateHtml?: string;
processInstance: ProcessInstance;
tasks: {
description: string;
id: number;
name: string;
signPicUrl?: string;
}[];
}
}
/** 查询我的流程实例分页 */
@@ -167,7 +192,7 @@ export async function updateProcessInstance(
/** 获取审批详情 */
export async function getApprovalDetail(params: any) {
return requestClient.get<BpmProcessInstanceApi.ApprovalDetail>(
return requestClient.get<BpmProcessInstanceApi.ApprovalDetailRespVO>(
`/bpm/process-instance/get-approval-detail`,
{ params },
);
@@ -181,17 +206,16 @@ export async function getNextApprovalNodes(params: any) {
);
}
/** 获取表单字段权限 */
export async function getFormFieldsPermission(params: any) {
return requestClient.get<BpmProcessInstanceApi.ProcessInstance>(
`/bpm/process-instance/get-form-fields-permission`,
{ params },
);
}
/** 获取流程实例 BPMN 模型视图 */
export async function getProcessInstanceBpmnModelView(id: string) {
return requestClient.get<BpmProcessInstanceApi.ProcessInstance>(
`/bpm/process-instance/get-bpmn-model-view?id=${id}`,
);
}
/** 获取流程实例打印数据 */
export async function getProcessInstancePrintData(id: string) {
return requestClient.get<BpmProcessInstanceApi.ProcessPrintDataRespVO>(
`/bpm/process-instance/get-print-data?processInstanceId=${id}`,
);
}

View File

@@ -3,7 +3,7 @@ import type { PageParam, PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export namespace BpmProcessListenerApi {
/** BPM 流程监听器 */
/** 流程监听器 */
export interface ProcessListener {
id: number; // 编号
name: string; // 监听器名字

View File

@@ -5,28 +5,18 @@ import type { BpmProcessInstanceApi } from '../processInstance';
import { requestClient } from '#/api/request';
export namespace BpmTaskApi {
/** BPM 流程监听器 */
/** 流程任务 */
export interface Task {
id: number; // 编号
name: string; // 监听器名字
type: string; // 监听器类型
status: number; // 监听器状态
event: string; // 监听事件
valueType: string; // 监听器值类型
}
// 流程任务
export interface TaskManager {
id: string; // 编号
name: string; // 任务名
name: string; // 任务名
status: number; // 任务状态
createTime: number; // 创建时间
endTime: number; // 结束时间
durationInMillis: number; // 持续时间
status: number; // 状态
reason: string; // 原因
reason: string; // 审批理由
ownerUser: any; // 负责人
assigneeUser: any; // 处理人
taskDefinitionKey: string; // 任务定义key
taskDefinitionKey: string; // 任务定义的标识
processInstanceId: string; // 流程实例id
processInstance: BpmProcessInstanceApi.ProcessInstance; // 流程实例
parentTaskId: any; // 父任务id
@@ -87,46 +77,46 @@ export const getTaskListByReturn = async (id: string) => {
return await requestClient.get(`/bpm/task/list-by-return?id=${id}`);
};
/** 退回 */
/** 退回任务 */
export const returnTask = async (data: any) => {
return await requestClient.put('/bpm/task/return', data);
};
// 委派
/** 委派任务 */
export const delegateTask = async (data: any) => {
return await requestClient.put('/bpm/task/delegate', data);
};
// 转派
/** 转派任务 */
export const transferTask = async (data: any) => {
return await requestClient.put('/bpm/task/transfer', data);
};
// 加签
/** 加签任务 */
export const signCreateTask = async (data: any) => {
return await requestClient.put('/bpm/task/create-sign', data);
};
// 减签
/** 减签任务 */
export const signDeleteTask = async (data: any) => {
return await requestClient.delete('/bpm/task/delete-sign', data);
};
// 抄送
/** 抄送任务 */
export const copyTask = async (data: any) => {
return await requestClient.put('/bpm/task/copy', data);
};
// 获取我的待办任务
export const myTodoTask = async (processInstanceId: string) => {
return await requestClient.get(
`/bpm/task/my-todo?processInstanceId=${processInstanceId}`,
);
};
// 获取加签任务列表
/** 获取加签任务列表 */
export const getChildrenTaskList = async (id: string) => {
return await requestClient.get(
`/bpm/task/list-by-parent-task-id?parentTaskId=${id}`,
);
};
/** 撤回任务 */
export const withdrawTask = async (taskId: string) => {
return await requestClient.put('/bpm/task/withdraw', null, {
params: { taskId },
});
};

View File

@@ -3,7 +3,7 @@ import type { PageParam, PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export namespace BpmUserGroupApi {
/** BPM 用户组 */
/** 用户组 */
export interface UserGroup {
id: number;
name: string;

View File

@@ -64,7 +64,11 @@ export namespace AuthApi {
/** 登录 */
export async function loginApi(data: AuthApi.LoginParams) {
return requestClient.post<AuthApi.LoginResult>('/system/auth/login', data);
return requestClient.post<AuthApi.LoginResult>('/system/auth/login', data, {
headers: {
isEncrypt: false,
},
});
}
/** 刷新 accessToken */

View File

@@ -5,19 +5,6 @@ import type { CrmPermissionApi } from '#/api/crm/permission';
import { requestClient } from '#/api/request';
export namespace CrmBusinessApi {
/** 商机产品信息 */
export interface BusinessProduct {
id: number;
productId: number;
productName: string;
productNo: string;
productUnit: number;
productPrice: number;
businessPrice: number;
count: number;
totalPrice: number;
}
/** 商机信息 */
export interface Business {
id: number;
@@ -49,7 +36,21 @@ export namespace CrmBusinessApi {
products?: BusinessProduct[];
}
export interface BusinessStatus {
/** 商机产品信息 */
export interface BusinessProduct {
id: number;
productId: number;
productName: string;
productNo: string;
productUnit: number;
productPrice: number;
businessPrice: number;
count: number;
totalPrice: number;
}
/** 商机更新状态请求 */
export interface BusinessUpdateStatusReqVO {
id: number;
statusId: number | undefined;
endStatus: number | undefined;
@@ -97,7 +98,9 @@ export function updateBusiness(data: CrmBusinessApi.Business) {
}
/** 修改商机状态 */
export function updateBusinessStatus(data: CrmBusinessApi.BusinessStatus) {
export function updateBusinessStatus(
data: CrmBusinessApi.BusinessUpdateStatusReqVO,
) {
return requestClient.put('/crm/business/update-status', data);
}
@@ -108,7 +111,7 @@ export function deleteBusiness(id: number) {
/** 导出商机 */
export function exportBusiness(params: any) {
return requestClient.download('/crm/business/export-excel', params);
return requestClient.download('/crm/business/export-excel', { params });
}
/** 联系人关联商机列表 */
@@ -120,6 +123,6 @@ export function getBusinessPageByContact(params: PageParam) {
}
/** 商机转移 */
export function transferBusiness(data: CrmPermissionApi.TransferReq) {
export function transferBusiness(data: CrmPermissionApi.BusinessTransferReqVO) {
return requestClient.put('/crm/business/transfer', data);
}

View File

@@ -3,14 +3,6 @@ import type { PageParam, PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export namespace CrmBusinessStatusApi {
/** 商机状态信息 */
export interface BusinessStatusType {
[x: string]: any;
id?: number;
name: string;
percent: number;
}
/** 商机状态组信息 */
export interface BusinessStatus {
id?: number;
@@ -21,6 +13,14 @@ export namespace CrmBusinessStatusApi {
createTime?: Date;
statuses?: BusinessStatusType[];
}
/** 商机状态信息 */
export interface BusinessStatusType {
id?: number;
name: string;
percent: number;
[x: string]: any;
}
}
/** 默认商机状态 */

View File

@@ -67,11 +67,11 @@ export function deleteClue(id: number) {
/** 导出线索 */
export function exportClue(params: any) {
return requestClient.download('/crm/clue/export-excel', params);
return requestClient.download('/crm/clue/export-excel', { params });
}
/** 线索转移 */
export function transferClue(data: CrmPermissionApi.TransferReq) {
export function transferClue(data: CrmPermissionApi.BusinessTransferReqVO) {
return requestClient.put('/crm/clue/transfer', data);
}

View File

@@ -38,13 +38,13 @@ export namespace CrmContactApi {
}
/** 联系人商机关联请求 */
export interface ContactBusinessReq {
export interface ContactBusinessReqVO {
contactId: number;
businessIds: number[];
}
/** 商机联系人关联请求 */
export interface BusinessContactReq {
export interface BusinessContactReqVO {
businessId: number;
contactIds: number[];
}
@@ -96,7 +96,7 @@ export function deleteContact(id: number) {
/** 导出联系人 */
export function exportContact(params: any) {
return requestClient.download('/crm/contact/export-excel', params);
return requestClient.download('/crm/contact/export-excel', { params });
}
/** 获得联系人列表(精简) */
@@ -108,33 +108,33 @@ export function getSimpleContactList() {
/** 批量新增联系人商机关联 */
export function createContactBusinessList(
data: CrmContactApi.ContactBusinessReq,
data: CrmContactApi.ContactBusinessReqVO,
) {
return requestClient.post('/crm/contact/create-business-list', data);
}
/** 批量新增商机联系人关联 */
export function createBusinessContactList(
data: CrmContactApi.BusinessContactReq,
data: CrmContactApi.BusinessContactReqVO,
) {
return requestClient.post('/crm/contact/create-business-list2', data);
}
/** 解除联系人商机关联 */
export function deleteContactBusinessList(
data: CrmContactApi.ContactBusinessReq,
data: CrmContactApi.ContactBusinessReqVO,
) {
return requestClient.delete('/crm/contact/delete-business-list', { data });
}
/** 解除商机联系人关联 */
export function deleteBusinessContactList(
data: CrmContactApi.BusinessContactReq,
data: CrmContactApi.BusinessContactReqVO,
) {
return requestClient.delete('/crm/contact/delete-business-list2', { data });
}
/** 联系人转移 */
export function transferContact(data: CrmPermissionApi.TransferReq) {
export function transferContact(data: CrmPermissionApi.BusinessTransferReqVO) {
return requestClient.put('/crm/contact/transfer', data);
}

View File

@@ -5,19 +5,6 @@ import type { CrmPermissionApi } from '#/api/crm/permission';
import { requestClient } from '#/api/request';
export namespace CrmContractApi {
/** 合同产品信息 */
export interface ContractProduct {
id: number;
productId: number;
productName: string;
productNo: string;
productUnit: number;
productPrice: number;
contractPrice: number;
count: number;
totalPrice: number;
}
/** 合同信息 */
export interface Contract {
id: number;
@@ -50,6 +37,20 @@ export namespace CrmContractApi {
creatorName: string;
updateTime?: Date;
products?: ContractProduct[];
contactName?: string;
}
/** 合同产品信息 */
export interface ContractProduct {
id: number;
productId: number;
productName: string;
productNo: string;
productUnit: number;
productPrice: number;
contractPrice: number;
count: number;
totalPrice: number;
}
}
@@ -108,7 +109,7 @@ export function deleteContract(id: number) {
/** 导出合同 */
export function exportContract(params: any) {
return requestClient.download('/crm/contract/export-excel', params);
return requestClient.download('/crm/contract/export-excel', { params });
}
/** 提交审核 */
@@ -117,7 +118,7 @@ export function submitContract(id: number) {
}
/** 合同转移 */
export function transferContract(data: CrmPermissionApi.TransferReq) {
export function transferContract(data: CrmPermissionApi.BusinessTransferReqVO) {
return requestClient.put('/crm/contract/transfer', data);
}

View File

@@ -16,6 +16,7 @@ export namespace CrmCustomerApi {
ownerUserId: number; // 负责人的用户编号
ownerUserName?: string; // 负责人的用户名称
ownerUserDept?: string; // 负责人的部门名称
ownerUserDeptName?: string; // 负责人的部门名称
lockStatus?: boolean;
dealStatus?: boolean;
mobile: string; // 手机号
@@ -34,8 +35,11 @@ export namespace CrmCustomerApi {
creatorName?: string; // 创建人名称
createTime: Date; // 创建时间
updateTime: Date; // 更新时间
poolDay?: number; // 距离进入公海天数
}
export interface CustomerImport {
/** 客户导入请求 */
export interface CustomerImportReqVO {
ownerUserId: number;
file: File;
updateSupport: boolean;
@@ -74,7 +78,7 @@ export function deleteCustomer(id: number) {
/** 导出客户 */
export function exportCustomer(params: any) {
return requestClient.download('/crm/customer/export-excel', params);
return requestClient.download('/crm/customer/export-excel', { params });
}
/** 下载客户导入模板 */
@@ -83,7 +87,7 @@ export function importCustomerTemplate() {
}
/** 导入客户 */
export function importCustomer(data: CrmCustomerApi.CustomerImport) {
export function importCustomer(data: CrmCustomerApi.CustomerImportReqVO) {
return requestClient.upload('/crm/customer/import', data);
}
@@ -95,7 +99,7 @@ export function getCustomerSimpleList() {
}
/** 客户转移 */
export function transferCustomer(data: CrmPermissionApi.TransferReq) {
export function transferCustomer(data: CrmPermissionApi.BusinessTransferReqVO) {
return requestClient.put('/crm/customer/transfer', data);
}

View File

@@ -3,18 +3,6 @@ import type { PageParam, PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export namespace CrmFollowUpApi {
/** 关联商机信息 */
export interface Business {
id: number;
name: string;
}
/** 关联联系人信息 */
export interface Contact {
id: number;
name: string;
}
/** 跟进记录信息 */
export interface FollowUpRecord {
id: number; // 编号
@@ -32,6 +20,18 @@ export namespace CrmFollowUpApi {
creator: string;
creatorName?: string;
}
/** 关联商机信息 */
export interface Business {
id: number;
name: string;
}
/** 关联联系人信息 */
export interface Contact {
id: number;
name: string;
}
}
/** 查询跟进记录分页 */

Some files were not shown because too many files have changed in this diff Show More