Commit b3d6d396 authored by liwei's avatar liwei

修改了菜单管理和角色管理的记住筛选项功能

parent 7ab616ea
...@@ -36,22 +36,24 @@ ...@@ -36,22 +36,24 @@
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { nextTick } from 'vue';
import { BasicTable, useTable, TableAction } from '@/components/Table'; import { BasicTable, useTable, TableAction } from '@/components/Table';
import { getMenuListByPage } from '@/api/system/menu/menu';
import { useDrawer } from '@/components/Drawer'; import { useDrawer } from '@/components/Drawer';
import MenuDrawer from './MenuDrawer.vue'; import MenuDrawer from './MenuDrawer.vue';
import { columns, searchFormSchema } from './menu.data'; import { columns, searchFormSchema } from './menu.data';
import { deleteById } from "@/api/system/menu/menu"; import { deleteById,getMenuListByPage } from "@/api/system/menu/menu";
import { useMessage } from "@/hooks/web/useMessage"; import { useMessage } from "@/hooks/web/useMessage";
import { ref } from 'vue'; import { ref,reactive,unref,onDeactivated,onMounted,nextTick } from 'vue';
import { useRoute,onBeforeRouteLeave } from 'vue-router';
import { useFilterStore } from '@/store/modules/filterData';
import { useUserStore } from "@/store/modules/user";
defineOptions({ name: 'MenuManagement' }); defineOptions({ name: 'MenuManagement' });
const filterStore = useFilterStore();
const route = useRoute();
const { createMessage } = useMessage(); const { createMessage } = useMessage();
const [registerDrawer, { openDrawer }] = useDrawer(); const [registerDrawer, { openDrawer }] = useDrawer();
const treeData = ref(); const treeData = ref();
const [registerTable, { reload, expandAll }] = useTable({ const [registerTable, { reload, expandAll,getForm }] = useTable({
title: '菜单列表', title: '菜单列表',
api: async (params) => { api: async (params) => {
const response = await getMenuListByPage(params); const response = await getMenuListByPage(params);
...@@ -64,7 +66,7 @@ ...@@ -64,7 +66,7 @@
labelWidth: 120, labelWidth: 120,
schemas: searchFormSchema, schemas: searchFormSchema,
}, },
isTreeTable: false, isTreeTable: true,
pagination: false, pagination: false,
striped: false, striped: false,
useSearchForm: true, useSearchForm: true,
...@@ -147,4 +149,34 @@ ...@@ -147,4 +149,34 @@
// 演示默认展开所有表项 // 演示默认展开所有表项
nextTick(expandAll); nextTick(expandAll);
} }
/**进入页面的初始化方法*/
onMounted(() => {
const path = route.path
if(filterStore.getSearchParams[path]) {
if(JSON.parse(filterStore.getSearchParams[path] !== {})){
const params = JSON.parse(filterStore.getSearchParams[path])
getForm().setFieldsValue({
page: params.page,
pageSize: params.pageSize,
menuName: params.menuName,
flag: params.flag,
})
}
}
});
/**离开路由前调用的钩子函数*/
onBeforeRouteLeave((to, from, next) => {
const params = Object.assign({},getForm().getFieldsValue());
filterStore.setSearchParams(
{
path: from.path,
param: {
...params
}
}
)
next(); // 允许导航
});
</script> </script>
...@@ -43,15 +43,19 @@ ...@@ -43,15 +43,19 @@
import { downloadByData } from '@/utils/file/download'; import { downloadByData } from '@/utils/file/download';
import { useDrawer } from '@/components/Drawer'; import { useDrawer } from '@/components/Drawer';
import RoleDrawer from './RoleDrawer.vue'; import RoleDrawer from './RoleDrawer.vue';
import RoleDialog from './RoleDialog.vue';
import { useMessage } from '@/hooks/web/useMessage'; import { useMessage } from '@/hooks/web/useMessage';
const { createMessage } = useMessage();
import { columns, searchFormSchema } from './role.data'; import { columns, searchFormSchema } from './role.data';
import {useModal} from "@/components/Modal"; import { reactive,unref,onDeactivated,onMounted } from 'vue';
import { useRoute,onBeforeRouteLeave } from 'vue-router';
import { useFilterStore } from '@/store/modules/filterData';
import { useUserStore } from "@/store/modules/user";
defineOptions({ name: 'RoleManagement' }); defineOptions({ name: 'RoleManagement' });
const [registerDialog, { openModal }] = useModal(); const filterStore = useFilterStore();
const route = useRoute();
const { createMessage } = useMessage();
const [registerDrawer, { openDrawer }] = useDrawer(); const [registerDrawer, { openDrawer }] = useDrawer();
const [registerTable, { reload,getSearchInfo,getForm }] = useTable({ const [registerTable, { reload,getForm }] = useTable({
title: '角色列表', title: '角色列表',
api: getRoleListByPage, api: getRoleListByPage,
columns, columns,
...@@ -82,7 +86,7 @@ ...@@ -82,7 +86,7 @@
/** 导出按钮*/ /** 导出按钮*/
async function handleExport() { async function handleExport() {
console.log('导出----') console.log('导出----')
const params = Object.assign({}, getSearchInfo(), getForm().getFieldsValue()); const params = Object.assign({}, getForm().getFieldsValue());
const data = await exportRoleList(params); const data = await exportRoleList(params);
downloadByData(data, '角色列表' + '.xlsx'); downloadByData(data, '角色列表' + '.xlsx');
} }
...@@ -110,4 +114,35 @@ ...@@ -110,4 +114,35 @@
function handleSuccess() { function handleSuccess() {
reload(); reload();
} }
/**进入页面的初始化方法*/
onMounted(() => {
const path = route.path
if(filterStore.getSearchParams[path]) {
if(JSON.parse(filterStore.getSearchParams[path] !== {})){
const params = JSON.parse(filterStore.getSearchParams[path])
getForm().setFieldsValue({
page: params.page,
pageSize: params.pageSize,
roleName: params.roleName,
roleKey: params.roleKey,
flag: params.flag,
})
}
}
});
/**离开路由前调用的钩子函数*/
onBeforeRouteLeave((to, from, next) => {
const params = Object.assign({},getForm().getFieldsValue());
filterStore.setSearchParams(
{
path: from.path,
param: {
...params
}
}
)
next(); // 允许导航
});
</script> </script>
...@@ -71,7 +71,7 @@ export const columns: BasicColumn[] = [ ...@@ -71,7 +71,7 @@ export const columns: BasicColumn[] = [
export const searchFormSchema: FormSchema[] = [ export const searchFormSchema: FormSchema[] = [
{ {
field: 'roleNme', field: 'roleName',
label: '角色名称', label: '角色名称',
component: 'Input', component: 'Input',
colProps: { span: 6 }, colProps: { span: 6 },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment