Merge branch 'fix_foton_20231213' into 'master'

Fix foton 20231213

See merge request laws-foton-slrs/foton-laws-system-front!134
This commit is contained in:
高嵩
2023-12-21 08:51:44 +00:00
12 changed files with 419 additions and 205 deletions
@@ -0,0 +1,164 @@
<template>
<el-drawer
title="绑定角色"
:visible.sync="visible"
:wrapperClosable="false"
size="800px"
>
<div class="drawer-content" style="padding-top: 20px">
<el-form
ref="form"
:model="form"
label-width="120px"
label-position="left"
>
<el-form-item label="部门名称">
{{ form.institutionName }}
</el-form-item>
<el-divider style="margin: 0" />
<el-form-item label="绑定角色" class="search-item">
<el-select
:value="getRoleIds"
placeholder="请选择"
multiple
collapse-tags
size="medium"
@change="roleIdsChange"
>
<el-option
v-for="item in allRoleOptions"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-form>
</div>
<div class="drawer-footer">
<el-button
class="common-button-default"
icon="el-icon-close"
size="mini"
:loading="btnLoading"
@click="onCancel"
>
取消
</el-button>
<el-button
class="common-button-primary"
icon="el-icon-check"
type="primary"
size="mini"
:loading="btnLoading"
@click="onSubmit"
>
确定
</el-button>
</div>
<loading :loading="loading">加载中...</loading>
</el-drawer>
</template>
<script>
export default {
name: 'SetRoleForDepartment',
data () {
return {
visible: false,
allRoleOptions: [],
form: {
institutionId: '', // 部门id
institutionName: '',
roleIds: '', // 角色id
},
loading: false,
btnLoading: false,
}
},
computed: {
getRoleIds () {
if (!this.form.roleIds || this.form.roleIds === '') {
return []
} else {
return this.form.roleIds.split(',')
}
}
},
created () {
this.getAllRole()
},
methods: {
open (id) {
this.form.institutionId = id
this.form.roleIds = ''
this.form.institutionName = ''
const config = {
_this: this,
loading: 'loading'
}
const query = { institutionId: this.form.institutionId }
this.$http._getData('SarInstitution/institution/findInstitutionTree', query, config).then(res => {
if (res.ok && res.data) {
this.form.institutionName = res.data.institutionName
this.form.roleIds = res.data.selectedRoleIds.join(',') || ''
}
})
this.visible = true
},
getAllRole () {
this.$http._getData('sarRole/role/getAllRole').then(res => {
if (res.ok && res.data) {
this.allRoleOptions = res.data
}
})
},
roleIdsChange (val) {
this.form.roleIds = val.join(',')
},
onSubmit () {
const config = {
_this: this,
loading: 'btnLoading'
}
this.$http._getData('/SarInstitution/institution/setRoleToInstitutionAndUser', this.form, config).then(res => {
if (res.ok) {
this.$emit('success')
this.onCancel()
}
})
console.log(this.form)
},
onCancel () {
this.visible = false
}
}
}
</script>
<style scoped lang="less">
.drawer-content {
padding: 0 19px;
overflow-y: auto;
flex: auto;
/deep/.el-form-item{
margin: 0 !important;
}
/deep/.el-divider{
margin: 0 !important;
}
/deep/ .el-select .el-tag {
max-width: 110px !important;
}
}
.drawer-footer {
width: 100%;
padding: 0 20px;
height: 70px;
line-height: 69px;
border-top: 1px solid #e8e8e8;
text-align: right;
background: #fff;
z-index: 999;
}
</style>
@@ -5,76 +5,66 @@
<div class="tree"> <div class="tree">
<!-- @keyup.enter.native="searchPeople"--> <!-- @keyup.enter.native="searchPeople"-->
<el-input <el-input
v-model="filterText"
class="filter-tree-input" class="filter-tree-input"
placeholder="输入关键字进行过滤" placeholder="输入关键字进行过滤"
v-model="filterText"> />
</el-input>
<!-- <el-tree-->
<!-- node-key="id"-->
<!-- :data="treeData"-->
<!-- :props="defaultProps"-->
<!-- :default-checked-keys="nodeList"-->
<!-- :current-node-key="nodeKeyId"-->
<!-- highlight-current-->
<!-- check-strictly-->
<!-- :expand-on-click-node="false"-->
<!-- ref="tree"-->
<!-- :load="loadNode"-->
<!-- @node-click="handleNodeClick"-->
<!-- lazy>-->
<!-- </el-tree>-->
<el-tree <el-tree
ref="tree"
:data="treeData" :data="treeData"
:props="defaultProps" :props="defaultProps"
:current-node-key="nodeKeyId" :current-node-key="nodeKeyId"
node-key="id" node-key="id"
:filter-node-method="filterNode" :filter-node-method="filterNode"
highlight-current highlight-current
ref="tree"
:expand-on-click-node="false" :expand-on-click-node="false"
@node-click="handleNodeClick"> @node-click="handleNodeClick"
</el-tree> />
</div> </div>
<div class="tree-collapse" @click="treeCollapse" :class="{ 'tree-close': sideClose }"> <div class="tree-collapse" :class="{ 'tree-close': sideClose }" @click="treeCollapse">
<!--切换折叠样式--> <!--切换折叠样式-->
<i class="el-icon-arrow-left" v-if="sideClose === false"></i> <i v-if="sideClose === false" class="el-icon-arrow-left" />
<i class="el-icon-arrow-right" v-if="sideClose === true"></i> <i v-if="sideClose === true" class="el-icon-arrow-right" />
</div> </div>
</div> </div>
<div class="tree-right"> <div class="tree-right">
<div class="content"> <div class="content">
<!--搜索区域--> <!--搜索区域-->
<div class="search-area"> <div class="search-area">
<el-form inline class="label-input-form" v-model="searchForm"> <el-form v-model="searchForm" inline class="label-input-form">
<el-form-item label="姓名" class="search-item"> <el-form-item label="姓名" class="search-item">
<el-input placeholder="根据姓名查询" clearable v-model="searchForm.uname"> <el-input v-model="searchForm.uname" placeholder="根据姓名查询" clearable />
</el-input>
</el-form-item> </el-form-item>
<el-form-item label="邮箱" class="search-item"> <el-form-item label="邮箱" class="search-item">
<el-input placeholder="根据邮箱查询" clearable v-model="searchForm.email"> <el-input v-model="searchForm.email" placeholder="根据邮箱查询" clearable />
</el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" size="mini" <el-button
class="common-button-primary" @click="getDatas('1')" v-btn-permission="'d285ee99b52abcd63d863f6783e350f0'"> v-btn-permission="'d285ee99b52abcd63d863f6783e350f0'"
type="primary"
size="mini"
class="common-button-primary"
@click="getDatas('1')"
>
查询 查询
</el-button> </el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button size="mini" class="common-button-default" @click="clearAllSearch" v-btn-permission="'12a6b1f548cef7b152746c978fc32dbb'"> <el-button v-btn-permission="'12a6b1f548cef7b152746c978fc32dbb'" size="mini" class="common-button-default" @click="clearAllSearch">
清空 清空
</el-button> </el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button size="mini" type="primary" @click="selectEdit" v-btn-permission="'786a941b255a4fe4d13b7e67f100a4e5'"> <el-button v-btn-permission="'786a941b255a4fe4d13b7e67f100a4e5'" size="mini" type="primary" @click="selectEdit">
批量配置角色 批量配置角色
</el-button> </el-button>
<el-button size="mini" type="primary" @click="selectEditOfOrg" v-btn-permission="'786a941b255a4fe4d13b7e67f100a4e5'"> <el-button v-btn-permission="'786a941b255a4fe4d13b7e67f100a4e5'" size="mini" type="primary" @click="selectEditOfOrg">
根据部门批量配置角色 根据部门批量配置角色
</el-button> </el-button>
<el-button v-btn-permission="'335a0e7929ac7e11887bec0d7efd0fef'" size="mini" type="primary" @click="setRoleForDepartment">
配置部门绑定角色
</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
@@ -86,19 +76,21 @@
style="width: 100%; flex: auto;" style="width: 100%; flex: auto;"
class="drag-table" class="drag-table"
height="100%" height="100%"
@selection-change="selectedData"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px', :header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"> fontWeight: 'bold', height: '48px'}"
@selection-change="selectedData"
>
<el-table-column <el-table-column
type="selection" type="selection"
width="55" width="55"
align="center" align="center"
/> />
<el-table-column <el-table-column
type="index" type="index"
width="55" width="55"
label="序号" label="序号"
align="center"> align="center"
>
<template slot-scope="{scope, column, $index}"> <template slot-scope="{scope, column, $index}">
{{ ($index + 1) + (page - 1) * pageSize }} {{ ($index + 1) + (page - 1) * pageSize }}
</template> </template>
@@ -106,17 +98,18 @@
<el-table-column <el-table-column
prop="account" prop="account"
label="账号" label="账号"
width="100px"> width="100px"
</el-table-column> />
<el-table-column <el-table-column
prop="uname" prop="uname"
label="姓名" label="姓名"
width="100px"> width="100px"
</el-table-column> />
<el-table-column <el-table-column
prop="sex" prop="sex"
label="性别" label="性别"
width="50px"> width="50px"
>
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="scope.row.sex === '1'"></div> <div v-if="scope.row.sex === '1'"></div>
<div v-if="scope.row.sex === '2'"></div> <div v-if="scope.row.sex === '2'"></div>
@@ -125,16 +118,17 @@
<el-table-column <el-table-column
prop="phone" prop="phone"
label="电话" label="电话"
width="170px"> width="170px"
</el-table-column> />
<el-table-column <el-table-column
prop="email" prop="email"
label="邮箱" label="邮箱"
width="170px"> width="170px"
</el-table-column> />
<el-table-column <el-table-column
prop="institutionName" prop="institutionName"
label="所属部门"> label="所属部门"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-popover trigger="hover" placement="top"> <el-popover trigger="hover" placement="top">
{{ scope.row.institutionName }} {{ scope.row.institutionName }}
@@ -148,31 +142,32 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="roles" prop="roles"
label="角色" label="角色"
> >
<template slot-scope="scope"> <template slot-scope="scope">
{{getRoleName(scope.row.roles)}} {{ getRoleName(scope.row.roles) }}
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column--> <!-- <el-table-column-->
<!-- prop="NameList"--> <!-- prop="NameList"-->
<!-- label="所属岗位">--> <!-- label="所属岗位">-->
<!-- <template slot-scope="scope">--> <!-- <template slot-scope="scope">-->
<!-- <el-popover trigger="hover" placement="top">--> <!-- <el-popover trigger="hover" placement="top">-->
<!-- {{ scope.row.NameList }}--> <!-- {{ scope.row.NameList }}-->
<!-- <div slot="reference" class="name-wrapper">--> <!-- <div slot="reference" class="name-wrapper">-->
<!-- <p v-if="!scope.row.institutionName ||scope.row.NameList.length<15">--> <!-- <p v-if="!scope.row.institutionName ||scope.row.NameList.length<15">-->
<!-- {{ scope.row.NameList }}--> <!-- {{ scope.row.NameList }}-->
<!-- </p>--> <!-- </p>-->
<!-- <p v-else> {{ scope.row.NameList.substring(0, 15) }}...</p>--> <!-- <p v-else> {{ scope.row.NameList.substring(0, 15) }}...</p>-->
<!-- </div>--> <!-- </div>-->
<!-- </el-popover>--> <!-- </el-popover>-->
<!-- </template>--> <!-- </template>-->
<!-- </el-table-column>--> <!-- </el-table-column>-->
<el-table-column <el-table-column
label="状态" label="状态"
width="100px"> width="100px"
>
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="scope.row.disableFlag === '1'">已禁用</div> <div v-if="scope.row.disableFlag === '1'">已禁用</div>
<div v-else>已启用</div> <div v-else>已启用</div>
@@ -180,16 +175,17 @@
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="操作" label="操作"
width="50px"> width="50px"
>
<template slot-scope="scope"> <template slot-scope="scope">
<div @click.stop style="display: inline-block"> <div style="display: inline-block" @click.stop>
<el-dropdown trigger="click" @command="handleCommand"> <el-dropdown trigger="click" @command="handleCommand">
<i class="iconfont">&#xe61e;</i> <i class="iconfont">&#xe61e;</i>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item v-btn-permission="'30db3b395deb5004266cd65d302c2776'" v-if="scope.row.disableFlag === '1'" :command="[scope.row, '启用']" > <el-dropdown-item v-if="scope.row.disableFlag === '1'" v-btn-permission="'30db3b395deb5004266cd65d302c2776'" :command="[scope.row, '启用']">
启用 启用
</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item v-btn-permission="'30db3b395deb5004266cd65d302c2776'" v-if="scope.row.disableFlag === '0'" :command="[scope.row, '禁用']"> <el-dropdown-item v-if="scope.row.disableFlag === '0'" v-btn-permission="'30db3b395deb5004266cd65d302c2776'" :command="[scope.row, '禁用']">
禁用 禁用
</el-dropdown-item> </el-dropdown-item>
@@ -204,7 +200,13 @@
</el-table> </el-table>
</div> </div>
<loading :loading="Loading">加载中...</loading> <loading :loading="Loading">加载中...</loading>
<pagination :page="page" :total="total" :pageSize="pageSize" @pageChange="pageChange" @pageSizeChange="pageSizeChange"></pagination> <pagination
:page="page"
:total="total"
:pageSize="pageSize"
@pageChange="pageChange"
@pageSizeChange="pageSizeChange"
/>
</div> </div>
<el-drawer <el-drawer
class="postPage" class="postPage"
@@ -215,29 +217,42 @@
@close="resetFormPost" @close="resetFormPost"
> >
<el-form ref="" :model="sarPost" inline> <el-form ref="" :model="sarPost" inline>
<el-form-item class="search-item" style="padding-left: 25px"> <el-form-item class="search-item" style="padding-left: 25px">
<el-input v-model="sarPost.name" <el-input
size="small" v-model="sarPost.name"
placeholder="角色名称查找" size="small"
clearable></el-input> placeholder="角色名称查找"
clearable
/>
</el-form-item> </el-form-item>
<el-form-item label="" class="search-item btn-box"> <el-form-item label="" class="search-item btn-box">
<el-button class="common-button-primary" type="primary" size="mini" @click="searchPostName" <el-button
v-btn-permission="''">查询 v-btn-permission="''"
class="common-button-primary"
type="primary"
size="mini"
@click="searchPostName"
>
查询
</el-button> </el-button>
</el-form-item> </el-form-item>
<el-form-item label="" class="search-item btn-box"> <el-form-item label="" class="search-item btn-box">
<el-button class="common-button-default" @click="resetSelect" size="mini" <el-button
v-btn-permission="">清空 v-btn-permission=""
class="common-button-default"
size="mini"
@click="resetSelect"
>
清空
</el-button> </el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-tree <el-tree
v-if="modalPost"
ref="tree2" ref="tree2"
node-key="id" node-key="id"
class="filter-tree" class="filter-tree"
style="height: 100%; overflow: auto;" style="height: 100%; overflow: auto;"
v-if="modalPost"
:props="props" :props="props"
:data="postList" :data="postList"
:filter-node-method="filterNode" :filter-node-method="filterNode"
@@ -246,9 +261,16 @@
check-strictly check-strictly
default-expand-all default-expand-all
:expand-on-click-node="false" :expand-on-click-node="false"
show-checkbox> show-checkbox
</el-tree> />
<pagination :auto-size="true" :page="page1" :pageSize="pageSize1" :total="total2" @pageChange="pageChange2" @pageSizeChange="pageSizeChange2"></pagination> <pagination
:auto-size="true"
:page="page1"
:pageSize="pageSize1"
:total="total2"
@pageChange="pageChange2"
@pageSizeChange="pageSizeChange2"
/>
<div id="roleFormButton" class="demo-drawer-footer"> <div id="roleFormButton" class="demo-drawer-footer">
<el-button <el-button
size="mini" size="mini"
@@ -257,26 +279,32 @@
type="primary" type="primary"
:loading="butionLoading" :loading="butionLoading"
@click="PostSubmit" @click="PostSubmit"
>确定 >
确定
</el-button> </el-button>
<el-button size="mini" class="common-button-default" icon="el-icon-close" @click="resetFormPost">取消</el-button> <el-button size="mini" class="common-button-default" icon="el-icon-close" @click="resetFormPost">取消</el-button>
</div> </div>
</el-drawer> </el-drawer>
<loading style="z-index: 2099;" :loading="treeLoading">导入中...</loading> <loading style="z-index: 2099;" :loading="treeLoading">导入中...</loading>
<SetRoleForDepartment ref="SetRoleForDepartmentRef" @success="getDatas('1')" />
</div> </div>
</template> </template>
<script> <script>
import SetRoleForDepartment from '../components/SetRoleForDepartment'
export default { export default {
name: 'mechanism', name: 'Mechanism',
data() { components: {
SetRoleForDepartment
},
data () {
return { return {
formLoading: true, formLoading: true,
peopleType: '', //1为树结构 2 为全机构 peopleType: '', // 1为树结构 2 为全机构
nodeKeyId: '', nodeKeyId: '',
searchForm: { searchForm: {
uname: "", uname: '',
email: "" email: ''
}, },
userId: '', userId: '',
postList: [], postList: [],
@@ -287,7 +315,7 @@ export default {
nodeList: [], nodeList: [],
modalPost: false, modalPost: false,
sarPost: { sarPost: {
name: "", // 角色名称 name: '', // 角色名称
}, },
filterText: '', // 树结构检索条件 filterText: '', // 树结构检索条件
defaultProps: { defaultProps: {
@@ -299,8 +327,8 @@ export default {
total: 0, total: 0,
total2: 0, total2: 0,
pageSize: this.$store.getters.userInfo.configContent, pageSize: this.$store.getters.userInfo.configContent,
page1:1, page1: 1,
pageSize1:20, pageSize1: 20,
sideClose: false, sideClose: false,
data: [], // table数据 data: [], // table数据
treeLoading: false, treeLoading: false,
@@ -309,31 +337,46 @@ export default {
id: '', id: '',
// 批量配置角色勾选暂存 // 批量配置角色勾选暂存
manageData: [], manageData: [],
configOrgManage:false, configOrgManage: false,
drawerTitle: '配置角色' drawerTitle: '配置角色'
} }
}, },
computed: {},
watch: {
filterText (val) {
this.$refs.tree.filter(val);
},
},
mounted () {
// 获取组织结构树
this.getTree()
this.getTree2()
},
methods: { methods: {
getRoleName(roles){ // 给部门所有人员配置角色·
let names=roles.map(item=>{ setRoleForDepartment () {
return item.name this.$refs.SetRoleForDepartmentRef.open(this.id)
}) },
getRoleName (roles) {
const names = roles.map(item => {
return item.name
})
return names.join(',') return names.join(',')
}, },
clearAllSearch() { clearAllSearch () {
this.searchForm = { this.searchForm = {
uname: "", uname: '',
email: "" email: ''
} }
this.page = 1 this.page = 1
this.getData() this.getData()
}, },
resetFormPost() { resetFormPost () {
this.modalPost = false this.modalPost = false
this.postList = [] this.postList = []
this.page1 = 1 this.page1 = 1
}, },
PostSubmit() { PostSubmit () {
this.butionLoading = true this.butionLoading = true
if (this.drawerTitle === '配置角色') { if (this.drawerTitle === '配置角色') {
this.$http.postData('sarUser/user/role', { this.$http.postData('sarUser/user/role', {
@@ -347,8 +390,8 @@ export default {
this.getData() this.getData()
} }
}) })
} else if(this.configOrgManage){ } else if(this.configOrgManage) {
//批量配置角色信息 // 批量配置角色信息
this.$http.postData('sarUser/user/roleBatchByOrgId', { this.$http.postData('sarUser/user/roleBatchByOrgId', {
roleIds: this.$refs.tree2.getCheckedKeys(), roleIds: this.$refs.tree2.getCheckedKeys(),
orgId: this.id orgId: this.id
@@ -373,18 +416,17 @@ export default {
} }
}) })
} }
}, },
searchPostName() { searchPostName () {
this.page = 1; this.page = 1;
this.getTree2(); this.getTree2();
this.sarPost.name = ""; this.sarPost.name = '';
}, // 查询 }, // 查询
resetSelect() { resetSelect () {
this.sarPost.name = ""; this.sarPost.name = '';
this.getTree2(); this.getTree2();
}, // 外层清空条件查询 }, // 外层清空条件查询
handleCommand(command) { handleCommand (command) {
switch (command[1]) { switch (command[1]) {
case '启用': case '启用':
this.disableFlagEdit(command[0], 0) this.disableFlagEdit(command[0], 0)
@@ -398,7 +440,7 @@ export default {
} }
}, },
getTree2() { getTree2 () {
this.$http.get('sarRole/role/allPage', { this.$http.get('sarRole/role/allPage', {
current: this.page1, current: this.page1,
pageSize: this.pageSize1, pageSize: this.pageSize1,
@@ -410,10 +452,10 @@ export default {
this.total2 = res.data.total this.total2 = res.data.total
}) })
}, },
postsConfigure(row) { postsConfigure (row) {
this.configOrgManage = false this.configOrgManage = false
this.drawerTitle = '配置角色' this.drawerTitle = '配置角色'
var arr = [] const arr = []
this.userId = row.userId this.userId = row.userId
row.positions.forEach((item) => { row.positions.forEach((item) => {
arr.push(item.id) arr.push(item.id)
@@ -422,8 +464,8 @@ export default {
this.modalPost = true this.modalPost = true
this.getTree2() this.getTree2()
}, },
disableFlagEdit(row, type) { disableFlagEdit (row, type) {
let json = {} const json = {}
json.userId = row.userId json.userId = row.userId
json.disableFlag = type json.disableFlag = type
this.$http.postData('sarUser/user/disable', json, {}, this.$http.postData('sarUser/user/disable', json, {},
@@ -438,14 +480,14 @@ export default {
} }
}) })
}, },
treeCollapse() { treeCollapse () {
this.sideClose = !this.sideClose this.sideClose = !this.sideClose
}, },
filterNode(value, data) { filterNode (value, data) {
if (!value) return true; if (!value) return true;
return data.name.indexOf(value) !== -1; return data.name.indexOf(value) !== -1;
}, },
handleNodeClick(data) { handleNodeClick (data) {
this.id = data.id this.id = data.id
this.page = 1 this.page = 1
this.getData() this.getData()
@@ -485,7 +527,7 @@ export default {
// }, e => { // }, e => {
// }) // })
// }, // },
getTree() { getTree () {
this.$http.get('SarInstitution/institution', {}, { this.$http.get('SarInstitution/institution', {}, {
_this: this, _this: this,
loading: 'treeLoading' loading: 'treeLoading'
@@ -501,7 +543,7 @@ export default {
console.log(e); console.log(e);
}) })
}, },
getDatas(type) { getDatas (type) {
if (type === '1') { if (type === '1') {
this.page = 1 this.page = 1
} }
@@ -530,7 +572,7 @@ export default {
this.total = res.data.total this.total = res.data.total
}) })
}, },
getData() { getData () {
this.peopleType = 1; this.peopleType = 1;
this.$http.post('SarInstitution/institution/userUnderInstitution', { this.$http.post('SarInstitution/institution/userUnderInstitution', {
current: this.page, current: this.page,
@@ -556,42 +598,42 @@ export default {
this.total = res.data.total this.total = res.data.total
}) })
}, },
pageChange(page) { pageChange (page) {
this.page = page this.page = page
if(this.peopleType === 1){ if(this.peopleType === 1) {
this.getData() this.getData()
}else{ }else{
this.getDatas() this.getDatas()
} }
}, },
pageSizeChange(pageSize) { pageSizeChange (pageSize) {
this.pageSize = pageSize this.pageSize = pageSize
if(this.peopleType === 1){ if(this.peopleType === 1) {
this.getData() this.getData()
}else{ }else{
this.getDatas() this.getDatas()
} }
}, },
pageChange2(page1) { pageChange2 (page1) {
this.page1 = page1 this.page1 = page1
this.getTree2() this.getTree2()
}, },
pageSizeChange2(pageSize1) { pageSizeChange2 (pageSize1) {
this.pageSize1 = pageSize1 this.pageSize1 = pageSize1
this.getTree2() this.getTree2()
}, },
/** 批量编辑角色的勾选数据 */ /** 批量编辑角色的勾选数据 */
selectedData(val) { selectedData (val) {
this.manageData = val this.manageData = val
}, },
selectEdit() { selectEdit () {
this.configOrgManage = false this.configOrgManage = false
this.getTree2() this.getTree2()
if(this.manageData.length){ if(this.manageData.length) {
this.userId = [] this.userId = []
this.manageData.forEach(item=>{ this.manageData.forEach(item => {
this.userId.push(item.userId) this.userId.push(item.userId)
}) })
this.drawerTitle = '批量配置角色' this.drawerTitle = '批量配置角色'
@@ -600,24 +642,13 @@ export default {
this.$message.warning('请选择需要批量配置的角色') this.$message.warning('请选择需要批量配置的角色')
} }
}, },
selectEditOfOrg() { selectEditOfOrg () {
this.configOrgManage = true this.configOrgManage = true
this.getTree2() this.getTree2()
this.drawerTitle = '批量配置角色' this.drawerTitle = '批量配置角色'
this.modalPost = true this.modalPost = true
}, },
},
computed: {},
watch: {
filterText(val) {
this.$refs.tree.filter(val);
},
},
mounted() {
// 获取组织结构树
this.getTree()
this.getTree2()
} }
} }
</script> </script>
@@ -728,5 +759,4 @@ export default {
} }
} }
</style> </style>
@@ -1,10 +1,12 @@
<template> <template>
<van-popup v-model="popupShow" <van-popup
position="right" v-model="popupShow"
:style="{ height: '100%', width: '90%' }" position="right"
round :style="{ height: '100%', width: '70%' }"
:close-on-click-overlay="false" round
@click-overlay="handleCancel"> :close-on-click-overlay="false"
@click-overlay="handleCancel"
>
<h3 class="popup-title"> <h3 class="popup-title">
<span>体系结构</span> <span>体系结构</span>
<van-icon name="cross" size="22px" @click="handleCancel" /> <van-icon name="cross" size="22px" @click="handleCancel" />
@@ -13,28 +15,43 @@
<van-field name="radio" label="标准状态"> <van-field name="radio" label="标准状态">
<template #input> <template #input>
<van-radio-group v-model="textStatusName" direction="horizontal"> <van-radio-group v-model="textStatusName" direction="horizontal">
<van-radio name="全部">全部</van-radio> <van-radio name="全部" style="margin-bottom: 5px;">全部</van-radio>
<van-radio name="现行有效">现行有效</van-radio> <van-radio name="现行有效">现行有效</van-radio>
</van-radio-group> </van-radio-group>
</template> </template>
</van-field> </van-field>
<standardSystemTree ref="standardSystemTreeRef" :data="standardSystemTreeData" :loading="loading" @checkedKey="getCheckedKey"></standardSystemTree> <standardSystemTree ref="standardSystemTreeRef" :data="standardSystemTreeData" :loading="loading" @checkedKey="getCheckedKey" />
</div> </div>
<div class="popup-footer"> <div class="popup-footer">
<el-button class="common-button-default" size="mini" icon="el-icon-close" @click="handleReset">重置</el-button> <el-button class="common-button-default" size="mini" icon="el-icon-close" @click="handleReset">重置</el-button>
<!--<el-button class="common-button-default" size="mini" icon="el-icon-close" @click="handleCancel">取消</el-button>--> <!--<el-button class="common-button-default" size="mini" icon="el-icon-close" @click="handleCancel">取消</el-button>-->
<el-button class="common-button-primary" size="mini" icon="el-icon-check" type="primary" @click="handleOk">确定</el-button> <el-button
class="common-button-primary"
size="mini"
icon="el-icon-check"
type="primary"
@click="handleOk"
>
确定
</el-button>
</div> </div>
</van-popup> </van-popup>
</template> </template>
<script> <script>
import standardSystemTree from "./standardSystemTree"; import standardSystemTree from './standardSystemTree';
export default { export default {
name: "standardSystemPopup", name: 'StandardSystemPopup',
components: { components: {
standardSystemTree, standardSystemTree,
}, },
props: {
// 以前的选中项
initKeys: {
type: Array,
required: true
}
},
data () { data () {
return { return {
popupShow: true, popupShow: true,
@@ -48,13 +65,6 @@ export default {
} }
} }
}, },
props: {
// 以前的选中项
initKeys: {
type: Array,
required: true
}
},
methods: { methods: {
initOpen () { initOpen () {
this.checkedKeys = [] this.checkedKeys = []
@@ -76,8 +86,8 @@ export default {
}, },
handleOk () { handleOk () {
// if (this.checkedKeys.length > 0) { // if (this.checkedKeys.length > 0) {
this.popupShow = false this.popupShow = false
// this.$emit('standSystemKeys', this.checkedKeys) // this.$emit('standSystemKeys', this.checkedKeys)
this.$emit('searchQuery', { checkedKeys: this.checkedKeys, textStatusName: this.textStatusName }) this.$emit('searchQuery', { checkedKeys: this.checkedKeys, textStatusName: this.textStatusName })
// } else { // } else {
// // this.$toast('请至少选择一项'); // // this.$toast('请至少选择一项');
@@ -87,7 +97,7 @@ export default {
}, },
handleCancel () { handleCancel () {
// if (this.initKeys.length > 0) { // if (this.initKeys.length > 0) {
this.hide() this.hide()
// } else { // } else {
// this.$message.error('请至少选择一项') // this.$message.error('请至少选择一项')
// this.open() // this.open()
@@ -100,7 +110,7 @@ export default {
}, },
async getData () { async getData () {
let url = this.api.getListStand let url = this.api.getListStand
let query = { sorDivide: 'INLAND_STAND' } const query = { sorDivide: 'INLAND_STAND' }
switch (this.$route.query.standType) { switch (this.$route.query.standType) {
case 'INLAND': case 'INLAND':
break break
@@ -112,9 +122,9 @@ export default {
query.sorDivide = 'BUSINESS_STAND' query.sorDivide = 'BUSINESS_STAND'
break break
} }
//INLAND 国内 FOREIGN 海外 bussstand 企标 // INLAND 国内 FOREIGN 海外 bussstand 企标
const res = await this.$http._getData(url,query,{ const res = await this.$http._getData(url, query, {
_this:this, _this: this,
loading: 'loading' loading: 'loading'
}) })
if (res.ok && res.data) { if (res.ok && res.data) {
@@ -1,30 +1,40 @@
<template> <template>
<van-popup v-model="popupShow" <van-popup
position="right" v-model="popupShow"
:style="{ height: '100%', width: '90%' }" position="right"
round :style="{ height: '100%', width: '70%' }"
:close-on-click-overlay="false" round
@click-overlay="handleCancel" :close-on-click-overlay="false"
get-container="body"> get-container="body"
@click-overlay="handleCancel"
>
<h3 class="popup-title"> <h3 class="popup-title">
<span>体系结构</span> <span>体系结构</span>
<van-icon name="cross" size="22px" @click="handleCancel" /> <van-icon name="cross" size="22px" @click="handleCancel" />
</h3> </h3>
<div class="popup-main"> <div class="popup-main">
<folderTree ref="folderTreeRef" @checked="getChecked"></folderTree> <folderTree ref="folderTreeRef" @checked="getChecked" />
</div> </div>
<div class="popup-footer"> <div class="popup-footer">
<el-button class="common-button-default" size="mini" icon="el-icon-close" @click="handleReset">重置</el-button> <el-button class="common-button-default" size="mini" icon="el-icon-close" @click="handleReset">重置</el-button>
<el-button class="common-button-default" size="mini" icon="el-icon-close" @click="handleCancel">取消</el-button> <el-button class="common-button-default" size="mini" icon="el-icon-close" @click="handleCancel">取消</el-button>
<el-button class="common-button-primary" size="mini" icon="el-icon-check" type="primary" @click="handleOk">确定</el-button> <el-button
class="common-button-primary"
size="mini"
icon="el-icon-check"
type="primary"
@click="handleOk"
>
确定
</el-button>
</div> </div>
</van-popup> </van-popup>
</template> </template>
<script> <script>
import folderTree from "./folderTree"; import folderTree from './folderTree';
export default { export default {
name: "folderPopup", name: 'FolderPopup',
components: { components: {
folderTree, folderTree,
}, },
@@ -526,12 +526,12 @@
</el-form-item> </el-form-item>
</el-card> </el-card>
</el-timeline-item> </el-timeline-item>
<el-timeline-item timestamp="征求意见(各事业部标准化员(时代-苏杰贵、奥铃-蒋敏、欧航欧马可-吴娟、皮卡-王晶9、图雅诺-耿红静、欧辉-张蕾61、普罗科-符青萍、雷萨-杨卫利),项目组各PMT/PAT" prop="bussUser5Name" placement="top" :color="roleForm.bussUser5Name ? '#66b1ff' : ''"> <el-timeline-item timestamp="征求意见(各事业部标准化员(时代-苏杰贵、奥铃-蒋敏、欧航欧马可-吴娟、皮卡-王晶9、图雅诺-耿红静、欧辉-张蕾61、普罗科-符青萍、雷萨-刘金英),项目组各PMT/PAT" prop="bussUser5Name" placement="top" :color="roleForm.bussUser5Name ? '#66b1ff' : ''">
<el-card> <el-card>
<el-form-item prop="bussUser5Name" style="margin-bottom: 0"> <el-form-item prop="bussUser5Name" style="margin-bottom: 0">
<h4>各事业部标准化员(时代-苏杰贵、奥铃-蒋敏、欧航欧马可-吴娟、皮卡-王晶9、图雅诺-耿红静、欧辉-张蕾61、普罗科-符青萍、雷萨-杨卫利),项目组各PMT/PAT</h4> <h4>各事业部标准化员(时代-苏杰贵、奥铃-蒋敏、欧航欧马可-吴娟、皮卡-王晶9、图雅诺-耿红静、欧辉-张蕾61、普罗科-符青萍、雷萨-刘金英),项目组各PMT/PAT</h4>
<div style="margin-top: 10px;width: 300px;"> <div style="margin-top: 10px;width: 300px;">
<el-input :disabled="disabledXX" v-model="roleForm.bussUser5Name" readonly="readonly" placeholder="选择各事业部标准化员(时代-苏杰贵、奥铃-蒋敏、欧航欧马可-吴娟、皮卡-王晶9、图雅诺-耿红静、欧辉-张蕾61、普罗科-符青萍、雷萨-杨卫利),项目组各PMT/PAT" @click.native="choiceZRRList('bussUser5', '选择各事业部标准化员(时代-苏杰贵、奥铃-蒋敏、欧航欧马可-吴娟、皮卡-王晶9、图雅诺-耿红静、欧辉-张蕾61、普罗科-符青萍、雷萨-杨卫利),项目组各PMT/PAT', roleForm.bussUser5)"></el-input> <el-input :disabled="disabledXX" v-model="roleForm.bussUser5Name" readonly="readonly" placeholder="选择各事业部标准化员(时代-苏杰贵、奥铃-蒋敏、欧航欧马可-吴娟、皮卡-王晶9、图雅诺-耿红静、欧辉-张蕾61、普罗科-符青萍、雷萨-刘金英),项目组各PMT/PAT" @click.native="choiceZRRList('bussUser5', '选择各事业部标准化员(时代-苏杰贵、奥铃-蒋敏、欧航欧马可-吴娟、皮卡-王晶9、图雅诺-耿红静、欧辉-张蕾61、普罗科-符青萍、雷萨-刘金英),项目组各PMT/PAT', roleForm.bussUser5)"></el-input>
</div> </div>
</el-form-item> </el-form-item>
</el-card> </el-card>
@@ -1332,7 +1332,7 @@ export default {
{ required: true, message: '选择标准法规工程师/事业部标准化员', trigger: 'blur' }, { required: true, message: '选择标准法规工程师/事业部标准化员', trigger: 'blur' },
], ],
bussUser5Name: [ bussUser5Name: [
{ required: true, message: '选择各事业部标准化员(时代-苏杰贵、奥铃-蒋敏、欧航欧马可-吴娟、皮卡-王晶9、图雅诺-耿红静、欧辉-张蕾61、普罗科-符青萍、雷萨-杨卫利),项目组各PMT/PAT', trigger: 'blur' }, { required: true, message: '选择各事业部标准化员(时代-苏杰贵、奥铃-蒋敏、欧航欧马可-吴娟、皮卡-王晶9、图雅诺-耿红静、欧辉-张蕾61、普罗科-符青萍、雷萨-刘金英),项目组各PMT/PAT', trigger: 'blur' },
], ],
bussUser7Name: [ bussUser7Name: [
{ required: true, message: '选择标准法规工程师', trigger: 'blur' }, { required: true, message: '选择标准法规工程师', trigger: 'blur' },
@@ -531,12 +531,12 @@
</el-form-item> </el-form-item>
</el-card> </el-card>
</el-timeline-item> </el-timeline-item>
<el-timeline-item timestamp="征求意见(张建芳、蒋敏、吴娟、李中立、王晶9、耿红静、张蕾61、符青萍、杨卫利、技术委员会相关成员、总院相关中心总工及四五级工程师)" prop="hqUserName" placement="top" :color="roleForm.hqUserName ? '#66b1ff' : ''"> <el-timeline-item timestamp="征求意见(张建芳、蒋敏、吴娟、李中立、王晶9、耿红静、张蕾61、符青萍、刘金英、技术委员会相关成员、总院相关中心总工及四五级工程师)" prop="hqUserName" placement="top" :color="roleForm.hqUserName ? '#66b1ff' : ''">
<el-card> <el-card>
<el-form-item prop="hqUserName" style="margin-bottom: 0"> <el-form-item prop="hqUserName" style="margin-bottom: 0">
<h4>张建芳、蒋敏、吴娟、李中立、王晶9、耿红静、张蕾61、符青萍、杨卫利、技术委员会相关成员、总院相关中心总工及四五级工程师</h4> <h4>张建芳、蒋敏、吴娟、李中立、王晶9、耿红静、张蕾61、符青萍、刘金英、技术委员会相关成员、总院相关中心总工及四五级工程师</h4>
<div style="margin-top: 10px;width: 300px;"> <div style="margin-top: 10px;width: 300px;">
<el-input :disabled="disabledXX" v-model="roleForm.hqUserName" placeholder="选择张建芳、蒋敏、吴娟、李中立、王晶9、耿红静、张蕾61、符青萍、杨卫利、技术委员会相关成员、总院相关中心总工及四五级工程师" readonly="readonly" @click.native="choiceZRRList('hqUserId', '选择张建芳、蒋敏、吴娟、李中立、王晶9、耿红静、张蕾61、符青萍、杨卫利、技术委员会相关成员、总院相关中心总工及四五级工程师', roleForm.hqUserId)"></el-input> <el-input :disabled="disabledXX" v-model="roleForm.hqUserName" placeholder="选择张建芳、蒋敏、吴娟、李中立、王晶9、耿红静、张蕾61、符青萍、刘金英、技术委员会相关成员、总院相关中心总工及四五级工程师" readonly="readonly" @click.native="choiceZRRList('hqUserId', '选择张建芳、蒋敏、吴娟、李中立、王晶9、耿红静、张蕾61、符青萍、刘金英、技术委员会相关成员、总院相关中心总工及四五级工程师', roleForm.hqUserId)"></el-input>
</div> </div>
</el-form-item> </el-form-item>
</el-card> </el-card>
@@ -1498,7 +1498,7 @@ export default {
{ required: true, message: '选择总院各中心兼职标准化员/各事业部标准化员', trigger: 'change' }, { required: true, message: '选择总院各中心兼职标准化员/各事业部标准化员', trigger: 'change' },
], ],
hqUserName: [ hqUserName: [
{ required: true, message: '选择张建芳、蒋敏、吴娟、李中立、王晶9、耿红静、张蕾61、符青萍、杨卫利、技术委员会相关成员、总院相关中心总工及四五级工程师', trigger: 'change' }, { required: true, message: '选择张建芳、蒋敏、吴娟、李中立、王晶9、耿红静、张蕾61、符青萍、刘金英、技术委员会相关成员、总院相关中心总工及四五级工程师', trigger: 'change' },
], ],
fggcsUserName: [ fggcsUserName: [
{ required: true, message: '选择标准法规工程师', trigger: 'change' }, { required: true, message: '选择标准法规工程师', trigger: 'change' },
@@ -159,7 +159,7 @@
@submit="handleSubmit" @submit="handleSubmit"
> >
</ProcessFooter> </ProcessFooter>
<el-dialog width='400px' :visible.sync="fileMadel" title="上传文件"> <el-dialog width='400px' :visible.sync="fileMadel" title="上传文件" v-dragDialogWidth :close-on-click-modal="false">
<upload-file v-if="fileMadel" :fileList="fileList" <upload-file v-if="fileMadel" :fileList="fileList"
:action="fileUrl" :action="fileUrl"
:limit="8" :limit="8"
@@ -2214,7 +2214,7 @@
case 'GLWJBUSS': case 'GLWJBUSS':
this.fileList=this.GLWJBUSSFileList this.fileList=this.GLWJBUSSFileList
break; break;
case 'XGDFileList': case 'XGD':
this.fileList=this.XGDFileList this.fileList=this.XGDFileList
break; break;
default : ; default : ;
@@ -2238,7 +2238,7 @@
case 'GLWJBUSS': case 'GLWJBUSS':
this.fileList=this.GLWJBUSSFileList this.fileList=this.GLWJBUSSFileList
break; break;
case 'XGDFileList': case 'XGD':
this.fileList=this.XGDFileList this.fileList=this.XGDFileList
break; break;
default : ; default : ;
@@ -2226,7 +2226,7 @@
case 'GLWJBUSS': case 'GLWJBUSS':
this.fileList=this.GLWJBUSSFileList this.fileList=this.GLWJBUSSFileList
break; break;
case 'XGDFileList': case 'XGD':
this.fileList=this.XGDFileList this.fileList=this.XGDFileList
break; break;
default : ; default : ;
@@ -672,16 +672,16 @@
</el-card> </el-card>
</el-timeline-item> </el-timeline-item>
<el-timeline-item <el-timeline-item
timestamp="征求意见(张建芳、蒋敏、吴娟、李中立、王晶9、耿红静、张蕾61、符青萍、杨卫利、技术委员会相关成员、总院相关中心总工及四五级工程师)" timestamp="征求意见(张建芳、蒋敏、吴娟、李中立、王晶9、耿红静、张蕾61、符青萍、刘金英、技术委员会相关成员、总院相关中心总工及四五级工程师)"
prop="hqUserName" placement="top" :color="roleForm.hqUserName ? '#66b1ff' : ''"> prop="hqUserName" placement="top" :color="roleForm.hqUserName ? '#66b1ff' : ''">
<el-card> <el-card>
<el-form-item prop="hqUserName" style="margin-bottom: 0"> <el-form-item prop="hqUserName" style="margin-bottom: 0">
<h4>张建芳、蒋敏、吴娟、李中立、王晶9、耿红静、张蕾61、符青萍、杨卫利、技术委员会相关成员、总院相关中心总工及四五级工程师</h4> <h4>张建芳、蒋敏、吴娟、李中立、王晶9、耿红静、张蕾61、符青萍、刘金英、技术委员会相关成员、总院相关中心总工及四五级工程师</h4>
<div style="margin-top: 10px;width: 300px;"> <div style="margin-top: 10px;width: 300px;">
<el-input :disabled="disabledXX" v-model="roleForm.hqUserName" <el-input :disabled="disabledXX" v-model="roleForm.hqUserName"
placeholder="选择张建芳、蒋敏、吴娟、李中立、王晶9、耿红静、张蕾61、符青萍、杨卫利、技术委员会相关成员、总院相关中心总工及四五级工程师" placeholder="选择张建芳、蒋敏、吴娟、李中立、王晶9、耿红静、张蕾61、符青萍、刘金英、技术委员会相关成员、总院相关中心总工及四五级工程师"
readonly="readonly" readonly="readonly"
@click.native="choiceZRRList('hqUserId', '选择张建芳、蒋敏、吴娟、李中立、王晶9、耿红静、张蕾61、符青萍、杨卫利、技术委员会相关成员、总院相关中心总工及四五级工程师', roleForm.hqUserId)"></el-input> @click.native="choiceZRRList('hqUserId', '选择张建芳、蒋敏、吴娟、李中立、王晶9、耿红静、张蕾61、符青萍、刘金英、技术委员会相关成员、总院相关中心总工及四五级工程师', roleForm.hqUserId)"></el-input>
</div> </div>
</el-form-item> </el-form-item>
</el-card> </el-card>
@@ -1724,7 +1724,7 @@
hqUserName: [ hqUserName: [
{ {
required: true, required: true,
message: '选择张建芳、蒋敏、吴娟、李中立、王晶9、耿红静、张蕾61、符青萍、杨卫利、技术委员会相关成员、总院相关中心总工及四五级工程师', message: '选择张建芳、蒋敏、吴娟、李中立、王晶9、耿红静、张蕾61、符青萍、刘金英、技术委员会相关成员、总院相关中心总工及四五级工程师',
trigger: 'blur' trigger: 'blur'
}, },
], ],
@@ -38,8 +38,8 @@
></TimeLineFormItem> ></TimeLineFormItem>
<TimeLineFormItem <TimeLineFormItem
prop="hqUserName" prop="hqUserName"
timestamp="征求意见(张建芳、蒋敏、吴娟、李中立、王晶9、耿红静、张蕾61、符青萍、杨卫利、技术委员会相关成员、总院相关中心总工及四五级工程师)" timestamp="征求意见(张建芳、蒋敏、吴娟、李中立、王晶9、耿红静、张蕾61、符青萍、刘金英、技术委员会相关成员、总院相关中心总工及四五级工程师)"
title="张建芳、蒋敏、吴娟、李中立、王晶9、耿红静、张蕾61、符青萍、杨卫利、技术委员会相关成员、总院相关中心总工及四五级工程师" title="张建芳、蒋敏、吴娟、李中立、王晶9、耿红静、张蕾61、符青萍、刘金英、技术委员会相关成员、总院相关中心总工及四五级工程师"
:id.sync="roleForm.hqUserId" :id.sync="roleForm.hqUserId"
:name.sync="roleForm.hqUserName" :name.sync="roleForm.hqUserName"
disabled disabled