| | |
| | | :show-close="false" |
| | | width="20%"> |
| | | <el-form :model="form" ref="form" label-width="80px"> |
| | | <el-form-item v-if="tenantMode" label="租户编号"> |
| | | <el-input v-model="form.tenantId" placeholder="请输入租户编号"></el-input> |
| | | <el-form-item v-if="tenantMode" label="保安单位编号"> |
| | | <el-input v-model="form.tenantId" placeholder="请输入保安单位编号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="用户姓名"> |
| | | <el-input v-model="form.name" placeholder="请输入用户姓名"></el-input> |
| | |
| | | methods: { |
| | | handleRegister() { |
| | | if (this.form.tenantId === '') { |
| | | this.$message.warning("请先输入租户编号"); |
| | | this.$message.warning("请先输入保安单位编号"); |
| | | return; |
| | | } |
| | | if (this.form.account === '') { |
| | |
| | | * 全局配置文件 |
| | | */ |
| | | export default { |
| | | title: "saber", |
| | | logo: "S", |
| | | key: 'saber',//配置主键,目前用于存储 |
| | | indexTitle: '保安服务企业管理', |
| | | clientId: 'saber', // 客户端id |
| | | clientSecret: 'saber_secret', // 客户端密钥 |
| | | tenantMode: true, // 是否开启租户模式 |
| | | tenantId: "000000", // 管理组租户编号 |
| | | captchaMode: false, // 是否开启验证码模式 |
| | | lockPage: '/lock', |
| | | tokenTime: 3000, |
| | | tokenHeader: 'Blade-Auth', |
| | | //http的status默认放行列表 |
| | | statusWhiteList: [], |
| | | //配置首页不可关闭 |
| | | isFirstPage: false, |
| | | fistPage: { |
| | | label: "首页", |
| | | value: "/wel/index", |
| | | params: {}, |
| | | query: {}, |
| | | meta: { |
| | | i18n: 'dashboard' |
| | | title: "saber", |
| | | logo: "S", |
| | | key: 'saber', //配置主键,目前用于存储 |
| | | indexTitle: '保安服务企业管理', |
| | | clientId: 'saber', // 客户端id |
| | | clientSecret: 'saber_secret', // 客户端密钥 |
| | | tenantMode: true, // 是否开启保安单位模式 |
| | | tenantId: "000000", // 管理组保安单位编号 |
| | | captchaMode: false, // 是否开启验证码模式 |
| | | lockPage: '/lock', |
| | | tokenTime: 3000, |
| | | tokenHeader: 'Blade-Auth', |
| | | //http的status默认放行列表 |
| | | statusWhiteList: [], |
| | | //配置首页不可关闭 |
| | | isFirstPage: false, |
| | | fistPage: { |
| | | label: "首页", |
| | | value: "/wel/index", |
| | | params: {}, |
| | | query: {}, |
| | | meta: { |
| | | i18n: 'dashboard' |
| | | }, |
| | | group: [], |
| | | close: false |
| | | }, |
| | | group: [], |
| | | close: false |
| | | }, |
| | | //配置菜单的属性 |
| | | menu: { |
| | | iconDefault: 'iconfont icon-caidan', |
| | | props: { |
| | | label: 'name', |
| | | path: 'path', |
| | | icon: 'source', |
| | | children: 'children' |
| | | } |
| | | }, |
| | | // 第三方系统授权地址 |
| | | authUrl: 'http://localhost/blade-auth/oauth/render', |
| | | // 流程设计器地址 |
| | | flowDesignUrl: 'http://localhost:9999', |
| | | // 报表设计器地址(cloud端口为8108,boot端口为80) |
| | | reportUrl: 'http://localhost:8108/ureport', |
| | | } |
| | | //配置菜单的属性 |
| | | menu: { |
| | | iconDefault: 'iconfont icon-caidan', |
| | | props: { |
| | | label: 'name', |
| | | path: 'path', |
| | | icon: 'source', |
| | | children: 'children' |
| | | } |
| | | }, |
| | | // 第三方系统授权地址 |
| | | authUrl: 'http://localhost/blade-auth/oauth/render', |
| | | // 流程设计器地址 |
| | | flowDesignUrl: 'http://localhost:9999', |
| | | // 报表设计器地址(cloud端口为8108,boot端口为80) |
| | | reportUrl: 'http://localhost:8108/ureport', |
| | | } |
| | |
| | | export default { |
| | | tip: '提示', |
| | | title: '保安服务企业管理', |
| | | logoutTip: '退出系统, 是否继续?', |
| | | submitText: '确定', |
| | | cancelText: '取消', |
| | | search: '请输入搜索内容', |
| | | menuTip: '没有发现菜单', |
| | | wel: { |
| | | info: '早安,Smallwei,Avuex一款超乎你想象的框架!', |
| | | dept: '我是avue团队下的一个部门-哈皮部门-哈皮职位', |
| | | team: '团队内排名', |
| | | project: '项目访问', |
| | | count: '项目数', |
| | | data: { |
| | | subtitle: '实时', |
| | | column1: '分类统计', |
| | | column2: '附件统计', |
| | | column3: '文章统计', |
| | | key1: '分', |
| | | key2: '附', |
| | | key3: '评', |
| | | text1: '当前分类总记录数', |
| | | text2: '当前上传的附件数', |
| | | text3: '评论次数' |
| | | tip: '提示', |
| | | title: '保安服务企业管理', |
| | | logoutTip: '退出系统, 是否继续?', |
| | | submitText: '确定', |
| | | cancelText: '取消', |
| | | search: '请输入搜索内容', |
| | | menuTip: '没有发现菜单', |
| | | wel: { |
| | | info: '早安,Smallwei,Avuex一款超乎你想象的框架!', |
| | | dept: '我是avue团队下的一个部门-哈皮部门-哈皮职位', |
| | | team: '团队内排名', |
| | | project: '项目访问', |
| | | count: '项目数', |
| | | data: { |
| | | subtitle: '实时', |
| | | column1: '分类统计', |
| | | column2: '附件统计', |
| | | column3: '文章统计', |
| | | key1: '分', |
| | | key2: '附', |
| | | key3: '评', |
| | | text1: '当前分类总记录数', |
| | | text2: '当前上传的附件数', |
| | | text3: '评论次数' |
| | | }, |
| | | data2: { |
| | | column1: '今日注册', |
| | | column2: '今日登录', |
| | | column3: '今日订阅', |
| | | column4: '今日评论' |
| | | }, |
| | | data3: { |
| | | column1: '转化率(日同比 28%)', |
| | | column2: '签到率(日同比 11%)', |
| | | column3: '签到率(日同比 11%)' |
| | | }, |
| | | data4: { |
| | | column1: '错误日志', |
| | | column2: '数据展示', |
| | | column3: '权限管理', |
| | | column4: '用户管理' |
| | | }, |
| | | table: { |
| | | rw: '工作任务', |
| | | nr: '工作内容', |
| | | sj: '工作时间' |
| | | } |
| | | }, |
| | | data2: { |
| | | column1: '今日注册', |
| | | column2: '今日登录', |
| | | column3: '今日订阅', |
| | | column4: '今日评论' |
| | | route: { |
| | | info: '个人信息', |
| | | website: 'bladex官网', |
| | | avuexwebsite: 'avuex官网', |
| | | dashboard: '首页', |
| | | more: '更多', |
| | | tags: '标签', |
| | | store: '本地存储', |
| | | api: '全局函数', |
| | | logs: '日志监控', |
| | | table: '表格', |
| | | form: '表单', |
| | | top: '返回顶部', |
| | | data: '数据展示', |
| | | permission: '权限', |
| | | error: '异常页面', |
| | | test: '测试页面' |
| | | }, |
| | | data3: { |
| | | column1: '转化率(日同比 28%)', |
| | | column2: '签到率(日同比 11%)', |
| | | column3: '签到率(日同比 11%)' |
| | | login: { |
| | | title: '登录 ', |
| | | info: '保安服务企业管理', |
| | | tenantId: '请输入保安单位ID', |
| | | username: '请输入账号', |
| | | password: '请输入密码', |
| | | wechat: '微信', |
| | | qq: 'QQ', |
| | | github: 'github', |
| | | gitee: '码云', |
| | | phone: '请输入手机号', |
| | | code: '请输入验证码', |
| | | submit: '登录', |
| | | userLogin: '账号密码登录', |
| | | phoneLogin: '手机号登录', |
| | | thirdLogin: '第三方系统登录', |
| | | msgText: '发送验证码', |
| | | msgSuccess: '秒后重发', |
| | | }, |
| | | data4: { |
| | | column1: '错误日志', |
| | | column2: '数据展示', |
| | | column3: '权限管理', |
| | | column4: '用户管理' |
| | | navbar: { |
| | | logOut: '退出登录', |
| | | userinfo: '个人信息', |
| | | dashboard: '首页', |
| | | lock: '锁屏', |
| | | bug: '没有错误日志', |
| | | bugs: '条错误日志', |
| | | screenfullF: '退出全屏', |
| | | screenfull: '全屏', |
| | | language: '中英文', |
| | | notice: '消息通知', |
| | | theme: '主题', |
| | | color: '换色' |
| | | }, |
| | | table: { |
| | | rw: '工作任务', |
| | | nr: '工作内容', |
| | | sj: '工作时间' |
| | | tagsView: { |
| | | search: '搜索', |
| | | menu: '更多', |
| | | clearCache: '清除缓存', |
| | | closeOthers: '关闭其它', |
| | | closeAll: '关闭所有' |
| | | } |
| | | }, |
| | | route: { |
| | | info: '个人信息', |
| | | website: 'bladex官网', |
| | | avuexwebsite: 'avuex官网', |
| | | dashboard: '首页', |
| | | more: '更多', |
| | | tags: '标签', |
| | | store: '本地存储', |
| | | api: '全局函数', |
| | | logs: '日志监控', |
| | | table: '表格', |
| | | form: '表单', |
| | | top: '返回顶部', |
| | | data: '数据展示', |
| | | permission: '权限', |
| | | error: '异常页面', |
| | | test: '测试页面' |
| | | }, |
| | | login: { |
| | | title: '登录 ', |
| | | info: '保安服务企业管理', |
| | | tenantId: '请输入租户ID', |
| | | username: '请输入账号', |
| | | password: '请输入密码', |
| | | wechat: '微信', |
| | | qq: 'QQ', |
| | | github: 'github', |
| | | gitee: '码云', |
| | | phone: '请输入手机号', |
| | | code: '请输入验证码', |
| | | submit: '登录', |
| | | userLogin: '账号密码登录', |
| | | phoneLogin: '手机号登录', |
| | | thirdLogin: '第三方系统登录', |
| | | msgText: '发送验证码', |
| | | msgSuccess: '秒后重发', |
| | | }, |
| | | navbar: { |
| | | logOut: '退出登录', |
| | | userinfo: '个人信息', |
| | | dashboard: '首页', |
| | | lock: '锁屏', |
| | | bug: '没有错误日志', |
| | | bugs: '条错误日志', |
| | | screenfullF: '退出全屏', |
| | | screenfull: '全屏', |
| | | language: '中英文', |
| | | notice: '消息通知', |
| | | theme: '主题', |
| | | color: '换色' |
| | | }, |
| | | tagsView: { |
| | | search: '搜索', |
| | | menu: '更多', |
| | | clearCache: '清除缓存', |
| | | closeOthers: '关闭其它', |
| | | closeAll: '关闭所有' |
| | | } |
| | | } |
| | | } |
| | |
| | | return { |
| | | tenantMode: this.website.tenantMode, |
| | | loginForm: { |
| | | //租户ID |
| | | //保安单位ID |
| | | tenantId: "000000", |
| | | //用户名 |
| | | username: "admin", |
| | |
| | | }, |
| | | loginRules: { |
| | | tenantId: [ |
| | | {required: false, message: "请输入租户ID", trigger: "blur"} |
| | | {required: false, message: "请输入保安单位ID", trigger: "blur"} |
| | | ], |
| | | username: [ |
| | | {required: true, message: "请输入用户名", trigger: "blur"} |
| | |
| | | ] |
| | | }, |
| | | { |
| | | label: "所属租户", |
| | | label: "所属保安单位", |
| | | prop: "tenantId", |
| | | type: "tree", |
| | | dicUrl: "/api/blade-system/tenant/select", |
| | |
| | | search: website.tenantMode, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入所属租户", |
| | | message: "请输入所属保安单位", |
| | | trigger: "click" |
| | | }] |
| | | }, |
| | |
| | | ], |
| | | }, |
| | | { |
| | | label: "所属租户", |
| | | label: "所属保安单位", |
| | | prop: "tenantId", |
| | | type: "tree", |
| | | multiple: true, |
| | |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: '请选择所属租户', |
| | | message: '请选择所属保安单位', |
| | | trigger: 'blur' |
| | | } |
| | | ], |
| | |
| | | return false; |
| | | } |
| | | if (this.form.flowMode === 2 && !this.form.tenantId) { |
| | | this.$message.warning('清先选择对应租户'); |
| | | this.$message.warning('清先选择对应保安单位'); |
| | | loading(); |
| | | return false; |
| | | } |
| | |
| | | dialogClickModal: false, |
| | | column: [ |
| | | { |
| | | label: '租户编号', |
| | | label: '保安单位编号', |
| | | prop: 'tenantId', |
| | | slot: true, |
| | | width: 120, |
| | |
| | | ], |
| | | }, |
| | | { |
| | | label: "所属租户", |
| | | label: "所属保安单位", |
| | | prop: "tenantId", |
| | | type: "tree", |
| | | multiple: true, |
| | |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: '请选择所属租户', |
| | | message: '请选择所属保安单位', |
| | | trigger: 'blur' |
| | | } |
| | | ], |
| | |
| | | }] |
| | | }, |
| | | { |
| | | label: "所属租户", |
| | | label: "所属保安单位", |
| | | prop: "tenantId", |
| | | type: "tree", |
| | | dicUrl: "/api/blade-system/tenant/select", |
| | |
| | | search: website.tenantMode, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入所属租户", |
| | | message: "请输入所属保安单位", |
| | | trigger: "click" |
| | | }] |
| | | }, |
| | |
| | | dialogClickModal: false, |
| | | column: [ |
| | | { |
| | | label: "所属租户", |
| | | label: "所属保安单位", |
| | | prop: "tenantId", |
| | | type: "tree", |
| | | dicUrl: "/api/blade-system/tenant/select", |
| | |
| | | hide: !website.tenantMode, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入所属租户", |
| | | message: "请输入所属保安单位", |
| | | trigger: "click" |
| | | }] |
| | | }, |
| | |
| | | <el-tag>{{ row.expireTime ? row.expireTime : '不限制' }}</el-tag> |
| | | </template> |
| | | </avue-crud> |
| | | <el-dialog title="租户授权配置" |
| | | <el-dialog title="保安单位授权配置" |
| | | append-to-body |
| | | :visible.sync="box" |
| | | width="450px"> |
| | | <avue-form :option="settingOption" v-model="settingForm" @submit="handleSubmit"/> |
| | | </el-dialog> |
| | | <el-dialog title="租户数据源配置" |
| | | <el-dialog title="保安单位数据源配置" |
| | | append-to-body |
| | | :visible.sync="datasourceBox" |
| | | width="450px"> |
| | |
| | | dialogClickModal: false, |
| | | column: [ |
| | | { |
| | | label: "租户ID", |
| | | label: "保安单位ID", |
| | | prop: "tenantId", |
| | | width: 100, |
| | | search: true, |
| | |
| | | span: 24, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入租户ID", |
| | | message: "请输入保安单位ID", |
| | | trigger: "blur" |
| | | }] |
| | | }, |
| | | { |
| | | label: "租户名称", |
| | | label: "保安单位名称", |
| | | prop: "tenantName", |
| | | search: true, |
| | | width: 180, |
| | |
| | | display: false |
| | | }, |
| | | { |
| | | label: "所属租户", |
| | | label: "所属保安单位", |
| | | prop: "tenantName", |
| | | slot: true, |
| | | display: false |
| | |
| | | icon: 'el-icon-user-solid', |
| | | column: [ |
| | | { |
| | | label: "所属租户", |
| | | label: "所属保安单位", |
| | | prop: "tenantId", |
| | | type: "tree", |
| | | dicUrl: "/api/blade-system/tenant/select", |
| | |
| | | viewDisplay: website.tenantMode, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入所属租户", |
| | | message: "请输入所属保安单位", |
| | | trigger: "click" |
| | | }], |
| | | span: 24, |
| | |
| | | display: false |
| | | }, |
| | | { |
| | | label: "所属租户", |
| | | label: "所属保安单位", |
| | | prop: "tenantName", |
| | | slot: true, |
| | | display: false |
| | |
| | | }, |
| | | }, |
| | | mounted() { |
| | | // 非租户模式默认加载管理组数据 |
| | | // 非保安单位模式默认加载管理组数据 |
| | | if (!website.tenantMode) { |
| | | this.initData(website.tenantId); |
| | | } |
| | |
| | | <el-collapse-item title="为何需要BladeX" name="3"> |
| | | <div>1.经历过较长的线上生产,积累了很多企业痛点的解决方案</div> |
| | | <div>2.一套代码兼容MySql、Oracle、PostgreSQL、SqlServer,适应企业各种不同场景的需求</div> |
| | | <div>3.集成了很多企业急切所需的例如多租户、Oauth2授权认证、工作流、分布式事务等等功能</div> |
| | | <div>3.集成了很多企业急切所需的例如多保安单位、Oauth2授权认证、工作流、分布式事务等等功能</div> |
| | | <div>4.深度定制了Flowable工作流,完美支持SpringCloud分布式服务的场景,以远程调用的方式进行操作</div> |
| | | <div>5.升级了核心驱动,新功能完全可以开箱即用,而开源版需要自己再花时间进行集成,需要花掉更多的时间成本</div> |
| | | <div>6.拥抱微服务时代,很多企业由于项目转型或升级,传统的技术已然不能满足,反而会花更多成本,而BladeX就是为此而生</div> |
| | |
| | | <div>6.Nacos-集成阿里巴巴的Nacos完成统一的服务注册与配置</div> |
| | | <div>7.Sentinel-集成Sentinel从流量控制、熔断降级、系统负载等多个维度保护服务的稳定性</div> |
| | | <div>8.Dubbo-完美集成Dubbo最新版,支持远程RPC调用</div> |
| | | <div>9.多租户系统-完整的SaaS多租户架构</div> |
| | | <div>9.多保安单位系统-完整的SaaS多保安单位架构</div> |
| | | <div>10.Oauth2-集成Oauth2协议,完美支持多终端的接入与认证授权</div> |
| | | <div>11.工作流-深度定制SpringCloud分布式场景的Flowable工作流,为复杂流程保驾护航。同时提供SpringBoot集成版本</div> |
| | | <div>12.独立流程设计器-提供独立的完全汉化的流程设计器,轻松定制流程模型</div> |
| | | <div>13.动态网关-集成基于Nacos的轻量级、高拓展性动态网关</div> |
| | | <div>14.动态聚合文档-实现基于Nacos的Swagger SpringCloud聚合文档</div> |
| | | <div>15.分布式文件服务-集成minio、qiniu、alioss等优秀的第三方,提供便捷的文件上传与管理</div> |
| | | <div>16.多租户对象存储系统-在SaaS系统中,各租户可自行配置文件上传至自己的私有OSS</div> |
| | | <div>16.多保安单位对象存储系统-在SaaS系统中,各保安单位可自行配置文件上传至自己的私有OSS</div> |
| | | <div>17.权限管理-精心设计的权限管理方案,角色权限精确到按钮</div> |
| | | <div>18.动态数据权限-高度灵活的动态数据权限,提供注解+Web可视化两种配置方式,Web配置无需重启直接生效</div> |
| | | <div>19.动态接口权限-高度灵活的动态接口权限,提供注解+Web可视化两种配置方式,Web配置无需重启直接生效</div> |
| | | <div>20.多租户顶部菜单配置-提供给每个租户独立的顶部菜单配置模块,可以自定义顶部菜单切换</div> |
| | | <div>20.多保安单位顶部菜单配置-提供给每个保安单位独立的顶部菜单配置模块,可以自定义顶部菜单切换</div> |
| | | <div>21.主流数据库兼容-一套代码完全兼容Mysql、Postgresql、Oracle三大主流数据库</div> |
| | | <div>22.动态网关鉴权-基于Nacos的动态网关鉴权,可在线配置,实时生效</div> |
| | | <div>23.全能代码生成器-支持自定义模型、模版 、业务建模,支持多种模板引擎,在线配置。大幅度提升开发效率,不再为重复工作发愁</div> |
| | |
| | | <div>8.[重构]Sql日志打印采用druid底层实现展示完整带参SQL</div> |
| | | <div>9.[新增]LocalFile的domain字段</div> |
| | | <div>10.[新增]Sign模式鉴权timestamp在10秒内的合法时间段判断</div> |
| | | <div>11.[新增]开启租户插件后使用@TenantIgnore注解精准关闭租户过滤逻辑</div> |
| | | <div>11.[新增]开启保安单位插件后使用@TenantIgnore注解精准关闭保安单位过滤逻辑</div> |
| | | <div>12.[新增]Swagger公共信息配置</div> |
| | | <div>13.[新增]Saber矢量图标离线化</div> |
| | | <div>14.[新增]菜单管理isOpen字段控制左侧菜单是否可以使用新tab打开外链</div> |
| | |
| | | <div>17.[优化]Token过期时间处理</div> |
| | | <div>18.[优化]Redis加载逻辑</div> |
| | | <div>19.[优化]用户登录逻辑</div> |
| | | <div>20.[优化]多租户角色创建逻辑</div> |
| | | <div>20.[优化]多保安单位角色创建逻辑</div> |
| | | <div>21.[优化]Dockerfile加速字体构建</div> |
| | | <div>22.[优化]Nacos Shared Config配置API改为最新版</div> |
| | | <div>23.[优化]Saber授权类型字段改为checkbox</div> |
| | |
| | | <div>15.[重构]blade-admin,钉钉监控通知实现</div> |
| | | <div>16.[优化]blade-admin,增加账号密码登录</div> |
| | | <div>17.[优化]RefreshToken刷新逻辑</div> |
| | | <div>18.[优化]租户新增逻辑,业务字典支持无限层级复制</div> |
| | | <div>18.[优化]保安单位新增逻辑,业务字典支持无限层级复制</div> |
| | | <div>19.[优化]Ribbon组件,支持Feign调用配置</div> |
| | | <div>20.[修复]流程名搜索失效的问题</div> |
| | | <div>21.[修复]附件管理租户隔离问题</div> |
| | | <div>21.[修复]附件管理保安单位隔离问题</div> |
| | | <div>22.[修复]数据权限分配模块的sqlserver兼容性</div> |
| | | <div>23.[修复]系统字典缓存刷新逻辑</div> |
| | | <div>24.[修复]Swagger文档出现Locale参数的问题</div> |
| | |
| | | <div>13.[升级]Avue 至 2.7.0</div> |
| | | <div>14.[优化]Swagger封装以支持Knife4j最新API</div> |
| | | <div>15.[优化]引入Knife4j增强配置,生产环境将完全隔离文档访问</div> |
| | | <div>16.[修复]未引入租户插件后,自定义类空指针的问题</div> |
| | | <div>16.[修复]未引入保安单位插件后,自定义类空指针的问题</div> |
| | | <div>17.[删除]Zipkin模块,推荐使用官方独立模式运行服务</div> |
| | | </el-collapse-item> |
| | | <el-collapse-item title="2.6.1.RELEASE发布,增加全局上下文系统,增加用户平台拓展模块" name="18"> |
| | |
| | | <div>19.[修复]elk配置无法读取项目名的问题</div> |
| | | <div>20.[修复]区划字段level为regionLevel以防oracle报错</div> |
| | | </el-collapse-item> |
| | | <el-collapse-item title="2.6.0.RELEASE发布,租户数据库隔离、报表管理、SqlServer兼容" name="17"> |
| | | <el-collapse-item title="2.6.0.RELEASE发布,保安单位数据库隔离、报表管理、SqlServer兼容" name="17"> |
| | | <div>1.[升级]Avue 至 2.6.15</div> |
| | | <div>2.[升级]SpringBoot 至 2.1.16.RELEASE</div> |
| | | <div>3.[升级]Seata 至 1.3.0</div> |
| | |
| | | <div>6.[升级]Knife4j 至 2.0.4</div> |
| | | <div>7.[升级]EasyExcel 至 2.2.6</div> |
| | | <div>8.[升级]JustAuth 至 1.15.6</div> |
| | | <div>9.[新增]多租户数据库隔离、动态数据源特性</div> |
| | | <div>9.[新增]多保安单位数据库隔离、动态数据源特性</div> |
| | | <div>10.[新增]SqlServer兼容</div> |
| | | <div>11.[新增]UReport2报表管理模块</div> |
| | | <div>12.[新增]对象存储附件表功能</div> |
| | |
| | | <div>13.[新增]Token配置,支持有状态模式,支持一人在线或多人在线</div> |
| | | <div>14.[新增]Secure配置,支持配置请求方法类型、请求路径、请求表达式匹配</div> |
| | | <div>15.[新增]Jackson配置,支持大数字转字符串模式,支持null转空值模式</div> |
| | | <div>16.[新增]租户账号授权码保护机制,防止私有部署客户篡改数据库越权</div> |
| | | <div>16.[新增]保安单位账号授权码保护机制,防止私有部署客户篡改数据库越权</div> |
| | | <div>17.[优化]字典模块,增加树形结构</div> |
| | | <div>18.[优化]新增租户逻辑,新增时同步超管配置的默认业务字典数据</div> |
| | | <div>19.[优化]用户导入逻辑,只有超管才可以定义租户编号</div> |
| | | <div>18.[优化]新增保安单位逻辑,新增时同步超管配置的默认业务字典数据</div> |
| | | <div>19.[优化]用户导入逻辑,只有超管才可以定义保安单位编号</div> |
| | | <div>20.[优化]部门列表逻辑,非超管角色只可看到本级及以下部门数据</div> |
| | | <div>21.[优化]字典模块,增加枚举类,统一入口</div> |
| | | <div>22.[优化]DictCache缓存加载逻辑</div> |
| | | <div>23.[优化]租户缓存刷新逻辑</div> |
| | | <div>23.[优化]保安单位缓存刷新逻辑</div> |
| | | <div>24.[优化]角色配置逻辑,同步取消子角色对应的菜单权限</div> |
| | | <div>25.[优化]顶部菜单,增加排序功能</div> |
| | | <div>26.[优化]INode,支持泛型</div> |
| | |
| | | <div>15.[新增]Mybatis-Plus配置,支持配置最大分页数</div> |
| | | <div>16.[新增]Gateway在多团队协作模式灵活指向本地服务的配置</div> |
| | | <div>17.[新增]Sms模块的sendMessage接口及SmsResponse响应类</div> |
| | | <div>18.[新增]CacheUtil租户缓存隔离功能</div> |
| | | <div>18.[新增]CacheUtil保安单位缓存隔离功能</div> |
| | | <div>19.[优化]CacheUtil缓存重载逻辑,返回bean不为null但数据全为空将不入缓存</div> |
| | | <div>20.[优化]缓存清除逻辑,@CacheEvict统一修改为CacheUtil.clear</div> |
| | | <div>21.[优化]登录逻辑,前端对密码加密后再传递至鉴权接口</div> |
| | |
| | | <div>29.[优化]Token返回,增加岗位ID</div> |
| | | <div>30.[优化]TokenGranter,采用更简洁的拓展方式</div> |
| | | <div>31.[优化]日志管理展现方式</div> |
| | | <div>32.[优化]新建租户逻辑,增加参数读取来设置新建租户的配置</div> |
| | | <div>32.[优化]新建保安单位逻辑,增加参数读取来设置新建保安单位的配置</div> |
| | | <div>33.[优化]流程签收接口,支持多角色操作</div> |
| | | <div>34.[优化]动态网关,支持读取自定义namespace配置</div> |
| | | <div>35.[优化]删除租户逻辑,同时删除对应的用户</div> |
| | | <div>35.[优化]删除保安单位逻辑,同时删除对应的用户</div> |
| | | <div>36.[优化]树形懒加载,支持局部实时刷新功能</div> |
| | | <div>37.[优化]多租户插件新增修改逻辑,若指定tenantId为空则不进行操作</div> |
| | | <div>37.[优化]多保安单位插件新增修改逻辑,若指定tenantId为空则不进行操作</div> |
| | | <div>38.[优化]SmsBuilder、OssBuilder</div> |
| | | <div>39.[优化]Sentinel配置</div> |
| | | <div>40.[优化]XssFilter为全局的BladeRequestFilte</div> |
| | |
| | | <div>49.[删除]过时的XssUrlProperties</div> |
| | | <div>50.[删除]过时的RedisUtil</div> |
| | | </el-collapse-item> |
| | | <el-collapse-item title="2.4.0.RELEASE发布,增加多租户短信服务,升级Seata1.1" name="14"> |
| | | <div>1.[新增]集成七牛、阿里云、腾讯云、云片等短信服务,支持多租户配置</div> |
| | | <el-collapse-item title="2.4.0.RELEASE发布,增加多保安单位短信服务,升级Seata1.1" name="14"> |
| | | <div>1.[新增]集成七牛、阿里云、腾讯云、云片等短信服务,支持多保安单位配置</div> |
| | | <div>2.[新增]对象存储模块的资源编号字段,可根据编号指定oss配置的服务</div> |
| | | <div>3.[新增]对象存储、短信配置模块的调试功能,可在线调试配置是否可用</div> |
| | | <div>4.[新增]超管启用租户过滤的配置</div> |
| | | <div>4.[新增]超管启用保安单位过滤的配置</div> |
| | | <div>5.[升级]SpringBoot 2.1.12,SpringCloud SR5</div> |
| | | <div>6.[升级]兼容 Seata 1.1</div> |
| | | <div>7.[优化]对象存储的模块使用体验</div> |
| | | <div>8.[优化]兼容Oracle模糊查询的写法</div> |
| | | <div>9.[优化]超管权限,不受租户过期时间影响</div> |
| | | <div>9.[优化]超管权限,不受保安单位过期时间影响</div> |
| | | <div>10.[优化]mybatis-plus相关过期注解</div> |
| | | <div>11.[优化]xxl-job模块的配置文件</div> |
| | | <div>12.[优化]INode支持序列化接口</div> |
| | | <div>13.[优化]统一Oss模块命名</div> |
| | | <div>14.[优化]部署脚本,升级相关版本</div> |
| | | <div>15.[修复]数据权限部门过滤已删除对象</div> |
| | | <div>16.[修复]业务字典缓存bug,增加租户过滤</div> |
| | | <div>16.[修复]业务字典缓存bug,增加保安单位过滤</div> |
| | | <div>17.[修复]占位符解析器的bug</div> |
| | | </el-collapse-item> |
| | | <el-collapse-item title="2.3.1.RELEASE发布,流程增加租户定制,登录增加验证码" name="13"> |
| | | <el-collapse-item title="2.3.1.RELEASE发布,流程增加保安单位定制,登录增加验证码" name="13"> |
| | | <div>1.[新增]登录验证码功能</div> |
| | | <div>2.[新增]Oauth2自定义TokenGranter</div> |
| | | <div>3.[新增]工作流绑定租户功能,支持通用流程和定制流程</div> |
| | | <div>3.[新增]工作流绑定保安单位功能,支持通用流程和定制流程</div> |
| | | <div>4.[新增]Condition类的自定义参数排除入口</div> |
| | | <div>5.[增强]租户插件功能,新增操作可根据自定义的tenantId值进行覆盖</div> |
| | | <div>5.[增强]保安单位插件功能,新增操作可根据自定义的tenantId值进行覆盖</div> |
| | | <div>6.[增强]超管权限,不受数据权限插件影响</div> |
| | | <div>7.[升级]mybatis-plus至3.3.1</div> |
| | | <div>8.[优化]mybatis-plus封装,提升分页可拓展性</div> |
| | |
| | | <div>14.[修复]BeanUtil的class类型判断逻辑</div> |
| | | <div>15.[删除]基于zookeeper体验不佳的分布式锁</div> |
| | | </el-collapse-item> |
| | | <el-collapse-item title="2.3.0.RELEASE发布,租户增强,底层架构插件全面增强" name="12"> |
| | | <el-collapse-item title="2.3.0.RELEASE发布,保安单位增强,底层架构插件全面增强" name="12"> |
| | | <div>1.[新增]swagger-bootstrap-ui全新升级为knife4j</div> |
| | | <div>2.[新增]saber升级至avue2.3.7版本</div> |
| | | <div>3.[新增]saber树表懒加载模式</div> |
| | |
| | | <div>8.[新增]高性能http调用模块</div> |
| | | <div>9.[新增]PropertySource注册逻辑,提高安全性</div> |
| | | <div>10.[新增]Param参数缓存工具类</div> |
| | | <div>11.[新增]租户操作,增加创建对应的租户管理员账号、菜单权限</div> |
| | | <div>12.[新增]租户插件,超管可查看所有租户数据的逻辑</div> |
| | | <div>13.[新增]租户功能,绑定域名、系统背景、账号额度、过期时间</div> |
| | | <div>14.[新增]登录、创建用户操作绑定租户配置</div> |
| | | <div>15.[优化]租户插件判断逻辑,增加flowable相关表的租户过滤排除</div> |
| | | <div>11.[新增]保安单位操作,增加创建对应的保安单位管理员账号、菜单权限</div> |
| | | <div>12.[新增]保安单位插件,超管可查看所有保安单位数据的逻辑</div> |
| | | <div>13.[新增]保安单位功能,绑定域名、系统背景、账号额度、过期时间</div> |
| | | <div>14.[新增]登录、创建用户操作绑定保安单位配置</div> |
| | | <div>15.[优化]保安单位插件判断逻辑,增加flowable相关表的保安单位过滤排除</div> |
| | | <div>16.[优化]xss过滤逻辑,提高性能</div> |
| | | <div>17.[优化]本地文件上传逻辑</div> |
| | | <div>18.[优化]oss配置,修改后及时生效无需点击启用</div> |
| | | <div>19.[优化]请求日志展示功能</div> |
| | | <div>20.[修复]前端关闭租户模式导致的新增用户失效问题</div> |
| | | <div>20.[修复]前端关闭保安单位模式导致的新增用户失效问题</div> |
| | | <div>21.[修复]OSS相关bucket命名的问题</div> |
| | | <div>22.[修复]ribbon组件由降级引起的问题</div> |
| | | </el-collapse-item> |
| | | <el-collapse-item title="2.2.2.RELEASE发布,增强字典管理,用户管理增加左树右表" name="11"> |
| | | <div>1.[优化]拆分出系统字典表与业务字典表,字典键值改为string类型</div> |
| | | <div>2.[优化]用户管理增加左树右表功能</div> |
| | | <div>3.[优化]租户新增增加租户默认类型</div> |
| | | <div>4.[优化]多租户表对应实体继承TenantEntity</div> |
| | | <div>3.[优化]保安单位新增增加保安单位默认类型</div> |
| | | <div>4.[优化]多保安单位表对应实体继承TenantEntity</div> |
| | | <div>5.[优化]用于本地上传的BladeFile类更名为LocalFile防止冲突</div> |
| | | <div>6.[优化]菜单新增逻辑</div> |
| | | <div>7.[优化]mybatis-plus默认配置的处理</div> |
| | | <div>8.[优化]租户过滤判断逻辑,删除多余的类</div> |
| | | <div>8.[优化]保安单位过滤判断逻辑,删除多余的类</div> |
| | | <div>9.[优化]alioss生成地址的逻辑</div> |
| | | <div>10.[优化]redisTemplate加载逻辑</div> |
| | | <div>11.[优化]租户处理,简化配置,自动识别需要过滤的租户表</div> |
| | | <div>11.[优化]保安单位处理,简化配置,自动识别需要过滤的保安单位表</div> |
| | | <div>12.[优化]数据权限表单用户体验</div> |
| | | <div>13.[修复]数据权限插件不兼容的问题</div> |
| | | <div>14.[修复]数据权限树勾选显示问题</div> |
| | | <div>15.[修复]windows平台elk开关失效的问题</div> |
| | | <div>16.[修复]租户bean加载逻辑</div> |
| | | <div>16.[修复]保安单位bean加载逻辑</div> |
| | | <div>17.[修复]saber代码生成驼峰路径导致的问题</div> |
| | | <div>18.[修复]docker脚本nginx端口匹配问题</div> |
| | | <div>19.[修复]机构模块提交未删除缓存的问题</div> |
| | | <div>20.[修复]oss缓存获取未加租户判断的问题</div> |
| | | <div>20.[修复]oss缓存获取未加保安单位判断的问题</div> |
| | | <div>21.[修复]blade-auth在java11下无法运行的问题</div> |
| | | </el-collapse-item> |
| | | <el-collapse-item title="2.2.1.RELEASE发布,集成ELK,增加分布式日志追踪" name="10"> |
| | |
| | | <div>2.[升级]flowable 6.4.2</div> |
| | | <div>3.[新增]超管默认拥有所有菜单权限</div> |
| | | <div>4.[修复]权限配置数据长度过大的bug</div> |
| | | <div>5.[新增]增加租户信息获取</div> |
| | | <div>5.[新增]增加保安单位信息获取</div> |
| | | <div>6.[优化]命令行启动顺序</div> |
| | | <div>7.[升级]alibaba cloud毕业版本</div> |
| | | <div>8.[新增]日志监听增加自定义配置</div> |
| | |
| | | </el-collapse-item> |
| | | <el-collapse-item title="2.0.5.RELEASE发布,升级分布式接口权限系统" name="5"> |
| | | <div>1.[升级]为分布式接口权限系统</div> |
| | | <div>2.[新增]增加多租户自定义顶部菜单功能</div> |
| | | <div>2.[新增]增加多保安单位自定义顶部菜单功能</div> |
| | | <div>3.[升级]greenwich SR2,mybatis-plus 3.1.2</div> |
| | | <div>4.[新增]swagger排序规则采用最新注解</div> |
| | | <div>5.[新增]数据权限增加可见字段配置</div> |
| | | <div>6.[新增]数据权限增加分布式服务支持</div> |
| | | <div>7.[新增]增加远程调用分页的例子,解决mybatis-plus传递IPage反序化出现的bug</div> |
| | | <div>8.[优化]租户接口权限规则</div> |
| | | <div>8.[优化]保安单位接口权限规则</div> |
| | | <div>9.[新增]SqlKeyword增加条件判断</div> |
| | | <div>10.[修复]部分模块包名分层的问题</div> |
| | | </el-collapse-item> |
| | |
| | | <div>10.[修复]代码生成sql缺失主键的问</div> |
| | | <div>11.[新增]boot版本重构登录逻辑,增强可拓展性</div> |
| | | </el-collapse-item> |
| | | <el-collapse-item title="2.0.3.RELEASE发布,优化多租户oss系统,优化业务架构" name="3"> |
| | | <el-collapse-item title="2.0.3.RELEASE发布,优化多保安单位oss系统,优化业务架构" name="3"> |
| | | <div>1.[新增]gateway增加动态文档配置,可通过配置nacos动态刷新</div> |
| | | <div>2.[优化]修正blade_menu代码生成模块删除api的地址</div> |
| | | <div>3.[优化]mysql依赖</div> |
| | | <div>4.[新增]LauncherService增加排序功能</div> |
| | | <div>5.[优化]hystrixfeign加载</div> |
| | | <div>6.[优化]多租户oss系统逻辑,使之更加易用</div> |
| | | <div>6.[优化]多保安单位oss系统逻辑,使之更加易用</div> |
| | | <div>7.tenant_code字段统一为tenant_id</div> |
| | | </el-collapse-item> |
| | | <el-collapse-item title="2.0.2.RELEASE发布,增加多租户oss管理系统" name="2"> |
| | | <el-collapse-item title="2.0.2.RELEASE发布,增加多保安单位oss管理系统" name="2"> |
| | | <div>1.[新增]增加minio封装</div> |
| | | <div>2.[新增]增加qiniu封装</div> |
| | | <div>3.[新增]增加oss统一接口</div> |
| | | <div>4.[新增]集成minio、qiniu,进行统一管理的多租户oss系统</div> |
| | | <div>4.[新增]集成minio、qiniu,进行统一管理的多保安单位oss系统</div> |
| | | <div>5.[优化]blade-core-cloud逻辑</div> |
| | | <div>6.[新增]badex-biz增加不同包名的swagger、mybatis配置demo</div> |
| | | <div>7.[新增]badex-biz增加nacos自定义注册文件demo</div> |
| | |
| | | <el-collapse-item title="2.0.1.RELEASE发布,系统优化版本" name="1"> |
| | | <div>1.[新增]兼容jdk11</div> |
| | | <div>2.[新增]支持refresh_token功能</div> |
| | | <div>3.[新增]增加minio封装,支持多租户模式的oss对象存储</div> |
| | | <div>3.[新增]增加minio封装,支持多保安单位模式的oss对象存储</div> |
| | | <div>4.[新增]集成dubbo最新版本,支持rpc远程调用</div> |
| | | <div>5.[新增]定制基于nacos的gateway动态网关</div> |
| | | <div>6.[优化]聚合网关配置,使之更加轻巧</div> |
| | |
| | | <div>5.[新增]Condition类的sql条件构造器</div> |
| | | <div>6.[修复]工作流分页bug</div> |
| | | <div>7.[优化]docker配置</div> |
| | | <div>8.[优化]多租户逻辑</div> |
| | | <div>8.[优化]多保安单位逻辑</div> |
| | | <div>9.[优化]request打印日志逻辑</div> |
| | | <div>10.[修复]getIp的bug</div> |
| | | <div>11.[优化]saber代码生成模板</div> |
| | |
| | | dialogClickModal: false, |
| | | column: [ |
| | | { |
| | | label: '租户编号', |
| | | label: '保安单位编号', |
| | | prop: 'tenantId', |
| | | slot: true, |
| | | width: 120, |