25 Commits

Author SHA1 Message Date
芋道源码
1193ccd0a8 !74 update src/utils/dict.ts.
Merge pull request !74 from MeaoFun/N/A
2025-04-23 14:40:53 +00:00
MeaoFun
c7fe2e1ce4 update src/utils/dict.ts.
64行getDictObj,原来采用forEach的话找到值之后return只会中断循环不会返回值,应改为for

Signed-off-by: MeaoFun <1357423913@qq.com>
2025-04-15 13:34:41 +00:00
YunaiV
8c39e503f7 V2.4.2 发布~ 2025-04-12 12:47:40 +08:00
YunaiV
c4b3a593fb 更新 README:工作流(增加钉钉、飞书)能力 2025-03-16 17:50:25 +08:00
YunaiV
5e00382e0a V2.4.1 发布~ 2025-02-09 12:42:46 +08:00
YunaiV
e06e380957 V2.4.0 发布~ 2024-12-31 12:46:48 +08:00
xingyu
3e7a104aa8 !59 修复了数据字典值为true和false时,选中select value变nan的bug
Merge pull request !59 from Phone/master
2024-12-17 06:27:59 +00:00
Phone
c3b115673d !1 修复了数据字典值为true和false时,选中select value变nan的bug
Merge pull request !1 from Phone/test
2024-12-17 04:52:46 +00:00
Phone
c97a2a9135 修复了数据字典值为true和false时,选中select value变nan的bug 2024-12-17 11:52:38 +08:00
xingyu
62f27cfb3a !57 修复未拖动滑块位置时,调用验证滑块验证接口出现系统异常的问题
Merge pull request !57 from 我在路旁寻觅狗/fix-captcha
2024-12-12 11:38:37 +00:00
我在路旁寻觅狗
8a7b1b1a85 fix:修复滑块验证不拖动滑块时的问题
当未拖动滑块时,parseInt出来的结果是NaN,调用后端接口后,会出现系统异常

Signed-off-by: 我在路旁寻觅狗 <1327410210@qq.com>
2024-12-12 07:20:04 +00:00
YunaiV
bd0a80b64a README:增加工作流的演示图片 2024-11-23 11:30:23 +08:00
YunaiV
2e97171437 README 更新:单体、微服务的地址 2024-10-28 09:57:16 +08:00
YunaiV
06fcac16fa 【版本发布】2.3.0 发布~ 2024-10-07 15:33:04 +08:00
YunaiV
43b933341b 【功能修复】用户管理的部门名字回显不对问题 2024-09-29 08:03:49 +08:00
YunaiV
89c0a036b4 【功能修复】代码生成配置提交时,editValueRefs、submitCbs、cancelCbs、validCbs 导致异常的问题 2024-09-29 07:59:26 +08:00
YunaiV
fb33d662f6 Merge remote-tracking branch 'origin/master' 2024-09-25 19:13:57 +08:00
YunaiV
60183b6110 【代码优化】去除 VITE_GLOB_UPLOAD_URL、VITE_PROXY 的 upload 配置,使用 VITE_GLOB_API_URL + '/infra/file/upload' 替代 2024-09-25 19:13:51 +08:00
xingyu
b716516b85 !47 修复下载Excel文件时的异常处理问题
Merge pull request !47 from kuxiao/master
2024-09-13 09:21:46 +00:00
DESKTOP-ELFHO53\zqx
ee0d67182c fix: 修复下载Excel文件时的异常处理问题
在后端抛出异常的情况下,现在前端将停止下载文件并显示错误提示。之前,即使后端发生异常,前端也会继续下载文件而不向用户提示任何错误。
2024-09-13 17:10:00 +08:00
YunaiV
ac237eebd0 Merge remote-tracking branch 'origin/master' 2024-09-12 19:28:50 +08:00
YunaiV
4044a080fc 【功能修复】download 无法导出 excel 的问题 2024-09-12 19:28:40 +08:00
xingyu
26df81a16f update README.md.
Signed-off-by: xingyu <xingyu4j@vip.qq.com>
2024-08-15 08:34:21 +00:00
xingyu
f496637790 update README.md.
Signed-off-by: xingyu <xingyu4j@vip.qq.com>
2024-08-15 08:33:33 +00:00
YunaiV
762faab90c V2.2.0 版本发布 2024-08-02 23:05:04 +08:00
17 changed files with 108 additions and 78 deletions

View File

@@ -7,7 +7,7 @@ VITE_PUBLIC_PATH = /
# 本地开发代理,可以解决跨域及多地址代理
# 如果接口地址匹配到则会转发到http://localhost:3000防止本地出现跨域问题
# 可以有多个,注意多个不能换行,否则代理将会失效
VITE_PROXY = [["/dev-api","http://localhost:48080/admin-api"],["/upload","http://localhost:48080/admin-api/infra/file/upload"]]
VITE_PROXY = [["/dev-api","http://localhost:48080/admin-api"]]
# VITE_PROXY=[["/api","http://vben.xingyuv.com/test"]]
# 是否删除Console.log
@@ -18,9 +18,6 @@ VITE_GLOB_BASE_URL = "http://localhost:48080"
# 接口地址,如果没有跨域问题,直接在这里配置即可
VITE_GLOB_API_URL = /dev-api
# 文件上传接口 可选
VITE_GLOB_UPLOAD_URL = /upload
# 接口地址前缀,有些系统所有接口地址都有前缀,可以在这里统一加,方便切换
VITE_GLOB_API_URL_PREFIX =

View File

@@ -7,7 +7,7 @@ VITE_PUBLIC_PATH = /
# 本地开发代理,可以解决跨域及多地址代理
# 如果接口地址匹配到则会转发到http://localhost:3000防止本地出现跨域问题
# 可以有多个,注意多个不能换行,否则代理将会失效
VITE_PROXY = [["/dev-api","http://api-dashboard.yudao.iocoder.cn/admin-api"],["/upload","http://api-dashboard.yudao.iocoder.cn/admin-api/infra/file/upload"]]
VITE_PROXY = [["/dev-api","http://api-dashboard.yudao.iocoder.cn/admin-api"]]
# VITE_PROXY=[["/api","http://vben.xingyuv.com/test"]]
# 是否删除Console.log
@@ -18,9 +18,6 @@ VITE_GLOB_BASE_URL = "http://api-dashboard.yudao.iocoder.cn"
# 接口地址,如果没有跨域问题,直接在这里配置即可
VITE_GLOB_API_URL = /dev-api
# 文件上传接口 可选
VITE_GLOB_UPLOAD_URL = /upload
# 接口地址前缀,有些系统所有接口地址都有前缀,可以在这里统一加,方便切换
VITE_GLOB_API_URL_PREFIX =

View File

@@ -17,9 +17,6 @@ VITE_GLOB_BASE_URL = "http://localhost:48080"
# 接口地址 可以由nginx做转发或者直接写实际地址
VITE_GLOB_API_URL = http://localhost:48080/admin-api
# 文件上传地址 可以由nginx做转发或者直接写实际地址
VITE_GLOB_UPLOAD_URL = /upload
# 接口地址前缀,有些系统所有接口地址都有前缀,可以在这里统一加,方便切换
VITE_GLOB_API_URL_PREFIX =

View File

@@ -17,9 +17,6 @@ VITE_GLOB_BASE_URL = "http://127.0.0.1:48080"
# 接口地址,如果没有跨域问题,直接在这里配置即可
VITE_GLOB_API_URL = http://127.0.0.1:48080/admin-api
# 文件上传地址 可以由nginx做转发或者直接写实际地址
VITE_GLOB_UPLOAD_URL = /upload
# 接口地址前缀,有些系统所有接口地址都有前缀,可以在这里统一加,方便切换
VITE_GLOB_API_URL_PREFIX =

View File

@@ -17,9 +17,6 @@ VITE_GLOB_BASE_URL = "http://localhost:48080"
# 接口地址,如果没有跨域问题,直接在这里配置即可
VITE_GLOB_API_URL = http://localhost:48080/admin-api
# 文件上传地址 可以由nginx做转发或者直接写实际地址
VITE_GLOB_UPLOAD_URL = /upload
# 接口地址前缀,有些系统所有接口地址都有前缀,可以在这里统一加,方便切换
VITE_GLOB_API_URL_PREFIX =

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

105
README.md
View File

@@ -1,4 +1,4 @@
**严肃声明:现在、未来都不会有商业版本,所有代码全部开源!**
**新版本更新中master仓库不再维护请关注v5-dev分支进度**
**「我喜欢写代码,乐此不疲」**
**「我喜欢做开源,以此为乐」**
@@ -15,9 +15,8 @@
- 视频教程:<https://doc.iocoder.cn/video/>
- 交流群:<https://doc.iocoder.cn/qun/>
## 外包项目请联系
## 外包项目请联系【非项目需求请勿扫码,非客服,不解答项目问题】
微信号xinyu370
![alt 定制开发](./public/resource/img/wx2.png)
@@ -51,11 +50,11 @@
支持 Spring Boot、Spring Cloud 两种架构:
① Spring Boot 单体架构:<https://github.com/YunaiV/ruoyi-vue-pro>
① Spring Boot 单体架构:<https://doc.iocoder.cn>
![架构图](/.image/common/ruoyi-vue-pro-architecture.png)
② Spring Cloud 微服务架构:<https://github.com/YunaiV/yudao-cloud>
② Spring Cloud 微服务架构:<https://cloud.iocoder.cn>
![架构图](/.image/common/yudao-cloud-architecture.png)
@@ -97,49 +96,87 @@
### 工作流程
| | 功能 | 描述 |
|-----|-------|----------------------------------------|
| 🚀 | 流程模型 | 配置工作流的流程模型,支持文件导入与在线设计流程图,提供 7 种任务分配规则 |
| 🚀 | 流程表单 | 拖动表单元素生成相应的工作流表单,覆盖 Element UI 所有的表单组件 |
| 🚀 | 用户分组 | 自定义用户分组,可用于工作流的审批分组 |
| 🚀 | 我的流程 | 查看我发起的工作流程,支持新建、取消流程等操作,高亮流程图、审批时间线 |
| 🚀 | 待办任务 | 查看自己【未】审批的工作任务,支持通过、不通过、转、委派、退回等操作 |
| 🚀 | 已办任务 | 查看自己【已】审批的工作任务,未来会支持回退操作 |
| 🚀 | OA 请假 | 作为业务自定义接入工作流的使用示例,只需创建请求对应的工作流程,即可进行审批 |
| | 功能 | 描述 |
|----|-------|-----------------------------------------|
| 🚀 | 流程模型 | 配置工作流的流程模型,支持 BPMN 和仿钉钉/飞书设计器 |
| 🚀 | 流程表单 | 拖动表单元素生成相应的工作流表单,覆盖 Element UI 所有的表单组件 |
| 🚀 | 用户分组 | 自定义用户分组,可用于工作流的审批分组 |
| 🚀 | 我的流程 | 查看我发起的工作流程,支持新建、取消流程等操作,高亮流程图、审批时间线 |
| 🚀 | 待办任务 | 查看自己【未】审批的工作任务,支持通过、不通过、转、委派、退回、加减签等操作 |
| 🚀 | 已办任务 | 查看自己【已】审批的工作任务,支持流程预测,展示未来审批人信息 |
| 🚀 | OA 请假 | 作为业务自定义接入工作流的使用示例,只需创建请求对应的工作流程,即可进行审批 |
![功能图](/.image/common/bpm-feature.png)
基于 Flowable 构建,可支持信创(国产)数据库,满足中国特色流程操作:
| BPMN 设计器 | 钉钉/飞书设计器 |
|------------------------------|--------------------------------|
| ![](/.image/工作流设计器-bpmn.jpg) | ![](/.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 回调、更新数据、删除数据等 | ✅ |
| 延迟节点 | 执行到该节点,审批等待一段时间再执行,支持固定时长、固定日期等 | ✅ |
| 拓展设置 | 流程前置/后置通知,节点(任务)前置、后置通知,流程报表,自动审批去重,自定流程编号、标题、摘要,流程报表等 | ✅ |
### 支付系统
| | 功能 | 描述 |
|-----|------|---------------------------|
| 🚀 | 商户信息 | 管理商户信息,支持 Saas 场景下的多商户功能 |
| 🚀 | 应用信息 | 配置商户的应用信息,对接支付宝、微信等多个支付渠道 |
| 🚀 | 支付订单 | 查看用户发起的支付宝、微信等的【支付】订单 |
| 🚀 | 退款订单 | 查看用户发起的支付宝、微信等的【退款】订单 |
| 🚀 | 回调通知 | 查看支付回调业务的【支付】【退款】的通知结果 |
| 🚀 | 接入示例 | 提供接入支付系统的【支付】【退款】的功能实战 |
### 基础设施
| | 功能 | 描述 |
|----|----------|----------------------------------------------|
| 🚀 | 代码生成 | 前后端代码的生成Java、Vue、SQL、单元测试支持 CRUD 下载 |
| 🚀 | 系统接口 | 基于 Swagger 自动生成相关的 RESTful API 接口文档 |
| 🚀 | 数据库文档 | 基于 Screw 自动生成数据库文档,支持导出 Word、HTML、MD 格式 |
| | 表单构建 | 拖动表单元素生成相应的 HTML 代码,支持导出 JSON、Vue 文件 |
| 🚀 | 配置管理 | 对系统动态配置常用参数,支持 SpringBoot 加载 |
| ⭐️ | 定时任务 | 在线(添加、修改、删除)任务调度包含执行结果日志 |
| 🚀 | 文件服务 | 支持将文件存储到 S3MinIO、阿里云、腾讯云、七牛云、本地、FTP、数据库等 |
| 🚀 | 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)

View File

@@ -1,6 +1,6 @@
{
"name": "yudao-ui-admin-vben",
"version": "2.1.0-snapshot",
"version": "2.4.2-snapshot",
"author": {
"name": "xingyuv",
"email": "xingyu4j@vip.qq.com",

View File

@@ -206,7 +206,7 @@ function end() {
endMovetime.value = +new Date()
// 判断是否重合
if (status.value && isEnd.value === false) {
let moveLeftDistance = Number.parseInt((moveBlockLeft.value || '').replace('px', ''))
let moveLeftDistance = Number.parseInt((moveBlockLeft.value || 0))
moveLeftDistance = (moveLeftDistance * 310) / Number.parseInt(setSize.imgWidth)
const data = {
captchaType: captchaType.value,

View File

@@ -9,7 +9,6 @@ export function useGlobSetting(): Readonly<GlobConfig> {
VITE_GLOB_API_URL,
VITE_GLOB_APP_SHORT_NAME,
VITE_GLOB_API_URL_PREFIX,
VITE_GLOB_UPLOAD_URL,
VITE_GLOB_APP_TENANT_ENABLE,
VITE_GLOB_APP_CAPTCHA_ENABLE,
} = getAppEnvConfig()
@@ -26,7 +25,7 @@ export function useGlobSetting(): Readonly<GlobConfig> {
apiUrl: VITE_GLOB_API_URL,
shortName: VITE_GLOB_APP_SHORT_NAME,
urlPrefix: VITE_GLOB_API_URL_PREFIX,
uploadUrl: VITE_GLOB_UPLOAD_URL,
uploadUrl: VITE_GLOB_API_URL + '/infra/file/upload',
tenantEnable: VITE_GLOB_APP_TENANT_ENABLE,
captchaEnable: VITE_GLOB_APP_CAPTCHA_ENABLE,
}

View File

@@ -176,8 +176,6 @@ export interface GlobEnvConfig {
VITE_GLOB_API_URL_PREFIX?: string
// Project abbreviation
VITE_GLOB_APP_SHORT_NAME: string
// Upload url
VITE_GLOB_UPLOAD_URL?: string
// 租户开关
VITE_GLOB_APP_TENANT_ENABLE: string
// 验证码开关

View File

@@ -52,7 +52,9 @@ export function getDictOptions(dictType: string, valueType?: 'string' | 'number'
? `${dict.value}`
: valueType === 'boolean'
? `${dict.value}` === 'true'
: Number.parseInt(`${dict.value}`),
: valueType === 'number' && !isNaN(parseFloat(`${dict.value}`))
? Number.parseInt(`${dict.value}`)
: dict.value,
})
})
}
@@ -62,10 +64,11 @@ export function getDictOptions(dictType: string, valueType?: 'string' | 'number'
export function getDictObj(dictType: string, value: any) {
const dictOptions: DictDataType[] = getDictDatas(dictType)
if (dictOptions) {
dictOptions.forEach((dict: DictDataType) => {
if (dict.value === value.toString())
for (const dict of dictOptions) {
if (dict.value === value.toString()) {
return dict
})
}
}
}
else {
return null

View File

@@ -15,7 +15,7 @@ import type { RequestOptions, Result, UploadFileParams } from '@/types/axios'
import { ContentTypeEnum, RequestEnum } from '@/enums/httpEnum'
import { downloadByData } from '@/utils/file/download'
import { useGlobSetting } from '@/hooks/setting'
import {getAccessToken, getRefreshToken, getTenantId, setAccessToken} from '@/utils/auth'
import { getAccessToken, getRefreshToken, getTenantId, setAccessToken } from '@/utils/auth'
export * from './axiosTransform'
@@ -126,13 +126,12 @@ export class VAxios {
const config = res.config
// 二进制数据则直接返回,例如说 Excel 导出
if (
res.request.responseType === 'blob' ||
res.request.responseType === 'arraybuffer'
res.request.responseType === 'blob'
|| res.request.responseType === 'arraybuffer'
) {
// 注意:如果导出的响应为 json说明可能失败了不直接返回进行下载
if (res.data.type === 'application/json') {
if (res.data.type === 'application/json')
res.data = await new Response(res.data).json()
}
}
// 处理 accessToken 过期的情况
if (res.data.code === 401) {
@@ -289,7 +288,6 @@ export class VAxios {
this.axiosInstance
.request<any, AxiosResponse<Result>>(conf)
.then((res: AxiosResponse<Result>) => {
debugger
if (transformResponseHook && isFunction(transformResponseHook)) {
try {
const ret = transformResponseHook(res, opt)
@@ -298,12 +296,19 @@ export class VAxios {
catch (err) {
reject(err || new Error('request error!'))
}
return
// 注释 return解决无法导出的问题。参见 https://t.zsxq.com/79cmo 说明。
}
resolve(res as unknown as Promise<T>)
else {
resolve(res as unknown as Promise<T>)
}
// download file
if (typeof res != 'undefined')
downloadByData(res?.data as unknown as BlobPart, title || 'export')
if (res && typeof res !== 'undefined' && res.headers) {
const contentType = res.headers['content-type']
// ExcelUtils.java的write函数setContentType顺序问题导致没有contentType
if (!contentType || !contentType.startsWith('application/json'))
downloadByData(res?.data as unknown as BlobPart, title || 'export')
}
})
.catch((e: Error | AxiosError) => {
if (requestCatchHook && isFunction(requestCatchHook)) {
@@ -344,7 +349,6 @@ export class VAxios {
this.axiosInstance
.request<any, AxiosResponse<Result>>(conf)
.then((res: AxiosResponse<Result>) => {
debugger
if (transformResponseHook && isFunction(transformResponseHook)) {
try {
const ret = transformResponseHook(res, opt)

View File

@@ -7,6 +7,7 @@ import CloumInfoForm from './components/CloumInfoForm.vue'
import FinishForm from './components/FinishForm.vue'
import { PageWrapper } from '@/components/Page'
import { getCodegenTable, updateCodegenTable } from '@/api/infra/codegen'
import { cloneDeep } from 'lodash-es'
const Step = Steps.Step
@@ -47,9 +48,15 @@ async function handleStep2Next(step2Values: any) {
async function handleSubmit() {
basicInfoValue.value.id = query.id as unknown as number
const genTable = {
table: basicInfoValue.value,
columns: columnsInfoValue.value,
table: cloneDeep(basicInfoValue.value),
columns: cloneDeep(columnsInfoValue.value),
}
genTable.columns.forEach((column: any) => {
delete column.editValueRefs
delete column.submitCbs
delete column.cancelCbs
delete column.validCbs
})
await updateCodegenTable(genTable)
}

View File

@@ -29,11 +29,8 @@ export const columns: BasicColumn[] = [
},
{
title: '部门',
dataIndex: 'deptId',
dataIndex: 'deptName',
width: 120,
customRender: ({ record }) => {
return useRender.renderTag(record.dept && record.dept.name)
},
},
{
title: '手机号码',