diff --git a/Api/Ewide.Core/Ewide.Core.Web.Src/src/assets/style/app.less b/Api/Ewide.Core/Ewide.Core.Web.Src/src/assets/style/app.less
index 7988aaa..022da7f 100644
--- a/Api/Ewide.Core/Ewide.Core.Web.Src/src/assets/style/app.less
+++ b/Api/Ewide.Core/Ewide.Core.Web.Src/src/assets/style/app.less
@@ -21,5 +21,6 @@
@import './lib/select.less';
@import './lib/dropdown.less';
@import './lib/tree-layout.less';
+@import './lib/authority-view.less';
@import './theme/primary.less';
// @import './lib/font-weight.less';
diff --git a/Api/Ewide.Core/Ewide.Core.Web.Src/src/assets/style/lib/authority-view.less b/Api/Ewide.Core/Ewide.Core.Web.Src/src/assets/style/lib/authority-view.less
new file mode 100644
index 0000000..d48f0d4
--- /dev/null
+++ b/Api/Ewide.Core/Ewide.Core.Web.Src/src/assets/style/lib/authority-view.less
@@ -0,0 +1,24 @@
+@import (reference) '~@/assets/style/extend.less';
+.yo-authority-view {
+ .ant-descriptions-item-label {
+ width: 150px;
+ }
+ .ant-descriptions {
+ margin-bottom: @padding-sm;
+ &:last-child {
+ margin-bottom: 0;
+ }
+ }
+ .ant-descriptions-item-content {
+ padding: @padding-sm @padding-md;
+ >.yo-authority-view--checkbox {
+ display: inline-block;
+
+ width: 150px;
+ margin: @padding-xxs 0;
+ .ant-checkbox-wrapper {
+ margin: 0;
+ }
+ }
+ }
+}
diff --git a/Api/Ewide.Core/Ewide.Core.Web.Src/src/common/api/index.js b/Api/Ewide.Core/Ewide.Core.Web.Src/src/common/api/index.js
index eac6bda..de3f458 100644
--- a/Api/Ewide.Core/Ewide.Core.Web.Src/src/common/api/index.js
+++ b/Api/Ewide.Core/Ewide.Core.Web.Src/src/common/api/index.js
@@ -28,10 +28,7 @@ const initInstance = () => {
instance.interceptors.response.use((res) => {
if (res.data.status === status.Unauthorized) {
- token.value = ''
- app.$router.replace({
- path: '/login'
- }).catch(() => { })
+ handlerUnauthorized()
}
return res
}, (err) => {
@@ -40,6 +37,8 @@ const initInstance = () => {
return instance
}
+const errerCodes = [status.BadRequest, status.InternalServerError]
+
const errorNotification = ({ code, message }) => {
switch (message.constructor) {
case Array:
@@ -61,6 +60,13 @@ const errorNotification = ({ code, message }) => {
}
}
+const handlerUnauthorized = () => {
+ token.value = ''
+ app.$router.replace({
+ path: '/login'
+ }).catch(() => { })
+}
+
const api = {}
for (let key in urls) {
@@ -96,21 +102,26 @@ for (let key in urls) {
return new Promise((reslove, reject) => {
api[`${key}Wait`](params)
.then(({ data }) => {
- if ([status.BadRequest].indexOf(data.code) >= 0) {
+ if (errerCodes.indexOf(data.code) >= 0) {
errorNotification(data)
reject(data)
+ } else if (data.code === status.Unauthorized) {
+ handlerUnauthorized()
} else {
reslove(data)
}
})
.catch(({ response: { data } }) => {
if (process.env.VUE_APP_NODE_ENV === 'development') {
+ errorNotification(data)
+ reject(data)
+ if (data.code === status.Unauthorized) {
+ handlerUnauthorized()
+ }
+ } else {
errorNotification({
message: '发生错误,请联系管理员'
})
- } else {
- errorNotification(data)
- reject(data)
}
})
})
diff --git a/Api/Ewide.Core/Ewide.Core.Web.Src/src/components/yoAuthorityView/index.js b/Api/Ewide.Core/Ewide.Core.Web.Src/src/components/yoAuthorityView/index.js
new file mode 100644
index 0000000..3c8f394
--- /dev/null
+++ b/Api/Ewide.Core/Ewide.Core.Web.Src/src/components/yoAuthorityView/index.js
@@ -0,0 +1,202 @@
+export default {
+ props: {
+ loadData: {
+ type: Function,
+ require: true,
+ },
+
+ autoLoad: {
+ type: Boolean,
+ default: true
+ },
+
+ defaultSelectedKeys: {
+ type: Array,
+ default: []
+ }
+ },
+
+ data() {
+ return {
+ loading: false,
+
+ data: [],
+ list: []
+ }
+ },
+
+ created() {
+ if (this.autoLoad) {
+ this.onLoadData()
+ }
+ },
+
+ methods: {
+
+ renderDescriptions(data) {
+ return data.map(p => {
+ return p.children && p.children.length ? this.renderItem(p) : this.renderCheckbox(p)
+ })
+ },
+
+ renderItem(data) {
+ return (
+