diff --git a/src/api/system/role/index.ts b/src/api/system/role/index.ts
index 68dc955..3cd86d4 100644
--- a/src/api/system/role/index.ts
+++ b/src/api/system/role/index.ts
@@ -67,4 +67,13 @@ export function roleDeptTreeSelect(roleId:number) {
})
}
+// 根据角色ID查询菜单树结构
+export function roleMenuTreeSelect(roleId:number) {
+ return request({
+ url: '/api/v1/system/role/menuTreeSelect',
+ method: 'get',
+ params:{roleId}
+ })
+}
+
diff --git a/src/router/backEnd.ts b/src/router/backEnd.ts
index c957492..9ec316c 100644
--- a/src/router/backEnd.ts
+++ b/src/router/backEnd.ts
@@ -106,7 +106,8 @@ export async function setAddRoute() {
export async function getBackEndControlRoutes() {
let menuRoute = Session.get('userMenu')
let permissions = Session.get('permissions')
- if (!menuRoute || !permissions) {
+ let userInfo = Session.get('userInfo')
+ if (!menuRoute || !permissions ||!userInfo) {
await refreshBackEndControlRoutes()
}
}
@@ -121,7 +122,9 @@ export async function refreshBackEndControlRoutes() {
await getUserMenus().then((res:any)=>{
Session.set('userMenu',res.data.menuList)
Session.set('permissions',res.data.permissions)
+ Session.set('userInfo',res.data.userInfo)
})
+ await useUserInfo().setUserInfos()
await useUserInfo().setPermissions()
}
diff --git a/src/stores/userInfo.ts b/src/stores/userInfo.ts
index aaebd87..e6ba112 100644
--- a/src/stores/userInfo.ts
+++ b/src/stores/userInfo.ts
@@ -2,7 +2,7 @@ import { defineStore } from 'pinia';
import Cookies from 'js-cookie';
import { UserInfosStates } from './interface';
import { Session } from '/@/utils/storage';
-
+import {getUpFileUrl} from '/@/utils/gfast'
/**
* 用户信息
* @methods setUserInfos 设置用户信息
@@ -48,17 +48,20 @@ export const useUserInfo = defineStore('userInfo', {
id:0,
userName: userName,
userNickname: "",
- avatar:
- userName === 'admin'
- ? 'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1813762643,1914315241&fm=26&gp=0.jpg'
- : 'https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=317673774,2961727727&fm=26&gp=0.jpg',
+ avatar:'',
time: new Date().getTime(),
roles: defaultRoles,
authBtnList: defaultAuthBtnList,
};
- if (Session.get('userInfo')) {
- this.userInfos = Session.get('userInfo');
- } else {
+ const sessUserInfo = Session.get('userInfo')
+ if(sessUserInfo){
+ if(sessUserInfo.avatar!=''){
+ sessUserInfo.avatar = getUpFileUrl(sessUserInfo.avatar)
+ }else{
+ sessUserInfo.avatar = '/favicon.ico'
+ }
+ this.userInfos=sessUserInfo
+ }else {
this.userInfos = userInfos;
}
},
diff --git a/src/views/system/tools/gen/component/basicInfo.vue b/src/views/system/tools/gen/component/basicInfo.vue
index c40fcbc..d5220cb 100644
--- a/src/views/system/tools/gen/component/basicInfo.vue
+++ b/src/views/system/tools/gen/component/basicInfo.vue
@@ -48,7 +48,7 @@
-
+
@@ -79,6 +79,15 @@
+
+
+
+
+
+
+
+
+
@@ -105,6 +114,25 @@ export default defineComponent({
emits: ['goNext','close'],
setup(props, { emit }) {
const basicInfoFormRef = ref();
+ const overwriteOptions = ref([
+ {key:"api",name:"覆盖api"},
+ {key:"controller",name:"覆盖controller"},
+ {key:"dao",name:"覆盖dao"},
+ {key:"dao_internal",name:"覆盖dao_internal"},
+ {key:"logic",name:"覆盖logic"},
+ {key:"model",name:"覆盖model"},
+ {key:"model_do",name:"覆盖model_do"},
+ {key:"model_entity",name:"覆盖model_entity"},
+ {key:"router",name:"覆盖router"},
+ {key:"router_func",name:"覆盖router_func"},
+ {key:"service",name:"覆盖service"},
+ {key:"sql",name:"覆盖菜单sql"},
+ {key:"tsApi",name:"覆盖tsApi"},
+ {key:"tsModel",name:"覆盖tsModel"},
+ {key:"vue",name:"覆盖vue-list"},
+ {key:"vueDetail",name:"覆盖vue-detail"},
+ {key:"vueEdit",name:"覆盖vue-edit"},
+ ])
const info = inject('tableData') as TableDataInfo;
const nextTip = (): boolean => {
//表单验证
@@ -123,6 +151,11 @@ export default defineComponent({
};
const close = ()=>{
emit('close')
+ }
+ const overwriteChange = (value:boolean)=>{
+ info.value.overwriteInfo.map((item:any)=>{
+ item.value = value
+ })
}
const rules = reactive({
tableName: [{ required: true, message: '请输入表名称', trigger: 'blur' }],
@@ -136,7 +169,9 @@ export default defineComponent({
basicInfoFormRef,
info,
rules,
+ overwriteOptions,
nextTip,
+ overwriteChange,
close
};
},
diff --git a/src/views/system/tools/gen/component/edit.vue b/src/views/system/tools/gen/component/edit.vue
index b9c396d..139058c 100644
--- a/src/views/system/tools/gen/component/edit.vue
+++ b/src/views/system/tools/gen/component/edit.vue
@@ -82,10 +82,41 @@ export default defineComponent({
active.value = args;
}
};
+ const defaultOverwriteInfo = [
+ {key:"api",value:false},
+ {key:"controller",value:false},
+ {key:"dao",value:false},
+ {key:"dao_internal",value:false},
+ {key:"logic",value:false},
+ {key:"model",value:false},
+ {key:"model_do",value:false},
+ {key:"model_entity",value:false},
+ {key:"router",value:false},
+ {key:"router_func",value:false},
+ {key:"service",value:false},
+ {key:"sql",value:false},
+ {key:"tsApi",value:false},
+ {key:"tsModel",value:false},
+ {key:"vue",value:false},
+ {key:"vueDetail",value:false},
+ {key:"vueEdit",value:false},
+ ]
// 表详细信息
- const info = ref({});
+ const info = ref({overwriteInfo:defaultOverwriteInfo});
provide('tableData', info);
- onBeforeMount(() => {
+ const mergeArraysByKey = (arrays:Array>, key:string) :Array => {
+ const merged:any={}
+ // 遍历所有数组,后面的数组会覆盖前面的数组
+ arrays.forEach(array => {
+ array.forEach((obj:any) => {
+ // 使用key的值作为键,将对象存储在merged对象中
+ merged[obj[key]] = obj;
+ });
+ });
+ // 将merged对象转换为数组
+ return Object.values(merged);
+ }
+ onBeforeMount(() => {
const tableId = route.query?.tableId;
if (tableId) {
// 获取表详细信息
@@ -96,6 +127,7 @@ export default defineComponent({
});
const data: TableDataInfo = res.data.info as TableDataInfo;
data.columns = columnsTmp;
+ data.overwriteInfo = data.overwriteInfo?mergeArraysByKey([defaultOverwriteInfo,data.overwriteInfo],'key'):defaultOverwriteInfo
info.value = data;
});
} else {
diff --git a/src/views/system/tools/gen/component/model.ts b/src/views/system/tools/gen/component/model.ts
index 241218d..25ea2d7 100644
--- a/src/views/system/tools/gen/component/model.ts
+++ b/src/views/system/tools/gen/component/model.ts
@@ -77,7 +77,8 @@ export interface TableDataInfo extends TableData{
functionName:string;
linkTableName:string;
useVirtual:boolean;
- columns:TableColumns[]
+ columns:TableColumns[],
+ overwriteInfo:Array
}
export interface TableDataState {
ids:number[];
diff --git a/vite.config.ts b/vite.config.ts
index 1810f7d..85b3a1c 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -17,7 +17,7 @@ const alias: Record = {
const viteConfig = defineConfig((mode: ConfigEnv) => {
const env = loadEnv(mode.mode, process.cwd());
return {
- plugins: [vue(), vueSetupExtend(), viteCompression()],
+ plugins: [vue(), vueSetupExtend(), viteCompression({disable:true})],
root: process.cwd(),
resolve: { alias },
base: mode.command === 'serve' ? './' : env.VITE_PUBLIC_PATH,