[update] 修改UAT问题,内部工作组左侧选中二级节点可以新增删除领导,选中一级或二级可以tab切换查看领导数据
This commit is contained in:
@@ -68,7 +68,9 @@ module.exports = {
|
|||||||
adminAuthority: '管理权限',
|
adminAuthority: '管理权限',
|
||||||
workGroupName: '工作组名称',
|
workGroupName: '工作组名称',
|
||||||
user: '用户',
|
user: '用户',
|
||||||
pleaseSelectASystem: '请选择左侧体系'
|
pleaseSelectASystem: '请选择左侧体系',
|
||||||
|
leader: '领导',
|
||||||
|
member: '成员'
|
||||||
},
|
},
|
||||||
// 企标级别映射
|
// 企标级别映射
|
||||||
enterpriseLevelMap: {
|
enterpriseLevelMap: {
|
||||||
|
|||||||
@@ -83,6 +83,17 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="page-right-box">
|
<div class="page-right-box">
|
||||||
|
|
||||||
|
<!-- 选中1级或2级有领导和成员的tab切换 -->
|
||||||
|
<a-tabs v-if="['1', '2'].includes(currentNodeObj.level + '')" default-active-key="leader" v-model="activeTab" @change="tabChange">
|
||||||
|
<template v-for="tab in tabList">
|
||||||
|
<a-tab-pane :key="tab.key">
|
||||||
|
<template v-slot:tab>
|
||||||
|
<div>{{ tab.label }}</div>
|
||||||
|
</template>
|
||||||
|
</a-tab-pane>
|
||||||
|
</template>
|
||||||
|
</a-tabs>
|
||||||
<div class="table-page-search-wrapper">
|
<div class="table-page-search-wrapper">
|
||||||
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||||
<a-row :gutter="24">
|
<a-row :gutter="24">
|
||||||
@@ -97,7 +108,7 @@
|
|||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<template v-if="toggleSearchStatus">
|
<template v-if="toggleSearchStatus">
|
||||||
<a-col :span="8">
|
<a-col v-if="activeTab === 'member'" :span="8">
|
||||||
<a-form-item :label="$t('system.internalWorkGroup.role')" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
<a-form-item :label="$t('system.internalWorkGroup.role')" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
<a-input :placeholder="$t('pleaseEnter')+$t('system.internalWorkGroup.role')" v-model="queryParam.userRoleName"></a-input>
|
<a-input :placeholder="$t('pleaseEnter')+$t('system.internalWorkGroup.role')" v-model="queryParam.userRoleName"></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
@@ -138,7 +149,7 @@
|
|||||||
</a-button>
|
</a-button>
|
||||||
</a-upload>
|
</a-upload>
|
||||||
<!-- 导出-->
|
<!-- 导出-->
|
||||||
<a-button icon="upload" type="primary" ghost @click="handleExportXls($t('system.internalWorkGroup.exportName'))"
|
<a-button v-if="activeTab === 'member'" icon="upload" type="primary" ghost @click="handleExportXls($t('system.internalWorkGroup.exportName'))"
|
||||||
v-has="'sys:innerWorkingGroup:export'">
|
v-has="'sys:innerWorkingGroup:export'">
|
||||||
{{ $t('export') }}
|
{{ $t('export') }}
|
||||||
</a-button>
|
</a-button>
|
||||||
@@ -148,6 +159,12 @@
|
|||||||
@click="downTemplate($t('system.internalWorkGroup.templateName'), '.xls')">
|
@click="downTemplate($t('system.internalWorkGroup.templateName'), '.xls')">
|
||||||
{{ $t('templateDownload') }}
|
{{ $t('templateDownload') }}
|
||||||
</a-button>
|
</a-button>
|
||||||
|
<!-- 2级节点并且tab是领导时候的操作按钮 -->
|
||||||
|
<template v-if="currentNodeObj.level + '' === '2' && activeTab === 'leader'">
|
||||||
|
<a-button v-if="isHasPermission('sys:innerWorkingGroup:operate')" icon="plus" type="primary" @click="handleAdd('leader')">
|
||||||
|
{{ $t('newlyAdded') }}
|
||||||
|
</a-button>
|
||||||
|
</template>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<j-table
|
<j-table
|
||||||
@@ -167,6 +184,11 @@
|
|||||||
<a v-if="currentNodeObj.userId === currentUserId && currentNodeObj.level === 3 && isHasPermission('sys:innerWorkingGroup:operate')" @click="handleDelete(record.id)">{{ $t('delete') }}</a>
|
<a v-if="currentNodeObj.userId === currentUserId && currentNodeObj.level === 3 && isHasPermission('sys:innerWorkingGroup:operate')" @click="handleDelete(record.id)">{{ $t('delete') }}</a>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<!-- 领导的操作列 -->
|
||||||
|
<template v-slot:leaderAction="{text, record}">
|
||||||
|
<a v-if="isHasPermission('sys:innerWorkingGroup:operate')" @click="handleDelete(record.id, 'leader')">{{ $t('delete') }}</a>
|
||||||
|
</template>
|
||||||
|
|
||||||
</j-table>
|
</j-table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -184,7 +206,7 @@
|
|||||||
import JTable from '@/components/jero/JTable'
|
import JTable from '@/components/jero/JTable'
|
||||||
import { JeroListMixin } from '@/mixins/JeroListMixin'
|
import { JeroListMixin } from '@/mixins/JeroListMixin'
|
||||||
import TreeNodeModal from './modules/TreeNodeModal'
|
import TreeNodeModal from './modules/TreeNodeModal'
|
||||||
import { postAction, downFile } from '@/api/manage'
|
import { postAction, downFile, getAction } from '@/api/manage'
|
||||||
import WorkingGroupModal from './modules/WorkingGroupModal'
|
import WorkingGroupModal from './modules/WorkingGroupModal'
|
||||||
import { getWorkGroupTreeList } from '@/api/api'
|
import { getWorkGroupTreeList } from '@/api/api'
|
||||||
import TreeNodeWorkGroupModal from './modules/TreeNodeWorkGroupModal'
|
import TreeNodeWorkGroupModal from './modules/TreeNodeWorkGroupModal'
|
||||||
@@ -196,6 +218,30 @@ export default {
|
|||||||
name: 'WorkingGroupList',
|
name: 'WorkingGroupList',
|
||||||
components: { TreeNodeWorkGroupModal, WorkingGroupModal, TreeNodeModal, JTable },
|
components: { TreeNodeWorkGroupModal, WorkingGroupModal, TreeNodeModal, JTable },
|
||||||
mixins: [JeroListMixin],
|
mixins: [JeroListMixin],
|
||||||
|
computed: {
|
||||||
|
yScrollHeight () {
|
||||||
|
/**
|
||||||
|
* 前几个使用变量是为了配合iframe嵌套,算出页面显示范围的高度
|
||||||
|
* 48px:分页器的高度
|
||||||
|
* 48px:a-card的padding(上24+下24)
|
||||||
|
* 54px:表头行的高度
|
||||||
|
*/
|
||||||
|
return `calc(100vh - ${this.defaultHeight['user-info-height']} - ${this.defaultHeight['breadcrumb-height']} - ${this.defaultHeight.oneLineSearchHeight} - ${this.defaultHeight.oneLineOperationHeight} - 48px - 48px - 54px - ${this.isBackTitle ? '56px' : '0px'} - ${['1', '2'].includes(this.currentNodeObj.level + '') ? '64px' : '0px'})`
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
activeTab: {
|
||||||
|
immediate: true,
|
||||||
|
handler (val) {
|
||||||
|
if (['1', '2'].includes(this.currentNodeObj.level + '') && val === 'leader') {
|
||||||
|
// 是1,2级的领导
|
||||||
|
this.columns = this.leaderColumns
|
||||||
|
} else {
|
||||||
|
this.columns = this.memberColumns
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
treeInput: null, // 树查询绑定值
|
treeInput: null, // 树查询绑定值
|
||||||
@@ -241,6 +287,73 @@ export default {
|
|||||||
width: 170
|
width: 170
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
memberColumns: [
|
||||||
|
{
|
||||||
|
title: this.$t('system.internalWorkGroup.name'),
|
||||||
|
align: 'center',
|
||||||
|
width: 180,
|
||||||
|
dataIndex: 'realname',
|
||||||
|
scopedSlots: { customRender: 'text' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: this.$t('system.internalWorkGroup.workNo'),
|
||||||
|
align: 'center',
|
||||||
|
width: 180,
|
||||||
|
dataIndex: 'username',
|
||||||
|
scopedSlots: { customRender: 'text' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: this.$t('system.internalWorkGroup.role'),
|
||||||
|
align: 'center',
|
||||||
|
width: 180,
|
||||||
|
dataIndex: 'userRoleName',
|
||||||
|
scopedSlots: { customRender: 'text' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: this.$t('system.internalWorkGroup.post'),
|
||||||
|
align: 'center',
|
||||||
|
width: 180,
|
||||||
|
dataIndex: 'userPostName',
|
||||||
|
scopedSlots: { customRender: 'text' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: this.$t('operation'),
|
||||||
|
scopedSlots: { customRender: 'action' },
|
||||||
|
align: 'center',
|
||||||
|
fixed: 'right',
|
||||||
|
width: 170
|
||||||
|
}
|
||||||
|
],
|
||||||
|
leaderColumns: [
|
||||||
|
{ // 姓名
|
||||||
|
title: this.$t('system.internalWorkGroup.name'),
|
||||||
|
align: 'center',
|
||||||
|
width: 180,
|
||||||
|
dataIndex: 'realname',
|
||||||
|
scopedSlots: { customRender: 'text' }
|
||||||
|
},
|
||||||
|
{ // 工号
|
||||||
|
title: this.$t('system.internalWorkGroup.workNo'),
|
||||||
|
align: 'center',
|
||||||
|
width: 180,
|
||||||
|
dataIndex: 'username',
|
||||||
|
scopedSlots: { customRender: 'text' }
|
||||||
|
},
|
||||||
|
{ // 岗位
|
||||||
|
title: this.$t('system.internalWorkGroup.post'),
|
||||||
|
align: 'center',
|
||||||
|
width: 180,
|
||||||
|
dataIndex: 'userPostName',
|
||||||
|
scopedSlots: { customRender: 'text' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: this.$t('operation'),
|
||||||
|
scopedSlots: { customRender: 'leaderAction' },
|
||||||
|
align: 'center',
|
||||||
|
fixed: 'right',
|
||||||
|
width: 170
|
||||||
|
}
|
||||||
|
],
|
||||||
labelCol: {
|
labelCol: {
|
||||||
span: 4
|
span: 4
|
||||||
},
|
},
|
||||||
@@ -258,7 +371,12 @@ export default {
|
|||||||
treeWorkGroupDelete: '/sys/lawsWorkingGroup/deleteWorkGroup'
|
treeWorkGroupDelete: '/sys/lawsWorkingGroup/deleteWorkGroup'
|
||||||
},
|
},
|
||||||
currentUserId: '',
|
currentUserId: '',
|
||||||
currentNodeObj: {} // 当前左侧树节点对象
|
currentNodeObj: {}, // 当前左侧树节点对象
|
||||||
|
tabList: [
|
||||||
|
{ key: 'leader', label: this.$t('system.internalWorkGroup.leader') }, // 领导
|
||||||
|
{ key: 'member', label: this.$t('system.internalWorkGroup.member') } // 成员
|
||||||
|
],
|
||||||
|
activeTab: 'member' // tab默认成员
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted () {
|
mounted () {
|
||||||
@@ -294,6 +412,42 @@ export default {
|
|||||||
return item
|
return item
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
loadData (arg) {
|
||||||
|
if (!this.url.list) {
|
||||||
|
this.$message.warning('请设置url.list属性!')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// 加载数据 若传入参数1则加载第一页的内容
|
||||||
|
if (arg === 1) {
|
||||||
|
this.ipagination.current = 1
|
||||||
|
}
|
||||||
|
const params = this.getQueryParams()// 查询条件
|
||||||
|
if (['1', '2'].includes(this.currentNodeObj.level + '') && this.activeTab === 'leader') {
|
||||||
|
// 是1,2级的领导,加参数表示查领导
|
||||||
|
params.searchType = '1'
|
||||||
|
} else {
|
||||||
|
// 加参数表示查成员
|
||||||
|
params.searchType = '2'
|
||||||
|
}
|
||||||
|
console.log(params)
|
||||||
|
this.loading = true
|
||||||
|
getAction(this.url.list, params).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
// update-begin---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------
|
||||||
|
this.dataSource = res.result.records || res.result
|
||||||
|
if (res.result.total) {
|
||||||
|
this.ipagination.total = res.result.total
|
||||||
|
} else {
|
||||||
|
this.ipagination.total = 0
|
||||||
|
}
|
||||||
|
// update-end---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------
|
||||||
|
} else {
|
||||||
|
this.$message.warning(res.message)
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
// 左侧树搜索框搜索
|
// 左侧树搜索框搜索
|
||||||
handleTreeSearch () {
|
handleTreeSearch () {
|
||||||
this.treeData = []
|
this.treeData = []
|
||||||
@@ -376,41 +530,84 @@ export default {
|
|||||||
this.initTreeData()
|
this.initTreeData()
|
||||||
},
|
},
|
||||||
// 根据当前节点key设置当前节点对象
|
// 根据当前节点key设置当前节点对象
|
||||||
setCurrNodeObjByKey (treeData) {
|
// setCurrNodeObjByKey (treeData) {
|
||||||
for (const item of treeData) {
|
// for (const item of treeData) {
|
||||||
if (item.id === this.currentTreeNode[0]) {
|
// if (item.id === this.currentTreeNode[0]) {
|
||||||
this.currentNodeObj = item
|
// this.currentNodeObj = item
|
||||||
break
|
// break
|
||||||
}
|
// }
|
||||||
if (item.subset && item.subset.length > 0) {
|
// if (item.subset && item.subset.length > 0) {
|
||||||
this.setCurrNodeObjByKey(item.subset)
|
// this.setCurrNodeObjByKey(item.subset)
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
// 左侧树点击选中
|
// 左侧树点击选中
|
||||||
treeSelect (selectedKeys) {
|
treeSelect (selectedKeys, event) {
|
||||||
console.log(selectedKeys)
|
console.log('--------selectedKeys', selectedKeys)
|
||||||
|
console.log('--------event', event)
|
||||||
this.currentTreeNode = selectedKeys
|
this.currentTreeNode = selectedKeys
|
||||||
// 设置当前左侧树节点对象,为了右侧表格操作判断权限
|
// 设置当前左侧树节点对象,为了右侧表格操作判断权限
|
||||||
this.setCurrNodeObjByKey(this.treeData)
|
this.currentNodeObj = JSON.parse(JSON.stringify(event.node.dataRef))
|
||||||
|
// 如果是1,2级,activeTab设置为领导,否则是成员
|
||||||
|
if (['1', '2'].includes(this.currentNodeObj.level + '')) {
|
||||||
|
this.activeTab = 'leader'
|
||||||
|
} else {
|
||||||
|
this.activeTab = 'member'
|
||||||
|
}
|
||||||
|
// this.setCurrNodeObjByKey(this.treeData)
|
||||||
this.queryParam.workingGroupId = selectedKeys[0]
|
this.queryParam.workingGroupId = selectedKeys[0]
|
||||||
this.ipagination.current = 1
|
this.ipagination.current = 1
|
||||||
this.loadData()
|
this.loadData()
|
||||||
},
|
},
|
||||||
|
// tab切换
|
||||||
|
tabChange () {
|
||||||
|
this.loadData(1)
|
||||||
|
},
|
||||||
// 右侧新增
|
// 右侧新增
|
||||||
handleAdd () {
|
handleAdd (type) {
|
||||||
console.log(this.currentTreeNode)
|
console.log(this.currentTreeNode)
|
||||||
if (!this.currentTreeNode || this.currentTreeNode.length <= 0) {
|
if (!this.currentTreeNode || this.currentTreeNode.length <= 0) {
|
||||||
this.$message.warning(this.$t('system.internalWorkGroup.pleaseSelectASystem'))
|
this.$message.warning(this.$t('system.internalWorkGroup.pleaseSelectASystem'))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.$refs.modalForm.add(this.currentTreeNode[0])
|
this.$refs.modalForm.add(this.currentTreeNode[0], type)
|
||||||
this.$refs.modalForm.title = this.$t('newlyAdded')
|
this.$refs.modalForm.title = this.$t('newlyAdded')
|
||||||
},
|
},
|
||||||
|
handleDelete: function (id, type) {
|
||||||
|
if (!this.url.delete) {
|
||||||
|
this.$message.warning('请设置url.delete属性!')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
const that = this
|
||||||
|
this.$confirm({
|
||||||
|
title: this.$t('confirmDeletion'),
|
||||||
|
content: this.$t('areYouSure'),
|
||||||
|
onOk: function () {
|
||||||
|
const params = {}
|
||||||
|
params.id = id
|
||||||
|
if (type === 'leader') {
|
||||||
|
params.searchType = '1'
|
||||||
|
}
|
||||||
|
postAction(that.url.delete, params).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
that.$message.success(res.message)
|
||||||
|
// 判断当前删除的数据是否是最后一页的最后一条数据,如果是的话页码减一
|
||||||
|
if (that.ipagination.current > 1 && ((that.ipagination.current - 1) * that.ipagination.pageSize) + 1 === that.ipagination.total) {
|
||||||
|
that.ipagination.current -= 1
|
||||||
|
}
|
||||||
|
that.loadData()
|
||||||
|
} else {
|
||||||
|
that.$message.warning(res.message)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
// 清空
|
// 清空
|
||||||
searchReset () {
|
searchReset () {
|
||||||
this.queryParam = {}
|
this.queryParam = {}
|
||||||
this.currentTreeNode = null
|
this.currentTreeNode = null
|
||||||
|
this.currentNodeObj = {}
|
||||||
this.initTreeData()
|
this.initTreeData()
|
||||||
this.loadData(1)
|
this.loadData(1)
|
||||||
},
|
},
|
||||||
@@ -496,4 +693,5 @@ export default {
|
|||||||
/deep/ .ant-form-item-label{
|
/deep/ .ant-form-item-label{
|
||||||
min-width: 40px !important;
|
min-width: 40px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -59,14 +59,21 @@ export default {
|
|||||||
add: '/sys/lawsWorkingGroupUser/add'
|
add: '/sys/lawsWorkingGroupUser/add'
|
||||||
},
|
},
|
||||||
nameStr: '',
|
nameStr: '',
|
||||||
treeNodeKey: '' // 传入的树节点key值
|
treeNodeKey: '', // 传入的树节点key值
|
||||||
|
searchType: '' // 1的时候表示领导的新增,没有值说明是成员,新增时需要传给后端
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
add (treeNodeKey) {
|
add (treeNodeKey, type) {
|
||||||
this.visible = true
|
this.visible = true
|
||||||
this.form.resetFields()
|
this.form.resetFields()
|
||||||
this.treeNodeKey = treeNodeKey
|
this.treeNodeKey = treeNodeKey
|
||||||
|
if (type === 'leader') {
|
||||||
|
// 是领导的新增
|
||||||
|
this.searchType = '1'
|
||||||
|
} else {
|
||||||
|
this.searchType = ''
|
||||||
|
}
|
||||||
},
|
},
|
||||||
userSelectNameChange (value) {
|
userSelectNameChange (value) {
|
||||||
this.nameStr = value
|
this.nameStr = value
|
||||||
@@ -85,6 +92,9 @@ export default {
|
|||||||
this.confirmLoading = true
|
this.confirmLoading = true
|
||||||
const param = Object.assign({}, values)
|
const param = Object.assign({}, values)
|
||||||
param.workingGroupId = this.treeNodeKey
|
param.workingGroupId = this.treeNodeKey
|
||||||
|
if (this.searchType === '1') {
|
||||||
|
param.searchType = this.searchType
|
||||||
|
}
|
||||||
console.log(param)
|
console.log(param)
|
||||||
let url = ''
|
let url = ''
|
||||||
url = this.url.add
|
url = this.url.add
|
||||||
|
|||||||
Reference in New Issue
Block a user