|
@@ -40,13 +40,26 @@
|
|
<el-table class="table-box" v-loading="loading" border :data="roleList" v-if="pageType==1">
|
|
<el-table class="table-box" v-loading="loading" border :data="roleList" v-if="pageType==1">
|
|
<el-table-column label="序号" width="80" align="center" type="index"/>
|
|
<el-table-column label="序号" width="80" align="center" type="index"/>
|
|
<el-table-column label="名称" prop="roleName" align="center" :show-overflow-tooltip="true" width="200"/>
|
|
<el-table-column label="名称" prop="roleName" align="center" :show-overflow-tooltip="true" width="200"/>
|
|
- <el-table-column label="权限字符" prop="roleKey" align="center" :show-overflow-tooltip="true" width="200"/>
|
|
|
|
|
|
+ <el-table-column label="权限字符" prop="roleKey" align="center" :show-overflow-tooltip="true" width="200">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <span>{{scope.row.roleKey?scope.row.roleKey:'--'}}</span>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <!--<el-table-column label="权限类型" prop="onlyIdentify" align="center" :show-overflow-tooltip="true" width="100">-->
|
|
|
|
+ <!--<template slot-scope="scope">-->
|
|
|
|
+ <!--<span>{{scope.row.onlyIdentify?'功能权限':'数据权限'}}</span>-->
|
|
|
|
+ <!--</template>-->
|
|
|
|
+ <!--</el-table-column>-->
|
|
<el-table-column label="数据范围" prop="dataScope" align="center" :show-overflow-tooltip="true" width="296">
|
|
<el-table-column label="数据范围" prop="dataScope" align="center" :show-overflow-tooltip="true" width="296">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
<p v-for="(item,index) in optionsDataList" :key="index" v-if="scope.row.dataScope == item.type">{{item.value}}</p>
|
|
<p v-for="(item,index) in optionsDataList" :key="index" v-if="scope.row.dataScope == item.type">{{item.value}}</p>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column label="描述" prop="roleDesc" align="center" :show-overflow-tooltip="true"/>
|
|
|
|
|
|
+ <el-table-column label="描述" prop="roleDesc" align="center" :show-overflow-tooltip="true">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <span>{{scope.row.roleDesc?scope.row.roleDesc:'--'}}</span>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
<el-table-column label="状态" prop="dataScope" align="state" :show-overflow-tooltip="true" width="100">
|
|
<el-table-column label="状态" prop="dataScope" align="state" :show-overflow-tooltip="true" width="100">
|
|
<template slot-scope="scope">{{scope.row.state?'启用':'停用'}}</template>
|
|
<template slot-scope="scope">{{scope.row.state?'启用':'停用'}}</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
@@ -54,19 +67,17 @@
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
<div class="table-button-box">
|
|
<div class="table-button-box">
|
|
<p class="table-button-null"></p>
|
|
<p class="table-button-null"></p>
|
|
- <!--<p class="table-button-p"-->
|
|
|
|
- <!--@click="copyButton(scope.row)"-->
|
|
|
|
- <!--v-hasPermiRouter="['system:role:edit','system:role:query']"-->
|
|
|
|
- <!-->复制</p>-->
|
|
|
|
<p class="table-button-p"
|
|
<p class="table-button-p"
|
|
@click="handleUpdate(scope.row)"
|
|
@click="handleUpdate(scope.row)"
|
|
v-hasPermiRouter="['system:role:edit']"
|
|
v-hasPermiRouter="['system:role:edit']"
|
|
>编辑</p>
|
|
>编辑</p>
|
|
<p class="table-button-p"
|
|
<p class="table-button-p"
|
|
|
|
+ v-if="!scope.row.onlyIdentify"
|
|
@click="copyButton(2,scope.row)"
|
|
@click="copyButton(2,scope.row)"
|
|
v-hasPermiRouter="['system:role:perms']"
|
|
v-hasPermiRouter="['system:role:perms']"
|
|
>PC权限配置</p>
|
|
>PC权限配置</p>
|
|
<p class="table-button-p"
|
|
<p class="table-button-p"
|
|
|
|
+ v-if="!scope.row.onlyIdentify"
|
|
@click="copyButton(3,scope.row)"
|
|
@click="copyButton(3,scope.row)"
|
|
v-hasPermiRouter="['applet:role:perms']"
|
|
v-hasPermiRouter="['applet:role:perms']"
|
|
>小程序权限配置</p>
|
|
>小程序权限配置</p>
|
|
@@ -98,16 +109,16 @@
|
|
<el-form-item label="角色名称" prop="roleName">
|
|
<el-form-item label="角色名称" prop="roleName">
|
|
<el-input v-model="dialogForm.roleName" placeholder="请输入角色名称" maxLength="10" style="width:320px;"/>
|
|
<el-input v-model="dialogForm.roleName" placeholder="请输入角色名称" maxLength="10" style="width:320px;"/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="权限字符" prop="roleKey">
|
|
|
|
- <el-input v-model="dialogForm.roleKey" :disabled="!!dialogForm.roleId" placeholder="请输入权限字符" maxLength="20" style="width:320px;"/>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="描述" prop="roleDesc">
|
|
|
|
- <el-input v-model="dialogForm.roleDesc" placeholder="请输入描述" maxLength="20" style="width:320px;"/>
|
|
|
|
|
|
+ <el-form-item label="权限类型" prop="onlyIdentify">
|
|
|
|
+ <el-radio-group v-model="dialogForm.onlyIdentify" :disabled="!!dialogForm.roleId">
|
|
|
|
+ <el-radio :label="false">数据权限</el-radio>
|
|
|
|
+ <el-radio :label="true">功能权限</el-radio>
|
|
|
|
+ </el-radio-group>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="排序" prop="roleSort">
|
|
|
|
- <el-input-number v-model="dialogForm.roleSort" controls-position="right" :min="1" :max="9999" style="width:320px;"></el-input-number>
|
|
|
|
|
|
+ <el-form-item label="权限字符" prop="roleKey" v-if="dialogForm.onlyIdentify">
|
|
|
|
+ <el-input v-model="dialogForm.roleKey" :disabled="!!dialogForm.roleId" placeholder="请输入权限字符" maxLength="20" style="width:320px;"/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="数据范围" prop="dataScope">
|
|
|
|
|
|
+ <el-form-item label="数据范围" prop="dataScope" v-if="!dialogForm.onlyIdentify">
|
|
<el-select v-model="dialogForm.dataScope"
|
|
<el-select v-model="dialogForm.dataScope"
|
|
placeholder="请选择数据范围"
|
|
placeholder="请选择数据范围"
|
|
clearable style="width:320px;">
|
|
clearable style="width:320px;">
|
|
@@ -119,7 +130,7 @@
|
|
></el-option>
|
|
></el-option>
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="指定部门" prop="customDept" v-if="dialogForm.dataScope == 5">
|
|
|
|
|
|
+ <el-form-item label="指定部门" prop="customDept" v-if="dialogForm.dataScope == 5&&!dialogForm.onlyIdentify">
|
|
<el-cascader
|
|
<el-cascader
|
|
style="width:320px;"
|
|
style="width:320px;"
|
|
:options="treeselectList"
|
|
:options="treeselectList"
|
|
@@ -129,12 +140,18 @@
|
|
clearable>
|
|
clearable>
|
|
</el-cascader>
|
|
</el-cascader>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
+ <el-form-item label="排序" prop="roleSort">
|
|
|
|
+ <el-input-number v-model="dialogForm.roleSort" controls-position="right" :min="1" :max="9999" style="width:320px;"></el-input-number>
|
|
|
|
+ </el-form-item>
|
|
<el-form-item label="状态" prop="state">
|
|
<el-form-item label="状态" prop="state">
|
|
<el-radio-group v-model="dialogForm.state" style="width:320px;">
|
|
<el-radio-group v-model="dialogForm.state" style="width:320px;">
|
|
<el-radio :label="true">启用</el-radio>
|
|
<el-radio :label="true">启用</el-radio>
|
|
<el-radio :label="false">停用</el-radio>
|
|
<el-radio :label="false">停用</el-radio>
|
|
</el-radio-group>
|
|
</el-radio-group>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
+ <el-form-item label="描述" prop="roleDesc">
|
|
|
|
+ <el-input v-model="dialogForm.roleDesc" placeholder="请输入描述" maxLength="20" style="width:320px;"/>
|
|
|
|
+ </el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
<div slot="footer" class="dialog-footer dialog-footer-box">
|
|
<div slot="footer" class="dialog-footer dialog-footer-box">
|
|
<p class="dialog-footer-button-null"></p>
|
|
<p class="dialog-footer-button-null"></p>
|
|
@@ -208,10 +225,6 @@ export default {
|
|
{ required: true, message: "请输入权限字符", trigger: "blur" },
|
|
{ required: true, message: "请输入权限字符", trigger: "blur" },
|
|
{ required: true, message: "请输入权限字符", validator: this.spaceJudgment, trigger: "blur" }
|
|
{ required: true, message: "请输入权限字符", validator: this.spaceJudgment, trigger: "blur" }
|
|
],
|
|
],
|
|
- roleDesc: [
|
|
|
|
- { required: true, message: "请输入描述", trigger: "blur" },
|
|
|
|
- { required: true, message: "请输入描述", validator: this.spaceJudgment, trigger: "blur" }
|
|
|
|
- ],
|
|
|
|
roleSort: [
|
|
roleSort: [
|
|
{ required: true, message: "请输入排序", trigger: "blur" },
|
|
{ required: true, message: "请输入排序", trigger: "blur" },
|
|
{ required: true, message: "请输入排序", validator: this.spaceJudgment, trigger: "blur" }
|
|
{ required: true, message: "请输入排序", validator: this.spaceJudgment, trigger: "blur" }
|
|
@@ -222,6 +235,9 @@ export default {
|
|
state: [
|
|
state: [
|
|
{ required: true, message: "请选择状态", trigger: "blur" },
|
|
{ required: true, message: "请选择状态", trigger: "blur" },
|
|
],
|
|
],
|
|
|
|
+ onlyIdentify: [
|
|
|
|
+ { required: true, message: "请选择权限类型", trigger: "blur" },
|
|
|
|
+ ],
|
|
},
|
|
},
|
|
};
|
|
};
|
|
},
|
|
},
|
|
@@ -270,15 +286,6 @@ export default {
|
|
});
|
|
});
|
|
this.handleQuery();
|
|
this.handleQuery();
|
|
},
|
|
},
|
|
- /** 新增按钮操作 */
|
|
|
|
- handleAdd() {
|
|
|
|
- let obj = {
|
|
|
|
- type:1,
|
|
|
|
- title:"新增角色",
|
|
|
|
- };
|
|
|
|
- this.$set(this,'propsData',obj);
|
|
|
|
- this.$set(this,'pageType',2);
|
|
|
|
- },
|
|
|
|
/** 修改按钮操作 */
|
|
/** 修改按钮操作 */
|
|
handleUpdate(row) {
|
|
handleUpdate(row) {
|
|
systemRoleDetail({roleId:row.roleId}).then(response => {
|
|
systemRoleDetail({roleId:row.roleId}).then(response => {
|
|
@@ -320,7 +327,7 @@ export default {
|
|
dialogOff(){
|
|
dialogOff(){
|
|
this.$set(this,'dialogType',false);
|
|
this.$set(this,'dialogType',false);
|
|
},
|
|
},
|
|
- //弹层开启
|
|
|
|
|
|
+ /** 新增按钮操作-弹层开启 */
|
|
dialogOpen(){
|
|
dialogOpen(){
|
|
this.dialogFormReset();
|
|
this.dialogFormReset();
|
|
this.$set(this,'dialogTitle','新增');
|
|
this.$set(this,'dialogTitle','新增');
|
|
@@ -330,24 +337,33 @@ export default {
|
|
dialogSubmit(){
|
|
dialogSubmit(){
|
|
this.$refs["dialogForm"].validate(valid => {
|
|
this.$refs["dialogForm"].validate(valid => {
|
|
if (valid) {
|
|
if (valid) {
|
|
|
|
+ let obj = {
|
|
|
|
+ roleName:this.dialogForm.roleName,
|
|
|
|
+ onlyIdentify:this.dialogForm.onlyIdentify,
|
|
|
|
+ roleDesc:this.dialogForm.roleDesc,
|
|
|
|
+ roleSort:this.dialogForm.roleSort,
|
|
|
|
+ state:this.dialogForm.state,
|
|
|
|
+ }
|
|
|
|
+ if(!this.dialogForm.onlyIdentify){
|
|
|
|
+ obj.roleKey = '';
|
|
|
|
+ obj.dataScope = this.dialogForm.dataScope;
|
|
|
|
+ obj.customDept = this.dialogForm.dataScope == 5 ? this.dialogForm.customDept + '' : '';
|
|
|
|
+ }else{
|
|
|
|
+ obj.roleKey = this.dialogForm.roleKey;
|
|
|
|
+ obj.dataScope = 4;
|
|
|
|
+ obj.customDept = '';
|
|
|
|
+ }
|
|
if(this.dialogForm.roleId){
|
|
if(this.dialogForm.roleId){
|
|
- let obj = {
|
|
|
|
- roleId:this.dialogForm.roleId,
|
|
|
|
- roleName:this.dialogForm.roleName,
|
|
|
|
- roleKey:this.dialogForm.roleKey,
|
|
|
|
- roleDesc:this.dialogForm.roleDesc,
|
|
|
|
- roleSort:this.dialogForm.roleSort,
|
|
|
|
- dataScope:this.dialogForm.dataScope,
|
|
|
|
- customDept:this.dialogForm.dataScope == 5 ? this.dialogForm.customDept + '' : '',
|
|
|
|
- state:this.dialogForm.state,
|
|
|
|
- }
|
|
|
|
|
|
+ //编辑
|
|
|
|
+ obj.roleId = this.dialogForm.roleId;
|
|
systemRoleUpdate(obj).then(response => {
|
|
systemRoleUpdate(obj).then(response => {
|
|
this.msgSuccess(response.message);
|
|
this.msgSuccess(response.message);
|
|
this.getList();
|
|
this.getList();
|
|
this.$set(this,'dialogType',false);
|
|
this.$set(this,'dialogType',false);
|
|
});
|
|
});
|
|
}else{
|
|
}else{
|
|
- systemRoleAdd(this.dialogForm).then(response => {
|
|
|
|
|
|
+ //新增
|
|
|
|
+ systemRoleAdd(obj).then(response => {
|
|
this.msgSuccess(response.message);
|
|
this.msgSuccess(response.message);
|
|
this.getList();
|
|
this.getList();
|
|
this.$set(this,'dialogType',false);
|
|
this.$set(this,'dialogType',false);
|
|
@@ -361,7 +377,8 @@ export default {
|
|
roleName:'',
|
|
roleName:'',
|
|
roleKey:'',
|
|
roleKey:'',
|
|
roleDesc:'',
|
|
roleDesc:'',
|
|
- roleSort:'',
|
|
|
|
|
|
+ roleSort:1,
|
|
|
|
+ onlyIdentify:false,
|
|
customDept:'',
|
|
customDept:'',
|
|
dataScope:'',
|
|
dataScope:'',
|
|
state:true,
|
|
state:true,
|