fix 路由分组、缓存应用前缀、代码生成文件选择覆盖、操作日志记录参数截取、重新打开页面头像不显示

This commit is contained in:
yxh 2024-03-18 10:20:49 +08:00
parent 8ef36a028f
commit 565799e21e
7 changed files with 97 additions and 14 deletions

View File

@ -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}
})
}

View File

@ -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()
}

View File

@ -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,16 +48,19 @@ 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');
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;
}

View File

@ -48,7 +48,7 @@
</el-col>
<el-col class="mb20" :span="4">
<el-form-item label="是否覆盖原有文件" prop="overwrite">
<el-checkbox v-model="info.overwrite" />
<el-checkbox v-model="info.overwrite" @change="overwriteChange"/>
</el-form-item>
</el-col>
<el-col class="mb20" :span="4">
@ -79,6 +79,15 @@
<el-checkbox v-model="info.showDetail" />
</el-form-item>
</el-col>
<el-col class="mb20" :span="24" style="border:solid 1px #e2e3e3;width: 90%;padding: 12px;" v-show="info.overwrite">
<el-row :gutter="18">
<el-col class="mb20" :span="3" v-for="(item,ind) in overwriteOptions" :key="ind">
<el-form-item :label="item.name" :prop="item.key">
<el-checkbox v-model="info.overwriteInfo[ind]['value']" />
</el-form-item>
</el-col>
</el-row>
</el-col>
</el-row>
</el-form>
<el-row>
@ -105,6 +114,25 @@ export default defineComponent({
emits: ['goNext','close'],
setup(props, { emit }) {
const basicInfoFormRef = ref<FormInstance>();
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<TableDataInfo>('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<FormRules>({
tableName: [{ required: true, message: '请输入表名称', trigger: 'blur' }],
@ -136,7 +169,9 @@ export default defineComponent({
basicInfoFormRef,
info,
rules,
overwriteOptions,
nextTip,
overwriteChange,
close
};
},

View File

@ -82,9 +82,40 @@ 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(<TableDataInfo>{});
const info = ref(<TableDataInfo>{overwriteInfo:defaultOverwriteInfo});
provide('tableData', info);
const mergeArraysByKey = (arrays:Array<Array<object>>, key:string) :Array<any> => {
const merged:any={}
//
arrays.forEach(array => {
array.forEach((obj:any) => {
// 使keymerged
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 {

View File

@ -77,7 +77,8 @@ export interface TableDataInfo extends TableData{
functionName:string;
linkTableName:string;
useVirtual:boolean;
columns:TableColumns[]
columns:TableColumns[],
overwriteInfo:Array<any>
}
export interface TableDataState {
ids:number[];

View File

@ -17,7 +17,7 @@ const alias: Record<string, string> = {
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,