Mod aaa-12 增加权限,修改域的增加、删除功能、修改role与user界面

SOL:
修改人:maxiaonan
检视人:maxiaonan
This commit is contained in:
maxiaonan 2019-07-10 17:43:58 +08:00
parent 584ce90ef4
commit 339579d181
10 changed files with 70 additions and 89 deletions

View File

@ -111,7 +111,7 @@ export default {
this.setToken(data.access_token) this.setToken(data.access_token)
this.setExpireTime(data.expires_in) this.setExpireTime(data.expires_in)
this.setUser(data.user) this.setUser(data.user)
this.setPermissions(['user:view', 'role:update', 'dept:add', 'resource:view', 'role:add', 'role:export', 'menu:update', 'menu:export', 'resource:export', 'dept:export', 'menu:view', 'role:view', 'dept:delete', 'user:export', 'role:delete', 'menu:delete', 'dept:view', 'user:add', 'user:delete', 'log:view', 'resource:delete', 'user:kickout', 'user:update', 'dept:update', 'menu:add', 'log:delete', 'domain:view', 'redis:view', 'log:export', 'user:reset', 'user:online', 'resource:add']) this.setPermissions(['user:view', 'role:update', 'domain:view', 'domain:export', 'domain:add', 'domain:delete', 'domain:update', 'dept:add', 'resource:view', 'role:add', 'role:export', 'menu:update', 'menu:export', 'resource:export', 'dept:export', 'menu:view', 'role:view', 'dept:delete', 'user:export', 'role:delete', 'menu:delete', 'dept:view', 'user:add', 'user:delete', 'log:view', 'resource:delete', 'user:kickout', 'user:update', 'dept:update', 'menu:add', 'log:delete', 'domain:view', 'redis:view', 'log:export', 'user:reset', 'user:online', 'resource:add'])
this.setRoles(['管理员']) this.setRoles(['管理员'])
} }
} }

View File

@ -188,7 +188,7 @@ export default {
content: '当您点击确定按钮后,这些记录将会被彻底删除,如果其包含子记录,也将一并删除!', content: '当您点击确定按钮后,这些记录将会被彻底删除,如果其包含子记录,也将一并删除!',
centered: true, centered: true,
onOk () { onOk () {
that.$delete('domains/' + that.selectedRowKeys.join(',')).then(() => { that.$delete('auth/v1/domains/' + that.selectedRowKeys.join(',')).then(() => {
that.$message.success('删除成功') that.$message.success('删除成功')
that.selectedRowKeys = [] that.selectedRowKeys = []
that.fetch() that.fetch()
@ -207,7 +207,7 @@ export default {
sortField = sortedInfo.field sortField = sortedInfo.field
sortOrder = sortedInfo.order sortOrder = sortedInfo.order
} }
this.$export('domains/excel', { this.$export('auth/v1/domains/excel', {
sortField: sortField, sortField: sortField,
sortOrder: sortOrder, sortOrder: sortOrder,
...this.queryParams ...this.queryParams

View File

@ -18,7 +18,7 @@
]}]"/> ]}]"/>
</a-form-item> </a-form-item>
<a-form-item label='域编号' v-bind="formItemLayout"> <a-form-item label='域编号' v-bind="formItemLayout">
<a-input-number v-model="domain.domainid" style="width: 100%"/> <a-input v-model="domain.domainid" style="width: 100%"/>
</a-form-item> </a-form-item>
<a-form-item label='域描述' v-bind="formItemLayout"> <a-form-item label='域描述' v-bind="formItemLayout">
<a-input v-model="domain.description" style="width: 100%"/> <a-input v-model="domain.description" style="width: 100%"/>
@ -56,7 +56,6 @@ export default {
methods: { methods: {
reset () { reset () {
this.loading = false this.loading = false
this.expandedKeys = this.checkedKeys = []
this.domain = {} this.domain = {}
this.form.resetFields() this.form.resetFields()
}, },
@ -66,17 +65,12 @@ export default {
}, },
handleSubmit () { handleSubmit () {
let checkedArr = Object.is(this.checkedKeys.checked, undefined) ? this.checkedKeys : this.checkedKeys.checked
this.form.validateFields((err, values) => { this.form.validateFields((err, values) => {
if (!err) { if (!err) {
this.loading = true this.loading = true
if (checkedArr.length) { let domain = this.form.getFieldsValue()
this.dept.parentId = checkedArr[0] this.$bodyRequest('post', 'auth/v1/domains', {
} else { ...domain
this.dept.parentId = ''
}
this.$post('auth/v1/domains', {
...this.dept
}).then(() => { }).then(() => {
this.reset() this.reset()
this.$emit('success') this.$emit('success')

View File

@ -10,17 +10,17 @@
style="height: calc(100% - 55px);overflow: auto;padding-bottom: 53px;"> style="height: calc(100% - 55px);overflow: auto;padding-bottom: 53px;">
<a-form :form="form"> <a-form :form="form">
<a-form-item label='域名称' v-bind="formItemLayout"> <a-form-item label='域名称' v-bind="formItemLayout">
<a-input v-decorator="['domainName', <a-input v-decorator="['name',
{rules: [ {rules: [
{ required: true, message: '域名称不能为空'}, { required: true, message: '域名称不能为空'},
{ max: 20, message: '长度不能超过20个字符'} { max: 20, message: '长度不能超过20个字符'}
]}]"/> ]}]"/>
</a-form-item> </a-form-item>
<a-form-item label='域编号' v-bind="formItemLayout"> <a-form-item label='域编号' v-bind="formItemLayout">
<a-input-number v-decorator="['orderNum']" style="width: 100%"/> <a-input v-decorator="['domainid']" style="width: 100%"/>
</a-form-item> </a-form-item>
<a-form-item label='域描述' v-bind="formItemLayout"> <a-form-item label='域描述' v-bind="formItemLayout">
<a-input v-decorator="['domainId']" style="width: 100%"/> <a-input v-decorator="['description']" style="width: 100%"/>
</a-form-item> </a-form-item>
</a-form> </a-form>
<div class="drawer-bootom-button"> <div class="drawer-bootom-button">
@ -68,21 +68,20 @@ export default {
this.expandedKeys = expandedKeys this.expandedKeys = expandedKeys
}, },
setFormValues ({...domain}) { setFormValues ({...domain}) {
this.form.getFieldDecorator('domainName') this.form.getFieldDecorator('name')
this.form.setFieldsValue({'domainName': domain.name}) this.form.setFieldsValue({'name': domain.name})
this.form.getFieldDecorator('orderNum') this.form.getFieldDecorator('domainid')
this.form.setFieldsValue({'orderNum': domain.order}) this.form.setFieldsValue({'domainid': domain.domainid})
this.form.getFieldDecorator('domainId') this.form.getFieldDecorator('description')
this.form.setFieldsValue({'domainId': domain.domainId}) this.form.setFieldsValue({'description': domain.description})
this.domain.domainId = domain.domainId
}, },
handleSubmit () { handleSubmit () {
this.form.validateFields((err, values) => { this.form.validateFields((err, values) => {
if (!err) { if (!err) {
this.loading = true this.loading = true
let domain = this.form.getFieldsValue() let domain = this.form.getFieldsValue()
domain.domainId = this.domain.domainId console.log(domain.domainid)
this.$put('domains', { this.$bodyRequest('put', `auth/v1/domains/${domain.domainid}`, {
...domain ...domain
}).then(() => { }).then(() => {
this.reset() this.reset()
@ -96,16 +95,16 @@ export default {
}, },
watch: { watch: {
domainEditVisible () { domainEditVisible () {
if (this.domainEditVisible) { // if (this.domainEditVisible) {
this.$get('menu').then((r) => { // this.$get('menu').then((r) => {
this.allTreeKeys = r.data.ids // this.allTreeKeys = r.data.ids
this.$get('role/menu/' + this.roleInfoData.roleId).then((r) => { // this.$get('role/menu/' + this.roleInfoData.roleId).then((r) => {
this.defaultCheckedKeys.splice(0, this.defaultCheckedKeys.length, r.data) // this.defaultCheckedKeys.splice(0, this.defaultCheckedKeys.length, r.data)
this.checkedKeys = r.data // this.checkedKeys = r.data
this.expandedKeys = r.data // this.expandedKeys = r.data
}) // })
}) // })
} // }
} }
} }
} }

View File

@ -8,8 +8,8 @@
@close="close" @close="close"
:visible="domainInfoVisible" :visible="domainInfoVisible"
style="height: calc(100% - 55px);overflow: auto;padding-bottom: 53px;"> style="height: calc(100% - 55px);overflow: auto;padding-bottom: 53px;">
<p><a-icon type="crown" />&nbsp;&nbsp;域名称{{domainInfoData.roleName}}</p> <p><a-icon type="crown" />&nbsp;&nbsp;域名称{{domainInfoData.name}}</p>
<p :title="domainInfoData.remark"><a-icon type="book" />&nbsp;&nbsp;域描述{{domainInfoData.remark}}</p> <p :title="domainInfoData.description"><a-icon type="book" />&nbsp;&nbsp;域描述{{domainInfoData.description}}</p>
<p><a-icon type="clock-circle" />&nbsp;&nbsp;创建时间{{domainInfoData.createTime}}</p> <p><a-icon type="clock-circle" />&nbsp;&nbsp;创建时间{{domainInfoData.createTime}}</p>
<p><a-icon type="clock-circle" />&nbsp;&nbsp;修改时间{{domainInfoData.modifyTime? domainInfoData.modifyTime : '暂未修改'}}</p> <p><a-icon type="clock-circle" />&nbsp;&nbsp;修改时间{{domainInfoData.modifyTime? domainInfoData.modifyTime : '暂未修改'}}</p>
</a-drawer> </a-drawer>

View File

@ -142,7 +142,7 @@ export default {
}, { }, {
title: '描述', title: '描述',
dataIndex: 'description', dataIndex: 'description',
scopedSlots: {customRender: 'remark'}, scopedSlots: {customRender: 'description'},
width: 350 width: 350
}, { }, {
title: '名称', title: '名称',

View File

@ -86,8 +86,7 @@ export default {
menuSelectHelp: '', menuSelectHelp: '',
role: { role: {
roleName: '', roleName: '',
remark: '', description: ''
menuId: ''
}, },
checkedKeys: [], checkedKeys: [],
expandedKeys: [], expandedKeys: [],
@ -120,32 +119,28 @@ export default {
disableRelate () { disableRelate () {
this.checkStrictly = true this.checkStrictly = true
}, },
handleCheck (checkedKeys) { // handleCheck (checkedKeys) {
this.checkedKeys = checkedKeys // this.checkedKeys = checkedKeys
let checkedArr = Object.is(checkedKeys.checked, undefined) ? checkedKeys : checkedKeys.checked // let checkedArr = Object.is(checkedKeys.checked, undefined) ? checkedKeys : checkedKeys.checked
if (checkedArr.length) { // if (checkedArr.length) {
this.menuSelectStatus = '' // this.menuSelectStatus = ''
this.menuSelectHelp = '' // this.menuSelectHelp = ''
} else { // } else {
this.menuSelectStatus = 'error' // this.menuSelectStatus = 'error'
this.menuSelectHelp = '请选择相应的权限' // this.menuSelectHelp = ''
} // }
}, // },
handleExpand (expandedKeys) { handleExpand (expandedKeys) {
this.expandedKeys = expandedKeys this.expandedKeys = expandedKeys
}, },
handleSubmit () { handleSubmit () {
let checkedArr = Object.is(this.checkedKeys.checked, undefined) ? this.checkedKeys : this.checkedKeys.checked // let checkedArr = Object.is(this.checkedKeys.checked, undefined) ? this.checkedKeys : this.checkedKeys.checked
if (this.validateStatus !== 'success') { if (this.validateStatus !== 'success') {
this.handleRoleNameBlur() this.handleRoleNameBlur()
} else if (checkedArr.length === 0) {
this.menuSelectStatus = 'error'
this.menuSelectHelp = '请选择相应的权限'
} else { } else {
this.form.validateFields((err, values) => { this.form.validateFields((err, values) => {
if (!err) { if (!err) {
this.loading = true this.loading = true
this.role.menuId = checkedArr.join(',')
this.$bodyRequest('post', '/auth/v1/roles', { this.$bodyRequest('post', '/auth/v1/roles', {
...this.role ...this.role
}).then((r) => { }).then((r) => {

View File

@ -82,9 +82,7 @@ export default {
form: this.$form.createForm(this), form: this.$form.createForm(this),
menuSelectStatus: '', menuSelectStatus: '',
menuSelectHelp: '', menuSelectHelp: '',
role: { role: {},
menuId: ''
},
menuTreeData: [], menuTreeData: [],
allTreeKeys: [], allTreeKeys: [],
checkedKeys: [], checkedKeys: [],
@ -145,28 +143,27 @@ export default {
}) })
}, },
handleSubmit () { handleSubmit () {
let checkedArr = Object.is(this.checkedKeys.checked, undefined) ? this.checkedKeys : this.checkedKeys.checked // let checkedArr = Object.is(this.checkedKeys.checked, undefined) ? this.checkedKeys : this.checkedKeys.checked
if (checkedArr.length === 0) { // if (checkedArr.length === 0) {
this.menuSelectStatus = 'error' // this.menuSelectStatus = 'error'
this.menuSelectHelp = '请选择相应的权限' // this.menuSelectHelp = ''
} else { // } else {
this.form.validateFields((err, values) => { this.form.validateFields((err, values) => {
if (!err) { if (!err) {
this.loading = true this.loading = true
let role = this.form.getFieldsValue() let role = this.form.getFieldsValue()
role.roleId = this.roleInfoData.roleId role.roleid = this.roleInfoData.roleid
role.menuId = checkedArr.join(',') this.$bodyRequest('put', 'auth/v1/roles', {
this.$bodyRequest('put', 'auth/v1/roles', { ...role
...role }).then((r) => {
}).then((r) => { this.reset()
this.reset() this.$emit('success')
this.$emit('success') }).catch(() => {
}).catch(() => { this.loading = false
this.loading = false })
}) }
} })
}) // }
}
} }
}, },
watch: { watch: {

View File

@ -234,7 +234,7 @@ export default {
}, },
handleUserAddSuccess () { handleUserAddSuccess () {
this.userAdd.visible = false this.userAdd.visible = false
this.$message.success('新增用户成功初始密码为1234qwer') this.$message.success('新增用户成功')
this.search() this.search()
}, },
edit (record) { edit (record) {
@ -252,9 +252,6 @@ export default {
handleUserInfoClose () { handleUserInfoClose () {
this.userInfo.visible = false this.userInfo.visible = false
}, },
handleDeptChange (value) {
this.queryParams.deptId = value || ''
},
handleDateChange (value) { handleDateChange (value) {
if (value) { if (value) {
this.queryParams.createTimeFrom = value[0] this.queryParams.createTimeFrom = value[0]

View File

@ -98,7 +98,7 @@ export default {
data () { data () {
return { return {
user: { user: {
username: '' name: ''
}, },
loading: false, loading: false,
roleData: [], roleData: [],
@ -114,7 +114,7 @@ export default {
reset () { reset () {
this.validateStatus = '' this.validateStatus = ''
this.help = '' this.help = ''
this.user.username = '' this.user.name = ''
this.loading = false this.loading = false
this.form.resetFields() this.form.resetFields()
}, },
@ -129,8 +129,7 @@ export default {
this.form.validateFields((err, values) => { this.form.validateFields((err, values) => {
if (!err && this.validateStatus === 'success') { if (!err && this.validateStatus === 'success') {
this.loading = true this.loading = true
this.user.roleId = this.user.roleId.join(',') this.$post('auth/v1/users', {
this.$post('user', {
...this.user ...this.user
}).then((r) => { }).then((r) => {
this.reset() this.reset()