Browse Source

【市北代码迁移至安宁】【权限管理】-王公峰-2020-09-17

redesign
wanggongfeng 5 years ago
parent
commit
1ac082d1c4
  1. 17
      src/mixins/view-module.js
  2. 8
      src/views/modules/sys/dept-add-or-update.vue
  3. 2
      src/views/modules/sys/dept.vue
  4. 86
      src/views/modules/sys/role-add-or-update.vue
  5. 31
      src/views/modules/sys/role.vue
  6. 35
      src/views/modules/sys/user-add-or-update.vue
  7. 46
      src/views/modules/sys/user.vue

17
src/mixins/view-module.js

@ -87,6 +87,11 @@ export default {
this.page = val
this.getDataList()
},
// 查询分页,重置1
getDataListSearch () {
this.page = 1
this.getDataList()
},
// 新增 / 修改
addOrUpdateHandle (id) {
this.addOrUpdateVisible = true
@ -144,6 +149,18 @@ export default {
...this.dataForm
})
window.location.href = `${window.SITE_CONFIG['apiURL']}${this.mixinViewModuleOptions.exportMoudle}?${params}`
},
// 时间段控件取值变化事件-清空一个其他都清空
changeTime (dateValue) {
var startTimeIsNull = this.dataForm.startTime === '' || this.dataForm.startTime === 'null' || this.dataForm.startTime === null
var endTimeIsNull = this.dataForm.endTime === '' || this.dataForm.endTime === 'null' || this.dataForm.endTime === null
if (dateValue === null || dateValue === '' || dateValue === 'null') {
this.dataForm.startTime = ''
this.dataForm.endTime = ''
} else if (startTimeIsNull || endTimeIsNull) {
this.dataForm.startTime = dateValue
this.dataForm.endTime = dateValue
}
}
}
}

8
src/views/modules/sys/dept-add-or-update.vue

@ -6,16 +6,19 @@
<el-form :model="dataForm"
:rules="dataRule"
ref="dataForm"
@keyup.enter.native="dataFormSubmitHandle()"
label-width="120px">
<el-form-item prop="name"
:label="$t('dept.name')">
<el-input v-model="dataForm.name"
maxlength="50"
show-word-limit
:placeholder="$t('dept.name')"></el-input>
</el-form-item>
<el-form-item prop="partyCode"
:label="$t('dept.partyCode')">
<el-input v-model="dataForm.partyCode"
maxlength="50"
show-word-limit
:placeholder="$t('dept.partyCode')"></el-input>
</el-form-item>
<el-form-item prop="parentName"
@ -63,7 +66,8 @@
<el-input-number v-model="dataForm.sort"
controls-position="right"
:min="0"
:label="$t('dept.sort')"></el-input-number>
:label="$t('dept.sort')"
style="width:200px"></el-input-number>
</el-form-item>
</el-form>
<template slot="footer">

2
src/views/modules/sys/dept.vue

@ -1,7 +1,7 @@
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__dept">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataListSearch()">
<el-form-item>
<el-button v-if="$hasPermission('sys:dept:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
</el-form-item>

86
src/views/modules/sys/role-add-or-update.vue

@ -6,11 +6,12 @@
<el-form :model="dataForm"
:rules="dataRule"
ref="dataForm"
@keyup.enter.native="dataFormSubmitHandle()"
label-width="120px">
<el-form-item prop="name"
:label="$t('role.name')">
<el-input v-model="dataForm.name"
maxlength="30"
show-word-limit
:placeholder="$t('role.name')"></el-input>
</el-form-item>
<el-form-item label="角色类型">
@ -26,10 +27,12 @@
<el-form-item prop="remark"
:label="$t('role.remark')">
<el-input v-model="dataForm.remark"
maxlength="100"
show-word-limit
:placeholder="$t('role.remark')"></el-input>
</el-form-item>
<el-row>
<el-col :span="5">
<el-col :span="8">
<el-form-item size="mini"
:label="$t('role.menuList')">
<el-tree :data="menuList"
@ -41,7 +44,7 @@
</el-tree>
</el-form-item>
</el-col>
<el-col :span="5">
<el-col :span="8">
<el-form-item size="mini"
:label="$t('role.deptList')">
<el-tree :data="deptList"
@ -53,7 +56,7 @@
</el-tree>
</el-form-item>
</el-col>
<el-col :span="4">
<el-col :span="8">
<el-form-item size="mini"
:label="$t('role.appMenuList')">
<el-tree :data="appMenuList"
@ -65,32 +68,7 @@
</el-tree>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item size="mini"
:label="$t('role.categoryList')">
<el-tree :data="categoryList"
:props="{ label: 'name', children: 'children' }"
node-key="id"
ref="categoryListTree"
accordion
show-checkbox>
</el-tree>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item size="mini"
:label="$t('role.whistleDeptList')">
<el-tree :data="whistleDeptList"
:props="{ label: 'name', children: 'children' }"
node-key="id"
ref="whistleDeptListTree"
accordion
show-checkbox
check-strictly=true>
</el-tree>
</el-form-item>
</el-col>
<el-col :span="5">
<el-col :span="10">
<el-form-item size="mini"
:label="$t('role.analysisMenuList')">
<el-tree :data="analysisMenuList"
@ -120,19 +98,15 @@ export default {
visible: false,
menuList: [],
deptList: [],
whistleDeptList: [],
appMenuList: [],
categoryList: [],
analysisMenuList:[],
roleTypeList: [],
analysisMenuList: [],
dataForm: {
id: '',
name: '',
menuIdList: [],
deptIdList: [],
appMenuIdList: [],
categoryIdList: [],
whistleDeptIdList: [],
analysisMenuIdList: [],
remark: '',
typeKey: ''
@ -159,15 +133,11 @@ export default {
this.$refs.menuListTree.setCheckedKeys([])
this.$refs.deptListTree.setCheckedKeys([])
this.$refs.appMenuListTree.setCheckedKeys([])
this.$refs.categoryListTree.setCheckedKeys([])
this.$refs.whistleDeptListTree.setCheckedKeys([])
this.$refs.analysisMenuListTree.setCheckedKeys([])
Promise.all([
this.getMenuList(),
this.getDeptList(),
this.getAppMenuList(),
this.getCategoryList(),
this.getWhistleDeptList(),
this.getAnalysisMenuList()
]).then(() => {
if (this.dataForm.id) {
@ -194,15 +164,6 @@ export default {
this.deptList = res.data
}).catch(() => { })
},
//
getWhistleDeptList () {
return this.$http.get('/sys/dept/list').then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.whistleDeptList = res.data
}).catch(() => { })
},
// App
getAppMenuList () {
return this.$http.get('/sys/appmenu/select').then(({ data: res }) => {
@ -212,15 +173,6 @@ export default {
this.appMenuList = res.data
}).catch(() => { })
},
//
getCategoryList () {
return this.$http.get('/events/handlecategory/getCategoryList').then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.categoryList = res.data
}).catch(() => { })
},
getAnalysisMenuList () {
return this.$http.get('/sys/analysismenu/select').then(({ data: res }) => {
if (res.code !== 0) {
@ -242,9 +194,7 @@ export default {
this.dataForm.menuIdList.forEach(item => this.$refs.menuListTree.setChecked(item, true))
this.$refs.deptListTree.setCheckedKeys(this.dataForm.deptIdList)
this.dataForm.appMenuIdList.forEach(item => this.$refs.appMenuListTree.setChecked(item, true))
this.dataForm.categoryIdList.forEach(item => this.$refs.categoryListTree.setChecked(item, true))
this.dataForm.analysisMenuIdList.forEach(item => this.$refs.analysisMenuListTree.setChecked(item, true))
this.$refs.whistleDeptListTree.setCheckedKeys(this.dataForm.whistleDeptIdList)
}).catch(() => { })
},
//
@ -262,15 +212,10 @@ export default {
...this.$refs.appMenuListTree.getCheckedKeys(),
...this.$refs.appMenuListTree.getHalfCheckedKeys()
]
this.dataForm.categoryIdList = [
...this.$refs.categoryListTree.getCheckedKeys(),
...this.$refs.categoryListTree.getHalfCheckedKeys()
]
this.dataForm.analysisMenuIdList = [
...this.$refs.analysisMenuListTree.getCheckedKeys(),
...this.$refs.analysisMenuListTree.getHalfCheckedKeys()
]
this.dataForm.whistleDeptIdList = this.$refs.whistleDeptListTree.getCheckedKeys()
this.$http[!this.dataForm.id ? 'post' : 'put']('/sys/role', this.dataForm).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
@ -298,15 +243,8 @@ export default {
}
}
</script>
//
<style lang="scss">
.el-tree {
width: 100%;
overflow-x: auto;
overflow-y: hidden;
}
.el-tree>.el-tree-node {
display: inline-block;
min-width: 100%;
<style scoped>
.el-dialog__wrapper /deep/ .el-dialog__footer {
text-align: center!important;
}
</style>

31
src/views/modules/sys/role.vue

@ -4,19 +4,21 @@
<div class="mod-sys__role">
<el-form :inline="true"
:model="dataForm"
@keyup.enter.native="getDataList()">
@keyup.enter.native="getDataListSearch()">
<el-form-item label="名称">
<el-input v-model="dataForm.name"
placeholder="根据名称关键字模糊匹配"
clearable></el-input>
clearable
@keyup.native="btKeyUpName" style="width:200px"></el-input>
</el-form-item>
<el-form-item>
<el-input v-model="dataForm.completeMatchName"
placeholder="根据名称完全匹配"
clearable></el-input>
clearable
@keyup.native="btKeyUpCompleteMatchName"></el-input>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button>
<el-button @click="getDataListSearch()" type='success'>{{ $t('query') }}</el-button>
</el-form-item>
<el-form-item>
<el-button v-if="$hasPermission('sys:role:save')"
@ -39,19 +41,26 @@
header-align="center"
align="center"
width="50"></el-table-column>
<el-table-column
type="index"
header-align="center"
align="center"
width="50"
label='序号'
></el-table-column>
<el-table-column prop="name"
:label="$t('role.name')"
header-align="center"
align="center"></el-table-column>
align="center" min-width=400 show-overflow-tooltip></el-table-column>
<el-table-column prop="typeKey"
label="角色类型"
header-align="center"
align="center"
:formatter="showRoleTypeFormatter"></el-table-column>
:formatter="showRoleTypeFormatter" width=180></el-table-column>
<el-table-column prop="remark"
:label="$t('role.remark')"
header-align="center"
align="center"></el-table-column>
align="center" width=100 show-overflow-tooltip></el-table-column>
<el-table-column prop="createDate"
:label="$t('role.createDate')"
sortable="custom"
@ -118,6 +127,14 @@ export default {
AddOrUpdate
},
methods: {
btKeyUpName (e) {
e.target.value = e.target.value.replace(/[`~!#$%^&*()_\+=<>?:"{}|~!#¥%……&*()={}|《》?:“”【】\\[\]、;‘’,。、\s+]/g, '')
this.dataForm.name = e.target.value
},
btKeyUpCompleteMatchName (e) {
e.target.value = e.target.value.replace(/[`~!#$%^&*()_\+=<>?:"{}|~!#¥%……&*()={}|《》?:“”【】\\[\]、;‘’,。、\s+]/g, '')
this.dataForm.completeMatchName = e.target.value
},
getSysRoleTypeList () {
this.$http.get(`/sys/dict/listSimple/sysRoleType`).then(({ data: res }) => {
if (res.code !== 0) {

35
src/views/modules/sys/user-add-or-update.vue

@ -1,4 +1,5 @@
<template>
<div class="box">
<el-dialog :visible.sync="visible"
:title="!dataForm.id ? $t('add') : $t('update')"
:close-on-click-modal="false"
@ -6,11 +7,12 @@
<el-form :model="dataForm"
:rules="dataRule"
ref="dataForm"
@keyup.enter.native="dataFormSubmitHandle()"
label-width="120px">
<el-form-item prop="username"
:label="$t('user.username')">
<el-input v-model="dataForm.username"
maxlength="30"
show-word-limit
:placeholder="$t('user.username')"></el-input>
</el-form-item>
<el-form-item prop="deptName"
@ -51,6 +53,8 @@
:class="{ 'is-required': !dataForm.id }">
<el-input v-model="dataForm.password"
type="password"
maxlength="30"
show-word-limit
:placeholder="$t('user.password')"></el-input>
</el-form-item>
<el-form-item prop="comfirmPassword"
@ -58,11 +62,15 @@
:class="{ 'is-required': !dataForm.id }">
<el-input v-model="dataForm.comfirmPassword"
type="password"
maxlength="30"
show-word-limit
:placeholder="$t('user.comfirmPassword')"></el-input>
</el-form-item>
<el-form-item prop="realName"
:label="$t('user.realName')">
<el-input v-model="dataForm.realName"
maxlength="30"
show-word-limit
:placeholder="$t('user.realName')"></el-input>
</el-form-item>
<el-form-item prop="gender"
@ -76,19 +84,23 @@
<el-form-item prop="email"
:label="$t('user.email')">
<el-input v-model="dataForm.email"
maxlength="30"
show-word-limit
:placeholder="$t('user.email')"></el-input>
</el-form-item>
<el-form-item prop="mobile"
:label="$t('user.mobile')">
<el-input v-model="dataForm.mobile"
maxlength="30"
show-word-limit
:placeholder="$t('user.mobile')"></el-input>
</el-form-item>
<el-form-item prop="roleIdList"
:label="$t('user.roleIdList')"
class="role-list">
<el-select v-model="dataForm.roleIdList"
multiple
:placeholder="$t('user.roleIdList')">
multiple filterable
placeholder="可输入进行模糊查询" popper-class='roleSelect'>
<el-option v-for="role in roleList"
:key="role.id"
:label="role.name"
@ -110,6 +122,7 @@
@click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button>
</template>
</el-dialog>
</div>
</template>
<script>
@ -318,4 +331,20 @@ export default {
}
}
}
.roleSelect{
.el-scrollbar__wrap--hidden-default::-webkit-scrollbar {
width: 10px;
}
::-webkit-scrollbar-thumb {
background-color: #a1a3a9;
border-radius: 3px;
}
::-webkit-scrollbar-track{
background:#f5f7fa;
}
::-webkit-scrollbar-corner{
background:#f5f7fa;
}
}
</style>

46
src/views/modules/sys/user.vue

@ -1,21 +1,22 @@
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__user">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataListSearch()">
<el-form-item label="用户名">
<el-input v-model="dataForm.username" :placeholder="$t('user.username')" clearable></el-input>
<el-input v-model="dataForm.username" :placeholder="$t('user.username')" clearable @keyup.native="btKeyUpUsername"></el-input>
</el-form-item>
<el-form-item label="真实姓名">
<el-input v-model="dataForm.realname" placeholder='真实姓名' clearable></el-input>
<el-input v-model="dataForm.realname" placeholder='真实姓名' clearable @keyup.native="btKeyUpRealname"></el-input>
</el-form-item>
<el-form-item label="邮箱">
<el-input v-model="dataForm.email" placeholder="邮箱" clearable></el-input>
<el-input v-model="dataForm.email" placeholder="邮箱" clearable @keyup.native="btKeyUpEmail"></el-input>
</el-form-item>
<br>
<el-form-item label="手机号">
<el-input v-model="dataForm.mobile" placeholder="手机号" clearable></el-input>
<el-input v-model="dataForm.mobile" placeholder="手机号" clearable @keyup.native="btKeyUpMobile"></el-input>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button>
<el-button @click="getDataListSearch()" type="success">{{ $t('query') }}</el-button>
</el-form-item>
<el-form-item>
<el-button v-if="$hasPermission('sys:user:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
@ -24,7 +25,7 @@
<el-button v-if="$hasPermission('sys:user:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
</el-form-item>
<el-form-item>
<el-button v-if="$hasPermission('sys:user:export')" type="info" @click="exportHandle()">{{ $t('export') }}</el-button>
<el-button v-if="$hasPermission('sys:user:export')" type="success" @click="exportHandle()">{{ $t('export') }}</el-button>
</el-form-item>
</el-form>
<el-table
@ -35,12 +36,13 @@
@sort-change="dataListSortChangeHandle"
style="width: 100%;">
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
<el-table-column prop="username" :label="$t('user.username')" sortable="custom" header-align="center" align="center"></el-table-column>
<el-table-column prop="realName" :label="$t('user.realName')" header-align="center" align="center"></el-table-column>
<el-table-column prop="deptName" :label="$t('user.deptName')" header-align="center" align="center"></el-table-column>
<el-table-column prop="email" :label="$t('user.email')" header-align="center" align="center"></el-table-column>
<el-table-column prop="mobile" :label="$t('user.mobile')" sortable="custom" header-align="center" align="center"></el-table-column>
<el-table-column prop="status" :label="$t('user.status')" sortable="custom" header-align="center" align="center">
<el-table-column type="index" label="序号" header-align="center" align="center" width="50"></el-table-column>
<el-table-column prop="username" :label="$t('user.username')" sortable="custom" header-align="center" align="center" min-width="180" show-overflow-tooltip></el-table-column>
<el-table-column prop="realName" :label="$t('user.realName')" header-align="center" align="center" min-width="180" show-overflow-tooltip></el-table-column>
<el-table-column prop="deptName" :label="$t('user.deptName')" header-align="center" align="center" min-width="180" show-overflow-tooltip></el-table-column>
<el-table-column prop="email" :label="$t('user.email')" header-align="center" align="center" min-width=200 show-overflow-tooltip></el-table-column>
<el-table-column prop="mobile" :label="$t('user.mobile')" sortable="custom" header-align="center" align="center" width="120"></el-table-column>
<el-table-column prop="status" :label="$t('user.status')" sortable="custom" header-align="center" align="center" width="100">
<template slot-scope="scope">
<el-tag v-if="scope.row.status === 0" size="small" type="danger">{{ $t('user.status0') }}</el-tag>
<el-tag v-else size="small" type="success">{{ $t('user.status1') }}</el-tag>
@ -93,6 +95,24 @@ export default {
},
components: {
AddOrUpdate
},
methods: {
btKeyUpUsername (e) {
e.target.value = e.target.value.replace(/[`~!#$%^&*()_\+=<>?:"{}|~!#¥%……&*()={}|《》?:“”【】\\[\]、;‘’,。、\s+]/g, '')
this.dataForm.username = e.target.value
},
btKeyUpRealname (e) {
e.target.value = e.target.value.replace(/[`~!#$%^&*()_\+=<>?:"{}|~!#¥%……&*()={}|《》?:“”【】\\[\]、;‘’,。、\s+]/g, '')
this.dataForm.realname = e.target.value
},
btKeyUpEmail (e) {
e.target.value = e.target.value.replace(/[`~!#$%^&*()_\+=<>?:"{}|~!#¥%……&*()={}|《》?:“”【】\\[\]、;‘’,。、\s+]/g, '')
this.dataForm.email = e.target.value
},
btKeyUpMobile (e) {
e.target.value = e.target.value.replace(/[`~!#$%^&*()_\+=<>?:"{}|~!#¥%……&*()={}|《》?:“”【】\\[\]、;‘’,。、\s+]/g, '')
this.dataForm.mobile = e.target.value
}
}
}
</script>

Loading…
Cancel
Save