角色调整
This commit is contained in:
parent
b97b59ea04
commit
3a7a3198e0
@ -3,7 +3,7 @@ import request from '@/utils/request';
|
|||||||
// 查询商品分类列表
|
// 查询商品分类列表
|
||||||
export function listPmsProductCategory(query, pageReq) {
|
export function listPmsProductCategory(query, pageReq) {
|
||||||
return request({
|
return request({
|
||||||
url: '/pms/product/category/tree',
|
url: '/pms/productCategory/tree',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: query
|
data: query
|
||||||
// params: pageReq
|
// params: pageReq
|
||||||
|
@ -114,7 +114,20 @@ export const dynamicRoutes: RouteRecordRaw[] = [
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/system/user-auth',
|
||||||
|
component: Layout,
|
||||||
|
hidden: true,
|
||||||
|
permissions: ['system:user:edit'],
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: 'tenant/:userId(\\d+)',
|
||||||
|
component: () => import('@/views/system/user/tenant.vue'),
|
||||||
|
name: 'AuthTenant',
|
||||||
|
meta: { title: '分配租户', activeMenu: '/system/user' }
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: '/system/role-auth',
|
path: '/system/role-auth',
|
||||||
component: Layout,
|
component: Layout,
|
||||||
|
@ -91,6 +91,7 @@ const tableData = ref([]);
|
|||||||
const dialogVisible = ref(false);
|
const dialogVisible = ref(false);
|
||||||
// 查看明细
|
// 查看明细
|
||||||
const handleSeach = (row: any) => {
|
const handleSeach = (row: any) => {
|
||||||
|
dialogVisible.value = true;
|
||||||
console.log(row);
|
console.log(row);
|
||||||
};
|
};
|
||||||
const resetQuery = () => {
|
const resetQuery = () => {
|
||||||
@ -102,44 +103,6 @@ const resetQuery = () => {
|
|||||||
};
|
};
|
||||||
getListList();
|
getListList();
|
||||||
};
|
};
|
||||||
// const headDate = ref<VersionAdd>({
|
|
||||||
// platformType: '',
|
|
||||||
// versionCode: '',
|
|
||||||
// versionName: '',
|
|
||||||
// downloadUrl: '',
|
|
||||||
// isForceUpdate: null,
|
|
||||||
// releaseNotes: '',
|
|
||||||
// status: null
|
|
||||||
// });
|
|
||||||
// const handleAdd = async () => {
|
|
||||||
// const res = await postAdd(headDate.value);
|
|
||||||
// if (res.code === 200) {
|
|
||||||
// ElMessage.success('添加成功');
|
|
||||||
// headDate.value = {
|
|
||||||
// platformType: '',
|
|
||||||
// versionCode: '',
|
|
||||||
// versionName: '',
|
|
||||||
// downloadUrl: '',
|
|
||||||
// isForceUpdate: null,
|
|
||||||
// releaseNotes: '',
|
|
||||||
// status: null
|
|
||||||
// };
|
|
||||||
// showRefuteDialog.value = false;
|
|
||||||
// getListList();
|
|
||||||
// }
|
|
||||||
// };
|
|
||||||
// 修改
|
|
||||||
// const handleStatusChange = async (row: any) => {
|
|
||||||
// const obj = {
|
|
||||||
// id: row.id,
|
|
||||||
// status: row.status == 1 ? 0 : 1
|
|
||||||
// };
|
|
||||||
// const res = await getupdate(obj);
|
|
||||||
// if (res.code === 200) {
|
|
||||||
// ElMessage.success('修改成功');
|
|
||||||
// getListList();
|
|
||||||
// }
|
|
||||||
// };
|
|
||||||
const handldDelOnline = (row: any) => {
|
const handldDelOnline = (row: any) => {
|
||||||
ElMessageBox.confirm('确定要删除吗?', '提示', {
|
ElMessageBox.confirm('确定要删除吗?', '提示', {
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
|
@ -130,6 +130,15 @@
|
|||||||
<el-tooltip v-if="scope.row.userId !== 1" content="分配角色" placement="top">
|
<el-tooltip v-if="scope.row.userId !== 1" content="分配角色" placement="top">
|
||||||
<el-button v-hasPermi="['system:user:edit']" link type="primary" icon="CircleCheck" @click="handleAuthRole(scope.row)"></el-button>
|
<el-button v-hasPermi="['system:user:edit']" link type="primary" icon="CircleCheck" @click="handleAuthRole(scope.row)"></el-button>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
|
<el-tooltip v-if="scope.row.userId !== 1" content="分配租户" placement="top">
|
||||||
|
<el-button
|
||||||
|
v-hasPermi="['system:user:edit']"
|
||||||
|
link
|
||||||
|
type="primary"
|
||||||
|
icon="CircleCheck"
|
||||||
|
@click="handleAuthTenant(scope.row)"
|
||||||
|
></el-button>
|
||||||
|
</el-tooltip>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -527,6 +536,10 @@ const handleAuthRole = (row: UserVO) => {
|
|||||||
const userId = row.userId;
|
const userId = row.userId;
|
||||||
router.push('/system/user-auth/role/' + userId);
|
router.push('/system/user-auth/role/' + userId);
|
||||||
};
|
};
|
||||||
|
const handleAuthTenant = (row: UserVO) => {
|
||||||
|
const userId = row.userId;
|
||||||
|
router.push('/system/user-auth/tenant/' + userId);
|
||||||
|
};
|
||||||
|
|
||||||
/** 重置密码按钮操作 */
|
/** 重置密码按钮操作 */
|
||||||
const handleResetPwd = async (row: UserVO) => {
|
const handleResetPwd = async (row: UserVO) => {
|
||||||
|
147
src/views/system/user/tenant.vue
Normal file
147
src/views/system/user/tenant.vue
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
<template>
|
||||||
|
<div class="p-2">
|
||||||
|
<div class="panel">
|
||||||
|
3333
|
||||||
|
<h4 class="panel-title">基本信息</h4>
|
||||||
|
<el-form :model="form" :inline="true">
|
||||||
|
<el-row :gutter="10">
|
||||||
|
<el-col :span="2.5">
|
||||||
|
<el-form-item label="用户昵称" prop="nickName">
|
||||||
|
<el-input v-model="form.nickName" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="2.5">
|
||||||
|
<el-form-item label="登录账号" prop="userName">
|
||||||
|
<el-input v-model="form.userName" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<div class="panel">
|
||||||
|
<h4 class="panel-title">店铺信息</h4>
|
||||||
|
<div>
|
||||||
|
<el-table
|
||||||
|
ref="tableRef"
|
||||||
|
v-loading="loading"
|
||||||
|
border
|
||||||
|
:row-key="getRowKey"
|
||||||
|
:data="roles.slice((pageNum - 1) * pageSize, pageNum * pageSize)"
|
||||||
|
@row-click="clickRow"
|
||||||
|
@selection-change="handleSelectionChange"
|
||||||
|
>
|
||||||
|
<el-table-column label="序号" width="55" type="index" align="center">
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ (pageNum - 1) * pageSize + scope.$index + 1 }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column type="selection" :reserve-selection="true" :selectable="checkSelectable" width="55"></el-table-column>
|
||||||
|
<el-table-column label="角色编号" align="center" prop="roleId" />
|
||||||
|
<el-table-column label="角色名称" align="center" prop="roleName" />
|
||||||
|
<el-table-column label="权限字符" align="center" prop="roleKey" />
|
||||||
|
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ proxy.parseTime(scope.row.createTime) }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<pagination v-show="total > 0" v-model:page="pageNum" v-model:limit="pageSize" :total="total" />
|
||||||
|
<div style="text-align: center; margin-left: -120px; margin-top: 30px">
|
||||||
|
<el-button type="primary" @click="submitForm()">提交</el-button>
|
||||||
|
<el-button @click="close()">返回</el-button>
|
||||||
|
</div>
|
||||||
|
<div></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup name="AuthRole" lang="ts">
|
||||||
|
import { RoleVO } from '@/api/system/role/types';
|
||||||
|
import { getAuthRole, updateAuthRole } from '@/api/system/user';
|
||||||
|
import { UserForm } from '@/api/system/user/types';
|
||||||
|
import { RouteLocationNormalized } from 'vue-router';
|
||||||
|
import { parseTime } from '@/utils/ruoyi';
|
||||||
|
|
||||||
|
const route = useRoute();
|
||||||
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||||
|
|
||||||
|
const loading = ref(true);
|
||||||
|
const total = ref(0);
|
||||||
|
const pageNum = ref(1);
|
||||||
|
const pageSize = ref(10);
|
||||||
|
const roleIds = ref<Array<string | number>>([]);
|
||||||
|
const roles = ref<RoleVO[]>([]);
|
||||||
|
const form = ref<Partial<UserForm>>({
|
||||||
|
nickName: undefined,
|
||||||
|
userName: '',
|
||||||
|
userId: undefined
|
||||||
|
});
|
||||||
|
|
||||||
|
const tableRef = ref<ElTableInstance>();
|
||||||
|
|
||||||
|
/** 单击选中行数据 */
|
||||||
|
const clickRow = (row: RoleVO) => {
|
||||||
|
if (checkSelectable(row)) {
|
||||||
|
row.flag = !row.flag;
|
||||||
|
tableRef.value?.toggleRowSelection(row, row.flag);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
/** 多选框选中数据 */
|
||||||
|
const handleSelectionChange = (selection: RoleVO[]) => {
|
||||||
|
roleIds.value = selection.map((item) => item.roleId);
|
||||||
|
};
|
||||||
|
/** 保存选中的数据编号 */
|
||||||
|
const getRowKey = (row: RoleVO): string => {
|
||||||
|
return String(row.roleId);
|
||||||
|
};
|
||||||
|
/** 检查角色状态 */
|
||||||
|
const checkSelectable = (row: RoleVO): boolean => {
|
||||||
|
return row.status === '0';
|
||||||
|
};
|
||||||
|
/** 关闭按钮 */
|
||||||
|
const close = () => {
|
||||||
|
const obj: RouteLocationNormalized = {
|
||||||
|
fullPath: '',
|
||||||
|
hash: '',
|
||||||
|
matched: [],
|
||||||
|
meta: undefined,
|
||||||
|
name: undefined,
|
||||||
|
params: undefined,
|
||||||
|
query: undefined,
|
||||||
|
redirectedFrom: undefined,
|
||||||
|
path: '/system/user'
|
||||||
|
};
|
||||||
|
proxy?.$tab.closeOpenPage(obj);
|
||||||
|
};
|
||||||
|
/** 提交按钮 */
|
||||||
|
const submitForm = async () => {
|
||||||
|
const userId = form.value.userId;
|
||||||
|
const rIds = roleIds.value.join(',');
|
||||||
|
await updateAuthRole({ userId: userId as string, roleIds: rIds });
|
||||||
|
proxy?.$modal.msgSuccess('授权成功');
|
||||||
|
close();
|
||||||
|
};
|
||||||
|
|
||||||
|
const getList = async () => {
|
||||||
|
const userId = route.params && route.params.userId;
|
||||||
|
if (userId) {
|
||||||
|
loading.value = true;
|
||||||
|
const res = await getAuthRole(userId as string);
|
||||||
|
Object.assign(form.value, res.data.user);
|
||||||
|
Object.assign(roles.value, res.data.roles);
|
||||||
|
total.value = roles.value.length;
|
||||||
|
await nextTick(() => {
|
||||||
|
roles.value.forEach((row) => {
|
||||||
|
if (row?.flag) {
|
||||||
|
tableRef.value?.toggleRowSelection(row, true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
loading.value = false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
onMounted(() => {
|
||||||
|
getList();
|
||||||
|
});
|
||||||
|
</script>
|
Loading…
x
Reference in New Issue
Block a user