update 修改页面代码 去除ele的引入以及vue的类型声明
This commit is contained in:
@ -58,13 +58,7 @@
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
v-model:page="queryParams.pageNum"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||
<select-user ref="selectRef" :roleId="queryParams.roleId" @ok="handleQuery" />
|
||||
</el-card>
|
||||
</div>
|
||||
@ -73,10 +67,8 @@
|
||||
<script setup name="AuthUser" lang="ts">
|
||||
import { allocatedUserList, authUserCancel, authUserCancelAll } from "@/api/system/role";
|
||||
import { UserQuery } from "@/api/system/user/types";
|
||||
import { ComponentInternalInstance } from "vue";
|
||||
import { UserVO } from "@/api/system/user/types";
|
||||
import SelectUser from "./selectUser.vue";
|
||||
// import { ElForm, ElSelect} from 'element-plus';
|
||||
|
||||
|
||||
const route = useRoute();
|
||||
@ -90,8 +82,8 @@ const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
const userIds = ref<Array<string | number>>([]);
|
||||
|
||||
const queryFormRef = ref(ElForm);
|
||||
const selectRef = ref(SelectUser);
|
||||
const queryFormRef = ref<ElFormInstance>();
|
||||
const selectRef = ref<InstanceType<typeof SelectUser>>();
|
||||
|
||||
const queryParams = reactive<UserQuery>({
|
||||
pageNum: 1,
|
||||
@ -121,7 +113,7 @@ const handleQuery=() => {
|
||||
}
|
||||
/** 重置按钮操作 */
|
||||
const resetQuery=() =>{
|
||||
queryFormRef.value.resetFields();
|
||||
queryFormRef.value?.resetFields();
|
||||
handleQuery();
|
||||
}
|
||||
// 多选框选中数据
|
||||
@ -137,7 +129,7 @@ const openSelectUser = () => {
|
||||
const cancelAuthUser = async (row: UserVO) => {
|
||||
await proxy?.$modal.confirm('确认要取消该用户"' + row.userName + '"角色吗?');
|
||||
await authUserCancel({ userId: row.userId, roleId: queryParams.roleId });
|
||||
getList();
|
||||
await getList();
|
||||
proxy?.$modal.msgSuccess("取消授权成功");
|
||||
}
|
||||
/** 批量取消授权按钮操作 */
|
||||
@ -146,7 +138,7 @@ const cancelAuthUserAll = async () => {
|
||||
const uIds = userIds.value.join(",");
|
||||
await proxy?.$modal.confirm("是否取消选中用户授权数据项?");
|
||||
await authUserCancelAll({ roleId: roleId, userIds: uIds });
|
||||
getList();
|
||||
await getList();
|
||||
proxy?.$modal.msgSuccess("取消授权成功");
|
||||
}
|
||||
|
||||
|
||||
@ -198,8 +198,6 @@ import { addRole, changeRoleStatus, dataScope, delRole, getRole, listRole, updat
|
||||
import { roleMenuTreeselect, treeselect as menuTreeselect } from '@/api/system/menu/index';
|
||||
import { RoleVO, RoleForm, RoleQuery, DeptTreeOption } from '@/api/system/role/types';
|
||||
import { MenuTreeOption, RoleMenuTree } from '@/api/system/menu/types';
|
||||
import { ComponentInternalInstance } from 'vue';
|
||||
import { ElTree, ElForm, DateModelType } from 'element-plus';
|
||||
|
||||
const router = useRouter();
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
@ -230,11 +228,11 @@ const dataScopeOptions = ref([
|
||||
{ value: "5", label: "仅本人数据权限" }
|
||||
])
|
||||
|
||||
const queryFormRef = ref(ElForm);
|
||||
const roleFormRef = ref(ElForm);
|
||||
const dataScopeRef = ref(ElForm);
|
||||
const menuRef = ref(ElTree);
|
||||
const deptRef = ref(ElTree);
|
||||
const queryFormRef = ref<ElFormInstance>();
|
||||
const roleFormRef = ref<ElFormInstance>();
|
||||
const dataScopeRef = ref<ElFormInstance>();
|
||||
const menuRef = ref<ElTreeInstance>();
|
||||
const deptRef = ref<ElTreeInstance>();
|
||||
|
||||
const initForm: RoleForm = {
|
||||
roleId: undefined,
|
||||
@ -297,7 +295,7 @@ const handleQuery = () => {
|
||||
/** 重置 */
|
||||
const resetQuery = () => {
|
||||
dateRange.value = ['', '']
|
||||
queryFormRef.value.resetFields();
|
||||
queryFormRef.value?.resetFields();
|
||||
handleQuery();
|
||||
}
|
||||
/**删除按钮操作 */
|
||||
@ -345,23 +343,25 @@ const getMenuTreeselect = async () => {
|
||||
menuOptions.value = res.data;
|
||||
}
|
||||
/** 所有部门节点数据 */
|
||||
const getDeptAllCheckedKeys = () => {
|
||||
const getDeptAllCheckedKeys = (): any => {
|
||||
// 目前被选中的部门节点
|
||||
let checkedKeys = deptRef.value.getCheckedKeys();
|
||||
let checkedKeys = deptRef.value?.getCheckedKeys();
|
||||
// 半选中的部门节点
|
||||
let halfCheckedKeys = deptRef.value.getHalfCheckedKeys();
|
||||
checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
|
||||
let halfCheckedKeys = deptRef.value?.getHalfCheckedKeys();
|
||||
if(halfCheckedKeys) {
|
||||
checkedKeys?.unshift.apply(checkedKeys, halfCheckedKeys);
|
||||
}
|
||||
return checkedKeys
|
||||
}
|
||||
/** 重置新增的表单以及其他数据 */
|
||||
const reset = () => {
|
||||
menuRef.value.setCheckedKeys([]);
|
||||
menuRef.value?.setCheckedKeys([]);
|
||||
menuExpand.value = false
|
||||
menuNodeAll.value = false
|
||||
deptExpand.value = true
|
||||
deptNodeAll.value = false
|
||||
form.value = { ...initForm };
|
||||
roleFormRef.value.resetFields();
|
||||
roleFormRef.value?.resetFields();
|
||||
|
||||
}
|
||||
|
||||
@ -381,19 +381,19 @@ const handleUpdate = async (row?: RoleVO) => {
|
||||
const { data } = await getRole(roleId);
|
||||
dialog.visible = true;
|
||||
dialog.title = "修改角色";
|
||||
nextTick(() => {
|
||||
reset();
|
||||
Object.assign(form.value, data);
|
||||
form.value.roleSort = Number(form.value.roleSort);
|
||||
nextTick(async () => {
|
||||
const res = await roleMenu;
|
||||
let checkedKeys = res.checkedKeys;
|
||||
checkedKeys.forEach((v) => {
|
||||
nextTick(() => {
|
||||
menuRef.value.setChecked(v, true, false);
|
||||
})
|
||||
})
|
||||
await nextTick(() => {
|
||||
reset();
|
||||
Object.assign(form.value, data);
|
||||
form.value.roleSort = Number(form.value.roleSort);
|
||||
nextTick(async () => {
|
||||
const res = await roleMenu;
|
||||
let checkedKeys = res.checkedKeys;
|
||||
checkedKeys.forEach((v) => {
|
||||
nextTick(() => {
|
||||
menuRef.value?.setChecked(v, true, false);
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
/** 根据角色ID查询菜单树结构 */
|
||||
@ -410,25 +410,29 @@ const getRoleDeptTreeSelect = async (roleId: string | number) => {
|
||||
return res.data;
|
||||
}
|
||||
/** 树权限(展开/折叠)*/
|
||||
const handleCheckedTreeExpand = (value: any, type: string) => {
|
||||
const handleCheckedTreeExpand = (value: boolean, type: string) => {
|
||||
if (type == "menu") {
|
||||
let treeList = menuOptions.value;
|
||||
for (let i = 0; i < treeList.length; i++) {
|
||||
if (menuRef.value) {
|
||||
menuRef.value.store.nodesMap[treeList[i].id].expanded = value;
|
||||
}
|
||||
}
|
||||
} else if (type == "dept") {
|
||||
let treeList = deptOptions.value;
|
||||
for (let i = 0; i < treeList.length; i++) {
|
||||
deptRef.value.store.nodesMap[treeList[i].id].expanded = value;
|
||||
if (deptRef.value) {
|
||||
deptRef.value.store.nodesMap[treeList[i].id].expanded = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
/** 树权限(全选/全不选) */
|
||||
const handleCheckedTreeNodeAll = (value: any, type: string) => {
|
||||
if (type == "menu") {
|
||||
menuRef.value.setCheckedNodes(value ? menuOptions.value : []);
|
||||
menuRef.value?.setCheckedNodes(value ? menuOptions.value as any : []);
|
||||
} else if (type == "dept") {
|
||||
deptRef.value.setCheckedNodes(value ? deptOptions.value : []);
|
||||
deptRef.value?.setCheckedNodes(value ? deptOptions.value as any : []);
|
||||
}
|
||||
}
|
||||
/** 树权限(父子联动) */
|
||||
@ -440,17 +444,19 @@ const handleCheckedTreeConnect = (value: any, type: string) => {
|
||||
}
|
||||
}
|
||||
/** 所有菜单节点数据 */
|
||||
const getMenuAllCheckedKeys = () => {
|
||||
const getMenuAllCheckedKeys = (): any => {
|
||||
// 目前被选中的菜单节点
|
||||
let checkedKeys = menuRef.value.getCheckedKeys();
|
||||
let checkedKeys = menuRef.value?.getCheckedKeys();
|
||||
// 半选中的菜单节点
|
||||
let halfCheckedKeys = menuRef.value.getHalfCheckedKeys();
|
||||
checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
|
||||
let halfCheckedKeys = menuRef.value?.getHalfCheckedKeys();
|
||||
if (halfCheckedKeys) {
|
||||
checkedKeys?.unshift.apply(checkedKeys, halfCheckedKeys);
|
||||
}
|
||||
return checkedKeys;
|
||||
}
|
||||
/** 提交按钮 */
|
||||
const submitForm = () => {
|
||||
roleFormRef.value.validate(async (valid: boolean) => {
|
||||
roleFormRef.value?.validate(async (valid: boolean) => {
|
||||
if (valid) {
|
||||
form.value.menuIds = getMenuAllCheckedKeys()
|
||||
form.value.roleId ? await updateRole(form.value) : await addRole(form.value);
|
||||
@ -468,7 +474,7 @@ const cancel = () => {
|
||||
/** 选择角色权限范围触发 */
|
||||
const dataScopeSelectChange = (value: string) => {
|
||||
if (value !== "2") {
|
||||
deptRef.value.setCheckedKeys([])
|
||||
deptRef.value?.setCheckedKeys([])
|
||||
}
|
||||
}
|
||||
/** 分配数据权限操作 */
|
||||
@ -478,13 +484,13 @@ const handleDataScope = async (row: RoleVO) => {
|
||||
Object.assign(form.value, response.data);
|
||||
openDataScope.value = true;
|
||||
dialog.title = "分配数据权限";
|
||||
nextTick(async () => {
|
||||
const res = await roleDeptTreeselect;
|
||||
nextTick(() => {
|
||||
if (deptRef.value) {
|
||||
deptRef.value.setCheckedKeys(res.checkedKeys);
|
||||
}
|
||||
})
|
||||
await nextTick(async () => {
|
||||
const res = await roleDeptTreeselect;
|
||||
await nextTick(() => {
|
||||
if (deptRef.value) {
|
||||
deptRef.value.setCheckedKeys(res.checkedKeys);
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
/** 提交按钮(数据权限) */
|
||||
@ -499,7 +505,7 @@ const submitDataScope = async () => {
|
||||
}
|
||||
/** 取消按钮(数据权限)*/
|
||||
const cancelDataScope = () => {
|
||||
dataScopeRef.value.resetFields();
|
||||
dataScopeRef.value?.resetFields();
|
||||
form.value = {...initForm};
|
||||
openDataScope.value = false;
|
||||
}
|
||||
|
||||
@ -47,8 +47,6 @@
|
||||
import { authUserSelectAll, unallocatedUserList } from "@/api/system/role";
|
||||
import { UserVO } from '@/api/system/user/types';
|
||||
import { UserQuery } from '@/api/system/user/types';
|
||||
import { ComponentInternalInstance } from 'vue';
|
||||
import { ElForm, ElTable } from 'element-plus';
|
||||
|
||||
|
||||
const props = defineProps({
|
||||
@ -73,8 +71,8 @@ const queryParams = reactive<UserQuery>({
|
||||
phonenumber: undefined
|
||||
})
|
||||
|
||||
const tableRef = ref(ElTable);
|
||||
const queryFormRef = ref(ElForm);
|
||||
const tableRef = ref<ElTableInstance>();
|
||||
const queryFormRef = ref<ElFormInstance>();
|
||||
|
||||
const show = () => {
|
||||
queryParams.roleId = props.roleId;
|
||||
@ -86,7 +84,8 @@ const show = () => {
|
||||
* 选择行
|
||||
*/
|
||||
const clickRow = (row: any) => {
|
||||
tableRef.value.toggleRowSelection(row);
|
||||
// ele的bug
|
||||
tableRef.value?.toggleRowSelection(row);
|
||||
}
|
||||
/** 多选框选中数据 */
|
||||
const handleSelectionChange = (selection: UserVO[]) => {
|
||||
@ -106,7 +105,7 @@ const handleQuery = () => {
|
||||
}
|
||||
/** 重置按钮操作 */
|
||||
const resetQuery = () => {
|
||||
queryFormRef.value.resetFields();
|
||||
queryFormRef.value?.resetFields();
|
||||
getList();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user