Commit ccbeba61 authored by baiyinhao's avatar baiyinhao

Merge branch 'master' of http://gitlab.91isoft.com:90/zhangbotao/intelligent_qp_manager

# Conflicts:
#	src/views/system/user/DeptTree.vue
parents 63a8ea4b b3d6d396
import { defineStore } from 'pinia';
import {UserInfo} from "#/store";
import {getAuthCache} from "@/utils/auth";
import {USER_INFO_KEY} from "@/enums/cacheEnum";
export const useFilterStore = defineStore('filter', {
state: () => ({
searchParams: {
},
}),
getters: {
getSearchParams(state): any {
return state.searchParams ;
},
},
actions: {
setSearchParams(config: any) {
if (!config || typeof config !== 'object') { return }
if (!config.path) { return }
if (config.param && typeof config.param === 'object' && Object.keys(config.param).length > 0) {
this.searchParams[config.path] = JSON.stringify(config.param)
console.log('this.searchParams',this.searchParams)
}
},
},
});
...@@ -154,13 +154,13 @@ export const useUserStore = defineStore({ ...@@ -154,13 +154,13 @@ export const useUserStore = defineStore({
* @description: logout * @description: logout
*/ */
async logout(goLogin = false) { async logout(goLogin = false) {
if (this.getToken) { // if (this.getToken) {
try { // try {
await doLogout(); // await doLogout();
} catch { // } catch {
console.log('注销Token失败'); // console.log('注销Token失败');
} // }
} // }
this.setToken(undefined); this.setToken(undefined);
this.setSessionTimeout(false); this.setSessionTimeout(false);
this.setUserInfo(null); this.setUserInfo(null);
......
...@@ -45,13 +45,13 @@ ...@@ -45,13 +45,13 @@
isUpdate.value = !!data?.isUpdate; isUpdate.value = !!data?.isUpdate;
if (unref(isUpdate)) { if (unref(isUpdate)) {
// 获取行数据的id // 获取行数据的id
console.log(data, 'dictdata'); console.log('data', data);
rowId.value = data.record.businessId; rowId.value = data.record.businessId;
// 通过id获取行详情信息 // 通过id获取行详情信息
console.log('rowId.value', rowId.value);
DictDataDetailApi(rowId.value).then((res) => { DictDataDetailApi(rowId.value).then((res) => {
const form = res.data; const form = res.data;
console.log(form, 'dictdataform'); console.log('dictdataform', form);
// 数据处理反显用户角色 // 数据处理反显用户角色
// const roleData = res.data.roleIds.split(','); // const roleData = res.data.roleIds.split(',');
// form.roleList = []; // form.roleList = [];
......
...@@ -68,19 +68,6 @@ ...@@ -68,19 +68,6 @@
}); });
// 接受路由跳转传值{record} // 接受路由跳转传值{record}
// function handleCreate() {
// openDrawer(true, {
// isUpdate: false,
// });
// }
// function handleEdit(record: Recordable) {
// openDrawer(true, {
// record,
// isUpdate: true,
// });
// }
onMounted(() => {}); onMounted(() => {});
/** 新增按钮*/ /** 新增按钮*/
......
...@@ -64,20 +64,6 @@ ...@@ -64,20 +64,6 @@
}, },
}); });
// function handleCreate() {
// openDrawer(true, {
// isUpdate: false,
// });
// }
// function handleEdit(record: Recordable) {
// openDrawer(true, {
// record,
// isUpdate: true,
// });
// }
/** 新增按钮*/
function handleCreate() { function handleCreate() {
openModal(true, { openModal(true, {
isUpdate: false, isUpdate: false,
......
...@@ -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 },
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div class="m-4 mr-0 overflow-hidden bg-white"> <div class="m-4 mr-0 overflow-hidden bg-white">
<BasicTree <BasicTree
title="部门列表" title="部门列表"
ref="basicTreeRef" ref="treeRef"
toolbar toolbar
search search
treeWrapperClassName="h-[calc(100%-35px)] overflow-auto" treeWrapperClassName="h-[calc(100%-35px)] overflow-auto"
...@@ -15,19 +15,37 @@ ...@@ -15,19 +15,37 @@
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
<<<<<<< HEAD
import { onMounted, ref } from 'vue'; import { onMounted, ref } from 'vue';
import {BasicTree, TreeItem} from '@/components/Tree'; import {BasicTree, TreeItem} from '@/components/Tree';
import { getDeptList } from '@/api/demo/system'; import { getDeptList } from '@/api/demo/system';
=======
import {nextTick, onMounted, ref, unref} from 'vue';
import {BasicTree, TreeActionType, TreeItem} from '@/components/Tree';
import { getDeptList } from '@/api/system/dept/dept';
import {Nullable} from "@vben/types";
>>>>>>> b3d6d396d0434e4564cca7cb9fb11d703fa96f52
defineOptions({ name: 'DeptTree' }); defineOptions({ name: 'DeptTree' });
const emit = defineEmits(['select']); const emit = defineEmits(['select']);
const treeData = ref<TreeItem[]>([]); const treeData = ref<TreeItem[]>([]);
const treeRef = ref<Nullable<TreeActionType>>(null);
function getTree() {
const tree = unref(treeRef);
if (!tree) {
throw new Error('tree is null!');
}
return tree;
}
async function fetch() { async function fetch() {
const res = await getDeptList() const res = await getDeptList()
treeData.value = handleTree(res.data, 'businessId',undefined,undefined,undefined) treeData.value = handleTree(res.data, 'businessId',undefined,undefined,undefined)
await nextTick(() => {
getTree().expandAll(true)
})
} }
function handleTree(data, id, parentId, children, rootId) { function handleTree(data, id, parentId, children, rootId) {
......
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
</PageWrapper> </PageWrapper>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { reactive,unref } from 'vue'; import { reactive,unref,onDeactivated,onMounted } from 'vue';
import { BasicTable, useTable, TableAction } from '@/components/Table'; import { BasicTable, useTable, TableAction } from '@/components/Table';
import {getAccountList, deleteUser,exportUserList} from '@/api/system/dict/dicts'; import {getAccountList, deleteUser,exportUserList} from '@/api/system/dict/dicts';
import { PageWrapper } from '@/components/Page'; import { PageWrapper } from '@/components/Page';
...@@ -55,8 +55,13 @@ ...@@ -55,8 +55,13 @@
import { columns, searchFormSchema } from './account.data'; import { columns, searchFormSchema } from './account.data';
import { useGo } from '@/hooks/web/usePage'; import { useGo } from '@/hooks/web/usePage';
import { downloadByData } from '@/utils/file/download'; import { downloadByData } from '@/utils/file/download';
import { useRoute,onBeforeRouteLeave } from 'vue-router';
import { useFilterStore } from '@/store/modules/filterData';
import {useUserStore} from "@/store/modules/user";
defineOptions({ name: 'AccountManagement' }); defineOptions({ name: 'AccountManagement' });
const { createMessage } = useMessage(); const { createMessage } = useMessage();
const filterStore = useFilterStore();
const route = useRoute();
const go = useGo(); const go = useGo();
const [registerModal, { openModal }] = useModal(); const [registerModal, { openModal }] = useModal();
const [registerResetPassword, { openModal: openResetPasswordModal }] = useModal(); const [registerResetPassword, { openModal: openResetPasswordModal }] = useModal();
...@@ -71,6 +76,9 @@ ...@@ -71,6 +76,9 @@
labelWidth: 120, labelWidth: 120,
schemas: searchFormSchema, schemas: searchFormSchema,
autoSubmitOnEnter: true, autoSubmitOnEnter: true,
resetFunc: () => {
searchInfo.deptId=''
},
}, },
useSearchForm: true, useSearchForm: true,
showTableSetting: false, showTableSetting: false,
...@@ -148,4 +156,34 @@ ...@@ -148,4 +156,34 @@
function handleView(record: Recordable) { function handleView(record: Recordable) {
go('/system/account_detail/' + record.id); go('/system/account_detail/' + record.id);
} }
onMounted(() => {
const path = route.path
if(filterStore.getSearchParams[path]) {
if(JSON.parse(filterStore.getSearchParams[path] !== {})){
const params = JSON.parse(filterStore.getSearchParams[path])
console.log('11111111111111111111111111111',params)
getForm().setFieldsValue({
page: params.page,
pageSize: params.pageSize,
username: params.username,
flag: params.flag,
})
searchInfo.deptId = params.deptId
}
}
});
onBeforeRouteLeave((to, from, next) => {
const params = Object.assign({},getSearchInfo(),getForm().getFieldsValue());
console.log('path',from.path)
console.log('params',params)
filterStore.setSearchParams(
{
path: from.path,
param: {
...params
}
}
)
next(); // 允许导航
});
</script> </script>
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