diff --git a/.vitepress/dist/404.html b/.vitepress/dist/404.html index 661889c..d24c347 100644 --- a/.vitepress/dist/404.html +++ b/.vitepress/dist/404.html @@ -8,14 +8,14 @@ - +
- + \ No newline at end of file diff --git a/.vitepress/dist/README.html b/.vitepress/dist/README.html index 0aaa1fe..a4d4400 100644 --- a/.vitepress/dist/README.html +++ b/.vitepress/dist/README.html @@ -8,17 +8,17 @@ - + - +
Skip to content

介绍 ​

这是 Cool Admin(Java 版)的在线文档仓库,我们会尽力完善文档。也希望广大开发者粉丝帮助完善文档,积极提交Pull requests,共同参与开源,你的贡献可能给其他人代码巨大的帮助

地址 ​

- + \ No newline at end of file diff --git a/.vitepress/dist/assets/app.CTfT_qny.js b/.vitepress/dist/assets/app.Cxt0bBLB.js similarity index 95% rename from .vitepress/dist/assets/app.CTfT_qny.js rename to .vitepress/dist/assets/app.Cxt0bBLB.js index 94b2f99..17661ba 100644 --- a/.vitepress/dist/assets/app.CTfT_qny.js +++ b/.vitepress/dist/assets/app.Cxt0bBLB.js @@ -1 +1 @@ -import{U as o,af as p,ag as u,ah as l,ai as c,aj as f,ak as d,al as m,am as h,an as g,ao as A,d as P,u as v,y,x as w,ap as C,aq as R,ar as b,as as E}from"./chunks/framework.C_oE5szm.js";import{R as S}from"./chunks/theme.CZLro9Tm.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(S),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=v();return y(()=>{w(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&C(),R(),b(),s.setup&&s.setup(),()=>E(s.Layout)}});async function _(){globalThis.__VITEPRESS__=!0;const e=x(),a=j();a.provide(u,e);const t=l(e.route);return a.provide(c,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function j(){return h(T)}function x(){let e=o,a;return g(t=>{let n=A(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&_().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{_ as createApp}; +import{U as o,af as p,ag as u,ah as l,ai as c,aj as f,ak as d,al as m,am as h,an as g,ao as A,d as P,u as v,y,x as w,ap as C,aq as R,ar as b,as as E}from"./chunks/framework.C_oE5szm.js";import{R as S}from"./chunks/theme.BvUzqabf.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(S),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=v();return y(()=>{w(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&C(),R(),b(),s.setup&&s.setup(),()=>E(s.Layout)}});async function _(){globalThis.__VITEPRESS__=!0;const e=x(),a=j();a.provide(u,e);const t=l(e.route);return a.provide(c,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function j(){return h(T)}function x(){let e=o,a;return g(t=>{let n=A(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&_().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{_ as createApp}; diff --git a/.vitepress/dist/assets/chunks/@localSearchIndexroot.QQhYNk8y.js b/.vitepress/dist/assets/chunks/@localSearchIndexroot.C6BEuUzG.js similarity index 87% rename from .vitepress/dist/assets/chunks/@localSearchIndexroot.QQhYNk8y.js rename to .vitepress/dist/assets/chunks/@localSearchIndexroot.C6BEuUzG.js index 783d6b6..1564b82 100644 --- a/.vitepress/dist/assets/chunks/@localSearchIndexroot.QQhYNk8y.js +++ b/.vitepress/dist/assets/chunks/@localSearchIndexroot.C6BEuUzG.js @@ -1 +1 @@ -const e='{"documentCount":108,"nextId":108,"documentIds":{"0":"/README.html#介绍","1":"/README.html#地址","2":"/src/about/#交流合作","3":"/src/about/#微信","4":"/src/about/#抖音","5":"/src/about/#b-站","6":"/src/about/#公众号","7":"/src/guide/ai.html#ai-编码","8":"/src/guide/cache.html#缓存","9":"/src/guide/cache.html#使用","10":"/src/guide/cache.html#框架特有的通用工具类-coolcache","11":"/src/guide/cache.html#通过coolcache缓存模板-获取数据","12":"/src/guide/controller.html#控制器","13":"/src/guide/controller.html#示例","14":"/src/guide/controller.html#查询配置","15":"/src/guide/controller.html#请求参数","16":"/src/guide/controller.html#重写实现","17":"/src/guide/controller.html#原理","18":"/src/guide/controller.html#接口路由规则","19":"/src/guide/controller.html#自定义路由注解","20":"/src/guide/controller.html#重写-getmappingformethod","21":"/src/guide/db.html#数据库","22":"/src/guide/db.html#功能对比","23":"/src/guide/db.html#支持数据库","24":"/src/guide/db.html#自动建表","25":"/src/guide/deploy.html#项目部署","26":"/src/guide/deploy.html#普通方式","27":"/src/guide/deploy.html#_1、部署流程-以宝塔为例","28":"/src/guide/deploy.html#_2、推荐使用-pnpm-安装依赖","29":"/src/guide/deploy.html#_3、pm2-运行后端服务","30":"/src/guide/deploy.html#_4、nginx-配置示例","31":"/src/guide/deploy.html#docker-方式","32":"/src/guide/deploy.html#_1、部署流程-以宝塔为例-1","33":"/src/guide/deploy.html#_2、打包镜像","34":"/src/guide/deploy.html#_3、运行","35":"/src/guide/deploy.html#注意事项","36":"/src/guide/dev.html#开发方式","37":"/src/guide/dev.html#ai-全自动","38":"/src/guide/dev.html#半自动","39":"/src/guide/exception.html#统一异常处理","40":"/src/guide/exception.html#异常统一捕获","41":"/src/guide/dir.html#目录结构","42":"/src/guide/dir.html#结构","43":"/src/guide/flow.html#ai-流程编排","44":"/src/guide/initData.html#数据初始化","45":"/src/guide/lock.html#锁","46":"/src/guide/noRepeatSubmit.html#防重复提交","47":"/src/guide/plugin.html#扩展插件","48":"/src/guide/plugin.html#使用插件","49":"/src/guide/plugin.html#_1、安装","50":"/src/guide/plugin.html#_2、调用","51":"/src/guide/plugin.html#_3、配置","52":"/src/guide/plugin.html#开发插件","53":"/src/guide/plugin.html#_1、脚手架","54":"/src/guide/plugin.html#_2、目录结构","55":"/src/guide/plugin.html#_3、开发过程","56":"/src/guide/plugin.html#_4、字段解释","57":"/src/guide/plugin.html#插件详解","58":"/src/guide/plugin.html#打包","59":"/src/guide/plugin.html#安装插件","60":"/src/guide/plugin.html#实现原理","61":"/src/guide/quick.html#快速开始","62":"/src/guide/quick.html#环境准备","63":"/src/guide/quick.html#运行系统","64":"/src/guide/quick.html#_1、拉取源码","65":"/src/guide/quick.html#_2、配置数据库","66":"/src/guide/quick.html#_3、启动后端服务","67":"/src/guide/quick.html#_4、启动前端服务","68":"/src/guide/recordLog.html#请求日志记录","69":"/src/guide/security.html#权限校验","70":"/src/guide/security.html#配置","71":"/src/guide/security.html#原理","72":"/src/guide/security.html#当前用户","73":"/src/guide/security.html#后端用户","74":"/src/guide/security.html#应用用户","75":"/src/guide/security.html#忽略-token","76":"/src/guide/security.html#方式一-注解","77":"/src/guide/security.html#方法上","78":"/src/guide/security.html#类上","79":"/src/guide/security.html#方式二-配置文件","80":"/src/guide/service.html#服务","81":"/src/guide/service.html#crud","82":"/src/guide/service.html#修改前后","83":"/src/guide/swagger.html#swagger-文档","84":"/src/guide/uniqueIDGen.html#唯一id","85":"/src/guide/upload.html#文件上传","86":"/src/guide/upload.html#使用","87":"/src/introduce/#简介","88":"/src/introduce/#技术选型","89":"/src/introduce/#一、环境要求","90":"/src/introduce/#二、后端框架","91":"/src/introduce/#三、前端框架","92":"/src/introduce/#为什么选择-cool-admin","93":"/src/introduce/#内置功能","94":"/src/introduce/show.html#演示","95":"/src/introduce/src.html#源码","96":"/src/introduce/src.html#后端-点个-star-哦","97":"/src/introduce/src.html#前端-点个-star-哦","98":"/src/introduce/src.html#文档-star-哦","99":"/src/question/common.html#常见问题","100":"/src/question/common.html#_1、找不到类似xxxtabledef文件","101":"/src/todo/plan.html#计划","102":"/src/todo/plan.html#完善插件","103":"/src/todo/update.html#更新","104":"/src/todo/update.html#v7-1-3-2024-08-25","105":"/src/todo/update.html#v7-1-2-2024-08-04","106":"/src/todo/update.html#v7-1-1-2024-07-15","107":"/src/todo/update.html#v7-1-0-2024-06-27"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[1,1,13],"1":[1,1,8],"2":[1,1,4],"3":[1,1,2],"4":[1,1,11],"5":[2,1,3],"6":[1,1,6],"7":[2,1,8],"8":[1,1,35],"9":[1,1,31],"10":[2,1,22],"11":[2,1,37],"12":[1,1,15],"13":[1,1,48],"14":[1,1,171],"15":[1,1,57],"16":[1,1,63],"17":[1,1,1],"18":[1,1,44],"19":[1,1,14],"20":[2,1,43],"21":[1,1,41],"22":[1,1,79],"23":[1,1,112],"24":[1,1,21],"25":[1,1,9],"26":[1,1,8],"27":[4,2,36],"28":[4,2,15],"29":[3,2,41],"30":[3,2,92],"31":[2,1,10],"32":[4,3,12],"33":[2,3,31],"34":[2,3,16],"35":[1,3,9],"36":[1,1,7],"37":[2,1,12],"38":[1,1,51],"39":[1,1,8],"40":[1,1,78],"41":[1,1,4],"42":[1,1,58],"43":[2,1,23],"44":[1,1,76],"45":[1,1,27],"46":[1,1,70],"47":[1,1,9],"48":[1,1,1],"49":[2,2,9],"50":[2,2,204],"51":[2,2,18],"52":[1,1,1],"53":[2,2,16],"54":[2,2,25],"55":[2,2,31],"56":[2,2,27],"57":[1,1,185],"58":[1,1,31],"59":[1,1,5],"60":[1,1,66],"61":[1,1,4],"62":[1,1,19],"63":[1,1,1],"64":[2,2,4],"65":[2,2,45],"66":[2,2,59],"67":[2,2,25],"68":[1,1,44],"69":[1,1,7],"70":[1,1,14],"71":[1,1,243],"72":[1,1,2],"73":[1,2,39],"74":[1,2,6],"75":[2,1,5],"76":[2,3,1],"77":[1,5,14],"78":[1,5,22],"79":[2,3,25],"80":[1,1,2],"81":[1,1,5],"82":[1,1,21],"83":[2,1,48],"84":[1,1,64],"85":[1,1,17],"86":[1,1,98],"87":[1,1,1],"88":[1,1,4],"89":[2,2,14],"90":[2,2,10],"91":[2,2,5],"92":[4,1,26],"93":[1,1,38],"94":[1,1,11],"95":[1,1,7],"96":[5,1,12],"97":[5,1,13],"98":[4,1,15],"99":[1,1,2],"100":[2,1,29],"101":[1,1,4],"102":[1,1,9],"103":[1,1,8],"104":[7,1,24],"105":[7,1,11],"106":[6,1,9],"107":[7,1,8]},"averageFieldLength":[1.7314814814814814,1.3703703703703707,30.592592592592567],"storedFields":{"0":{"title":"介绍","titles":[]},"1":{"title":"地址","titles":[]},"2":{"title":"交流合作","titles":[]},"3":{"title":"微信","titles":["交流合作"]},"4":{"title":"抖音","titles":["交流合作"]},"5":{"title":"B 站","titles":["交流合作"]},"6":{"title":"公众号","titles":["交流合作"]},"7":{"title":"Ai 编码","titles":[]},"8":{"title":"缓存","titles":[]},"9":{"title":"使用","titles":["缓存"]},"10":{"title":"框架特有的通用工具类,CoolCache","titles":["缓存"]},"11":{"title":"通过coolCache缓存模板,获取数据","titles":["缓存"]},"12":{"title":"控制器","titles":[]},"13":{"title":"示例","titles":["控制器"]},"14":{"title":"查询配置","titles":["控制器"]},"15":{"title":"请求参数","titles":["控制器"]},"16":{"title":"重写实现","titles":["控制器"]},"17":{"title":"原理","titles":[]},"18":{"title":"接口路由规则","titles":["原理"]},"19":{"title":"自定义路由注解","titles":["原理"]},"20":{"title":"重写 getMappingForMethod","titles":["原理"]},"21":{"title":"数据库","titles":[]},"22":{"title":"功能对比","titles":["数据库"]},"23":{"title":"支持数据库","titles":["数据库"]},"24":{"title":"自动建表","titles":["数据库"]},"25":{"title":"项目部署","titles":[]},"26":{"title":"普通方式","titles":["项目部署"]},"27":{"title":"1、部署流程(以宝塔为例):","titles":["项目部署","普通方式"]},"28":{"title":"2、推荐使用 pnpm 安装依赖","titles":["项目部署","普通方式"]},"29":{"title":"3、PM2 运行后端服务","titles":["项目部署","普通方式"]},"30":{"title":"4、nginx 配置示例","titles":["项目部署","普通方式"]},"31":{"title":"Docker 方式","titles":["项目部署"]},"32":{"title":"1、部署流程(以宝塔为例):","titles":["项目部署","Docker 方式"]},"33":{"title":"2、打包镜像","titles":["项目部署","Docker 方式"]},"34":{"title":"3、运行","titles":["项目部署","Docker 方式"]},"35":{"title":"注意事项","titles":["项目部署","Docker 方式"]},"36":{"title":"开发方式","titles":[]},"37":{"title":"Ai 全自动","titles":["开发方式"]},"38":{"title":"半自动","titles":["开发方式"]},"39":{"title":"统一异常处理","titles":[]},"40":{"title":"异常统一捕获","titles":["统一异常处理"]},"41":{"title":"目录结构","titles":[]},"42":{"title":"结构","titles":["目录结构"]},"43":{"title":"Ai 流程编排","titles":[]},"44":{"title":"数据初始化","titles":[]},"45":{"title":"锁","titles":[]},"46":{"title":"防重复提交","titles":[]},"47":{"title":"扩展插件","titles":[]},"48":{"title":"使用插件","titles":["扩展插件"]},"49":{"title":"1、安装","titles":["扩展插件","使用插件"]},"50":{"title":"2、调用","titles":["扩展插件","使用插件"]},"51":{"title":"3、配置","titles":["扩展插件","使用插件"]},"52":{"title":"开发插件","titles":["扩展插件"]},"53":{"title":"1、脚手架","titles":["扩展插件","开发插件"]},"54":{"title":"2、目录结构","titles":["扩展插件","开发插件"]},"55":{"title":"3、开发过程","titles":["扩展插件","开发插件"]},"56":{"title":"4、字段解释","titles":["扩展插件","开发插件"]},"57":{"title":"插件详解","titles":["扩展插件"]},"58":{"title":"打包","titles":["扩展插件"]},"59":{"title":"安装插件","titles":["扩展插件"]},"60":{"title":"实现原理","titles":["扩展插件"]},"61":{"title":"快速开始","titles":[]},"62":{"title":"环境准备","titles":["快速开始"]},"63":{"title":"运行系统","titles":["快速开始"]},"64":{"title":"1、拉取源码","titles":["快速开始","运行系统"]},"65":{"title":"2、配置数据库","titles":["快速开始","运行系统"]},"66":{"title":"3、启动后端服务","titles":["快速开始","运行系统"]},"67":{"title":"4、启动前端服务","titles":["快速开始","运行系统"]},"68":{"title":"请求日志记录","titles":[]},"69":{"title":"权限校验","titles":[]},"70":{"title":"配置","titles":["权限校验"]},"71":{"title":"原理","titles":["权限校验"]},"72":{"title":"当前用户","titles":["权限校验"]},"73":{"title":"后端用户","titles":["权限校验","当前用户"]},"74":{"title":"应用用户","titles":["权限校验","当前用户"]},"75":{"title":"忽略 token","titles":["权限校验"]},"76":{"title":"方式一: 注解","titles":["权限校验","忽略 token"]},"77":{"title":"方法上","titles":["权限校验","忽略 token","方式一: 注解"]},"78":{"title":"类上","titles":["权限校验","忽略 token","方式一: 注解"]},"79":{"title":"方式二: 配置文件","titles":["权限校验","忽略 token"]},"80":{"title":"服务","titles":[]},"81":{"title":"Crud","titles":["服务"]},"82":{"title":"修改前后","titles":["服务"]},"83":{"title":"swagger 文档","titles":[]},"84":{"title":"唯一id","titles":[]},"85":{"title":"文件上传","titles":[]},"86":{"title":"使用","titles":[]},"87":{"title":"简介","titles":[]},"88":{"title":"技术选型","titles":["简介"]},"89":{"title":"一、环境要求","titles":["简介","技术选型"]},"90":{"title":"二、后端框架","titles":["简介","技术选型"]},"91":{"title":"三、前端框架","titles":["简介","技术选型"]},"92":{"title":"为什么选择 Cool Admin?","titles":["简介"]},"93":{"title":"内置功能","titles":["简介"]},"94":{"title":"演示","titles":[]},"95":{"title":"源码","titles":[]},"96":{"title":"后端(点个 Star 哦)","titles":["源码"]},"97":{"title":"前端(点个 Star 哦)","titles":["源码"]},"98":{"title":"文档 (Star 哦)","titles":["源码"]},"99":{"title":"常见问题","titles":[]},"100":{"title":"1、找不到类似xxxTableDef文件","titles":["常见问题"]},"101":{"title":"计划","titles":[]},"102":{"title":"完善插件","titles":["计划"]},"103":{"title":"更新","titles":[]},"104":{"title":"v7.1.3(2024-08-25)","titles":["更新"]},"105":{"title":"v7.1.2(2024-08-04)","titles":["更新"]},"106":{"title":"v7.1.1(2024-07-15)","titles":["更新"]},"107":{"title":"v7.1.0(2024-06-27)","titles":["更新"]}},"dirtCount":0,"index":[["升级所有相关依赖到最新",{"2":{"107":1}}],["升级到",{"2":{"107":1}}],["移除插件jar文件落库",{"2":{"105":1}}],["移除锁",{"2":{"46":1}}],["鉴权调整兼容app端",{"2":{"105":1}}],["鉴权拦截配置",{"2":{"71":1}}],["指定id插入不生效问题",{"2":{"104":1}}],["修复",{"2":{"104":2,"105":1}}],["修改之后",{"2":{"82":2}}],["修改之前",{"2":{"82":2}}],["修改类型",{"2":{"82":2}}],["修改前后",{"0":{"82":1}}],["修改",{"2":{"13":1,"93":1}}],["图形验证码获取区分app和admin",{"2":{"104":1}}],["解析规则",{"2":{"104":1}}],["解析设计",{"2":{"22":1}}],["参考",{"2":{"104":6}}],["参数管理",{"2":{"93":1}}],["参数",{"2":{"50":1}}],["支付",{"2":{"106":1}}],["支付插件",{"2":{"102":1}}],["支持postgresql",{"2":{"105":1}}],["支持自定义返回结果类型",{"2":{"104":1}}],["支持动态安装",{"2":{"93":1}}],["支持回滚操作",{"2":{"93":1}}],["支持静态资源文件上传云端进行云管理",{"2":{"93":1}}],["支持通配",{"2":{"79":1}}],["支持很多数据库",{"2":{"23":1}}],["支持的数据库类型",{"2":{"23":1}}],["支持数据库",{"0":{"23":1}}],["支持多主键",{"2":{"22":1}}],["支持关联查询",{"2":{"21":1}}],["短信等功能可以通过安装插件的方式添加",{"2":{"106":1}}],["短信插件",{"2":{"102":1}}],["短信这类功能的插件可以通过后台动态安装卸载",{"2":{"92":1}}],["完善插件",{"0":{"102":1}}],["计划",{"0":{"101":1},"1":{"102":1}}],["找不到类似xxxtabledef文件",{"0":{"100":1}}],["常见问题",{"0":{"99":1},"1":{"100":1}}],["常用的技术进行选择",{"2":{"88":1}}],["常用命令",{"2":{"29":1}}],["您的贡献可能会给其他人来带巨大的帮助",{"2":{"98":1}}],["哦",{"0":{"96":1,"97":1,"98":1}}],["点个",{"0":{"96":1,"97":1}}],["点击前往前端项目详细文档",{"2":{"67":1,"97":1}}],["点击前往插件市场",{"2":{"47":1}}],["点击前往插件市场下载安装",{"2":{"43":1}}],["点击+按钮",{"2":{"49":1}}],["点击左侧菜单扩展管理",{"2":{"49":1}}],["源码",{"0":{"95":1},"1":{"96":1,"97":1,"98":1}}],["源码仓库",{"2":{"64":1}}],["演示",{"0":{"94":1}}],["卸载插件",{"2":{"93":1}}],["卸载和替换",{"2":{"60":2}}],["前后端插件",{"2":{"93":1}}],["前端",{"0":{"97":1}}],["前端框架",{"0":{"91":1}}],["前端会根据后端返回的上传模式进行本地上传或者云存储签名直传",{"2":{"85":1}}],["前端不需要特意写调用接口的",{"2":{"33":1}}],["前端打包完放这边",{"2":{"30":1}}],["前端访问后端的接口地址默认是前端根地址+",{"2":{"27":1}}],["前端接口",{"2":{"18":1}}],["天的保留",{"2":{"93":1}}],["任务调度包含执行结果日志",{"2":{"93":1}}],["添加",{"2":{"93":1}}],["定时任务",{"2":{"93":1}}],["定时任务模块",{"2":{"42":1}}],["便于问题排查",{"2":{"93":1}}],["设置角色按机构进行数据范围权限划分",{"2":{"93":1}}],["呈现公司组织部门树形结构",{"2":{"93":1}}],["内置功能",{"0":{"93":1}}],["代码简洁",{"2":{"92":1}}],["代理服务端地址",{"2":{"30":1}}],["灵活又不臃肿",{"2":{"92":1}}],["灵活性",{"2":{"60":1}}],["灵活性高",{"2":{"60":1}}],["专门为",{"2":{"92":1}}],["部分功能实现零代码",{"2":{"92":1}}],["部署",{"2":{"35":1}}],["部署的简单流程",{"2":{"31":1}}],["部署的配置方式可以参考普通的部署方式",{"2":{"31":1}}],["部署成功",{"2":{"27":1,"32":1}}],["部署流程",{"0":{"27":1,"32":1}}],["部署视频教程",{"2":{"26":1,"31":1}}],["从页面到后端代码",{"2":{"92":1}}],["从第三方",{"2":{"11":1}}],["特别是最近",{"2":{"92":1}}],["特别是跟",{"2":{"4":1}}],["三",{"0":{"91":1}}],["二",{"0":{"90":1}}],["环境要求",{"0":{"89":1}}],["环境准备",{"0":{"62":1}}],["减少技术栈的复杂度",{"2":{"88":1}}],["技术选型",{"0":{"88":1},"1":{"89":1,"90":1,"91":1}}],["技术分享",{"2":{"4":1,"6":1}}],["简单功能零代码实现",{"2":{"106":1}}],["简单锁的使用",{"2":{"45":1}}],["简介",{"0":{"87":1},"1":{"88":1,"89":1,"90":1,"91":1,"92":1,"93":1}}],["水印等处理",{"2":{"86":1}}],["裁剪",{"2":{"86":1}}],["条件允许的话尽量选择云存储上传",{"2":{"86":1}}],["动静分离有许多好处",{"2":{"86":1}}],["动态加载使得应用程序能够在不停机的情况下进行热更新",{"2":{"60":1}}],["动态加载允许应用程序在运行时根据需求加载",{"2":{"60":1}}],["动态加载",{"2":{"60":2}}],["动态",{"2":{"22":1}}],["动态表名",{"2":{"22":1}}],["线上环境请用nginx等静态服务器代理",{"2":{"86":1}}],["线上的数据库是需要本地传上去的",{"2":{"27":1}}],["七牛云等",{"2":{"85":1}}],["腾讯云",{"2":{"85":1}}],["云存储上传服务端值提供签名供前端直传到对应的云存储",{"2":{"85":1}}],["云存储",{"2":{"85":1}}],["直接上传到对应的云存储",{"2":{"85":1}}],["分布式id",{"2":{"104":1}}],["分布式id生成组件",{"2":{"104":1}}],["分布式唯一id组件",{"2":{"84":1}}],["分页查询无",{"2":{"22":1}}],["分页查询之总量缓存",{"2":{"22":1}}],["分页查询配置",{"2":{"14":1}}],["分页查询",{"2":{"13":1,"22":1}}],["启用唯一id组件",{"2":{"84":1}}],["启动",{"2":{"67":1}}],["启动前端服务",{"0":{"67":1}}],["启动文件",{"2":{"66":1}}],["启动后端服务",{"0":{"66":1}}],["启动一个服务",{"2":{"29":1}}],["启动服务",{"2":{"27":1}}],["入参为key",{"2":{"84":1}}],["步长",{"2":{"84":1}}],["当前最大id",{"2":{"84":1}}],["当前用户",{"0":{"72":1},"1":{"73":1,"74":1}}],["唯一id分配",{"2":{"84":1}}],["唯一id",{"0":{"84":1}}],["操作日志",{"2":{"93":1}}],["操作权限标识等",{"2":{"93":1}}],["操作",{"2":{"81":1}}],["处理业务逻辑的代码应该被封装在服务中",{"2":{"80":1}}],["处理逻辑在以下方法",{"2":{"44":1}}],["都必须配合coolrestcontroller使用",{"2":{"78":1}}],["都继承自",{"2":{"12":1}}],["校验",{"2":{"75":1,"77":1}}],["应用用户",{"0":{"74":1}}],["应用必备",{"2":{"43":1}}],["类上",{"0":{"78":1}}],["类型",{"2":{"73":1}}],["类必须继承",{"2":{"50":1,"57":2}}],["类必须要有",{"2":{"50":1,"57":2}}],["允许网页iframe",{"2":{"71":1}}],["监控用户行为",{"2":{"71":1}}],["监听",{"2":{"22":1}}],["权限管理拦截器",{"2":{"71":1}}],["权限校验",{"0":{"69":1},"1":{"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1}}],["每次调用接口的时候spring",{"2":{"71":1}}],["每个插件的配置各不相同",{"2":{"56":1}}],["每个对象中的",{"2":{"44":1}}],["每个模块都有其特有的功能",{"2":{"41":1}}],["则返回给decide方法",{"2":{"71":1}}],["判定用户请求的url是否在权限表中",{"2":{"71":1}}],["判断",{"2":{"40":1}}],["刷新token过期时间",{"2":{"70":1}}],["半小时",{"2":{"70":1}}],["半自动",{"0":{"38":1}}],["秒",{"2":{"70":2}}],["单位",{"2":{"70":2}}],["单主键配置",{"2":{"22":1}}],["过期时间",{"2":{"70":1}}],["作为文档",{"2":{"83":1}}],["作为myaccessdecisionmanager类的decide的第三个参数",{"2":{"71":1}}],["作为框架安全与权限校验",{"2":{"69":1}}],["作者",{"2":{"55":1,"56":1}}],["采用",{"2":{"69":1}}],["忽略后台鉴权url",{"2":{"79":1}}],["忽略",{"0":{"75":1},"1":{"76":1,"77":1,"78":1,"79":1},"2":{"75":1}}],["忽略权限控制的地址",{"2":{"71":1}}],["忽略记录请求日志url配置",{"2":{"105":1}}],["忽略记录请求日志url",{"2":{"68":1}}],["忽略url",{"2":{"68":1,"79":1}}],["记录日志",{"2":{"68":1}}],["记录接口请求日志入库",{"2":{"68":1}}],["密码版本号",{"2":{"73":1}}],["密码",{"2":{"67":1,"94":1}}],["账户",{"2":{"67":1,"94":1}}],["账户密码不正确",{"2":{"40":1}}],["执行",{"2":{"100":1}}],["执行命令",{"2":{"67":1}}],["执行的过程中",{"2":{"21":1}}],["跟进nodejs",{"2":{"107":1}}],["跟",{"2":{"67":1}}],["跟分页查询一样",{"2":{"14":1}}],["端口",{"2":{"66":1}}],["服务",{"0":{"80":1},"1":{"81":1,"82":1}}],["服务启动成功",{"2":{"66":1}}],["服务器环境准备",{"2":{"27":1}}],["构建eps信息",{"2":{"66":1}}],["控制台打印出下面信息",{"2":{"66":1}}],["控制器",{"0":{"12":1},"1":{"13":1,"14":1,"15":1,"16":1},"2":{"104":1}}],["驱动已经内置",{"2":{"65":1}}],["首次启动会自动初始化并导入数据",{"2":{"65":1}}],["首先下载插件包",{"2":{"49":1}}],["yamlcool",{"2":{"70":1}}],["yaml",{"2":{"65":1,"79":1,"84":1}}],["yamlspring",{"2":{"8":1,"86":1}}],["yml",{"2":{"65":1,"86":1}}],["拉取源码",{"0":{"64":1}}],["拉取前后端代码",{"2":{"27":1,"32":1}}],["9000",{"2":{"67":1}}],["941+08",{"2":{"66":1}}],["9",{"2":{"62":1}}],["7天",{"2":{"70":1}}],["7版本",{"2":{"65":1}}],["7",{"2":{"62":1,"89":1}}],["选择",{"2":{"62":1,"89":1}}],["选择插件包进行安装",{"2":{"49":1}}],["开启",{"2":{"100":1}}],["开放接口",{"2":{"75":1}}],["开始使用",{"2":{"61":1}}],["开发几乎不用写代码",{"2":{"92":1}}],["开发设计的",{"2":{"92":1}}],["开发过程",{"0":{"55":1}}],["开发过程只需点一点",{"2":{"37":1}}],["开发插件",{"0":{"52":1},"1":{"53":1,"54":1,"55":1,"56":1}}],["开发的时候无法调试",{"2":{"50":1}}],["开发的时候只是模拟",{"2":{"50":1}}],["开发的一个",{"2":{"8":1}}],["开发",{"2":{"43":1}}],["开发方式",{"0":{"36":1},"1":{"37":1,"38":1}}],["开发者可以从中方便的获取各种参数",{"2":{"15":1}}],["快速开始",{"0":{"61":1},"1":{"62":1,"63":1,"64":1,"65":1,"66":1,"67":1}}],["扩展性",{"2":{"60":1}}],["扩展插件",{"0":{"47":1},"1":{"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1},"2":{"92":1}}],["大大提高了系统的可用性和稳定性",{"2":{"60":1}}],["热更新",{"2":{"60":1}}],["优化若干问题",{"2":{"107":1}}],["优化插件过大加载慢问题",{"2":{"105":1}}],["优化角色修改循环单个处理为批量处理",{"2":{"104":1}}],["优化eps解析规则",{"2":{"104":1}}],["优势",{"2":{"60":1}}],["优炫数据库",{"2":{"23":1}}],["远程服务器和",{"2":{"60":1}}],["它可以加载指定的",{"2":{"60":1}}],["标准库中提供的一个类加载器",{"2":{"60":1}}],["最终打出的包为",{"2":{"58":1}}],["里指定",{"2":{"58":1}}],["里面是个数组",{"2":{"44":1}}],["后台人员查询列表字段关联错误",{"2":{"104":1}}],["后端",{"0":{"96":1}}],["后端框架",{"0":{"90":1}}],["后端用户",{"0":{"73":1}}],["后端修改数据库配置",{"2":{"65":1}}],["后端接口",{"2":{"18":1}}],["后缀的文件",{"2":{"58":1}}],["避免打包结果过大",{"2":{"57":1}}],["避免插件过大不会在打入jar包中",{"2":{"57":1}}],["主应用以有这些依赖",{"2":{"57":1}}],["主应用项目已经有的依赖给排除掉",{"2":{"57":1}}],["主应用没有这些依赖",{"2":{"57":1}}],["主要特点",{"2":{"21":1,"92":1}}],["主要是做一些技术教程",{"2":{"4":1}}],["引入依赖",{"2":{"57":1}}],["可商用",{"2":{"95":1}}],["可插拔",{"2":{"92":1}}],["可选",{"2":{"86":1}}],["可维护性",{"2":{"60":1}}],["可控性强",{"2":{"60":1}}],["可在",{"2":{"58":1}}],["可使用",{"2":{"57":1}}],["可以重写modifybefore和modifyafter方法",{"2":{"82":1}}],["可以参考baseservice的实现",{"2":{"81":1}}],["可以轻松地添加新的功能模块或服务",{"2":{"60":1}}],["可以将应用程序的核心逻辑和配置分离",{"2":{"60":1}}],["可以通过代码控制加载",{"2":{"60":1}}],["可以通过插件的方式来扩展系统功能",{"2":{"47":1}}],["可以动态指定",{"2":{"60":1}}],["可以快速开发我们的插件",{"2":{"53":1}}],["可以大大节省开发时间",{"2":{"36":1}}],["可以大大简化代码",{"2":{"12":1}}],["可以考虑这个时间配置长一点",{"2":{"30":1}}],["可以自己指定数量",{"2":{"29":1}}],["可以自动创建表",{"2":{"24":1}}],["可以在yml文件中配置",{"2":{"68":1}}],["可以在打包日志中查看我们排除和引入了哪些包",{"2":{"57":1}}],["可以在",{"2":{"44":1}}],["可以在对应的",{"2":{"16":1}}],["可以在这边实现一下列表数据排序规则",{"2":{"13":1,"15":1,"16":1,"83":1}}],["可以选择你想使用的缓存",{"2":{"8":1}}],["满足以上条件",{"2":{"57":1}}],["拼音",{"2":{"57":1}}],["汉字",{"2":{"57":1}}],["汉字字符",{"2":{"57":1}}],["会持续不断地更新",{"2":{"103":1}}],["会展示在插件的详情中",{"2":{"56":1}}],["会更加简洁",{"2":{"40":1}}],["建议",{"2":{"65":1}}],["建议尺寸",{"2":{"56":1}}],["建议将缓存换成",{"2":{"35":1}}],["说明后端服务启动成功",{"2":{"66":1}}],["说明",{"2":{"56":1,"73":1}}],["测试",{"2":{"55":1}}],["测试curd",{"2":{"13":2,"14":2,"15":2,"16":2,"38":1,"83":2}}],["或",{"2":{"53":1,"96":2,"97":2,"98":1}}],["或者db",{"2":{"11":1}}],["脚手架源码仓库",{"2":{"53":1}}],["脚手架",{"0":{"53":1}}],["下",{"2":{"51":1}}],["下的",{"2":{"44":1}}],["范围在",{"2":{"51":1}}],["路径可以自己指定",{"2":{"51":1}}],["例如原本的配置文件是这样的",{"2":{"51":1}}],["其它的无效",{"2":{"78":1}}],["其中对应的包名称",{"2":{"58":1}}],["其中",{"2":{"51":1}}],["其中我们可以在插件包里通过",{"2":{"50":1}}],["其他数据库适配中",{"2":{"65":1}}],["其他部署方式也可以参考这个流程",{"2":{"26":1}}],["其他查询方式",{"2":{"14":2}}],["只需极少编码即可实现大部分需求",{"2":{"92":1}}],["只需拖一拖即可",{"2":{"92":1}}],["只需三步",{"2":{"38":1}}],["只有安装到cool",{"2":{"50":1}}],["获得用户信息",{"2":{"71":1,"73":1}}],["获得其他插件",{"2":{"50":1}}],["获取id",{"2":{"84":1}}],["获取当前用户信息",{"2":{"72":1}}],["获取启用的权限操作请求",{"2":{"71":1}}],["获取主应用resources下的",{"2":{"50":1}}],["获取主应用resources目录下的资源文件",{"2":{"50":1}}],["获取锁后的逻辑",{"2":{"45":1}}],["获取物流信息",{"2":{"11":1}}],["获取数据",{"0":{"11":1},"2":{"11":1}}],["||",{"2":{"50":7}}],["|",{"2":{"50":67}}],["一",{"0":{"89":1}}],["一个插件",{"2":{"57":1}}],["一个插件jar有且只能有一个类被",{"2":{"50":1,"57":1}}],["一个项目用cool就够了",{"2":{"50":2}}],["一般抛异常写法",{"2":{"40":1}}],["`",{"2":{"50":10}}],["`update",{"2":{"50":1}}],["`create",{"2":{"50":1}}],["`params`",{"2":{"50":1}}],["`ip`",{"2":{"50":1}}],["`action`",{"2":{"50":1}}],["`base",{"2":{"50":1}}],["500",{"2":{"84":2}}],["564+08",{"2":{"50":1}}],["556",{"2":{"66":1}}],["559+08",{"2":{"50":1}}],["558+08",{"2":{"50":1}}],["557+08",{"2":{"50":1}}],["554+08",{"2":{"50":1}}],["544+08",{"2":{"50":1}}],["543+08",{"2":{"50":2}}],["5",{"2":{"50":8,"57":6,"62":1,"89":1}}],["就是我们的插件包",{"2":{"58":1}}],["就可以在代码中调用插件的方法了",{"2":{"50":1}}],["就不需要在entity",{"2":{"14":1}}],["调整",{"2":{"104":4,"105":2}}],["调用其他插件",{"2":{"50":1}}],["调用其他插件aliyun",{"2":{"50":1}}],["调用主应用获取缓存",{"2":{"50":1}}],["调用主应用设置缓存",{"2":{"50":1}}],["调用主应用",{"2":{"50":3}}],["调用插件类",{"2":{"50":1}}],["调用",{"0":{"50":1}}],["调一调",{"2":{"37":1}}],["打开后台管理系统",{"2":{"49":1}}],["打包结果",{"2":{"58":1}}],["打包命令",{"2":{"58":1}}],["打包",{"0":{"58":1}}],["打包时可以排除",{"2":{"57":1}}],["打包前端镜像",{"2":{"33":1}}],["打包前后端代码",{"2":{"27":1}}],["打包后端镜像",{"2":{"33":1}}],["打包后端和前端镜像",{"2":{"32":1}}],["打包镜像之前",{"2":{"33":1}}],["打包镜像",{"0":{"33":1}}],["打包之前注意配置生产环境的数据库配置config",{"2":{"27":1}}],["然后在系统中安装插件包",{"2":{"49":1}}],["导致系统臃肿",{"2":{"47":1}}],["领取优惠券",{"2":{"46":1}}],["加载权限表中所有操作请求权限",{"2":{"71":1}}],["加载成功后文件名称将被当作唯一键标识",{"2":{"44":1}}],["加上",{"2":{"54":1}}],["加锁",{"2":{"46":1}}],["基于表来完成分布式id生成",{"2":{"84":1}}],["基于用户维度的防重复提交",{"2":{"46":1}}],["基础模块",{"2":{"42":1}}],["防重提交",{"2":{"104":1}}],["防重提交注解",{"2":{"104":1}}],["防重复提交",{"0":{"46":1}}],["防止上传恶意文件等",{"2":{"86":1}}],["防止操作不当导致的数据丢失",{"2":{"35":1}}],["防止刷新404",{"2":{"30":1}}],["释放锁",{"2":{"45":1}}],["尝试获取锁",{"2":{"45":1}}],["注入service",{"2":{"84":1}}],["注入锁",{"2":{"45":1}}],["注解",{"0":{"76":1},"1":{"77":1,"78":1},"2":{"46":1,"50":2,"57":4}}],["注意事项",{"0":{"35":1}}],["注意",{"2":{"18":1,"22":1,"23":1,"24":1,"25":1,"27":1,"33":1,"44":1,"62":1,"78":1,"86":1}}],["注意如果该表有json字段",{"2":{"14":1}}],["锁工具",{"2":{"104":2}}],["锁是基于redis",{"2":{"45":1}}],["锁",{"0":{"45":1}}],["要新增一个",{"2":{"44":1}}],["初始化数据",{"2":{"104":1}}],["初始化数据json文件",{"2":{"42":1}}],["初始化eps完成",{"2":{"66":1}}],["初始化菜单数据",{"2":{"44":1}}],["初始化自定义的数据",{"2":{"44":1}}],["富文本参数",{"2":{"44":1}}],["规范",{"2":{"44":1}}],["规则为",{"2":{"18":1}}],["数组里可以包含多个对象",{"2":{"44":1}}],["数据有",{"2":{"93":1}}],["数据回收站",{"2":{"93":1}}],["数据回收站模块",{"2":{"42":1}}],["数据初始化完成",{"2":{"44":1}}],["数据初始化",{"0":{"44":1},"2":{"84":1}}],["数据脱敏",{"2":{"22":1}}],["数据脱敏等等",{"2":{"21":1}}],["数据填充",{"2":{"21":1,"22":1}}],["数据库初始数据初始化",{"2":{"44":1}}],["数据库",{"0":{"21":1},"1":{"22":1,"23":1,"24":1},"2":{"23":32}}],["格式如下",{"2":{"44":1}}],["目录下",{"2":{"58":1}}],["目录下创建",{"2":{"44":1}}],["目录创建",{"2":{"44":1}}],["目录结构",{"0":{"41":1,"54":1},"1":{"42":1}}],["相关配置",{"2":{"70":1}}],["相关应用",{"2":{"43":1}}],["相关的技术发展",{"2":{"92":1}}],["相关的",{"2":{"4":1}}],["很容易就能完成一个",{"2":{"43":1}}],["很多应用希望接入",{"2":{"43":1}}],["结尾",{"2":{"44":1}}],["结合知识库",{"2":{"43":1}}],["结构",{"0":{"42":1}}],["做为后来者有后发优势",{"2":{"92":1}}],["做了一个",{"2":{"43":1}}],["做解析",{"2":{"20":1}}],["于是我们面向开发者和软件开发公司",{"2":{"43":1}}],["容易把我们累死",{"2":{"43":1}}],["随着技术不断地发展",{"2":{"92":1}}],["随着",{"2":{"43":1}}],["视频演示",{"2":{"43":1}}],["流程编排插件",{"2":{"102":1}}],["流程编排功能",{"2":{"43":1}}],["流程编排",{"0":{"43":1},"2":{"92":1}}],["按照简单",{"2":{"88":1}}],["按上面的包结构新增即可",{"2":{"42":1}}],["按规则组装",{"2":{"20":1}}],["业务key",{"2":{"84":1}}],["业务代码放在这边",{"2":{"42":1}}],["业务校验的工具",{"2":{"40":1}}],["为什么选择",{"0":{"92":1}}],["为例",{"2":{"65":1}}],["为排除引入",{"2":{"57":1}}],["为引入",{"2":{"57":1}}],["为主应用",{"2":{"51":1}}],["为插件key",{"2":{"50":1}}],["为对应的值",{"2":{"44":1}}],["为表的字段",{"2":{"44":1}}],["为表的名称",{"2":{"44":1}}],["为业务模块",{"2":{"42":1}}],["为核心模块",{"2":{"42":1}}],["为了使项目能够持续",{"2":{"95":1}}],["为了开发插件如果引入了主应用已经有的maven依赖可以在下面的",{"2":{"57":2}}],["为了方便开发插件和统一插件开发规范",{"2":{"53":1}}],["为了方便获取参数",{"2":{"15":1}}],["为了丰富系统功能",{"2":{"47":1}}],["为了不过多依赖环境",{"2":{"8":1}}],["插件可以在打包的时候将在我们",{"2":{"57":1}}],["插件详解",{"0":{"57":1}}],["插件配置",{"2":{"56":1}}],["插件介绍",{"2":{"56":1}}],["插件",{"2":{"56":1,"102":1}}],["插件钩子",{"2":{"56":1}}],["插件唯一标识",{"2":{"56":1}}],["插件描述",{"2":{"55":1,"56":1}}],["插件运行测试类",{"2":{"54":1}}],["插件信息配置文件",{"2":{"54":1}}],["插件类放在这个包下",{"2":{"54":1}}],["插件包",{"2":{"54":1}}],["插件包可以通过官网下载插件",{"2":{"49":1}}],["插件方法",{"2":{"50":1,"57":1}}],["插件管理",{"2":{"49":1}}],["插件模块",{"2":{"42":1}}],["插件分享等",{"2":{"6":1}}],["插件分享等内容",{"2":{"4":1}}],["角色菜单权限分配",{"2":{"93":1}}],["角色管理",{"2":{"93":1}}],["角色数组",{"2":{"56":1,"73":1}}],["角色",{"2":{"42":1}}],["资源目录下的文件",{"2":{"51":1}}],["资源文件",{"2":{"42":1}}],["资源",{"2":{"42":1,"60":1}}],["菜单管理",{"2":{"93":1}}],["菜单",{"2":{"42":1}}],["系统异常信息日志记录和查询",{"2":{"93":1}}],["系统正常操作日志记录和查询",{"2":{"93":1}}],["系统通用",{"2":{"86":2}}],["系统的文件上传就会自动替换成云存储上传的方式",{"2":{"85":1}}],["系统启动完成访问",{"2":{"83":1}}],["系统启动的时候",{"2":{"71":1}}],["系统会查询并向spring",{"2":{"71":1}}],["系统用户",{"2":{"42":1}}],["系统提供了",{"2":{"40":1}}],["└─",{"2":{"42":8,"54":7}}],["└──",{"2":{"18":6}}],["核心包",{"2":{"42":1,"54":1}}],["├─core",{"2":{"54":1}}],["├─",{"2":{"42":15,"54":3}}],["├──",{"2":{"18":1}}],["清晰明了便于管理",{"2":{"41":1}}],["异常信息为",{"2":{"40":1}}],["异常统一捕获",{"0":{"40":1}}],["即抛异常",{"2":{"40":1}}],["手动抛异常",{"2":{"40":1}}],["手动进行转换",{"2":{"14":1}}],["请求日志",{"2":{"93":1}}],["请求日志记录",{"0":{"68":1}}],["请求过程中会解析",{"2":{"73":1}}],["请求参数",{"0":{"15":1},"2":{"82":2}}],["请勿重复操作",{"2":{"46":1}}],["请区分post",{"2":{"40":1}}],["不要吝啬你们免费的star哦",{"2":{"95":1}}],["不像一般代码生成器生成一堆冗余代码",{"2":{"92":1}}],["不经过服务器",{"2":{"85":1}}],["不然调用时会报错",{"2":{"57":1}}],["不带声调",{"2":{"57":1}}],["不同的插件有不同的配置",{"2":{"55":1}}],["不会重复初始化",{"2":{"44":1}}],["不支持该请求方式",{"2":{"40":1}}],["不用写一行代码",{"2":{"37":1}}],["已存在该记录",{"2":{"40":1}}],["统一异常处理",{"0":{"39":1},"1":{"40":1}}],["组件会根据字段智能选择",{"2":{"38":1}}],["零代码开发",{"2":{"37":1}}],["全自动",{"0":{"37":1}}],["提高了代码的可维护性",{"2":{"60":1}}],["提高开发效率",{"2":{"36":1}}],["提示",{"2":{"42":1}}],["提供了极大的灵活性",{"2":{"60":1}}],["提供了简化的业务异常抛出工具",{"2":{"39":1}}],["提供了非常灵活的",{"2":{"21":1}}],["提供了一种高效且可靠的解决方案",{"2":{"8":1}}],["降低开发成本",{"2":{"36":1}}],["推荐",{"2":{"62":2,"100":1}}],["推荐两种快速开发方式",{"2":{"36":1}}],["推荐使用",{"0":{"28":1}}],["文件管理",{"2":{"93":1}}],["文件管理模块",{"2":{"42":1}}],["文件存放路径",{"2":{"86":1}}],["文件根地址",{"2":{"86":1}}],["文件等",{"2":{"60":1}}],["文件上传插件",{"2":{"102":1}}],["文件上传模式",{"2":{"86":1}}],["文件上传相关",{"2":{"86":1}}],["文件上传",{"0":{"85":1},"2":{"59":1,"86":1}}],["文件上传换成云存储",{"2":{"35":1}}],["文件内容",{"2":{"50":1}}],["文件后",{"2":{"44":1}}],["文件",{"2":{"38":1,"42":1,"44":2,"86":1}}],["文档",{"0":{"83":1,"98":1},"2":{"1":1}}],["运行系统",{"0":{"63":1},"1":{"64":1,"65":1,"66":1,"67":1}}],["运行结果",{"2":{"50":1}}],["运行代码生成器",{"2":{"38":1}}],["运行",{"0":{"34":1}}],["运行后端",{"2":{"34":2}}],["运行后端和前端",{"2":{"32":1}}],["运行后端服务",{"0":{"29":1}}],["否则使用",{"2":{"45":1}}],["否则你将无法正常访问你的",{"2":{"33":1}}],["否则这个controller",{"2":{"18":1}}],["让前端能够自动生成eps",{"2":{"33":1}}],["创建实体类生成表",{"2":{"38":1}}],["创建docker",{"2":{"33":1}}],["创建",{"2":{"32":1,"44":1}}],["持久化连接相关配置",{"2":{"30":1}}],["持续添加更多的数据库支持",{"2":{"23":1}}],["$",{"2":{"86":1}}],["$1",{"2":{"30":1}}],["$upstream",{"2":{"30":1}}],["$uri",{"2":{"30":2}}],["$http",{"2":{"30":2}}],["$host$request",{"2":{"30":1}}],["$host",{"2":{"30":2}}],["$proxy",{"2":{"30":2}}],["$remote",{"2":{"30":5}}],["访问http",{"2":{"67":1}}],["访问如果登录页正常出现验证码",{"2":{"32":1}}],["访问",{"2":{"30":1,"66":1}}],["访问域名",{"2":{"27":1}}],["8",{"2":{"50":1,"57":3,"62":1,"65":2}}],["80",{"2":{"34":2}}],["8001",{"2":{"30":1,"34":2,"50":5,"66":2,"83":1}}],["86400s",{"2":{"30":1}}],["8s",{"2":{"23":2}}],["403",{"2":{"71":1}}],["401",{"2":{"71":1}}],["46",{"2":{"66":1}}],["45",{"2":{"66":3}}],["4b57",{"2":{"57":1}}],["47ac",{"2":{"57":1}}],["4fd03504",{"2":{"57":1}}],["4",{"0":{"30":1,"56":1,"67":1},"2":{"57":2,"60":1,"71":1}}],["日志",{"2":{"29":1}}],["改成自己的应用名称",{"2":{"29":1}}],["表示访问服务端接口而不是静态资源",{"2":{"30":1}}],["表示",{"2":{"29":2}}],["表单",{"2":{"15":1}}],["方便一张图片使用在多种场景",{"2":{"86":1}}],["方式二",{"0":{"79":1}}],["方式一",{"0":{"76":1},"1":{"77":1,"78":1}}],["方式",{"0":{"31":1},"1":{"32":1,"33":1,"34":1,"35":1},"2":{"31":1,"73":1}}],["方式启动",{"2":{"29":1}}],["方法上",{"0":{"77":1}}],["方法去调用主应用的一些对象方法",{"2":{"50":1}}],["方法第一个参数如果为",{"2":{"40":1}}],["方法",{"2":{"20":1,"50":5}}],["重启生成表",{"2":{"38":1}}],["重启",{"2":{"29":1}}],["重启某个服务",{"2":{"29":1}}],["重写",{"0":{"20":1}}],["重写逻辑",{"2":{"16":2}}],["重写实现",{"0":{"16":1}}],["停止某个服务",{"2":{"29":1}}],["命令行安装",{"2":{"29":1}}],["到后端服务",{"2":{"27":1}}],["所以需要配置",{"2":{"27":1}}],["所有的",{"2":{"12":1}}],["安全考虑生产环境不会自动初始化数据库",{"2":{"27":1}}],["安装云存储插件",{"2":{"85":1}}],["安装插件将打包好的",{"2":{"59":1}}],["安装插件",{"0":{"59":1}}],["安装插件之后",{"2":{"50":1}}],["安装",{"0":{"49":1},"2":{"28":1}}],["安装依赖",{"0":{"28":1},"2":{"27":1,"67":1}}],["安装宝塔",{"2":{"27":1}}],["恭喜你",{"2":{"27":1,"32":1}}],["反向代理",{"2":{"27":2}}],["编写实体类",{"2":{"38":1}}],["编译打包后端服务",{"2":{"27":1}}],["编码",{"0":{"7":1},"2":{"92":1}}],["上传模式",{"2":{"86":1}}],["上传前后端代码到服务器",{"2":{"27":1}}],["上面只是个例子",{"2":{"55":1}}],["上加了这个注解后",{"2":{"20":1}}],["官方多环境配置文档",{"2":{"27":1}}],["官网文档",{"2":{"21":1}}],["官网",{"2":{"1":1,"28":1}}],["查看服务的输出日志",{"2":{"29":1}}],["查看",{"2":{"27":1}}],["查询该用户所具有的权限并缓存",{"2":{"71":1}}],["查询模式querymodeenum",{"2":{"14":1}}],["查询连表字段",{"2":{"14":1}}],["查询另一张表的字段",{"2":{"14":1}}],["查询配置",{"0":{"14":1}}],["查询列表",{"2":{"13":1}}],["查询条件过滤",{"2":{"13":1,"15":1,"16":1,"83":1}}],["本地上传配置",{"2":{"86":1}}],["本地上传",{"2":{"85":1}}],["本地配置完数据库运行",{"2":{"27":1,"32":1}}],["本部署教程以",{"2":{"26":1}}],["本身",{"2":{"21":1}}],["普通方式",{"0":{"26":1},"1":{"27":1,"28":1,"29":1,"30":1}}],["以往的框架已经越来越不能满足现代化的开发需求",{"2":{"92":1}}],["以",{"2":{"65":1}}],["以下包会打入jar",{"2":{"57":1}}],["以下是我们的一些计划",{"2":{"101":1}}],["以下是",{"2":{"31":1}}],["以下教程以",{"2":{"25":1}}],["以宝塔为例",{"0":{"27":1,"32":1}}],["以上包在主应用已经引入",{"2":{"57":1}}],["以上内容来自第三方相关产品的官方文档或第三方平台",{"2":{"22":1}}],["以上是针对entity单表查询方式",{"2":{"14":1}}],["低价云服务器推荐",{"2":{"25":1}}],["🔥",{"2":{"25":1}}],["因为有你们的支持",{"2":{"103":1}}],["因为这可能会造成数据丢失",{"2":{"24":1}}],["因此如果你需要开发",{"2":{"43":1}}],["因此会带来指数级的性能增长",{"2":{"21":1}}],["因此会带来更高的自主性",{"2":{"21":1}}],["切勿在生产环境开启自动建表功能",{"2":{"24":1}}],["并异步进行刷新用户权限",{"2":{"104":1}}],["并可以在init方法中初始化返回字段类型及数据组装函数定义",{"2":{"104":1}}],["并将用户信息存在整个请求过程中的",{"2":{"73":1}}],["并实现",{"2":{"50":1,"57":1}}],["并实现值的插入",{"2":{"44":1}}],["并定义表数据",{"2":{"44":1}}],["并且支持表字段的修改",{"2":{"24":1}}],["并重写了",{"2":{"20":1}}],["节省了大量手动工作",{"2":{"24":1}}],["尤其是开发过程中频繁的新增表及变更表结构",{"2":{"24":1}}],["列出当前的服务",{"2":{"29":1}}],["列的配置",{"2":{"24":1}}],["列表查询",{"2":{"14":1}}],["而不用一味地堆功能",{"2":{"47":1}}],["而不需要关心数据库的表",{"2":{"24":1}}],["而是也非常不灵活",{"2":{"43":1}}],["而是对它做一层封装",{"2":{"20":1}}],["有且只能有一个类被",{"2":{"57":1}}],["有时候开发时的配置和生产环境的配置是不一样的",{"2":{"51":1}}],["有些功能模块上线时",{"2":{"44":1}}],["有了该文件",{"2":{"33":1}}],["有一项重要的能力就是表结构自动维护",{"2":{"24":1}}],["有兴趣的可以关注我们",{"2":{"4":1}}],["用法",{"2":{"84":1}}],["用来判定用户是否有此权限",{"2":{"71":1}}],["用configattribute的集合作为value",{"2":{"71":1}}],["用权限的path作为map的key",{"2":{"71":1}}],["用户是系统操作者",{"2":{"93":1}}],["用户管理",{"2":{"93":1}}],["用户管理模块",{"2":{"42":1}}],["用户",{"2":{"73":1}}],["用户详情",{"2":{"71":1}}],["用户名",{"2":{"73":1}}],["用户名不存在",{"2":{"71":1}}],["用户名已存在",{"2":{"39":1,"40":3}}],["用户登录",{"2":{"71":1}}],["用户id",{"2":{"14":1}}],["用过",{"2":{"24":1}}],["理论上你只需修改一些不兼容的代码就可以正常运行了",{"2":{"23":1}}],["那样工作量太大了",{"2":{"23":1}}],["是",{"2":{"60":1}}],["是插件的配置信息",{"2":{"55":1}}],["是具体的业务框架",{"2":{"23":1}}],["是否支持在微服务项目下进行",{"2":{"22":1}}],["但是每次都是用代码手搓",{"2":{"43":1}}],["但是它为我们提供了改造的可能",{"2":{"23":1}}],["但是",{"2":{"23":1}}],["虽然",{"2":{"23":1}}],["星瑞格数据库",{"2":{"23":1}}],["华为",{"2":{"23":1}}],["华库",{"2":{"23":1}}],["亚马逊",{"2":{"23":1}}],["行云数据库",{"2":{"23":1}}],["瀚高数据库",{"2":{"23":1}}],["神通数据库",{"2":{"23":1}}],["南大通用数据库",{"2":{"23":1}}],["南大通用",{"2":{"23":1}}],["人大金仓数据库",{"2":{"23":1}}],["kyi=",{"2":{"50":1}}],["kingbasees",{"2":{"23":1}}],["keyname",{"2":{"44":2}}],["keyword",{"2":{"14":1}}],["keywordlikefields",{"2":{"14":1}}],["key",{"2":{"9":1,"30":1,"44":1,"45":3,"46":3,"50":4,"55":1,"56":1,"84":2}}],["虚谷数据库",{"2":{"23":1}}],["达梦数据库",{"2":{"23":1}}],["及以上数据库",{"2":{"23":1}}],["及以下数据库",{"2":{"23":1}}],["及更高性能",{"2":{"22":1}}],["描述",{"2":{"23":1,"84":1}}],["欢迎联系我们",{"2":{"101":1}}],["欢迎提交pr",{"2":{"98":1}}],["欢迎纠正",{"2":{"22":1}}],["欢迎加入我们大家庭一起讨论",{"2":{"2":1}}],["若有错误",{"2":{"22":1}}],["项目中常见的问题",{"2":{"99":1}}],["项目是开源免费",{"2":{"95":1}}],["项目是前后端分离的",{"2":{"64":1}}],["项目启动自动插入数据参考",{"2":{"84":1}}],["项目按照模块化的方式组织",{"2":{"41":1}}],["项目部署",{"0":{"25":1},"1":{"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1}}],["项目",{"2":{"22":1}}],["非低代码",{"2":{"37":1}}],["非",{"2":{"22":1}}],["quot",{"2":{"22":2,"39":2,"40":2}}],["querymodeenum",{"2":{"14":2}}],["querywrapper",{"2":{"14":6,"16":3,"21":1,"22":1}}],["query",{"2":{"11":1,"14":1}}],["和",{"2":{"22":1}}],["和传统的",{"2":{"16":1}}],["比如orderid",{"2":{"84":1}}],["比如替换系统的上传组件",{"2":{"56":1}}],["比如你有一个订单管理的模块",{"2":{"42":1}}],["比如",{"2":{"22":1,"44":1,"50":1}}],["借助其他框架或收费",{"2":{"22":1}}],["字典管理",{"2":{"93":1}}],["字典信息",{"2":{"78":1}}],["字典回写",{"2":{"22":1}}],["字段",{"2":{"56":1,"73":1}}],["字段解释",{"0":{"56":1}}],["字段模块",{"2":{"42":1}}],["字段加密",{"2":{"22":1}}],["字段权限",{"2":{"22":1}}],["字段的",{"2":{"22":1}}],["字段全匹配",{"2":{"14":1}}],["收费",{"2":{"22":4}}],["✔️",{"2":{"22":4}}],["审计",{"2":{"22":1}}],["乐观锁",{"2":{"22":1}}],["乐观锁更新",{"2":{"21":1}}],["未知",{"2":{"22":1}}],["传输",{"2":{"22":1}}],["无论是注解在方法还是类上",{"2":{"78":1}}],["无需授权的",{"2":{"95":1}}],["无需安装",{"2":{"65":1}}],["无需手动通过",{"2":{"40":1}}],["无需额外安装软件",{"2":{"8":1}}],["无法做到全部支持",{"2":{"23":1}}],["无其他第三方依赖",{"2":{"22":1}}],["配置完数据库直接启动",{"2":{"100":1}}],["配置系统菜单",{"2":{"93":1}}],["配置文件",{"0":{"79":1}}],["配置文件位于src",{"2":{"65":1}}],["配置数据库",{"0":{"65":1}}],["配置插件信息",{"2":{"55":1}}],["配置点3",{"2":{"30":1}}],["配置点2",{"2":{"30":1}}],["配置点1",{"2":{"30":1}}],["配置示例",{"0":{"30":1}}],["配置淘宝镜像",{"2":{"28":1}}],["配置",{"0":{"51":1,"70":1},"2":{"22":1,"27":1}}],["复合主键",{"2":{"22":1}}],["生成",{"2":{"38":1}}],["生成前端代码",{"2":{"38":1}}],["生成后端代码",{"2":{"38":1}}],["生成策略",{"2":{"22":1}}],["生成的路由前缀为",{"2":{"18":1}}],["❌",{"2":{"22":30}}],["✅",{"2":{"22":51}}],["功能",{"2":{"100":1}}],["功能几乎跟nodejs",{"2":{"94":1}}],["功能或特点",{"2":{"22":1}}],["功能对比",{"0":{"22":1}}],["拦截器",{"2":{"21":1}}],["没有可初始化的插件",{"2":{"66":1}}],["没有任何的",{"2":{"21":1}}],["没有任何",{"2":{"21":1}}],["没有设置astype",{"2":{"14":1}}],["高性能",{"2":{"21":1}}],["高效的缓存解决方案",{"2":{"8":1}}],["逻辑删除",{"2":{"21":1,"22":1}}],["多租户",{"2":{"22":1}}],["多数据源是否支持",{"2":{"22":2}}],["多数据源支持",{"2":{"22":1}}],["多种",{"2":{"22":1}}],["多张表",{"2":{"22":1}}],["多主键",{"2":{"21":1}}],["多表查询",{"2":{"21":1,"22":3}}],["稳定性越差",{"2":{"21":1}}],["依赖越多",{"2":{"21":1}}],["把控性和稳定性",{"2":{"21":1}}],["再无任何第三方依赖",{"2":{"21":1}}],["除了",{"2":{"21":1,"22":1,"23":1}}],["更新",{"0":{"103":1},"1":{"104":1,"105":1,"106":1,"107":1}}],["更灵活",{"2":{"21":1}}],["更轻量",{"2":{"21":1,"22":2}}],["更加强大的",{"2":{"21":1}}],["更加简洁",{"2":{"12":1}}],["详细用法请查看",{"2":{"21":1}}],["集成了比",{"2":{"21":1}}],["根据",{"2":{"24":1}}],["根据一定规则生成",{"2":{"20":1}}],["根据列表查询单个信息",{"2":{"13":1}}],["自动编码功能",{"2":{"106":1}}],["自动生成前端页面",{"2":{"38":1}}],["自动映射成数据库的表结构",{"2":{"24":1}}],["自动建表",{"0":{"24":1}}],["自带的注解",{"2":{"20":1}}],["自定义路由注解",{"0":{"19":1}}],["自定义类型默认为",{"2":{"14":1}}],["自定义场景主要使用在关联表查询插件",{"2":{"14":1}}],["自定义查询模式",{"2":{"14":1}}],["自定义的查询方式",{"2":{"14":1}}],["包或其内部的类和资源",{"2":{"60":1}}],["包或类",{"2":{"60":1}}],["包具有以下几个显著的优势",{"2":{"60":1}}],["包的位置和版本",{"2":{"60":1}}],["包括本地文件系统",{"2":{"60":1}}],["包括一些核心的组件工具",{"2":{"42":1}}],["包时会想该插件注入",{"2":{"50":1}}],["包下创建",{"2":{"42":1}}],["包下加一级",{"2":{"18":1}}],["包",{"2":{"18":1,"42":1,"60":3}}],["在线",{"2":{"93":1}}],["在线演示",{"2":{"7":1}}],["在修改数据之前或之后做一些处理",{"2":{"82":1}}],["在配置文件中加需要忽略的路径",{"2":{"79":1}}],["在项目编译的时候会自动生成这些文件",{"2":{"100":1}}],["在项目根目录下",{"2":{"67":1}}],["在项目启动的时候会去加载该文件",{"2":{"44":1}}],["在后台插件管理页面",{"2":{"59":1}}],["在后台插件管理里可以动态修改",{"2":{"55":1}}],["在执行打包的过程",{"2":{"57":1}}],["在我们脚手架上你可以发现",{"2":{"57":1}}],["在开发过程中如果需要引入第三方类库",{"2":{"57":1}}],["在提供的插件脚手架中已经应用了常用的依赖如",{"2":{"57":1}}],["在插件导入时才能被识别到",{"2":{"57":1}}],["在打包的时候选择要打包的插件",{"2":{"54":1}}],["在加载",{"2":{"50":1}}],["在controller接口上加上",{"2":{"46":1}}],["在某个版本需要新增数据的话",{"2":{"44":1}}],["在新增功能模块时",{"2":{"42":1}}],["在",{"2":{"21":1,"40":1,"42":2,"44":1,"58":1,"60":1}}],["在任何一个系统中",{"2":{"21":1}}],["在历史版本中需在",{"2":{"18":1}}],["27",{"0":{"107":1}}],["2b8",{"2":{"65":1}}],["26",{"2":{"57":3}}],["20",{"2":{"84":1}}],["200",{"2":{"30":1}}],["2024",{"0":{"104":1,"105":1,"106":1,"107":1},"2":{"18":1,"50":8,"66":4}}],["2",{"0":{"28":1,"33":1,"50":1,"54":1,"65":1,"105":1},"2":{"57":5,"60":2,"71":1}}],["256x256",{"2":{"56":1}}],["25",{"0":{"104":1},"2":{"18":1}}],["31908",{"2":{"66":4}}],["383+08",{"2":{"66":1}}],["382+08",{"2":{"66":1}}],["38",{"2":{"66":4}}],["3306",{"2":{"65":1}}],["32",{"2":{"57":1}}],["32615",{"2":{"50":8}}],["3c64059230d0",{"2":{"57":1}}],["3600s",{"2":{"30":3}}],["3",{"0":{"29":1,"34":1,"51":1,"55":1,"66":1,"104":1},"2":{"18":1,"57":1,"60":1,"62":2,"66":1,"71":1,"89":1,"90":1}}],["3000s",{"2":{"30":2}}],["302",{"2":{"30":1}}],["301",{"2":{"30":1}}],["304",{"2":{"30":1}}],["30",{"2":{"11":1}}],["该功能主要完成系统用户配置",{"2":{"93":1}}],["该接口需要登录鉴权",{"2":{"46":1}}],["该接口解析的前缀则是",{"2":{"18":1}}],["该文件是前端自动扫描后端接口生成的",{"2":{"33":1}}],["该类继承了",{"2":{"20":1}}],["该父类已经实现了以下六个基础方法",{"2":{"12":1}}],["同时如果个别接口需要忽略记录请求日志",{"2":{"68":1}}],["同级",{"2":{"67":1}}],["同级下有个",{"2":{"18":1}}],["同样也可以对",{"2":{"16":1}}],["转成小写替换掉",{"2":{"18":1}}],["与前端紧密结合",{"2":{"85":1}}],["与",{"2":{"18":1,"69":1}}],["x26",{"2":{"65":2}}],["xml",{"2":{"42":1,"57":2,"58":2}}],["x",{"2":{"30":7,"50":1,"90":1,"107":1}}],["xcloud",{"2":{"23":1}}],["xugu",{"2":{"23":1}}],["xxxxx",{"2":{"51":2}}],["xxx",{"2":{"18":3,"50":2,"55":2}}],["x3c",{"2":{"13":1,"14":4,"15":1,"16":5,"20":1,"40":2,"50":1,"57":81,"58":4,"71":13,"83":1,"84":1}}],["模块化",{"2":{"60":1}}],["模块包",{"2":{"42":1}}],["模块名和",{"2":{"18":1}}],["模块名",{"2":{"18":2}}],["模块目录",{"2":{"18":1}}],["│─",{"2":{"54":1}}],["│",{"2":{"18":17,"42":36,"54":12}}],["原理参考美团点评分布式id",{"2":{"84":1}}],["原理",{"0":{"17":1,"71":1},"1":{"18":1,"19":1,"20":1}}],["原生",{"2":{"9":1}}],["接口的请求入参日志",{"2":{"93":1}}],["接口",{"2":{"18":1,"33":1}}],["接口路由规则",{"0":{"18":1}}],["接口到前端页面的一键生成",{"2":{"7":1,"37":1}}],["接下来我们看看实现的原理",{"2":{"16":1}}],["对系统中经常使用的一些较为固定的数据进行维护",{"2":{"93":1}}],["对系统动态配置常用参数",{"2":{"93":1}}],["对应实体",{"2":{"82":2}}],["对应插件内的方法",{"2":{"50":1}}],["对应请求参数中的",{"2":{"14":1}}],["对应请求参数中同名参数",{"2":{"14":1}}],["对",{"2":{"22":1}}],["对比一下是简化了不少",{"2":{"16":1}}],["进行重写",{"2":{"16":1}}],["中获得",{"2":{"73":1}}],["中实现动态加载",{"2":{"60":1}}],["中的",{"2":{"58":1}}],["中排除掉不打入jar",{"2":{"57":2}}],["中重写方法",{"2":{"16":1}}],["中加非存储数据库的字段",{"2":{"14":1}}],["rawpassword",{"2":{"71":4}}],["rich",{"2":{"44":1}}],["runtimeexception",{"2":{"57":1}}],["run",{"2":{"34":2,"44":1,"67":1}}],["roleids",{"2":{"71":3,"73":1}}],["root",{"2":{"29":1,"30":1,"65":1}}],["row",{"2":{"22":1}}],["rpc",{"2":{"22":1}}],["r",{"2":{"15":2,"16":1,"40":17,"46":2,"73":1,"77":2,"86":4}}],["refreshtoken可以当token使用问题",{"2":{"105":1}}],["refreshexpire",{"2":{"70":1}}],["replace",{"2":{"71":1}}],["replaceall",{"2":{"71":1}}],["record",{"2":{"68":1}}],["receive",{"2":{"46":3}}],["recycle",{"2":{"42":1}}],["reentrantlock",{"2":{"45":1}}],["required",{"2":{"86":1}}],["requiredargsconstructor",{"2":{"44":1,"46":1,"50":2,"86":1}}],["requirenonnull",{"2":{"46":1}}],["requestpart",{"2":{"86":1}}],["requestparam",{"2":{"50":3}}],["requestparams",{"2":{"13":1,"14":2,"15":4,"16":5,"40":4,"46":2,"68":1,"73":2,"82":4,"83":1}}],["requestmatchers",{"2":{"71":1}}],["requestmappinginfo",{"2":{"20":2}}],["requestmappinghandlermapping",{"2":{"20":2}}],["requestmapping",{"2":{"19":2,"50":1}}],["requestcontextholder",{"2":{"46":1}}],["requestattribute",{"2":{"15":1,"46":1,"73":1}}],["request",{"2":{"13":1,"14":2,"15":1,"16":1,"46":2,"68":3,"71":2,"83":1,"86":2}}],["requests",{"2":{"0":1}}],["remark",{"2":{"44":2}}],["remote",{"2":{"30":2}}],["rewrite",{"2":{"30":1}}],["readme",{"2":{"55":2,"56":1}}],["readbytes",{"2":{"50":1}}],["read",{"2":{"30":2}}],["real",{"2":{"30":2}}],["registry",{"2":{"28":2}}],["redirect",{"2":{"30":1}}],["redis",{"2":{"8":6,"35":1}}],["redshift",{"2":{"23":2}}],["relationonetomany",{"2":{"14":2}}],["relations",{"2":{"14":2}}],["response",{"2":{"71":2}}],["responsebody",{"2":{"50":2}}],["restaccessdeniedhandler",{"2":{"71":3}}],["restart",{"2":{"29":2}}],["restcontrolleradvice",{"2":{"40":1}}],["result",{"2":{"11":3,"50":8}}],["resources",{"2":{"42":1,"44":1,"51":2,"54":1,"65":1,"86":1}}],["resource",{"2":{"10":1,"68":1,"71":10}}],["return",{"2":{"9":1,"10":1,"11":3,"15":1,"16":2,"20":1,"40":8,"46":2,"50":2,"57":1,"71":13,"77":1,"86":2}}],["将由以下这个类实现自动配置模块路由",{"2":{"20":1}}],["将",{"2":{"15":1}}],["gt",{"2":{"62":3,"65":1,"89":3,"100":3}}],["grantedauthority>",{"2":{"71":1}}],["graalvm",{"2":{"62":1,"89":1}}],["groupid>org",{"2":{"57":1}}],["groupid>com",{"2":{"57":1}}],["groupid>cn",{"2":{"57":1}}],["groupid>",{"2":{"57":3}}],["greenplum",{"2":{"23":2}}],["gitcode",{"2":{"96":1,"97":1}}],["gitee",{"2":{"53":1,"96":1,"97":1,"98":1}}],["github",{"2":{"53":1,"96":1,"97":1,"98":1}}],["g",{"2":{"28":1,"29":1}}],["goal>",{"2":{"57":1}}],["goal>shade",{"2":{"57":1}}],["goals>",{"2":{"57":2}}],["goldilocks",{"2":{"23":2}}],["goodslist",{"2":{"14":1}}],["gbase",{"2":{"23":3}}],["gauss",{"2":{"23":2}}],["getbytes",{"2":{"71":2}}],["geturls",{"2":{"71":1}}],["getusername",{"2":{"40":4,"71":3}}],["getsecureobjectclass",{"2":{"71":1}}],["getstatus",{"2":{"71":2}}],["getstr",{"2":{"15":1}}],["getroles",{"2":{"71":1}}],["getresponse",{"2":{"71":1}}],["getresourceasstream",{"2":{"50":1}}],["getrequesturl",{"2":{"71":1}}],["getrequesturi",{"2":{"46":1}}],["getrequest",{"2":{"46":1,"71":1}}],["getrequestattributes",{"2":{"46":1}}],["getdepartmentidsbyroleids",{"2":{"71":1}}],["getperms",{"2":{"71":1}}],["getparent",{"2":{"50":1}}],["getparentresource",{"2":{"50":2}}],["getpasswordv",{"2":{"71":1}}],["getpassword",{"2":{"40":2,"71":1}}],["getapp",{"2":{"77":1}}],["getadminuserinfo",{"2":{"73":1}}],["getadminusername",{"2":{"73":1}}],["getauthenticationmanager",{"2":{"71":1}}],["getallconfigattributes",{"2":{"71":1}}],["getallperms",{"2":{"71":1}}],["getattributes",{"2":{"71":1}}],["getattribute",{"2":{"68":1}}],["getabsolutepath",{"2":{"60":1}}],["getannotationsbytype",{"2":{"20":1}}],["getinstance",{"2":{"50":1}}],["getid",{"2":{"40":2,"71":6}}],["getone",{"2":{"40":2,"71":1}}],["get等请求方式是否正确",{"2":{"40":1}}],["getmode",{"2":{"86":1}}],["getmapping",{"2":{"73":1,"77":1,"86":1}}],["getmappingformethod",{"0":{"20":1},"2":{"20":3}}],["getmessage",{"2":{"40":7}}],["getchain",{"2":{"71":1}}],["getcontextclassloader",{"2":{"60":1}}],["getcode",{"2":{"40":1}}],["getclassloader",{"2":{"50":1}}],["getclass",{"2":{"50":1}}],["getcurrentuserid",{"2":{"14":1,"46":2,"73":1,"74":1}}],["getter",{"2":{"14":1}}],["getnum",{"2":{"11":1}}],["getlogistics",{"2":{"11":1}}],["get",{"2":{"10":1,"11":2,"13":1,"14":2,"46":1,"50":2,"57":1,"71":1}}],["订单id",{"2":{"84":1}}],["订单商品列表",{"2":{"14":1}}],["订单信息",{"2":{"14":1}}],["订单产品列表也一并查出",{"2":{"14":1}}],["关联查询用法参考",{"2":{"14":1}}],["如文件上传",{"2":{"106":1}}],["如支付",{"2":{"92":1}}],["如不占用主服务器带宽",{"2":{"86":1}}],["如阿里云",{"2":{"85":1}}],["如需启用调整为",{"2":{"84":2}}],["如我们这边示例使用到了中文转拼音",{"2":{"57":1}}],["如",{"2":{"35":1,"85":1,"86":1}}],["如下表格所示",{"2":{"23":1}}],["如下面这个订单查询",{"2":{"14":1}}],["如果方便请点下",{"2":{"103":1}}],["如果你有更好的建议",{"2":{"101":1}}],["如果你是自动化部署",{"2":{"33":1}}],["如果文档有缺失",{"2":{"98":1}}],["如果不在权限表中则放行",{"2":{"71":1}}],["如果不满足需求",{"2":{"16":1}}],["如果项目中启用了redis",{"2":{"45":1}}],["如果同一张表历史已经有初始化过数据",{"2":{"44":1}}],["如果没效",{"2":{"30":1}}],["如果一切正常",{"2":{"27":1}}],["如果在权限表中",{"2":{"71":1}}],["如果在原文件直接修改将不生效",{"2":{"44":1}}],["如果在",{"2":{"18":1}}],["如果我们有需要连表查询",{"2":{"14":1}}],["如果我们的项目对你有用",{"2":{"2":1}}],["web设置配合使用",{"2":{"86":1}}],["web设置",{"2":{"86":1}}],["web",{"2":{"50":4,"86":1}}],["wrappers",{"2":{"40":2,"71":1}}],["without",{"2":{"57":1}}],["with",{"2":{"14":1}}],["wuliu",{"2":{"11":1}}],["还可以对图片进行各种如压缩",{"2":{"86":1}}],["还可以了解到一些前沿的技术",{"2":{"4":1}}],["还有",{"2":{"14":1}}],["也支持绝对路径",{"2":{"86":1}}],["也可以注解在类上",{"2":{"78":1}}],["也可以使用别人开发的插件",{"2":{"47":1}}],["也可以自己定义vo",{"2":{"14":1}}],["也希望广大开发者粉丝帮助完善文档",{"2":{"0":1}}],["实际开发中可以根据自己的需求来配置",{"2":{"55":1}}],["实现功能可插拔",{"2":{"93":1}}],["实现应用程序的快速扩展和升级",{"2":{"60":1}}],["实现方法",{"2":{"60":1}}],["实现动态加载的技术方案",{"2":{"60":1}}],["实现原理",{"0":{"60":1}}],["实现",{"2":{"45":1}}],["实现简单功能从",{"2":{"7":1,"37":1}}],["实例数量",{"2":{"29":1}}],["实体需以",{"2":{"44":1}}],["实体中",{"2":{"14":1}}],["实体",{"2":{"14":1,"24":1}}],["默认是相对路径",{"2":{"86":1}}],["默认禁用",{"2":{"84":2}}],["默认集成springdoc",{"2":{"83":1}}],["默认忽略app端接口",{"2":{"68":1}}],["默认账户密码",{"2":{"67":1}}],["默认的日志位置",{"2":{"29":1}}],["默认实现了通用的六个接口方法",{"2":{"16":1}}],["默认实现了两种缓存",{"2":{"8":1}}],["默认为map",{"2":{"14":1}}],["默认为entity",{"2":{"14":1}}],["默认转成map",{"2":{"14":1}}],["连表查询",{"2":{"14":1}}],["utf",{"2":{"50":1}}],["util",{"2":{"50":4}}],["uniindex",{"2":{"84":1}}],["union",{"2":{"22":2}}],["unlock",{"2":{"45":1,"46":1}}],["ui",{"2":{"38":1,"79":1,"83":1,"91":1}}],["uploadmode",{"2":{"86":2}}],["uploadpath",{"2":{"86":1}}],["upload",{"2":{"56":1,"79":1,"86":5}}],["upgrade",{"2":{"30":6}}],["updates",{"2":{"50":1}}],["update",{"2":{"12":1,"13":1,"14":1,"15":1,"16":1,"78":1,"83":1}}],["uri$is",{"2":{"30":1}}],["urlclassloader",{"2":{"60":2}}],["url",{"2":{"15":1,"60":3,"65":1,"71":2,"86":1}}],["uxdb",{"2":{"23":1}}],["useunicode=true",{"2":{"65":1}}],["useplugin",{"2":{"50":2}}],["usecache",{"2":{"50":2}}],["usestatus",{"2":{"14":1}}],["users",{"2":{"86":2}}],["userinfo",{"2":{"71":1,"73":2}}],["userid",{"2":{"14":1,"73":2,"74":1}}],["userdetails",{"2":{"71":2}}],["userdetailsservice",{"2":{"71":4}}],["usernamepasswordauthenticationfilter",{"2":{"71":1}}],["usernamenotfoundexception",{"2":{"71":2}}],["username",{"2":{"65":1,"71":2,"73":2}}],["user",{"2":{"14":5,"15":2,"18":2,"42":1}}],["element",{"2":{"91":1}}],["else",{"2":{"50":1}}],["enable",{"2":{"84":1}}],["enablewebsecurity",{"2":{"71":1}}],["encodedpassword",{"2":{"71":2}}],["encode",{"2":{"71":1}}],["entrypointunauthorizedhandler",{"2":{"71":3}}],["entity",{"2":{"14":8,"22":2,"40":12,"42":2,"44":1}}],["epsevent",{"2":{"66":1}}],["eps",{"2":{"66":2,"77":2}}],["eps识别不了",{"2":{"18":1}}],["error",{"2":{"40":10}}],["e",{"2":{"40":19,"57":2}}],["expression",{"2":{"57":2}}],["expire",{"2":{"70":1}}],["expiretime",{"2":{"45":1,"46":1}}],["expires",{"2":{"30":1}}],["excluding",{"2":{"57":14}}],["exclude>cn",{"2":{"57":2}}],["exclude>jakarta",{"2":{"57":1}}],["exclude>io",{"2":{"57":4}}],["exclude>",{"2":{"57":16}}],["exclude>org",{"2":{"57":9}}],["excludes>",{"2":{"57":2}}],["exceptionhandling",{"2":{"71":1}}],["exceptionhandler",{"2":{"40":6}}],["exception",{"2":{"40":2,"57":1,"71":2}}],["execution",{"2":{"100":1}}],["execution>",{"2":{"57":2}}],["executions>",{"2":{"57":2}}],["exec",{"2":{"50":5}}],["extern",{"2":{"50":1}}],["extends",{"2":{"13":1,"14":3,"15":1,"16":2,"20":1,"50":1,"57":1,"71":1,"83":1,"84":1}}],["extractedmenu",{"2":{"44":1}}],["extracteddb",{"2":{"44":1}}],["equals",{"2":{"71":1}}],["eq",{"2":{"14":2,"40":2,"71":2}}],["针对这种场景",{"2":{"14":1}}],["zh",{"2":{"14":3}}],["false",{"2":{"84":1,"86":1}}],["favicon",{"2":{"68":1,"79":1}}],["frameoptionsconfig",{"2":{"71":1}}],["frameoptions",{"2":{"71":1}}],["front",{"2":{"30":1}}],["from",{"2":{"14":1,"22":1,"57":13}}],["form",{"2":{"86":1}}],["format",{"2":{"57":7}}],["for",{"2":{"30":4,"66":1,"71":2}}],["forwarded",{"2":{"30":4}}],["fluent",{"2":{"22":1}}],["flex",{"2":{"14":3,"21":2,"22":1,"23":2,"90":1,"100":1}}],["fi",{"2":{"71":7}}],["filterconfig",{"2":{"71":2}}],["filterchain",{"2":{"68":3,"71":1}}],["filterinvocation",{"2":{"71":5}}],["filterinvocationsecuritymetadatasource",{"2":{"71":2}}],["filter",{"2":{"68":1,"71":1}}],["fileuploadstrategyfactory",{"2":{"86":4}}],["filepath",{"2":{"51":1}}],["files",{"2":{"30":1,"86":2}}],["file",{"2":{"8":1,"60":2,"86":4}}],["finally",{"2":{"46":1,"71":1}}],["final",{"2":{"45":1,"46":1,"84":1,"86":1}}],["firebird",{"2":{"23":2}}],["fieldeq",{"2":{"14":1}}],["具体看",{"2":{"14":2}}],["返回给",{"2":{"20":1}}],["返回字段",{"2":{"14":1}}],["返回哪些字段等",{"2":{"13":1,"15":1,"16":1,"83":1}}],["需和上面的",{"2":{"86":1}}],["需要提取初始化到上面那个",{"2":{"84":1}}],["需要分别拉取前后端代码到本地",{"2":{"64":1}}],["需要初始化一些数据",{"2":{"44":1}}],["需要确保前端和后端在本地运行过一次",{"2":{"33":1}}],["需要通过下面的",{"2":{"14":1}}],["需要组装数据",{"2":{"14":1}}],["需要返回的字段分布在各个表里",{"2":{"14":1}}],["需要模糊查询的字段",{"2":{"14":1}}],["需安装",{"2":{"8":1}}],["个接口",{"2":{"13":1}}],["604800",{"2":{"70":1}}],["6",{"2":{"13":1,"57":12,"62":1,"89":1}}],["6379",{"2":{"8":1}}],["等包",{"2":{"42":1}}],["等待数据库初始化完成",{"2":{"27":1,"32":1}}],["等等",{"2":{"22":1}}],["等参数封装在了一个",{"2":{"15":1}}],["等",{"2":{"13":1,"22":1,"27":1,"38":1,"57":2}}],["删除某个服务",{"2":{"29":1}}],["删除",{"2":{"13":1,"93":1}}],["新增后台扩展插件",{"2":{"106":1}}],["新增一个",{"2":{"42":1}}],["新增",{"2":{"13":1,"104":4,"105":3,"106":1}}],["这将会给我们带来更多的动力",{"2":{"103":1}}],["这些方式都可以解决这个问题",{"2":{"100":1}}],["这边使用到了",{"2":{"57":1}}],["这会使得打包结果很臃肿",{"2":{"57":1}}],["这个可能会给你带来巨大的帮助",{"2":{"43":1}}],["这个解析规则在",{"2":{"18":1}}],["这让我们可以可以专注于业务逻辑和实体",{"2":{"24":1}}],["这样就需要在entity加上另一张表的的字段",{"2":{"14":1}}],["这样就默认实现了以下六个接口",{"2":{"13":1}}],["这是",{"2":{"0":1}}],["v3",{"2":{"79":1}}],["vue3",{"2":{"91":1}}],["vue",{"2":{"33":1,"34":2,"97":3}}],["verify",{"2":{"57":1}}],["version>3",{"2":{"57":1}}],["version>2",{"2":{"57":1}}],["version>",{"2":{"57":3}}],["version>5",{"2":{"57":1}}],["version",{"2":{"30":2,"55":1,"56":1}}],["vertica",{"2":{"23":2}}],["valid",{"2":{"30":1}}],["values",{"2":{"50":1}}],["value",{"2":{"13":1,"14":2,"15":1,"16":1,"19":1,"44":1,"78":1,"83":1,"84":1,"86":4}}],["v7",{"0":{"104":1,"105":1,"106":1,"107":1},"2":{"18":1,"50":1}}],["void",{"2":{"13":1,"14":2,"15":1,"16":1,"38":1,"44":1,"50":3,"68":1,"71":6,"82":2,"83":1}}],["n",{"2":{"93":1}}],["nio",{"2":{"50":5}}],["next",{"2":{"84":1}}],["net",{"2":{"57":4}}],["network",{"2":{"32":1,"33":2,"34":2}}],["new",{"2":{"38":2,"40":2,"57":2,"60":4,"71":12}}],["npm",{"2":{"29":1,"67":2}}],["npmmirror",{"2":{"28":1}}],["nginx",{"0":{"30":1},"2":{"27":3}}],["now",{"2":{"50":2}}],["norepeatsubmitaspect",{"2":{"46":1}}],["norepeatsubmit",{"2":{"45":1,"46":6}}],["no",{"2":{"30":1}}],["node",{"2":{"26":1}}],["nodejs",{"2":{"25":1,"27":1}}],["notnull",{"2":{"14":1,"84":3}}],["name>",{"2":{"58":1}}],["name>my",{"2":{"58":1}}],["name",{"2":{"13":1,"14":3,"15":1,"16":1,"19":1,"29":1,"34":2,"44":2,"55":1,"56":1,"65":1,"83":1,"86":1}}],["null",{"2":{"11":1,"39":1,"40":2,"44":2,"50":1,"57":1,"71":3}}],["number",{"2":{"29":1}}],["num",{"2":{"11":4}}],["示例",{"0":{"13":1}}],["使得代码更加清晰",{"2":{"60":1}}],["使得可以在插件中获取主应用中的",{"2":{"50":1}}],["使得",{"2":{"12":1}}],["使用cool",{"2":{"50":1}}],["使用缓存",{"2":{"50":1}}],["使用插件",{"0":{"48":1},"1":{"49":1,"50":1,"51":1}}],["使用了关联查询",{"2":{"14":1}}],["使用",{"0":{"9":1,"86":1},"2":{"46":1}}],["length",{"2":{"84":1}}],["leafallocentity>",{"2":{"84":1}}],["leafallocentity",{"2":{"84":1}}],["leaf",{"2":{"84":3}}],["lealone",{"2":{"23":2}}],["left",{"2":{"22":1}}],["leftjoin",{"2":{"14":2}}],["loaduserbyusername",{"2":{"71":1}}],["loadresourcedefine",{"2":{"71":2}}],["lombok",{"2":{"50":2,"57":2}}],["local",{"2":{"65":1,"86":2}}],["locations",{"2":{"86":1}}],["location",{"2":{"30":3}}],["lockkey",{"2":{"45":1}}],["logurls",{"2":{"68":1}}],["logo",{"2":{"55":2,"56":2}}],["log`",{"2":{"50":1}}],["log",{"2":{"40":5,"44":1}}],["logs",{"2":{"29":3}}],["logistics",{"2":{"11":2}}],["long",{"2":{"14":1,"40":2,"46":2,"71":2,"73":4,"84":2}}],["list和page支持关联查询",{"2":{"104":1}}],["list",{"2":{"12":1,"13":1,"14":2,"15":1,"16":1,"29":1,"71":1,"78":1,"83":1}}],["jwtauthenticationtokenfilter",{"2":{"71":3}}],["jwtsecurityconfig",{"2":{"71":1}}],["jwtuser",{"2":{"71":6}}],["jwtuserdetailsserviceimpl",{"2":{"71":1}}],["jwt",{"2":{"69":1,"71":1}}],["jdbc",{"2":{"65":2}}],["jdk",{"2":{"62":1,"89":1}}],["jcl",{"2":{"57":2}}],["jakarta",{"2":{"57":3}}],["jarfilepath",{"2":{"60":1}}],["jarurl",{"2":{"60":2}}],["jar",{"2":{"50":1,"57":31,"60":9}}],["javalong",{"2":{"74":1}}],["javaurl",{"2":{"60":1}}],["javapackage",{"2":{"44":1,"50":2,"57":1}}],["javapublic",{"2":{"14":1,"19":1,"20":1,"38":1,"40":2,"68":1}}],["java文件",{"2":{"18":1}}],["java",{"2":{"0":1,"1":1,"8":1,"9":1,"10":1,"11":1,"13":1,"14":2,"15":1,"16":2,"18":3,"24":1,"25":1,"38":2,"40":1,"42":1,"46":2,"50":10,"53":2,"54":2,"57":2,"58":1,"60":1,"62":1,"66":6,"71":4,"73":3,"77":1,"78":1,"82":2,"83":1,"84":1,"86":1,"89":1,"96":3,"98":2}}],["js",{"2":{"29":1,"68":1,"79":1}}],["json参数",{"2":{"44":1}}],["json",{"2":{"44":7,"51":1,"54":1,"55":2,"57":2,"67":1,"84":1}}],["json也提交到代码仓库",{"2":{"33":1}}],["json文件",{"2":{"33":1,"44":1}}],["jsonobject",{"2":{"13":1,"14":2,"15":3,"16":3,"40":2,"46":1,"68":1,"73":1,"82":2,"83":1}}],["jsonutil",{"2":{"11":1,"14":1}}],["jpa",{"2":{"24":2}}],["joinpoint",{"2":{"46":2}}],["join",{"2":{"22":2}}],[">",{"2":{"11":1,"14":1,"20":1,"57":5,"71":10}}],["物流单号",{"2":{"11":1}}],["通过在方法上加tokenignore注解可以的接口不会进行",{"2":{"77":1}}],["通过动态加载",{"2":{"60":2}}],["通过反射实现",{"2":{"50":1}}],["通过拖动配置",{"2":{"43":1}}],["通过",{"2":{"40":1,"60":1}}],["通过管理后台菜单管理的快速创建即可生成",{"2":{"38":1}}],["通过独特的架构",{"2":{"21":1}}],["通过这种方式",{"2":{"14":1}}],["通过coolcache缓存模板",{"0":{"11":1}}],["通过微调大模型学习框架特有写法",{"2":{"7":1,"37":1}}],["我是插件",{"2":{"57":1}}],["我们还引入了其他包",{"2":{"57":1}}],["我们还可以通过自定义方言的方式",{"2":{"23":1}}],["我们提供了插件脚手架",{"2":{"53":1}}],["我们提供了插件系统",{"2":{"47":1}}],["我们可以在运行时动态地加载外部的",{"2":{"60":1}}],["我们可以通过配置文件来实现",{"2":{"51":1}}],["我们可以使用",{"2":{"14":1}}],["我们正在适配",{"2":{"23":1}}],["我们不直接使用",{"2":{"20":1}}],["我们会尽力完善文档",{"2":{"0":1}}],["我被缓存了",{"2":{"9":1}}],["我被调用了",{"2":{"9":1}}],["ico",{"2":{"68":1,"79":1}}],["img",{"2":{"57":1}}],["import",{"2":{"50":14,"57":6}}],["impala",{"2":{"23":2}}],["implements",{"2":{"9":1,"10":1,"16":1,"44":1,"68":1,"71":3}}],["ioexception",{"2":{"68":1,"71":2}}],["ioutil",{"2":{"50":2}}],["io",{"2":{"50":2,"57":2}}],["illegalargumentexception",{"2":{"40":2,"71":2}}],["ip",{"2":{"30":2}}],["i",{"2":{"29":2}}],["ignoredurlsproperties",{"2":{"71":3}}],["ignored",{"2":{"68":1,"79":1}}],["ignore",{"2":{"14":2}}],["is",{"2":{"66":1}}],["isnotempty",{"2":{"14":1}}],["isempty",{"2":{"11":1,"50":1,"71":1}}],["if",{"2":{"11":1,"14":1,"40":2,"45":1,"50":1,"71":2}}],["in",{"2":{"57":1}}],["including",{"2":{"57":2}}],["inputstream",{"2":{"50":4}}],["into",{"2":{"50":1}}],["interceptorstatustoken",{"2":{"71":1}}],["interface",{"2":{"19":1}}],["integer",{"2":{"10":1,"73":1,"84":1}}],["insert",{"2":{"50":4}}],["instances",{"2":{"29":1}}],["install",{"2":{"28":1,"29":1,"67":1}}],["inner",{"2":{"22":1}}],["index",{"2":{"14":1,"30":1,"83":1}}],["init",{"2":{"13":1,"14":2,"15":1,"16":1,"38":1,"66":1,"71":1,"83":1}}],["informix",{"2":{"23":2}}],["info",{"2":{"12":1,"13":1,"14":5,"15":1,"16":1,"18":3,"20":5,"44":1,"50":5,"57":15,"66":4,"78":1,"83":1}}],["invokeotherplugin",{"2":{"50":1}}],["invokemain",{"2":{"50":3,"57":1}}],["invokemethod",{"2":{"50":4}}],["invokeplugin",{"2":{"50":11,"57":2}}],["invoke",{"2":{"11":4,"71":2}}],["idea",{"2":{"100":1}}],["idgenservice",{"2":{"84":3}}],["id",{"2":{"9":1,"10":1,"14":4,"22":1,"73":1,"84":1}}],["obtainsecuritymetadatasource",{"2":{"71":1}}],["observation",{"2":{"57":3}}],["objutil",{"2":{"11":1,"14":1,"50":2}}],["objectutil",{"2":{"71":1}}],["object中包含用户请求request",{"2":{"71":1}}],["objects",{"2":{"46":1}}],["object",{"2":{"9":1,"10":1,"11":2,"16":1,"46":1,"50":4,"57":2,"71":1}}],["ossaccesskeyid=ltai5t8xtpd99yzsjqcc",{"2":{"50":1}}],["oss",{"2":{"35":1,"50":3,"85":1,"86":1}}],["oscar",{"2":{"23":1}}],["ofmillis",{"2":{"45":1,"46":1}}],["ofminutes",{"2":{"11":1}}],["official",{"2":{"53":2,"96":2,"97":2,"98":2}}],["off",{"2":{"30":1}}],["open",{"2":{"79":1}}],["openapi",{"2":{"66":1}}],["opengauss",{"2":{"23":2}}],["operation",{"2":{"46":1,"86":2}}],["option",{"2":{"16":2}}],["oceanbase",{"2":{"23":2}}],["org",{"2":{"50":5,"57":8}}],["oracle12c",{"2":{"23":2}}],["oracle11g",{"2":{"23":1}}],["oracle",{"2":{"23":1}}],["ordergoodsentity>",{"2":{"14":1}}],["order",{"2":{"14":1,"42":2}}],["orderid",{"2":{"11":1,"14":1,"84":4}}],["orderinfoentity>",{"2":{"14":1}}],["orderinfoentity",{"2":{"11":1,"14":1}}],["ok",{"2":{"15":1,"46":1,"77":1,"86":2}}],["o",{"2":{"14":2,"66":1,"71":3}}],["one",{"2":{"30":1}}],["on",{"2":{"14":1}}],["out",{"2":{"9":1,"15":1,"50":5,"57":1}}],["override",{"2":{"9":1,"10":1,"13":1,"14":1,"15":1,"16":3,"20":1,"44":1,"50":1,"57":1,"68":1,"71":11,"82":2,"83":1}}],["multipartfile",{"2":{"86":1}}],["multipart",{"2":{"86":1}}],["mutate",{"2":{"20":1}}],["mode",{"2":{"86":1}}],["modifyafter",{"2":{"82":1}}],["modifyenum",{"2":{"82":2}}],["modifybefore",{"2":{"82":1}}],["modules",{"2":{"18":1,"42":3}}],["ms",{"2":{"66":1}}],["mvn",{"2":{"58":1}}],["micrometer",{"2":{"57":12}}],["midway",{"2":{"27":1,"33":1,"34":2}}],["md",{"2":{"55":1}}],["md5digestashex",{"2":{"71":2}}],["md5",{"2":{"40":2}}],["m",{"2":{"50":6}}],["mediatype",{"2":{"86":2}}],["message",{"2":{"40":1}}],["method",{"2":{"20":3}}],["methodname",{"2":{"9":1,"50":3}}],["myaccessdecisionmanager",{"2":{"71":3}}],["myfiltersecurityinterceptor",{"2":{"71":1}}],["mysecuritymetadatasource",{"2":{"71":1}}],["mysql",{"2":{"23":3,"27":1,"62":1,"65":5,"89":1}}],["my",{"2":{"58":1}}],["mycoolplugintest",{"2":{"54":1}}],["mycoolplugin",{"2":{"50":1,"54":1}}],["mybatis",{"2":{"14":3,"21":5,"22":4,"23":2,"90":1}}],["mac",{"2":{"86":2}}],["matches",{"2":{"71":1}}],["maven",{"2":{"57":7,"62":1,"89":1,"100":1}}],["main",{"2":{"38":1,"42":1,"54":1,"66":3}}],["maxid",{"2":{"84":1}}],["max",{"2":{"29":2,"84":1}}],["mariadb",{"2":{"23":2}}],["marketcouponinfoservice",{"2":{"46":1}}],["marketcouponuserentity>",{"2":{"14":1}}],["marketcouponuserservice",{"2":{"14":1}}],["market",{"2":{"14":7}}],["mappings",{"2":{"86":1}}],["mapper",{"2":{"38":1,"42":4}}],["map",{"2":{"14":9,"71":6}}],["manes",{"2":{"8":1}}],["+",{"2":{"9":2,"11":3,"22":1,"46":2,"50":2,"57":3,"60":2,"71":5}}],["tip",{"2":{"85":1}}],["time`",{"2":{"50":2}}],["timeout",{"2":{"30":6}}],["this",{"2":{"71":1}}],["thread",{"2":{"60":1,"66":1}}],["throwable",{"2":{"46":1}}],["throws",{"2":{"46":1,"68":1,"71":8}}],["throw",{"2":{"40":1,"57":1,"71":1}}],["the",{"2":{"57":14}}],["team",{"2":{"53":2,"96":3,"97":3,"98":2}}],["testplugin",{"2":{"50":2}}],["test",{"2":{"9":1,"10":1,"15":2,"30":1,"38":1,"50":2,"54":1}}],["txt",{"2":{"50":2,"51":2}}],["t",{"2":{"33":2,"82":6}}],["tsupstream",{"2":{"30":1}}],["ts",{"2":{"27":1}}],["tdengine",{"2":{"23":2}}],["trylock",{"2":{"45":1,"46":1}}],["try",{"2":{"30":1,"46":1,"57":1,"71":1}}],["transparent",{"2":{"30":1}}],["transactiontemplate",{"2":{"22":1}}],["transactional",{"2":{"22":1}}],["transform",{"2":{"14":2}}],["true",{"2":{"14":2,"40":1,"71":1,"84":5,"86":1}}],["toarray",{"2":{"71":1}}],["tokenignore",{"2":{"77":1,"78":1}}],["token",{"0":{"75":1},"1":{"76":1,"77":1,"78":1,"79":1},"2":{"70":2,"71":2,"73":1,"75":1,"77":1}}],["tohanyupinyinstring",{"2":{"57":1}}],["tone",{"2":{"57":1}}],["todo",{"2":{"45":1}}],["tostring",{"2":{"14":1}}],["tobean",{"2":{"14":1}}],["task",{"2":{"42":1,"50":3,"66":1}}],["target",{"2":{"58":2}}],["targetfield",{"2":{"14":1}}],["targetclass",{"2":{"9":1}}],["table",{"2":{"14":1,"24":1,"84":1,"90":1}}],["tag",{"2":{"13":1,"14":1,"15":1,"16":1,"83":1,"86":1}}],["typescript",{"2":{"91":1}}],["typehandler",{"2":{"22":1}}],["type",{"2":{"8":2,"82":4}}],["druid",{"2":{"79":1}}],["driver",{"2":{"65":2}}],["daoauthenticationprovider",{"2":{"71":2}}],["datasource",{"2":{"65":1}}],["database",{"2":{"8":1}}],["data",{"2":{"8":1,"42":1,"44":2,"86":1}}],["dynamicjarclassloader",{"2":{"60":3}}],["digestutils",{"2":{"71":2}}],["digesthex",{"2":{"40":2}}],["disable",{"2":{"71":2}}],["dict",{"2":{"42":1}}],["duplicatekeyexception",{"2":{"40":2}}],["duration",{"2":{"11":1,"45":1,"46":1,"66":1}}],["docs",{"2":{"79":1,"98":2}}],["docker",{"0":{"31":1},"1":{"32":1,"33":1,"34":1,"35":1},"2":{"31":3,"32":2,"33":3,"34":2,"35":1}}],["download",{"2":{"79":1}}],["dofilter",{"2":{"68":2,"71":2}}],["doris",{"2":{"23":2}}],["dm",{"2":{"23":1}}],["dbfromjsoninit",{"2":{"44":1}}],["db2",{"2":{"23":2}}],["db",{"2":{"22":1,"42":1,"44":2}}],["desktop",{"2":{"86":2}}],["destroy",{"2":{"71":1}}],["description",{"2":{"13":1,"14":1,"15":1,"16":1,"55":1,"56":1,"83":1,"84":2,"86":2}}],["deployment",{"2":{"100":1}}],["department",{"2":{"71":1}}],["departmentids",{"2":{"71":2}}],["dependency>",{"2":{"57":4}}],["dev",{"2":{"67":1}}],["debug",{"2":{"50":3}}],["derby",{"2":{"23":2}}],["defaultvalue",{"2":{"84":2}}],["default",{"2":{"19":3,"57":1}}],["democoolplugin",{"2":{"57":1}}],["democacheservice",{"2":{"9":1,"10":1}}],["democacheserviceimpl",{"2":{"9":1,"10":1}}],["demov2",{"2":{"44":1}}],["demoentity",{"2":{"38":1}}],["demoentity>",{"2":{"13":1,"14":1,"15":1,"16":5,"83":1}}],["demo",{"2":{"18":4,"38":1,"44":4,"55":1}}],["demomapper",{"2":{"16":1}}],["demoserviceimpl",{"2":{"16":1}}],["demoservice",{"2":{"13":1,"14":1,"15":1,"16":2,"83":1}}],["delete",{"2":{"12":1,"13":1,"14":1,"15":1,"16":1,"29":1,"78":1,"83":1}}],["sdk",{"2":{"102":1}}],["swagger",{"0":{"83":1},"2":{"79":2,"83":1}}],["snapshot",{"2":{"58":1}}],["show",{"2":{"94":1}}],["shaded",{"2":{"57":14}}],["shade",{"2":{"57":6}}],["shellpm2",{"2":{"29":1}}],["shell",{"2":{"29":3,"33":1,"34":1,"67":1}}],["s",{"2":{"57":1}}],["sourceforge",{"2":{"57":4}}],["socket",{"2":{"30":3}}],["socket需额外配置",{"2":{"30":1}}],["simplegrantedauthority",{"2":{"71":1}}],["signature=krlj0uv96tbliagpji",{"2":{"50":1}}],["sinodb",{"2":{"23":1}}],["supports",{"2":{"71":1}}],["super",{"2":{"16":2,"20":1,"40":2,"71":3}}],["success",{"2":{"50":1}}],["summary",{"2":{"46":1,"86":2}}],["split",{"2":{"71":1}}],["space",{"2":{"42":1}}],["springdoc",{"2":{"66":2}}],["springboot3",{"2":{"107":1}}],["springboot",{"2":{"60":1}}],["springframework",{"2":{"50":5,"57":14}}],["spring",{"2":{"20":3,"22":2,"57":13,"65":1,"69":1,"86":1,"90":1}}],["spring方式",{"2":{"9":1}}],["springcache",{"2":{"8":1}}],["slf4j",{"2":{"40":1,"44":1,"50":3,"57":4,"71":2}}],["src",{"2":{"38":1,"66":1}}],["sap",{"2":{"23":1}}],["sysuserentity",{"2":{"71":14}}],["sys",{"2":{"50":4}}],["system",{"2":{"9":1,"15":1,"50":5,"57":1}}],["sybase",{"2":{"23":2}}],["schema",{"2":{"22":1}}],["sqlserver",{"2":{"23":2}}],["sqlserver2005",{"2":{"23":2}}],["sqlite",{"2":{"23":3}}],["sql",{"2":{"21":2,"22":2,"23":1}}],["step",{"2":{"84":2}}],["stereotype",{"2":{"50":1}}],["stream",{"2":{"71":1}}],["str",{"2":{"50":1}}],["strutil",{"2":{"50":2}}],["string",{"2":{"9":1,"10":1,"11":5,"15":1,"19":3,"38":1,"45":1,"46":1,"50":7,"57":4,"71":12,"73":2,"84":2}}],["stop",{"2":{"29":1}}],["star",{"0":{"96":1,"97":1,"98":1},"2":{"103":1}}],["start",{"2":{"29":2}}],["stateless",{"2":{"71":1}}],["static",{"2":{"38":1,"79":1,"86":2}}],["status=200",{"2":{"50":1}}],["status",{"2":{"14":2,"30":1}}],["segment",{"2":{"84":1}}],["sessioncreationpolicy",{"2":{"71":2}}],["sessionmanagement",{"2":{"71":1}}],["securityfilterchain",{"2":{"71":2}}],["securitymetadatasource",{"2":{"71":3}}],["security权限拦截器校验当前用户权限",{"2":{"71":1}}],["securityconfig",{"2":{"71":1}}],["security加载所有设置的权限",{"2":{"71":1}}],["security",{"2":{"69":1,"73":1}}],["send",{"2":{"30":2}}],["servletexception",{"2":{"68":1,"71":3}}],["servletresponse",{"2":{"68":3,"71":1}}],["servletrequest",{"2":{"68":4,"71":1}}],["servletrequestattributes",{"2":{"46":1}}],["servertimezone=gmt",{"2":{"65":1}}],["server",{"2":{"30":2,"86":1}}],["service",{"2":{"9":1,"10":1,"16":3,"33":1,"38":2,"42":2,"66":1}}],["selffield",{"2":{"14":1}}],["select",{"2":{"14":2}}],["setuserdetailsservice",{"2":{"71":1}}],["setaccessdecisionmanager",{"2":{"71":1}}],["setmyaccessdecisionmanager",{"2":{"71":1}}],["setmodule",{"2":{"38":1}}],["setpasswordencoder",{"2":{"71":1}}],["setpassword",{"2":{"40":2}}],["setpageoption",{"2":{"14":2}}],["setentity",{"2":{"38":1}}],["setname",{"2":{"38":1}}],["settings",{"2":{"100":1}}],["settonetype",{"2":{"57":1}}],["settype",{"2":{"38":1}}],["setter",{"2":{"14":1}}],["setlistoption",{"2":{"14":1}}],["set",{"2":{"10":1,"28":1,"30":12,"50":2,"71":5}}],["=5",{"2":{"65":1}}],["==",{"2":{"50":1,"71":2}}],["==>",{"2":{"50":2}}],["=",{"2":{"9":2,"11":4,"13":4,"14":12,"15":4,"16":4,"19":2,"20":3,"38":2,"39":1,"40":5,"45":1,"46":4,"50":8,"57":5,"60":2,"62":3,"68":1,"71":15,"73":3,"74":1,"78":2,"83":4,"84":13,"86":9,"89":3}}],["性能要求比较高或有分布式部署需求的建议配置成",{"2":{"8":1}}],["person",{"2":{"73":2}}],["permitall",{"2":{"71":1}}],["perm",{"2":{"71":5}}],["perms",{"2":{"71":4}}],["phase>",{"2":{"57":1}}],["phase>package",{"2":{"57":1}}],["phoenix",{"2":{"23":2}}],["phone",{"2":{"14":2}}],["pinyin",{"2":{"57":3}}],["pinyinhelper",{"2":{"57":2}}],["pinyin4j",{"2":{"57":5}}],["png",{"2":{"55":1}}],["pnpm",{"0":{"28":1},"2":{"27":1,"28":2}}],["plugins",{"2":{"57":1}}],["plugins>",{"2":{"57":2}}],["plugin>",{"2":{"57":2}}],["plugin",{"2":{"42":1,"50":6,"53":2,"54":3,"55":2,"57":8,"58":5,"66":1}}],["plus",{"2":{"21":1,"22":1}}],["p",{"2":{"34":2}}],["pm2将自动检测可用cpu的数量",{"2":{"29":1}}],["pm2",{"0":{"29":1},"2":{"29":11}}],["put",{"2":{"14":1,"40":2,"71":1}}],["public",{"2":{"9":2,"10":2,"11":1,"13":1,"14":2,"15":2,"16":3,"38":1,"40":7,"44":2,"46":3,"50":4,"57":2,"68":1,"71":22,"73":1,"77":1,"78":1,"82":2,"83":1,"84":1,"86":4}}],["pool",{"2":{"66":1}}],["pom",{"2":{"58":1}}],["policy=eyjlehb0wny0xm1qxmjowmto0oc41njvaiiwiy29uzgl0aw9ucyi6w1siy29udgvudc1szw5ndggtcmfuz2uildasnti0mjg4mdbdxx0=",{"2":{"50":1}}],["postgresql",{"2":{"23":3}}],["postmapping",{"2":{"15":1,"16":1,"46":1,"50":2,"86":1}}],["post",{"2":{"13":5}}],["port",{"2":{"8":1,"86":1}}],["preparing",{"2":{"50":1}}],["project",{"2":{"100":2}}],["projectlombok",{"2":{"57":2}}],["properties>",{"2":{"58":2}}],["properties",{"2":{"58":1}}],["proceed",{"2":{"46":1}}],["proceedingjoinpoint",{"2":{"46":1}}],["proxy",{"2":{"30":28}}],["prod",{"2":{"27":1}}],["protected",{"2":{"13":1,"14":2,"15":1,"16":2,"20":1,"83":1}}],["private",{"2":{"14":2,"45":1,"46":1,"50":3,"68":1,"71":11,"84":5,"86":1}}],["println",{"2":{"9":1,"15":1,"50":5,"57":1}}],["package",{"2":{"58":1,"67":1}}],["parentclassloader",{"2":{"50":2}}],["parameter",{"2":{"86":1}}],["parameters",{"2":{"50":1}}],["param",{"2":{"71":1,"82":6}}],["params",{"2":{"50":1,"57":2}}],["parse",{"2":{"21":1}}],["parseobj",{"2":{"11":1}}],["pass",{"2":{"30":2}}],["passwordencoder",{"2":{"71":4}}],["passwordversion",{"2":{"71":1,"73":1}}],["password",{"2":{"8":1,"65":1}}],["paths",{"2":{"20":1}}],["path",{"2":{"20":3}}],["page",{"2":{"12":1,"13":1,"14":1,"15":1,"16":9,"78":2,"83":1}}],["p0",{"2":{"9":1}}],["15",{"0":{"106":1}}],["15t14",{"2":{"66":4}}],["101+08",{"2":{"66":1}}],["17",{"2":{"62":1,"89":1}}],["13",{"2":{"57":1}}],["13t20",{"2":{"50":8}}],["1800",{"2":{"70":1}}],["18",{"2":{"50":8,"57":1}}],["123456",{"2":{"65":1,"67":1,"94":1}}],["12",{"2":{"57":2}}],["12h",{"2":{"30":1}}],["127",{"2":{"8":1,"30":1,"50":1,"65":1,"66":1,"67":1,"83":1,"86":1}}],["1h",{"2":{"30":1}}],["1",{"0":{"27":1,"32":1,"49":1,"53":1,"64":1,"100":1,"104":1,"105":1,"106":2,"107":1},"2":{"8":1,"10":1,"18":1,"30":5,"33":2,"34":2,"50":2,"55":1,"57":11,"58":1,"60":2,"65":1,"66":3,"67":1,"71":3,"83":1,"84":2,"86":1}}],["06",{"0":{"107":1}}],["04",{"0":{"105":1}}],["00",{"2":{"50":8,"66":4}}],["01",{"2":{"50":8}}],["07",{"0":{"106":1},"2":{"50":8,"66":4}}],["08",{"0":{"104":1,"105":1},"2":{"18":1}}],["0",{"0":{"107":1},"2":{"8":3,"30":2,"33":2,"34":2,"50":2,"55":2,"57":4,"58":1,"62":1,"65":3,"66":2,"67":2,"71":1,"83":2,"86":2}}],["hashmap",{"2":{"71":1}}],["hanyupinyintonetype",{"2":{"57":2}}],["hanyupinyinoutputformat",{"2":{"57":3}}],["hangzhou",{"2":{"50":1}}],["handleexception",{"2":{"40":1}}],["handleillegalargumentexception",{"2":{"40":1}}],["handlehttprequestmethodnotsupportedexception",{"2":{"40":1}}],["handlebadcredentialsexception",{"2":{"40":1}}],["handleduplicatekeyexception",{"2":{"40":1}}],["handlerrexception",{"2":{"40":1}}],["handlertype",{"2":{"20":3}}],["hana",{"2":{"23":2}}],["hello",{"2":{"50":4,"57":1}}],["headersconfigurer",{"2":{"71":1}}],["headers",{"2":{"71":1}}],["header",{"2":{"30":13}}],["hutool",{"2":{"50":3,"57":11,"90":1}}],["hook",{"2":{"55":1,"56":1}}],["home",{"2":{"30":1}}],["host=https",{"2":{"50":1}}],["host",{"2":{"8":1,"30":4}}],["hive",{"2":{"23":2}}],["highgo",{"2":{"23":1}}],["hbase",{"2":{"23":1}}],["hsql",{"2":{"23":2}}],["h2",{"2":{"23":2}}],["httprequestmethodnotsupportedexception",{"2":{"40":2}}],["http",{"2":{"30":4,"66":1,"83":1,"86":1}}],["httpsecurity",{"2":{"71":3}}],["httpservletrequest",{"2":{"13":1,"14":2,"15":1,"16":1,"46":1,"68":2,"83":1,"86":1}}],["https",{"2":{"1":2,"14":3,"28":1,"50":1,"53":2,"94":1,"96":3,"97":3,"98":2}}],["html",{"2":{"14":1,"30":1,"83":1}}],["html文档",{"2":{"14":2}}],["能够显著提升应用程序的性能和响应速度",{"2":{"8":1}}],["旨在提供高性能",{"2":{"8":1}}],["由该类统一执行初始化",{"2":{"44":1}}],["由",{"2":{"8":1}}],["cfg",{"2":{"71":3}}],["csrf",{"2":{"71":1}}],["css",{"2":{"68":1,"79":1}}],["csiidb",{"2":{"23":2}}],["cj",{"2":{"65":1}}],["charsequence",{"2":{"71":2}}],["characterencoding=utf",{"2":{"65":1}}],["chain",{"2":{"71":2}}],["chinesechar",{"2":{"57":4}}],["check",{"2":{"39":2,"40":6,"46":1}}],["c",{"2":{"50":6,"66":3}}],["cn",{"2":{"50":4,"57":2}}],["c端用户",{"2":{"42":1}}],["currentthread",{"2":{"60":1}}],["cubrid",{"2":{"23":2}}],["custom",{"2":{"14":1}}],["clean",{"2":{"58":1}}],["cluster",{"2":{"29":1}}],["clickhouse",{"2":{"23":2}}],["classloader",{"2":{"50":4}}],["classpath",{"2":{"44":1,"86":1}}],["class",{"2":{"9":1,"10":2,"13":1,"14":5,"15":1,"16":2,"19":2,"20":3,"38":2,"40":7,"44":1,"46":2,"50":2,"57":1,"65":1,"68":1,"71":8,"78":1,"83":1,"84":1,"86":1}}],["crud",{"0":{"81":1},"2":{"81":1}}],["crudoption",{"2":{"16":1}}],["create",{"2":{"14":2,"33":1,"40":2}}],["createop",{"2":{"14":3}}],["catch",{"2":{"57":1}}],["cachekey",{"2":{"11":2}}],["cacheable",{"2":{"9":1}}],["cachenames",{"2":{"9":1}}],["cacheconfig",{"2":{"9":1}}],["cache",{"2":{"8":3,"30":8,"50":2,"57":1}}],["caffeine",{"2":{"8":3}}],["collection",{"2":{"71":4}}],["column",{"2":{"14":1}}],["columndefine",{"2":{"14":1,"84":4}}],["columns",{"2":{"14":1}}],["core",{"2":{"42":2,"44":1,"50":12,"57":6,"66":2}}],["code",{"2":{"40":1}}],["codetypeenum",{"2":{"38":1}}],["codemodel",{"2":{"38":10}}],["codegenerator",{"2":{"38":7}}],["consumes",{"2":{"86":1}}],["conf",{"2":{"71":4}}],["configuration",{"2":{"71":1}}],["configuration>",{"2":{"57":2}}],["configattribute",{"2":{"71":1}}],["configattributes",{"2":{"71":4}}],["configattribute>",{"2":{"71":3}}],["configattribute>>",{"2":{"71":1}}],["config",{"2":{"27":1,"28":1,"55":2,"56":1,"71":7}}],["context",{"2":{"57":2}}],["controller",{"2":{"12":2,"16":1,"18":2,"20":1,"38":2,"42":2,"50":3,"73":1}}],["connection",{"2":{"30":2}}],["connect",{"2":{"30":2}}],["condition",{"2":{"14":3}}],["couponid",{"2":{"46":3}}],["coupon",{"2":{"14":8}}],["compiler",{"2":{"100":1}}],["compile命令",{"2":{"100":1}}],["component",{"2":{"46":1,"71":3}}],["combine",{"2":{"20":1}}],["commons",{"2":{"57":3}}],["commoncontroller",{"2":{"50":1}}],["comment",{"2":{"14":2,"84":5}}],["comm",{"2":{"9":1}}],["com",{"2":{"1":2,"14":3,"28":1,"38":1,"42":1,"44":1,"50":12,"53":2,"54":2,"57":4,"65":1,"66":3,"94":1,"96":3,"97":3,"98":2}}],["cooleps",{"2":{"66":1,"77":1}}],["coolexception",{"2":{"40":3}}],["coolexceptionhandler",{"2":{"40":1}}],["coollock",{"2":{"45":4,"46":4}}],["coolapplication",{"2":{"42":1,"66":1}}],["cooladminjavaapplicationtests",{"2":{"38":1}}],["coolplugin注解",{"2":{"54":1}}],["coolplugin",{"2":{"50":4,"57":6}}],["coolpluginservice",{"2":{"50":1,"66":1}}],["coolplugininvokers",{"2":{"11":1,"50":4}}],["coolpreconditions",{"2":{"39":1,"40":2,"46":1}}],["coolcodegeneratortest",{"2":{"38":1}}],["coolcache",{"0":{"10":1},"2":{"10":4,"11":1,"50":5,"57":1,"71":7}}],["coolsecurityutil",{"2":{"14":1,"46":2,"73":3,"74":1}}],["coolrestcontroller",{"2":{"13":1,"14":1,"15":1,"16":1,"19":1,"20":2,"78":1,"83":1,"86":1}}],["cool",{"0":{"92":1},"2":{"0":1,"1":2,"5":1,"6":1,"13":1,"14":1,"15":1,"16":1,"21":1,"23":1,"26":1,"29":3,"30":3,"31":1,"33":3,"34":4,"36":1,"38":1,"42":2,"44":3,"50":19,"53":4,"54":2,"57":5,"58":8,"59":1,"61":1,"65":1,"66":7,"83":1,"86":1,"92":2,"94":1,"96":6,"97":6,"98":4,"103":1}}],["框架用到了mybatis",{"2":{"100":1}}],["框架自带两种文件上传方式本地上传与云存储",{"2":{"85":1}}],["框架自带基于",{"2":{"8":1}}],["框架集成了auto",{"2":{"24":1}}],["框架封装了一个请求属性",{"2":{"15":1}}],["框架特有的通用工具类",{"0":{"10":1}}],["框架更新",{"2":{"4":1,"6":1}}],["缓存数据模板",{"2":{"104":1}}],["缓存对象",{"2":{"50":1}}],["缓存结果",{"2":{"50":2}}],["缓存相关配置",{"2":{"30":1}}],["缓存库",{"2":{"8":1}}],["缓存",{"0":{"8":1},"1":{"9":1,"10":1,"11":1},"2":{"8":2,"104":1}}],["的build",{"2":{"100":1}}],["的mvn",{"2":{"100":1}}],["的核心流程",{"2":{"43":1}}],["的能力",{"2":{"43":1}}],["的火热",{"2":{"43":1}}],["的都知道",{"2":{"24":1}}],["的事务管理",{"2":{"22":1}}],["的基本增删改查",{"2":{"22":1}}],["的",{"2":{"20":1,"100":1}}],["的一些最新资讯",{"2":{"6":1}}],["的在线文档仓库",{"2":{"0":1}}],["公众号",{"0":{"6":1}}],["团队哔哩哔哩官方账户",{"2":{"5":1}}],["站视频教程",{"2":{"7":1,"37":1}}],["站",{"0":{"5":1}}],["b8e4",{"2":{"57":1}}],["bbb",{"2":{"55":1}}],["beforeinvocation",{"2":{"71":1}}],["belerweb",{"2":{"57":2}}],["beans",{"2":{"57":3}}],["bean",{"2":{"50":1,"71":4}}],["ben",{"2":{"8":1}}],["badhanyupinyinoutputformatcombination",{"2":{"57":2}}],["badcredentialsexception",{"2":{"40":2}}],["banner",{"2":{"50":2,"51":2}}],["bashpnpm",{"2":{"28":1}}],["bashnpm",{"2":{"28":1}}],["baselogfilter",{"2":{"68":1}}],["basecoolplugin",{"2":{"50":7,"57":4}}],["basecontroller",{"2":{"12":1,"13":1,"14":2,"15":1,"16":1,"83":1}}],["baseservice中集成了常用的",{"2":{"81":1}}],["baseserviceimpl",{"2":{"16":1}}],["basesysuserservice",{"2":{"71":3}}],["basesysuserentity>lambdaquery",{"2":{"40":2,"71":1}}],["basesysuserentity",{"2":{"40":6,"71":3}}],["basesyspermsservice",{"2":{"71":8}}],["basesyslogservice",{"2":{"68":3}}],["basesyslogmapper",{"2":{"50":3}}],["baseentity",{"2":{"14":1,"84":1}}],["base",{"2":{"14":3,"42":1,"50":1,"79":1,"86":1}}],["break",{"2":{"30":1}}],["bind",{"2":{"30":1,"50":4}}],["bypass",{"2":{"30":1}}],["boot",{"2":{"90":1}}],["bootstrap",{"2":{"29":1}}],["boolean",{"2":{"71":2}}],["body",{"2":{"15":1}}],["build>",{"2":{"57":2}}],["build",{"2":{"20":1,"33":2,"71":1,"100":3}}],["b",{"0":{"5":1},"2":{"7":1,"37":1,"50":3}}],["afterinvocation",{"2":{"71":1}}],["abstracthttpconfigurer",{"2":{"71":1}}],["abstractsecurityinterceptor",{"2":{"71":1}}],["abstractopenapiresource",{"2":{"66":1}}],["actuator",{"2":{"79":1}}],["action",{"2":{"50":1}}],["accessdeniedhandler",{"2":{"71":1}}],["aclass",{"2":{"71":1}}],["aop",{"2":{"57":2}}],["aaa",{"2":{"55":1}}],["authprovider",{"2":{"71":4}}],["authenticationconfiguration",{"2":{"71":1}}],["authenticationmanager",{"2":{"71":2}}],["authenticationprovider",{"2":{"71":2}}],["authenticationentrypoint",{"2":{"71":1}}],["authenticated",{"2":{"71":1}}],["authorizehttprequests",{"2":{"71":1}}],["authority",{"2":{"71":3}}],["author",{"2":{"55":1,"56":1}}],["automatically",{"2":{"100":1}}],["automatically自动编译功能",{"2":{"100":1}}],["auto",{"2":{"90":1}}],["autowired",{"2":{"71":1}}],["autoprefixurlmapping",{"2":{"20":1}}],["arraylist",{"2":{"71":3}}],["artifactset>",{"2":{"57":2}}],["artifactid>maven",{"2":{"57":1}}],["artifactid>pinyin4j",{"2":{"57":1}}],["artifactid>",{"2":{"57":3}}],["artifactid>hutool",{"2":{"57":1}}],["around",{"2":{"46":2}}],["args",{"2":{"38":1,"44":1}}],["args$args",{"2":{"30":1}}],["anyrequest",{"2":{"71":1}}],["annotations",{"2":{"20":1}}],["annotation",{"2":{"19":2,"42":1,"46":1,"50":5,"54":1,"57":5}}],["and",{"2":{"14":1}}],["aliyun",{"2":{"50":1}}],["aliyuncs",{"2":{"50":1}}],["aliasfor",{"2":{"19":2}}],["alloc",{"2":{"84":2}}],["all",{"2":{"14":1,"22":1,"57":1,"86":1}}],["assets",{"2":{"55":2,"86":1}}],["aspect",{"2":{"46":1}}],["ase",{"2":{"23":1}}],["astype",{"2":{"14":1}}],["as",{"2":{"14":1}}],["apt",{"2":{"100":1}}],["apache",{"2":{"57":1}}],["app端手机密码登录和手机验证码登录",{"2":{"105":1}}],["appsecret",{"2":{"51":1}}],["appid",{"2":{"51":1}}],["application",{"2":{"65":1,"86":1}}],["applicationcontext",{"2":{"50":1}}],["applicationarguments",{"2":{"44":1}}],["applicationrunner",{"2":{"44":1}}],["appdemoinfocontroller",{"2":{"18":1}}],["app",{"2":{"18":4,"68":1}}],["appmarketcouponusercontroller",{"2":{"14":1}}],["api",{"2":{"7":1,"13":1,"14":1,"15":1,"16":1,"19":1,"27":2,"30":2,"33":1,"37":1,"57":4,"66":1,"78":1,"79":1,"83":1}}],["age",{"2":{"14":1}}],["addfilterbefore",{"2":{"71":1}}],["addr",{"2":{"30":5}}],["add",{"2":{"12":1,"13":1,"14":1,"15":1,"16":1,"30":3,"40":4,"71":2,"78":1,"83":1,"86":1}}],["adminbasecommcontroller",{"2":{"86":1}}],["adminauthurls",{"2":{"79":1}}],["admindictinfocontroller",{"2":{"78":1}}],["admindemouserinfocontroller",{"2":{"18":1}}],["admindemoinfocontroller",{"2":{"13":1,"14":1,"15":1,"16":1,"18":3,"83":1}}],["adminuserid",{"2":{"73":1}}],["admin中才能调试",{"2":{"50":1}}],["admin的缓存",{"2":{"50":1}}],["admin",{"0":{"92":1},"2":{"0":1,"1":2,"18":6,"21":1,"23":1,"26":1,"29":3,"31":1,"33":2,"34":2,"36":1,"38":1,"50":9,"53":2,"57":2,"58":1,"61":1,"66":4,"67":1,"71":6,"79":1,"92":1,"94":2,"96":3,"97":3,"98":2,"103":1}}],["a",{"2":{"10":2,"50":2}}],["ai",{"0":{"7":1,"37":1,"43":1},"2":{"4":1,"43":6,"92":5,"102":1,"106":1}}],["你的项目",{"2":{"100":1}}],["你的star是我们最大的动力",{"2":{"95":1}}],["你的贡献可能给其他人代码巨大的帮助",{"2":{"0":1}}],["你将会看到后端的欢迎页面",{"2":{"66":1}}],["你可以这样做",{"2":{"100":1}}],["你可以自己开发插件",{"2":{"47":1}}],["你可以在这边了解到一些关于我们框架的最新动态",{"2":{"4":1}}],["你需要把生成的eps",{"2":{"33":1}}],["抖音",{"0":{"4":1}}],["扫一扫加入微信开发交流群",{"2":{"3":1}}],["微信",{"0":{"3":1},"2":{"102":1}}],["共创一些美好的事情",{"2":{"2":1}}],["共同参与开源",{"2":{"0":1}}],["交流合作",{"0":{"2":1},"1":{"3":1,"4":1,"5":1,"6":1}}],["地址",{"0":{"1":1}}],["积极提交pull",{"2":{"0":1}}],["版相关功能",{"2":{"107":1}}],["版本一致",{"2":{"94":1}}],["版本号",{"2":{"56":1}}],["版本+宝塔为例",{"2":{"26":1}}],["版本的也可以参考",{"2":{"25":1}}],["版本为例",{"2":{"25":1}}],["版本才有",{"2":{"18":1}}],["版",{"2":{"0":1}}],["介绍",{"0":{"0":1}}]],"serializationVersion":2}';export{e as default}; +const e='{"documentCount":108,"nextId":108,"documentIds":{"0":"/README.html#介绍","1":"/README.html#地址","2":"/src/about/#交流合作","3":"/src/about/#微信","4":"/src/about/#抖音","5":"/src/about/#b-站","6":"/src/about/#公众号","7":"/src/guide/ai.html#ai-编码","8":"/src/guide/cache.html#缓存","9":"/src/guide/cache.html#使用","10":"/src/guide/cache.html#框架特有的通用工具类-coolcache","11":"/src/guide/cache.html#通过coolcache缓存模板-获取数据","12":"/src/guide/controller.html#控制器","13":"/src/guide/controller.html#示例","14":"/src/guide/controller.html#查询配置","15":"/src/guide/controller.html#请求参数","16":"/src/guide/controller.html#重写实现","17":"/src/guide/controller.html#原理","18":"/src/guide/controller.html#接口路由规则","19":"/src/guide/controller.html#自定义路由注解","20":"/src/guide/controller.html#重写-getmappingformethod","21":"/src/guide/db.html#数据库","22":"/src/guide/db.html#功能对比","23":"/src/guide/db.html#支持数据库","24":"/src/guide/db.html#自动建表","25":"/src/guide/deploy.html#项目部署","26":"/src/guide/deploy.html#普通方式","27":"/src/guide/deploy.html#_1、部署流程-以宝塔为例","28":"/src/guide/deploy.html#_2、推荐使用-pnpm-安装依赖","29":"/src/guide/deploy.html#_3、pm2-运行后端服务","30":"/src/guide/deploy.html#_4、nginx-配置示例","31":"/src/guide/deploy.html#docker-方式","32":"/src/guide/deploy.html#_1、部署流程-以宝塔为例-1","33":"/src/guide/deploy.html#_2、打包镜像","34":"/src/guide/deploy.html#_3、运行","35":"/src/guide/deploy.html#注意事项","36":"/src/guide/dev.html#开发方式","37":"/src/guide/dev.html#ai-全自动","38":"/src/guide/dev.html#半自动","39":"/src/guide/dir.html#目录结构","40":"/src/guide/dir.html#结构","41":"/src/guide/exception.html#统一异常处理","42":"/src/guide/exception.html#异常统一捕获","43":"/src/guide/flow.html#ai-流程编排","44":"/src/guide/initData.html#数据初始化","45":"/src/guide/lock.html#锁","46":"/src/guide/noRepeatSubmit.html#防重复提交","47":"/src/guide/plugin.html#扩展插件","48":"/src/guide/plugin.html#使用插件","49":"/src/guide/plugin.html#_1、安装","50":"/src/guide/plugin.html#_2、调用","51":"/src/guide/plugin.html#_3、配置","52":"/src/guide/plugin.html#开发插件","53":"/src/guide/plugin.html#_1、脚手架","54":"/src/guide/plugin.html#_2、目录结构","55":"/src/guide/plugin.html#_3、开发过程","56":"/src/guide/plugin.html#_4、字段解释","57":"/src/guide/plugin.html#插件详解","58":"/src/guide/plugin.html#打包","59":"/src/guide/plugin.html#安装插件","60":"/src/guide/plugin.html#实现原理","61":"/src/guide/quick.html#快速开始","62":"/src/guide/quick.html#环境准备","63":"/src/guide/quick.html#运行系统","64":"/src/guide/quick.html#_1、拉取源码","65":"/src/guide/quick.html#_2、配置数据库","66":"/src/guide/quick.html#_3、启动后端服务","67":"/src/guide/quick.html#_4、启动前端服务","68":"/src/guide/recordLog.html#请求日志记录","69":"/src/guide/security.html#权限校验","70":"/src/guide/security.html#配置","71":"/src/guide/security.html#原理","72":"/src/guide/security.html#当前用户","73":"/src/guide/security.html#后端用户","74":"/src/guide/security.html#应用用户","75":"/src/guide/security.html#忽略-token","76":"/src/guide/security.html#方式一-注解","77":"/src/guide/security.html#方法上","78":"/src/guide/security.html#类上","79":"/src/guide/security.html#方式二-配置文件","80":"/src/guide/service.html#服务","81":"/src/guide/service.html#crud","82":"/src/guide/service.html#修改前后","83":"/src/guide/swagger.html#swagger-文档","84":"/src/guide/uniqueIDGen.html#唯一id","85":"/src/guide/upload.html#文件上传","86":"/src/guide/upload.html#使用","87":"/src/introduce/#简介","88":"/src/introduce/#技术选型","89":"/src/introduce/#一、环境要求","90":"/src/introduce/#二、后端框架","91":"/src/introduce/#三、前端框架","92":"/src/introduce/#为什么选择-cool-admin","93":"/src/introduce/#内置功能","94":"/src/introduce/show.html#演示","95":"/src/introduce/src.html#源码","96":"/src/introduce/src.html#后端-点个-star-哦","97":"/src/introduce/src.html#前端-点个-star-哦","98":"/src/introduce/src.html#文档-star-哦","99":"/src/question/common.html#常见问题","100":"/src/question/common.html#_1、找不到类似xxxtabledef文件","101":"/src/todo/plan.html#计划","102":"/src/todo/plan.html#完善插件","103":"/src/todo/update.html#更新","104":"/src/todo/update.html#v7-1-3-2024-08-25","105":"/src/todo/update.html#v7-1-2-2024-08-04","106":"/src/todo/update.html#v7-1-1-2024-07-15","107":"/src/todo/update.html#v7-1-0-2024-06-27"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[1,1,13],"1":[1,1,8],"2":[1,1,4],"3":[1,1,2],"4":[1,1,11],"5":[2,1,3],"6":[1,1,6],"7":[2,1,8],"8":[1,1,35],"9":[1,1,31],"10":[2,1,22],"11":[2,1,37],"12":[1,1,15],"13":[1,1,48],"14":[1,1,171],"15":[1,1,57],"16":[1,1,63],"17":[1,1,1],"18":[1,1,44],"19":[1,1,14],"20":[2,1,43],"21":[1,1,41],"22":[1,1,79],"23":[1,1,112],"24":[1,1,21],"25":[1,1,9],"26":[1,1,8],"27":[4,2,36],"28":[4,2,15],"29":[3,2,41],"30":[3,2,92],"31":[2,1,10],"32":[4,3,12],"33":[2,3,31],"34":[2,3,16],"35":[1,3,9],"36":[1,1,7],"37":[2,1,12],"38":[1,1,51],"39":[1,1,4],"40":[1,1,58],"41":[1,1,8],"42":[1,1,78],"43":[2,1,23],"44":[1,1,76],"45":[1,1,27],"46":[1,1,70],"47":[1,1,9],"48":[1,1,1],"49":[2,2,9],"50":[2,2,204],"51":[2,2,18],"52":[1,1,1],"53":[2,2,16],"54":[2,2,25],"55":[2,2,31],"56":[2,2,27],"57":[1,1,185],"58":[1,1,31],"59":[1,1,5],"60":[1,1,66],"61":[1,1,4],"62":[1,1,19],"63":[1,1,1],"64":[2,2,4],"65":[2,2,45],"66":[2,2,59],"67":[2,2,25],"68":[1,1,44],"69":[1,1,7],"70":[1,1,14],"71":[1,1,243],"72":[1,1,2],"73":[1,2,39],"74":[1,2,6],"75":[2,1,5],"76":[2,3,1],"77":[1,5,14],"78":[1,5,22],"79":[2,3,25],"80":[1,1,2],"81":[1,1,5],"82":[1,1,21],"83":[2,1,48],"84":[1,1,64],"85":[1,1,17],"86":[1,1,98],"87":[1,1,1],"88":[1,1,4],"89":[2,2,14],"90":[2,2,10],"91":[2,2,5],"92":[4,1,26],"93":[1,1,38],"94":[1,1,11],"95":[1,1,7],"96":[5,1,12],"97":[5,1,13],"98":[4,1,15],"99":[1,1,2],"100":[2,1,29],"101":[1,1,4],"102":[1,1,9],"103":[1,1,8],"104":[7,1,24],"105":[7,1,11],"106":[6,1,9],"107":[7,1,8]},"averageFieldLength":[1.7314814814814814,1.3703703703703707,30.592592592592567],"storedFields":{"0":{"title":"介绍","titles":[]},"1":{"title":"地址","titles":[]},"2":{"title":"交流合作","titles":[]},"3":{"title":"微信","titles":["交流合作"]},"4":{"title":"抖音","titles":["交流合作"]},"5":{"title":"B 站","titles":["交流合作"]},"6":{"title":"公众号","titles":["交流合作"]},"7":{"title":"Ai 编码","titles":[]},"8":{"title":"缓存","titles":[]},"9":{"title":"使用","titles":["缓存"]},"10":{"title":"框架特有的通用工具类,CoolCache","titles":["缓存"]},"11":{"title":"通过coolCache缓存模板,获取数据","titles":["缓存"]},"12":{"title":"控制器","titles":[]},"13":{"title":"示例","titles":["控制器"]},"14":{"title":"查询配置","titles":["控制器"]},"15":{"title":"请求参数","titles":["控制器"]},"16":{"title":"重写实现","titles":["控制器"]},"17":{"title":"原理","titles":[]},"18":{"title":"接口路由规则","titles":["原理"]},"19":{"title":"自定义路由注解","titles":["原理"]},"20":{"title":"重写 getMappingForMethod","titles":["原理"]},"21":{"title":"数据库","titles":[]},"22":{"title":"功能对比","titles":["数据库"]},"23":{"title":"支持数据库","titles":["数据库"]},"24":{"title":"自动建表","titles":["数据库"]},"25":{"title":"项目部署","titles":[]},"26":{"title":"普通方式","titles":["项目部署"]},"27":{"title":"1、部署流程(以宝塔为例):","titles":["项目部署","普通方式"]},"28":{"title":"2、推荐使用 pnpm 安装依赖","titles":["项目部署","普通方式"]},"29":{"title":"3、PM2 运行后端服务","titles":["项目部署","普通方式"]},"30":{"title":"4、nginx 配置示例","titles":["项目部署","普通方式"]},"31":{"title":"Docker 方式","titles":["项目部署"]},"32":{"title":"1、部署流程(以宝塔为例):","titles":["项目部署","Docker 方式"]},"33":{"title":"2、打包镜像","titles":["项目部署","Docker 方式"]},"34":{"title":"3、运行","titles":["项目部署","Docker 方式"]},"35":{"title":"注意事项","titles":["项目部署","Docker 方式"]},"36":{"title":"开发方式","titles":[]},"37":{"title":"Ai 全自动","titles":["开发方式"]},"38":{"title":"半自动","titles":["开发方式"]},"39":{"title":"目录结构","titles":[]},"40":{"title":"结构","titles":["目录结构"]},"41":{"title":"统一异常处理","titles":[]},"42":{"title":"异常统一捕获","titles":["统一异常处理"]},"43":{"title":"Ai 流程编排","titles":[]},"44":{"title":"数据初始化","titles":[]},"45":{"title":"锁","titles":[]},"46":{"title":"防重复提交","titles":[]},"47":{"title":"扩展插件","titles":[]},"48":{"title":"使用插件","titles":["扩展插件"]},"49":{"title":"1、安装","titles":["扩展插件","使用插件"]},"50":{"title":"2、调用","titles":["扩展插件","使用插件"]},"51":{"title":"3、配置","titles":["扩展插件","使用插件"]},"52":{"title":"开发插件","titles":["扩展插件"]},"53":{"title":"1、脚手架","titles":["扩展插件","开发插件"]},"54":{"title":"2、目录结构","titles":["扩展插件","开发插件"]},"55":{"title":"3、开发过程","titles":["扩展插件","开发插件"]},"56":{"title":"4、字段解释","titles":["扩展插件","开发插件"]},"57":{"title":"插件详解","titles":["扩展插件"]},"58":{"title":"打包","titles":["扩展插件"]},"59":{"title":"安装插件","titles":["扩展插件"]},"60":{"title":"实现原理","titles":["扩展插件"]},"61":{"title":"快速开始","titles":[]},"62":{"title":"环境准备","titles":["快速开始"]},"63":{"title":"运行系统","titles":["快速开始"]},"64":{"title":"1、拉取源码","titles":["快速开始","运行系统"]},"65":{"title":"2、配置数据库","titles":["快速开始","运行系统"]},"66":{"title":"3、启动后端服务","titles":["快速开始","运行系统"]},"67":{"title":"4、启动前端服务","titles":["快速开始","运行系统"]},"68":{"title":"请求日志记录","titles":[]},"69":{"title":"权限校验","titles":[]},"70":{"title":"配置","titles":["权限校验"]},"71":{"title":"原理","titles":["权限校验"]},"72":{"title":"当前用户","titles":["权限校验"]},"73":{"title":"后端用户","titles":["权限校验","当前用户"]},"74":{"title":"应用用户","titles":["权限校验","当前用户"]},"75":{"title":"忽略 token","titles":["权限校验"]},"76":{"title":"方式一: 注解","titles":["权限校验","忽略 token"]},"77":{"title":"方法上","titles":["权限校验","忽略 token","方式一: 注解"]},"78":{"title":"类上","titles":["权限校验","忽略 token","方式一: 注解"]},"79":{"title":"方式二: 配置文件","titles":["权限校验","忽略 token"]},"80":{"title":"服务","titles":[]},"81":{"title":"Crud","titles":["服务"]},"82":{"title":"修改前后","titles":["服务"]},"83":{"title":"swagger 文档","titles":[]},"84":{"title":"唯一id","titles":[]},"85":{"title":"文件上传","titles":[]},"86":{"title":"使用","titles":[]},"87":{"title":"简介","titles":[]},"88":{"title":"技术选型","titles":["简介"]},"89":{"title":"一、环境要求","titles":["简介","技术选型"]},"90":{"title":"二、后端框架","titles":["简介","技术选型"]},"91":{"title":"三、前端框架","titles":["简介","技术选型"]},"92":{"title":"为什么选择 Cool Admin?","titles":["简介"]},"93":{"title":"内置功能","titles":["简介"]},"94":{"title":"演示","titles":[]},"95":{"title":"源码","titles":[]},"96":{"title":"后端(点个 Star 哦)","titles":["源码"]},"97":{"title":"前端(点个 Star 哦)","titles":["源码"]},"98":{"title":"文档 (Star 哦)","titles":["源码"]},"99":{"title":"常见问题","titles":[]},"100":{"title":"1、找不到类似xxxTableDef文件","titles":["常见问题"]},"101":{"title":"计划","titles":[]},"102":{"title":"完善插件","titles":["计划"]},"103":{"title":"更新","titles":[]},"104":{"title":"v7.1.3(2024-08-25)","titles":["更新"]},"105":{"title":"v7.1.2(2024-08-04)","titles":["更新"]},"106":{"title":"v7.1.1(2024-07-15)","titles":["更新"]},"107":{"title":"v7.1.0(2024-06-27)","titles":["更新"]}},"dirtCount":0,"index":[["升级所有相关依赖到最新",{"2":{"107":1}}],["升级到",{"2":{"107":1}}],["移除插件jar文件落库",{"2":{"105":1}}],["移除锁",{"2":{"46":1}}],["鉴权调整兼容app端",{"2":{"105":1}}],["鉴权拦截配置",{"2":{"71":1}}],["指定id插入不生效问题",{"2":{"104":1}}],["修复",{"2":{"104":2,"105":1}}],["修改之后",{"2":{"82":2}}],["修改之前",{"2":{"82":2}}],["修改类型",{"2":{"82":2}}],["修改前后",{"0":{"82":1}}],["修改",{"2":{"13":1,"93":1}}],["图形验证码获取区分app和admin",{"2":{"104":1}}],["解析规则",{"2":{"104":1}}],["解析设计",{"2":{"22":1}}],["参考",{"2":{"104":6}}],["参数管理",{"2":{"93":1}}],["参数",{"2":{"50":1}}],["支付",{"2":{"106":1}}],["支付插件",{"2":{"102":1}}],["支持postgresql",{"2":{"105":1}}],["支持自定义返回结果类型",{"2":{"104":1}}],["支持动态安装",{"2":{"93":1}}],["支持回滚操作",{"2":{"93":1}}],["支持静态资源文件上传云端进行云管理",{"2":{"93":1}}],["支持通配",{"2":{"79":1}}],["支持很多数据库",{"2":{"23":1}}],["支持的数据库类型",{"2":{"23":1}}],["支持数据库",{"0":{"23":1}}],["支持多主键",{"2":{"22":1}}],["支持关联查询",{"2":{"21":1}}],["短信等功能可以通过安装插件的方式添加",{"2":{"106":1}}],["短信插件",{"2":{"102":1}}],["短信这类功能的插件可以通过后台动态安装卸载",{"2":{"92":1}}],["完善插件",{"0":{"102":1}}],["计划",{"0":{"101":1},"1":{"102":1}}],["找不到类似xxxtabledef文件",{"0":{"100":1}}],["常见问题",{"0":{"99":1},"1":{"100":1}}],["常用的技术进行选择",{"2":{"88":1}}],["常用命令",{"2":{"29":1}}],["您的贡献可能会给其他人来带巨大的帮助",{"2":{"98":1}}],["哦",{"0":{"96":1,"97":1,"98":1}}],["点个",{"0":{"96":1,"97":1}}],["点击前往前端项目详细文档",{"2":{"67":1,"97":1}}],["点击前往插件市场",{"2":{"47":1}}],["点击前往插件市场下载安装",{"2":{"43":1}}],["点击+按钮",{"2":{"49":1}}],["点击左侧菜单扩展管理",{"2":{"49":1}}],["源码",{"0":{"95":1},"1":{"96":1,"97":1,"98":1}}],["源码仓库",{"2":{"64":1}}],["演示",{"0":{"94":1}}],["卸载插件",{"2":{"93":1}}],["卸载和替换",{"2":{"60":2}}],["前后端插件",{"2":{"93":1}}],["前端",{"0":{"97":1}}],["前端框架",{"0":{"91":1}}],["前端会根据后端返回的上传模式进行本地上传或者云存储签名直传",{"2":{"85":1}}],["前端不需要特意写调用接口的",{"2":{"33":1}}],["前端打包完放这边",{"2":{"30":1}}],["前端访问后端的接口地址默认是前端根地址+",{"2":{"27":1}}],["前端接口",{"2":{"18":1}}],["天的保留",{"2":{"93":1}}],["任务调度包含执行结果日志",{"2":{"93":1}}],["添加",{"2":{"93":1}}],["定时任务",{"2":{"93":1}}],["定时任务模块",{"2":{"40":1}}],["便于问题排查",{"2":{"93":1}}],["设置角色按机构进行数据范围权限划分",{"2":{"93":1}}],["呈现公司组织部门树形结构",{"2":{"93":1}}],["内置功能",{"0":{"93":1}}],["代码简洁",{"2":{"92":1}}],["代理服务端地址",{"2":{"30":1}}],["灵活又不臃肿",{"2":{"92":1}}],["灵活性",{"2":{"60":1}}],["灵活性高",{"2":{"60":1}}],["专门为",{"2":{"92":1}}],["部分功能实现零代码",{"2":{"92":1}}],["部署",{"2":{"35":1}}],["部署的简单流程",{"2":{"31":1}}],["部署的配置方式可以参考普通的部署方式",{"2":{"31":1}}],["部署成功",{"2":{"27":1,"32":1}}],["部署流程",{"0":{"27":1,"32":1}}],["部署视频教程",{"2":{"26":1,"31":1}}],["从页面到后端代码",{"2":{"92":1}}],["从第三方",{"2":{"11":1}}],["特别是最近",{"2":{"92":1}}],["特别是跟",{"2":{"4":1}}],["三",{"0":{"91":1}}],["二",{"0":{"90":1}}],["环境要求",{"0":{"89":1}}],["环境准备",{"0":{"62":1}}],["减少技术栈的复杂度",{"2":{"88":1}}],["技术选型",{"0":{"88":1},"1":{"89":1,"90":1,"91":1}}],["技术分享",{"2":{"4":1,"6":1}}],["简单功能零代码实现",{"2":{"106":1}}],["简单锁的使用",{"2":{"45":1}}],["简介",{"0":{"87":1},"1":{"88":1,"89":1,"90":1,"91":1,"92":1,"93":1}}],["水印等处理",{"2":{"86":1}}],["裁剪",{"2":{"86":1}}],["条件允许的话尽量选择云存储上传",{"2":{"86":1}}],["动静分离有许多好处",{"2":{"86":1}}],["动态加载使得应用程序能够在不停机的情况下进行热更新",{"2":{"60":1}}],["动态加载允许应用程序在运行时根据需求加载",{"2":{"60":1}}],["动态加载",{"2":{"60":2}}],["动态",{"2":{"22":1}}],["动态表名",{"2":{"22":1}}],["线上环境请用nginx等静态服务器代理",{"2":{"86":1}}],["线上的数据库是需要本地传上去的",{"2":{"27":1}}],["七牛云等",{"2":{"85":1}}],["腾讯云",{"2":{"85":1}}],["云存储上传服务端值提供签名供前端直传到对应的云存储",{"2":{"85":1}}],["云存储",{"2":{"85":1}}],["直接上传到对应的云存储",{"2":{"85":1}}],["分布式id",{"2":{"104":1}}],["分布式id生成组件",{"2":{"104":1}}],["分布式唯一id组件",{"2":{"84":1}}],["分页查询无",{"2":{"22":1}}],["分页查询之总量缓存",{"2":{"22":1}}],["分页查询配置",{"2":{"14":1}}],["分页查询",{"2":{"13":1,"22":1}}],["启用唯一id组件",{"2":{"84":1}}],["启动",{"2":{"67":1}}],["启动前端服务",{"0":{"67":1}}],["启动文件",{"2":{"66":1}}],["启动后端服务",{"0":{"66":1}}],["启动一个服务",{"2":{"29":1}}],["启动服务",{"2":{"27":1}}],["入参为key",{"2":{"84":1}}],["步长",{"2":{"84":1}}],["当前最大id",{"2":{"84":1}}],["当前用户",{"0":{"72":1},"1":{"73":1,"74":1}}],["唯一id分配",{"2":{"84":1}}],["唯一id",{"0":{"84":1}}],["操作日志",{"2":{"93":1}}],["操作权限标识等",{"2":{"93":1}}],["操作",{"2":{"81":1}}],["处理业务逻辑的代码应该被封装在服务中",{"2":{"80":1}}],["处理逻辑在以下方法",{"2":{"44":1}}],["都必须配合coolrestcontroller使用",{"2":{"78":1}}],["都继承自",{"2":{"12":1}}],["校验",{"2":{"75":1,"77":1}}],["应用用户",{"0":{"74":1}}],["应用必备",{"2":{"43":1}}],["类上",{"0":{"78":1}}],["类型",{"2":{"73":1}}],["类必须继承",{"2":{"50":1,"57":2}}],["类必须要有",{"2":{"50":1,"57":2}}],["允许网页iframe",{"2":{"71":1}}],["监控用户行为",{"2":{"71":1}}],["监听",{"2":{"22":1}}],["权限管理拦截器",{"2":{"71":1}}],["权限校验",{"0":{"69":1},"1":{"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1}}],["每次调用接口的时候spring",{"2":{"71":1}}],["每个插件的配置各不相同",{"2":{"56":1}}],["每个对象中的",{"2":{"44":1}}],["每个模块都有其特有的功能",{"2":{"39":1}}],["则返回给decide方法",{"2":{"71":1}}],["判定用户请求的url是否在权限表中",{"2":{"71":1}}],["判断",{"2":{"42":1}}],["刷新token过期时间",{"2":{"70":1}}],["半小时",{"2":{"70":1}}],["半自动",{"0":{"38":1}}],["秒",{"2":{"70":2}}],["单位",{"2":{"70":2}}],["单主键配置",{"2":{"22":1}}],["过期时间",{"2":{"70":1}}],["作为文档",{"2":{"83":1}}],["作为myaccessdecisionmanager类的decide的第三个参数",{"2":{"71":1}}],["作为框架安全与权限校验",{"2":{"69":1}}],["作者",{"2":{"55":1,"56":1}}],["采用",{"2":{"69":1}}],["忽略后台鉴权url",{"2":{"79":1}}],["忽略",{"0":{"75":1},"1":{"76":1,"77":1,"78":1,"79":1},"2":{"75":1}}],["忽略权限控制的地址",{"2":{"71":1}}],["忽略记录请求日志url配置",{"2":{"105":1}}],["忽略记录请求日志url",{"2":{"68":1}}],["忽略url",{"2":{"68":1,"79":1}}],["记录日志",{"2":{"68":1}}],["记录接口请求日志入库",{"2":{"68":1}}],["密码版本号",{"2":{"73":1}}],["密码",{"2":{"67":1,"94":1}}],["账户",{"2":{"67":1,"94":1}}],["账户密码不正确",{"2":{"42":1}}],["执行",{"2":{"100":1}}],["执行命令",{"2":{"67":1}}],["执行的过程中",{"2":{"21":1}}],["跟进nodejs",{"2":{"107":1}}],["跟",{"2":{"67":1}}],["跟分页查询一样",{"2":{"14":1}}],["端口",{"2":{"66":1}}],["服务",{"0":{"80":1},"1":{"81":1,"82":1}}],["服务启动成功",{"2":{"66":1}}],["服务器环境准备",{"2":{"27":1}}],["构建eps信息",{"2":{"66":1}}],["控制台打印出下面信息",{"2":{"66":1}}],["控制器",{"0":{"12":1},"1":{"13":1,"14":1,"15":1,"16":1},"2":{"104":1}}],["驱动已经内置",{"2":{"65":1}}],["首次启动会自动初始化并导入数据",{"2":{"65":1}}],["首先下载插件包",{"2":{"49":1}}],["yamlcool",{"2":{"70":1}}],["yaml",{"2":{"65":1,"79":1,"84":1}}],["yamlspring",{"2":{"8":1,"86":1}}],["yml",{"2":{"65":1,"86":1}}],["拉取源码",{"0":{"64":1}}],["拉取前后端代码",{"2":{"27":1,"32":1}}],["9000",{"2":{"67":1}}],["941+08",{"2":{"66":1}}],["9",{"2":{"62":1}}],["7天",{"2":{"70":1}}],["7版本",{"2":{"65":1}}],["7",{"2":{"62":1,"89":1}}],["选择",{"2":{"62":1,"89":1}}],["选择插件包进行安装",{"2":{"49":1}}],["开启",{"2":{"100":1}}],["开放接口",{"2":{"75":1}}],["开始使用",{"2":{"61":1}}],["开发几乎不用写代码",{"2":{"92":1}}],["开发设计的",{"2":{"92":1}}],["开发过程",{"0":{"55":1}}],["开发过程只需点一点",{"2":{"37":1}}],["开发插件",{"0":{"52":1},"1":{"53":1,"54":1,"55":1,"56":1}}],["开发的时候无法调试",{"2":{"50":1}}],["开发的时候只是模拟",{"2":{"50":1}}],["开发的一个",{"2":{"8":1}}],["开发",{"2":{"43":1}}],["开发方式",{"0":{"36":1},"1":{"37":1,"38":1}}],["开发者可以从中方便的获取各种参数",{"2":{"15":1}}],["快速开始",{"0":{"61":1},"1":{"62":1,"63":1,"64":1,"65":1,"66":1,"67":1}}],["扩展性",{"2":{"60":1}}],["扩展插件",{"0":{"47":1},"1":{"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1},"2":{"92":1}}],["大大提高了系统的可用性和稳定性",{"2":{"60":1}}],["热更新",{"2":{"60":1}}],["优化若干问题",{"2":{"107":1}}],["优化插件过大加载慢问题",{"2":{"105":1}}],["优化角色修改循环单个处理为批量处理",{"2":{"104":1}}],["优化eps解析规则",{"2":{"104":1}}],["优势",{"2":{"60":1}}],["优炫数据库",{"2":{"23":1}}],["远程服务器和",{"2":{"60":1}}],["它可以加载指定的",{"2":{"60":1}}],["标准库中提供的一个类加载器",{"2":{"60":1}}],["最终打出的包为",{"2":{"58":1}}],["里指定",{"2":{"58":1}}],["里面是个数组",{"2":{"44":1}}],["后台人员查询列表字段关联错误",{"2":{"104":1}}],["后端",{"0":{"96":1}}],["后端框架",{"0":{"90":1}}],["后端用户",{"0":{"73":1}}],["后端修改数据库配置",{"2":{"65":1}}],["后端接口",{"2":{"18":1}}],["后缀的文件",{"2":{"58":1}}],["避免打包结果过大",{"2":{"57":1}}],["避免插件过大不会在打入jar包中",{"2":{"57":1}}],["主应用以有这些依赖",{"2":{"57":1}}],["主应用项目已经有的依赖给排除掉",{"2":{"57":1}}],["主应用没有这些依赖",{"2":{"57":1}}],["主要特点",{"2":{"21":1,"92":1}}],["主要是做一些技术教程",{"2":{"4":1}}],["引入依赖",{"2":{"57":1}}],["可商用",{"2":{"95":1}}],["可插拔",{"2":{"92":1}}],["可选",{"2":{"86":1}}],["可维护性",{"2":{"60":1}}],["可控性强",{"2":{"60":1}}],["可在",{"2":{"58":1}}],["可使用",{"2":{"57":1}}],["可以重写modifybefore和modifyafter方法",{"2":{"82":1}}],["可以参考baseservice的实现",{"2":{"81":1}}],["可以轻松地添加新的功能模块或服务",{"2":{"60":1}}],["可以将应用程序的核心逻辑和配置分离",{"2":{"60":1}}],["可以通过代码控制加载",{"2":{"60":1}}],["可以通过插件的方式来扩展系统功能",{"2":{"47":1}}],["可以动态指定",{"2":{"60":1}}],["可以快速开发我们的插件",{"2":{"53":1}}],["可以大大节省开发时间",{"2":{"36":1}}],["可以大大简化代码",{"2":{"12":1}}],["可以考虑这个时间配置长一点",{"2":{"30":1}}],["可以自己指定数量",{"2":{"29":1}}],["可以自动创建表",{"2":{"24":1}}],["可以在yml文件中配置",{"2":{"68":1}}],["可以在打包日志中查看我们排除和引入了哪些包",{"2":{"57":1}}],["可以在",{"2":{"44":1}}],["可以在对应的",{"2":{"16":1}}],["可以在这边实现一下列表数据排序规则",{"2":{"13":1,"15":1,"16":1,"83":1}}],["可以选择你想使用的缓存",{"2":{"8":1}}],["满足以上条件",{"2":{"57":1}}],["拼音",{"2":{"57":1}}],["汉字",{"2":{"57":1}}],["汉字字符",{"2":{"57":1}}],["会持续不断地更新",{"2":{"103":1}}],["会展示在插件的详情中",{"2":{"56":1}}],["会更加简洁",{"2":{"42":1}}],["建议",{"2":{"65":1}}],["建议尺寸",{"2":{"56":1}}],["建议将缓存换成",{"2":{"35":1}}],["说明后端服务启动成功",{"2":{"66":1}}],["说明",{"2":{"56":1,"73":1}}],["测试",{"2":{"55":1}}],["测试curd",{"2":{"13":2,"14":2,"15":2,"16":2,"38":1,"83":2}}],["或",{"2":{"53":1,"96":2,"97":2,"98":1}}],["或者db",{"2":{"11":1}}],["脚手架源码仓库",{"2":{"53":1}}],["脚手架",{"0":{"53":1}}],["下",{"2":{"51":1}}],["下的",{"2":{"44":1}}],["范围在",{"2":{"51":1}}],["路径可以自己指定",{"2":{"51":1}}],["例如原本的配置文件是这样的",{"2":{"51":1}}],["其它的无效",{"2":{"78":1}}],["其中对应的包名称",{"2":{"58":1}}],["其中",{"2":{"51":1}}],["其中我们可以在插件包里通过",{"2":{"50":1}}],["其他数据库适配中",{"2":{"65":1}}],["其他部署方式也可以参考这个流程",{"2":{"26":1}}],["其他查询方式",{"2":{"14":2}}],["只需极少编码即可实现大部分需求",{"2":{"92":1}}],["只需拖一拖即可",{"2":{"92":1}}],["只需三步",{"2":{"38":1}}],["只有安装到cool",{"2":{"50":1}}],["获得用户信息",{"2":{"71":1,"73":1}}],["获得其他插件",{"2":{"50":1}}],["获取id",{"2":{"84":1}}],["获取当前用户信息",{"2":{"72":1}}],["获取启用的权限操作请求",{"2":{"71":1}}],["获取主应用resources下的",{"2":{"50":1}}],["获取主应用resources目录下的资源文件",{"2":{"50":1}}],["获取锁后的逻辑",{"2":{"45":1}}],["获取物流信息",{"2":{"11":1}}],["获取数据",{"0":{"11":1},"2":{"11":1}}],["||",{"2":{"50":7}}],["|",{"2":{"50":67}}],["一",{"0":{"89":1}}],["一个插件",{"2":{"57":1}}],["一个插件jar有且只能有一个类被",{"2":{"50":1,"57":1}}],["一个项目用cool就够了",{"2":{"50":2}}],["一般抛异常写法",{"2":{"42":1}}],["`",{"2":{"50":10}}],["`update",{"2":{"50":1}}],["`create",{"2":{"50":1}}],["`params`",{"2":{"50":1}}],["`ip`",{"2":{"50":1}}],["`action`",{"2":{"50":1}}],["`base",{"2":{"50":1}}],["500",{"2":{"84":2}}],["564+08",{"2":{"50":1}}],["556",{"2":{"66":1}}],["559+08",{"2":{"50":1}}],["558+08",{"2":{"50":1}}],["557+08",{"2":{"50":1}}],["554+08",{"2":{"50":1}}],["544+08",{"2":{"50":1}}],["543+08",{"2":{"50":2}}],["5",{"2":{"50":8,"57":6,"62":1,"89":1}}],["就是我们的插件包",{"2":{"58":1}}],["就可以在代码中调用插件的方法了",{"2":{"50":1}}],["就不需要在entity",{"2":{"14":1}}],["调整",{"2":{"104":4,"105":2}}],["调用其他插件",{"2":{"50":1}}],["调用其他插件aliyun",{"2":{"50":1}}],["调用主应用获取缓存",{"2":{"50":1}}],["调用主应用设置缓存",{"2":{"50":1}}],["调用主应用",{"2":{"50":3}}],["调用插件类",{"2":{"50":1}}],["调用",{"0":{"50":1}}],["调一调",{"2":{"37":1}}],["打开后台管理系统",{"2":{"49":1}}],["打包结果",{"2":{"58":1}}],["打包命令",{"2":{"58":1}}],["打包",{"0":{"58":1}}],["打包时可以排除",{"2":{"57":1}}],["打包前端镜像",{"2":{"33":1}}],["打包前后端代码",{"2":{"27":1}}],["打包后端镜像",{"2":{"33":1}}],["打包后端和前端镜像",{"2":{"32":1}}],["打包镜像之前",{"2":{"33":1}}],["打包镜像",{"0":{"33":1}}],["打包之前注意配置生产环境的数据库配置config",{"2":{"27":1}}],["然后在系统中安装插件包",{"2":{"49":1}}],["导致系统臃肿",{"2":{"47":1}}],["领取优惠券",{"2":{"46":1}}],["加载权限表中所有操作请求权限",{"2":{"71":1}}],["加载成功后文件名称将被当作唯一键标识",{"2":{"44":1}}],["加上",{"2":{"54":1}}],["加锁",{"2":{"46":1}}],["基于表来完成分布式id生成",{"2":{"84":1}}],["基于用户维度的防重复提交",{"2":{"46":1}}],["基础模块",{"2":{"40":1}}],["防重提交",{"2":{"104":1}}],["防重提交注解",{"2":{"104":1}}],["防重复提交",{"0":{"46":1}}],["防止上传恶意文件等",{"2":{"86":1}}],["防止操作不当导致的数据丢失",{"2":{"35":1}}],["防止刷新404",{"2":{"30":1}}],["释放锁",{"2":{"45":1}}],["尝试获取锁",{"2":{"45":1}}],["注入service",{"2":{"84":1}}],["注入锁",{"2":{"45":1}}],["注解",{"0":{"76":1},"1":{"77":1,"78":1},"2":{"46":1,"50":2,"57":4}}],["注意事项",{"0":{"35":1}}],["注意",{"2":{"18":1,"22":1,"23":1,"24":1,"25":1,"27":1,"33":1,"44":1,"62":1,"78":1,"86":1}}],["注意如果该表有json字段",{"2":{"14":1}}],["锁工具",{"2":{"104":2}}],["锁是基于redis",{"2":{"45":1}}],["锁",{"0":{"45":1}}],["要新增一个",{"2":{"44":1}}],["初始化数据",{"2":{"104":1}}],["初始化数据json文件",{"2":{"40":1}}],["初始化eps完成",{"2":{"66":1}}],["初始化菜单数据",{"2":{"44":1}}],["初始化自定义的数据",{"2":{"44":1}}],["富文本参数",{"2":{"44":1}}],["规范",{"2":{"44":1}}],["规则为",{"2":{"18":1}}],["数组里可以包含多个对象",{"2":{"44":1}}],["数据有",{"2":{"93":1}}],["数据回收站",{"2":{"93":1}}],["数据回收站模块",{"2":{"40":1}}],["数据初始化完成",{"2":{"44":1}}],["数据初始化",{"0":{"44":1},"2":{"84":1}}],["数据脱敏",{"2":{"22":1}}],["数据脱敏等等",{"2":{"21":1}}],["数据填充",{"2":{"21":1,"22":1}}],["数据库初始数据初始化",{"2":{"44":1}}],["数据库",{"0":{"21":1},"1":{"22":1,"23":1,"24":1},"2":{"23":32}}],["格式如下",{"2":{"44":1}}],["目录下",{"2":{"58":1}}],["目录下创建",{"2":{"44":1}}],["目录创建",{"2":{"44":1}}],["目录结构",{"0":{"39":1,"54":1},"1":{"40":1}}],["相关配置",{"2":{"70":1}}],["相关应用",{"2":{"43":1}}],["相关的技术发展",{"2":{"92":1}}],["相关的",{"2":{"4":1}}],["很容易就能完成一个",{"2":{"43":1}}],["很多应用希望接入",{"2":{"43":1}}],["结尾",{"2":{"44":1}}],["结合知识库",{"2":{"43":1}}],["结构",{"0":{"40":1}}],["做为后来者有后发优势",{"2":{"92":1}}],["做了一个",{"2":{"43":1}}],["做解析",{"2":{"20":1}}],["于是我们面向开发者和软件开发公司",{"2":{"43":1}}],["容易把我们累死",{"2":{"43":1}}],["随着技术不断地发展",{"2":{"92":1}}],["随着",{"2":{"43":1}}],["视频演示",{"2":{"43":1}}],["流程编排插件",{"2":{"102":1}}],["流程编排功能",{"2":{"43":1}}],["流程编排",{"0":{"43":1},"2":{"92":1}}],["异常信息为",{"2":{"42":1}}],["异常统一捕获",{"0":{"42":1}}],["即抛异常",{"2":{"42":1}}],["手动抛异常",{"2":{"42":1}}],["手动进行转换",{"2":{"14":1}}],["业务key",{"2":{"84":1}}],["业务校验的工具",{"2":{"42":1}}],["业务代码放在这边",{"2":{"40":1}}],["系统异常信息日志记录和查询",{"2":{"93":1}}],["系统正常操作日志记录和查询",{"2":{"93":1}}],["系统通用",{"2":{"86":2}}],["系统的文件上传就会自动替换成云存储上传的方式",{"2":{"85":1}}],["系统启动完成访问",{"2":{"83":1}}],["系统启动的时候",{"2":{"71":1}}],["系统会查询并向spring",{"2":{"71":1}}],["系统提供了",{"2":{"42":1}}],["系统用户",{"2":{"40":1}}],["请求日志",{"2":{"93":1}}],["请求日志记录",{"0":{"68":1}}],["请求过程中会解析",{"2":{"73":1}}],["请求参数",{"0":{"15":1},"2":{"82":2}}],["请勿重复操作",{"2":{"46":1}}],["请区分post",{"2":{"42":1}}],["不要吝啬你们免费的star哦",{"2":{"95":1}}],["不像一般代码生成器生成一堆冗余代码",{"2":{"92":1}}],["不经过服务器",{"2":{"85":1}}],["不然调用时会报错",{"2":{"57":1}}],["不带声调",{"2":{"57":1}}],["不同的插件有不同的配置",{"2":{"55":1}}],["不会重复初始化",{"2":{"44":1}}],["不支持该请求方式",{"2":{"42":1}}],["不用写一行代码",{"2":{"37":1}}],["已存在该记录",{"2":{"42":1}}],["统一异常处理",{"0":{"41":1},"1":{"42":1}}],["按照简单",{"2":{"88":1}}],["按上面的包结构新增即可",{"2":{"40":1}}],["按规则组装",{"2":{"20":1}}],["为什么选择",{"0":{"92":1}}],["为例",{"2":{"65":1}}],["为排除引入",{"2":{"57":1}}],["为引入",{"2":{"57":1}}],["为主应用",{"2":{"51":1}}],["为插件key",{"2":{"50":1}}],["为对应的值",{"2":{"44":1}}],["为表的字段",{"2":{"44":1}}],["为表的名称",{"2":{"44":1}}],["为业务模块",{"2":{"40":1}}],["为核心模块",{"2":{"40":1}}],["为了使项目能够持续",{"2":{"95":1}}],["为了开发插件如果引入了主应用已经有的maven依赖可以在下面的",{"2":{"57":2}}],["为了方便开发插件和统一插件开发规范",{"2":{"53":1}}],["为了方便获取参数",{"2":{"15":1}}],["为了丰富系统功能",{"2":{"47":1}}],["为了不过多依赖环境",{"2":{"8":1}}],["插件可以在打包的时候将在我们",{"2":{"57":1}}],["插件详解",{"0":{"57":1}}],["插件配置",{"2":{"56":1}}],["插件介绍",{"2":{"56":1}}],["插件",{"2":{"56":1,"102":1}}],["插件钩子",{"2":{"56":1}}],["插件唯一标识",{"2":{"56":1}}],["插件描述",{"2":{"55":1,"56":1}}],["插件运行测试类",{"2":{"54":1}}],["插件信息配置文件",{"2":{"54":1}}],["插件类放在这个包下",{"2":{"54":1}}],["插件包",{"2":{"54":1}}],["插件包可以通过官网下载插件",{"2":{"49":1}}],["插件方法",{"2":{"50":1,"57":1}}],["插件管理",{"2":{"49":1}}],["插件模块",{"2":{"40":1}}],["插件分享等",{"2":{"6":1}}],["插件分享等内容",{"2":{"4":1}}],["角色菜单权限分配",{"2":{"93":1}}],["角色管理",{"2":{"93":1}}],["角色数组",{"2":{"56":1,"73":1}}],["角色",{"2":{"40":1}}],["资源目录下的文件",{"2":{"51":1}}],["资源文件",{"2":{"40":1}}],["资源",{"2":{"40":1,"60":1}}],["菜单管理",{"2":{"93":1}}],["菜单",{"2":{"40":1}}],["└─",{"2":{"40":8,"54":7}}],["└──",{"2":{"18":6}}],["核心包",{"2":{"40":1,"54":1}}],["├─core",{"2":{"54":1}}],["├─",{"2":{"40":15,"54":3}}],["├──",{"2":{"18":1}}],["清晰明了便于管理",{"2":{"39":1}}],["组件会根据字段智能选择",{"2":{"38":1}}],["零代码开发",{"2":{"37":1}}],["全自动",{"0":{"37":1}}],["提高了代码的可维护性",{"2":{"60":1}}],["提高开发效率",{"2":{"36":1}}],["提示",{"2":{"40":1}}],["提供了极大的灵活性",{"2":{"60":1}}],["提供了简化的业务异常抛出工具",{"2":{"41":1}}],["提供了非常灵活的",{"2":{"21":1}}],["提供了一种高效且可靠的解决方案",{"2":{"8":1}}],["降低开发成本",{"2":{"36":1}}],["推荐",{"2":{"62":2,"100":1}}],["推荐两种快速开发方式",{"2":{"36":1}}],["推荐使用",{"0":{"28":1}}],["文件管理",{"2":{"93":1}}],["文件管理模块",{"2":{"40":1}}],["文件存放路径",{"2":{"86":1}}],["文件根地址",{"2":{"86":1}}],["文件等",{"2":{"60":1}}],["文件上传插件",{"2":{"102":1}}],["文件上传模式",{"2":{"86":1}}],["文件上传相关",{"2":{"86":1}}],["文件上传",{"0":{"85":1},"2":{"59":1,"86":1}}],["文件上传换成云存储",{"2":{"35":1}}],["文件内容",{"2":{"50":1}}],["文件后",{"2":{"44":1}}],["文件",{"2":{"38":1,"40":1,"44":2,"86":1}}],["文档",{"0":{"83":1,"98":1},"2":{"1":1}}],["运行系统",{"0":{"63":1},"1":{"64":1,"65":1,"66":1,"67":1}}],["运行结果",{"2":{"50":1}}],["运行代码生成器",{"2":{"38":1}}],["运行",{"0":{"34":1}}],["运行后端",{"2":{"34":2}}],["运行后端和前端",{"2":{"32":1}}],["运行后端服务",{"0":{"29":1}}],["否则使用",{"2":{"45":1}}],["否则你将无法正常访问你的",{"2":{"33":1}}],["否则这个controller",{"2":{"18":1}}],["让前端能够自动生成eps",{"2":{"33":1}}],["创建实体类生成表",{"2":{"38":1}}],["创建docker",{"2":{"33":1}}],["创建",{"2":{"32":1,"44":1}}],["持久化连接相关配置",{"2":{"30":1}}],["持续添加更多的数据库支持",{"2":{"23":1}}],["$",{"2":{"86":1}}],["$1",{"2":{"30":1}}],["$upstream",{"2":{"30":1}}],["$uri",{"2":{"30":2}}],["$http",{"2":{"30":2}}],["$host$request",{"2":{"30":1}}],["$host",{"2":{"30":2}}],["$proxy",{"2":{"30":2}}],["$remote",{"2":{"30":5}}],["访问http",{"2":{"67":1}}],["访问如果登录页正常出现验证码",{"2":{"32":1}}],["访问",{"2":{"30":1,"66":1}}],["访问域名",{"2":{"27":1}}],["8",{"2":{"50":1,"57":3,"62":1,"65":2}}],["80",{"2":{"34":2}}],["8001",{"2":{"30":1,"34":2,"50":5,"66":2,"83":1}}],["86400s",{"2":{"30":1}}],["8s",{"2":{"23":2}}],["403",{"2":{"71":1}}],["401",{"2":{"71":1}}],["46",{"2":{"66":1}}],["45",{"2":{"66":3}}],["4b57",{"2":{"57":1}}],["47ac",{"2":{"57":1}}],["4fd03504",{"2":{"57":1}}],["4",{"0":{"30":1,"56":1,"67":1},"2":{"57":2,"60":1,"71":1}}],["日志",{"2":{"29":1}}],["改成自己的应用名称",{"2":{"29":1}}],["表示访问服务端接口而不是静态资源",{"2":{"30":1}}],["表示",{"2":{"29":2}}],["表单",{"2":{"15":1}}],["方便一张图片使用在多种场景",{"2":{"86":1}}],["方式二",{"0":{"79":1}}],["方式一",{"0":{"76":1},"1":{"77":1,"78":1}}],["方式",{"0":{"31":1},"1":{"32":1,"33":1,"34":1,"35":1},"2":{"31":1,"73":1}}],["方式启动",{"2":{"29":1}}],["方法上",{"0":{"77":1}}],["方法去调用主应用的一些对象方法",{"2":{"50":1}}],["方法第一个参数如果为",{"2":{"42":1}}],["方法",{"2":{"20":1,"50":5}}],["重启生成表",{"2":{"38":1}}],["重启",{"2":{"29":1}}],["重启某个服务",{"2":{"29":1}}],["重写",{"0":{"20":1}}],["重写逻辑",{"2":{"16":2}}],["重写实现",{"0":{"16":1}}],["停止某个服务",{"2":{"29":1}}],["命令行安装",{"2":{"29":1}}],["到后端服务",{"2":{"27":1}}],["所以需要配置",{"2":{"27":1}}],["所有的",{"2":{"12":1}}],["安全考虑生产环境不会自动初始化数据库",{"2":{"27":1}}],["安装云存储插件",{"2":{"85":1}}],["安装插件将打包好的",{"2":{"59":1}}],["安装插件",{"0":{"59":1}}],["安装插件之后",{"2":{"50":1}}],["安装",{"0":{"49":1},"2":{"28":1}}],["安装依赖",{"0":{"28":1},"2":{"27":1,"67":1}}],["安装宝塔",{"2":{"27":1}}],["恭喜你",{"2":{"27":1,"32":1}}],["反向代理",{"2":{"27":2}}],["编写实体类",{"2":{"38":1}}],["编译打包后端服务",{"2":{"27":1}}],["编码",{"0":{"7":1},"2":{"92":1}}],["上传模式",{"2":{"86":1}}],["上传前后端代码到服务器",{"2":{"27":1}}],["上面只是个例子",{"2":{"55":1}}],["上加了这个注解后",{"2":{"20":1}}],["官方多环境配置文档",{"2":{"27":1}}],["官网文档",{"2":{"21":1}}],["官网",{"2":{"1":1,"28":1}}],["查看服务的输出日志",{"2":{"29":1}}],["查看",{"2":{"27":1}}],["查询该用户所具有的权限并缓存",{"2":{"71":1}}],["查询模式querymodeenum",{"2":{"14":1}}],["查询连表字段",{"2":{"14":1}}],["查询另一张表的字段",{"2":{"14":1}}],["查询配置",{"0":{"14":1}}],["查询列表",{"2":{"13":1}}],["查询条件过滤",{"2":{"13":1,"15":1,"16":1,"83":1}}],["本地上传配置",{"2":{"86":1}}],["本地上传",{"2":{"85":1}}],["本地配置完数据库运行",{"2":{"27":1,"32":1}}],["本部署教程以",{"2":{"26":1}}],["本身",{"2":{"21":1}}],["普通方式",{"0":{"26":1},"1":{"27":1,"28":1,"29":1,"30":1}}],["以往的框架已经越来越不能满足现代化的开发需求",{"2":{"92":1}}],["以",{"2":{"65":1}}],["以下包会打入jar",{"2":{"57":1}}],["以下是我们的一些计划",{"2":{"101":1}}],["以下是",{"2":{"31":1}}],["以下教程以",{"2":{"25":1}}],["以宝塔为例",{"0":{"27":1,"32":1}}],["以上包在主应用已经引入",{"2":{"57":1}}],["以上内容来自第三方相关产品的官方文档或第三方平台",{"2":{"22":1}}],["以上是针对entity单表查询方式",{"2":{"14":1}}],["低价云服务器推荐",{"2":{"25":1}}],["🔥",{"2":{"25":1}}],["因为有你们的支持",{"2":{"103":1}}],["因为这可能会造成数据丢失",{"2":{"24":1}}],["因此如果你需要开发",{"2":{"43":1}}],["因此会带来指数级的性能增长",{"2":{"21":1}}],["因此会带来更高的自主性",{"2":{"21":1}}],["切勿在生产环境开启自动建表功能",{"2":{"24":1}}],["并异步进行刷新用户权限",{"2":{"104":1}}],["并可以在init方法中初始化返回字段类型及数据组装函数定义",{"2":{"104":1}}],["并将用户信息存在整个请求过程中的",{"2":{"73":1}}],["并实现",{"2":{"50":1,"57":1}}],["并实现值的插入",{"2":{"44":1}}],["并定义表数据",{"2":{"44":1}}],["并且支持表字段的修改",{"2":{"24":1}}],["并重写了",{"2":{"20":1}}],["节省了大量手动工作",{"2":{"24":1}}],["尤其是开发过程中频繁的新增表及变更表结构",{"2":{"24":1}}],["列出当前的服务",{"2":{"29":1}}],["列的配置",{"2":{"24":1}}],["列表查询",{"2":{"14":1}}],["而不用一味地堆功能",{"2":{"47":1}}],["而不需要关心数据库的表",{"2":{"24":1}}],["而是也非常不灵活",{"2":{"43":1}}],["而是对它做一层封装",{"2":{"20":1}}],["有且只能有一个类被",{"2":{"57":1}}],["有时候开发时的配置和生产环境的配置是不一样的",{"2":{"51":1}}],["有些功能模块上线时",{"2":{"44":1}}],["有了该文件",{"2":{"33":1}}],["有一项重要的能力就是表结构自动维护",{"2":{"24":1}}],["有兴趣的可以关注我们",{"2":{"4":1}}],["用法",{"2":{"84":1}}],["用来判定用户是否有此权限",{"2":{"71":1}}],["用configattribute的集合作为value",{"2":{"71":1}}],["用权限的path作为map的key",{"2":{"71":1}}],["用户是系统操作者",{"2":{"93":1}}],["用户管理",{"2":{"93":1}}],["用户管理模块",{"2":{"40":1}}],["用户",{"2":{"73":1}}],["用户详情",{"2":{"71":1}}],["用户名",{"2":{"73":1}}],["用户名不存在",{"2":{"71":1}}],["用户名已存在",{"2":{"41":1,"42":3}}],["用户登录",{"2":{"71":1}}],["用户id",{"2":{"14":1}}],["用过",{"2":{"24":1}}],["理论上你只需修改一些不兼容的代码就可以正常运行了",{"2":{"23":1}}],["那样工作量太大了",{"2":{"23":1}}],["是",{"2":{"60":1}}],["是插件的配置信息",{"2":{"55":1}}],["是具体的业务框架",{"2":{"23":1}}],["是否支持在微服务项目下进行",{"2":{"22":1}}],["但是每次都是用代码手搓",{"2":{"43":1}}],["但是它为我们提供了改造的可能",{"2":{"23":1}}],["但是",{"2":{"23":1}}],["虽然",{"2":{"23":1}}],["星瑞格数据库",{"2":{"23":1}}],["华为",{"2":{"23":1}}],["华库",{"2":{"23":1}}],["亚马逊",{"2":{"23":1}}],["行云数据库",{"2":{"23":1}}],["瀚高数据库",{"2":{"23":1}}],["神通数据库",{"2":{"23":1}}],["南大通用数据库",{"2":{"23":1}}],["南大通用",{"2":{"23":1}}],["人大金仓数据库",{"2":{"23":1}}],["kyi=",{"2":{"50":1}}],["kingbasees",{"2":{"23":1}}],["keyname",{"2":{"44":2}}],["keyword",{"2":{"14":1}}],["keywordlikefields",{"2":{"14":1}}],["key",{"2":{"9":1,"30":1,"44":1,"45":3,"46":3,"50":4,"55":1,"56":1,"84":2}}],["虚谷数据库",{"2":{"23":1}}],["达梦数据库",{"2":{"23":1}}],["及以上数据库",{"2":{"23":1}}],["及以下数据库",{"2":{"23":1}}],["及更高性能",{"2":{"22":1}}],["描述",{"2":{"23":1,"84":1}}],["欢迎联系我们",{"2":{"101":1}}],["欢迎提交pr",{"2":{"98":1}}],["欢迎纠正",{"2":{"22":1}}],["欢迎加入我们大家庭一起讨论",{"2":{"2":1}}],["若有错误",{"2":{"22":1}}],["项目中常见的问题",{"2":{"99":1}}],["项目是开源免费",{"2":{"95":1}}],["项目是前后端分离的",{"2":{"64":1}}],["项目启动自动插入数据参考",{"2":{"84":1}}],["项目按照模块化的方式组织",{"2":{"39":1}}],["项目部署",{"0":{"25":1},"1":{"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1}}],["项目",{"2":{"22":1}}],["非低代码",{"2":{"37":1}}],["非",{"2":{"22":1}}],["quot",{"2":{"22":2,"41":2,"42":2}}],["querymodeenum",{"2":{"14":2}}],["querywrapper",{"2":{"14":6,"16":3,"21":1,"22":1}}],["query",{"2":{"11":1,"14":1}}],["和",{"2":{"22":1}}],["和传统的",{"2":{"16":1}}],["比如orderid",{"2":{"84":1}}],["比如替换系统的上传组件",{"2":{"56":1}}],["比如你有一个订单管理的模块",{"2":{"40":1}}],["比如",{"2":{"22":1,"44":1,"50":1}}],["借助其他框架或收费",{"2":{"22":1}}],["字典管理",{"2":{"93":1}}],["字典信息",{"2":{"78":1}}],["字典回写",{"2":{"22":1}}],["字段",{"2":{"56":1,"73":1}}],["字段解释",{"0":{"56":1}}],["字段模块",{"2":{"40":1}}],["字段加密",{"2":{"22":1}}],["字段权限",{"2":{"22":1}}],["字段的",{"2":{"22":1}}],["字段全匹配",{"2":{"14":1}}],["收费",{"2":{"22":4}}],["✔️",{"2":{"22":4}}],["审计",{"2":{"22":1}}],["乐观锁",{"2":{"22":1}}],["乐观锁更新",{"2":{"21":1}}],["未知",{"2":{"22":1}}],["传输",{"2":{"22":1}}],["无论是注解在方法还是类上",{"2":{"78":1}}],["无需授权的",{"2":{"95":1}}],["无需安装",{"2":{"65":1}}],["无需手动通过",{"2":{"42":1}}],["无需额外安装软件",{"2":{"8":1}}],["无法做到全部支持",{"2":{"23":1}}],["无其他第三方依赖",{"2":{"22":1}}],["配置完数据库直接启动",{"2":{"100":1}}],["配置系统菜单",{"2":{"93":1}}],["配置文件",{"0":{"79":1}}],["配置文件位于src",{"2":{"65":1}}],["配置数据库",{"0":{"65":1}}],["配置插件信息",{"2":{"55":1}}],["配置点3",{"2":{"30":1}}],["配置点2",{"2":{"30":1}}],["配置点1",{"2":{"30":1}}],["配置示例",{"0":{"30":1}}],["配置淘宝镜像",{"2":{"28":1}}],["配置",{"0":{"51":1,"70":1},"2":{"22":1,"27":1}}],["复合主键",{"2":{"22":1}}],["生成",{"2":{"38":1}}],["生成前端代码",{"2":{"38":1}}],["生成后端代码",{"2":{"38":1}}],["生成策略",{"2":{"22":1}}],["生成的路由前缀为",{"2":{"18":1}}],["❌",{"2":{"22":30}}],["✅",{"2":{"22":51}}],["功能",{"2":{"100":1}}],["功能几乎跟nodejs",{"2":{"94":1}}],["功能或特点",{"2":{"22":1}}],["功能对比",{"0":{"22":1}}],["拦截器",{"2":{"21":1}}],["没有可初始化的插件",{"2":{"66":1}}],["没有任何的",{"2":{"21":1}}],["没有任何",{"2":{"21":1}}],["没有设置astype",{"2":{"14":1}}],["高性能",{"2":{"21":1}}],["高效的缓存解决方案",{"2":{"8":1}}],["逻辑删除",{"2":{"21":1,"22":1}}],["多租户",{"2":{"22":1}}],["多数据源是否支持",{"2":{"22":2}}],["多数据源支持",{"2":{"22":1}}],["多种",{"2":{"22":1}}],["多张表",{"2":{"22":1}}],["多主键",{"2":{"21":1}}],["多表查询",{"2":{"21":1,"22":3}}],["稳定性越差",{"2":{"21":1}}],["依赖越多",{"2":{"21":1}}],["把控性和稳定性",{"2":{"21":1}}],["再无任何第三方依赖",{"2":{"21":1}}],["除了",{"2":{"21":1,"22":1,"23":1}}],["更新",{"0":{"103":1},"1":{"104":1,"105":1,"106":1,"107":1}}],["更灵活",{"2":{"21":1}}],["更轻量",{"2":{"21":1,"22":2}}],["更加强大的",{"2":{"21":1}}],["更加简洁",{"2":{"12":1}}],["详细用法请查看",{"2":{"21":1}}],["集成了比",{"2":{"21":1}}],["根据",{"2":{"24":1}}],["根据一定规则生成",{"2":{"20":1}}],["根据列表查询单个信息",{"2":{"13":1}}],["自动编码功能",{"2":{"106":1}}],["自动生成前端页面",{"2":{"38":1}}],["自动映射成数据库的表结构",{"2":{"24":1}}],["自动建表",{"0":{"24":1}}],["自带的注解",{"2":{"20":1}}],["自定义路由注解",{"0":{"19":1}}],["自定义类型默认为",{"2":{"14":1}}],["自定义场景主要使用在关联表查询插件",{"2":{"14":1}}],["自定义查询模式",{"2":{"14":1}}],["自定义的查询方式",{"2":{"14":1}}],["包或其内部的类和资源",{"2":{"60":1}}],["包或类",{"2":{"60":1}}],["包具有以下几个显著的优势",{"2":{"60":1}}],["包的位置和版本",{"2":{"60":1}}],["包括本地文件系统",{"2":{"60":1}}],["包括一些核心的组件工具",{"2":{"40":1}}],["包时会想该插件注入",{"2":{"50":1}}],["包下创建",{"2":{"40":1}}],["包下加一级",{"2":{"18":1}}],["包",{"2":{"18":1,"40":1,"60":3}}],["在线",{"2":{"93":1}}],["在线演示",{"2":{"7":1}}],["在修改数据之前或之后做一些处理",{"2":{"82":1}}],["在配置文件中加需要忽略的路径",{"2":{"79":1}}],["在项目编译的时候会自动生成这些文件",{"2":{"100":1}}],["在项目根目录下",{"2":{"67":1}}],["在项目启动的时候会去加载该文件",{"2":{"44":1}}],["在后台插件管理页面",{"2":{"59":1}}],["在后台插件管理里可以动态修改",{"2":{"55":1}}],["在执行打包的过程",{"2":{"57":1}}],["在我们脚手架上你可以发现",{"2":{"57":1}}],["在开发过程中如果需要引入第三方类库",{"2":{"57":1}}],["在提供的插件脚手架中已经应用了常用的依赖如",{"2":{"57":1}}],["在插件导入时才能被识别到",{"2":{"57":1}}],["在打包的时候选择要打包的插件",{"2":{"54":1}}],["在加载",{"2":{"50":1}}],["在controller接口上加上",{"2":{"46":1}}],["在某个版本需要新增数据的话",{"2":{"44":1}}],["在新增功能模块时",{"2":{"40":1}}],["在",{"2":{"21":1,"40":2,"42":1,"44":1,"58":1,"60":1}}],["在任何一个系统中",{"2":{"21":1}}],["在历史版本中需在",{"2":{"18":1}}],["27",{"0":{"107":1}}],["2b8",{"2":{"65":1}}],["26",{"2":{"57":3}}],["20",{"2":{"84":1}}],["200",{"2":{"30":1}}],["2024",{"0":{"104":1,"105":1,"106":1,"107":1},"2":{"18":1,"50":8,"66":4}}],["2",{"0":{"28":1,"33":1,"50":1,"54":1,"65":1,"105":1},"2":{"57":5,"60":2,"71":1}}],["256x256",{"2":{"56":1}}],["25",{"0":{"104":1},"2":{"18":1}}],["31908",{"2":{"66":4}}],["383+08",{"2":{"66":1}}],["382+08",{"2":{"66":1}}],["38",{"2":{"66":4}}],["3306",{"2":{"65":1}}],["32",{"2":{"57":1}}],["32615",{"2":{"50":8}}],["3c64059230d0",{"2":{"57":1}}],["3600s",{"2":{"30":3}}],["3",{"0":{"29":1,"34":1,"51":1,"55":1,"66":1,"104":1},"2":{"18":1,"57":1,"60":1,"62":2,"66":1,"71":1,"89":1,"90":1}}],["3000s",{"2":{"30":2}}],["302",{"2":{"30":1}}],["301",{"2":{"30":1}}],["304",{"2":{"30":1}}],["30",{"2":{"11":1}}],["该功能主要完成系统用户配置",{"2":{"93":1}}],["该接口需要登录鉴权",{"2":{"46":1}}],["该接口解析的前缀则是",{"2":{"18":1}}],["该文件是前端自动扫描后端接口生成的",{"2":{"33":1}}],["该类继承了",{"2":{"20":1}}],["该父类已经实现了以下六个基础方法",{"2":{"12":1}}],["同时如果个别接口需要忽略记录请求日志",{"2":{"68":1}}],["同级",{"2":{"67":1}}],["同级下有个",{"2":{"18":1}}],["同样也可以对",{"2":{"16":1}}],["转成小写替换掉",{"2":{"18":1}}],["与前端紧密结合",{"2":{"85":1}}],["与",{"2":{"18":1,"69":1}}],["x26",{"2":{"65":2}}],["xml",{"2":{"40":1,"57":2,"58":2}}],["x",{"2":{"30":7,"50":1,"90":1,"107":1}}],["xcloud",{"2":{"23":1}}],["xugu",{"2":{"23":1}}],["xxxxx",{"2":{"51":2}}],["xxx",{"2":{"18":3,"50":2,"55":2}}],["x3c",{"2":{"13":1,"14":4,"15":1,"16":5,"20":1,"42":2,"50":1,"57":81,"58":4,"71":13,"83":1,"84":1}}],["模块化",{"2":{"60":1}}],["模块包",{"2":{"40":1}}],["模块名和",{"2":{"18":1}}],["模块名",{"2":{"18":2}}],["模块目录",{"2":{"18":1}}],["│─",{"2":{"54":1}}],["│",{"2":{"18":17,"40":36,"54":12}}],["原理参考美团点评分布式id",{"2":{"84":1}}],["原理",{"0":{"17":1,"71":1},"1":{"18":1,"19":1,"20":1}}],["原生",{"2":{"9":1}}],["接口的请求入参日志",{"2":{"93":1}}],["接口",{"2":{"18":1,"33":1}}],["接口路由规则",{"0":{"18":1}}],["接口到前端页面的一键生成",{"2":{"7":1,"37":1}}],["接下来我们看看实现的原理",{"2":{"16":1}}],["对系统中经常使用的一些较为固定的数据进行维护",{"2":{"93":1}}],["对系统动态配置常用参数",{"2":{"93":1}}],["对应实体",{"2":{"82":2}}],["对应插件内的方法",{"2":{"50":1}}],["对应请求参数中的",{"2":{"14":1}}],["对应请求参数中同名参数",{"2":{"14":1}}],["对",{"2":{"22":1}}],["对比一下是简化了不少",{"2":{"16":1}}],["进行重写",{"2":{"16":1}}],["中获得",{"2":{"73":1}}],["中实现动态加载",{"2":{"60":1}}],["中的",{"2":{"58":1}}],["中排除掉不打入jar",{"2":{"57":2}}],["中重写方法",{"2":{"16":1}}],["中加非存储数据库的字段",{"2":{"14":1}}],["rawpassword",{"2":{"71":4}}],["rich",{"2":{"44":1}}],["runtimeexception",{"2":{"57":1}}],["run",{"2":{"34":2,"44":1,"67":1}}],["roleids",{"2":{"71":3,"73":1}}],["root",{"2":{"29":1,"30":1,"65":1}}],["row",{"2":{"22":1}}],["rpc",{"2":{"22":1}}],["r",{"2":{"15":2,"16":1,"42":17,"46":2,"73":1,"77":2,"86":4}}],["refreshtoken可以当token使用问题",{"2":{"105":1}}],["refreshexpire",{"2":{"70":1}}],["replace",{"2":{"71":1}}],["replaceall",{"2":{"71":1}}],["record",{"2":{"68":1}}],["receive",{"2":{"46":3}}],["recycle",{"2":{"40":1}}],["reentrantlock",{"2":{"45":1}}],["required",{"2":{"86":1}}],["requiredargsconstructor",{"2":{"44":1,"46":1,"50":2,"86":1}}],["requirenonnull",{"2":{"46":1}}],["requestpart",{"2":{"86":1}}],["requestparam",{"2":{"50":3}}],["requestparams",{"2":{"13":1,"14":2,"15":4,"16":5,"42":4,"46":2,"68":1,"73":2,"82":4,"83":1}}],["requestmatchers",{"2":{"71":1}}],["requestmappinginfo",{"2":{"20":2}}],["requestmappinghandlermapping",{"2":{"20":2}}],["requestmapping",{"2":{"19":2,"50":1}}],["requestcontextholder",{"2":{"46":1}}],["requestattribute",{"2":{"15":1,"46":1,"73":1}}],["request",{"2":{"13":1,"14":2,"15":1,"16":1,"46":2,"68":3,"71":2,"83":1,"86":2}}],["requests",{"2":{"0":1}}],["remark",{"2":{"44":2}}],["remote",{"2":{"30":2}}],["rewrite",{"2":{"30":1}}],["readme",{"2":{"55":2,"56":1}}],["readbytes",{"2":{"50":1}}],["read",{"2":{"30":2}}],["real",{"2":{"30":2}}],["registry",{"2":{"28":2}}],["redirect",{"2":{"30":1}}],["redis",{"2":{"8":6,"35":1}}],["redshift",{"2":{"23":2}}],["relationonetomany",{"2":{"14":2}}],["relations",{"2":{"14":2}}],["response",{"2":{"71":2}}],["responsebody",{"2":{"50":2}}],["restaccessdeniedhandler",{"2":{"71":3}}],["restart",{"2":{"29":2}}],["restcontrolleradvice",{"2":{"42":1}}],["result",{"2":{"11":3,"50":8}}],["resources",{"2":{"40":1,"44":1,"51":2,"54":1,"65":1,"86":1}}],["resource",{"2":{"10":1,"68":1,"71":10}}],["return",{"2":{"9":1,"10":1,"11":3,"15":1,"16":2,"20":1,"42":8,"46":2,"50":2,"57":1,"71":13,"77":1,"86":2}}],["将由以下这个类实现自动配置模块路由",{"2":{"20":1}}],["将",{"2":{"15":1}}],["gt",{"2":{"62":3,"65":1,"89":3,"100":3}}],["grantedauthority>",{"2":{"71":1}}],["graalvm",{"2":{"62":1,"89":1}}],["groupid>org",{"2":{"57":1}}],["groupid>com",{"2":{"57":1}}],["groupid>cn",{"2":{"57":1}}],["groupid>",{"2":{"57":3}}],["greenplum",{"2":{"23":2}}],["gitcode",{"2":{"96":1,"97":1}}],["gitee",{"2":{"53":1,"96":1,"97":1,"98":1}}],["github",{"2":{"53":1,"96":1,"97":1,"98":1}}],["g",{"2":{"28":1,"29":1}}],["goal>",{"2":{"57":1}}],["goal>shade",{"2":{"57":1}}],["goals>",{"2":{"57":2}}],["goldilocks",{"2":{"23":2}}],["goodslist",{"2":{"14":1}}],["gbase",{"2":{"23":3}}],["gauss",{"2":{"23":2}}],["getbytes",{"2":{"71":2}}],["geturls",{"2":{"71":1}}],["getusername",{"2":{"42":4,"71":3}}],["getsecureobjectclass",{"2":{"71":1}}],["getstatus",{"2":{"71":2}}],["getstr",{"2":{"15":1}}],["getroles",{"2":{"71":1}}],["getresponse",{"2":{"71":1}}],["getresourceasstream",{"2":{"50":1}}],["getrequesturl",{"2":{"71":1}}],["getrequesturi",{"2":{"46":1}}],["getrequest",{"2":{"46":1,"71":1}}],["getrequestattributes",{"2":{"46":1}}],["getdepartmentidsbyroleids",{"2":{"71":1}}],["getperms",{"2":{"71":1}}],["getparent",{"2":{"50":1}}],["getparentresource",{"2":{"50":2}}],["getpasswordv",{"2":{"71":1}}],["getpassword",{"2":{"42":2,"71":1}}],["getapp",{"2":{"77":1}}],["getadminuserinfo",{"2":{"73":1}}],["getadminusername",{"2":{"73":1}}],["getauthenticationmanager",{"2":{"71":1}}],["getallconfigattributes",{"2":{"71":1}}],["getallperms",{"2":{"71":1}}],["getattributes",{"2":{"71":1}}],["getattribute",{"2":{"68":1}}],["getabsolutepath",{"2":{"60":1}}],["getannotationsbytype",{"2":{"20":1}}],["getinstance",{"2":{"50":1}}],["getid",{"2":{"42":2,"71":6}}],["getone",{"2":{"42":2,"71":1}}],["get等请求方式是否正确",{"2":{"42":1}}],["getmode",{"2":{"86":1}}],["getmapping",{"2":{"73":1,"77":1,"86":1}}],["getmappingformethod",{"0":{"20":1},"2":{"20":3}}],["getmessage",{"2":{"42":7}}],["getchain",{"2":{"71":1}}],["getcontextclassloader",{"2":{"60":1}}],["getcode",{"2":{"42":1}}],["getclassloader",{"2":{"50":1}}],["getclass",{"2":{"50":1}}],["getcurrentuserid",{"2":{"14":1,"46":2,"73":1,"74":1}}],["getter",{"2":{"14":1}}],["getnum",{"2":{"11":1}}],["getlogistics",{"2":{"11":1}}],["get",{"2":{"10":1,"11":2,"13":1,"14":2,"46":1,"50":2,"57":1,"71":1}}],["订单id",{"2":{"84":1}}],["订单商品列表",{"2":{"14":1}}],["订单信息",{"2":{"14":1}}],["订单产品列表也一并查出",{"2":{"14":1}}],["关联查询用法参考",{"2":{"14":1}}],["如文件上传",{"2":{"106":1}}],["如支付",{"2":{"92":1}}],["如不占用主服务器带宽",{"2":{"86":1}}],["如阿里云",{"2":{"85":1}}],["如需启用调整为",{"2":{"84":2}}],["如我们这边示例使用到了中文转拼音",{"2":{"57":1}}],["如",{"2":{"35":1,"85":1,"86":1}}],["如下表格所示",{"2":{"23":1}}],["如下面这个订单查询",{"2":{"14":1}}],["如果方便请点下",{"2":{"103":1}}],["如果你有更好的建议",{"2":{"101":1}}],["如果你是自动化部署",{"2":{"33":1}}],["如果文档有缺失",{"2":{"98":1}}],["如果不在权限表中则放行",{"2":{"71":1}}],["如果不满足需求",{"2":{"16":1}}],["如果项目中启用了redis",{"2":{"45":1}}],["如果同一张表历史已经有初始化过数据",{"2":{"44":1}}],["如果没效",{"2":{"30":1}}],["如果一切正常",{"2":{"27":1}}],["如果在权限表中",{"2":{"71":1}}],["如果在原文件直接修改将不生效",{"2":{"44":1}}],["如果在",{"2":{"18":1}}],["如果我们有需要连表查询",{"2":{"14":1}}],["如果我们的项目对你有用",{"2":{"2":1}}],["web设置配合使用",{"2":{"86":1}}],["web设置",{"2":{"86":1}}],["web",{"2":{"50":4,"86":1}}],["wrappers",{"2":{"42":2,"71":1}}],["without",{"2":{"57":1}}],["with",{"2":{"14":1}}],["wuliu",{"2":{"11":1}}],["还可以对图片进行各种如压缩",{"2":{"86":1}}],["还可以了解到一些前沿的技术",{"2":{"4":1}}],["还有",{"2":{"14":1}}],["也支持绝对路径",{"2":{"86":1}}],["也可以注解在类上",{"2":{"78":1}}],["也可以使用别人开发的插件",{"2":{"47":1}}],["也可以自己定义vo",{"2":{"14":1}}],["也希望广大开发者粉丝帮助完善文档",{"2":{"0":1}}],["实际开发中可以根据自己的需求来配置",{"2":{"55":1}}],["实现功能可插拔",{"2":{"93":1}}],["实现应用程序的快速扩展和升级",{"2":{"60":1}}],["实现方法",{"2":{"60":1}}],["实现动态加载的技术方案",{"2":{"60":1}}],["实现原理",{"0":{"60":1}}],["实现",{"2":{"45":1}}],["实现简单功能从",{"2":{"7":1,"37":1}}],["实例数量",{"2":{"29":1}}],["实体需以",{"2":{"44":1}}],["实体中",{"2":{"14":1}}],["实体",{"2":{"14":1,"24":1}}],["默认是相对路径",{"2":{"86":1}}],["默认禁用",{"2":{"84":2}}],["默认集成springdoc",{"2":{"83":1}}],["默认忽略app端接口",{"2":{"68":1}}],["默认账户密码",{"2":{"67":1}}],["默认的日志位置",{"2":{"29":1}}],["默认实现了通用的六个接口方法",{"2":{"16":1}}],["默认实现了两种缓存",{"2":{"8":1}}],["默认为map",{"2":{"14":1}}],["默认为entity",{"2":{"14":1}}],["默认转成map",{"2":{"14":1}}],["连表查询",{"2":{"14":1}}],["utf",{"2":{"50":1}}],["util",{"2":{"50":4}}],["uniindex",{"2":{"84":1}}],["union",{"2":{"22":2}}],["unlock",{"2":{"45":1,"46":1}}],["ui",{"2":{"38":1,"79":1,"83":1,"91":1}}],["uploadmode",{"2":{"86":2}}],["uploadpath",{"2":{"86":1}}],["upload",{"2":{"56":1,"79":1,"86":5}}],["upgrade",{"2":{"30":6}}],["updates",{"2":{"50":1}}],["update",{"2":{"12":1,"13":1,"14":1,"15":1,"16":1,"78":1,"83":1}}],["uri$is",{"2":{"30":1}}],["urlclassloader",{"2":{"60":2}}],["url",{"2":{"15":1,"60":3,"65":1,"71":2,"86":1}}],["uxdb",{"2":{"23":1}}],["useunicode=true",{"2":{"65":1}}],["useplugin",{"2":{"50":2}}],["usecache",{"2":{"50":2}}],["usestatus",{"2":{"14":1}}],["users",{"2":{"86":2}}],["userinfo",{"2":{"71":1,"73":2}}],["userid",{"2":{"14":1,"73":2,"74":1}}],["userdetails",{"2":{"71":2}}],["userdetailsservice",{"2":{"71":4}}],["usernamepasswordauthenticationfilter",{"2":{"71":1}}],["usernamenotfoundexception",{"2":{"71":2}}],["username",{"2":{"65":1,"71":2,"73":2}}],["user",{"2":{"14":5,"15":2,"18":2,"40":1}}],["element",{"2":{"91":1}}],["else",{"2":{"50":1}}],["enable",{"2":{"84":1}}],["enablewebsecurity",{"2":{"71":1}}],["encodedpassword",{"2":{"71":2}}],["encode",{"2":{"71":1}}],["entrypointunauthorizedhandler",{"2":{"71":3}}],["entity",{"2":{"14":8,"22":2,"40":2,"42":12,"44":1}}],["epsevent",{"2":{"66":1}}],["eps",{"2":{"66":2,"77":2}}],["eps识别不了",{"2":{"18":1}}],["error",{"2":{"42":10}}],["e",{"2":{"42":19,"57":2}}],["expression",{"2":{"57":2}}],["expire",{"2":{"70":1}}],["expiretime",{"2":{"45":1,"46":1}}],["expires",{"2":{"30":1}}],["excluding",{"2":{"57":14}}],["exclude>cn",{"2":{"57":2}}],["exclude>jakarta",{"2":{"57":1}}],["exclude>io",{"2":{"57":4}}],["exclude>",{"2":{"57":16}}],["exclude>org",{"2":{"57":9}}],["excludes>",{"2":{"57":2}}],["exceptionhandling",{"2":{"71":1}}],["exceptionhandler",{"2":{"42":6}}],["exception",{"2":{"42":2,"57":1,"71":2}}],["execution",{"2":{"100":1}}],["execution>",{"2":{"57":2}}],["executions>",{"2":{"57":2}}],["exec",{"2":{"50":5}}],["extern",{"2":{"50":1}}],["extends",{"2":{"13":1,"14":3,"15":1,"16":2,"20":1,"50":1,"57":1,"71":1,"83":1,"84":1}}],["extractedmenu",{"2":{"44":1}}],["extracteddb",{"2":{"44":1}}],["equals",{"2":{"71":1}}],["eq",{"2":{"14":2,"42":2,"71":2}}],["针对这种场景",{"2":{"14":1}}],["zh",{"2":{"14":3}}],["false",{"2":{"84":1,"86":1}}],["favicon",{"2":{"68":1,"79":1}}],["frameoptionsconfig",{"2":{"71":1}}],["frameoptions",{"2":{"71":1}}],["front",{"2":{"30":1}}],["from",{"2":{"14":1,"22":1,"57":13}}],["form",{"2":{"86":1}}],["format",{"2":{"57":7}}],["for",{"2":{"30":4,"66":1,"71":2}}],["forwarded",{"2":{"30":4}}],["fluent",{"2":{"22":1}}],["flex",{"2":{"14":3,"21":2,"22":1,"23":2,"90":1,"100":1}}],["fi",{"2":{"71":7}}],["filterconfig",{"2":{"71":2}}],["filterchain",{"2":{"68":3,"71":1}}],["filterinvocation",{"2":{"71":5}}],["filterinvocationsecuritymetadatasource",{"2":{"71":2}}],["filter",{"2":{"68":1,"71":1}}],["fileuploadstrategyfactory",{"2":{"86":4}}],["filepath",{"2":{"51":1}}],["files",{"2":{"30":1,"86":2}}],["file",{"2":{"8":1,"60":2,"86":4}}],["finally",{"2":{"46":1,"71":1}}],["final",{"2":{"45":1,"46":1,"84":1,"86":1}}],["firebird",{"2":{"23":2}}],["fieldeq",{"2":{"14":1}}],["具体看",{"2":{"14":2}}],["返回给",{"2":{"20":1}}],["返回字段",{"2":{"14":1}}],["返回哪些字段等",{"2":{"13":1,"15":1,"16":1,"83":1}}],["需和上面的",{"2":{"86":1}}],["需要提取初始化到上面那个",{"2":{"84":1}}],["需要分别拉取前后端代码到本地",{"2":{"64":1}}],["需要初始化一些数据",{"2":{"44":1}}],["需要确保前端和后端在本地运行过一次",{"2":{"33":1}}],["需要通过下面的",{"2":{"14":1}}],["需要组装数据",{"2":{"14":1}}],["需要返回的字段分布在各个表里",{"2":{"14":1}}],["需要模糊查询的字段",{"2":{"14":1}}],["需安装",{"2":{"8":1}}],["个接口",{"2":{"13":1}}],["604800",{"2":{"70":1}}],["6",{"2":{"13":1,"57":12,"62":1,"89":1}}],["6379",{"2":{"8":1}}],["等包",{"2":{"40":1}}],["等待数据库初始化完成",{"2":{"27":1,"32":1}}],["等等",{"2":{"22":1}}],["等参数封装在了一个",{"2":{"15":1}}],["等",{"2":{"13":1,"22":1,"27":1,"38":1,"57":2}}],["删除某个服务",{"2":{"29":1}}],["删除",{"2":{"13":1,"93":1}}],["新增后台扩展插件",{"2":{"106":1}}],["新增一个",{"2":{"40":1}}],["新增",{"2":{"13":1,"104":4,"105":3,"106":1}}],["这将会给我们带来更多的动力",{"2":{"103":1}}],["这些方式都可以解决这个问题",{"2":{"100":1}}],["这边使用到了",{"2":{"57":1}}],["这会使得打包结果很臃肿",{"2":{"57":1}}],["这个可能会给你带来巨大的帮助",{"2":{"43":1}}],["这个解析规则在",{"2":{"18":1}}],["这让我们可以可以专注于业务逻辑和实体",{"2":{"24":1}}],["这样就需要在entity加上另一张表的的字段",{"2":{"14":1}}],["这样就默认实现了以下六个接口",{"2":{"13":1}}],["这是",{"2":{"0":1}}],["v3",{"2":{"79":1}}],["vue3",{"2":{"91":1}}],["vue",{"2":{"33":1,"34":2,"97":3}}],["verify",{"2":{"57":1}}],["version>3",{"2":{"57":1}}],["version>2",{"2":{"57":1}}],["version>",{"2":{"57":3}}],["version>5",{"2":{"57":1}}],["version",{"2":{"30":2,"55":1,"56":1}}],["vertica",{"2":{"23":2}}],["valid",{"2":{"30":1}}],["values",{"2":{"50":1}}],["value",{"2":{"13":1,"14":2,"15":1,"16":1,"19":1,"44":1,"78":1,"83":1,"84":1,"86":4}}],["v7",{"0":{"104":1,"105":1,"106":1,"107":1},"2":{"18":1,"50":1}}],["void",{"2":{"13":1,"14":2,"15":1,"16":1,"38":1,"44":1,"50":3,"68":1,"71":6,"82":2,"83":1}}],["n",{"2":{"93":1}}],["nio",{"2":{"50":5}}],["next",{"2":{"84":1}}],["net",{"2":{"57":4}}],["network",{"2":{"32":1,"33":2,"34":2}}],["new",{"2":{"38":2,"42":2,"57":2,"60":4,"71":12}}],["npm",{"2":{"29":1,"67":2}}],["npmmirror",{"2":{"28":1}}],["nginx",{"0":{"30":1},"2":{"27":3}}],["now",{"2":{"50":2}}],["norepeatsubmitaspect",{"2":{"46":1}}],["norepeatsubmit",{"2":{"45":1,"46":6}}],["no",{"2":{"30":1}}],["node",{"2":{"26":1}}],["nodejs",{"2":{"25":1,"27":1}}],["notnull",{"2":{"14":1,"84":3}}],["name>",{"2":{"58":1}}],["name>my",{"2":{"58":1}}],["name",{"2":{"13":1,"14":3,"15":1,"16":1,"19":1,"29":1,"34":2,"44":2,"55":1,"56":1,"65":1,"83":1,"86":1}}],["null",{"2":{"11":1,"41":1,"42":2,"44":2,"50":1,"57":1,"71":3}}],["number",{"2":{"29":1}}],["num",{"2":{"11":4}}],["示例",{"0":{"13":1}}],["使得代码更加清晰",{"2":{"60":1}}],["使得可以在插件中获取主应用中的",{"2":{"50":1}}],["使得",{"2":{"12":1}}],["使用cool",{"2":{"50":1}}],["使用缓存",{"2":{"50":1}}],["使用插件",{"0":{"48":1},"1":{"49":1,"50":1,"51":1}}],["使用了关联查询",{"2":{"14":1}}],["使用",{"0":{"9":1,"86":1},"2":{"46":1}}],["length",{"2":{"84":1}}],["leafallocentity>",{"2":{"84":1}}],["leafallocentity",{"2":{"84":1}}],["leaf",{"2":{"84":3}}],["lealone",{"2":{"23":2}}],["left",{"2":{"22":1}}],["leftjoin",{"2":{"14":2}}],["loaduserbyusername",{"2":{"71":1}}],["loadresourcedefine",{"2":{"71":2}}],["lombok",{"2":{"50":2,"57":2}}],["local",{"2":{"65":1,"86":2}}],["locations",{"2":{"86":1}}],["location",{"2":{"30":3}}],["lockkey",{"2":{"45":1}}],["logurls",{"2":{"68":1}}],["logo",{"2":{"55":2,"56":2}}],["log`",{"2":{"50":1}}],["log",{"2":{"42":5,"44":1}}],["logs",{"2":{"29":3}}],["logistics",{"2":{"11":2}}],["long",{"2":{"14":1,"42":2,"46":2,"71":2,"73":4,"84":2}}],["list和page支持关联查询",{"2":{"104":1}}],["list",{"2":{"12":1,"13":1,"14":2,"15":1,"16":1,"29":1,"71":1,"78":1,"83":1}}],["jwtauthenticationtokenfilter",{"2":{"71":3}}],["jwtsecurityconfig",{"2":{"71":1}}],["jwtuser",{"2":{"71":6}}],["jwtuserdetailsserviceimpl",{"2":{"71":1}}],["jwt",{"2":{"69":1,"71":1}}],["jdbc",{"2":{"65":2}}],["jdk",{"2":{"62":1,"89":1}}],["jcl",{"2":{"57":2}}],["jakarta",{"2":{"57":3}}],["jarfilepath",{"2":{"60":1}}],["jarurl",{"2":{"60":2}}],["jar",{"2":{"50":1,"57":31,"60":9}}],["javalong",{"2":{"74":1}}],["javaurl",{"2":{"60":1}}],["javapackage",{"2":{"44":1,"50":2,"57":1}}],["javapublic",{"2":{"14":1,"19":1,"20":1,"38":1,"42":2,"68":1}}],["java文件",{"2":{"18":1}}],["java",{"2":{"0":1,"1":1,"8":1,"9":1,"10":1,"11":1,"13":1,"14":2,"15":1,"16":2,"18":3,"24":1,"25":1,"38":2,"40":1,"42":1,"46":2,"50":10,"53":2,"54":2,"57":2,"58":1,"60":1,"62":1,"66":6,"71":4,"73":3,"77":1,"78":1,"82":2,"83":1,"84":1,"86":1,"89":1,"96":3,"98":2}}],["js",{"2":{"29":1,"68":1,"79":1}}],["json参数",{"2":{"44":1}}],["json",{"2":{"44":7,"51":1,"54":1,"55":2,"57":2,"67":1,"84":1}}],["json也提交到代码仓库",{"2":{"33":1}}],["json文件",{"2":{"33":1,"44":1}}],["jsonobject",{"2":{"13":1,"14":2,"15":3,"16":3,"42":2,"46":1,"68":1,"73":1,"82":2,"83":1}}],["jsonutil",{"2":{"11":1,"14":1}}],["jpa",{"2":{"24":2}}],["joinpoint",{"2":{"46":2}}],["join",{"2":{"22":2}}],[">",{"2":{"11":1,"14":1,"20":1,"57":5,"71":10}}],["物流单号",{"2":{"11":1}}],["通过在方法上加tokenignore注解可以的接口不会进行",{"2":{"77":1}}],["通过动态加载",{"2":{"60":2}}],["通过反射实现",{"2":{"50":1}}],["通过拖动配置",{"2":{"43":1}}],["通过",{"2":{"42":1,"60":1}}],["通过管理后台菜单管理的快速创建即可生成",{"2":{"38":1}}],["通过独特的架构",{"2":{"21":1}}],["通过这种方式",{"2":{"14":1}}],["通过coolcache缓存模板",{"0":{"11":1}}],["通过微调大模型学习框架特有写法",{"2":{"7":1,"37":1}}],["我是插件",{"2":{"57":1}}],["我们还引入了其他包",{"2":{"57":1}}],["我们还可以通过自定义方言的方式",{"2":{"23":1}}],["我们提供了插件脚手架",{"2":{"53":1}}],["我们提供了插件系统",{"2":{"47":1}}],["我们可以在运行时动态地加载外部的",{"2":{"60":1}}],["我们可以通过配置文件来实现",{"2":{"51":1}}],["我们可以使用",{"2":{"14":1}}],["我们正在适配",{"2":{"23":1}}],["我们不直接使用",{"2":{"20":1}}],["我们会尽力完善文档",{"2":{"0":1}}],["我被缓存了",{"2":{"9":1}}],["我被调用了",{"2":{"9":1}}],["ico",{"2":{"68":1,"79":1}}],["img",{"2":{"57":1}}],["import",{"2":{"50":14,"57":6}}],["impala",{"2":{"23":2}}],["implements",{"2":{"9":1,"10":1,"16":1,"44":1,"68":1,"71":3}}],["ioexception",{"2":{"68":1,"71":2}}],["ioutil",{"2":{"50":2}}],["io",{"2":{"50":2,"57":2}}],["illegalargumentexception",{"2":{"42":2,"71":2}}],["ip",{"2":{"30":2}}],["i",{"2":{"29":2}}],["ignoredurlsproperties",{"2":{"71":3}}],["ignored",{"2":{"68":1,"79":1}}],["ignore",{"2":{"14":2}}],["is",{"2":{"66":1}}],["isnotempty",{"2":{"14":1}}],["isempty",{"2":{"11":1,"50":1,"71":1}}],["if",{"2":{"11":1,"14":1,"42":2,"45":1,"50":1,"71":2}}],["in",{"2":{"57":1}}],["including",{"2":{"57":2}}],["inputstream",{"2":{"50":4}}],["into",{"2":{"50":1}}],["interceptorstatustoken",{"2":{"71":1}}],["interface",{"2":{"19":1}}],["integer",{"2":{"10":1,"73":1,"84":1}}],["insert",{"2":{"50":4}}],["instances",{"2":{"29":1}}],["install",{"2":{"28":1,"29":1,"67":1}}],["inner",{"2":{"22":1}}],["index",{"2":{"14":1,"30":1,"83":1}}],["init",{"2":{"13":1,"14":2,"15":1,"16":1,"38":1,"66":1,"71":1,"83":1}}],["informix",{"2":{"23":2}}],["info",{"2":{"12":1,"13":1,"14":5,"15":1,"16":1,"18":3,"20":5,"44":1,"50":5,"57":15,"66":4,"78":1,"83":1}}],["invokeotherplugin",{"2":{"50":1}}],["invokemain",{"2":{"50":3,"57":1}}],["invokemethod",{"2":{"50":4}}],["invokeplugin",{"2":{"50":11,"57":2}}],["invoke",{"2":{"11":4,"71":2}}],["idea",{"2":{"100":1}}],["idgenservice",{"2":{"84":3}}],["id",{"2":{"9":1,"10":1,"14":4,"22":1,"73":1,"84":1}}],["obtainsecuritymetadatasource",{"2":{"71":1}}],["observation",{"2":{"57":3}}],["objutil",{"2":{"11":1,"14":1,"50":2}}],["objectutil",{"2":{"71":1}}],["object中包含用户请求request",{"2":{"71":1}}],["objects",{"2":{"46":1}}],["object",{"2":{"9":1,"10":1,"11":2,"16":1,"46":1,"50":4,"57":2,"71":1}}],["ossaccesskeyid=ltai5t8xtpd99yzsjqcc",{"2":{"50":1}}],["oss",{"2":{"35":1,"50":3,"85":1,"86":1}}],["oscar",{"2":{"23":1}}],["ofmillis",{"2":{"45":1,"46":1}}],["ofminutes",{"2":{"11":1}}],["official",{"2":{"53":2,"96":2,"97":2,"98":2}}],["off",{"2":{"30":1}}],["open",{"2":{"79":1}}],["openapi",{"2":{"66":1}}],["opengauss",{"2":{"23":2}}],["operation",{"2":{"46":1,"86":2}}],["option",{"2":{"16":2}}],["oceanbase",{"2":{"23":2}}],["org",{"2":{"50":5,"57":8}}],["oracle12c",{"2":{"23":2}}],["oracle11g",{"2":{"23":1}}],["oracle",{"2":{"23":1}}],["ordergoodsentity>",{"2":{"14":1}}],["order",{"2":{"14":1,"40":2}}],["orderid",{"2":{"11":1,"14":1,"84":4}}],["orderinfoentity>",{"2":{"14":1}}],["orderinfoentity",{"2":{"11":1,"14":1}}],["ok",{"2":{"15":1,"46":1,"77":1,"86":2}}],["o",{"2":{"14":2,"66":1,"71":3}}],["one",{"2":{"30":1}}],["on",{"2":{"14":1}}],["out",{"2":{"9":1,"15":1,"50":5,"57":1}}],["override",{"2":{"9":1,"10":1,"13":1,"14":1,"15":1,"16":3,"20":1,"44":1,"50":1,"57":1,"68":1,"71":11,"82":2,"83":1}}],["multipartfile",{"2":{"86":1}}],["multipart",{"2":{"86":1}}],["mutate",{"2":{"20":1}}],["mode",{"2":{"86":1}}],["modifyafter",{"2":{"82":1}}],["modifyenum",{"2":{"82":2}}],["modifybefore",{"2":{"82":1}}],["modules",{"2":{"18":1,"40":3}}],["ms",{"2":{"66":1}}],["mvn",{"2":{"58":1}}],["micrometer",{"2":{"57":12}}],["midway",{"2":{"27":1,"33":1,"34":2}}],["md",{"2":{"55":1}}],["md5digestashex",{"2":{"71":2}}],["md5",{"2":{"42":2}}],["m",{"2":{"50":6}}],["mediatype",{"2":{"86":2}}],["message",{"2":{"42":1}}],["method",{"2":{"20":3}}],["methodname",{"2":{"9":1,"50":3}}],["myaccessdecisionmanager",{"2":{"71":3}}],["myfiltersecurityinterceptor",{"2":{"71":1}}],["mysecuritymetadatasource",{"2":{"71":1}}],["mysql",{"2":{"23":3,"27":1,"62":1,"65":5,"89":1}}],["my",{"2":{"58":1}}],["mycoolplugintest",{"2":{"54":1}}],["mycoolplugin",{"2":{"50":1,"54":1}}],["mybatis",{"2":{"14":3,"21":5,"22":4,"23":2,"90":1}}],["mac",{"2":{"86":2}}],["matches",{"2":{"71":1}}],["maven",{"2":{"57":7,"62":1,"89":1,"100":1}}],["main",{"2":{"38":1,"40":1,"54":1,"66":3}}],["maxid",{"2":{"84":1}}],["max",{"2":{"29":2,"84":1}}],["mariadb",{"2":{"23":2}}],["marketcouponinfoservice",{"2":{"46":1}}],["marketcouponuserentity>",{"2":{"14":1}}],["marketcouponuserservice",{"2":{"14":1}}],["market",{"2":{"14":7}}],["mappings",{"2":{"86":1}}],["mapper",{"2":{"38":1,"40":4}}],["map",{"2":{"14":9,"71":6}}],["manes",{"2":{"8":1}}],["+",{"2":{"9":2,"11":3,"22":1,"46":2,"50":2,"57":3,"60":2,"71":5}}],["tip",{"2":{"85":1}}],["time`",{"2":{"50":2}}],["timeout",{"2":{"30":6}}],["this",{"2":{"71":1}}],["thread",{"2":{"60":1,"66":1}}],["throwable",{"2":{"46":1}}],["throws",{"2":{"46":1,"68":1,"71":8}}],["throw",{"2":{"42":1,"57":1,"71":1}}],["the",{"2":{"57":14}}],["team",{"2":{"53":2,"96":3,"97":3,"98":2}}],["testplugin",{"2":{"50":2}}],["test",{"2":{"9":1,"10":1,"15":2,"30":1,"38":1,"50":2,"54":1}}],["txt",{"2":{"50":2,"51":2}}],["t",{"2":{"33":2,"82":6}}],["tsupstream",{"2":{"30":1}}],["ts",{"2":{"27":1}}],["tdengine",{"2":{"23":2}}],["trylock",{"2":{"45":1,"46":1}}],["try",{"2":{"30":1,"46":1,"57":1,"71":1}}],["transparent",{"2":{"30":1}}],["transactiontemplate",{"2":{"22":1}}],["transactional",{"2":{"22":1}}],["transform",{"2":{"14":2}}],["true",{"2":{"14":2,"42":1,"71":1,"84":5,"86":1}}],["toarray",{"2":{"71":1}}],["tokenignore",{"2":{"77":1,"78":1}}],["token",{"0":{"75":1},"1":{"76":1,"77":1,"78":1,"79":1},"2":{"70":2,"71":2,"73":1,"75":1,"77":1}}],["tohanyupinyinstring",{"2":{"57":1}}],["tone",{"2":{"57":1}}],["todo",{"2":{"45":1}}],["tostring",{"2":{"14":1}}],["tobean",{"2":{"14":1}}],["task",{"2":{"40":1,"50":3,"66":1}}],["target",{"2":{"58":2}}],["targetfield",{"2":{"14":1}}],["targetclass",{"2":{"9":1}}],["table",{"2":{"14":1,"24":1,"84":1,"90":1}}],["tag",{"2":{"13":1,"14":1,"15":1,"16":1,"83":1,"86":1}}],["typescript",{"2":{"91":1}}],["typehandler",{"2":{"22":1}}],["type",{"2":{"8":2,"82":4}}],["druid",{"2":{"79":1}}],["driver",{"2":{"65":2}}],["daoauthenticationprovider",{"2":{"71":2}}],["datasource",{"2":{"65":1}}],["database",{"2":{"8":1}}],["data",{"2":{"8":1,"40":1,"44":2,"86":1}}],["dynamicjarclassloader",{"2":{"60":3}}],["digestutils",{"2":{"71":2}}],["digesthex",{"2":{"42":2}}],["disable",{"2":{"71":2}}],["dict",{"2":{"40":1}}],["duplicatekeyexception",{"2":{"42":2}}],["duration",{"2":{"11":1,"45":1,"46":1,"66":1}}],["docs",{"2":{"79":1,"98":2}}],["docker",{"0":{"31":1},"1":{"32":1,"33":1,"34":1,"35":1},"2":{"31":3,"32":2,"33":3,"34":2,"35":1}}],["download",{"2":{"79":1}}],["dofilter",{"2":{"68":2,"71":2}}],["doris",{"2":{"23":2}}],["dm",{"2":{"23":1}}],["dbfromjsoninit",{"2":{"44":1}}],["db2",{"2":{"23":2}}],["db",{"2":{"22":1,"40":1,"44":2}}],["desktop",{"2":{"86":2}}],["destroy",{"2":{"71":1}}],["description",{"2":{"13":1,"14":1,"15":1,"16":1,"55":1,"56":1,"83":1,"84":2,"86":2}}],["deployment",{"2":{"100":1}}],["department",{"2":{"71":1}}],["departmentids",{"2":{"71":2}}],["dependency>",{"2":{"57":4}}],["dev",{"2":{"67":1}}],["debug",{"2":{"50":3}}],["derby",{"2":{"23":2}}],["defaultvalue",{"2":{"84":2}}],["default",{"2":{"19":3,"57":1}}],["democoolplugin",{"2":{"57":1}}],["democacheservice",{"2":{"9":1,"10":1}}],["democacheserviceimpl",{"2":{"9":1,"10":1}}],["demov2",{"2":{"44":1}}],["demoentity",{"2":{"38":1}}],["demoentity>",{"2":{"13":1,"14":1,"15":1,"16":5,"83":1}}],["demo",{"2":{"18":4,"38":1,"44":4,"55":1}}],["demomapper",{"2":{"16":1}}],["demoserviceimpl",{"2":{"16":1}}],["demoservice",{"2":{"13":1,"14":1,"15":1,"16":2,"83":1}}],["delete",{"2":{"12":1,"13":1,"14":1,"15":1,"16":1,"29":1,"78":1,"83":1}}],["sdk",{"2":{"102":1}}],["swagger",{"0":{"83":1},"2":{"79":2,"83":1}}],["snapshot",{"2":{"58":1}}],["show",{"2":{"94":1}}],["shaded",{"2":{"57":14}}],["shade",{"2":{"57":6}}],["shellpm2",{"2":{"29":1}}],["shell",{"2":{"29":3,"33":1,"34":1,"67":1}}],["s",{"2":{"57":1}}],["sourceforge",{"2":{"57":4}}],["socket",{"2":{"30":3}}],["socket需额外配置",{"2":{"30":1}}],["simplegrantedauthority",{"2":{"71":1}}],["signature=krlj0uv96tbliagpji",{"2":{"50":1}}],["sinodb",{"2":{"23":1}}],["supports",{"2":{"71":1}}],["super",{"2":{"16":2,"20":1,"42":2,"71":3}}],["success",{"2":{"50":1}}],["summary",{"2":{"46":1,"86":2}}],["slf4j",{"2":{"42":1,"44":1,"50":3,"57":4,"71":2}}],["split",{"2":{"71":1}}],["space",{"2":{"40":1}}],["springdoc",{"2":{"66":2}}],["springboot3",{"2":{"107":1}}],["springboot",{"2":{"60":1}}],["springframework",{"2":{"50":5,"57":14}}],["spring",{"2":{"20":3,"22":2,"57":13,"65":1,"69":1,"86":1,"90":1}}],["spring方式",{"2":{"9":1}}],["springcache",{"2":{"8":1}}],["src",{"2":{"38":1,"66":1}}],["sap",{"2":{"23":1}}],["sysuserentity",{"2":{"71":14}}],["sys",{"2":{"50":4}}],["system",{"2":{"9":1,"15":1,"50":5,"57":1}}],["sybase",{"2":{"23":2}}],["schema",{"2":{"22":1}}],["sqlserver",{"2":{"23":2}}],["sqlserver2005",{"2":{"23":2}}],["sqlite",{"2":{"23":3}}],["sql",{"2":{"21":2,"22":2,"23":1}}],["step",{"2":{"84":2}}],["stereotype",{"2":{"50":1}}],["stream",{"2":{"71":1}}],["str",{"2":{"50":1}}],["strutil",{"2":{"50":2}}],["string",{"2":{"9":1,"10":1,"11":5,"15":1,"19":3,"38":1,"45":1,"46":1,"50":7,"57":4,"71":12,"73":2,"84":2}}],["stop",{"2":{"29":1}}],["star",{"0":{"96":1,"97":1,"98":1},"2":{"103":1}}],["start",{"2":{"29":2}}],["stateless",{"2":{"71":1}}],["static",{"2":{"38":1,"79":1,"86":2}}],["status=200",{"2":{"50":1}}],["status",{"2":{"14":2,"30":1}}],["segment",{"2":{"84":1}}],["sessioncreationpolicy",{"2":{"71":2}}],["sessionmanagement",{"2":{"71":1}}],["securityfilterchain",{"2":{"71":2}}],["securitymetadatasource",{"2":{"71":3}}],["security权限拦截器校验当前用户权限",{"2":{"71":1}}],["securityconfig",{"2":{"71":1}}],["security加载所有设置的权限",{"2":{"71":1}}],["security",{"2":{"69":1,"73":1}}],["send",{"2":{"30":2}}],["servletexception",{"2":{"68":1,"71":3}}],["servletresponse",{"2":{"68":3,"71":1}}],["servletrequest",{"2":{"68":4,"71":1}}],["servletrequestattributes",{"2":{"46":1}}],["servertimezone=gmt",{"2":{"65":1}}],["server",{"2":{"30":2,"86":1}}],["service",{"2":{"9":1,"10":1,"16":3,"33":1,"38":2,"40":2,"66":1}}],["selffield",{"2":{"14":1}}],["select",{"2":{"14":2}}],["setuserdetailsservice",{"2":{"71":1}}],["setaccessdecisionmanager",{"2":{"71":1}}],["setmyaccessdecisionmanager",{"2":{"71":1}}],["setmodule",{"2":{"38":1}}],["setpasswordencoder",{"2":{"71":1}}],["setpassword",{"2":{"42":2}}],["setpageoption",{"2":{"14":2}}],["setentity",{"2":{"38":1}}],["setname",{"2":{"38":1}}],["settings",{"2":{"100":1}}],["settonetype",{"2":{"57":1}}],["settype",{"2":{"38":1}}],["setter",{"2":{"14":1}}],["setlistoption",{"2":{"14":1}}],["set",{"2":{"10":1,"28":1,"30":12,"50":2,"71":5}}],["=5",{"2":{"65":1}}],["==",{"2":{"50":1,"71":2}}],["==>",{"2":{"50":2}}],["=",{"2":{"9":2,"11":4,"13":4,"14":12,"15":4,"16":4,"19":2,"20":3,"38":2,"41":1,"42":5,"45":1,"46":4,"50":8,"57":5,"60":2,"62":3,"68":1,"71":15,"73":3,"74":1,"78":2,"83":4,"84":13,"86":9,"89":3}}],["性能要求比较高或有分布式部署需求的建议配置成",{"2":{"8":1}}],["person",{"2":{"73":2}}],["permitall",{"2":{"71":1}}],["perm",{"2":{"71":5}}],["perms",{"2":{"71":4}}],["phase>",{"2":{"57":1}}],["phase>package",{"2":{"57":1}}],["phoenix",{"2":{"23":2}}],["phone",{"2":{"14":2}}],["pinyin",{"2":{"57":3}}],["pinyinhelper",{"2":{"57":2}}],["pinyin4j",{"2":{"57":5}}],["png",{"2":{"55":1}}],["pnpm",{"0":{"28":1},"2":{"27":1,"28":2}}],["plugins",{"2":{"57":1}}],["plugins>",{"2":{"57":2}}],["plugin>",{"2":{"57":2}}],["plugin",{"2":{"40":1,"50":6,"53":2,"54":3,"55":2,"57":8,"58":5,"66":1}}],["plus",{"2":{"21":1,"22":1}}],["p",{"2":{"34":2}}],["pm2将自动检测可用cpu的数量",{"2":{"29":1}}],["pm2",{"0":{"29":1},"2":{"29":11}}],["put",{"2":{"14":1,"42":2,"71":1}}],["public",{"2":{"9":2,"10":2,"11":1,"13":1,"14":2,"15":2,"16":3,"38":1,"42":7,"44":2,"46":3,"50":4,"57":2,"68":1,"71":22,"73":1,"77":1,"78":1,"82":2,"83":1,"84":1,"86":4}}],["pool",{"2":{"66":1}}],["pom",{"2":{"58":1}}],["policy=eyjlehb0wny0xm1qxmjowmto0oc41njvaiiwiy29uzgl0aw9ucyi6w1siy29udgvudc1szw5ndggtcmfuz2uildasnti0mjg4mdbdxx0=",{"2":{"50":1}}],["postgresql",{"2":{"23":3}}],["postmapping",{"2":{"15":1,"16":1,"46":1,"50":2,"86":1}}],["post",{"2":{"13":5}}],["port",{"2":{"8":1,"86":1}}],["preparing",{"2":{"50":1}}],["project",{"2":{"100":2}}],["projectlombok",{"2":{"57":2}}],["properties>",{"2":{"58":2}}],["properties",{"2":{"58":1}}],["proceed",{"2":{"46":1}}],["proceedingjoinpoint",{"2":{"46":1}}],["proxy",{"2":{"30":28}}],["prod",{"2":{"27":1}}],["protected",{"2":{"13":1,"14":2,"15":1,"16":2,"20":1,"83":1}}],["private",{"2":{"14":2,"45":1,"46":1,"50":3,"68":1,"71":11,"84":5,"86":1}}],["println",{"2":{"9":1,"15":1,"50":5,"57":1}}],["package",{"2":{"58":1,"67":1}}],["parentclassloader",{"2":{"50":2}}],["parameter",{"2":{"86":1}}],["parameters",{"2":{"50":1}}],["param",{"2":{"71":1,"82":6}}],["params",{"2":{"50":1,"57":2}}],["parse",{"2":{"21":1}}],["parseobj",{"2":{"11":1}}],["pass",{"2":{"30":2}}],["passwordencoder",{"2":{"71":4}}],["passwordversion",{"2":{"71":1,"73":1}}],["password",{"2":{"8":1,"65":1}}],["paths",{"2":{"20":1}}],["path",{"2":{"20":3}}],["page",{"2":{"12":1,"13":1,"14":1,"15":1,"16":9,"78":2,"83":1}}],["p0",{"2":{"9":1}}],["15",{"0":{"106":1}}],["15t14",{"2":{"66":4}}],["101+08",{"2":{"66":1}}],["17",{"2":{"62":1,"89":1}}],["13",{"2":{"57":1}}],["13t20",{"2":{"50":8}}],["1800",{"2":{"70":1}}],["18",{"2":{"50":8,"57":1}}],["123456",{"2":{"65":1,"67":1,"94":1}}],["12",{"2":{"57":2}}],["12h",{"2":{"30":1}}],["127",{"2":{"8":1,"30":1,"50":1,"65":1,"66":1,"67":1,"83":1,"86":1}}],["1h",{"2":{"30":1}}],["1",{"0":{"27":1,"32":1,"49":1,"53":1,"64":1,"100":1,"104":1,"105":1,"106":2,"107":1},"2":{"8":1,"10":1,"18":1,"30":5,"33":2,"34":2,"50":2,"55":1,"57":11,"58":1,"60":2,"65":1,"66":3,"67":1,"71":3,"83":1,"84":2,"86":1}}],["06",{"0":{"107":1}}],["04",{"0":{"105":1}}],["00",{"2":{"50":8,"66":4}}],["01",{"2":{"50":8}}],["07",{"0":{"106":1},"2":{"50":8,"66":4}}],["08",{"0":{"104":1,"105":1},"2":{"18":1}}],["0",{"0":{"107":1},"2":{"8":3,"30":2,"33":2,"34":2,"50":2,"55":2,"57":4,"58":1,"62":1,"65":3,"66":2,"67":2,"71":1,"83":2,"86":2}}],["hashmap",{"2":{"71":1}}],["hanyupinyintonetype",{"2":{"57":2}}],["hanyupinyinoutputformat",{"2":{"57":3}}],["hangzhou",{"2":{"50":1}}],["handleexception",{"2":{"42":1}}],["handleillegalargumentexception",{"2":{"42":1}}],["handlehttprequestmethodnotsupportedexception",{"2":{"42":1}}],["handlebadcredentialsexception",{"2":{"42":1}}],["handleduplicatekeyexception",{"2":{"42":1}}],["handlerrexception",{"2":{"42":1}}],["handlertype",{"2":{"20":3}}],["hana",{"2":{"23":2}}],["hello",{"2":{"50":4,"57":1}}],["headersconfigurer",{"2":{"71":1}}],["headers",{"2":{"71":1}}],["header",{"2":{"30":13}}],["hutool",{"2":{"50":3,"57":11,"90":1}}],["hook",{"2":{"55":1,"56":1}}],["home",{"2":{"30":1}}],["host=https",{"2":{"50":1}}],["host",{"2":{"8":1,"30":4}}],["hive",{"2":{"23":2}}],["highgo",{"2":{"23":1}}],["hbase",{"2":{"23":1}}],["hsql",{"2":{"23":2}}],["h2",{"2":{"23":2}}],["httprequestmethodnotsupportedexception",{"2":{"42":2}}],["http",{"2":{"30":4,"66":1,"83":1,"86":1}}],["httpsecurity",{"2":{"71":3}}],["httpservletrequest",{"2":{"13":1,"14":2,"15":1,"16":1,"46":1,"68":2,"83":1,"86":1}}],["https",{"2":{"1":2,"14":3,"28":1,"50":1,"53":2,"94":1,"96":3,"97":3,"98":2}}],["html",{"2":{"14":1,"30":1,"83":1}}],["html文档",{"2":{"14":2}}],["能够显著提升应用程序的性能和响应速度",{"2":{"8":1}}],["旨在提供高性能",{"2":{"8":1}}],["由该类统一执行初始化",{"2":{"44":1}}],["由",{"2":{"8":1}}],["cfg",{"2":{"71":3}}],["csrf",{"2":{"71":1}}],["css",{"2":{"68":1,"79":1}}],["csiidb",{"2":{"23":2}}],["cj",{"2":{"65":1}}],["charsequence",{"2":{"71":2}}],["characterencoding=utf",{"2":{"65":1}}],["chain",{"2":{"71":2}}],["chinesechar",{"2":{"57":4}}],["check",{"2":{"41":2,"42":6,"46":1}}],["c",{"2":{"50":6,"66":3}}],["cn",{"2":{"50":4,"57":2}}],["c端用户",{"2":{"40":1}}],["currentthread",{"2":{"60":1}}],["cubrid",{"2":{"23":2}}],["custom",{"2":{"14":1}}],["clean",{"2":{"58":1}}],["cluster",{"2":{"29":1}}],["clickhouse",{"2":{"23":2}}],["classloader",{"2":{"50":4}}],["classpath",{"2":{"44":1,"86":1}}],["class",{"2":{"9":1,"10":2,"13":1,"14":5,"15":1,"16":2,"19":2,"20":3,"38":2,"42":7,"44":1,"46":2,"50":2,"57":1,"65":1,"68":1,"71":8,"78":1,"83":1,"84":1,"86":1}}],["crud",{"0":{"81":1},"2":{"81":1}}],["crudoption",{"2":{"16":1}}],["create",{"2":{"14":2,"33":1,"42":2}}],["createop",{"2":{"14":3}}],["catch",{"2":{"57":1}}],["cachekey",{"2":{"11":2}}],["cacheable",{"2":{"9":1}}],["cachenames",{"2":{"9":1}}],["cacheconfig",{"2":{"9":1}}],["cache",{"2":{"8":3,"30":8,"50":2,"57":1}}],["caffeine",{"2":{"8":3}}],["collection",{"2":{"71":4}}],["column",{"2":{"14":1}}],["columndefine",{"2":{"14":1,"84":4}}],["columns",{"2":{"14":1}}],["core",{"2":{"40":2,"44":1,"50":12,"57":6,"66":2}}],["code",{"2":{"42":1}}],["codetypeenum",{"2":{"38":1}}],["codemodel",{"2":{"38":10}}],["codegenerator",{"2":{"38":7}}],["consumes",{"2":{"86":1}}],["conf",{"2":{"71":4}}],["configuration",{"2":{"71":1}}],["configuration>",{"2":{"57":2}}],["configattribute",{"2":{"71":1}}],["configattributes",{"2":{"71":4}}],["configattribute>",{"2":{"71":3}}],["configattribute>>",{"2":{"71":1}}],["config",{"2":{"27":1,"28":1,"55":2,"56":1,"71":7}}],["context",{"2":{"57":2}}],["controller",{"2":{"12":2,"16":1,"18":2,"20":1,"38":2,"40":2,"50":3,"73":1}}],["connection",{"2":{"30":2}}],["connect",{"2":{"30":2}}],["condition",{"2":{"14":3}}],["couponid",{"2":{"46":3}}],["coupon",{"2":{"14":8}}],["compiler",{"2":{"100":1}}],["compile命令",{"2":{"100":1}}],["component",{"2":{"46":1,"71":3}}],["combine",{"2":{"20":1}}],["commons",{"2":{"57":3}}],["commoncontroller",{"2":{"50":1}}],["comment",{"2":{"14":2,"84":5}}],["comm",{"2":{"9":1}}],["com",{"2":{"1":2,"14":3,"28":1,"38":1,"40":1,"44":1,"50":12,"53":2,"54":2,"57":4,"65":1,"66":3,"94":1,"96":3,"97":3,"98":2}}],["cooleps",{"2":{"66":1,"77":1}}],["coolexception",{"2":{"42":3}}],["coolexceptionhandler",{"2":{"42":1}}],["coollock",{"2":{"45":4,"46":4}}],["coolplugin注解",{"2":{"54":1}}],["coolplugin",{"2":{"50":4,"57":6}}],["coolpluginservice",{"2":{"50":1,"66":1}}],["coolplugininvokers",{"2":{"11":1,"50":4}}],["coolpreconditions",{"2":{"41":1,"42":2,"46":1}}],["coolapplication",{"2":{"40":1,"66":1}}],["cooladminjavaapplicationtests",{"2":{"38":1}}],["coolcodegeneratortest",{"2":{"38":1}}],["coolcache",{"0":{"10":1},"2":{"10":4,"11":1,"50":5,"57":1,"71":7}}],["coolsecurityutil",{"2":{"14":1,"46":2,"73":3,"74":1}}],["coolrestcontroller",{"2":{"13":1,"14":1,"15":1,"16":1,"19":1,"20":2,"78":1,"83":1,"86":1}}],["cool",{"0":{"92":1},"2":{"0":1,"1":2,"5":1,"6":1,"13":1,"14":1,"15":1,"16":1,"21":1,"23":1,"26":1,"29":3,"30":3,"31":1,"33":3,"34":4,"36":1,"38":1,"40":2,"44":3,"50":19,"53":4,"54":2,"57":5,"58":8,"59":1,"61":1,"65":1,"66":7,"83":1,"86":1,"92":2,"94":1,"96":6,"97":6,"98":4,"103":1}}],["框架用到了mybatis",{"2":{"100":1}}],["框架自带两种文件上传方式本地上传与云存储",{"2":{"85":1}}],["框架自带基于",{"2":{"8":1}}],["框架集成了auto",{"2":{"24":1}}],["框架封装了一个请求属性",{"2":{"15":1}}],["框架特有的通用工具类",{"0":{"10":1}}],["框架更新",{"2":{"4":1,"6":1}}],["缓存数据模板",{"2":{"104":1}}],["缓存对象",{"2":{"50":1}}],["缓存结果",{"2":{"50":2}}],["缓存相关配置",{"2":{"30":1}}],["缓存库",{"2":{"8":1}}],["缓存",{"0":{"8":1},"1":{"9":1,"10":1,"11":1},"2":{"8":2,"104":1}}],["的build",{"2":{"100":1}}],["的mvn",{"2":{"100":1}}],["的核心流程",{"2":{"43":1}}],["的能力",{"2":{"43":1}}],["的火热",{"2":{"43":1}}],["的都知道",{"2":{"24":1}}],["的事务管理",{"2":{"22":1}}],["的基本增删改查",{"2":{"22":1}}],["的",{"2":{"20":1,"100":1}}],["的一些最新资讯",{"2":{"6":1}}],["的在线文档仓库",{"2":{"0":1}}],["公众号",{"0":{"6":1}}],["团队哔哩哔哩官方账户",{"2":{"5":1}}],["站视频教程",{"2":{"7":1,"37":1}}],["站",{"0":{"5":1}}],["b8e4",{"2":{"57":1}}],["bbb",{"2":{"55":1}}],["beforeinvocation",{"2":{"71":1}}],["belerweb",{"2":{"57":2}}],["beans",{"2":{"57":3}}],["bean",{"2":{"50":1,"71":4}}],["ben",{"2":{"8":1}}],["badhanyupinyinoutputformatcombination",{"2":{"57":2}}],["badcredentialsexception",{"2":{"42":2}}],["banner",{"2":{"50":2,"51":2}}],["bashpnpm",{"2":{"28":1}}],["bashnpm",{"2":{"28":1}}],["baselogfilter",{"2":{"68":1}}],["basecoolplugin",{"2":{"50":7,"57":4}}],["basecontroller",{"2":{"12":1,"13":1,"14":2,"15":1,"16":1,"83":1}}],["baseservice中集成了常用的",{"2":{"81":1}}],["baseserviceimpl",{"2":{"16":1}}],["basesysuserservice",{"2":{"71":3}}],["basesysuserentity>lambdaquery",{"2":{"42":2,"71":1}}],["basesysuserentity",{"2":{"42":6,"71":3}}],["basesyspermsservice",{"2":{"71":8}}],["basesyslogservice",{"2":{"68":3}}],["basesyslogmapper",{"2":{"50":3}}],["baseentity",{"2":{"14":1,"84":1}}],["base",{"2":{"14":3,"40":1,"50":1,"79":1,"86":1}}],["break",{"2":{"30":1}}],["bind",{"2":{"30":1,"50":4}}],["bypass",{"2":{"30":1}}],["boot",{"2":{"90":1}}],["bootstrap",{"2":{"29":1}}],["boolean",{"2":{"71":2}}],["body",{"2":{"15":1}}],["build>",{"2":{"57":2}}],["build",{"2":{"20":1,"33":2,"71":1,"100":3}}],["b",{"0":{"5":1},"2":{"7":1,"37":1,"50":3}}],["afterinvocation",{"2":{"71":1}}],["abstracthttpconfigurer",{"2":{"71":1}}],["abstractsecurityinterceptor",{"2":{"71":1}}],["abstractopenapiresource",{"2":{"66":1}}],["actuator",{"2":{"79":1}}],["action",{"2":{"50":1}}],["accessdeniedhandler",{"2":{"71":1}}],["aclass",{"2":{"71":1}}],["aop",{"2":{"57":2}}],["aaa",{"2":{"55":1}}],["authprovider",{"2":{"71":4}}],["authenticationconfiguration",{"2":{"71":1}}],["authenticationmanager",{"2":{"71":2}}],["authenticationprovider",{"2":{"71":2}}],["authenticationentrypoint",{"2":{"71":1}}],["authenticated",{"2":{"71":1}}],["authorizehttprequests",{"2":{"71":1}}],["authority",{"2":{"71":3}}],["author",{"2":{"55":1,"56":1}}],["automatically",{"2":{"100":1}}],["automatically自动编译功能",{"2":{"100":1}}],["auto",{"2":{"90":1}}],["autowired",{"2":{"71":1}}],["autoprefixurlmapping",{"2":{"20":1}}],["arraylist",{"2":{"71":3}}],["artifactset>",{"2":{"57":2}}],["artifactid>maven",{"2":{"57":1}}],["artifactid>pinyin4j",{"2":{"57":1}}],["artifactid>",{"2":{"57":3}}],["artifactid>hutool",{"2":{"57":1}}],["around",{"2":{"46":2}}],["args",{"2":{"38":1,"44":1}}],["args$args",{"2":{"30":1}}],["anyrequest",{"2":{"71":1}}],["annotations",{"2":{"20":1}}],["annotation",{"2":{"19":2,"40":1,"46":1,"50":5,"54":1,"57":5}}],["and",{"2":{"14":1}}],["aliyun",{"2":{"50":1}}],["aliyuncs",{"2":{"50":1}}],["aliasfor",{"2":{"19":2}}],["alloc",{"2":{"84":2}}],["all",{"2":{"14":1,"22":1,"57":1,"86":1}}],["assets",{"2":{"55":2,"86":1}}],["aspect",{"2":{"46":1}}],["ase",{"2":{"23":1}}],["astype",{"2":{"14":1}}],["as",{"2":{"14":1}}],["apt",{"2":{"100":1}}],["apache",{"2":{"57":1}}],["app端手机密码登录和手机验证码登录",{"2":{"105":1}}],["appsecret",{"2":{"51":1}}],["appid",{"2":{"51":1}}],["application",{"2":{"65":1,"86":1}}],["applicationcontext",{"2":{"50":1}}],["applicationarguments",{"2":{"44":1}}],["applicationrunner",{"2":{"44":1}}],["appdemoinfocontroller",{"2":{"18":1}}],["app",{"2":{"18":4,"68":1}}],["appmarketcouponusercontroller",{"2":{"14":1}}],["api",{"2":{"7":1,"13":1,"14":1,"15":1,"16":1,"19":1,"27":2,"30":2,"33":1,"37":1,"57":4,"66":1,"78":1,"79":1,"83":1}}],["age",{"2":{"14":1}}],["addfilterbefore",{"2":{"71":1}}],["addr",{"2":{"30":5}}],["add",{"2":{"12":1,"13":1,"14":1,"15":1,"16":1,"30":3,"42":4,"71":2,"78":1,"83":1,"86":1}}],["adminbasecommcontroller",{"2":{"86":1}}],["adminauthurls",{"2":{"79":1}}],["admindictinfocontroller",{"2":{"78":1}}],["admindemouserinfocontroller",{"2":{"18":1}}],["admindemoinfocontroller",{"2":{"13":1,"14":1,"15":1,"16":1,"18":3,"83":1}}],["adminuserid",{"2":{"73":1}}],["admin中才能调试",{"2":{"50":1}}],["admin的缓存",{"2":{"50":1}}],["admin",{"0":{"92":1},"2":{"0":1,"1":2,"18":6,"21":1,"23":1,"26":1,"29":3,"31":1,"33":2,"34":2,"36":1,"38":1,"50":9,"53":2,"57":2,"58":1,"61":1,"66":4,"67":1,"71":6,"79":1,"92":1,"94":2,"96":3,"97":3,"98":2,"103":1}}],["a",{"2":{"10":2,"50":2}}],["ai",{"0":{"7":1,"37":1,"43":1},"2":{"4":1,"43":6,"92":5,"102":1,"106":1}}],["你的项目",{"2":{"100":1}}],["你的star是我们最大的动力",{"2":{"95":1}}],["你的贡献可能给其他人代码巨大的帮助",{"2":{"0":1}}],["你将会看到后端的欢迎页面",{"2":{"66":1}}],["你可以这样做",{"2":{"100":1}}],["你可以自己开发插件",{"2":{"47":1}}],["你可以在这边了解到一些关于我们框架的最新动态",{"2":{"4":1}}],["你需要把生成的eps",{"2":{"33":1}}],["抖音",{"0":{"4":1}}],["扫一扫加入微信开发交流群",{"2":{"3":1}}],["微信",{"0":{"3":1},"2":{"102":1}}],["共创一些美好的事情",{"2":{"2":1}}],["共同参与开源",{"2":{"0":1}}],["交流合作",{"0":{"2":1},"1":{"3":1,"4":1,"5":1,"6":1}}],["地址",{"0":{"1":1}}],["积极提交pull",{"2":{"0":1}}],["版相关功能",{"2":{"107":1}}],["版本一致",{"2":{"94":1}}],["版本号",{"2":{"56":1}}],["版本+宝塔为例",{"2":{"26":1}}],["版本的也可以参考",{"2":{"25":1}}],["版本为例",{"2":{"25":1}}],["版本才有",{"2":{"18":1}}],["版",{"2":{"0":1}}],["介绍",{"0":{"0":1}}]],"serializationVersion":2}';export{e as default}; diff --git a/.vitepress/dist/assets/chunks/VPLocalSearchBox.BwfpN1Rc.js b/.vitepress/dist/assets/chunks/VPLocalSearchBox.D9Qw-TJI.js similarity index 99% rename from .vitepress/dist/assets/chunks/VPLocalSearchBox.BwfpN1Rc.js rename to .vitepress/dist/assets/chunks/VPLocalSearchBox.D9Qw-TJI.js index d142089..ef97677 100644 --- a/.vitepress/dist/assets/chunks/VPLocalSearchBox.BwfpN1Rc.js +++ b/.vitepress/dist/assets/chunks/VPLocalSearchBox.D9Qw-TJI.js @@ -1,4 +1,4 @@ -var Nt=Object.defineProperty;var It=(o,e,t)=>e in o?Nt(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var Oe=(o,e,t)=>It(o,typeof e!="symbol"?e+"":e,t);import{X as Dt,s as oe,v as $e,at as kt,au as Ot,d as Rt,G as xe,av as tt,h as Fe,aw as _t,ax as Mt,x as Lt,ay as zt,y as Re,R as de,Q as Ee,az as Pt,aA as Bt,Y as Vt,U as $t,a1 as Wt,o as ee,b as Kt,j as k,a2 as Jt,k as j,aB as Ut,aC as jt,aD as Gt,c as re,n as rt,e as Se,E as at,F as nt,a as ve,t as pe,aE as Ht,p as Qt,l as qt,aF as it,aG as Yt,ai as Zt,ao as Xt,aH as er,_ as tr}from"./framework.C_oE5szm.js";import{u as rr,c as ar}from"./theme.CZLro9Tm.js";const nr={root:()=>Dt(()=>import("./@localSearchIndexroot.QQhYNk8y.js"),[])};/*! +var Nt=Object.defineProperty;var It=(o,e,t)=>e in o?Nt(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var Oe=(o,e,t)=>It(o,typeof e!="symbol"?e+"":e,t);import{X as Dt,s as oe,v as $e,at as kt,au as Ot,d as Rt,G as xe,av as tt,h as Fe,aw as _t,ax as Mt,x as Lt,ay as zt,y as Re,R as de,Q as Ee,az as Pt,aA as Bt,Y as Vt,U as $t,a1 as Wt,o as ee,b as Kt,j as k,a2 as Jt,k as j,aB as Ut,aC as jt,aD as Gt,c as re,n as rt,e as Se,E as at,F as nt,a as ve,t as pe,aE as Ht,p as Qt,l as qt,aF as it,aG as Yt,ai as Zt,ao as Xt,aH as er,_ as tr}from"./framework.C_oE5szm.js";import{u as rr,c as ar}from"./theme.BvUzqabf.js";const nr={root:()=>Dt(()=>import("./@localSearchIndexroot.C6BEuUzG.js"),[])};/*! * tabbable 6.2.0 * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE */var yt=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],Ce=yt.join(","),mt=typeof Element>"u",ue=mt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Ne=!mt&&Element.prototype.getRootNode?function(o){var e;return o==null||(e=o.getRootNode)===null||e===void 0?void 0:e.call(o)}:function(o){return o==null?void 0:o.ownerDocument},Ie=function o(e,t){var r;t===void 0&&(t=!0);var n=e==null||(r=e.getAttribute)===null||r===void 0?void 0:r.call(e,"inert"),a=n===""||n==="true",i=a||t&&e&&o(e.parentNode);return i},ir=function(e){var t,r=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return r===""||r==="true"},gt=function(e,t,r){if(Ie(e))return[];var n=Array.prototype.slice.apply(e.querySelectorAll(Ce));return t&&ue.call(e,Ce)&&n.unshift(e),n=n.filter(r),n},bt=function o(e,t,r){for(var n=[],a=Array.from(e);a.length;){var i=a.shift();if(!Ie(i,!1))if(i.tagName==="SLOT"){var s=i.assignedElements(),u=s.length?s:i.children,l=o(u,!0,r);r.flatten?n.push.apply(n,l):n.push({scopeParent:i,candidates:l})}else{var h=ue.call(i,Ce);h&&r.filter(i)&&(t||!e.includes(i))&&n.push(i);var d=i.shadowRoot||typeof r.getShadowRoot=="function"&&r.getShadowRoot(i),v=!Ie(d,!1)&&(!r.shadowRootFilter||r.shadowRootFilter(i));if(d&&v){var y=o(d===!0?i.children:d.children,!0,r);r.flatten?n.push.apply(n,y):n.push({scopeParent:i,candidates:y})}else a.unshift.apply(a,i.children)}}return n},wt=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},se=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||ir(e))&&!wt(e)?0:e.tabIndex},or=function(e,t){var r=se(e);return r<0&&t&&!wt(e)?0:r},sr=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},xt=function(e){return e.tagName==="INPUT"},ur=function(e){return xt(e)&&e.type==="hidden"},lr=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(r){return r.tagName==="SUMMARY"});return t},cr=function(e,t){for(var r=0;rsummary:first-of-type"),i=a?e.parentElement:e;if(ue.call(i,"details:not([open]) *"))return!0;if(!r||r==="full"||r==="legacy-full"){if(typeof n=="function"){for(var s=e;e;){var u=e.parentElement,l=Ne(e);if(u&&!u.shadowRoot&&n(u)===!0)return ot(e);e.assignedSlot?e=e.assignedSlot:!u&&l!==e.ownerDocument?e=l.host:e=u}e=s}if(vr(e))return!e.getClientRects().length;if(r!=="legacy-full")return!0}else if(r==="non-zero-area")return ot(e);return!1},yr=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var r=0;r=0)},gr=function o(e){var t=[],r=[];return e.forEach(function(n,a){var i=!!n.scopeParent,s=i?n.scopeParent:n,u=or(s,i),l=i?o(n.candidates):s;u===0?i?t.push.apply(t,l):t.push(s):r.push({documentOrder:a,tabIndex:u,item:n,isScope:i,content:l})}),r.sort(sr).reduce(function(n,a){return a.isScope?n.push.apply(n,a.content):n.push(a.content),n},[]).concat(t)},br=function(e,t){t=t||{};var r;return t.getShadowRoot?r=bt([e],t.includeContainer,{filter:We.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:mr}):r=gt(e,t.includeContainer,We.bind(null,t)),gr(r)},wr=function(e,t){t=t||{};var r;return t.getShadowRoot?r=bt([e],t.includeContainer,{filter:De.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):r=gt(e,t.includeContainer,De.bind(null,t)),r},le=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ue.call(e,Ce)===!1?!1:We(t,e)},xr=yt.concat("iframe").join(","),_e=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ue.call(e,xr)===!1?!1:De(t,e)};/*! diff --git a/.vitepress/dist/assets/chunks/theme.CZLro9Tm.js b/.vitepress/dist/assets/chunks/theme.BvUzqabf.js similarity index 99% rename from .vitepress/dist/assets/chunks/theme.CZLro9Tm.js rename to .vitepress/dist/assets/chunks/theme.BvUzqabf.js index c3e58f5..59fa017 100644 --- a/.vitepress/dist/assets/chunks/theme.CZLro9Tm.js +++ b/.vitepress/dist/assets/chunks/theme.BvUzqabf.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.BwfpN1Rc.js","assets/chunks/framework.C_oE5szm.js"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.D9Qw-TJI.js","assets/chunks/framework.C_oE5szm.js"])))=>i.map(i=>d[i]); import{d as _,o as s,c,r as l,n as M,a as te,t as z,b as k,w as p,e as h,T as Ae,_ as y,u as Vt,i as wt,f as Tt,g as Be,h as L,j as m,k as i,p as G,l as q,m as le,q as Ee,s as H,v as ee,x as $e,y as oe,z as Oe,A as Fe,B as It,C as Nt,D as ce,F as B,E as R,G as Ze,H as ye,I as b,J as Qe,K as Q,L as pe,M as re,N as Le,O as Et,P as xe,Q as Ce,R as et,S as tt,U as Pe,V as Ct,W as zt,X as Ht,Y as ot,Z as nt,$ as Mt,a0 as At,a1 as Bt,a2 as Ot,a3 as Ft,a4 as Dt}from"./framework.C_oE5szm.js";/*! medium-zoom 1.1.0 | MIT License | https://github.com/francoischalifour/medium-zoom */var ie=Object.assign||function(o){for(var e=1;e1&&arguments[1]!==void 0?arguments[1]:{},n=window.Promise||function(P){function w(){}P(w,w)},a=function(P){var w=P.target;if(w===fe){N();return}D.indexOf(w)!==-1&&F({target:w})},r=function(){if(!(Z||!f.original)){var P=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;Math.abs(We-P)>A.scrollOffset&&setTimeout(N,150)}},u=function(P){var w=P.key||P.keyCode;(w==="Escape"||w==="Esc"||w===27)&&N()},d=function(){var P=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},w=P;if(P.background&&(fe.style.background=P.background),P.container&&P.container instanceof Object&&(w.container=ie({},A.container,P.container)),P.template){var O=ge(P.template)?P.template:document.querySelector(P.template);w.template=O}return A=ie({},A,w),D.forEach(function(j){j.dispatchEvent(de("medium-zoom:update",{detail:{zoom:U}}))}),U},v=function(){var P=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return o(ie({},A,P))},g=function(){for(var P=arguments.length,w=Array(P),O=0;O0?w.reduce(function(T,K){return[].concat(T,Ye(K))},[]):D;return j.forEach(function(T){T.classList.remove("medium-zoom-image"),T.dispatchEvent(de("medium-zoom:detach",{detail:{zoom:U}}))}),D=D.filter(function(T){return j.indexOf(T)===-1}),U},$=function(P,w){var O=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return D.forEach(function(j){j.addEventListener("medium-zoom:"+P,w,O)}),ae.push({type:"medium-zoom:"+P,listener:w,options:O}),U},S=function(P,w){var O=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return D.forEach(function(j){j.removeEventListener("medium-zoom:"+P,w,O)}),ae=ae.filter(function(j){return!(j.type==="medium-zoom:"+P&&j.listener.toString()===w.toString())}),U},E=function(){var P=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},w=P.target,O=function(){var T={width:document.documentElement.clientWidth,height:document.documentElement.clientHeight,left:0,top:0,right:0,bottom:0},K=void 0,J=void 0;if(A.container)if(A.container instanceof Object)T=ie({},T,A.container),K=T.width-T.left-T.right-A.margin*2,J=T.height-T.top-T.bottom-A.margin*2;else{var ue=ge(A.container)?A.container:document.querySelector(A.container),se=ue.getBoundingClientRect(),Ve=se.width,ft=se.height,ht=se.left,_t=se.top;T=ie({},T,{width:Ve,height:ft,left:ht,top:_t})}K=K||T.width-A.margin*2,J=J||T.height-A.margin*2;var ve=f.zoomedHd||f.original,gt=Je(ve)?K:ve.naturalWidth||K,bt=Je(ve)?J:ve.naturalHeight||J,he=ve.getBoundingClientRect(),kt=he.top,$t=he.left,we=he.width,Te=he.height,yt=Math.min(Math.max(we,gt),K)/we,Lt=Math.min(Math.max(Te,bt),J)/Te,Ie=Math.min(yt,Lt),Pt=(-$t+(K-we)/2+A.margin+T.left)/Ie,St=(-kt+(J-Te)/2+A.margin+T.top)/Ie,Ke="scale("+Ie+") translate3d("+Pt+"px, "+St+"px, 0)";f.zoomed.style.transform=Ke,f.zoomedHd&&(f.zoomedHd.style.transform=Ke)};return new n(function(j){if(w&&D.indexOf(w)===-1){j(U);return}var T=function Ve(){Z=!1,f.zoomed.removeEventListener("transitionend",Ve),f.original.dispatchEvent(de("medium-zoom:opened",{detail:{zoom:U}})),j(U)};if(f.zoomed){j(U);return}if(w)f.original=w;else if(D.length>0){var K=D;f.original=K[0]}else{j(U);return}if(f.original.dispatchEvent(de("medium-zoom:open",{detail:{zoom:U}})),We=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,Z=!0,f.zoomed=Gt(f.original),document.body.appendChild(fe),A.template){var J=ge(A.template)?A.template:document.querySelector(A.template);f.template=document.createElement("div"),f.template.appendChild(J.content.cloneNode(!0)),document.body.appendChild(f.template)}if(f.original.parentElement&&f.original.parentElement.tagName==="PICTURE"&&f.original.currentSrc&&(f.zoomed.src=f.original.currentSrc),document.body.appendChild(f.zoomed),window.requestAnimationFrame(function(){document.body.classList.add("medium-zoom--opened")}),f.original.classList.add("medium-zoom-image--hidden"),f.zoomed.classList.add("medium-zoom-image--opened"),f.zoomed.addEventListener("click",N),f.zoomed.addEventListener("transitionend",T),f.original.getAttribute("data-zoom-src")){f.zoomedHd=f.zoomed.cloneNode(),f.zoomedHd.removeAttribute("srcset"),f.zoomedHd.removeAttribute("sizes"),f.zoomedHd.removeAttribute("loading"),f.zoomedHd.src=f.zoomed.getAttribute("data-zoom-src"),f.zoomedHd.onerror=function(){clearInterval(ue),console.warn("Unable to reach the zoom image target "+f.zoomedHd.src),f.zoomedHd=null,O()};var ue=setInterval(function(){f.zoomedHd.complete&&(clearInterval(ue),f.zoomedHd.classList.add("medium-zoom-image--opened"),f.zoomedHd.addEventListener("click",N),document.body.appendChild(f.zoomedHd),O())},10)}else if(f.original.hasAttribute("srcset")){f.zoomedHd=f.zoomed.cloneNode(),f.zoomedHd.removeAttribute("sizes"),f.zoomedHd.removeAttribute("loading");var se=f.zoomedHd.addEventListener("load",function(){f.zoomedHd.removeEventListener("load",se),f.zoomedHd.classList.add("medium-zoom-image--opened"),f.zoomedHd.addEventListener("click",N),document.body.appendChild(f.zoomedHd),O()})}else O()})},N=function(){return new n(function(P){if(Z||!f.original){P(U);return}var w=function O(){f.original.classList.remove("medium-zoom-image--hidden"),document.body.removeChild(f.zoomed),f.zoomedHd&&document.body.removeChild(f.zoomedHd),document.body.removeChild(fe),f.zoomed.classList.remove("medium-zoom-image--opened"),f.template&&document.body.removeChild(f.template),Z=!1,f.zoomed.removeEventListener("transitionend",O),f.original.dispatchEvent(de("medium-zoom:closed",{detail:{zoom:U}})),f.original=null,f.zoomed=null,f.zoomedHd=null,f.template=null,P(U)};Z=!0,document.body.classList.remove("medium-zoom--opened"),f.zoomed.style.transform="",f.zoomedHd&&(f.zoomedHd.style.transform=""),f.template&&(f.template.style.transition="opacity 150ms",f.template.style.opacity=0),f.original.dispatchEvent(de("medium-zoom:close",{detail:{zoom:U}})),f.zoomed.addEventListener("transitionend",w)})},F=function(){var P=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},w=P.target;return f.original?N():E({target:w})},C=function(){return A},Y=function(){return D},X=function(){return f.original},D=[],ae=[],Z=!1,We=0,A=t,f={original:null,zoomed:null,zoomedHd:null,template:null};Object.prototype.toString.call(e)==="[object Object]"?A=e:(e||typeof e=="string")&&g(e),A=ie({margin:0,background:"#fff",scrollOffset:40,container:null,template:null},A);var fe=Ut(A.background);document.addEventListener("click",a),document.addEventListener("keyup",u),document.addEventListener("scroll",r),window.addEventListener("resize",N);var U={open:E,close:N,toggle:F,update:d,clone:v,attach:g,detach:I,on:$,off:S,getOptions:C,getImages:Y,getZoomedImage:X};return U};function Rt(o,e){e===void 0&&(e={});var t=e.insertAt;if(!(typeof document>"u")){var n=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css",t==="top"&&n.firstChild?n.insertBefore(a,n.firstChild):n.appendChild(a),a.styleSheet?a.styleSheet.cssText=o:a.appendChild(document.createTextNode(o))}}var Wt=".medium-zoom-overlay{position:fixed;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .3s;will-change:opacity}.medium-zoom--opened .medium-zoom-overlay{cursor:pointer;cursor:zoom-out;opacity:1}.medium-zoom-image{cursor:pointer;cursor:zoom-in;transition:transform .3s cubic-bezier(.2,0,.2,1)!important}.medium-zoom-image--hidden{visibility:hidden}.medium-zoom-image--opened{position:relative;cursor:pointer;cursor:zoom-out;will-change:transform}";Rt(Wt);const Kt=_({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(o){return(e,t)=>(s(),c("span",{class:M(["VPBadge",e.type])},[l(e.$slots,"default",{},()=>[te(z(e.text),1)])],2))}}),Jt={key:0,class:"VPBackdrop"},Yt=_({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(o){return(e,t)=>(s(),k(Ae,{name:"fade"},{default:p(()=>[e.show?(s(),c("div",Jt)):h("",!0)]),_:1}))}}),Xt=y(Yt,[["__scopeId","data-v-54a304ca"]]),V=Vt;function Zt(o,e){let t,n=!1;return()=>{t&&clearTimeout(t),n?t=setTimeout(o,e):(o(),(n=!0)&&setTimeout(()=>n=!1,e))}}function ze(o){return/^\//.test(o)?o:`/${o}`}function De(o){const{pathname:e,search:t,hash:n,protocol:a}=new URL(o,"http://a.com");if(wt(o)||o.startsWith("#")||!a.startsWith("http")||!Tt(e))return o;const{site:r}=V(),u=e.endsWith("/")||e.endsWith(".html")?o:o.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${t}${n}`);return Be(u)}function me({correspondingLink:o=!1}={}){const{site:e,localeIndex:t,page:n,theme:a,hash:r}=V(),u=L(()=>{var v,g;return{label:(v=e.value.locales[t.value])==null?void 0:v.label,link:((g=e.value.locales[t.value])==null?void 0:g.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:L(()=>Object.entries(e.value.locales).flatMap(([v,g])=>u.value.label===g.label?[]:{text:g.label,link:Qt(g.link||(v==="root"?"/":`/${v}/`),a.value.i18nRouting!==!1&&o,n.value.relativePath.slice(u.value.link.length-1),!e.value.cleanUrls)+r.value})),currentLang:u}}function Qt(o,e,t,n){return e?o.replace(/\/$/,"")+ze(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,n?".html":"")):o}const xt=o=>(G("data-v-6ff51ddd"),o=o(),q(),o),eo={class:"NotFound"},to={class:"code"},oo={class:"title"},no=xt(()=>m("div",{class:"divider"},null,-1)),ao={class:"quote"},so={class:"action"},ro=["href","aria-label"],io=_({__name:"NotFound",setup(o){const{theme:e}=V(),{currentLang:t}=me();return(n,a)=>{var r,u,d,v,g;return s(),c("div",eo,[m("p",to,z(((r=i(e).notFound)==null?void 0:r.code)??"404"),1),m("h1",oo,z(((u=i(e).notFound)==null?void 0:u.title)??"PAGE NOT FOUND"),1),no,m("blockquote",ao,z(((d=i(e).notFound)==null?void 0:d.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),m("div",so,[m("a",{class:"link",href:i(Be)(i(t).link),"aria-label":((v=i(e).notFound)==null?void 0:v.linkLabel)??"go to home"},z(((g=i(e).notFound)==null?void 0:g.linkText)??"Take me home"),9,ro)])])}}}),lo=y(io,[["__scopeId","data-v-6ff51ddd"]]);function at(o,e){if(Array.isArray(o))return be(o);if(o==null)return[];e=ze(e);const t=Object.keys(o).sort((a,r)=>r.split("/").length-a.split("/").length).find(a=>e.startsWith(ze(a))),n=t?o[t]:[];return Array.isArray(n)?be(n):be(n.items,n.base)}function co(o){const e=[];let t=0;for(const n in o){const a=o[n];if(a.items){t=e.push(a);continue}e[t]||e.push({items:[]}),e[t].items.push(a)}return e}function uo(o){const e=[];function t(n){for(const a of n)a.text&&a.link&&e.push({text:a.text,link:a.link,docFooterText:a.docFooterText}),a.items&&t(a.items)}return t(o),e}function He(o,e){return Array.isArray(e)?e.some(t=>He(o,t)):le(o,e.link)?!0:e.items?He(o,e.items):!1}function be(o,e){return[...o].map(t=>{const n={...t},a=n.base||e;return a&&n.link&&(n.link=a+n.link),n.items&&(n.items=be(n.items,a)),n})}function ne(){const{frontmatter:o,page:e,theme:t}=V(),n=Ee("(min-width: 960px)"),a=H(!1),r=L(()=>{const F=t.value.sidebar,C=e.value.relativePath;return F?at(F,C):[]}),u=H(r.value);ee(r,(F,C)=>{JSON.stringify(F)!==JSON.stringify(C)&&(u.value=r.value)});const d=L(()=>o.value.sidebar!==!1&&u.value.length>0&&o.value.layout!=="home"),v=L(()=>g?o.value.aside==null?t.value.aside==="left":o.value.aside==="left":!1),g=L(()=>o.value.layout==="home"?!1:o.value.aside!=null?!!o.value.aside:t.value.aside!==!1),I=L(()=>d.value&&n.value),$=L(()=>d.value?co(u.value):[]);function S(){a.value=!0}function E(){a.value=!1}function N(){a.value?E():S()}return{isOpen:a,sidebar:u,sidebarGroups:$,hasSidebar:d,hasAside:g,leftAside:v,isSidebarEnabled:I,open:S,close:E,toggle:N}}function vo(o,e){let t;$e(()=>{t=o.value?document.activeElement:void 0}),oe(()=>{window.addEventListener("keyup",n)}),Oe(()=>{window.removeEventListener("keyup",n)});function n(a){a.key==="Escape"&&o.value&&(e(),t==null||t.focus())}}function po(o){const{page:e,hash:t}=V(),n=H(!1),a=L(()=>o.value.collapsed!=null),r=L(()=>!!o.value.link),u=H(!1),d=()=>{u.value=le(e.value.relativePath,o.value.link)};ee([e,o,t],d),oe(d);const v=L(()=>u.value?!0:o.value.items?He(e.value.relativePath,o.value.items):!1),g=L(()=>!!(o.value.items&&o.value.items.length));$e(()=>{n.value=!!(a.value&&o.value.collapsed)}),Fe(()=>{(u.value||v.value)&&(n.value=!1)});function I(){a.value&&(n.value=!n.value)}return{collapsed:n,collapsible:a,isLink:r,isActiveLink:u,hasActiveLink:v,hasChildren:g,toggle:I}}function mo(){const{hasSidebar:o}=ne(),e=Ee("(min-width: 960px)"),t=Ee("(min-width: 1280px)");return{isAsideEnabled:L(()=>!t.value&&!e.value?!1:o.value?t.value:e.value)}}const Me=[];function st(o){return typeof o.outline=="object"&&!Array.isArray(o.outline)&&o.outline.label||o.outlineTitle||"On this page"}function je(o){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const n=Number(t.tagName[1]);return{element:t,title:fo(t),link:"#"+t.id,level:n}});return ho(e,o)}function fo(o){let e="";for(const t of o.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function ho(o,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[n,a]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;o=o.filter(u=>u.level>=n&&u.level<=a),Me.length=0;for(const{element:u,link:d}of o)Me.push({element:u,link:d});const r=[];e:for(let u=0;u=0;v--){const g=o[v];if(g.level{requestAnimationFrame(r),window.addEventListener("scroll",n)}),It(()=>{u(location.hash)}),Oe(()=>{window.removeEventListener("scroll",n)});function r(){if(!t.value)return;const d=window.scrollY,v=window.innerHeight,g=document.body.offsetHeight,I=Math.abs(d+v-g)<1,$=Me.map(({element:E,link:N})=>({link:N,top:go(E)})).filter(({top:E})=>!Number.isNaN(E)).sort((E,N)=>E.top-N.top);if(!$.length){u(null);return}if(d<1){u(null);return}if(I){u($[$.length-1].link);return}let S=null;for(const{link:E,top:N}of $){if(N>d+Nt()+4)break;S=E}u(S)}function u(d){a&&a.classList.remove("active"),d==null?a=null:a=o.value.querySelector(`a[href="${decodeURIComponent(d)}"]`);const v=a;v?(v.classList.add("active"),e.value.style.top=v.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function go(o){let e=0;for(;o!==document.body;){if(o===null)return NaN;e+=o.offsetTop,o=o.offsetParent}return e}const bo=["href","title"],ko=_({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(o){function e({target:t}){const n=t.href.split("#")[1],a=document.getElementById(decodeURIComponent(n));a==null||a.focus({preventScroll:!0})}return(t,n)=>{const a=ce("VPDocOutlineItem",!0);return s(),c("ul",{class:M(["VPDocOutlineItem",t.root?"root":"nested"])},[(s(!0),c(B,null,R(t.headers,({children:r,link:u,title:d})=>(s(),c("li",null,[m("a",{class:"outline-link",href:u,onClick:e,title:d},z(d),9,bo),r!=null&&r.length?(s(),k(a,{key:0,headers:r},null,8,["headers"])):h("",!0)]))),256))],2)}}}),rt=y(ko,[["__scopeId","data-v-53c99d69"]]),$o={class:"content"},yo={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Lo=_({__name:"VPDocAsideOutline",setup(o){const{frontmatter:e,theme:t}=V(),n=Ze([]);ye(()=>{n.value=je(e.value.outline??t.value.outline)});const a=H(),r=H();return _o(a,r),(u,d)=>(s(),c("nav",{"aria-labelledby":"doc-outline-aria-label",class:M(["VPDocAsideOutline",{"has-outline":n.value.length>0}]),ref_key:"container",ref:a},[m("div",$o,[m("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),m("div",yo,z(i(st)(i(t))),1),b(rt,{headers:n.value,root:!0},null,8,["headers"])])],2))}}),Po=y(Lo,[["__scopeId","data-v-f610f197"]]),So={class:"VPDocAsideCarbonAds"},Vo=_({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(o){const e=()=>null;return(t,n)=>(s(),c("div",So,[b(i(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),wo=o=>(G("data-v-cb998dce"),o=o(),q(),o),To={class:"VPDocAside"},Io=wo(()=>m("div",{class:"spacer"},null,-1)),No=_({__name:"VPDocAside",setup(o){const{theme:e}=V();return(t,n)=>(s(),c("div",To,[l(t.$slots,"aside-top",{},void 0,!0),l(t.$slots,"aside-outline-before",{},void 0,!0),b(Po),l(t.$slots,"aside-outline-after",{},void 0,!0),Io,l(t.$slots,"aside-ads-before",{},void 0,!0),i(e).carbonAds?(s(),k(Vo,{key:0,"carbon-ads":i(e).carbonAds},null,8,["carbon-ads"])):h("",!0),l(t.$slots,"aside-ads-after",{},void 0,!0),l(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Eo=y(No,[["__scopeId","data-v-cb998dce"]]);function Co(){const{theme:o,page:e}=V();return L(()=>{const{text:t="Edit this page",pattern:n=""}=o.value.editLink||{};let a;return typeof n=="function"?a=n(e.value):a=n.replace(/:path/g,e.value.filePath),{url:a,text:t}})}function zo(){const{page:o,theme:e,frontmatter:t}=V();return L(()=>{var g,I,$,S,E,N,F,C;const n=at(e.value.sidebar,o.value.relativePath),a=uo(n),r=Ho(a,Y=>Y.link.replace(/[?#].*$/,"")),u=r.findIndex(Y=>le(o.value.relativePath,Y.link)),d=((g=e.value.docFooter)==null?void 0:g.prev)===!1&&!t.value.prev||t.value.prev===!1,v=((I=e.value.docFooter)==null?void 0:I.next)===!1&&!t.value.next||t.value.next===!1;return{prev:d?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??(($=r[u-1])==null?void 0:$.docFooterText)??((S=r[u-1])==null?void 0:S.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((E=r[u-1])==null?void 0:E.link)},next:v?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((N=r[u+1])==null?void 0:N.docFooterText)??((F=r[u+1])==null?void 0:F.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((C=r[u+1])==null?void 0:C.link)}}})}function Ho(o,e){const t=new Set;return o.filter(n=>{const a=e(n);return t.has(a)?!1:t.add(a)})}const x=_({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(o){const e=o,t=L(()=>e.tag??(e.href?"a":"span")),n=L(()=>e.href&&Qe.test(e.href)||e.target==="_blank");return(a,r)=>(s(),k(Q(t.value),{class:M(["VPLink",{link:a.href,"vp-external-link-icon":n.value,"no-icon":a.noIcon}]),href:a.href?i(De)(a.href):void 0,target:a.target??(n.value?"_blank":void 0),rel:a.rel??(n.value?"noreferrer":void 0)},{default:p(()=>[l(a.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Mo={class:"VPLastUpdated"},Ao=["datetime"],Bo=_({__name:"VPDocFooterLastUpdated",setup(o){const{theme:e,page:t,lang:n}=V(),a=L(()=>new Date(t.value.lastUpdated)),r=L(()=>a.value.toISOString()),u=H("");return oe(()=>{$e(()=>{var d,v,g;u.value=new Intl.DateTimeFormat((v=(d=e.value.lastUpdated)==null?void 0:d.formatOptions)!=null&&v.forceLocale?n.value:void 0,((g=e.value.lastUpdated)==null?void 0:g.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(a.value)})}),(d,v)=>{var g;return s(),c("p",Mo,[te(z(((g=i(e).lastUpdated)==null?void 0:g.text)||i(e).lastUpdatedText||"Last updated")+": ",1),m("time",{datetime:r.value},z(u.value),9,Ao)])}}}),Oo=y(Bo,[["__scopeId","data-v-1bb0c8a8"]]),it=o=>(G("data-v-1bcd8184"),o=o(),q(),o),Fo={key:0,class:"VPDocFooter"},Do={key:0,class:"edit-info"},jo={key:0,class:"edit-link"},Uo=it(()=>m("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),Go={key:1,class:"last-updated"},qo={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},Ro=it(()=>m("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),Wo={class:"pager"},Ko=["innerHTML"],Jo=["innerHTML"],Yo={class:"pager"},Xo=["innerHTML"],Zo=["innerHTML"],Qo=_({__name:"VPDocFooter",setup(o){const{theme:e,page:t,frontmatter:n}=V(),a=Co(),r=zo(),u=L(()=>e.value.editLink&&n.value.editLink!==!1),d=L(()=>t.value.lastUpdated),v=L(()=>u.value||d.value||r.value.prev||r.value.next);return(g,I)=>{var $,S,E,N;return v.value?(s(),c("footer",Fo,[l(g.$slots,"doc-footer-before",{},void 0,!0),u.value||d.value?(s(),c("div",Do,[u.value?(s(),c("div",jo,[b(x,{class:"edit-link-button",href:i(a).url,"no-icon":!0},{default:p(()=>[Uo,te(" "+z(i(a).text),1)]),_:1},8,["href"])])):h("",!0),d.value?(s(),c("div",Go,[b(Oo)])):h("",!0)])):h("",!0),($=i(r).prev)!=null&&$.link||(S=i(r).next)!=null&&S.link?(s(),c("nav",qo,[Ro,m("div",Wo,[(E=i(r).prev)!=null&&E.link?(s(),k(x,{key:0,class:"pager-link prev",href:i(r).prev.link},{default:p(()=>{var F;return[m("span",{class:"desc",innerHTML:((F=i(e).docFooter)==null?void 0:F.prev)||"Previous page"},null,8,Ko),m("span",{class:"title",innerHTML:i(r).prev.text},null,8,Jo)]}),_:1},8,["href"])):h("",!0)]),m("div",Yo,[(N=i(r).next)!=null&&N.link?(s(),k(x,{key:0,class:"pager-link next",href:i(r).next.link},{default:p(()=>{var F;return[m("span",{class:"desc",innerHTML:((F=i(e).docFooter)==null?void 0:F.next)||"Next page"},null,8,Xo),m("span",{class:"title",innerHTML:i(r).next.text},null,8,Zo)]}),_:1},8,["href"])):h("",!0)])])):h("",!0)])):h("",!0)}}}),xo=y(Qo,[["__scopeId","data-v-1bcd8184"]]),en=o=>(G("data-v-e6f2a212"),o=o(),q(),o),tn={class:"container"},on=en(()=>m("div",{class:"aside-curtain"},null,-1)),nn={class:"aside-container"},an={class:"aside-content"},sn={class:"content"},rn={class:"content-container"},ln={class:"main"},cn=_({__name:"VPDoc",setup(o){const{theme:e}=V(),t=pe(),{hasSidebar:n,hasAside:a,leftAside:r}=ne(),u=L(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(d,v)=>{const g=ce("Content");return s(),c("div",{class:M(["VPDoc",{"has-sidebar":i(n),"has-aside":i(a)}])},[l(d.$slots,"doc-top",{},void 0,!0),m("div",tn,[i(a)?(s(),c("div",{key:0,class:M(["aside",{"left-aside":i(r)}])},[on,m("div",nn,[m("div",an,[b(Eo,null,{"aside-top":p(()=>[l(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":p(()=>[l(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":p(()=>[l(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[l(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[l(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[l(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):h("",!0),m("div",sn,[m("div",rn,[l(d.$slots,"doc-before",{},void 0,!0),m("main",ln,[b(g,{class:M(["vp-doc",[u.value,i(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),b(xo,null,{"doc-footer-before":p(()=>[l(d.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),l(d.$slots,"doc-after",{},void 0,!0)])])]),l(d.$slots,"doc-bottom",{},void 0,!0)],2)}}}),un=y(cn,[["__scopeId","data-v-e6f2a212"]]),dn=_({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(o){const e=o,t=L(()=>e.href&&Qe.test(e.href)),n=L(()=>e.tag||e.href?"a":"button");return(a,r)=>(s(),k(Q(n.value),{class:M(["VPButton",[a.size,a.theme]]),href:a.href?i(De)(a.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:p(()=>[te(z(a.text),1)]),_:1},8,["class","href","target","rel"]))}}),vn=y(dn,[["__scopeId","data-v-c9cf0e3c"]]),pn=["src","alt"],mn=_({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(o){return(e,t)=>{const n=ce("VPImage",!0);return e.image?(s(),c(B,{key:0},[typeof e.image=="string"||"src"in e.image?(s(),c("img",re({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:i(Be)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,pn)):(s(),c(B,{key:1},[b(n,re({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),b(n,re({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):h("",!0)}}}),ke=y(mn,[["__scopeId","data-v-ab19afbb"]]),fn=o=>(G("data-v-b10c5094"),o=o(),q(),o),hn={class:"container"},_n={class:"main"},gn={key:0,class:"name"},bn=["innerHTML"],kn=["innerHTML"],$n=["innerHTML"],yn={key:0,class:"actions"},Ln={key:0,class:"image"},Pn={class:"image-container"},Sn=fn(()=>m("div",{class:"image-bg"},null,-1)),Vn=_({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(o){const e=Le("hero-image-slot-exists");return(t,n)=>(s(),c("div",{class:M(["VPHero",{"has-image":t.image||i(e)}])},[m("div",hn,[m("div",_n,[l(t.$slots,"home-hero-info-before",{},void 0,!0),l(t.$slots,"home-hero-info",{},()=>[t.name?(s(),c("h1",gn,[m("span",{innerHTML:t.name,class:"clip"},null,8,bn)])):h("",!0),t.text?(s(),c("p",{key:1,innerHTML:t.text,class:"text"},null,8,kn)):h("",!0),t.tagline?(s(),c("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,$n)):h("",!0)],!0),l(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(s(),c("div",yn,[(s(!0),c(B,null,R(t.actions,a=>(s(),c("div",{key:a.link,class:"action"},[b(vn,{tag:"a",size:"medium",theme:a.theme,text:a.text,href:a.link,target:a.target,rel:a.rel},null,8,["theme","text","href","target","rel"])]))),128))])):h("",!0),l(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||i(e)?(s(),c("div",Ln,[m("div",Pn,[Sn,l(t.$slots,"home-hero-image",{},()=>[t.image?(s(),k(ke,{key:0,class:"image-src",image:t.image},null,8,["image"])):h("",!0)],!0)])])):h("",!0)])],2))}}),wn=y(Vn,[["__scopeId","data-v-b10c5094"]]),Tn=_({__name:"VPHomeHero",setup(o){const{frontmatter:e}=V();return(t,n)=>i(e).hero?(s(),k(wn,{key:0,class:"VPHomeHero",name:i(e).hero.name,text:i(e).hero.text,tagline:i(e).hero.tagline,image:i(e).hero.image,actions:i(e).hero.actions},{"home-hero-info-before":p(()=>[l(t.$slots,"home-hero-info-before")]),"home-hero-info":p(()=>[l(t.$slots,"home-hero-info")]),"home-hero-info-after":p(()=>[l(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":p(()=>[l(t.$slots,"home-hero-actions-after")]),"home-hero-image":p(()=>[l(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):h("",!0)}}),In=o=>(G("data-v-bd37d1a2"),o=o(),q(),o),Nn={class:"box"},En={key:0,class:"icon"},Cn=["innerHTML"],zn=["innerHTML"],Hn=["innerHTML"],Mn={key:4,class:"link-text"},An={class:"link-text-value"},Bn=In(()=>m("span",{class:"vpi-arrow-right link-text-icon"},null,-1)),On=_({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(o){return(e,t)=>(s(),k(x,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:p(()=>[m("article",Nn,[typeof e.icon=="object"&&e.icon.wrap?(s(),c("div",En,[b(ke,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(s(),k(ke,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(s(),c("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Cn)):h("",!0),m("h2",{class:"title",innerHTML:e.title},null,8,zn),e.details?(s(),c("p",{key:3,class:"details",innerHTML:e.details},null,8,Hn)):h("",!0),e.linkText?(s(),c("div",Mn,[m("p",An,[te(z(e.linkText)+" ",1),Bn])])):h("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Fn=y(On,[["__scopeId","data-v-bd37d1a2"]]),Dn={key:0,class:"VPFeatures"},jn={class:"container"},Un={class:"items"},Gn=_({__name:"VPFeatures",props:{features:{}},setup(o){const e=o,t=L(()=>{const n=e.features.length;if(n){if(n===2)return"grid-2";if(n===3)return"grid-3";if(n%3===0)return"grid-6";if(n>3)return"grid-4"}else return});return(n,a)=>n.features?(s(),c("div",Dn,[m("div",jn,[m("div",Un,[(s(!0),c(B,null,R(n.features,r=>(s(),c("div",{key:r.title,class:M(["item",[t.value]])},[b(Fn,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText,rel:r.rel,target:r.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):h("",!0)}}),qn=y(Gn,[["__scopeId","data-v-b1eea84a"]]),Rn=_({__name:"VPHomeFeatures",setup(o){const{frontmatter:e}=V();return(t,n)=>i(e).features?(s(),k(qn,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):h("",!0)}}),Wn=_({__name:"VPHomeContent",setup(o){const{width:e}=Et({initialWidth:0,includeScrollbar:!1});return(t,n)=>(s(),c("div",{class:"vp-doc container",style:xe(i(e)?{"--vp-offset":`calc(50% - ${i(e)/2}px)`}:{})},[l(t.$slots,"default",{},void 0,!0)],4))}}),Kn=y(Wn,[["__scopeId","data-v-c141a4bd"]]),Jn={class:"VPHome"},Yn=_({__name:"VPHome",setup(o){const{frontmatter:e}=V();return(t,n)=>{const a=ce("Content");return s(),c("div",Jn,[l(t.$slots,"home-hero-before",{},void 0,!0),b(Tn,null,{"home-hero-info-before":p(()=>[l(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":p(()=>[l(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":p(()=>[l(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":p(()=>[l(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":p(()=>[l(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),l(t.$slots,"home-hero-after",{},void 0,!0),l(t.$slots,"home-features-before",{},void 0,!0),b(Rn),l(t.$slots,"home-features-after",{},void 0,!0),i(e).markdownStyles!==!1?(s(),k(Kn,{key:0},{default:p(()=>[b(a)]),_:1})):(s(),k(a,{key:1}))])}}}),Xn=y(Yn,[["__scopeId","data-v-07b1ad08"]]),Zn={},Qn={class:"VPPage"};function xn(o,e){const t=ce("Content");return s(),c("div",Qn,[l(o.$slots,"page-top"),b(t),l(o.$slots,"page-bottom")])}const ea=y(Zn,[["render",xn]]),ta=_({__name:"VPContent",setup(o){const{page:e,frontmatter:t}=V(),{hasSidebar:n}=ne();return(a,r)=>(s(),c("div",{class:M(["VPContent",{"has-sidebar":i(n),"is-home":i(t).layout==="home"}]),id:"VPContent"},[i(e).isNotFound?l(a.$slots,"not-found",{key:0},()=>[b(lo)],!0):i(t).layout==="page"?(s(),k(ea,{key:1},{"page-top":p(()=>[l(a.$slots,"page-top",{},void 0,!0)]),"page-bottom":p(()=>[l(a.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(t).layout==="home"?(s(),k(Xn,{key:2},{"home-hero-before":p(()=>[l(a.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":p(()=>[l(a.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":p(()=>[l(a.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":p(()=>[l(a.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":p(()=>[l(a.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":p(()=>[l(a.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":p(()=>[l(a.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":p(()=>[l(a.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":p(()=>[l(a.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(t).layout&&i(t).layout!=="doc"?(s(),k(Q(i(t).layout),{key:3})):(s(),k(un,{key:4},{"doc-top":p(()=>[l(a.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":p(()=>[l(a.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":p(()=>[l(a.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":p(()=>[l(a.$slots,"doc-before",{},void 0,!0)]),"doc-after":p(()=>[l(a.$slots,"doc-after",{},void 0,!0)]),"aside-top":p(()=>[l(a.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":p(()=>[l(a.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[l(a.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[l(a.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[l(a.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":p(()=>[l(a.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),oa=y(ta,[["__scopeId","data-v-9a6c75ad"]]),na={class:"container"},aa=["innerHTML"],sa=["innerHTML"],ra=_({__name:"VPFooter",setup(o){const{theme:e,frontmatter:t}=V(),{hasSidebar:n}=ne();return(a,r)=>i(e).footer&&i(t).footer!==!1?(s(),c("footer",{key:0,class:M(["VPFooter",{"has-sidebar":i(n)}])},[m("div",na,[i(e).footer.message?(s(),c("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,aa)):h("",!0),i(e).footer.copyright?(s(),c("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,sa)):h("",!0)])],2)):h("",!0)}}),ia=y(ra,[["__scopeId","data-v-566314d4"]]);function la(){const{theme:o,frontmatter:e}=V(),t=Ze([]),n=L(()=>t.value.length>0);return ye(()=>{t.value=je(e.value.outline??o.value.outline)}),{headers:t,hasLocalNav:n}}const ca=o=>(G("data-v-883964e0"),o=o(),q(),o),ua={class:"menu-text"},da=ca(()=>m("span",{class:"vpi-chevron-right icon"},null,-1)),va={class:"header"},pa={class:"outline"},ma=_({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(o){const e=o,{theme:t}=V(),n=H(!1),a=H(0),r=H(),u=H();function d($){var S;(S=r.value)!=null&&S.contains($.target)||(n.value=!1)}ee(n,$=>{if($){document.addEventListener("click",d);return}document.removeEventListener("click",d)}),Ce("Escape",()=>{n.value=!1}),ye(()=>{n.value=!1});function v(){n.value=!n.value,a.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function g($){$.target.classList.contains("outline-link")&&(u.value&&(u.value.style.transition="none"),et(()=>{n.value=!1}))}function I(){n.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return($,S)=>(s(),c("div",{class:"VPLocalNavOutlineDropdown",style:xe({"--vp-vh":a.value+"px"}),ref_key:"main",ref:r},[$.headers.length>0?(s(),c("button",{key:0,onClick:v,class:M({open:n.value})},[m("span",ua,z(i(st)(i(t))),1),da],2)):(s(),c("button",{key:1,onClick:I},z(i(t).returnToTopLabel||"Return to top"),1)),b(Ae,{name:"flyout"},{default:p(()=>[n.value?(s(),c("div",{key:0,ref_key:"items",ref:u,class:"items",onClick:g},[m("div",va,[m("a",{class:"top-link",href:"#",onClick:I},z(i(t).returnToTopLabel||"Return to top"),1)]),m("div",pa,[b(rt,{headers:$.headers},null,8,["headers"])])],512)):h("",!0)]),_:1})],4))}}),fa=y(ma,[["__scopeId","data-v-883964e0"]]),ha=o=>(G("data-v-2488c25a"),o=o(),q(),o),_a={class:"container"},ga=["aria-expanded"],ba=ha(()=>m("span",{class:"vpi-align-left menu-icon"},null,-1)),ka={class:"menu-text"},$a=_({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(o){const{theme:e,frontmatter:t}=V(),{hasSidebar:n}=ne(),{headers:a}=la(),{y:r}=tt(),u=H(0);oe(()=>{u.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),ye(()=>{a.value=je(t.value.outline??e.value.outline)});const d=L(()=>a.value.length===0),v=L(()=>d.value&&!n.value),g=L(()=>({VPLocalNav:!0,"has-sidebar":n.value,empty:d.value,fixed:v.value}));return(I,$)=>i(t).layout!=="home"&&(!v.value||i(r)>=u.value)?(s(),c("div",{key:0,class:M(g.value)},[m("div",_a,[i(n)?(s(),c("button",{key:0,class:"menu","aria-expanded":I.open,"aria-controls":"VPSidebarNav",onClick:$[0]||($[0]=S=>I.$emit("open-menu"))},[ba,m("span",ka,z(i(e).sidebarMenuLabel||"Menu"),1)],8,ga)):h("",!0),b(fa,{headers:i(a),navHeight:u.value},null,8,["headers","navHeight"])])],2)):h("",!0)}}),ya=y($a,[["__scopeId","data-v-2488c25a"]]);function La(){const o=H(!1);function e(){o.value=!0,window.addEventListener("resize",a)}function t(){o.value=!1,window.removeEventListener("resize",a)}function n(){o.value?t():e()}function a(){window.outerWidth>=768&&t()}const r=pe();return ee(()=>r.path,t),{isScreenOpen:o,openScreen:e,closeScreen:t,toggleScreen:n}}const Pa={},Sa={class:"VPSwitch",type:"button",role:"switch"},Va={class:"check"},wa={key:0,class:"icon"};function Ta(o,e){return s(),c("button",Sa,[m("span",Va,[o.$slots.default?(s(),c("span",wa,[l(o.$slots,"default",{},void 0,!0)])):h("",!0)])])}const Ia=y(Pa,[["render",Ta],["__scopeId","data-v-b4ccac88"]]),lt=o=>(G("data-v-be9742d9"),o=o(),q(),o),Na=lt(()=>m("span",{class:"vpi-sun sun"},null,-1)),Ea=lt(()=>m("span",{class:"vpi-moon moon"},null,-1)),Ca=_({__name:"VPSwitchAppearance",setup(o){const{isDark:e,theme:t}=V(),n=Le("toggle-appearance",()=>{e.value=!e.value}),a=H("");return Fe(()=>{a.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(r,u)=>(s(),k(Ia,{title:a.value,class:"VPSwitchAppearance","aria-checked":i(e),onClick:i(n)},{default:p(()=>[Na,Ea]),_:1},8,["title","aria-checked","onClick"]))}}),Ue=y(Ca,[["__scopeId","data-v-be9742d9"]]),za={key:0,class:"VPNavBarAppearance"},Ha=_({__name:"VPNavBarAppearance",setup(o){const{site:e}=V();return(t,n)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(s(),c("div",za,[b(Ue)])):h("",!0)}}),Ma=y(Ha,[["__scopeId","data-v-3f90c1a5"]]),Ge=H();let ct=!1,Ne=0;function Aa(o){const e=H(!1);if(Pe){!ct&&Ba(),Ne++;const t=ee(Ge,n=>{var a,r,u;n===o.el.value||(a=o.el.value)!=null&&a.contains(n)?(e.value=!0,(r=o.onFocus)==null||r.call(o)):(e.value=!1,(u=o.onBlur)==null||u.call(o))});Oe(()=>{t(),Ne--,Ne||Oa()})}return Ct(e)}function Ba(){document.addEventListener("focusin",ut),ct=!0,Ge.value=document.activeElement}function Oa(){document.removeEventListener("focusin",ut)}function ut(){Ge.value=document.activeElement}const Fa={class:"VPMenuLink"},Da=_({__name:"VPMenuLink",props:{item:{}},setup(o){const{page:e}=V();return(t,n)=>(s(),c("div",Fa,[b(x,{class:M({active:i(le)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:p(()=>[te(z(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),Se=y(Da,[["__scopeId","data-v-f51f088d"]]),ja={class:"VPMenuGroup"},Ua={key:0,class:"title"},Ga=_({__name:"VPMenuGroup",props:{text:{},items:{}},setup(o){return(e,t)=>(s(),c("div",ja,[e.text?(s(),c("p",Ua,z(e.text),1)):h("",!0),(s(!0),c(B,null,R(e.items,n=>(s(),c(B,null,["link"in n?(s(),k(Se,{key:0,item:n},null,8,["item"])):h("",!0)],64))),256))]))}}),qa=y(Ga,[["__scopeId","data-v-a6b0397c"]]),Ra={class:"VPMenu"},Wa={key:0,class:"items"},Ka=_({__name:"VPMenu",props:{items:{}},setup(o){return(e,t)=>(s(),c("div",Ra,[e.items?(s(),c("div",Wa,[(s(!0),c(B,null,R(e.items,n=>(s(),c(B,{key:JSON.stringify(n)},["link"in n?(s(),k(Se,{key:0,item:n},null,8,["item"])):"component"in n?(s(),k(Q(n.component),re({key:1,ref_for:!0},n.props),null,16)):(s(),k(qa,{key:2,text:n.text,items:n.items},null,8,["text","items"]))],64))),128))])):h("",!0),l(e.$slots,"default",{},void 0,!0)]))}}),Ja=y(Ka,[["__scopeId","data-v-20ed86d6"]]),Ya=o=>(G("data-v-af5898d3"),o=o(),q(),o),Xa=["aria-expanded","aria-label"],Za={key:0,class:"text"},Qa=["innerHTML"],xa=Ya(()=>m("span",{class:"vpi-chevron-down text-icon"},null,-1)),es={key:1,class:"vpi-more-horizontal icon"},ts={class:"menu"},os=_({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(o){const e=H(!1),t=H();Aa({el:t,onBlur:n});function n(){e.value=!1}return(a,r)=>(s(),c("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=u=>e.value=!0),onMouseleave:r[2]||(r[2]=u=>e.value=!1)},[m("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":a.label,onClick:r[0]||(r[0]=u=>e.value=!e.value)},[a.button||a.icon?(s(),c("span",Za,[a.icon?(s(),c("span",{key:0,class:M([a.icon,"option-icon"])},null,2)):h("",!0),a.button?(s(),c("span",{key:1,innerHTML:a.button},null,8,Qa)):h("",!0),xa])):(s(),c("span",es))],8,Xa),m("div",ts,[b(Ja,{items:a.items},{default:p(()=>[l(a.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),qe=y(os,[["__scopeId","data-v-af5898d3"]]),ns=["href","aria-label","innerHTML"],as=_({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(o){const e=o,t=L(()=>typeof e.icon=="object"?e.icon.svg:``);return(n,a)=>(s(),c("a",{class:"VPSocialLink no-icon",href:n.link,"aria-label":n.ariaLabel??(typeof n.icon=="string"?n.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,ns))}}),ss=y(as,[["__scopeId","data-v-358b6670"]]),rs={class:"VPSocialLinks"},is=_({__name:"VPSocialLinks",props:{links:{}},setup(o){return(e,t)=>(s(),c("div",rs,[(s(!0),c(B,null,R(e.links,({link:n,icon:a,ariaLabel:r})=>(s(),k(ss,{key:n,icon:a,link:n,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),Re=y(is,[["__scopeId","data-v-e71e869c"]]),ls={key:0,class:"group translations"},cs={class:"trans-title"},us={key:1,class:"group"},ds={class:"item appearance"},vs={class:"label"},ps={class:"appearance-action"},ms={key:2,class:"group"},fs={class:"item social-links"},hs=_({__name:"VPNavBarExtra",setup(o){const{site:e,theme:t}=V(),{localeLinks:n,currentLang:a}=me({correspondingLink:!0}),r=L(()=>n.value.length&&a.value.label||e.value.appearance||t.value.socialLinks);return(u,d)=>r.value?(s(),k(qe,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:p(()=>[i(n).length&&i(a).label?(s(),c("div",ls,[m("p",cs,z(i(a).label),1),(s(!0),c(B,null,R(i(n),v=>(s(),k(Se,{key:v.link,item:v},null,8,["item"]))),128))])):h("",!0),i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(s(),c("div",us,[m("div",ds,[m("p",vs,z(i(t).darkModeSwitchLabel||"Appearance"),1),m("div",ps,[b(Ue)])])])):h("",!0),i(t).socialLinks?(s(),c("div",ms,[m("div",fs,[b(Re,{class:"social-links-list",links:i(t).socialLinks},null,8,["links"])])])):h("",!0)]),_:1})):h("",!0)}}),_s=y(hs,[["__scopeId","data-v-f953d92f"]]),gs=o=>(G("data-v-6bee1efd"),o=o(),q(),o),bs=["aria-expanded"],ks=gs(()=>m("span",{class:"container"},[m("span",{class:"top"}),m("span",{class:"middle"}),m("span",{class:"bottom"})],-1)),$s=[ks],ys=_({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(o){return(e,t)=>(s(),c("button",{type:"button",class:M(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=n=>e.$emit("click"))},$s,10,bs))}}),Ls=y(ys,[["__scopeId","data-v-6bee1efd"]]),Ps=["innerHTML"],Ss=_({__name:"VPNavBarMenuLink",props:{item:{}},setup(o){const{page:e}=V();return(t,n)=>(s(),k(x,{class:M({VPNavBarMenuLink:!0,active:i(le)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,noIcon:t.item.noIcon,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:p(()=>[m("span",{innerHTML:t.item.text},null,8,Ps)]),_:1},8,["class","href","noIcon","target","rel"]))}}),Vs=y(Ss,[["__scopeId","data-v-08fbf4b6"]]),ws=_({__name:"VPNavBarMenuGroup",props:{item:{}},setup(o){const e=o,{page:t}=V(),n=r=>"component"in r?!1:"link"in r?le(t.value.relativePath,r.link,!!e.item.activeMatch):r.items.some(n),a=L(()=>n(e.item));return(r,u)=>(s(),k(qe,{class:M({VPNavBarMenuGroup:!0,active:i(le)(i(t).relativePath,r.item.activeMatch,!!r.item.activeMatch)||a.value}),button:r.item.text,items:r.item.items},null,8,["class","button","items"]))}}),Ts=o=>(G("data-v-afb2845e"),o=o(),q(),o),Is={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Ns=Ts(()=>m("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),Es=_({__name:"VPNavBarMenu",setup(o){const{theme:e}=V();return(t,n)=>i(e).nav?(s(),c("nav",Is,[Ns,(s(!0),c(B,null,R(i(e).nav,a=>(s(),c(B,{key:JSON.stringify(a)},["link"in a?(s(),k(Vs,{key:0,item:a},null,8,["item"])):"component"in a?(s(),k(Q(a.component),re({key:1,ref_for:!0},a.props),null,16)):(s(),k(ws,{key:2,item:a},null,8,["item"]))],64))),128))])):h("",!0)}}),Cs=y(Es,[["__scopeId","data-v-afb2845e"]]);function zs(o){const{localeIndex:e,theme:t}=V();function n(a){var N,F,C;const r=a.split("."),u=(N=t.value.search)==null?void 0:N.options,d=u&&typeof u=="object",v=d&&((C=(F=u.locales)==null?void 0:F[e.value])==null?void 0:C.translations)||null,g=d&&u.translations||null;let I=v,$=g,S=o;const E=r.pop();for(const Y of r){let X=null;const D=S==null?void 0:S[Y];D&&(X=S=D);const ae=$==null?void 0:$[Y];ae&&(X=$=ae);const Z=I==null?void 0:I[Y];Z&&(X=I=Z),D||(S=X),ae||($=X),Z||(I=X)}return(I==null?void 0:I[E])??($==null?void 0:$[E])??(S==null?void 0:S[E])??""}return n}const Hs=["aria-label"],Ms={class:"DocSearch-Button-Container"},As=m("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1),Bs={class:"DocSearch-Button-Placeholder"},Os=m("span",{class:"DocSearch-Button-Keys"},[m("kbd",{class:"DocSearch-Button-Key"}),m("kbd",{class:"DocSearch-Button-Key"},"K")],-1),Xe=_({__name:"VPNavBarSearchButton",setup(o){const t=zs({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(n,a)=>(s(),c("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":i(t)("button.buttonAriaLabel")},[m("span",Ms,[As,m("span",Bs,z(i(t)("button.buttonText")),1)]),Os],8,Hs))}}),Fs={class:"VPNavBarSearch"},Ds={id:"local-search"},js={key:1,id:"docsearch"},Us=_({__name:"VPNavBarSearch",setup(o){const e=zt(()=>Ht(()=>import("./VPLocalSearchBox.BwfpN1Rc.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:n}=V(),a=H(!1),r=H(!1);oe(()=>{});function u(){a.value||(a.value=!0,setTimeout(d,16))}function d(){const $=new Event("keydown");$.key="k",$.metaKey=!0,window.dispatchEvent($),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||d()},16)}function v($){const S=$.target,E=S.tagName;return S.isContentEditable||E==="INPUT"||E==="SELECT"||E==="TEXTAREA"}const g=H(!1);Ce("k",$=>{($.ctrlKey||$.metaKey)&&($.preventDefault(),g.value=!0)}),Ce("/",$=>{v($)||($.preventDefault(),g.value=!0)});const I="local";return($,S)=>{var E;return s(),c("div",Fs,[i(I)==="local"?(s(),c(B,{key:0},[g.value?(s(),k(i(e),{key:0,onClose:S[0]||(S[0]=N=>g.value=!1)})):h("",!0),m("div",Ds,[b(Xe,{onClick:S[1]||(S[1]=N=>g.value=!0)})])],64)):i(I)==="algolia"?(s(),c(B,{key:1},[a.value?(s(),k(i(t),{key:0,algolia:((E=i(n).search)==null?void 0:E.options)??i(n).algolia,onVnodeBeforeMount:S[2]||(S[2]=N=>r.value=!0)},null,8,["algolia"])):h("",!0),r.value?h("",!0):(s(),c("div",js,[b(Xe,{onClick:u})]))],64)):h("",!0)])}}}),Gs=_({__name:"VPNavBarSocialLinks",setup(o){const{theme:e}=V();return(t,n)=>i(e).socialLinks?(s(),k(Re,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):h("",!0)}}),qs=y(Gs,[["__scopeId","data-v-ef6192dc"]]),Rs=["href","rel","target"],Ws={key:1},Ks={key:2},Js=_({__name:"VPNavBarTitle",setup(o){const{site:e,theme:t}=V(),{hasSidebar:n}=ne(),{currentLang:a}=me(),r=L(()=>{var v;return typeof t.value.logoLink=="string"?t.value.logoLink:(v=t.value.logoLink)==null?void 0:v.link}),u=L(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.rel}),d=L(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.target});return(v,g)=>(s(),c("div",{class:M(["VPNavBarTitle",{"has-sidebar":i(n)}])},[m("a",{class:"title",href:r.value??i(De)(i(a).link),rel:u.value,target:d.value},[l(v.$slots,"nav-bar-title-before",{},void 0,!0),i(t).logo?(s(),k(ke,{key:0,class:"logo",image:i(t).logo},null,8,["image"])):h("",!0),i(t).siteTitle?(s(),c("span",Ws,z(i(t).siteTitle),1)):i(t).siteTitle===void 0?(s(),c("span",Ks,z(i(e).title),1)):h("",!0),l(v.$slots,"nav-bar-title-after",{},void 0,!0)],8,Rs)],2))}}),Ys=y(Js,[["__scopeId","data-v-0ad69264"]]),Xs={class:"items"},Zs={class:"title"},Qs=_({__name:"VPNavBarTranslations",setup(o){const{theme:e}=V(),{localeLinks:t,currentLang:n}=me({correspondingLink:!0});return(a,r)=>i(t).length&&i(n).label?(s(),k(qe,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:i(e).langMenuLabel||"Change language"},{default:p(()=>[m("div",Xs,[m("p",Zs,z(i(n).label),1),(s(!0),c(B,null,R(i(t),u=>(s(),k(Se,{key:u.link,item:u},null,8,["item"]))),128))])]),_:1},8,["label"])):h("",!0)}}),xs=y(Qs,[["__scopeId","data-v-acee064b"]]),er=o=>(G("data-v-9fd4d1dd"),o=o(),q(),o),tr={class:"wrapper"},or={class:"container"},nr={class:"title"},ar={class:"content"},sr={class:"content-body"},rr=er(()=>m("div",{class:"divider"},[m("div",{class:"divider-line"})],-1)),ir=_({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(o){const e=o,{y:t}=tt(),{hasSidebar:n}=ne(),{frontmatter:a}=V(),r=H({});return Fe(()=>{r.value={"has-sidebar":n.value,home:a.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(u,d)=>(s(),c("div",{class:M(["VPNavBar",r.value])},[m("div",tr,[m("div",or,[m("div",nr,[b(Ys,null,{"nav-bar-title-before":p(()=>[l(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[l(u.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),m("div",ar,[m("div",sr,[l(u.$slots,"nav-bar-content-before",{},void 0,!0),b(Us,{class:"search"}),b(Cs,{class:"menu"}),b(xs,{class:"translations"}),b(Ma,{class:"appearance"}),b(qs,{class:"social-links"}),b(_s,{class:"extra"}),l(u.$slots,"nav-bar-content-after",{},void 0,!0),b(Ls,{class:"hamburger",active:u.isScreenOpen,onClick:d[0]||(d[0]=v=>u.$emit("toggle-screen"))},null,8,["active"])])])])]),rr],2))}}),lr=y(ir,[["__scopeId","data-v-9fd4d1dd"]]),cr={key:0,class:"VPNavScreenAppearance"},ur={class:"text"},dr=_({__name:"VPNavScreenAppearance",setup(o){const{site:e,theme:t}=V();return(n,a)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(s(),c("div",cr,[m("p",ur,z(i(t).darkModeSwitchLabel||"Appearance"),1),b(Ue)])):h("",!0)}}),vr=y(dr,[["__scopeId","data-v-a3e2920d"]]),pr=_({__name:"VPNavScreenMenuLink",props:{item:{}},setup(o){const e=Le("close-screen");return(t,n)=>(s(),k(x,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e),innerHTML:t.item.text},null,8,["href","target","rel","onClick","innerHTML"]))}}),mr=y(pr,[["__scopeId","data-v-1a934d60"]]),fr=_({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(o){const e=Le("close-screen");return(t,n)=>(s(),k(x,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e)},{default:p(()=>[te(z(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),dt=y(fr,[["__scopeId","data-v-aea78dd1"]]),hr={class:"VPNavScreenMenuGroupSection"},_r={key:0,class:"title"},gr=_({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(o){return(e,t)=>(s(),c("div",hr,[e.text?(s(),c("p",_r,z(e.text),1)):h("",!0),(s(!0),c(B,null,R(e.items,n=>(s(),k(dt,{key:n.text,item:n},null,8,["item"]))),128))]))}}),br=y(gr,[["__scopeId","data-v-f60dbfa7"]]),kr=o=>(G("data-v-341db479"),o=o(),q(),o),$r=["aria-controls","aria-expanded"],yr=["innerHTML"],Lr=kr(()=>m("span",{class:"vpi-plus button-icon"},null,-1)),Pr=["id"],Sr={key:0,class:"item"},Vr={key:1,class:"item"},wr={key:2,class:"group"},Tr=_({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(o){const e=o,t=H(!1),n=L(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function a(){t.value=!t.value}return(r,u)=>(s(),c("div",{class:M(["VPNavScreenMenuGroup",{open:t.value}])},[m("button",{class:"button","aria-controls":n.value,"aria-expanded":t.value,onClick:a},[m("span",{class:"button-text",innerHTML:r.text},null,8,yr),Lr],8,$r),m("div",{id:n.value,class:"items"},[(s(!0),c(B,null,R(r.items,d=>(s(),c(B,{key:JSON.stringify(d)},["link"in d?(s(),c("div",Sr,[b(dt,{item:d},null,8,["item"])])):"component"in d?(s(),c("div",Vr,[(s(),k(Q(d.component),re({ref_for:!0},d.props,{"screen-menu":""}),null,16))])):(s(),c("div",wr,[b(br,{items:d.items},null,8,["items"])]))],64))),128))],8,Pr)],2))}}),Ir=y(Tr,[["__scopeId","data-v-341db479"]]),Nr={key:0,class:"VPNavScreenMenu"},Er=_({__name:"VPNavScreenMenu",setup(o){const{theme:e}=V();return(t,n)=>i(e).nav?(s(),c("nav",Nr,[(s(!0),c(B,null,R(i(e).nav,a=>(s(),c(B,{key:JSON.stringify(a)},["link"in a?(s(),k(mr,{key:0,item:a},null,8,["item"])):"component"in a?(s(),k(Q(a.component),re({key:1,ref_for:!0},a.props,{"screen-menu":""}),null,16)):(s(),k(Ir,{key:2,text:a.text||"",items:a.items},null,8,["text","items"]))],64))),128))])):h("",!0)}}),Cr=_({__name:"VPNavScreenSocialLinks",setup(o){const{theme:e}=V();return(t,n)=>i(e).socialLinks?(s(),k(Re,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):h("",!0)}}),vt=o=>(G("data-v-516e4bc3"),o=o(),q(),o),zr=vt(()=>m("span",{class:"vpi-languages icon lang"},null,-1)),Hr=vt(()=>m("span",{class:"vpi-chevron-down icon chevron"},null,-1)),Mr={class:"list"},Ar=_({__name:"VPNavScreenTranslations",setup(o){const{localeLinks:e,currentLang:t}=me({correspondingLink:!0}),n=H(!1);function a(){n.value=!n.value}return(r,u)=>i(e).length&&i(t).label?(s(),c("div",{key:0,class:M(["VPNavScreenTranslations",{open:n.value}])},[m("button",{class:"title",onClick:a},[zr,te(" "+z(i(t).label)+" ",1),Hr]),m("ul",Mr,[(s(!0),c(B,null,R(i(e),d=>(s(),c("li",{key:d.link,class:"item"},[b(x,{class:"link",href:d.link},{default:p(()=>[te(z(d.text),1)]),_:2},1032,["href"])]))),128))])],2)):h("",!0)}}),Br=y(Ar,[["__scopeId","data-v-516e4bc3"]]),Or={class:"container"},Fr=_({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(o){const e=H(null),t=ot(Pe?document.body:null);return(n,a)=>(s(),k(Ae,{name:"fade",onEnter:a[0]||(a[0]=r=>t.value=!0),onAfterLeave:a[1]||(a[1]=r=>t.value=!1)},{default:p(()=>[n.open?(s(),c("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[m("div",Or,[l(n.$slots,"nav-screen-content-before",{},void 0,!0),b(Er,{class:"menu"}),b(Br,{class:"translations"}),b(vr,{class:"appearance"}),b(Cr,{class:"social-links"}),l(n.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):h("",!0)]),_:3}))}}),Dr=y(Fr,[["__scopeId","data-v-2dd6d0c7"]]),jr={key:0,class:"VPNav"},Ur=_({__name:"VPNav",setup(o){const{isScreenOpen:e,closeScreen:t,toggleScreen:n}=La(),{frontmatter:a}=V(),r=L(()=>a.value.navbar!==!1);return nt("close-screen",t),$e(()=>{Pe&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(u,d)=>r.value?(s(),c("header",jr,[b(lr,{"is-screen-open":i(e),onToggleScreen:i(n)},{"nav-bar-title-before":p(()=>[l(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[l(u.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":p(()=>[l(u.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":p(()=>[l(u.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),b(Dr,{open:i(e)},{"nav-screen-content-before":p(()=>[l(u.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":p(()=>[l(u.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):h("",!0)}}),Gr=y(Ur,[["__scopeId","data-v-7ad780c2"]]),pt=o=>(G("data-v-edd2eed8"),o=o(),q(),o),qr=["role","tabindex"],Rr=pt(()=>m("div",{class:"indicator"},null,-1)),Wr=pt(()=>m("span",{class:"vpi-chevron-right caret-icon"},null,-1)),Kr=[Wr],Jr={key:1,class:"items"},Yr=_({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(o){const e=o,{collapsed:t,collapsible:n,isLink:a,isActiveLink:r,hasActiveLink:u,hasChildren:d,toggle:v}=po(L(()=>e.item)),g=L(()=>d.value?"section":"div"),I=L(()=>a.value?"a":"div"),$=L(()=>d.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),S=L(()=>a.value?void 0:"button"),E=L(()=>[[`level-${e.depth}`],{collapsible:n.value},{collapsed:t.value},{"is-link":a.value},{"is-active":r.value},{"has-active":u.value}]);function N(C){"key"in C&&C.key!=="Enter"||!e.item.link&&v()}function F(){e.item.link&&v()}return(C,Y)=>{const X=ce("VPSidebarItem",!0);return s(),k(Q(g.value),{class:M(["VPSidebarItem",E.value])},{default:p(()=>[C.item.text?(s(),c("div",re({key:0,class:"item",role:S.value},Mt(C.item.items?{click:N,keydown:N}:{},!0),{tabindex:C.item.items&&0}),[Rr,C.item.link?(s(),k(x,{key:0,tag:I.value,class:"link",href:C.item.link,rel:C.item.rel,target:C.item.target},{default:p(()=>[(s(),k(Q($.value),{class:"text",innerHTML:C.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(s(),k(Q($.value),{key:1,class:"text",innerHTML:C.item.text},null,8,["innerHTML"])),C.item.collapsed!=null&&C.item.items&&C.item.items.length?(s(),c("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:F,onKeydown:At(F,["enter"]),tabindex:"0"},Kr,32)):h("",!0)],16,qr)):h("",!0),C.item.items&&C.item.items.length?(s(),c("div",Jr,[C.depth<5?(s(!0),c(B,{key:0},R(C.item.items,D=>(s(),k(X,{key:D.text,item:D,depth:C.depth+1},null,8,["item","depth"]))),128)):h("",!0)])):h("",!0)]),_:1},8,["class"])}}}),Xr=y(Yr,[["__scopeId","data-v-edd2eed8"]]),Zr=_({__name:"VPSidebarGroup",props:{items:{}},setup(o){const e=H(!0);let t=null;return oe(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),Bt(()=>{t!=null&&(clearTimeout(t),t=null)}),(n,a)=>(s(!0),c(B,null,R(n.items,r=>(s(),c("div",{key:r.text,class:M(["group",{"no-transition":e.value}])},[b(Xr,{item:r,depth:0},null,8,["item"])],2))),128))}}),Qr=y(Zr,[["__scopeId","data-v-51288d80"]]),mt=o=>(G("data-v-42c4c606"),o=o(),q(),o),xr=mt(()=>m("div",{class:"curtain"},null,-1)),ei={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},ti=mt(()=>m("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),oi=_({__name:"VPSidebar",props:{open:{type:Boolean}},setup(o){const{sidebarGroups:e,hasSidebar:t}=ne(),n=o,a=H(null),r=ot(Pe?document.body:null);ee([n,a],()=>{var d;n.open?(r.value=!0,(d=a.value)==null||d.focus()):r.value=!1},{immediate:!0,flush:"post"});const u=H(0);return ee(e,()=>{u.value+=1},{deep:!0}),(d,v)=>i(t)?(s(),c("aside",{key:0,class:M(["VPSidebar",{open:d.open}]),ref_key:"navEl",ref:a,onClick:v[0]||(v[0]=Ot(()=>{},["stop"]))},[xr,m("nav",ei,[ti,l(d.$slots,"sidebar-nav-before",{},void 0,!0),(s(),k(Qr,{items:i(e),key:u.value},null,8,["items"])),l(d.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):h("",!0)}}),ni=y(oi,[["__scopeId","data-v-42c4c606"]]),ai=_({__name:"VPSkipLink",setup(o){const e=pe(),t=H();ee(()=>e.path,()=>t.value.focus());function n({target:a}){const r=document.getElementById(decodeURIComponent(a.hash).slice(1));if(r){const u=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",u)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",u),r.focus(),window.scrollTo(0,0)}}return(a,r)=>(s(),c(B,null,[m("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),m("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:n}," Skip to content ")],64))}}),si=y(ai,[["__scopeId","data-v-c8291ffa"]]),ri=_({__name:"Layout",setup(o){const{isOpen:e,open:t,close:n}=ne(),a=pe();ee(()=>a.path,n),vo(e,n);const{frontmatter:r}=V(),u=Ft(),d=L(()=>!!u["home-hero-image"]);return nt("hero-image-slot-exists",d),(v,g)=>{const I=ce("Content");return i(r).layout!==!1?(s(),c("div",{key:0,class:M(["Layout",i(r).pageClass])},[l(v.$slots,"layout-top",{},void 0,!0),b(si),b(Xt,{class:"backdrop",show:i(e),onClick:i(n)},null,8,["show","onClick"]),b(Gr,null,{"nav-bar-title-before":p(()=>[l(v.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[l(v.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":p(()=>[l(v.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":p(()=>[l(v.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":p(()=>[l(v.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":p(()=>[l(v.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),b(ya,{open:i(e),onOpenMenu:i(t)},null,8,["open","onOpenMenu"]),b(ni,{open:i(e)},{"sidebar-nav-before":p(()=>[l(v.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":p(()=>[l(v.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),b(oa,null,{"page-top":p(()=>[l(v.$slots,"page-top",{},void 0,!0)]),"page-bottom":p(()=>[l(v.$slots,"page-bottom",{},void 0,!0)]),"not-found":p(()=>[l(v.$slots,"not-found",{},void 0,!0)]),"home-hero-before":p(()=>[l(v.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":p(()=>[l(v.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":p(()=>[l(v.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":p(()=>[l(v.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":p(()=>[l(v.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":p(()=>[l(v.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":p(()=>[l(v.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":p(()=>[l(v.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":p(()=>[l(v.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":p(()=>[l(v.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":p(()=>[l(v.$slots,"doc-before",{},void 0,!0)]),"doc-after":p(()=>[l(v.$slots,"doc-after",{},void 0,!0)]),"doc-top":p(()=>[l(v.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":p(()=>[l(v.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":p(()=>[l(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":p(()=>[l(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":p(()=>[l(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[l(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[l(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[l(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),b(ia),l(v.$slots,"layout-bottom",{},void 0,!0)],2)):(s(),k(I,{key:1}))}}}),ii=y(ri,[["__scopeId","data-v-d8b57b2d"]]),li={Layout:ii,enhanceApp:({app:o})=>{o.component("Badge",Kt)}},ci={class:"ad"},ui=["src","onClick"],di={__name:"layout",setup(o){const{Layout:e}=li,t=Dt({list:[],toLink(n){n.link?window.open(n.link):window.open(`https://cool-js.com/ad/${n.id}`)},get(){fetch("https://service.cool-js.com/api/app/info/ad/list",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({channel:1})}).then(n=>n.json()).then(n=>{this.list=n.data})}});return oe(()=>{t.get()}),(n,a)=>(s(),k(i(e),null,{"sidebar-nav-before":p(()=>[m("div",ci,[(s(!0),c(B,null,R(t.list,r=>(s(),c("img",{key:r,src:r.pic,onClick:u=>t.toLink(r)},null,8,ui))),128))])]),_:1}))}},vi=y(di,[["__scopeId","data-v-96d1ba1f"]]),mi={Layout:vi,setup(){const o=pe(),e=()=>{new qt("[data-zoomable]",{background:"var(--vp-c-bg)"})};oe(()=>{e()}),ee(()=>o.path,()=>et(()=>e()))}};export{mi as R,zs as c,V as u}; +See: https://github.com/francoischalifour/medium-zoom`)}},Ut=function(e){var t=document.createElement("div");return t.classList.add("medium-zoom-overlay"),t.style.background=e,t},Gt=function(e){var t=e.getBoundingClientRect(),n=t.top,a=t.left,r=t.width,u=t.height,d=e.cloneNode(),v=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,g=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;return d.removeAttribute("id"),d.style.position="absolute",d.style.top=n+v+"px",d.style.left=a+g+"px",d.style.width=r+"px",d.style.height=u+"px",d.style.transform="",d},de=function(e,t){var n=ie({bubbles:!1,cancelable:!1,detail:void 0},t);if(typeof window.CustomEvent=="function")return new CustomEvent(e,n);var a=document.createEvent("CustomEvent");return a.initCustomEvent(e,n.bubbles,n.cancelable,n.detail),a},qt=function o(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=window.Promise||function(P){function w(){}P(w,w)},a=function(P){var w=P.target;if(w===fe){N();return}D.indexOf(w)!==-1&&F({target:w})},r=function(){if(!(Z||!f.original)){var P=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;Math.abs(We-P)>A.scrollOffset&&setTimeout(N,150)}},u=function(P){var w=P.key||P.keyCode;(w==="Escape"||w==="Esc"||w===27)&&N()},d=function(){var P=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},w=P;if(P.background&&(fe.style.background=P.background),P.container&&P.container instanceof Object&&(w.container=ie({},A.container,P.container)),P.template){var O=ge(P.template)?P.template:document.querySelector(P.template);w.template=O}return A=ie({},A,w),D.forEach(function(j){j.dispatchEvent(de("medium-zoom:update",{detail:{zoom:U}}))}),U},v=function(){var P=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return o(ie({},A,P))},g=function(){for(var P=arguments.length,w=Array(P),O=0;O0?w.reduce(function(T,K){return[].concat(T,Ye(K))},[]):D;return j.forEach(function(T){T.classList.remove("medium-zoom-image"),T.dispatchEvent(de("medium-zoom:detach",{detail:{zoom:U}}))}),D=D.filter(function(T){return j.indexOf(T)===-1}),U},$=function(P,w){var O=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return D.forEach(function(j){j.addEventListener("medium-zoom:"+P,w,O)}),ae.push({type:"medium-zoom:"+P,listener:w,options:O}),U},S=function(P,w){var O=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return D.forEach(function(j){j.removeEventListener("medium-zoom:"+P,w,O)}),ae=ae.filter(function(j){return!(j.type==="medium-zoom:"+P&&j.listener.toString()===w.toString())}),U},E=function(){var P=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},w=P.target,O=function(){var T={width:document.documentElement.clientWidth,height:document.documentElement.clientHeight,left:0,top:0,right:0,bottom:0},K=void 0,J=void 0;if(A.container)if(A.container instanceof Object)T=ie({},T,A.container),K=T.width-T.left-T.right-A.margin*2,J=T.height-T.top-T.bottom-A.margin*2;else{var ue=ge(A.container)?A.container:document.querySelector(A.container),se=ue.getBoundingClientRect(),Ve=se.width,ft=se.height,ht=se.left,_t=se.top;T=ie({},T,{width:Ve,height:ft,left:ht,top:_t})}K=K||T.width-A.margin*2,J=J||T.height-A.margin*2;var ve=f.zoomedHd||f.original,gt=Je(ve)?K:ve.naturalWidth||K,bt=Je(ve)?J:ve.naturalHeight||J,he=ve.getBoundingClientRect(),kt=he.top,$t=he.left,we=he.width,Te=he.height,yt=Math.min(Math.max(we,gt),K)/we,Lt=Math.min(Math.max(Te,bt),J)/Te,Ie=Math.min(yt,Lt),Pt=(-$t+(K-we)/2+A.margin+T.left)/Ie,St=(-kt+(J-Te)/2+A.margin+T.top)/Ie,Ke="scale("+Ie+") translate3d("+Pt+"px, "+St+"px, 0)";f.zoomed.style.transform=Ke,f.zoomedHd&&(f.zoomedHd.style.transform=Ke)};return new n(function(j){if(w&&D.indexOf(w)===-1){j(U);return}var T=function Ve(){Z=!1,f.zoomed.removeEventListener("transitionend",Ve),f.original.dispatchEvent(de("medium-zoom:opened",{detail:{zoom:U}})),j(U)};if(f.zoomed){j(U);return}if(w)f.original=w;else if(D.length>0){var K=D;f.original=K[0]}else{j(U);return}if(f.original.dispatchEvent(de("medium-zoom:open",{detail:{zoom:U}})),We=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,Z=!0,f.zoomed=Gt(f.original),document.body.appendChild(fe),A.template){var J=ge(A.template)?A.template:document.querySelector(A.template);f.template=document.createElement("div"),f.template.appendChild(J.content.cloneNode(!0)),document.body.appendChild(f.template)}if(f.original.parentElement&&f.original.parentElement.tagName==="PICTURE"&&f.original.currentSrc&&(f.zoomed.src=f.original.currentSrc),document.body.appendChild(f.zoomed),window.requestAnimationFrame(function(){document.body.classList.add("medium-zoom--opened")}),f.original.classList.add("medium-zoom-image--hidden"),f.zoomed.classList.add("medium-zoom-image--opened"),f.zoomed.addEventListener("click",N),f.zoomed.addEventListener("transitionend",T),f.original.getAttribute("data-zoom-src")){f.zoomedHd=f.zoomed.cloneNode(),f.zoomedHd.removeAttribute("srcset"),f.zoomedHd.removeAttribute("sizes"),f.zoomedHd.removeAttribute("loading"),f.zoomedHd.src=f.zoomed.getAttribute("data-zoom-src"),f.zoomedHd.onerror=function(){clearInterval(ue),console.warn("Unable to reach the zoom image target "+f.zoomedHd.src),f.zoomedHd=null,O()};var ue=setInterval(function(){f.zoomedHd.complete&&(clearInterval(ue),f.zoomedHd.classList.add("medium-zoom-image--opened"),f.zoomedHd.addEventListener("click",N),document.body.appendChild(f.zoomedHd),O())},10)}else if(f.original.hasAttribute("srcset")){f.zoomedHd=f.zoomed.cloneNode(),f.zoomedHd.removeAttribute("sizes"),f.zoomedHd.removeAttribute("loading");var se=f.zoomedHd.addEventListener("load",function(){f.zoomedHd.removeEventListener("load",se),f.zoomedHd.classList.add("medium-zoom-image--opened"),f.zoomedHd.addEventListener("click",N),document.body.appendChild(f.zoomedHd),O()})}else O()})},N=function(){return new n(function(P){if(Z||!f.original){P(U);return}var w=function O(){f.original.classList.remove("medium-zoom-image--hidden"),document.body.removeChild(f.zoomed),f.zoomedHd&&document.body.removeChild(f.zoomedHd),document.body.removeChild(fe),f.zoomed.classList.remove("medium-zoom-image--opened"),f.template&&document.body.removeChild(f.template),Z=!1,f.zoomed.removeEventListener("transitionend",O),f.original.dispatchEvent(de("medium-zoom:closed",{detail:{zoom:U}})),f.original=null,f.zoomed=null,f.zoomedHd=null,f.template=null,P(U)};Z=!0,document.body.classList.remove("medium-zoom--opened"),f.zoomed.style.transform="",f.zoomedHd&&(f.zoomedHd.style.transform=""),f.template&&(f.template.style.transition="opacity 150ms",f.template.style.opacity=0),f.original.dispatchEvent(de("medium-zoom:close",{detail:{zoom:U}})),f.zoomed.addEventListener("transitionend",w)})},F=function(){var P=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},w=P.target;return f.original?N():E({target:w})},C=function(){return A},Y=function(){return D},X=function(){return f.original},D=[],ae=[],Z=!1,We=0,A=t,f={original:null,zoomed:null,zoomedHd:null,template:null};Object.prototype.toString.call(e)==="[object Object]"?A=e:(e||typeof e=="string")&&g(e),A=ie({margin:0,background:"#fff",scrollOffset:40,container:null,template:null},A);var fe=Ut(A.background);document.addEventListener("click",a),document.addEventListener("keyup",u),document.addEventListener("scroll",r),window.addEventListener("resize",N);var U={open:E,close:N,toggle:F,update:d,clone:v,attach:g,detach:I,on:$,off:S,getOptions:C,getImages:Y,getZoomedImage:X};return U};function Rt(o,e){e===void 0&&(e={});var t=e.insertAt;if(!(typeof document>"u")){var n=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css",t==="top"&&n.firstChild?n.insertBefore(a,n.firstChild):n.appendChild(a),a.styleSheet?a.styleSheet.cssText=o:a.appendChild(document.createTextNode(o))}}var Wt=".medium-zoom-overlay{position:fixed;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .3s;will-change:opacity}.medium-zoom--opened .medium-zoom-overlay{cursor:pointer;cursor:zoom-out;opacity:1}.medium-zoom-image{cursor:pointer;cursor:zoom-in;transition:transform .3s cubic-bezier(.2,0,.2,1)!important}.medium-zoom-image--hidden{visibility:hidden}.medium-zoom-image--opened{position:relative;cursor:pointer;cursor:zoom-out;will-change:transform}";Rt(Wt);const Kt=_({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(o){return(e,t)=>(s(),c("span",{class:M(["VPBadge",e.type])},[l(e.$slots,"default",{},()=>[te(z(e.text),1)])],2))}}),Jt={key:0,class:"VPBackdrop"},Yt=_({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(o){return(e,t)=>(s(),k(Ae,{name:"fade"},{default:p(()=>[e.show?(s(),c("div",Jt)):h("",!0)]),_:1}))}}),Xt=y(Yt,[["__scopeId","data-v-54a304ca"]]),V=Vt;function Zt(o,e){let t,n=!1;return()=>{t&&clearTimeout(t),n?t=setTimeout(o,e):(o(),(n=!0)&&setTimeout(()=>n=!1,e))}}function ze(o){return/^\//.test(o)?o:`/${o}`}function De(o){const{pathname:e,search:t,hash:n,protocol:a}=new URL(o,"http://a.com");if(wt(o)||o.startsWith("#")||!a.startsWith("http")||!Tt(e))return o;const{site:r}=V(),u=e.endsWith("/")||e.endsWith(".html")?o:o.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${t}${n}`);return Be(u)}function me({correspondingLink:o=!1}={}){const{site:e,localeIndex:t,page:n,theme:a,hash:r}=V(),u=L(()=>{var v,g;return{label:(v=e.value.locales[t.value])==null?void 0:v.label,link:((g=e.value.locales[t.value])==null?void 0:g.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:L(()=>Object.entries(e.value.locales).flatMap(([v,g])=>u.value.label===g.label?[]:{text:g.label,link:Qt(g.link||(v==="root"?"/":`/${v}/`),a.value.i18nRouting!==!1&&o,n.value.relativePath.slice(u.value.link.length-1),!e.value.cleanUrls)+r.value})),currentLang:u}}function Qt(o,e,t,n){return e?o.replace(/\/$/,"")+ze(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,n?".html":"")):o}const xt=o=>(G("data-v-6ff51ddd"),o=o(),q(),o),eo={class:"NotFound"},to={class:"code"},oo={class:"title"},no=xt(()=>m("div",{class:"divider"},null,-1)),ao={class:"quote"},so={class:"action"},ro=["href","aria-label"],io=_({__name:"NotFound",setup(o){const{theme:e}=V(),{currentLang:t}=me();return(n,a)=>{var r,u,d,v,g;return s(),c("div",eo,[m("p",to,z(((r=i(e).notFound)==null?void 0:r.code)??"404"),1),m("h1",oo,z(((u=i(e).notFound)==null?void 0:u.title)??"PAGE NOT FOUND"),1),no,m("blockquote",ao,z(((d=i(e).notFound)==null?void 0:d.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),m("div",so,[m("a",{class:"link",href:i(Be)(i(t).link),"aria-label":((v=i(e).notFound)==null?void 0:v.linkLabel)??"go to home"},z(((g=i(e).notFound)==null?void 0:g.linkText)??"Take me home"),9,ro)])])}}}),lo=y(io,[["__scopeId","data-v-6ff51ddd"]]);function at(o,e){if(Array.isArray(o))return be(o);if(o==null)return[];e=ze(e);const t=Object.keys(o).sort((a,r)=>r.split("/").length-a.split("/").length).find(a=>e.startsWith(ze(a))),n=t?o[t]:[];return Array.isArray(n)?be(n):be(n.items,n.base)}function co(o){const e=[];let t=0;for(const n in o){const a=o[n];if(a.items){t=e.push(a);continue}e[t]||e.push({items:[]}),e[t].items.push(a)}return e}function uo(o){const e=[];function t(n){for(const a of n)a.text&&a.link&&e.push({text:a.text,link:a.link,docFooterText:a.docFooterText}),a.items&&t(a.items)}return t(o),e}function He(o,e){return Array.isArray(e)?e.some(t=>He(o,t)):le(o,e.link)?!0:e.items?He(o,e.items):!1}function be(o,e){return[...o].map(t=>{const n={...t},a=n.base||e;return a&&n.link&&(n.link=a+n.link),n.items&&(n.items=be(n.items,a)),n})}function ne(){const{frontmatter:o,page:e,theme:t}=V(),n=Ee("(min-width: 960px)"),a=H(!1),r=L(()=>{const F=t.value.sidebar,C=e.value.relativePath;return F?at(F,C):[]}),u=H(r.value);ee(r,(F,C)=>{JSON.stringify(F)!==JSON.stringify(C)&&(u.value=r.value)});const d=L(()=>o.value.sidebar!==!1&&u.value.length>0&&o.value.layout!=="home"),v=L(()=>g?o.value.aside==null?t.value.aside==="left":o.value.aside==="left":!1),g=L(()=>o.value.layout==="home"?!1:o.value.aside!=null?!!o.value.aside:t.value.aside!==!1),I=L(()=>d.value&&n.value),$=L(()=>d.value?co(u.value):[]);function S(){a.value=!0}function E(){a.value=!1}function N(){a.value?E():S()}return{isOpen:a,sidebar:u,sidebarGroups:$,hasSidebar:d,hasAside:g,leftAside:v,isSidebarEnabled:I,open:S,close:E,toggle:N}}function vo(o,e){let t;$e(()=>{t=o.value?document.activeElement:void 0}),oe(()=>{window.addEventListener("keyup",n)}),Oe(()=>{window.removeEventListener("keyup",n)});function n(a){a.key==="Escape"&&o.value&&(e(),t==null||t.focus())}}function po(o){const{page:e,hash:t}=V(),n=H(!1),a=L(()=>o.value.collapsed!=null),r=L(()=>!!o.value.link),u=H(!1),d=()=>{u.value=le(e.value.relativePath,o.value.link)};ee([e,o,t],d),oe(d);const v=L(()=>u.value?!0:o.value.items?He(e.value.relativePath,o.value.items):!1),g=L(()=>!!(o.value.items&&o.value.items.length));$e(()=>{n.value=!!(a.value&&o.value.collapsed)}),Fe(()=>{(u.value||v.value)&&(n.value=!1)});function I(){a.value&&(n.value=!n.value)}return{collapsed:n,collapsible:a,isLink:r,isActiveLink:u,hasActiveLink:v,hasChildren:g,toggle:I}}function mo(){const{hasSidebar:o}=ne(),e=Ee("(min-width: 960px)"),t=Ee("(min-width: 1280px)");return{isAsideEnabled:L(()=>!t.value&&!e.value?!1:o.value?t.value:e.value)}}const Me=[];function st(o){return typeof o.outline=="object"&&!Array.isArray(o.outline)&&o.outline.label||o.outlineTitle||"On this page"}function je(o){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const n=Number(t.tagName[1]);return{element:t,title:fo(t),link:"#"+t.id,level:n}});return ho(e,o)}function fo(o){let e="";for(const t of o.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function ho(o,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[n,a]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;o=o.filter(u=>u.level>=n&&u.level<=a),Me.length=0;for(const{element:u,link:d}of o)Me.push({element:u,link:d});const r=[];e:for(let u=0;u=0;v--){const g=o[v];if(g.level{requestAnimationFrame(r),window.addEventListener("scroll",n)}),It(()=>{u(location.hash)}),Oe(()=>{window.removeEventListener("scroll",n)});function r(){if(!t.value)return;const d=window.scrollY,v=window.innerHeight,g=document.body.offsetHeight,I=Math.abs(d+v-g)<1,$=Me.map(({element:E,link:N})=>({link:N,top:go(E)})).filter(({top:E})=>!Number.isNaN(E)).sort((E,N)=>E.top-N.top);if(!$.length){u(null);return}if(d<1){u(null);return}if(I){u($[$.length-1].link);return}let S=null;for(const{link:E,top:N}of $){if(N>d+Nt()+4)break;S=E}u(S)}function u(d){a&&a.classList.remove("active"),d==null?a=null:a=o.value.querySelector(`a[href="${decodeURIComponent(d)}"]`);const v=a;v?(v.classList.add("active"),e.value.style.top=v.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function go(o){let e=0;for(;o!==document.body;){if(o===null)return NaN;e+=o.offsetTop,o=o.offsetParent}return e}const bo=["href","title"],ko=_({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(o){function e({target:t}){const n=t.href.split("#")[1],a=document.getElementById(decodeURIComponent(n));a==null||a.focus({preventScroll:!0})}return(t,n)=>{const a=ce("VPDocOutlineItem",!0);return s(),c("ul",{class:M(["VPDocOutlineItem",t.root?"root":"nested"])},[(s(!0),c(B,null,R(t.headers,({children:r,link:u,title:d})=>(s(),c("li",null,[m("a",{class:"outline-link",href:u,onClick:e,title:d},z(d),9,bo),r!=null&&r.length?(s(),k(a,{key:0,headers:r},null,8,["headers"])):h("",!0)]))),256))],2)}}}),rt=y(ko,[["__scopeId","data-v-53c99d69"]]),$o={class:"content"},yo={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Lo=_({__name:"VPDocAsideOutline",setup(o){const{frontmatter:e,theme:t}=V(),n=Ze([]);ye(()=>{n.value=je(e.value.outline??t.value.outline)});const a=H(),r=H();return _o(a,r),(u,d)=>(s(),c("nav",{"aria-labelledby":"doc-outline-aria-label",class:M(["VPDocAsideOutline",{"has-outline":n.value.length>0}]),ref_key:"container",ref:a},[m("div",$o,[m("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),m("div",yo,z(i(st)(i(t))),1),b(rt,{headers:n.value,root:!0},null,8,["headers"])])],2))}}),Po=y(Lo,[["__scopeId","data-v-f610f197"]]),So={class:"VPDocAsideCarbonAds"},Vo=_({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(o){const e=()=>null;return(t,n)=>(s(),c("div",So,[b(i(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),wo=o=>(G("data-v-cb998dce"),o=o(),q(),o),To={class:"VPDocAside"},Io=wo(()=>m("div",{class:"spacer"},null,-1)),No=_({__name:"VPDocAside",setup(o){const{theme:e}=V();return(t,n)=>(s(),c("div",To,[l(t.$slots,"aside-top",{},void 0,!0),l(t.$slots,"aside-outline-before",{},void 0,!0),b(Po),l(t.$slots,"aside-outline-after",{},void 0,!0),Io,l(t.$slots,"aside-ads-before",{},void 0,!0),i(e).carbonAds?(s(),k(Vo,{key:0,"carbon-ads":i(e).carbonAds},null,8,["carbon-ads"])):h("",!0),l(t.$slots,"aside-ads-after",{},void 0,!0),l(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Eo=y(No,[["__scopeId","data-v-cb998dce"]]);function Co(){const{theme:o,page:e}=V();return L(()=>{const{text:t="Edit this page",pattern:n=""}=o.value.editLink||{};let a;return typeof n=="function"?a=n(e.value):a=n.replace(/:path/g,e.value.filePath),{url:a,text:t}})}function zo(){const{page:o,theme:e,frontmatter:t}=V();return L(()=>{var g,I,$,S,E,N,F,C;const n=at(e.value.sidebar,o.value.relativePath),a=uo(n),r=Ho(a,Y=>Y.link.replace(/[?#].*$/,"")),u=r.findIndex(Y=>le(o.value.relativePath,Y.link)),d=((g=e.value.docFooter)==null?void 0:g.prev)===!1&&!t.value.prev||t.value.prev===!1,v=((I=e.value.docFooter)==null?void 0:I.next)===!1&&!t.value.next||t.value.next===!1;return{prev:d?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??(($=r[u-1])==null?void 0:$.docFooterText)??((S=r[u-1])==null?void 0:S.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((E=r[u-1])==null?void 0:E.link)},next:v?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((N=r[u+1])==null?void 0:N.docFooterText)??((F=r[u+1])==null?void 0:F.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((C=r[u+1])==null?void 0:C.link)}}})}function Ho(o,e){const t=new Set;return o.filter(n=>{const a=e(n);return t.has(a)?!1:t.add(a)})}const x=_({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(o){const e=o,t=L(()=>e.tag??(e.href?"a":"span")),n=L(()=>e.href&&Qe.test(e.href)||e.target==="_blank");return(a,r)=>(s(),k(Q(t.value),{class:M(["VPLink",{link:a.href,"vp-external-link-icon":n.value,"no-icon":a.noIcon}]),href:a.href?i(De)(a.href):void 0,target:a.target??(n.value?"_blank":void 0),rel:a.rel??(n.value?"noreferrer":void 0)},{default:p(()=>[l(a.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Mo={class:"VPLastUpdated"},Ao=["datetime"],Bo=_({__name:"VPDocFooterLastUpdated",setup(o){const{theme:e,page:t,lang:n}=V(),a=L(()=>new Date(t.value.lastUpdated)),r=L(()=>a.value.toISOString()),u=H("");return oe(()=>{$e(()=>{var d,v,g;u.value=new Intl.DateTimeFormat((v=(d=e.value.lastUpdated)==null?void 0:d.formatOptions)!=null&&v.forceLocale?n.value:void 0,((g=e.value.lastUpdated)==null?void 0:g.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(a.value)})}),(d,v)=>{var g;return s(),c("p",Mo,[te(z(((g=i(e).lastUpdated)==null?void 0:g.text)||i(e).lastUpdatedText||"Last updated")+": ",1),m("time",{datetime:r.value},z(u.value),9,Ao)])}}}),Oo=y(Bo,[["__scopeId","data-v-1bb0c8a8"]]),it=o=>(G("data-v-1bcd8184"),o=o(),q(),o),Fo={key:0,class:"VPDocFooter"},Do={key:0,class:"edit-info"},jo={key:0,class:"edit-link"},Uo=it(()=>m("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),Go={key:1,class:"last-updated"},qo={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},Ro=it(()=>m("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),Wo={class:"pager"},Ko=["innerHTML"],Jo=["innerHTML"],Yo={class:"pager"},Xo=["innerHTML"],Zo=["innerHTML"],Qo=_({__name:"VPDocFooter",setup(o){const{theme:e,page:t,frontmatter:n}=V(),a=Co(),r=zo(),u=L(()=>e.value.editLink&&n.value.editLink!==!1),d=L(()=>t.value.lastUpdated),v=L(()=>u.value||d.value||r.value.prev||r.value.next);return(g,I)=>{var $,S,E,N;return v.value?(s(),c("footer",Fo,[l(g.$slots,"doc-footer-before",{},void 0,!0),u.value||d.value?(s(),c("div",Do,[u.value?(s(),c("div",jo,[b(x,{class:"edit-link-button",href:i(a).url,"no-icon":!0},{default:p(()=>[Uo,te(" "+z(i(a).text),1)]),_:1},8,["href"])])):h("",!0),d.value?(s(),c("div",Go,[b(Oo)])):h("",!0)])):h("",!0),($=i(r).prev)!=null&&$.link||(S=i(r).next)!=null&&S.link?(s(),c("nav",qo,[Ro,m("div",Wo,[(E=i(r).prev)!=null&&E.link?(s(),k(x,{key:0,class:"pager-link prev",href:i(r).prev.link},{default:p(()=>{var F;return[m("span",{class:"desc",innerHTML:((F=i(e).docFooter)==null?void 0:F.prev)||"Previous page"},null,8,Ko),m("span",{class:"title",innerHTML:i(r).prev.text},null,8,Jo)]}),_:1},8,["href"])):h("",!0)]),m("div",Yo,[(N=i(r).next)!=null&&N.link?(s(),k(x,{key:0,class:"pager-link next",href:i(r).next.link},{default:p(()=>{var F;return[m("span",{class:"desc",innerHTML:((F=i(e).docFooter)==null?void 0:F.next)||"Next page"},null,8,Xo),m("span",{class:"title",innerHTML:i(r).next.text},null,8,Zo)]}),_:1},8,["href"])):h("",!0)])])):h("",!0)])):h("",!0)}}}),xo=y(Qo,[["__scopeId","data-v-1bcd8184"]]),en=o=>(G("data-v-e6f2a212"),o=o(),q(),o),tn={class:"container"},on=en(()=>m("div",{class:"aside-curtain"},null,-1)),nn={class:"aside-container"},an={class:"aside-content"},sn={class:"content"},rn={class:"content-container"},ln={class:"main"},cn=_({__name:"VPDoc",setup(o){const{theme:e}=V(),t=pe(),{hasSidebar:n,hasAside:a,leftAside:r}=ne(),u=L(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(d,v)=>{const g=ce("Content");return s(),c("div",{class:M(["VPDoc",{"has-sidebar":i(n),"has-aside":i(a)}])},[l(d.$slots,"doc-top",{},void 0,!0),m("div",tn,[i(a)?(s(),c("div",{key:0,class:M(["aside",{"left-aside":i(r)}])},[on,m("div",nn,[m("div",an,[b(Eo,null,{"aside-top":p(()=>[l(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":p(()=>[l(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":p(()=>[l(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[l(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[l(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[l(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):h("",!0),m("div",sn,[m("div",rn,[l(d.$slots,"doc-before",{},void 0,!0),m("main",ln,[b(g,{class:M(["vp-doc",[u.value,i(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),b(xo,null,{"doc-footer-before":p(()=>[l(d.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),l(d.$slots,"doc-after",{},void 0,!0)])])]),l(d.$slots,"doc-bottom",{},void 0,!0)],2)}}}),un=y(cn,[["__scopeId","data-v-e6f2a212"]]),dn=_({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(o){const e=o,t=L(()=>e.href&&Qe.test(e.href)),n=L(()=>e.tag||e.href?"a":"button");return(a,r)=>(s(),k(Q(n.value),{class:M(["VPButton",[a.size,a.theme]]),href:a.href?i(De)(a.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:p(()=>[te(z(a.text),1)]),_:1},8,["class","href","target","rel"]))}}),vn=y(dn,[["__scopeId","data-v-c9cf0e3c"]]),pn=["src","alt"],mn=_({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(o){return(e,t)=>{const n=ce("VPImage",!0);return e.image?(s(),c(B,{key:0},[typeof e.image=="string"||"src"in e.image?(s(),c("img",re({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:i(Be)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,pn)):(s(),c(B,{key:1},[b(n,re({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),b(n,re({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):h("",!0)}}}),ke=y(mn,[["__scopeId","data-v-ab19afbb"]]),fn=o=>(G("data-v-b10c5094"),o=o(),q(),o),hn={class:"container"},_n={class:"main"},gn={key:0,class:"name"},bn=["innerHTML"],kn=["innerHTML"],$n=["innerHTML"],yn={key:0,class:"actions"},Ln={key:0,class:"image"},Pn={class:"image-container"},Sn=fn(()=>m("div",{class:"image-bg"},null,-1)),Vn=_({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(o){const e=Le("hero-image-slot-exists");return(t,n)=>(s(),c("div",{class:M(["VPHero",{"has-image":t.image||i(e)}])},[m("div",hn,[m("div",_n,[l(t.$slots,"home-hero-info-before",{},void 0,!0),l(t.$slots,"home-hero-info",{},()=>[t.name?(s(),c("h1",gn,[m("span",{innerHTML:t.name,class:"clip"},null,8,bn)])):h("",!0),t.text?(s(),c("p",{key:1,innerHTML:t.text,class:"text"},null,8,kn)):h("",!0),t.tagline?(s(),c("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,$n)):h("",!0)],!0),l(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(s(),c("div",yn,[(s(!0),c(B,null,R(t.actions,a=>(s(),c("div",{key:a.link,class:"action"},[b(vn,{tag:"a",size:"medium",theme:a.theme,text:a.text,href:a.link,target:a.target,rel:a.rel},null,8,["theme","text","href","target","rel"])]))),128))])):h("",!0),l(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||i(e)?(s(),c("div",Ln,[m("div",Pn,[Sn,l(t.$slots,"home-hero-image",{},()=>[t.image?(s(),k(ke,{key:0,class:"image-src",image:t.image},null,8,["image"])):h("",!0)],!0)])])):h("",!0)])],2))}}),wn=y(Vn,[["__scopeId","data-v-b10c5094"]]),Tn=_({__name:"VPHomeHero",setup(o){const{frontmatter:e}=V();return(t,n)=>i(e).hero?(s(),k(wn,{key:0,class:"VPHomeHero",name:i(e).hero.name,text:i(e).hero.text,tagline:i(e).hero.tagline,image:i(e).hero.image,actions:i(e).hero.actions},{"home-hero-info-before":p(()=>[l(t.$slots,"home-hero-info-before")]),"home-hero-info":p(()=>[l(t.$slots,"home-hero-info")]),"home-hero-info-after":p(()=>[l(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":p(()=>[l(t.$slots,"home-hero-actions-after")]),"home-hero-image":p(()=>[l(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):h("",!0)}}),In=o=>(G("data-v-bd37d1a2"),o=o(),q(),o),Nn={class:"box"},En={key:0,class:"icon"},Cn=["innerHTML"],zn=["innerHTML"],Hn=["innerHTML"],Mn={key:4,class:"link-text"},An={class:"link-text-value"},Bn=In(()=>m("span",{class:"vpi-arrow-right link-text-icon"},null,-1)),On=_({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(o){return(e,t)=>(s(),k(x,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:p(()=>[m("article",Nn,[typeof e.icon=="object"&&e.icon.wrap?(s(),c("div",En,[b(ke,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(s(),k(ke,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(s(),c("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Cn)):h("",!0),m("h2",{class:"title",innerHTML:e.title},null,8,zn),e.details?(s(),c("p",{key:3,class:"details",innerHTML:e.details},null,8,Hn)):h("",!0),e.linkText?(s(),c("div",Mn,[m("p",An,[te(z(e.linkText)+" ",1),Bn])])):h("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Fn=y(On,[["__scopeId","data-v-bd37d1a2"]]),Dn={key:0,class:"VPFeatures"},jn={class:"container"},Un={class:"items"},Gn=_({__name:"VPFeatures",props:{features:{}},setup(o){const e=o,t=L(()=>{const n=e.features.length;if(n){if(n===2)return"grid-2";if(n===3)return"grid-3";if(n%3===0)return"grid-6";if(n>3)return"grid-4"}else return});return(n,a)=>n.features?(s(),c("div",Dn,[m("div",jn,[m("div",Un,[(s(!0),c(B,null,R(n.features,r=>(s(),c("div",{key:r.title,class:M(["item",[t.value]])},[b(Fn,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText,rel:r.rel,target:r.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):h("",!0)}}),qn=y(Gn,[["__scopeId","data-v-b1eea84a"]]),Rn=_({__name:"VPHomeFeatures",setup(o){const{frontmatter:e}=V();return(t,n)=>i(e).features?(s(),k(qn,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):h("",!0)}}),Wn=_({__name:"VPHomeContent",setup(o){const{width:e}=Et({initialWidth:0,includeScrollbar:!1});return(t,n)=>(s(),c("div",{class:"vp-doc container",style:xe(i(e)?{"--vp-offset":`calc(50% - ${i(e)/2}px)`}:{})},[l(t.$slots,"default",{},void 0,!0)],4))}}),Kn=y(Wn,[["__scopeId","data-v-c141a4bd"]]),Jn={class:"VPHome"},Yn=_({__name:"VPHome",setup(o){const{frontmatter:e}=V();return(t,n)=>{const a=ce("Content");return s(),c("div",Jn,[l(t.$slots,"home-hero-before",{},void 0,!0),b(Tn,null,{"home-hero-info-before":p(()=>[l(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":p(()=>[l(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":p(()=>[l(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":p(()=>[l(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":p(()=>[l(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),l(t.$slots,"home-hero-after",{},void 0,!0),l(t.$slots,"home-features-before",{},void 0,!0),b(Rn),l(t.$slots,"home-features-after",{},void 0,!0),i(e).markdownStyles!==!1?(s(),k(Kn,{key:0},{default:p(()=>[b(a)]),_:1})):(s(),k(a,{key:1}))])}}}),Xn=y(Yn,[["__scopeId","data-v-07b1ad08"]]),Zn={},Qn={class:"VPPage"};function xn(o,e){const t=ce("Content");return s(),c("div",Qn,[l(o.$slots,"page-top"),b(t),l(o.$slots,"page-bottom")])}const ea=y(Zn,[["render",xn]]),ta=_({__name:"VPContent",setup(o){const{page:e,frontmatter:t}=V(),{hasSidebar:n}=ne();return(a,r)=>(s(),c("div",{class:M(["VPContent",{"has-sidebar":i(n),"is-home":i(t).layout==="home"}]),id:"VPContent"},[i(e).isNotFound?l(a.$slots,"not-found",{key:0},()=>[b(lo)],!0):i(t).layout==="page"?(s(),k(ea,{key:1},{"page-top":p(()=>[l(a.$slots,"page-top",{},void 0,!0)]),"page-bottom":p(()=>[l(a.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(t).layout==="home"?(s(),k(Xn,{key:2},{"home-hero-before":p(()=>[l(a.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":p(()=>[l(a.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":p(()=>[l(a.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":p(()=>[l(a.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":p(()=>[l(a.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":p(()=>[l(a.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":p(()=>[l(a.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":p(()=>[l(a.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":p(()=>[l(a.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(t).layout&&i(t).layout!=="doc"?(s(),k(Q(i(t).layout),{key:3})):(s(),k(un,{key:4},{"doc-top":p(()=>[l(a.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":p(()=>[l(a.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":p(()=>[l(a.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":p(()=>[l(a.$slots,"doc-before",{},void 0,!0)]),"doc-after":p(()=>[l(a.$slots,"doc-after",{},void 0,!0)]),"aside-top":p(()=>[l(a.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":p(()=>[l(a.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[l(a.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[l(a.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[l(a.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":p(()=>[l(a.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),oa=y(ta,[["__scopeId","data-v-9a6c75ad"]]),na={class:"container"},aa=["innerHTML"],sa=["innerHTML"],ra=_({__name:"VPFooter",setup(o){const{theme:e,frontmatter:t}=V(),{hasSidebar:n}=ne();return(a,r)=>i(e).footer&&i(t).footer!==!1?(s(),c("footer",{key:0,class:M(["VPFooter",{"has-sidebar":i(n)}])},[m("div",na,[i(e).footer.message?(s(),c("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,aa)):h("",!0),i(e).footer.copyright?(s(),c("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,sa)):h("",!0)])],2)):h("",!0)}}),ia=y(ra,[["__scopeId","data-v-566314d4"]]);function la(){const{theme:o,frontmatter:e}=V(),t=Ze([]),n=L(()=>t.value.length>0);return ye(()=>{t.value=je(e.value.outline??o.value.outline)}),{headers:t,hasLocalNav:n}}const ca=o=>(G("data-v-883964e0"),o=o(),q(),o),ua={class:"menu-text"},da=ca(()=>m("span",{class:"vpi-chevron-right icon"},null,-1)),va={class:"header"},pa={class:"outline"},ma=_({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(o){const e=o,{theme:t}=V(),n=H(!1),a=H(0),r=H(),u=H();function d($){var S;(S=r.value)!=null&&S.contains($.target)||(n.value=!1)}ee(n,$=>{if($){document.addEventListener("click",d);return}document.removeEventListener("click",d)}),Ce("Escape",()=>{n.value=!1}),ye(()=>{n.value=!1});function v(){n.value=!n.value,a.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function g($){$.target.classList.contains("outline-link")&&(u.value&&(u.value.style.transition="none"),et(()=>{n.value=!1}))}function I(){n.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return($,S)=>(s(),c("div",{class:"VPLocalNavOutlineDropdown",style:xe({"--vp-vh":a.value+"px"}),ref_key:"main",ref:r},[$.headers.length>0?(s(),c("button",{key:0,onClick:v,class:M({open:n.value})},[m("span",ua,z(i(st)(i(t))),1),da],2)):(s(),c("button",{key:1,onClick:I},z(i(t).returnToTopLabel||"Return to top"),1)),b(Ae,{name:"flyout"},{default:p(()=>[n.value?(s(),c("div",{key:0,ref_key:"items",ref:u,class:"items",onClick:g},[m("div",va,[m("a",{class:"top-link",href:"#",onClick:I},z(i(t).returnToTopLabel||"Return to top"),1)]),m("div",pa,[b(rt,{headers:$.headers},null,8,["headers"])])],512)):h("",!0)]),_:1})],4))}}),fa=y(ma,[["__scopeId","data-v-883964e0"]]),ha=o=>(G("data-v-2488c25a"),o=o(),q(),o),_a={class:"container"},ga=["aria-expanded"],ba=ha(()=>m("span",{class:"vpi-align-left menu-icon"},null,-1)),ka={class:"menu-text"},$a=_({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(o){const{theme:e,frontmatter:t}=V(),{hasSidebar:n}=ne(),{headers:a}=la(),{y:r}=tt(),u=H(0);oe(()=>{u.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),ye(()=>{a.value=je(t.value.outline??e.value.outline)});const d=L(()=>a.value.length===0),v=L(()=>d.value&&!n.value),g=L(()=>({VPLocalNav:!0,"has-sidebar":n.value,empty:d.value,fixed:v.value}));return(I,$)=>i(t).layout!=="home"&&(!v.value||i(r)>=u.value)?(s(),c("div",{key:0,class:M(g.value)},[m("div",_a,[i(n)?(s(),c("button",{key:0,class:"menu","aria-expanded":I.open,"aria-controls":"VPSidebarNav",onClick:$[0]||($[0]=S=>I.$emit("open-menu"))},[ba,m("span",ka,z(i(e).sidebarMenuLabel||"Menu"),1)],8,ga)):h("",!0),b(fa,{headers:i(a),navHeight:u.value},null,8,["headers","navHeight"])])],2)):h("",!0)}}),ya=y($a,[["__scopeId","data-v-2488c25a"]]);function La(){const o=H(!1);function e(){o.value=!0,window.addEventListener("resize",a)}function t(){o.value=!1,window.removeEventListener("resize",a)}function n(){o.value?t():e()}function a(){window.outerWidth>=768&&t()}const r=pe();return ee(()=>r.path,t),{isScreenOpen:o,openScreen:e,closeScreen:t,toggleScreen:n}}const Pa={},Sa={class:"VPSwitch",type:"button",role:"switch"},Va={class:"check"},wa={key:0,class:"icon"};function Ta(o,e){return s(),c("button",Sa,[m("span",Va,[o.$slots.default?(s(),c("span",wa,[l(o.$slots,"default",{},void 0,!0)])):h("",!0)])])}const Ia=y(Pa,[["render",Ta],["__scopeId","data-v-b4ccac88"]]),lt=o=>(G("data-v-be9742d9"),o=o(),q(),o),Na=lt(()=>m("span",{class:"vpi-sun sun"},null,-1)),Ea=lt(()=>m("span",{class:"vpi-moon moon"},null,-1)),Ca=_({__name:"VPSwitchAppearance",setup(o){const{isDark:e,theme:t}=V(),n=Le("toggle-appearance",()=>{e.value=!e.value}),a=H("");return Fe(()=>{a.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(r,u)=>(s(),k(Ia,{title:a.value,class:"VPSwitchAppearance","aria-checked":i(e),onClick:i(n)},{default:p(()=>[Na,Ea]),_:1},8,["title","aria-checked","onClick"]))}}),Ue=y(Ca,[["__scopeId","data-v-be9742d9"]]),za={key:0,class:"VPNavBarAppearance"},Ha=_({__name:"VPNavBarAppearance",setup(o){const{site:e}=V();return(t,n)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(s(),c("div",za,[b(Ue)])):h("",!0)}}),Ma=y(Ha,[["__scopeId","data-v-3f90c1a5"]]),Ge=H();let ct=!1,Ne=0;function Aa(o){const e=H(!1);if(Pe){!ct&&Ba(),Ne++;const t=ee(Ge,n=>{var a,r,u;n===o.el.value||(a=o.el.value)!=null&&a.contains(n)?(e.value=!0,(r=o.onFocus)==null||r.call(o)):(e.value=!1,(u=o.onBlur)==null||u.call(o))});Oe(()=>{t(),Ne--,Ne||Oa()})}return Ct(e)}function Ba(){document.addEventListener("focusin",ut),ct=!0,Ge.value=document.activeElement}function Oa(){document.removeEventListener("focusin",ut)}function ut(){Ge.value=document.activeElement}const Fa={class:"VPMenuLink"},Da=_({__name:"VPMenuLink",props:{item:{}},setup(o){const{page:e}=V();return(t,n)=>(s(),c("div",Fa,[b(x,{class:M({active:i(le)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:p(()=>[te(z(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),Se=y(Da,[["__scopeId","data-v-f51f088d"]]),ja={class:"VPMenuGroup"},Ua={key:0,class:"title"},Ga=_({__name:"VPMenuGroup",props:{text:{},items:{}},setup(o){return(e,t)=>(s(),c("div",ja,[e.text?(s(),c("p",Ua,z(e.text),1)):h("",!0),(s(!0),c(B,null,R(e.items,n=>(s(),c(B,null,["link"in n?(s(),k(Se,{key:0,item:n},null,8,["item"])):h("",!0)],64))),256))]))}}),qa=y(Ga,[["__scopeId","data-v-a6b0397c"]]),Ra={class:"VPMenu"},Wa={key:0,class:"items"},Ka=_({__name:"VPMenu",props:{items:{}},setup(o){return(e,t)=>(s(),c("div",Ra,[e.items?(s(),c("div",Wa,[(s(!0),c(B,null,R(e.items,n=>(s(),c(B,{key:JSON.stringify(n)},["link"in n?(s(),k(Se,{key:0,item:n},null,8,["item"])):"component"in n?(s(),k(Q(n.component),re({key:1,ref_for:!0},n.props),null,16)):(s(),k(qa,{key:2,text:n.text,items:n.items},null,8,["text","items"]))],64))),128))])):h("",!0),l(e.$slots,"default",{},void 0,!0)]))}}),Ja=y(Ka,[["__scopeId","data-v-20ed86d6"]]),Ya=o=>(G("data-v-af5898d3"),o=o(),q(),o),Xa=["aria-expanded","aria-label"],Za={key:0,class:"text"},Qa=["innerHTML"],xa=Ya(()=>m("span",{class:"vpi-chevron-down text-icon"},null,-1)),es={key:1,class:"vpi-more-horizontal icon"},ts={class:"menu"},os=_({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(o){const e=H(!1),t=H();Aa({el:t,onBlur:n});function n(){e.value=!1}return(a,r)=>(s(),c("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=u=>e.value=!0),onMouseleave:r[2]||(r[2]=u=>e.value=!1)},[m("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":a.label,onClick:r[0]||(r[0]=u=>e.value=!e.value)},[a.button||a.icon?(s(),c("span",Za,[a.icon?(s(),c("span",{key:0,class:M([a.icon,"option-icon"])},null,2)):h("",!0),a.button?(s(),c("span",{key:1,innerHTML:a.button},null,8,Qa)):h("",!0),xa])):(s(),c("span",es))],8,Xa),m("div",ts,[b(Ja,{items:a.items},{default:p(()=>[l(a.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),qe=y(os,[["__scopeId","data-v-af5898d3"]]),ns=["href","aria-label","innerHTML"],as=_({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(o){const e=o,t=L(()=>typeof e.icon=="object"?e.icon.svg:``);return(n,a)=>(s(),c("a",{class:"VPSocialLink no-icon",href:n.link,"aria-label":n.ariaLabel??(typeof n.icon=="string"?n.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,ns))}}),ss=y(as,[["__scopeId","data-v-358b6670"]]),rs={class:"VPSocialLinks"},is=_({__name:"VPSocialLinks",props:{links:{}},setup(o){return(e,t)=>(s(),c("div",rs,[(s(!0),c(B,null,R(e.links,({link:n,icon:a,ariaLabel:r})=>(s(),k(ss,{key:n,icon:a,link:n,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),Re=y(is,[["__scopeId","data-v-e71e869c"]]),ls={key:0,class:"group translations"},cs={class:"trans-title"},us={key:1,class:"group"},ds={class:"item appearance"},vs={class:"label"},ps={class:"appearance-action"},ms={key:2,class:"group"},fs={class:"item social-links"},hs=_({__name:"VPNavBarExtra",setup(o){const{site:e,theme:t}=V(),{localeLinks:n,currentLang:a}=me({correspondingLink:!0}),r=L(()=>n.value.length&&a.value.label||e.value.appearance||t.value.socialLinks);return(u,d)=>r.value?(s(),k(qe,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:p(()=>[i(n).length&&i(a).label?(s(),c("div",ls,[m("p",cs,z(i(a).label),1),(s(!0),c(B,null,R(i(n),v=>(s(),k(Se,{key:v.link,item:v},null,8,["item"]))),128))])):h("",!0),i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(s(),c("div",us,[m("div",ds,[m("p",vs,z(i(t).darkModeSwitchLabel||"Appearance"),1),m("div",ps,[b(Ue)])])])):h("",!0),i(t).socialLinks?(s(),c("div",ms,[m("div",fs,[b(Re,{class:"social-links-list",links:i(t).socialLinks},null,8,["links"])])])):h("",!0)]),_:1})):h("",!0)}}),_s=y(hs,[["__scopeId","data-v-f953d92f"]]),gs=o=>(G("data-v-6bee1efd"),o=o(),q(),o),bs=["aria-expanded"],ks=gs(()=>m("span",{class:"container"},[m("span",{class:"top"}),m("span",{class:"middle"}),m("span",{class:"bottom"})],-1)),$s=[ks],ys=_({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(o){return(e,t)=>(s(),c("button",{type:"button",class:M(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=n=>e.$emit("click"))},$s,10,bs))}}),Ls=y(ys,[["__scopeId","data-v-6bee1efd"]]),Ps=["innerHTML"],Ss=_({__name:"VPNavBarMenuLink",props:{item:{}},setup(o){const{page:e}=V();return(t,n)=>(s(),k(x,{class:M({VPNavBarMenuLink:!0,active:i(le)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,noIcon:t.item.noIcon,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:p(()=>[m("span",{innerHTML:t.item.text},null,8,Ps)]),_:1},8,["class","href","noIcon","target","rel"]))}}),Vs=y(Ss,[["__scopeId","data-v-08fbf4b6"]]),ws=_({__name:"VPNavBarMenuGroup",props:{item:{}},setup(o){const e=o,{page:t}=V(),n=r=>"component"in r?!1:"link"in r?le(t.value.relativePath,r.link,!!e.item.activeMatch):r.items.some(n),a=L(()=>n(e.item));return(r,u)=>(s(),k(qe,{class:M({VPNavBarMenuGroup:!0,active:i(le)(i(t).relativePath,r.item.activeMatch,!!r.item.activeMatch)||a.value}),button:r.item.text,items:r.item.items},null,8,["class","button","items"]))}}),Ts=o=>(G("data-v-afb2845e"),o=o(),q(),o),Is={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Ns=Ts(()=>m("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),Es=_({__name:"VPNavBarMenu",setup(o){const{theme:e}=V();return(t,n)=>i(e).nav?(s(),c("nav",Is,[Ns,(s(!0),c(B,null,R(i(e).nav,a=>(s(),c(B,{key:JSON.stringify(a)},["link"in a?(s(),k(Vs,{key:0,item:a},null,8,["item"])):"component"in a?(s(),k(Q(a.component),re({key:1,ref_for:!0},a.props),null,16)):(s(),k(ws,{key:2,item:a},null,8,["item"]))],64))),128))])):h("",!0)}}),Cs=y(Es,[["__scopeId","data-v-afb2845e"]]);function zs(o){const{localeIndex:e,theme:t}=V();function n(a){var N,F,C;const r=a.split("."),u=(N=t.value.search)==null?void 0:N.options,d=u&&typeof u=="object",v=d&&((C=(F=u.locales)==null?void 0:F[e.value])==null?void 0:C.translations)||null,g=d&&u.translations||null;let I=v,$=g,S=o;const E=r.pop();for(const Y of r){let X=null;const D=S==null?void 0:S[Y];D&&(X=S=D);const ae=$==null?void 0:$[Y];ae&&(X=$=ae);const Z=I==null?void 0:I[Y];Z&&(X=I=Z),D||(S=X),ae||($=X),Z||(I=X)}return(I==null?void 0:I[E])??($==null?void 0:$[E])??(S==null?void 0:S[E])??""}return n}const Hs=["aria-label"],Ms={class:"DocSearch-Button-Container"},As=m("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1),Bs={class:"DocSearch-Button-Placeholder"},Os=m("span",{class:"DocSearch-Button-Keys"},[m("kbd",{class:"DocSearch-Button-Key"}),m("kbd",{class:"DocSearch-Button-Key"},"K")],-1),Xe=_({__name:"VPNavBarSearchButton",setup(o){const t=zs({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(n,a)=>(s(),c("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":i(t)("button.buttonAriaLabel")},[m("span",Ms,[As,m("span",Bs,z(i(t)("button.buttonText")),1)]),Os],8,Hs))}}),Fs={class:"VPNavBarSearch"},Ds={id:"local-search"},js={key:1,id:"docsearch"},Us=_({__name:"VPNavBarSearch",setup(o){const e=zt(()=>Ht(()=>import("./VPLocalSearchBox.D9Qw-TJI.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:n}=V(),a=H(!1),r=H(!1);oe(()=>{});function u(){a.value||(a.value=!0,setTimeout(d,16))}function d(){const $=new Event("keydown");$.key="k",$.metaKey=!0,window.dispatchEvent($),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||d()},16)}function v($){const S=$.target,E=S.tagName;return S.isContentEditable||E==="INPUT"||E==="SELECT"||E==="TEXTAREA"}const g=H(!1);Ce("k",$=>{($.ctrlKey||$.metaKey)&&($.preventDefault(),g.value=!0)}),Ce("/",$=>{v($)||($.preventDefault(),g.value=!0)});const I="local";return($,S)=>{var E;return s(),c("div",Fs,[i(I)==="local"?(s(),c(B,{key:0},[g.value?(s(),k(i(e),{key:0,onClose:S[0]||(S[0]=N=>g.value=!1)})):h("",!0),m("div",Ds,[b(Xe,{onClick:S[1]||(S[1]=N=>g.value=!0)})])],64)):i(I)==="algolia"?(s(),c(B,{key:1},[a.value?(s(),k(i(t),{key:0,algolia:((E=i(n).search)==null?void 0:E.options)??i(n).algolia,onVnodeBeforeMount:S[2]||(S[2]=N=>r.value=!0)},null,8,["algolia"])):h("",!0),r.value?h("",!0):(s(),c("div",js,[b(Xe,{onClick:u})]))],64)):h("",!0)])}}}),Gs=_({__name:"VPNavBarSocialLinks",setup(o){const{theme:e}=V();return(t,n)=>i(e).socialLinks?(s(),k(Re,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):h("",!0)}}),qs=y(Gs,[["__scopeId","data-v-ef6192dc"]]),Rs=["href","rel","target"],Ws={key:1},Ks={key:2},Js=_({__name:"VPNavBarTitle",setup(o){const{site:e,theme:t}=V(),{hasSidebar:n}=ne(),{currentLang:a}=me(),r=L(()=>{var v;return typeof t.value.logoLink=="string"?t.value.logoLink:(v=t.value.logoLink)==null?void 0:v.link}),u=L(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.rel}),d=L(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.target});return(v,g)=>(s(),c("div",{class:M(["VPNavBarTitle",{"has-sidebar":i(n)}])},[m("a",{class:"title",href:r.value??i(De)(i(a).link),rel:u.value,target:d.value},[l(v.$slots,"nav-bar-title-before",{},void 0,!0),i(t).logo?(s(),k(ke,{key:0,class:"logo",image:i(t).logo},null,8,["image"])):h("",!0),i(t).siteTitle?(s(),c("span",Ws,z(i(t).siteTitle),1)):i(t).siteTitle===void 0?(s(),c("span",Ks,z(i(e).title),1)):h("",!0),l(v.$slots,"nav-bar-title-after",{},void 0,!0)],8,Rs)],2))}}),Ys=y(Js,[["__scopeId","data-v-0ad69264"]]),Xs={class:"items"},Zs={class:"title"},Qs=_({__name:"VPNavBarTranslations",setup(o){const{theme:e}=V(),{localeLinks:t,currentLang:n}=me({correspondingLink:!0});return(a,r)=>i(t).length&&i(n).label?(s(),k(qe,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:i(e).langMenuLabel||"Change language"},{default:p(()=>[m("div",Xs,[m("p",Zs,z(i(n).label),1),(s(!0),c(B,null,R(i(t),u=>(s(),k(Se,{key:u.link,item:u},null,8,["item"]))),128))])]),_:1},8,["label"])):h("",!0)}}),xs=y(Qs,[["__scopeId","data-v-acee064b"]]),er=o=>(G("data-v-9fd4d1dd"),o=o(),q(),o),tr={class:"wrapper"},or={class:"container"},nr={class:"title"},ar={class:"content"},sr={class:"content-body"},rr=er(()=>m("div",{class:"divider"},[m("div",{class:"divider-line"})],-1)),ir=_({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(o){const e=o,{y:t}=tt(),{hasSidebar:n}=ne(),{frontmatter:a}=V(),r=H({});return Fe(()=>{r.value={"has-sidebar":n.value,home:a.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(u,d)=>(s(),c("div",{class:M(["VPNavBar",r.value])},[m("div",tr,[m("div",or,[m("div",nr,[b(Ys,null,{"nav-bar-title-before":p(()=>[l(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[l(u.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),m("div",ar,[m("div",sr,[l(u.$slots,"nav-bar-content-before",{},void 0,!0),b(Us,{class:"search"}),b(Cs,{class:"menu"}),b(xs,{class:"translations"}),b(Ma,{class:"appearance"}),b(qs,{class:"social-links"}),b(_s,{class:"extra"}),l(u.$slots,"nav-bar-content-after",{},void 0,!0),b(Ls,{class:"hamburger",active:u.isScreenOpen,onClick:d[0]||(d[0]=v=>u.$emit("toggle-screen"))},null,8,["active"])])])])]),rr],2))}}),lr=y(ir,[["__scopeId","data-v-9fd4d1dd"]]),cr={key:0,class:"VPNavScreenAppearance"},ur={class:"text"},dr=_({__name:"VPNavScreenAppearance",setup(o){const{site:e,theme:t}=V();return(n,a)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(s(),c("div",cr,[m("p",ur,z(i(t).darkModeSwitchLabel||"Appearance"),1),b(Ue)])):h("",!0)}}),vr=y(dr,[["__scopeId","data-v-a3e2920d"]]),pr=_({__name:"VPNavScreenMenuLink",props:{item:{}},setup(o){const e=Le("close-screen");return(t,n)=>(s(),k(x,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e),innerHTML:t.item.text},null,8,["href","target","rel","onClick","innerHTML"]))}}),mr=y(pr,[["__scopeId","data-v-1a934d60"]]),fr=_({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(o){const e=Le("close-screen");return(t,n)=>(s(),k(x,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e)},{default:p(()=>[te(z(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),dt=y(fr,[["__scopeId","data-v-aea78dd1"]]),hr={class:"VPNavScreenMenuGroupSection"},_r={key:0,class:"title"},gr=_({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(o){return(e,t)=>(s(),c("div",hr,[e.text?(s(),c("p",_r,z(e.text),1)):h("",!0),(s(!0),c(B,null,R(e.items,n=>(s(),k(dt,{key:n.text,item:n},null,8,["item"]))),128))]))}}),br=y(gr,[["__scopeId","data-v-f60dbfa7"]]),kr=o=>(G("data-v-341db479"),o=o(),q(),o),$r=["aria-controls","aria-expanded"],yr=["innerHTML"],Lr=kr(()=>m("span",{class:"vpi-plus button-icon"},null,-1)),Pr=["id"],Sr={key:0,class:"item"},Vr={key:1,class:"item"},wr={key:2,class:"group"},Tr=_({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(o){const e=o,t=H(!1),n=L(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function a(){t.value=!t.value}return(r,u)=>(s(),c("div",{class:M(["VPNavScreenMenuGroup",{open:t.value}])},[m("button",{class:"button","aria-controls":n.value,"aria-expanded":t.value,onClick:a},[m("span",{class:"button-text",innerHTML:r.text},null,8,yr),Lr],8,$r),m("div",{id:n.value,class:"items"},[(s(!0),c(B,null,R(r.items,d=>(s(),c(B,{key:JSON.stringify(d)},["link"in d?(s(),c("div",Sr,[b(dt,{item:d},null,8,["item"])])):"component"in d?(s(),c("div",Vr,[(s(),k(Q(d.component),re({ref_for:!0},d.props,{"screen-menu":""}),null,16))])):(s(),c("div",wr,[b(br,{items:d.items},null,8,["items"])]))],64))),128))],8,Pr)],2))}}),Ir=y(Tr,[["__scopeId","data-v-341db479"]]),Nr={key:0,class:"VPNavScreenMenu"},Er=_({__name:"VPNavScreenMenu",setup(o){const{theme:e}=V();return(t,n)=>i(e).nav?(s(),c("nav",Nr,[(s(!0),c(B,null,R(i(e).nav,a=>(s(),c(B,{key:JSON.stringify(a)},["link"in a?(s(),k(mr,{key:0,item:a},null,8,["item"])):"component"in a?(s(),k(Q(a.component),re({key:1,ref_for:!0},a.props,{"screen-menu":""}),null,16)):(s(),k(Ir,{key:2,text:a.text||"",items:a.items},null,8,["text","items"]))],64))),128))])):h("",!0)}}),Cr=_({__name:"VPNavScreenSocialLinks",setup(o){const{theme:e}=V();return(t,n)=>i(e).socialLinks?(s(),k(Re,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):h("",!0)}}),vt=o=>(G("data-v-516e4bc3"),o=o(),q(),o),zr=vt(()=>m("span",{class:"vpi-languages icon lang"},null,-1)),Hr=vt(()=>m("span",{class:"vpi-chevron-down icon chevron"},null,-1)),Mr={class:"list"},Ar=_({__name:"VPNavScreenTranslations",setup(o){const{localeLinks:e,currentLang:t}=me({correspondingLink:!0}),n=H(!1);function a(){n.value=!n.value}return(r,u)=>i(e).length&&i(t).label?(s(),c("div",{key:0,class:M(["VPNavScreenTranslations",{open:n.value}])},[m("button",{class:"title",onClick:a},[zr,te(" "+z(i(t).label)+" ",1),Hr]),m("ul",Mr,[(s(!0),c(B,null,R(i(e),d=>(s(),c("li",{key:d.link,class:"item"},[b(x,{class:"link",href:d.link},{default:p(()=>[te(z(d.text),1)]),_:2},1032,["href"])]))),128))])],2)):h("",!0)}}),Br=y(Ar,[["__scopeId","data-v-516e4bc3"]]),Or={class:"container"},Fr=_({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(o){const e=H(null),t=ot(Pe?document.body:null);return(n,a)=>(s(),k(Ae,{name:"fade",onEnter:a[0]||(a[0]=r=>t.value=!0),onAfterLeave:a[1]||(a[1]=r=>t.value=!1)},{default:p(()=>[n.open?(s(),c("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[m("div",Or,[l(n.$slots,"nav-screen-content-before",{},void 0,!0),b(Er,{class:"menu"}),b(Br,{class:"translations"}),b(vr,{class:"appearance"}),b(Cr,{class:"social-links"}),l(n.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):h("",!0)]),_:3}))}}),Dr=y(Fr,[["__scopeId","data-v-2dd6d0c7"]]),jr={key:0,class:"VPNav"},Ur=_({__name:"VPNav",setup(o){const{isScreenOpen:e,closeScreen:t,toggleScreen:n}=La(),{frontmatter:a}=V(),r=L(()=>a.value.navbar!==!1);return nt("close-screen",t),$e(()=>{Pe&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(u,d)=>r.value?(s(),c("header",jr,[b(lr,{"is-screen-open":i(e),onToggleScreen:i(n)},{"nav-bar-title-before":p(()=>[l(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[l(u.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":p(()=>[l(u.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":p(()=>[l(u.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),b(Dr,{open:i(e)},{"nav-screen-content-before":p(()=>[l(u.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":p(()=>[l(u.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):h("",!0)}}),Gr=y(Ur,[["__scopeId","data-v-7ad780c2"]]),pt=o=>(G("data-v-edd2eed8"),o=o(),q(),o),qr=["role","tabindex"],Rr=pt(()=>m("div",{class:"indicator"},null,-1)),Wr=pt(()=>m("span",{class:"vpi-chevron-right caret-icon"},null,-1)),Kr=[Wr],Jr={key:1,class:"items"},Yr=_({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(o){const e=o,{collapsed:t,collapsible:n,isLink:a,isActiveLink:r,hasActiveLink:u,hasChildren:d,toggle:v}=po(L(()=>e.item)),g=L(()=>d.value?"section":"div"),I=L(()=>a.value?"a":"div"),$=L(()=>d.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),S=L(()=>a.value?void 0:"button"),E=L(()=>[[`level-${e.depth}`],{collapsible:n.value},{collapsed:t.value},{"is-link":a.value},{"is-active":r.value},{"has-active":u.value}]);function N(C){"key"in C&&C.key!=="Enter"||!e.item.link&&v()}function F(){e.item.link&&v()}return(C,Y)=>{const X=ce("VPSidebarItem",!0);return s(),k(Q(g.value),{class:M(["VPSidebarItem",E.value])},{default:p(()=>[C.item.text?(s(),c("div",re({key:0,class:"item",role:S.value},Mt(C.item.items?{click:N,keydown:N}:{},!0),{tabindex:C.item.items&&0}),[Rr,C.item.link?(s(),k(x,{key:0,tag:I.value,class:"link",href:C.item.link,rel:C.item.rel,target:C.item.target},{default:p(()=>[(s(),k(Q($.value),{class:"text",innerHTML:C.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(s(),k(Q($.value),{key:1,class:"text",innerHTML:C.item.text},null,8,["innerHTML"])),C.item.collapsed!=null&&C.item.items&&C.item.items.length?(s(),c("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:F,onKeydown:At(F,["enter"]),tabindex:"0"},Kr,32)):h("",!0)],16,qr)):h("",!0),C.item.items&&C.item.items.length?(s(),c("div",Jr,[C.depth<5?(s(!0),c(B,{key:0},R(C.item.items,D=>(s(),k(X,{key:D.text,item:D,depth:C.depth+1},null,8,["item","depth"]))),128)):h("",!0)])):h("",!0)]),_:1},8,["class"])}}}),Xr=y(Yr,[["__scopeId","data-v-edd2eed8"]]),Zr=_({__name:"VPSidebarGroup",props:{items:{}},setup(o){const e=H(!0);let t=null;return oe(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),Bt(()=>{t!=null&&(clearTimeout(t),t=null)}),(n,a)=>(s(!0),c(B,null,R(n.items,r=>(s(),c("div",{key:r.text,class:M(["group",{"no-transition":e.value}])},[b(Xr,{item:r,depth:0},null,8,["item"])],2))),128))}}),Qr=y(Zr,[["__scopeId","data-v-51288d80"]]),mt=o=>(G("data-v-42c4c606"),o=o(),q(),o),xr=mt(()=>m("div",{class:"curtain"},null,-1)),ei={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},ti=mt(()=>m("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),oi=_({__name:"VPSidebar",props:{open:{type:Boolean}},setup(o){const{sidebarGroups:e,hasSidebar:t}=ne(),n=o,a=H(null),r=ot(Pe?document.body:null);ee([n,a],()=>{var d;n.open?(r.value=!0,(d=a.value)==null||d.focus()):r.value=!1},{immediate:!0,flush:"post"});const u=H(0);return ee(e,()=>{u.value+=1},{deep:!0}),(d,v)=>i(t)?(s(),c("aside",{key:0,class:M(["VPSidebar",{open:d.open}]),ref_key:"navEl",ref:a,onClick:v[0]||(v[0]=Ot(()=>{},["stop"]))},[xr,m("nav",ei,[ti,l(d.$slots,"sidebar-nav-before",{},void 0,!0),(s(),k(Qr,{items:i(e),key:u.value},null,8,["items"])),l(d.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):h("",!0)}}),ni=y(oi,[["__scopeId","data-v-42c4c606"]]),ai=_({__name:"VPSkipLink",setup(o){const e=pe(),t=H();ee(()=>e.path,()=>t.value.focus());function n({target:a}){const r=document.getElementById(decodeURIComponent(a.hash).slice(1));if(r){const u=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",u)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",u),r.focus(),window.scrollTo(0,0)}}return(a,r)=>(s(),c(B,null,[m("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),m("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:n}," Skip to content ")],64))}}),si=y(ai,[["__scopeId","data-v-c8291ffa"]]),ri=_({__name:"Layout",setup(o){const{isOpen:e,open:t,close:n}=ne(),a=pe();ee(()=>a.path,n),vo(e,n);const{frontmatter:r}=V(),u=Ft(),d=L(()=>!!u["home-hero-image"]);return nt("hero-image-slot-exists",d),(v,g)=>{const I=ce("Content");return i(r).layout!==!1?(s(),c("div",{key:0,class:M(["Layout",i(r).pageClass])},[l(v.$slots,"layout-top",{},void 0,!0),b(si),b(Xt,{class:"backdrop",show:i(e),onClick:i(n)},null,8,["show","onClick"]),b(Gr,null,{"nav-bar-title-before":p(()=>[l(v.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[l(v.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":p(()=>[l(v.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":p(()=>[l(v.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":p(()=>[l(v.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":p(()=>[l(v.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),b(ya,{open:i(e),onOpenMenu:i(t)},null,8,["open","onOpenMenu"]),b(ni,{open:i(e)},{"sidebar-nav-before":p(()=>[l(v.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":p(()=>[l(v.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),b(oa,null,{"page-top":p(()=>[l(v.$slots,"page-top",{},void 0,!0)]),"page-bottom":p(()=>[l(v.$slots,"page-bottom",{},void 0,!0)]),"not-found":p(()=>[l(v.$slots,"not-found",{},void 0,!0)]),"home-hero-before":p(()=>[l(v.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":p(()=>[l(v.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":p(()=>[l(v.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":p(()=>[l(v.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":p(()=>[l(v.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":p(()=>[l(v.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":p(()=>[l(v.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":p(()=>[l(v.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":p(()=>[l(v.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":p(()=>[l(v.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":p(()=>[l(v.$slots,"doc-before",{},void 0,!0)]),"doc-after":p(()=>[l(v.$slots,"doc-after",{},void 0,!0)]),"doc-top":p(()=>[l(v.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":p(()=>[l(v.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":p(()=>[l(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":p(()=>[l(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":p(()=>[l(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[l(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[l(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[l(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),b(ia),l(v.$slots,"layout-bottom",{},void 0,!0)],2)):(s(),k(I,{key:1}))}}}),ii=y(ri,[["__scopeId","data-v-d8b57b2d"]]),li={Layout:ii,enhanceApp:({app:o})=>{o.component("Badge",Kt)}},ci={class:"ad"},ui=["src","onClick"],di={__name:"layout",setup(o){const{Layout:e}=li,t=Dt({list:[],toLink(n){n.link?window.open(n.link):window.open(`https://cool-js.com/ad/${n.id}`)},get(){fetch("https://service.cool-js.com/api/app/info/ad/list",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({channel:1})}).then(n=>n.json()).then(n=>{this.list=n.data})}});return oe(()=>{t.get()}),(n,a)=>(s(),k(i(e),null,{"sidebar-nav-before":p(()=>[m("div",ci,[(s(!0),c(B,null,R(t.list,r=>(s(),c("img",{key:r,src:r.pic,onClick:u=>t.toLink(r)},null,8,ui))),128))])]),_:1}))}},vi=y(di,[["__scopeId","data-v-96d1ba1f"]]),mi={Layout:vi,setup(){const o=pe(),e=()=>{new qt("[data-zoomable]",{background:"var(--vp-c-bg)"})};oe(()=>{e()}),ee(()=>o.path,()=>et(()=>e()))}};export{mi as R,zs as c,V as u}; diff --git a/.vitepress/dist/assets/src_guide_upload.md.C69cA7kh.js b/.vitepress/dist/assets/src_guide_upload.md.C8Kt16Xe.js similarity index 99% rename from .vitepress/dist/assets/src_guide_upload.md.C69cA7kh.js rename to .vitepress/dist/assets/src_guide_upload.md.C8Kt16Xe.js index 1265027..f649789 100644 --- a/.vitepress/dist/assets/src_guide_upload.md.C69cA7kh.js +++ b/.vitepress/dist/assets/src_guide_upload.md.C8Kt16Xe.js @@ -1,4 +1,4 @@ -import{_ as s,c as i,o as a,a5 as n}from"./chunks/framework.C_oE5szm.js";const o=JSON.parse('{"title":"文件上传","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/upload.md","filePath":"src/guide/upload.md","lastUpdated":1721036629000}'),l={name:"src/guide/upload.md"},h=n(`

文件上传 ​

框架自带两种文件上传方式本地上传与云存储,与前端紧密结合,

前端会根据后端返回的上传模式进行本地上传或者云存储签名直传(不经过服务器,直接上传到对应的云存储)

  • 本地上传
  • 云存储,如阿里云、腾讯云、七牛云等

TIP

安装云存储插件,如 Oss,系统的文件上传就会自动替换成云存储上传的方式,云存储上传服务端值提供签名供前端直传到对应的云存储

使用 ​

application.yml

yaml
spring:
+import{_ as s,c as i,o as a,a5 as n}from"./chunks/framework.C_oE5szm.js";const o=JSON.parse('{"title":"文件上传","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/upload.md","filePath":"src/guide/upload.md","lastUpdated":1738945691000}'),l={name:"src/guide/upload.md"},h=n(`

文件上传 ​

框架自带两种文件上传方式本地上传与云存储,与前端紧密结合,

前端会根据后端返回的上传模式进行本地上传或者云存储签名直传(不经过服务器,直接上传到对应的云存储)

  • 本地上传
  • 云存储,如阿里云、腾讯云、七牛云等

TIP

安装云存储插件,如 Oss,系统的文件上传就会自动替换成云存储上传的方式,云存储上传服务端值提供签名供前端直传到对应的云存储

使用 ​

application.yml

yaml
spring:
   # Web设置
   web:
     resources:
diff --git a/.vitepress/dist/assets/src_guide_upload.md.C69cA7kh.lean.js b/.vitepress/dist/assets/src_guide_upload.md.C8Kt16Xe.lean.js
similarity index 70%
rename from .vitepress/dist/assets/src_guide_upload.md.C69cA7kh.lean.js
rename to .vitepress/dist/assets/src_guide_upload.md.C8Kt16Xe.lean.js
index ef1cb80..d06a7e3 100644
--- a/.vitepress/dist/assets/src_guide_upload.md.C69cA7kh.lean.js
+++ b/.vitepress/dist/assets/src_guide_upload.md.C8Kt16Xe.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a5 as n}from"./chunks/framework.C_oE5szm.js";const o=JSON.parse('{"title":"文件上传","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/upload.md","filePath":"src/guide/upload.md","lastUpdated":1721036629000}'),l={name:"src/guide/upload.md"},h=n("",11),p=[h];function k(t,e,E,r,d,g){return a(),i("div",null,p)}const c=s(l,[["render",k]]);export{o as __pageData,c as default};
+import{_ as s,c as i,o as a,a5 as n}from"./chunks/framework.C_oE5szm.js";const o=JSON.parse('{"title":"文件上传","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/upload.md","filePath":"src/guide/upload.md","lastUpdated":1738945691000}'),l={name:"src/guide/upload.md"},h=n("",11),p=[h];function k(t,e,E,r,d,g){return a(),i("div",null,p)}const c=s(l,[["render",k]]);export{o as __pageData,c as default};
diff --git a/.vitepress/dist/hashmap.json b/.vitepress/dist/hashmap.json
index d423aab..7a88d7b 100644
--- a/.vitepress/dist/hashmap.json
+++ b/.vitepress/dist/hashmap.json
@@ -1 +1 @@
-{"index.md":"IDM-wWfu","readme.md":"21sdoxr8","src_about_index.md":"u0DlwXFy","src_guide_ai.md":"BONNk2Tk","src_guide_cache.md":"CFAfegzm","src_guide_controller.md":"C9KN7blr","src_guide_db.md":"Duwyo5Xx","src_guide_deploy.md":"D3Yfqu-Q","src_guide_dev.md":"Dkd1jFPN","src_guide_dir.md":"RpZMF5oN","src_guide_exception.md":"B8TYnOY4","src_guide_flow.md":"B5L__6Os","src_guide_initdata.md":"BVn22GWI","src_guide_lock.md":"BScXVYUy","src_guide_norepeatsubmit.md":"BwVs_CPb","src_guide_plugin.md":"CkiuwUnt","src_guide_quick.md":"Bto1F7au","src_guide_recordlog.md":"Dmgx8D5v","src_guide_security.md":"Bhaqqgdj","src_guide_service.md":"DFVHuVBZ","src_guide_swagger.md":"Cb0cwFc8","src_guide_uniqueidgen.md":"DI58Wsdy","src_guide_upload.md":"C69cA7kh","src_introduce_index.md":"DA1PheMx","src_introduce_show.md":"D0p_OwAi","src_introduce_src.md":"Cg4D7UK8","src_question_common.md":"DOoSuwHd","src_todo_plan.md":"OECDxoZt","src_todo_update.md":"Da9LYgSk"}
+{"index.md":"IDM-wWfu","readme.md":"21sdoxr8","src_about_index.md":"u0DlwXFy","src_guide_ai.md":"BONNk2Tk","src_guide_cache.md":"CFAfegzm","src_guide_controller.md":"C9KN7blr","src_guide_db.md":"Duwyo5Xx","src_guide_deploy.md":"D3Yfqu-Q","src_guide_dev.md":"Dkd1jFPN","src_guide_dir.md":"RpZMF5oN","src_guide_exception.md":"B8TYnOY4","src_guide_flow.md":"B5L__6Os","src_guide_initdata.md":"BVn22GWI","src_guide_lock.md":"BScXVYUy","src_guide_norepeatsubmit.md":"BwVs_CPb","src_guide_plugin.md":"CkiuwUnt","src_guide_quick.md":"Bto1F7au","src_guide_recordlog.md":"Dmgx8D5v","src_guide_security.md":"Bhaqqgdj","src_guide_service.md":"DFVHuVBZ","src_guide_swagger.md":"Cb0cwFc8","src_guide_uniqueidgen.md":"DI58Wsdy","src_guide_upload.md":"C8Kt16Xe","src_introduce_index.md":"DA1PheMx","src_introduce_show.md":"D0p_OwAi","src_introduce_src.md":"Cg4D7UK8","src_question_common.md":"DOoSuwHd","src_todo_plan.md":"OECDxoZt","src_todo_update.md":"Da9LYgSk"}
diff --git a/.vitepress/dist/index.html b/.vitepress/dist/index.html
index 4973845..42510d3 100644
--- a/.vitepress/dist/index.html
+++ b/.vitepress/dist/index.html
@@ -8,17 +8,17 @@
     
     
     
-    
+    
     
     
-    
+    
     
     
     
   
   
     
Skip to content

Cool Admin(Java版)

一个很酷的后台管理系统开发框架

开源免费、Ai编码、流程编排、扩展插件、模块化

cool-admin
- + \ No newline at end of file diff --git a/.vitepress/dist/src/about/index.html b/.vitepress/dist/src/about/index.html index c0d979f..77fedf0 100644 --- a/.vitepress/dist/src/about/index.html +++ b/.vitepress/dist/src/about/index.html @@ -8,17 +8,17 @@ - + - +
Skip to content

交流合作 ​

如果我们的项目对你有用,欢迎加入我们大家庭一起讨论,共创一些美好的事情。

微信 ​

扫一扫加入微信开发交流群

抖音 ​

主要是做一些技术教程、技术分享、框架更新、插件分享等内容。你可以在这边了解到一些关于我们框架的最新动态,还可以了解到一些前沿的技术,特别是跟 Ai 相关的,有兴趣的可以关注我们。

B 站 ​

COOL 团队哔哩哔哩官方账户

公众号 ​

COOL 的一些最新资讯、技术分享、框架更新、插件分享等

- + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/ai.html b/.vitepress/dist/src/guide/ai.html index b11eb4d..f9ae2df 100644 --- a/.vitepress/dist/src/guide/ai.html +++ b/.vitepress/dist/src/guide/ai.html @@ -8,17 +8,17 @@ - + - + - + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/cache.html b/.vitepress/dist/src/guide/cache.html index 0965719..adc0da0 100644 --- a/.vitepress/dist/src/guide/cache.html +++ b/.vitepress/dist/src/guide/cache.html @@ -8,10 +8,10 @@ - + - + @@ -66,7 +66,7 @@ return JSONUtil.parseObj(result).get("result"); }); }
- + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/controller.html b/.vitepress/dist/src/guide/controller.html index a4536fb..871d781 100644 --- a/.vitepress/dist/src/guide/controller.html +++ b/.vitepress/dist/src/guide/controller.html @@ -8,10 +8,10 @@ - + - + @@ -137,7 +137,7 @@ return info; } } - + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/db.html b/.vitepress/dist/src/guide/db.html index a6966a1..c967045 100644 --- a/.vitepress/dist/src/guide/db.html +++ b/.vitepress/dist/src/guide/db.html @@ -8,17 +8,17 @@ - + - +
Skip to content

数据库 ​

Cool Admin 集成了比 Mybatis-Plus 更加强大的,Mybatis-Flex,详细用法请查看 Mybatis-Flex 官网文档

主要特点;

  • 更轻量:除了 MyBatis 本身,再无任何第三方依赖,因此会带来更高的自主性、把控性和稳定性。在任何一个系统中,依赖越多,稳定性越差。

  • 更灵活:提供了非常灵活的 QueryWrapper,支持关联查询、多表查询、多主键、逻辑删除、乐观锁更新、数据填充、数据脱敏等等。

  • 高性能:通过独特的架构,没有任何 MyBatis 拦截器、在 SQL 执行的过程中,没有任何的 SQL Parse,因此会带来指数级的性能增长。

功能对比 ​

功能或特点MyBatis-FlexMyBatis-PlusFluent-MyBatis
对 entity 的基本增删改查✅✅✅
分页查询✅✅✅
分页查询之总量缓存✅✅❌
分页查询无 SQL 解析设计(更轻量,及更高性能)✅❌✅
多表查询: from 多张表✅❌❌
多表查询: left join、inner join 等等✅❌✅
多表查询: union,union all✅❌✅
单主键配置✅✅✅
多种 id 生成策略✅✅✅
支持多主键、复合主键✅❌❌
字段的 typeHandler 配置✅✅✅
除了 MyBatis,无其他第三方依赖(更轻量)✅❌❌
QueryWrapper 是否支持在微服务项目下进行 RPC 传输✅❌未知
逻辑删除✅✅✅
乐观锁✅✅✅
SQL 审计✅❌❌
数据填充✅✅✅
数据脱敏✅✔️ (收费)❌
字段权限✅✔️ (收费)❌
字段加密✅✔️ (收费)❌
字典回写✅✔️ (收费)❌
Db + Row✅❌❌
Entity 监听✅❌❌
多数据源支持✅借助其他框架或收费❌
多数据源是否支持 Spring 的事务管理,比如 @Transactional 和 TransactionTemplate 等✅❌❌
多数据源是否支持 "非 Spring" 项目✅❌❌
多租户✅✅❌
动态表名✅✅❌
动态 Schema✅❌❌

注意

以上内容来自第三方相关产品的官方文档或第三方平台,若有错误,欢迎纠正。

支持数据库 ​

MyBatis-Flex 支持的数据库类型,如下表格所示,我们还可以通过自定义方言的方式,持续添加更多的数据库支持。

数据库描述
mysqlMySQL 数据库
mariadbMariaDB 数据库
oracleOracle11g 及以下数据库
oracle12cOracle12c 及以上数据库
db2DB2 数据库
H2H2 数据库
hsqlHSQL 数据库
sqliteSQLite 数据库
postgresqlPostgreSQL 数据库
sqlserver2005SQLServer2005 数据库
sqlserverSQLServer 数据库
dm达梦数据库
xugu虚谷数据库
kingbasees人大金仓数据库
phoenixPhoenix HBase 数据库
gaussGauss 数据库
clickhouseClickHouse 数据库
gbase南大通用(华库)数据库
gbase-8s南大通用数据库 GBase 8s
oscar神通数据库
sybaseSybase ASE 数据库
OceanBaseOceanBase 数据库
FirebirdFirebird 数据库
derbyDerby 数据库
highgo瀚高数据库
cubridCUBRID 数据库
goldilocksGOLDILOCKS 数据库
csiidbCSIIDB 数据库
hanaSAP_HANA 数据库
impalaImpala 数据库
verticaVertica 数据库
xcloud行云数据库
redshift亚马逊 redshift 数据库
openGauss华为 openGauss 数据库
TDengineTDengine 数据库
informixInformix 数据库
greenplumGreenplum 数据库
uxdb优炫数据库
DorisDoris 数据库
Hive SQLHive 数据库
lealoneLealone 数据库
sinodb星瑞格数据库

注意

虽然 Mybatis-flex 支持很多数据库,但是 Cool Admin 是具体的业务框架,无法做到全部支持,那样工作量太大了。但是它为我们提供了改造的可能,理论上你只需修改一些不兼容的代码就可以正常运行了。

除了 Mysql,我们正在适配:PostgreSQL、Sqlite

自动建表 ​

根据 Java 实体,自动映射成数据库的表结构。

用过 JPA 的都知道,JPA 有一项重要的能力就是表结构自动维护,这让我们可以可以专注于业务逻辑和实体,而不需要关心数据库的表、列的配置,尤其是开发过程中频繁的新增表及变更表结构,节省了大量手动工作。

框架集成了Auto Table,可以自动创建表,并且支持表字段的修改。

注意

切勿在生产环境开启自动建表功能,因为这可能会造成数据丢失。

- + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/deploy.html b/.vitepress/dist/src/guide/deploy.html index 2f1cc84..f370acb 100644 --- a/.vitepress/dist/src/guide/deploy.html +++ b/.vitepress/dist/src/guide/deploy.html @@ -8,10 +8,10 @@ - + - + @@ -110,7 +110,7 @@ // 运行后端 docker run --network cool -p 80:80 --name vue cool-admin-vue:1.0

注意事项 ​

docker 部署,建议将缓存换成 redis,文件上传换成云存储,如:oss,防止操作不当导致的数据丢失。

- + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/dev.html b/.vitepress/dist/src/guide/dev.html index 2d26280..93b8967 100644 --- a/.vitepress/dist/src/guide/dev.html +++ b/.vitepress/dist/src/guide/dev.html @@ -8,10 +8,10 @@ - + - + @@ -33,7 +33,7 @@ codeGenerator.service(codeModel); } }
  • 自动生成前端页面,通过管理后台菜单管理的快速创建即可生成

Ui 组件会根据字段智能选择

- + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/dir.html b/.vitepress/dist/src/guide/dir.html index c7944bb..4394c42 100644 --- a/.vitepress/dist/src/guide/dir.html +++ b/.vitepress/dist/src/guide/dir.html @@ -8,10 +8,10 @@ - + - + @@ -42,7 +42,7 @@ │ └─ data │ └─ db 初始化数据json文件 └─ mapper mapper xml 文件

提示

  • core 为核心模块,包括一些核心的组件工具
  • modules 为业务模块,业务代码放在这边,在新增功能模块时,按上面的包结构新增即可

    比如你有一个订单管理的模块,在 modules 新增一个 order 包,在 order 包下创建 controller、entity、mapper、service 等包

- + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/exception.html b/.vitepress/dist/src/guide/exception.html index 4749d2c..d8b6216 100644 --- a/.vitepress/dist/src/guide/exception.html +++ b/.vitepress/dist/src/guide/exception.html @@ -8,10 +8,10 @@ - + - + @@ -76,7 +76,7 @@ super.add(requestParams, entity); return entity.getId(); } - + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/flow.html b/.vitepress/dist/src/guide/flow.html index ecb2e54..636790f 100644 --- a/.vitepress/dist/src/guide/flow.html +++ b/.vitepress/dist/src/guide/flow.html @@ -8,17 +8,17 @@ - + - +
Skip to content

Ai 流程编排 ​

视频演示

点击前往插件市场下载安装

开发 Ai 应用必备!!!

随着 Ai 的火热,很多应用希望接入 Ai 的能力,但是每次都是用代码手搓,容易把我们累死,而是也非常不灵活。

于是我们面向开发者和软件开发公司,做了一个 Ai 流程编排功能,结合知识库,通过拖动配置,很容易就能完成一个 Ai 的核心流程。

因此如果你需要开发 Ai 相关应用,这个可能会给你带来巨大的帮助。

流程编排

- + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/initData.html b/.vitepress/dist/src/guide/initData.html index 8aa44e1..332d5e2 100644 --- a/.vitepress/dist/src/guide/initData.html +++ b/.vitepress/dist/src/guide/initData.html @@ -8,10 +8,10 @@ - + - + @@ -50,7 +50,7 @@ } //...... }

注意:如果同一张表历史已经有初始化过数据,在某个版本需要新增数据的话,要新增一个.json 文件;
比如 demoV2.json, 如果在原文件直接修改将不生效,加载成功后文件名称将被当作唯一键标识,不会重复初始化。

- + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/lock.html b/.vitepress/dist/src/guide/lock.html index 6313206..5897ffb 100644 --- a/.vitepress/dist/src/guide/lock.html +++ b/.vitepress/dist/src/guide/lock.html @@ -8,10 +8,10 @@ - + - + @@ -28,7 +28,7 @@ // 释放锁 coolLock.unlock(key); } - + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/noRepeatSubmit.html b/.vitepress/dist/src/guide/noRepeatSubmit.html index 2d16e07..9cf7d03 100644 --- a/.vitepress/dist/src/guide/noRepeatSubmit.html +++ b/.vitepress/dist/src/guide/noRepeatSubmit.html @@ -8,10 +8,10 @@ - + - + @@ -45,7 +45,7 @@ Long couponId = requestParams.get("couponId", Long.class); return R.ok(marketCouponInfoService.receive(couponId, CoolSecurityUtil.getCurrentUserId())); } - + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/plugin.html b/.vitepress/dist/src/guide/plugin.html index 4610096..a73931b 100644 --- a/.vitepress/dist/src/guide/plugin.html +++ b/.vitepress/dist/src/guide/plugin.html @@ -8,10 +8,10 @@ - + - + @@ -254,7 +254,7 @@ <cool.plugin.name>my_cool_plugin</cool.plugin.name> </properties>

最终打出的包为: my_cool_plugin.cool

安装插件 ​

在后台插件管理页面,安装插件将打包好的.cool 文件上传。

实现原理 ​

  • 动态加载 Jar 包

    实现动态加载的技术方案
    在 SpringBoot 中实现动态加载 Jar 包: URLClassLoader 是 Java 标准库中提供的一个类加载器,它可以加载指定的 URL 资源,包括本地文件系统、远程服务器和 JAR 文件等。
    通过 URLClassLoader,我们可以在运行时动态地加载外部的 Jar 包或类。

  • 优势:

    1、灵活性高:可以动态指定 Jar 包的位置和版本。
    2、可控性强:可以通过代码控制加载、卸载和替换 Jar 包。

实现方法:

java
URL jarUrl = new URL("jar:file:" + new File(jarFilePath).getAbsolutePath() + "!/");
 DynamicJarClassLoader dynamicJarClassLoader = new DynamicJarClassLoader(new URL[]{jarUrl}, Thread.currentThread().getContextClassLoader());

动态加载 Jar 包具有以下几个显著的优势:

  • 1、灵活性: 动态加载允许应用程序在运行时根据需求加载、卸载和替换 Jar 包或其内部的类和资源,提供了极大的灵活性。
  • 2、可维护性: 通过动态加载,可以将应用程序的核心逻辑和配置分离,使得代码更加清晰、模块化,提高了代码的可维护性。
  • 3、热更新: 动态加载使得应用程序能够在不停机的情况下进行热更新,大大提高了系统的可用性和稳定性。
  • 4、扩展性: 通过动态加载,可以轻松地添加新的功能模块或服务,实现应用程序的快速扩展和升级。
- + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/quick.html b/.vitepress/dist/src/guide/quick.html index 0498ef5..994f5f0 100644 --- a/.vitepress/dist/src/guide/quick.html +++ b/.vitepress/dist/src/guide/quick.html @@ -8,10 +8,10 @@ - + - + @@ -30,7 +30,7 @@ npm install # 启动 npm run dev

访问http://127.0.0.1:9000/ 默认账户密码

账户:admin
密码:123456

- + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/recordLog.html b/.vitepress/dist/src/guide/recordLog.html index f36ae15..8a3eeb0 100644 --- a/.vitepress/dist/src/guide/recordLog.html +++ b/.vitepress/dist/src/guide/recordLog.html @@ -8,10 +8,10 @@ - + - + @@ -39,7 +39,7 @@ - /css/* - /js/* - /favicon.ico - + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/security.html b/.vitepress/dist/src/guide/security.html index 703ffdc..cc5a271 100644 --- a/.vitepress/dist/src/guide/security.html +++ b/.vitepress/dist/src/guide/security.html @@ -8,10 +8,10 @@ - + - + @@ -252,7 +252,7 @@ - /js/* - /druid/** - /admin/base/open/** - + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/service.html b/.vitepress/dist/src/guide/service.html index 0129604..757eb60 100644 --- a/.vitepress/dist/src/guide/service.html +++ b/.vitepress/dist/src/guide/service.html @@ -8,10 +8,10 @@ - + - + @@ -37,7 +37,7 @@ @Override public void modifyAfter(JSONObject requestParams, T t, ModifyEnum type) { } - + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/swagger.html b/.vitepress/dist/src/guide/swagger.html index be93190..35a8bdc 100644 --- a/.vitepress/dist/src/guide/swagger.html +++ b/.vitepress/dist/src/guide/swagger.html @@ -8,10 +8,10 @@ - + - + @@ -25,7 +25,7 @@ // 可以在这边实现一下列表数据排序规则,查询条件过滤,返回哪些字段等 } }

系统启动完成访问:http://127.0.0.1:8001/swagger-ui/index.html#/

- + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/uniqueIDGen.html b/.vitepress/dist/src/guide/uniqueIDGen.html index bd6a60e..9f4f8a7 100644 --- a/.vitepress/dist/src/guide/uniqueIDGen.html +++ b/.vitepress/dist/src/guide/uniqueIDGen.html @@ -8,10 +8,10 @@ - + - + @@ -47,7 +47,7 @@ segment: # 默认禁用,如需启用调整为 true enable: false - + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/upload.html b/.vitepress/dist/src/guide/upload.html index ee7a121..ba87938 100644 --- a/.vitepress/dist/src/guide/upload.html +++ b/.vitepress/dist/src/guide/upload.html @@ -8,11 +8,11 @@ - + - - + + @@ -53,8 +53,8 @@ public R uploadMode() { return R.ok(fileUploadStrategyFactory.getMode()); } -} - +} + \ No newline at end of file diff --git a/.vitepress/dist/src/introduce/index.html b/.vitepress/dist/src/introduce/index.html index 08e5422..1a8de31 100644 --- a/.vitepress/dist/src/introduce/index.html +++ b/.vitepress/dist/src/introduce/index.html @@ -8,17 +8,17 @@ - + - +
Skip to content

简介 ​

技术选型 ​

按照简单、常用的技术进行选择,减少技术栈的复杂度。

一、环境要求 ​

  • Java Jdk >= 17 选择 graalvm
  • Mysql >= 5.7
  • Maven >= 3.6

二、后端框架 ​

  • Spring Boot 3.x
  • Mybatis Flex
  • Auto Table
  • Hutool

三、前端框架 ​

  • Vue3
  • Typescript
  • Element-UI

为什么选择 Cool Admin? ​

随着技术不断地发展,特别是最近 Ai 相关的技术发展,以往的框架已经越来越不能满足现代化的开发需求。

Cool Admin 做为后来者有后发优势,主要特点:

  • Ai 编码,从页面到后端代码,部分功能实现零代码;
  • Ai 流程编排,专门为 Ai 开发设计的,Ai 开发几乎不用写代码,只需拖一拖即可;
  • 扩展插件,可插拔,如支付、短信这类功能的插件可以通过后台动态安装卸载,灵活又不臃肿;
  • 代码简洁,不像一般代码生成器生成一堆冗余代码,Cool 只需极少编码即可实现大部分需求;
  • ......

内置功能 ​

  • 用户管理:呈现公司组织部门树形结构,用户是系统操作者,该功能主要完成系统用户配置。
  • 菜单管理:配置系统菜单,操作权限标识等。
  • 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
  • 参数管理:对系统动态配置常用参数。
  • 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
  • 请求日志:接口的请求入参日志,便于问题排查。
  • 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
  • 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
  • 文件管理:支持静态资源文件上传云端进行云管理。
  • 数据回收站:数据有 n 天的保留,支持回滚操作。
  • 前后端插件:支持动态安装、卸载插件,实现功能可插拔。
- + \ No newline at end of file diff --git a/.vitepress/dist/src/introduce/show.html b/.vitepress/dist/src/introduce/show.html index e3f0073..27de0de 100644 --- a/.vitepress/dist/src/introduce/show.html +++ b/.vitepress/dist/src/introduce/show.html @@ -8,17 +8,17 @@ - + - + - + \ No newline at end of file diff --git a/.vitepress/dist/src/introduce/src.html b/.vitepress/dist/src/introduce/src.html index f6f2b53..dc4bdd0 100644 --- a/.vitepress/dist/src/introduce/src.html +++ b/.vitepress/dist/src/introduce/src.html @@ -8,17 +8,17 @@ - + - +
Skip to content

源码 ​

项目是开源免费、可商用、无需授权的,为了使项目能够持续,不要吝啬你们免费的Star哦!!!你的Star是我们最大的动力!!!

后端(点个 Star 哦) ​

https://github.com/cool-team-official/cool-admin-java

或

https://gitee.com/cool-team-official/cool-admin-java

或

https://gitcode.com/cool_team/cool-admin-java

前端(点个 Star 哦) ​

点击前往前端项目详细文档

https://github.com/cool-team-official/cool-admin-vue

或

https://gitee.com/cool-team-official/cool-admin-vue

或

https://gitcode.com/cool_team/cool-admin-vue

文档 (Star 哦) ​

如果文档有缺失,欢迎提交pr,您的贡献可能会给其他人来带巨大的帮助。

https://github.com/cool-team-official/cool-admin-java-docs

或

https://gitee.com/cool-team-official/cool-admin-java-docs

- + \ No newline at end of file diff --git a/.vitepress/dist/src/question/common.html b/.vitepress/dist/src/question/common.html index 087f7bd..350b29c 100644 --- a/.vitepress/dist/src/question/common.html +++ b/.vitepress/dist/src/question/common.html @@ -8,17 +8,17 @@ - + - +
Skip to content

常见问题 ​

项目中常见的问题

1、找不到类似xxxTableDef文件 ​

框架用到了Mybatis Flex 的 APT 功能,在项目编译的时候会自动生成这些文件。

你可以这样做:

  • Build 你的项目;
  • 执行 maven 的mvn compile命令;
  • 配置完数据库直接启动;
  • 【推荐】开启 idea 的Build project automatically自动编译功能(Settings -> Build, Execution, Deployment -> Compiler -> Build Project Automatically);

这些方式都可以解决这个问题。

- + \ No newline at end of file diff --git a/.vitepress/dist/src/todo/plan.html b/.vitepress/dist/src/todo/plan.html index ebe578a..3c5e508 100644 --- a/.vitepress/dist/src/todo/plan.html +++ b/.vitepress/dist/src/todo/plan.html @@ -8,17 +8,17 @@ - + - + - + \ No newline at end of file diff --git a/.vitepress/dist/src/todo/update.html b/.vitepress/dist/src/todo/update.html index e1c3959..603951e 100644 --- a/.vitepress/dist/src/todo/update.html +++ b/.vitepress/dist/src/todo/update.html @@ -8,17 +8,17 @@ - + - +
Skip to content

更新 ​

因为有你们的支持,cool-admin 会持续不断地更新,如果方便请点下 Star,这将会给我们带来更多的动力!!!

v7.1.3(2024-08-25) ​

  • 新增: list和page支持关联查询,支持自定义返回结果类型,并可以在init方法中初始化返回字段类型及数据组装函数定义(参考:控制器)
  • 新增: 分布式ID生成组件(参考:分布式ID)
  • 新增: 锁工具(参考:锁工具)
  • 新增: 防重提交注解(参考:防重提交)
  • 调整: 缓存数据模板(参考:缓存)
  • 调整: 优化eps解析规则 (参考:解析规则)
  • 调整: 优化角色修改循环单个处理为批量处理,并异步进行刷新用户权限
  • 调整: 图形验证码获取区分app和admin
  • 修复: 初始化数据,指定id插入不生效问题
  • 修复: 后台人员查询列表字段关联错误

v7.1.2(2024-08-04) ​

  • 新增: 支持postgresql
  • 新增: 忽略记录请求日志url配置
  • 新增: app端手机密码登录和手机验证码登录
  • 调整: 鉴权调整兼容app端
  • 调整: 优化插件过大加载慢问题,移除插件jar文件落库
  • 修复: refreshToken可以当token使用问题

v7.1.1(2024-07-15) ​

  • 新增 Ai 自动编码功能,简单功能零代码实现;
  • 新增后台扩展插件,如文件上传、支付、短信等功能可以通过安装插件的方式添加;

v7.1.0(2024-06-27) ​

  • 升级到 Springboot3.x;
  • 升级所有相关依赖到最新;
  • 跟进Nodejs 版相关功能;
  • 优化若干问题;
- + \ No newline at end of file