[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"app-docs-nav-saimulti":3,"app-docs-saimulti":17,"mdc-j15ihz-key":21},{"code":4,"message":5,"data":6},200,"success",{"appname":7,"title":8,"navigation":9},"saimulti","多租户开发框架",[10],{"title":11,"icon":12,"children":13},"使用文档","i-lucide-rocket",[14],{"title":15,"path":16},"安装说明","/docs/saimulti@12",{"code":4,"message":5,"data":18},{"title":15,"description":19,"body":20},null,"### 安装说明\n\n> 本插件包含三个部分，管理端vue、租户端vue、管理后端三个部分\n\n### \u003Cspan style=\"color:red\">前端\u003C/span>\n\n> 包含admin-vue和tenant-vue这两个；建议环境为node20 + yarn\n\n### \u003Cspan style=\"color:red\">服务端\u003C/span>\n\n#### 服务端目录结构\n\nwebman\n├── plugin\n│ └── saimulti\n\n#### 安装步骤\n1. 将 `webman` 下的 `saimulti` 目录，拷贝到 `webman/plugin` 目录下  \n2. 安装数据库+菜单，找到 `webman` 插件下 `saimulti` 目录下的 `install.sql` 文件运行即可  \n\n### 租户前端配置\n\n租户端我们支持两种模式：\n- 如果租户端只有一个域名，就可以通过传递参数 `?appid=10001` 这种模式登录不同的租户\n- 如果通过泛域名解析，可以直接通过 `10001.saithink.top` 这种模式进行不同租户区分，配置文件在 `.env` 中\n\n```env\nVITE_APP_TITLE = SaiMulti\nVITE_APP_PORT = 6888\nVITE_APP_OPEN_PROXY = true\nVITE_APP_BASE = /\nVITE_APP_TOKEN_PREFIX = saimulti_tenant_token\nVITE_APP_SITE_KEY = saimulti_site_id\nVITE_APP_SITE_INFO = saimulti_site_info\n# 模式1:appid  通过参数传递appid区分\n# 模式2:domain 通过泛域名区分\nVITE_APP_MODE = domain",{"data":22,"body":23},{},{"type":24,"children":25},"root",[26,33,43,53,61,69,75,80,85,146,151,156,194,207],{"type":27,"tag":28,"props":29,"children":30},"element","h3",{"id":15},[31],{"type":32,"value":15},"text",{"type":27,"tag":34,"props":35,"children":36},"blockquote",{},[37],{"type":27,"tag":38,"props":39,"children":40},"p",{},[41],{"type":32,"value":42},"本插件包含三个部分，管理端vue、租户端vue、管理后端三个部分",{"type":27,"tag":28,"props":44,"children":46},{"id":45},"前端",[47],{"type":27,"tag":48,"props":49,"children":51},"span",{"style":50},"color:red",[52],{"type":32,"value":45},{"type":27,"tag":34,"props":54,"children":55},{},[56],{"type":27,"tag":38,"props":57,"children":58},{},[59],{"type":32,"value":60},"包含admin-vue和tenant-vue这两个；建议环境为node20 + yarn",{"type":27,"tag":28,"props":62,"children":64},{"id":63},"服务端",[65],{"type":27,"tag":48,"props":66,"children":67},{"style":50},[68],{"type":32,"value":63},{"type":27,"tag":70,"props":71,"children":73},"h4",{"id":72},"服务端目录结构",[74],{"type":32,"value":72},{"type":27,"tag":38,"props":76,"children":77},{},[78],{"type":32,"value":79},"webman\n├── plugin\n│ └── saimulti",{"type":27,"tag":70,"props":81,"children":83},{"id":82},"安装步骤",[84],{"type":32,"value":82},{"type":27,"tag":86,"props":87,"children":88},"ol",{},[89,119],{"type":27,"tag":90,"props":91,"children":92},"li",{},[93,95,102,104,109,111,117],{"type":32,"value":94},"将 ",{"type":27,"tag":96,"props":97,"children":99},"code",{"className":98},[],[100],{"type":32,"value":101},"webman",{"type":32,"value":103}," 下的 ",{"type":27,"tag":96,"props":105,"children":107},{"className":106},[],[108],{"type":32,"value":7},{"type":32,"value":110}," 目录，拷贝到 ",{"type":27,"tag":96,"props":112,"children":114},{"className":113},[],[115],{"type":32,"value":116},"webman/plugin",{"type":32,"value":118}," 目录下",{"type":27,"tag":90,"props":120,"children":121},{},[122,124,129,131,136,138,144],{"type":32,"value":123},"安装数据库+菜单，找到 ",{"type":27,"tag":96,"props":125,"children":127},{"className":126},[],[128],{"type":32,"value":101},{"type":32,"value":130}," 插件下 ",{"type":27,"tag":96,"props":132,"children":134},{"className":133},[],[135],{"type":32,"value":7},{"type":32,"value":137}," 目录下的 ",{"type":27,"tag":96,"props":139,"children":141},{"className":140},[],[142],{"type":32,"value":143},"install.sql",{"type":32,"value":145}," 文件运行即可",{"type":27,"tag":28,"props":147,"children":149},{"id":148},"租户前端配置",[150],{"type":32,"value":148},{"type":27,"tag":38,"props":152,"children":153},{},[154],{"type":32,"value":155},"租户端我们支持两种模式：",{"type":27,"tag":157,"props":158,"children":159},"ul",{},[160,173],{"type":27,"tag":90,"props":161,"children":162},{},[163,165,171],{"type":32,"value":164},"如果租户端只有一个域名，就可以通过传递参数 ",{"type":27,"tag":96,"props":166,"children":168},{"className":167},[],[169],{"type":32,"value":170},"?appid=10001",{"type":32,"value":172}," 这种模式登录不同的租户",{"type":27,"tag":90,"props":174,"children":175},{},[176,178,184,186,192],{"type":32,"value":177},"如果通过泛域名解析，可以直接通过 ",{"type":27,"tag":96,"props":179,"children":181},{"className":180},[],[182],{"type":32,"value":183},"10001.saithink.top",{"type":32,"value":185}," 这种模式进行不同租户区分，配置文件在 ",{"type":27,"tag":96,"props":187,"children":189},{"className":188},[],[190],{"type":32,"value":191},".env",{"type":32,"value":193}," 中",{"type":27,"tag":195,"props":196,"children":202},"pre",{"className":197,"code":198,"language":199,"meta":200,"style":201},"language-env","VITE_APP_TITLE = SaiMulti\nVITE_APP_PORT = 6888\nVITE_APP_OPEN_PROXY = true\nVITE_APP_BASE = /\nVITE_APP_TOKEN_PREFIX = saimulti_tenant_token\nVITE_APP_SITE_KEY = saimulti_site_id\nVITE_APP_SITE_INFO = saimulti_site_info\n# 模式1:appid  通过参数传递appid区分\n# 模式2:domain 通过泛域名区分\nVITE_APP_MODE = domain\n","env","","undefined",[203],{"type":27,"tag":96,"props":204,"children":205},{"__ignoreMap":200},[206],{"type":32,"value":198},{"type":27,"tag":208,"props":209,"children":210},"style",{},[211],{"type":32,"value":200}]