From 31efb8a7d040f2e5abf80d359f811103b5156ce8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=84=E9=94=90=E6=B3=A2?= <10549902+zhuangruibo@user.noreply.gitee.com> Date: Tue, 12 May 2026 20:52:38 +0800 Subject: [PATCH] =?UTF-8?q?=E8=99=9A=E6=8B=9F=E5=8D=95=E4=BD=8D=E9=87=8D?= =?UTF-8?q?=E7=BB=84=E5=8A=9F=E8=83=BD=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...³•码二期部署与网络架构图.drawio | 262 ++++++++++++ .../005-2-重新整理二期菜单结构.sql | 2 +- .../EfcodeVirtualUnitController.java | 27 ++ .../enforcementcode/domain/vo/UnitUserVo.java | 51 +++ .../mapper/EfcodeVirtualUnitMapper.java | 16 + .../service/IEfcodeVirtualUnitService.java | 19 + .../impl/EfcodeVirtualUnitServiceImpl.java | 33 +- .../EfcodeVirtualUnitMapper.xml | 35 ++ .../.env.development-zrb-cust | 37 ++ .../zdxt-admin-plus-ui/package.json | 1 + .../src/api/efcode/virtualUnit/index.ts | 29 +- .../src/api/efcode/virtualUnit/types.ts | 14 + .../efcode/virtualUnit/unitUserManager.vue | 383 ++++++++++++++++++ .../zdxt-admin-plus-ui/vite.config.ts | 2 +- 14 files changed, 903 insertions(+), 8 deletions(-) create mode 100644 doc/执法码二期部署与网络架构图.drawio create mode 100644 zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/UnitUserVo.java create mode 100644 zdxt-web-client/zdxt-admin-plus-ui/.env.development-zrb-cust create mode 100644 zdxt-web-client/zdxt-admin-plus-ui/src/views/efcode/virtualUnit/unitUserManager.vue diff --git a/doc/执法码二期部署与网络架构图.drawio b/doc/执法码二期部署与网络架构图.drawio new file mode 100644 index 00000000..24e3e663 --- /dev/null +++ b/doc/执法码二期部署与网络架构图.drawio @@ -0,0 +1,262 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/script/sql/zfjd-refactoring-v1/005-2-重新整理二期菜单结构.sql b/script/sql/zfjd-refactoring-v1/005-2-重新整理二期菜单结构.sql index 6d88e13c..1179df1b 100644 --- a/script/sql/zfjd-refactoring-v1/005-2-重新整理二期菜单结构.sql +++ b/script/sql/zfjd-refactoring-v1/005-2-重新整理二期菜单结构.sql @@ -45,7 +45,7 @@ INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, -- 执法码单位与人员 子菜单 (parent_id = 2002) INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, url, target, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark, system_code, type) VALUES (2010, '执法单位设置', 2002, 1, 'unitBuilder', 'efcode/virtualUnit/unitBuilder', '', 1, 0, '#', '', 'C', '0', '0', 'system:dept:list', 'tree', 103, 1, '2026-03-31 20:14:46', null, null, '执法单位设置菜单', 'authService', null); -INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, url, target, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark, system_code, type) VALUES (2011, '执法人员设置', 2002, 2, 'efuser', '', '', 1, 0, '#', '', 'C', '0', '0', 'efcode:user:list', 'user', 103, 1, '2026-03-31 20:14:46', null, null, '执法人员设置菜单', 'authService', null); +INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, url, target, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark, system_code, type) VALUES (2011, '执法人员设置', 2002, 2, 'efuser', 'efcode/virtualUnit/unitUserManager', '', 1, 0, '#', '', 'C', '0', '0', 'efcode:user:list', 'user', 103, 1, '2026-03-31 20:14:46', null, null, '执法人员设置菜单', 'authService', null); -- 机构与权限管理 辅助隐藏页面 INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query_param, is_frame, is_cache, url, target, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark, system_code, type) VALUES (2020, '分配用户', 20, 4, 'role-auth/user/:roleId', 'system/role/authUser', '', 1, 1, '#', '', 'C', '1', '0', 'system:role:edit', '#', 103, 1, '2026-03-31 20:14:46', null, null, '/system/role', 'authService', null); diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/EfcodeVirtualUnitController.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/EfcodeVirtualUnitController.java index 05169e83..ef7533aa 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/EfcodeVirtualUnitController.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/controller/EfcodeVirtualUnitController.java @@ -18,6 +18,7 @@ import org.dromara.common.core.validate.EditGroup; import org.dromara.common.log.enums.BusinessType; import org.dromara.common.excel.utils.ExcelUtil; import com.zdxt.enforcementcode.domain.vo.EfcodeVirtualUnitVo; +import com.zdxt.enforcementcode.domain.vo.UnitUserVo; import com.zdxt.enforcementcode.domain.bo.EfcodeVirtualUnitBo; import com.zdxt.enforcementcode.service.IEfcodeVirtualUnitService; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -55,6 +56,32 @@ public class EfcodeVirtualUnitController extends BaseController { return R.ok(efcodeVirtualUnitService.queryTreeList()); } + /** + * 查询业务可见的虚拟单位树列表(vir_show_at_business='1') + */ + @SaCheckPermission("enforcementcode:virtualUnit:list") + @GetMapping("/businessTreeList") + public R> businessTreeList() { + return R.ok(efcodeVirtualUnitService.queryBusinessTreeList()); + } + + /** + * 根据虚拟单位分页查询关联人员列表 + * + * @param sysDeptId 虚拟单位对应的部门ID + * @param keyword 搜索关键字 + * @param globalSearch 是否全局搜索 + */ + @SaCheckPermission("enforcementcode:virtualUnit:list") + @GetMapping("/users") + public TableDataInfo queryUsers( + @RequestParam(required = false) String sysDeptId, + @RequestParam(required = false) String keyword, + @RequestParam(defaultValue = "false") boolean globalSearch, + PageQuery pageQuery) { + return efcodeVirtualUnitService.queryUsersBySysDeptId(sysDeptId, keyword, globalSearch, pageQuery); + } + /** * 导出虚拟单位树列表 */ diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/UnitUserVo.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/UnitUserVo.java new file mode 100644 index 00000000..0f739f63 --- /dev/null +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/domain/vo/UnitUserVo.java @@ -0,0 +1,51 @@ +package com.zdxt.enforcementcode.domain.vo; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 虚拟单位人员列表VO(无@Translation,避免N+1查询) + */ +@Data +public class UnitUserVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 用户ID + */ + private Long userId; + + /** + * 部门ID + */ + private String deptId; + + /** + * 用户账号 + */ + private String userName; + + /** + * 姓名 + */ + private String fullname; + + /** + * 手机号(市认证同步) + */ + private String mobileNumber; + + /** + * 部门路径(来自sys_dept.zzDisplayPath,已去除"深圳市/"前缀) + */ + private String zzDisplayPath; + + /** + * 是否为下级部门用户 + */ + private Boolean isSubDeptUser; +} diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/EfcodeVirtualUnitMapper.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/EfcodeVirtualUnitMapper.java index 3d9bd26b..d0cd6ffd 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/EfcodeVirtualUnitMapper.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/mapper/EfcodeVirtualUnitMapper.java @@ -1,8 +1,12 @@ package com.zdxt.enforcementcode.mapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zdxt.enforcementcode.domain.EfcodeVirtualUnit; import com.zdxt.enforcementcode.domain.vo.EfcodeVirtualUnitVo; +import com.zdxt.enforcementcode.domain.vo.UnitUserVo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; /** @@ -14,4 +18,16 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; @Mapper public interface EfcodeVirtualUnitMapper extends BaseMapperPlus { + /** + * 查询虚拟单位关联的人员列表 + * + * @param sysDeptId 虚拟单位对应的部门ID + * @param keyword 搜索关键字 + * @param globalSearch 是否全局搜索 + * @return 人员列表 + */ + IPage selectUnitUsers(Page page, + @Param("sysDeptId") String sysDeptId, + @Param("keyword") String keyword, + @Param("globalSearch") boolean globalSearch); } diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEfcodeVirtualUnitService.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEfcodeVirtualUnitService.java index b5d6ab32..d07f0383 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEfcodeVirtualUnitService.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEfcodeVirtualUnitService.java @@ -1,6 +1,7 @@ package com.zdxt.enforcementcode.service; import com.zdxt.enforcementcode.domain.vo.EfcodeVirtualUnitVo; +import com.zdxt.enforcementcode.domain.vo.UnitUserVo; import com.zdxt.enforcementcode.domain.bo.EfcodeVirtualUnitBo; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; @@ -73,6 +74,24 @@ public interface IEfcodeVirtualUnitService { */ List queryTreeList(); + /** + * 查询业务可见的虚拟单位树列表(vir_show_at_business='1') + * + * @return 虚拟单位树列表 + */ + List queryBusinessTreeList(); + + /** + * 根据虚拟单位的sysDeptId分页查询关联人员列表 + * + * @param sysDeptId 虚拟单位对应的部门ID + * @param keyword 搜索关键字(可选) + * @param globalSearch 是否全局搜索 + * @param pageQuery 分页参数 + * @return 人员分页列表 + */ + TableDataInfo queryUsersBySysDeptId(String sysDeptId, String keyword, boolean globalSearch, PageQuery pageQuery); + /** * 是否存在子节点 * diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeVirtualUnitServiceImpl.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeVirtualUnitServiceImpl.java index 3eb38391..020a149f 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeVirtualUnitServiceImpl.java +++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EfcodeVirtualUnitServiceImpl.java @@ -1,7 +1,6 @@ package com.zdxt.enforcementcode.service.impl; import com.zdxt.enforcementcode.mapper.SrzDeptMapper; -import com.zdxt.enforcementcode.service.ISrzDeptService; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -15,17 +14,16 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import com.zdxt.enforcementcode.domain.bo.EfcodeVirtualUnitBo; import com.zdxt.enforcementcode.domain.vo.EfcodeVirtualUnitVo; +import com.zdxt.enforcementcode.domain.vo.UnitUserVo; import com.zdxt.enforcementcode.domain.EfcodeVirtualUnit; import com.zdxt.enforcementcode.mapper.EfcodeVirtualUnitMapper; import com.zdxt.enforcementcode.service.IEfcodeVirtualUnitService; import org.dromara.system.domain.SysDept; import org.dromara.system.mapper.SysDeptMapper; import com.zdxt.enforcementcode.domain.vo.SrzDeptVo; +import com.baomidou.mybatisplus.core.metadata.IPage; -import java.util.List; -import java.util.Map; -import java.util.Collection; -import java.util.UUID; +import java.util.*; import java.util.stream.Collectors; /** @@ -217,6 +215,31 @@ public class EfcodeVirtualUnitServiceImpl implements IEfcodeVirtualUnitService { return baseMapper.selectVoList(lqw); } + /** + * 查询业务可见的虚拟单位树列表(vir_show_at_business='1') + */ + @Override + public List queryBusinessTreeList() { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(EfcodeVirtualUnit::getVirShowAtBusiness, "是"); + lqw.orderByAsc(EfcodeVirtualUnit::getCustOrderNum); + lqw.orderByAsc(EfcodeVirtualUnit::getOrderNum); + return baseMapper.selectVoList(lqw); + } + + /** + * 根据虚拟单位的sysDeptId分页查询关联人员列表 + * SQL实现参见 EfcodeVirtualUnitMapper.xml#selectUnitUsers + */ + @Override + public TableDataInfo queryUsersBySysDeptId(String sysDeptId, String keyword, boolean globalSearch, PageQuery pageQuery) { + if (!globalSearch && StringUtils.isBlank(sysDeptId)) { + return TableDataInfo.build(new Page<>()); + } + IPage page = baseMapper.selectUnitUsers(pageQuery.build(), sysDeptId, keyword, globalSearch); + return TableDataInfo.build(page); + } + /** * 是否存在子节点 */ diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EfcodeVirtualUnitMapper.xml b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EfcodeVirtualUnitMapper.xml index d96e93f9..60219c91 100644 --- a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EfcodeVirtualUnitMapper.xml +++ b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EfcodeVirtualUnitMapper.xml @@ -3,4 +3,39 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + diff --git a/zdxt-web-client/zdxt-admin-plus-ui/.env.development-zrb-cust b/zdxt-web-client/zdxt-admin-plus-ui/.env.development-zrb-cust new file mode 100644 index 00000000..9c5fc088 --- /dev/null +++ b/zdxt-web-client/zdxt-admin-plus-ui/.env.development-zrb-cust @@ -0,0 +1,37 @@ +VITE_APP_PROXY_TARGET = 'http://localhost:17000/sup-ep' +# 页面标题 +VITE_APP_TITLE = zdxt-Vue-Plus多租户管理系统 +VITE_APP_LOGO_TITLE = 行政执法监督码 + +# 开发环境配置 +VITE_APP_ENV = 'development' + +# 开发环境 +VITE_APP_BASE_API = '/dev-api' + +# 应用访问路径 例如使用前缀 /admin/ +VITE_APP_CONTEXT_PATH = '/' + +# 监控地址 +VITE_APP_MONITOR_ADMIN = 'http://localhost:9090/admin/applications' + +# SnailJob 控制台地址 +VITE_APP_SNAILJOB_ADMIN = 'http://localhost:8800/snail-job' + +VITE_APP_PORT = 12004 + +# 接口加密功能开关(如需关闭 后端也必须对应关闭) +VITE_APP_ENCRYPT = true +# 接口加密传输 RSA 公钥与后端解密私钥对应 如更换需前后端一同更换 +VITE_APP_RSA_PUBLIC_KEY = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==' +# 接口响应解密 RSA 私钥与后端加密公钥对应 如更换需前后端一同更换 +VITE_APP_RSA_PRIVATE_KEY = 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAmc3CuPiGL/LcIIm7zryCEIbl1SPzBkr75E2VMtxegyZ1lYRD+7TZGAPkvIsBcaMs6Nsy0L78n2qh+lIZMpLH8wIDAQABAkEAk82Mhz0tlv6IVCyIcw/s3f0E+WLmtPFyR9/WtV3Y5aaejUkU60JpX4m5xNR2VaqOLTZAYjW8Wy0aXr3zYIhhQQIhAMfqR9oFdYw1J9SsNc+CrhugAvKTi0+BF6VoL6psWhvbAiEAxPPNTmrkmrXwdm/pQQu3UOQmc2vCZ5tiKpW10CgJi8kCIFGkL6utxw93Ncj4exE/gPLvKcT+1Emnoox+O9kRXss5AiAMtYLJDaLEzPrAWcZeeSgSIzbL+ecokmFKSDDcRske6QIgSMkHedwND1olF8vlKsJUGK3BcdtM8w4Xq7BpSBwsloE=' + +# 客户端id +VITE_APP_CLIENT_ID = 'e5cd7e4891bf95d1d19206ce24a7b32e' + +# websocket 开关 默认使用sse推送 +VITE_APP_WEBSOCKET = false + +# sse 开关 +VITE_APP_SSE = true diff --git a/zdxt-web-client/zdxt-admin-plus-ui/package.json b/zdxt-web-client/zdxt-admin-plus-ui/package.json index f3673f71..2d28453c 100644 --- a/zdxt-web-client/zdxt-admin-plus-ui/package.json +++ b/zdxt-web-client/zdxt-admin-plus-ui/package.json @@ -8,6 +8,7 @@ "type": "module", "scripts": { "vite-server-web-supervision-dev": "vite serve --mode development", + "vite-server-web-supervision-dev-zrb": "vite serve --mode development-zrb-cust", "build-zdxt-admin-plus-ui:prod": "vite build --mode production --outDir dist/prod", "build-zdxt-admin-plus-ui:dev": "vite build --mode development --outDir dist/dev", "zdxt-admin-plus-ui-preview": "vite preview --outDir dist/prod", diff --git a/zdxt-web-client/zdxt-admin-plus-ui/src/api/efcode/virtualUnit/index.ts b/zdxt-web-client/zdxt-admin-plus-ui/src/api/efcode/virtualUnit/index.ts index 12a24bdd..d4206a6f 100644 --- a/zdxt-web-client/zdxt-admin-plus-ui/src/api/efcode/virtualUnit/index.ts +++ b/zdxt-web-client/zdxt-admin-plus-ui/src/api/efcode/virtualUnit/index.ts @@ -1,6 +1,6 @@ import request from '@/utils/request'; import { AxiosPromise } from 'axios'; -import { VirtualUnitVo, VirtualUnitForm } from './types'; +import { VirtualUnitVo, VirtualUnitForm, UnitUserVo } from './types'; /** * 查询虚拟单位树列表(树结构) @@ -53,3 +53,30 @@ export const delVirtualUnit = (virId: string) => { method: 'delete' }); }; + +/** + * 查询业务可见的虚拟单位树列表 + */ +export const getBusinessTreeList = (): AxiosPromise => { + return request({ + url: '/enforcementcode/virtualUnit/businessTreeList', + method: 'get' + }); +}; + +/** + * 查询虚拟单位关联人员列表(分页) + */ +export const getUnitUsers = (params: { + sysDeptId?: string; + keyword?: string; + globalSearch?: boolean; + pageNum?: number; + pageSize?: number; +}) => { + return request({ + url: '/enforcementcode/virtualUnit/users', + method: 'get', + params + }); +}; diff --git a/zdxt-web-client/zdxt-admin-plus-ui/src/api/efcode/virtualUnit/types.ts b/zdxt-web-client/zdxt-admin-plus-ui/src/api/efcode/virtualUnit/types.ts index 0a06c538..01807941 100644 --- a/zdxt-web-client/zdxt-admin-plus-ui/src/api/efcode/virtualUnit/types.ts +++ b/zdxt-web-client/zdxt-admin-plus-ui/src/api/efcode/virtualUnit/types.ts @@ -44,3 +44,17 @@ export interface VirtualUnitForm { orderNum?: number; custOrderNum?: number; } + +/** + * 虚拟单位人员VO(复用SysUserVo字段) + */ +export interface UnitUserVo { + userId: number; + fullname: string; + userName: string; + mobileNumber: string; + deptId: string; + zzDisplayPath: string; + isSubDeptUser: boolean; + [key: string]: any; +} diff --git a/zdxt-web-client/zdxt-admin-plus-ui/src/views/efcode/virtualUnit/unitUserManager.vue b/zdxt-web-client/zdxt-admin-plus-ui/src/views/efcode/virtualUnit/unitUserManager.vue new file mode 100644 index 00000000..98c85e65 --- /dev/null +++ b/zdxt-web-client/zdxt-admin-plus-ui/src/views/efcode/virtualUnit/unitUserManager.vue @@ -0,0 +1,383 @@ + + + + + diff --git a/zdxt-web-client/zdxt-admin-plus-ui/vite.config.ts b/zdxt-web-client/zdxt-admin-plus-ui/vite.config.ts index 4ecea62e..944e2caf 100644 --- a/zdxt-web-client/zdxt-admin-plus-ui/vite.config.ts +++ b/zdxt-web-client/zdxt-admin-plus-ui/vite.config.ts @@ -27,7 +27,7 @@ export default defineConfig(({ mode, command }) => { open: true, proxy: { [env.VITE_APP_BASE_API]: { - target: 'http://localhost:8080', + target: env.VITE_APP_PROXY_TARGET || 'http://localhost:8080', changeOrigin: true, ws: true, rewrite: (path) => path.replace(new RegExp('^' + env.VITE_APP_BASE_API), '')