diff --git a/src/api/subPlatform/tenant.js b/src/api/subPlatform/tenant.js
index a316714..3c6d159 100644
--- a/src/api/subPlatform/tenant.js
+++ b/src/api/subPlatform/tenant.js
@@ -32,6 +32,20 @@ export function tenantDelete(data) {
data,
})
}
+// 租户筛选
+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({
diff --git a/src/api/website/solution.js b/src/api/website/solution.js
new file mode 100644
index 0000000..550332e
--- /dev/null
+++ b/src/api/website/solution.js
@@ -0,0 +1,81 @@
+import request from '@/utils/request'
+
+// 服务列表
+export function serviceList(data) {
+ return request({
+ url: '/admin/v1/service/solution_case/kind',
+ method: 'post',
+ data,
+ })
+}
+// 服务列表-添加
+export function serviceAdd(data) {
+ return request({
+ url: '/admin/v1/service/solution_case/kind/add',
+ method: 'post',
+ data,
+ })
+}
+// 服务列表-修改
+export function serviceEdit(data) {
+ return request({
+ url: '/admin/v1/service/solution_case/kind/edit',
+ method: 'post',
+ data,
+ })
+}
+// 服务列表-删除
+export function serviceDelete(data) {
+ return request({
+ url: '/admin/v1/service/solution_case/kind/delete',
+ method: 'post',
+ data,
+ })
+}
+// 服务类型-select
+export function serviceCaseKindSelect() {
+ return request({
+ url: '/admin/v1/service/solution_case/kind/select',
+ })
+}
+
+// 服务案例列表
+export function serviceCaseList(data) {
+ return request({
+ url: '/admin/v1/service/solution_case',
+ method: 'post',
+ data,
+ })
+}
+// 服务案例-添加
+export function serviceCaseAdd(data) {
+ return request({
+ url: '/admin/v1/service/solution_case/add',
+ method: 'post',
+ data,
+ })
+}
+// 服务案例-详情
+export function serviceCaseDetail(data) {
+ return request({
+ url: '/admin/v1/service/solution_case/detail',
+ method: 'post',
+ data,
+ })
+}
+// 服务案例-修改
+export function serviceCaseEdit(data) {
+ return request({
+ url: '/admin/v1/service/solution_case/edit',
+ method: 'post',
+ data,
+ })
+}
+// 服务案例-删除
+export function serviceCaseDelete(data) {
+ return request({
+ url: '/admin/v1/service/solution_case/delete',
+ method: 'post',
+ data,
+ })
+}
diff --git a/src/components/Editor/index.vue b/src/components/Editor/index.vue
index 6bb5a18..38e2b6f 100644
--- a/src/components/Editor/index.vue
+++ b/src/components/Editor/index.vue
@@ -56,13 +56,13 @@ export default {
type: {
type: String,
default: "url",
- }
+ },
},
data() {
return {
- uploadUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址
+ uploadUrl: process.env.VUE_APP_BASE_API + "/admin/v1/upload", // 上传的图片服务器地址
headers: {
- Authorization: "Bearer " + getToken()
+ "x-token": getToken(),
},
Quill: null,
currentValue: "",
@@ -73,16 +73,16 @@ export default {
modules: {
// 工具栏配置
toolbar: [
- ["bold", "italic", "underline", "strike"], // 加粗 斜体 下划线 删除线
- ["blockquote", "code-block"], // 引用 代码块
- [{ list: "ordered" }, { list: "bullet" }], // 有序、无序列表
- [{ indent: "-1" }, { indent: "+1" }], // 缩进
- [{ size: ["small", false, "large", "huge"] }], // 字体大小
- [{ header: [1, 2, 3, 4, 5, 6, false] }], // 标题
- [{ color: [] }, { background: [] }], // 字体颜色、字体背景颜色
- [{ align: [] }], // 对齐方式
- ["clean"], // 清除文本格式
- ["link", "image", "video"] // 链接、图片、视频
+ ["bold", "italic", "underline", "strike"], // 加粗 斜体 下划线 删除线
+ ["blockquote", "code-block"], // 引用 代码块
+ [{ list: "ordered" }, { list: "bullet" }], // 有序、无序列表
+ [{ indent: "-1" }, { indent: "+1" }], // 缩进
+ [{ size: ["small", false, "large", "huge"] }], // 字体大小
+ [{ header: [1, 2, 3, 4, 5, 6, false] }], // 标题
+ [{ color: [] }, { background: [] }], // 字体颜色、字体背景颜色
+ [{ align: [] }], // 对齐方式
+ ["clean"], // 清除文本格式
+ ["link", "image", "video"], // 链接、图片、视频
],
},
placeholder: "请输入内容",
@@ -126,7 +126,7 @@ export default {
const editor = this.$refs.editor;
this.Quill = new Quill(editor, this.options);
// 如果设置了上传地址则自定义图片上传事件
- if (this.type == 'url') {
+ if (this.type == "url") {
let toolbar = this.Quill.getModule("toolbar");
toolbar.addHandler("image", (value) => {
this.uploadType = "image";
@@ -176,7 +176,11 @@ export default {
// 获取光标所在位置
let length = quill.getSelection().index;
// 插入图片 res.url为服务器返回的图片地址
- quill.insertEmbed(length, "image", process.env.VUE_APP_BASE_API + res.fileName);
+ quill.insertEmbed(
+ length,
+ "image",
+ process.env.VUE_APP_BASE_API + res.fileName
+ );
// 调整光标到最后
quill.setSelection(length + 1);
} else {
@@ -191,7 +195,8 @@ export default {
diff --git a/src/plugins/download.js b/src/plugins/download.js
index 86e2031..999cc38 100644
--- a/src/plugins/download.js
+++ b/src/plugins/download.js
@@ -3,70 +3,69 @@ import { Message } from 'element-ui'
import { saveAs } from 'file-saver'
import { getToken } from '@/utils/auth'
import errorCode from '@/utils/errorCode'
-import { blobValidate } from "@/utils/ruoyi";
+import { blobValidate } from '@/utils/ruoyi'
const baseURL = process.env.VUE_APP_BASE_API
export default {
- name(name, isDelete = true) {
- var url = baseURL + "/common/download?fileName=" + encodeURI(name) + "&delete=" + isDelete
- axios({
- method: 'get',
- url: url,
- responseType: 'blob',
- headers: { 'Authorization': 'Bearer ' + getToken() }
- }).then(async (res) => {
- const isLogin = await blobValidate(res.data);
- if (isLogin) {
- const blob = new Blob([res.data])
- this.saveAs(blob, decodeURI(res.headers['download-filename']))
- } else {
- this.printErrMsg(res.data);
- }
- })
- },
- resource(resource) {
- var url = baseURL + "/common/download/resource?resource=" + encodeURI(resource);
- axios({
- method: 'get',
- url: url,
- responseType: 'blob',
- headers: { 'Authorization': 'Bearer ' + getToken() }
- }).then(async (res) => {
- const isLogin = await blobValidate(res.data);
- if (isLogin) {
- const blob = new Blob([res.data])
- this.saveAs(blob, decodeURI(res.headers['download-filename']))
- } else {
- this.printErrMsg(res.data);
- }
- })
- },
- zip(url, name) {
- var url = baseURL + url
- axios({
- method: 'get',
- url: url,
- responseType: 'blob',
- headers: { 'Authorization': 'Bearer ' + getToken() }
- }).then(async (res) => {
- const isLogin = await blobValidate(res.data);
- if (isLogin) {
- const blob = new Blob([res.data], { type: 'application/zip' })
- this.saveAs(blob, name)
- } else {
- this.printErrMsg(res.data);
- }
- })
- },
- saveAs(text, name, opts) {
- saveAs(text, name, opts);
- },
- async printErrMsg(data) {
- const resText = await data.text();
- const rspObj = JSON.parse(resText);
- const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']
- Message.error(errMsg);
- }
+ name(name, isDelete = true) {
+ var url = baseURL + '/common/download?fileName=' + encodeURI(name) + '&delete=' + isDelete
+ axios({
+ method: 'get',
+ url: url,
+ responseType: 'blob',
+ headers: { 'x-token': getToken() },
+ }).then(async res => {
+ const isLogin = await blobValidate(res.data)
+ if (isLogin) {
+ const blob = new Blob([res.data])
+ this.saveAs(blob, decodeURI(res.headers['download-filename']))
+ } else {
+ this.printErrMsg(res.data)
+ }
+ })
+ },
+ resource(resource) {
+ var url = baseURL + '/common/download/resource?resource=' + encodeURI(resource)
+ axios({
+ method: 'get',
+ url: url,
+ responseType: 'blob',
+ headers: { 'x-token': getToken() },
+ }).then(async res => {
+ const isLogin = await blobValidate(res.data)
+ if (isLogin) {
+ const blob = new Blob([res.data])
+ this.saveAs(blob, decodeURI(res.headers['download-filename']))
+ } else {
+ this.printErrMsg(res.data)
+ }
+ })
+ },
+ zip(url, name) {
+ var url = baseURL + url
+ axios({
+ method: 'get',
+ url: url,
+ responseType: 'blob',
+ headers: { 'x-token': getToken() },
+ }).then(async res => {
+ const isLogin = await blobValidate(res.data)
+ if (isLogin) {
+ const blob = new Blob([res.data], { type: 'application/zip' })
+ this.saveAs(blob, name)
+ } else {
+ this.printErrMsg(res.data)
+ }
+ })
+ },
+ saveAs(text, name, opts) {
+ saveAs(text, name, opts)
+ },
+ async printErrMsg(data) {
+ const resText = await data.text()
+ const rspObj = JSON.parse(resText)
+ const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']
+ Message.error(errMsg)
+ },
}
-
diff --git a/src/store/getters.js b/src/store/getters.js
index da6ab39..d8ff323 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -1,18 +1,19 @@
const getters = {
- sidebar: state => state.app.sidebar,
- size: state => state.app.size,
- device: state => state.app.device,
- visitedViews: state => state.tagsView.visitedViews,
- cachedViews: state => state.tagsView.cachedViews,
- token: state => state.user.token,
- avatar: state => state.user.avatar,
- name: state => state.user.name,
- introduction: state => state.user.introduction,
- roles: state => state.user.roles,
- permissions: state => state.user.permissions,
- permission_routes: state => state.permission.routes,
- topbarRouters:state => state.permission.topbarRouters,
- defaultRoutes:state => state.permission.defaultRoutes,
- sidebarRouters:state => state.permission.sidebarRouters,
+ sidebar: state => state.app.sidebar,
+ size: state => state.app.size,
+ device: state => state.app.device,
+ visitedViews: state => state.tagsView.visitedViews,
+ cachedViews: state => state.tagsView.cachedViews,
+ token: state => state.user.token,
+ avatar: state => state.user.avatar,
+ name: state => state.user.name,
+ is_super: state => state.user.is_super,
+ introduction: state => state.user.introduction,
+ roles: state => state.user.roles,
+ permissions: state => state.user.permissions,
+ permission_routes: state => state.permission.routes,
+ topbarRouters: state => state.permission.topbarRouters,
+ defaultRoutes: state => state.permission.defaultRoutes,
+ sidebarRouters: state => state.permission.sidebarRouters,
}
export default getters
diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
index 544fcab..bc575b9 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -91,7 +91,8 @@ function handleStr(str, flag) {
function handleComponent(src, flag) {
if (flag && src.kind == 1 && src.children.length > 0) {
- return src.children[0].component
+ // return src.children[0].component
+ return 'ParentView'
}
return src.component
}
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index 15fc6e5..6db9a5b 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -6,6 +6,7 @@ const user = {
token: getToken(),
name: '',
avatar: '',
+ is_super: false,
roles: [],
permissions: [],
},
@@ -20,6 +21,9 @@ const user = {
SET_AVATAR: (state, avatar) => {
state.avatar = avatar
},
+ SET_SUPER: (state, is_super) => {
+ state.is_super = is_super
+ },
SET_ROLES: (state, roles) => {
state.roles = roles
},
@@ -56,8 +60,7 @@ const user = {
.then(res => {
const user = res.data
// 头像
- // const avatar = user.avatar == '' ? require('@/assets/images/profile.jpg') : user.avatar
- const avatar = require('@/assets/images/profile.jpg')
+ const avatar = user.avatar == '' ? require('@/assets/images/profile.jpg') : user.avatar
if (res.roles && res.roles.length > 0) {
// 验证返回的roles是否是一个非空数组
commit('SET_ROLES', res.roles)
@@ -67,6 +70,7 @@ const user = {
}
commit('SET_NAME', user.name)
commit('SET_AVATAR', avatar)
+ commit('SET_SUPER', user.is_super)
resolve(res)
})
.catch(error => {
diff --git a/src/views/subPlatform/tenant/index.vue b/src/views/subPlatform/tenant/index.vue
index 64f5ef5..cccc601 100644
--- a/src/views/subPlatform/tenant/index.vue
+++ b/src/views/subPlatform/tenant/index.vue
@@ -94,6 +94,11 @@