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({
* @description: logout
*/
async logout(goLogin = false) {
if (this.getToken) {
try {
await doLogout();
} catch {
console.log('注销Token失败');
}
}
// if (this.getToken) {
// try {
// await doLogout();
// } catch {
// console.log('注销Token失败');
// }
// }
this.setToken(undefined);
this.setSessionTimeout(false);
this.setUserInfo(null);
......
......@@ -45,13 +45,13 @@
isUpdate.value = !!data?.isUpdate;
if (unref(isUpdate)) {
// 获取行数据的id
console.log(data, 'dictdata');
console.log('data', data);
rowId.value = data.record.businessId;
// 通过id获取行详情信息
console.log('rowId.value', rowId.value);
DictDataDetailApi(rowId.value).then((res) => {
const form = res.data;
console.log(form, 'dictdataform');
console.log('dictdataform', form);
// 数据处理反显用户角色
// const roleData = res.data.roleIds.split(',');
// form.roleList = [];
......
......@@ -68,19 +68,6 @@
});
// 接受路由跳转传值{record}
// function handleCreate() {
// openDrawer(true, {
// isUpdate: false,
// });
// }
// function handleEdit(record: Recordable) {
// openDrawer(true, {
// record,
// isUpdate: true,
// });
// }
onMounted(() => {});
/** 新增按钮*/
......
......@@ -64,20 +64,6 @@
},
});
// function handleCreate() {
// openDrawer(true, {
// isUpdate: false,
// });
// }
// function handleEdit(record: Recordable) {
// openDrawer(true, {
// record,
// isUpdate: true,
// });
// }
/** 新增按钮*/
function handleCreate() {
openModal(true, {
isUpdate: false,
......
......@@ -36,22 +36,24 @@
</div>
</template>
<script lang="ts" setup>
import { nextTick } from 'vue';
import { BasicTable, useTable, TableAction } from '@/components/Table';
import { getMenuListByPage } from '@/api/system/menu/menu';
import { useDrawer } from '@/components/Drawer';
import MenuDrawer from './MenuDrawer.vue';
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 { 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' });
const filterStore = useFilterStore();
const route = useRoute();
const { createMessage } = useMessage();
const [registerDrawer, { openDrawer }] = useDrawer();
const treeData = ref();
const [registerTable, { reload, expandAll }] = useTable({
const [registerTable, { reload, expandAll,getForm }] = useTable({
title: '菜单列表',
api: async (params) => {
const response = await getMenuListByPage(params);
......@@ -64,7 +66,7 @@
labelWidth: 120,
schemas: searchFormSchema,
},
isTreeTable: false,
isTreeTable: true,
pagination: false,
striped: false,
useSearchForm: true,
......@@ -147,4 +149,34 @@
// 演示默认展开所有表项
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>
......@@ -43,15 +43,19 @@
import { downloadByData } from '@/utils/file/download';
import { useDrawer } from '@/components/Drawer';
import RoleDrawer from './RoleDrawer.vue';
import RoleDialog from './RoleDialog.vue';
import { useMessage } from '@/hooks/web/useMessage';
const { createMessage } = useMessage();
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' });
const [registerDialog, { openModal }] = useModal();
const filterStore = useFilterStore();
const route = useRoute();
const { createMessage } = useMessage();
const [registerDrawer, { openDrawer }] = useDrawer();
const [registerTable, { reload,getSearchInfo,getForm }] = useTable({
const [registerTable, { reload,getForm }] = useTable({
title: '角色列表',
api: getRoleListByPage,
columns,
......@@ -82,7 +86,7 @@
/** 导出按钮*/
async function handleExport() {
console.log('导出----')
const params = Object.assign({}, getSearchInfo(), getForm().getFieldsValue());
const params = Object.assign({}, getForm().getFieldsValue());
const data = await exportRoleList(params);
downloadByData(data, '角色列表' + '.xlsx');
}
......@@ -110,4 +114,35 @@
function handleSuccess() {
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>
......@@ -71,7 +71,7 @@ export const columns: BasicColumn[] = [
export const searchFormSchema: FormSchema[] = [
{
field: 'roleNme',
field: 'roleName',
label: '角色名称',
component: 'Input',
colProps: { span: 6 },
......
......@@ -2,7 +2,7 @@
<div class="m-4 mr-0 overflow-hidden bg-white">
<BasicTree
title="部门列表"
ref="basicTreeRef"
ref="treeRef"
toolbar
search
treeWrapperClassName="h-[calc(100%-35px)] overflow-auto"
......@@ -15,19 +15,37 @@
</div>
</template>
<script lang="ts" setup>
<<<<<<< HEAD
import { onMounted, ref } from 'vue';
import {BasicTree, TreeItem} from '@/components/Tree';
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' });
const emit = defineEmits(['select']);
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()
treeData.value = handleTree(res.data, 'businessId',undefined,undefined,undefined)
await nextTick(() => {
getTree().expandAll(true)
})
}
function handleTree(data, id, parentId, children, rootId) {
......
......@@ -42,7 +42,7 @@
</PageWrapper>
</template>
<script lang="ts" setup>
import { reactive,unref } from 'vue';
import { reactive,unref,onDeactivated,onMounted } from 'vue';
import { BasicTable, useTable, TableAction } from '@/components/Table';
import {getAccountList, deleteUser,exportUserList} from '@/api/system/dict/dicts';
import { PageWrapper } from '@/components/Page';
......@@ -55,8 +55,13 @@
import { columns, searchFormSchema } from './account.data';
import { useGo } from '@/hooks/web/usePage';
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' });
const { createMessage } = useMessage();
const filterStore = useFilterStore();
const route = useRoute();
const go = useGo();
const [registerModal, { openModal }] = useModal();
const [registerResetPassword, { openModal: openResetPasswordModal }] = useModal();
......@@ -71,6 +76,9 @@
labelWidth: 120,
schemas: searchFormSchema,
autoSubmitOnEnter: true,
resetFunc: () => {
searchInfo.deptId=''
},
},
useSearchForm: true,
showTableSetting: false,
......@@ -148,4 +156,34 @@
function handleView(record: Recordable) {
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>
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