|
@@ -1,59 +1,39 @@
|
|
<template>
|
|
<template>
|
|
<view class="container">
|
|
<view class="container">
|
|
<evan-form ref="formData" :rules="ruleValidate" :model="formData">
|
|
<evan-form ref="formData" :rules="ruleValidate" :model="formData">
|
|
- <evan-form-item label="角色名称" prop="name">
|
|
|
|
- <input class="form-input" :maxlength="30" placeholder-class="form-input-placeholder" placeholder="请输入角色名称(最多30个字符)" v-model="formData.name" />
|
|
|
|
|
|
+ <evan-form-item prop="name">
|
|
|
|
+ <u-input class="form-input" :maxlength="30" style="width: 100%;" placeholder="请填写岗位名称(最多30个字符)" v-model="formData.name" />
|
|
</evan-form-item>
|
|
</evan-form-item>
|
|
- <evan-form-item label="角色描述" prop="remarks">
|
|
|
|
- <textarea placeholder-class="form-input-placeholder" :maxlength="500" placeholder="请输入描述(最多500个字符)" v-model="formData.remarks"/>
|
|
|
|
- </evan-form-item>
|
|
|
|
- <evan-form-item label="状态" prop="roleState">
|
|
|
|
- <view style="width: 100%;display:flex;justify-content: flex-end;">
|
|
|
|
- <u-radio-group v-model="formData.isEnable">
|
|
|
|
- <u-radio
|
|
|
|
- v-for="(item, index) in list" :key="index"
|
|
|
|
- :name="item.value"
|
|
|
|
- shape="circle"
|
|
|
|
- >
|
|
|
|
- {{item.name}}
|
|
|
|
- </u-radio>
|
|
|
|
- </u-radio-group>
|
|
|
|
- </view>
|
|
|
|
- </evan-form-item>
|
|
|
|
- <view class="form-footer-btn">
|
|
|
|
- <button @click="cancel()">取消</button>
|
|
|
|
- <button type="primary" :loading="loading" :style="{background:$config('buttonColors')}" @click="save('formData')">保存</button>
|
|
|
|
|
|
+ <view class="role-box">
|
|
|
|
+ <view>岗位权限:</view>
|
|
|
|
+ <roleAuthSet ref="roleSet" @addPowerOk="addPowerOk"></roleAuthSet>
|
|
|
|
+ </view>
|
|
|
|
+ <view class="form-footer-btn flex align_center justify_center">
|
|
|
|
+ <u-button shape="circle" v-if="!formData.isEnable" @click="delRole()" :custom-style="{width:'300rpx' }">删除</u-button>
|
|
|
|
+ <u-button shape="circle" type="info" :custom-style="{ background: '#066cff', color: '#fff',width:'300rpx',marginLeft:'20rpx' }" @click="save('formData')">保存</u-button>
|
|
</view>
|
|
</view>
|
|
</evan-form>
|
|
</evan-form>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
- import {saveRolePower} from '@/api/powerRole-md.js'
|
|
|
|
|
|
+ import roleAuthSet from './roleAuthSet.vue'
|
|
|
|
+ import { clzConfirm } from '@/libs/tools.js'
|
|
|
|
+ import {saveRolePower, delectRolePower} from '@/api/powerRole-md.js'
|
|
export default{
|
|
export default{
|
|
name:"formData",
|
|
name:"formData",
|
|
|
|
+ components:{
|
|
|
|
+ roleAuthSet
|
|
|
|
+ },
|
|
data(){
|
|
data(){
|
|
return{
|
|
return{
|
|
loading: false,
|
|
loading: false,
|
|
formData:{
|
|
formData:{
|
|
name:'',
|
|
name:'',
|
|
- isEnable:'',
|
|
|
|
|
|
+ isEnable:'1',
|
|
remarks:''
|
|
remarks:''
|
|
},
|
|
},
|
|
type: '', // edit 编辑页 add 新增页
|
|
type: '', // edit 编辑页 add 新增页
|
|
- list: [
|
|
|
|
- {
|
|
|
|
- value: 1,
|
|
|
|
- name: '启用',
|
|
|
|
- disabled: false,
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- value: 0,
|
|
|
|
- name: '禁用',
|
|
|
|
- disabled: false
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- ],
|
|
|
|
ruleValidate: {
|
|
ruleValidate: {
|
|
name: [
|
|
name: [
|
|
{ required: true, message: '请输入角色名称', trigger: 'change' },
|
|
{ required: true, message: '请输入角色名称', trigger: 'change' },
|
|
@@ -68,11 +48,6 @@
|
|
}
|
|
}
|
|
}
|
|
}
|
|
],
|
|
],
|
|
- isEnable: [
|
|
|
|
- {
|
|
|
|
- required: true, type:'string',message: '请选择状态', trigger: 'blur'
|
|
|
|
- }
|
|
|
|
- ],
|
|
|
|
},
|
|
},
|
|
}
|
|
}
|
|
},
|
|
},
|
|
@@ -82,6 +57,8 @@
|
|
uni.setNavigationBarTitle({
|
|
uni.setNavigationBarTitle({
|
|
title: this.type=="add" ? '添加角色' : '编辑角色'
|
|
title: this.type=="add" ? '添加角色' : '编辑角色'
|
|
})
|
|
})
|
|
|
|
+ // 初始化角色
|
|
|
|
+ this.$refs.roleSet.getMenuList(options.id)
|
|
this.init()
|
|
this.init()
|
|
},
|
|
},
|
|
methods:{
|
|
methods:{
|
|
@@ -89,39 +66,53 @@
|
|
init(){
|
|
init(){
|
|
if(this.type=='edit'){
|
|
if(this.type=='edit'){
|
|
let data = this.$store.state.vuex_nowRoleInfo
|
|
let data = this.$store.state.vuex_nowRoleInfo
|
|
- console.log(data)
|
|
|
|
this.formData.name = data.name
|
|
this.formData.name = data.name
|
|
- this.formData.isEnable = data.isEnable
|
|
|
|
- this.formData.remarks = data.remarks || ''
|
|
|
|
this.formData.id = data.id
|
|
this.formData.id = data.id
|
|
}else{
|
|
}else{
|
|
this.formData.name =''
|
|
this.formData.name =''
|
|
- this.formData.isEnable = 0
|
|
|
|
- this.formData.remarks =''
|
|
|
|
this.formData.id =''
|
|
this.formData.id =''
|
|
}
|
|
}
|
|
},
|
|
},
|
|
// 保存
|
|
// 保存
|
|
save(name){
|
|
save(name){
|
|
- let data=this.formData
|
|
|
|
- this.formData.isEnable = String(this.formData.isEnable)
|
|
|
|
- console.log(data)
|
|
|
|
this.$refs[name].validate((valid) => {
|
|
this.$refs[name].validate((valid) => {
|
|
if (valid) {
|
|
if (valid) {
|
|
- this.loading = true
|
|
|
|
- saveRolePower(data).then(res=>{
|
|
|
|
- // console.log(res)
|
|
|
|
- if(res.status == 200){
|
|
|
|
- uni.showToast({icon: 'none', title: res.message})
|
|
|
|
- this.cancel()
|
|
|
|
- }else{
|
|
|
|
- uni.showToast({icon: 'none', title: res.message})
|
|
|
|
|
|
+ this.loading = true
|
|
|
|
+ this.$refs.roleSet.handleSubmit()
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ // 保存角色
|
|
|
|
+ addPowerOk(){
|
|
|
|
+ saveRolePower(this.formData).then(res=>{
|
|
|
|
+ if(res.status == 200){
|
|
|
|
+ this.cancel()
|
|
|
|
+ }
|
|
|
|
+ uni.showToast({icon: 'none', title: res.message})
|
|
|
|
+ this.loading = false
|
|
|
|
+ }).catch(err=>{
|
|
|
|
+ this.loading = false
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ // 删除角色
|
|
|
|
+ delRole(){
|
|
|
|
+ let _this = this
|
|
|
|
+ const item = this.formData
|
|
|
|
+ clzConfirm({
|
|
|
|
+ title: "提示",
|
|
|
|
+ content: "数据删除后无法恢复, 确认删除吗?",
|
|
|
|
+ showCancel: true,
|
|
|
|
+ success: function(e){
|
|
|
|
+ if(e.confirm||e.index == 0){
|
|
|
|
+ // 删除数据
|
|
|
|
+ delectRolePower({id: item.id}).then(res=>{
|
|
|
|
+ if(res.status == 200){
|
|
|
|
+ this.cancel()
|
|
|
|
+ }
|
|
|
|
+ uni.showToast({icon: 'none', title: res.message})
|
|
|
|
+ })
|
|
}
|
|
}
|
|
- this.loading = false
|
|
|
|
- }).catch(err=>{
|
|
|
|
- this.loading = false
|
|
|
|
- })
|
|
|
|
- }
|
|
|
|
|
|
+ },
|
|
})
|
|
})
|
|
},
|
|
},
|
|
// 取消
|
|
// 取消
|
|
@@ -144,11 +135,8 @@
|
|
.form-input-placeholder{
|
|
.form-input-placeholder{
|
|
text-align: right;
|
|
text-align: right;
|
|
}
|
|
}
|
|
- textarea {
|
|
|
|
- text-align: right;
|
|
|
|
- margin: 20upx;
|
|
|
|
- height: 100upx;
|
|
|
|
- width: 95%;
|
|
|
|
|
|
+ .role-box{
|
|
|
|
+ padding: 20rpx 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</style>
|
|
</style>
|