diff --git a/src/mixins/ConfigurableTableMixin.js b/src/mixins/ConfigurableTableMixin.js
index 9e69dd7e..fde758e6 100644
--- a/src/mixins/ConfigurableTableMixin.js
+++ b/src/mixins/ConfigurableTableMixin.js
@@ -2,6 +2,7 @@
* 表头通过标签管理配置的模块的表格数据的混入
*/
import { getAction, postAction } from '@api/manage'
+import { isHasPermission } from '../utils/hasPermission'
// 模拟接口返回的表头数据
const TempApiReturnColumns = [
@@ -49,6 +50,7 @@ export const ConfigurableTableMixin = {
orderBy: '1',
orderByField: '',
getTableHeaderData: null, // 获取表头数据的方法
+ operateMaxNum: 1,
// 操作列的column
operateColumn: {
title: this.$t('operation'),
@@ -57,12 +59,17 @@ export const ConfigurableTableMixin = {
scopedSlots: { customRender: 'operation' }
},
type: '', // 这个字段不知道什么含义
- filters: {} // 固定的搜索条件
+ filters: {}, // 固定的搜索条件
+ needFilterTableBtn: true // 是否需要过滤没有权限的按钮
}
},
mounted () {
this.getTableHeader()
this.loadData()
+ // 过滤没有权限的按钮
+ if (this.needFilterTableBtn) {
+ this.operationList = this.operationList.filter(item => isHasPermission(item.has))
+ }
},
methods: {
/**
diff --git a/src/mixins/JeroListMixin.js b/src/mixins/JeroListMixin.js
index c6871959..f510e0b4 100644
--- a/src/mixins/JeroListMixin.js
+++ b/src/mixins/JeroListMixin.js
@@ -8,6 +8,7 @@ import { downFile, getAction, getFileAccessHttpUrl, postAction } from '@/api/man
import Vue from 'vue'
import { ACCESS_TOKEN, TENANT_ID } from '@/store/mutation-types'
import store from '@/store'
+import { isHasPermission } from '../utils/hasPermission'
// 导入的加载提示
let importModalLoading
@@ -51,7 +52,9 @@ export const JeroListMixin = {
/* 高级查询条件 */
superQueryParams: '',
/** 高级查询拼接方式 */
- superQueryMatchType: 'and'
+ superQueryMatchType: 'and',
+ operateMaxNum: 1, // 表格操作列最多显示的按钮,其他显示在更多中
+ needFilterTableBtn: true // 是否需要过滤表格操作列没有权限的按钮
}
},
created () {
@@ -61,6 +64,12 @@ export const JeroListMixin = {
this.initDictConfig()
}
},
+ mounted () {
+ // 过滤表格操作列没有权限的按钮
+ if (this.needFilterTableBtn) {
+ this.operationList = this.operationList.filter(item => isHasPermission(item.has))
+ }
+ },
computed: {
// token header
tokenHeader () {
diff --git a/src/utils/hasPermission.js b/src/utils/hasPermission.js
index 886a317e..a7e5589d 100644
--- a/src/utils/hasPermission.js
+++ b/src/utils/hasPermission.js
@@ -127,4 +127,70 @@ export function filterGlobalPermission (el, binding) {
}
}
+/**
+ * 根据授权标识是否拥有该权限,用于tab页签的权限
+ */
+export function isHasPermission (permissionIdentifier) {
+ const permissionList = []
+ const allPermissionList = []
+
+ // let authList = Vue.ls.get(USER_AUTH);
+ const authList = JSON.parse(sessionStorage.getItem(USER_AUTH) || '[]')
+ for (const auth of authList) {
+ if (auth.type + '' !== '2') {
+ permissionList.push(auth)
+ }
+ }
+ // console.log("页面权限--Global--",sessionStorage.getItem(SYS_BUTTON_AUTH));
+ const allAuthList = JSON.parse(sessionStorage.getItem(SYS_BUTTON_AUTH) || '[]')
+ for (const gauth of allAuthList) {
+ if (gauth.type + '' !== '2') {
+ allPermissionList.push(gauth)
+ }
+ }
+ // 设置全局配置是否有命中
+ let invalidFlag = false// 无效命中
+ if (allPermissionList && allPermissionList.length > 0) {
+ for (const itemG of allPermissionList) {
+ if (permissionIdentifier === itemG.action) {
+ if (itemG.status + '' === '0') {
+ invalidFlag = true
+ break
+ }
+ }
+ }
+ }
+ if (invalidFlag) {
+ return
+ }
+ if (permissionList === null || permissionList === '' || permissionList === undefined || permissionList.length <= 0) {
+ return false
+ }
+ const permissions = []
+ for (const item of permissionList) {
+ // 权限策略1显示2禁用
+ if (item.type + '' !== '2') {
+ // update--begin--autor:wangshuai-----date:20200729------for:按钮权限,授权标识的提示信息是多个用逗号分隔逻辑处理 gitee#I1OUGU-------
+ if (item.action) {
+ if (item.action.includes(',')) {
+ const split = item.action.split(',')
+ for (let i = 0; i < split.length; i++) {
+ if (!split[i] || split[i].length === 0) {
+ continue
+ }
+ permissions.push(split[i])
+ }
+ } else {
+ permissions.push(item.action)
+ }
+ }
+ // update--end--autor:wangshuai-----date:20200729------for:按钮权限,授权标识的提示信息是多个用逗号分隔逻辑处理 gitee#I1OUGU------
+ }
+ }
+ if (!permissions.includes(permissionIdentifier)) {
+ return false
+ }
+ return true
+}
+
export default hasPermission
diff --git a/src/views/businessSupport/DataCenter.vue b/src/views/businessSupport/DataCenter.vue
index 1faa2b91..3dee8a53 100644
--- a/src/views/businessSupport/DataCenter.vue
+++ b/src/views/businessSupport/DataCenter.vue
@@ -130,16 +130,44 @@
{{ text }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- {{$t('download')}}
- {{$t('edit')}}
- {{$t('delete')}}
+ {{operation.text}}
+
+
+
+ {{ $t('more') }}
+
+
+
+ {{operation.text}}
+
+
+
@@ -172,12 +200,31 @@ export default {
mixins: [JeroListMixin],
data () {
return {
+ operationList: [
+ {
+ text: this.$t('download'),
+ clickEvent: 'download',
+ has: 'externalReport:download'
+ },
+ {
+ text: this.$t('edit'),
+ clickEvent: 'handleEdit',
+ has: 'externalReport:edit'
+ },
+ {
+ text: this.$t('delete'),
+ clickEvent: 'batchDel',
+ has: 'externalReport:delete'
+ }
+ ],
labelCol: { span: 6 },
wrapperCol: { span: 16 },
disabled: false,
manager: false, // 是否有树右键菜单
addSub: true,
- dataSource: [],
+ dataSource: [
+ { id: 1 }
+ ],
expandedKeys: [],
searchValue: '',
autoExpandParent: true,
@@ -225,7 +272,7 @@ export default {
},
{
title: this.$t('operation'),
- align: 'left',
+ align: 'center',
fixed: 'right',
ellipsis: true,
width: 240,
@@ -233,7 +280,7 @@ export default {
}
],
url: {
- list: 'com.jero.modules.extRepo/extRepoData/page',
+ list: '/extRepo/extRepoData/page',
getSysCategoryTree: '/sys/category/getSysCategoryTree'
},
// upAccept:'.zip', //导入文件类型
diff --git a/src/views/documentManage/DocumentLibrary.vue b/src/views/documentManage/DocumentLibrary.vue
index 00d0b99c..0eabb05c 100644
--- a/src/views/documentManage/DocumentLibrary.vue
+++ b/src/views/documentManage/DocumentLibrary.vue
@@ -47,24 +47,45 @@
:pagination="ipagination"
:scroll="{x: '100%'}"
@change="tableOnChange">
-
-
-
-
-
+
+
+
+
{{ !record.collectFlag || record.collectFlag === '0' ? $t('docLibrary.collection') : $t('docLibrary.cancelCollection')
}}
-
-
-
+
+
{{ !record.subscribeFlag || record.subscribeFlag === '0' ? $t('docLibrary.subscribe') : $t('docLibrary.cancelSubscribe')
}}
-
-
-
+
+
{{ operation.text }}
-
+
+
+
+
+
+ {{ $t('more') }}
+
+
+
+
+
+ {{ !record.collectFlag || record.collectFlag === '0' ? $t('docLibrary.collection') : $t('docLibrary.cancelCollection')
+ }}
+
+
+ {{ !record.subscribeFlag || record.subscribeFlag === '0' ? $t('docLibrary.subscribe') : $t('docLibrary.cancelSubscribe')
+ }}
+
+
+ {{ operation.text }}
+
+
+
+
+
diff --git a/src/views/documentTool/DocumentComparison.vue b/src/views/documentTool/DocumentComparison.vue
index 947e9ae8..6e441c5f 100644
--- a/src/views/documentTool/DocumentComparison.vue
+++ b/src/views/documentTool/DocumentComparison.vue
@@ -54,23 +54,35 @@
:can-drag="true"
:loading="loading"
:pagination="ipagination"
- :scroll="{x: '100%',y:'calc(100vh - 280px)'}"
+ :scroll="{x: '100%', y:'calc(100vh - 280px)'}"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
@change="handleTableChange"
>
- {{$t('docTool.comparison.comparisonResults')}}
-
- {{!record.releaseState || record.releaseState === 'draft' ? $t('release') :$t('withdraw')}}
-
- {{$t('edit')}}
- {{$t('delete')}}
+ {{$t('docTool.comparison.comparisonResults')}}
+
+
+
+
+
+ {{ $t('more') }}
+
+
+
+
+ {{!record.releaseState || record.releaseState === 'draft' ? $t('release') :$t('withdraw')}}
+
+
+
+ {{$t('edit')}}
+
+
+ {{$t('delete')}}
+
+
+
{{text}}
@@ -102,7 +114,9 @@ export default {
deleteBatch: '/compare/sarFileCompareInfo/deleteBatch'
},
loading: false,
- dataSource: [],
+ dataSource: [
+ {id: 1}
+ ],
selectedRowKeys: [],
selectionRows: [],
downLoadFileUrl: window._CONFIG.domianPreviewURL + '/sys/common/download',
@@ -192,7 +206,7 @@ export default {
},
{
title: this.$t('operation'),
- align: 'left',
+ align: 'center',
fixed: 'right',
width: 310,
scopedSlots: { customRender: 'operation' }
diff --git a/src/views/documentTool/DocumentSplit.vue b/src/views/documentTool/DocumentSplit.vue
index bad2d517..c2b69b9d 100644
--- a/src/views/documentTool/DocumentSplit.vue
+++ b/src/views/documentTool/DocumentSplit.vue
@@ -32,13 +32,23 @@
:scroll="{x: '100%'}"
@change="tableOnChange">
-
-
-
-
- {{ operation.text }}
-
+
+
+ {{ operation.text }}
+
+
+
+ {{ $t('more') }}
+
+
+
+
+ {{ operation.text }}
+
+
+
+
@@ -49,19 +59,7 @@
{{ global.emptyLine }}
-
-
-
-
-
-
-
-
-
-
-
-
@@ -103,13 +101,16 @@ export default {
}
],
url: {
- tableHeader: 'split/sarFileSplitInfo/getHeader', // 表格头部字段
- searchList: 'split/sarFileSplitInfo/queryCondition', // 搜索字段
- list: 'split/sarFileSplitInfo/page', // 表格数据
+ // tableHeader: '/split/sarFileSplitInfo/getHeader', // 表格头部字段
+ searchList: '/split/sarFileSplitInfo/queryCondition', // 搜索字段
+ // list: '/split/sarFileSplitInfo/page', // 表格数据
deleteBatch: '', // 批量删除
deleteUrl: '',
backDocument: '' // 回传至文档库
},
+ dataSource: [
+ { id: 1 }
+ ],
showAction: true,
flag: '3'
}