diff --git a/package.json b/package.json
index 2e1e382..1ccc60a 100644
--- a/package.json
+++ b/package.json
@@ -17,6 +17,8 @@
"dependencies": {
"@element-plus/icons-vue": "1.1.4",
"@vueuse/core": "8.5.0",
+ "@wangeditor/editor": "^5.1.11",
+ "@wangeditor/editor-for-vue": "^5.1.12",
"axios": "0.26.1",
"echarts": "5.3.2",
"element-plus": "2.1.8",
diff --git a/src/api/subPlatform/tenant.js b/src/api/subPlatform/tenant.js
new file mode 100644
index 0000000..47bd917
--- /dev/null
+++ b/src/api/subPlatform/tenant.js
@@ -0,0 +1,100 @@
+import request from "@/utils/request";
+
+// 租户列表
+export function tenant(data) {
+ return request({
+ url: "/admin/v1/tenant",
+ method: "post",
+ data,
+ });
+}
+// 租户添加
+export function tenantAdd(data) {
+ return request({
+ url: "/admin/v1/tenant/add",
+ method: "post",
+ data,
+ });
+}
+// 租户修改
+export function tenantEdit(data) {
+ return request({
+ url: "/admin/v1/tenant/edit",
+ method: "post",
+ data,
+ });
+}
+// 租户删除
+export function tenantDelete(data) {
+ return request({
+ url: "/admin/v1/tenant/delete",
+ method: "post",
+ data,
+ });
+}
+// 租户筛选
+export function tenantSelect(params) {
+ return request({
+ url: "/business/sysTenant/list",
+ method: "get",
+ params,
+ });
+}
+// export function tenantSelect() {
+// return request({
+// url: '/admin/v1/tenant/select',
+// })
+// }
+// 租户人员
+export function tenantMember(data) {
+ return request({
+ url: "/admin/v1/tenant/member",
+ method: "post",
+ data,
+ });
+}
+// 租户人员绑定 - 账号绑定
+export function tenantMemberBind(data) {
+ return request({
+ url: "/admin/v1/tenant/member/bind",
+ method: "post",
+ data,
+ });
+}
+
+export function tenantMenuList(data) {
+ return request({
+ url: "/admin/v1/tenant/menu",
+ method: "post",
+ data,
+ });
+}
+export function tenantMenuBind(data) {
+ return request({
+ url: "/admin/v1/tenant/menu/bind",
+ method: "post",
+ data,
+ });
+}
+export function tenantAuthList(data) {
+ return request({
+ url: "/admin/v1/tenant/auth",
+ method: "post",
+ data,
+ });
+}
+export function tenantAuthBind(data) {
+ return request({
+ url: "/admin/v1/tenant/auth/bind",
+ method: "post",
+ data,
+ });
+}
+
+export function userBasic(data) {
+ return request({
+ url: "/admin/v1/user/basic",
+ method: "post",
+ data,
+ });
+}
diff --git a/src/api/website/innovate.js b/src/api/website/innovate.js
new file mode 100644
index 0000000..ec1eaae
--- /dev/null
+++ b/src/api/website/innovate.js
@@ -0,0 +1,78 @@
+import request from "@/utils/request";
+
+// 导航列表
+export function navigationList(params) {
+ return request({
+ url: "/business/innovateCategory/list",
+ method: "get",
+ params,
+ });
+}
+// 导航列表-添加
+export function navigationAdd(data) {
+ return request({
+ url: "/business/innovateCategory",
+ method: "post",
+ data,
+ });
+}
+// 导航列表-修改
+export function navigationEdit(data) {
+ return request({
+ url: "/business/innovateCategory",
+ method: "put",
+ data,
+ });
+}
+// 导航列表-删除
+export function navigationDelete(ids) {
+ return request({
+ url: `/business/innovateCategory/${ids}`,
+ method: "delete",
+ });
+}
+// 导航-下拉
+export function navigationSelect() {
+ return request({
+ url: "/admin/v1/service/innovate/kind/select",
+ });
+}
+
+// 服务列表
+export function serviceList(params) {
+ return request({
+ url: "/business/innovateService/list",
+ method: "get",
+ params,
+ });
+}
+// 服务列表-添加
+export function serviceAdd(data) {
+ return request({
+ url: "/business/innovateService",
+ method: "post",
+ data,
+ });
+}
+// 服务列表-详情
+export function serviceDetail(id) {
+ return request({
+ url: `/business/innovateService/${id}`,
+ method: "get",
+ });
+}
+// 服务列表-修改
+export function serviceEdit(data) {
+ return request({
+ url: "/business/innovateService",
+ method: "put",
+ data,
+ });
+}
+// 服务列表-删除
+export function serviceDelete(ids) {
+ return request({
+ url: `/business/innovateService/${ids}`,
+ method: "delete",
+ });
+}
diff --git a/src/api/website/solution.js b/src/api/website/solution.js
new file mode 100644
index 0000000..2a1d3c3
--- /dev/null
+++ b/src/api/website/solution.js
@@ -0,0 +1,79 @@
+import request from "@/utils/request";
+
+// 服务列表
+export function serviceList(params) {
+ return request({
+ url: "/business/solution/list",
+ method: "get",
+ params,
+ });
+}
+// 服务列表-添加
+export function serviceAdd(data) {
+ return request({
+ url: "/business/solution",
+ method: "post",
+ data,
+ });
+}
+// 服务列表-修改
+export function serviceEdit(data) {
+ return request({
+ url: "/business/solution",
+ method: "put",
+ data,
+ });
+}
+// 服务列表-删除
+export function serviceDelete(ids) {
+ return request({
+ url: `/business/solution/${ids}`,
+ method: "delete",
+ });
+}
+// 服务类型-select
+export function serviceCaseKindSelect() {
+ return request({
+ url: "/business/solution/getAllCategory",
+ method: "get",
+ });
+}
+
+// 服务案例列表
+export function serviceCaseList(params) {
+ return request({
+ url: "/business/solutionCase/list",
+ method: "get",
+ params,
+ });
+}
+// 服务案例-添加
+export function serviceCaseAdd(data) {
+ return request({
+ url: "/business/solutionCase",
+ method: "post",
+ data,
+ });
+}
+// 服务案例-详情
+export function serviceCaseDetail(id) {
+ return request({
+ url: `/business/solutionCase/${id}`,
+ method: "get",
+ });
+}
+// 服务案例-修改
+export function serviceCaseEdit(data) {
+ return request({
+ url: "/business/solutionCase",
+ method: "put",
+ data,
+ });
+}
+// 服务案例-删除
+export function serviceCaseDelete(ids) {
+ return request({
+ url: `/business/solutionCase/${ids}`,
+ method: "post",
+ });
+}
diff --git a/src/components/SiteOptions/index.vue b/src/components/SiteOptions/index.vue
new file mode 100644
index 0000000..8b9aeb3
--- /dev/null
+++ b/src/components/SiteOptions/index.vue
@@ -0,0 +1,87 @@
+
+
+
+
+
+
diff --git a/src/components/WangEditor/index.vue b/src/components/WangEditor/index.vue
new file mode 100644
index 0000000..107973d
--- /dev/null
+++ b/src/components/WangEditor/index.vue
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
diff --git a/src/views/website/innovate/navigation/index.vue b/src/views/website/innovate/navigation/index.vue
new file mode 100644
index 0000000..0cd7413
--- /dev/null
+++ b/src/views/website/innovate/navigation/index.vue
@@ -0,0 +1,259 @@
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+ {{ getSiteName(row.tenantId) }}
+
+
+
+
+ {{ row.createTime }}
+
+
+
+
+ 编辑
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/website/innovate/service/index.vue b/src/views/website/innovate/service/index.vue
new file mode 100644
index 0000000..92e54c5
--- /dev/null
+++ b/src/views/website/innovate/service/index.vue
@@ -0,0 +1,362 @@
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+ {{ getCategoryName(row.categoryId) }}
+
+
+
+ {{ getSiteName(row.tenantId) }}
+
+
+
+
+ {{ row.createTime }}
+
+
+
+
+ 编辑
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/website/solution/service/index.vue b/src/views/website/solution/service/index.vue
new file mode 100644
index 0000000..a41ead7
--- /dev/null
+++ b/src/views/website/solution/service/index.vue
@@ -0,0 +1,367 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ getSiteName(row.tenantId) }}
+
+
+
+
+
+ {{ modeOptions.find((item) => item.value == row.mode).label }}
+
+
+
+
+ {{ row.createTime }}
+
+
+
+
+ 编辑
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/website/solution/serviceCase/index.vue b/src/views/website/solution/serviceCase/index.vue
new file mode 100644
index 0000000..f3e84ce
--- /dev/null
+++ b/src/views/website/solution/serviceCase/index.vue
@@ -0,0 +1,355 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ getSiteName(row.tenantId) }}
+
+
+
+
+ {{ row.createTime }}
+
+
+
+
+ 编辑
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+