😎1、屏蔽SassApi弃用提示 2、调整级联选择器配置选项写法,避免数据量大时造成卡顿 3、统一文件夹名称为小写打头 4、优化服务监控页面 5、升级依赖
This commit is contained in:
parent
32d021c6dc
commit
3832ef4206
8
.gitignore
vendored
8
.gitignore
vendored
@ -18,10 +18,10 @@ bin-release/
|
|||||||
# information for Eclipse / Flash Builder.
|
# information for Eclipse / Flash Builder.
|
||||||
/Admin.NET/.vs
|
/Admin.NET/.vs
|
||||||
/Admin.NET/packages
|
/Admin.NET/packages
|
||||||
/Admin.NET/Admin.NET.Web.Entry/wwwroot/Upload
|
/Admin.NET/Admin.NET.Web.Entry/wwwroot/[Uu]pload
|
||||||
/Admin.NET/Admin.NET.Web.Entry/wwwroot/Avatar
|
/Admin.NET/Admin.NET.Web.Entry/wwwroot/[Aa]vatar
|
||||||
/Admin.NET/Admin.NET.Web.Entry/wwwroot/Signature
|
/Admin.NET/Admin.NET.Web.Entry/wwwroot/[Ss]ignature
|
||||||
/Admin.NET/Admin.NET.Web.Entry/wwwroot/CodeGen
|
/Admin.NET/Admin.NET.Web.Entry/wwwroot/[Cc]odeGen
|
||||||
/Admin.NET/Admin.NET.Web.Entry/wwwroot/is-cache
|
/Admin.NET/Admin.NET.Web.Entry/wwwroot/is-cache
|
||||||
/Admin.NET/Admin.NET.Web.Core/Admin.NET.Web.Core.csproj.user
|
/Admin.NET/Admin.NET.Web.Core/Admin.NET.Web.Core.csproj.user
|
||||||
/Admin.NET/Admin.NET.Web.Entry/Admin.NET.Web.Entry.csproj.user
|
/Admin.NET/Admin.NET.Web.Entry/Admin.NET.Web.Entry.csproj.user
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
"name": "admin.net.pro",
|
"name": "admin.net.pro",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"version": "2.4.33",
|
"version": "2.4.33",
|
||||||
"lastBuildTime": "2024.09.17",
|
"lastBuildTime": "2024.09.19",
|
||||||
"description": "Admin.NET 站在巨人肩膀上的 .NET 通用权限开发框架",
|
"description": "Admin.NET 站在巨人肩膀上的 .NET 通用权限开发框架",
|
||||||
"author": "zuohuaijun",
|
"author": "zuohuaijun",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
@ -86,7 +86,7 @@
|
|||||||
"@types/sortablejs": "^1.15.8",
|
"@types/sortablejs": "^1.15.8",
|
||||||
"@typescript-eslint/eslint-plugin": "^8.6.0",
|
"@typescript-eslint/eslint-plugin": "^8.6.0",
|
||||||
"@typescript-eslint/parser": "^8.6.0",
|
"@typescript-eslint/parser": "^8.6.0",
|
||||||
"@vitejs/plugin-vue": "^5.1.3",
|
"@vitejs/plugin-vue": "^5.1.4",
|
||||||
"@vitejs/plugin-vue-jsx": "^4.0.1",
|
"@vitejs/plugin-vue-jsx": "^4.0.1",
|
||||||
"@vue/compiler-sfc": "^3.5.6",
|
"@vue/compiler-sfc": "^3.5.6",
|
||||||
"code-inspector-plugin": "^0.16.1",
|
"code-inspector-plugin": "^0.16.1",
|
||||||
@ -96,8 +96,8 @@
|
|||||||
"less": "^4.2.0",
|
"less": "^4.2.0",
|
||||||
"prettier": "^3.3.3",
|
"prettier": "^3.3.3",
|
||||||
"rollup-plugin-visualizer": "^5.12.0",
|
"rollup-plugin-visualizer": "^5.12.0",
|
||||||
"sass": "^1.78.0",
|
"sass": "^1.79.1",
|
||||||
"terser": "^5.32.0",
|
"terser": "^5.33.0",
|
||||||
"typescript": "^5.6.2",
|
"typescript": "^5.6.2",
|
||||||
"vite": "^5.4.6",
|
"vite": "^5.4.6",
|
||||||
"vite-plugin-cdn-import": "^1.0.1",
|
"vite-plugin-cdn-import": "^1.0.1",
|
||||||
|
|||||||
@ -95,9 +95,10 @@
|
|||||||
<el-form-item label="父级菜单" prop="menuPid">
|
<el-form-item label="父级菜单" prop="menuPid">
|
||||||
<el-cascader
|
<el-cascader
|
||||||
:options="state.menuData"
|
:options="state.menuData"
|
||||||
:props="{ checkStrictly: true, emitPath: false, value: 'id', label: 'title' }"
|
:props="cascaderProps"
|
||||||
placeholder="请选择上级菜单"
|
placeholder="请选择上级菜单"
|
||||||
:disabled="!state.ruleForm.generateMenu"
|
:disabled="!state.ruleForm.generateMenu"
|
||||||
|
filterable
|
||||||
clearable
|
clearable
|
||||||
class="w100"
|
class="w100"
|
||||||
v-model="state.ruleForm.menuPid"
|
v-model="state.ruleForm.menuPid"
|
||||||
@ -217,6 +218,8 @@ const activeTab = ref('codeGen');
|
|||||||
const templateTableRef = ref();
|
const templateTableRef = ref();
|
||||||
const multipleSelection = ref([] as any);
|
const multipleSelection = ref([] as any);
|
||||||
const templateTableData = ref([] as any);
|
const templateTableData = ref([] as any);
|
||||||
|
// 级联选择器配置选项
|
||||||
|
const cascaderProps = { checkStrictly: true, emitPath: false, value: 'id', label: 'title' };
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
var resDb = await getAPI(SysCodeGenApi).apiSysCodeGenDatabaseListGet();
|
var resDb = await getAPI(SysCodeGenApi).apiSysCodeGenDatabaseListGet();
|
||||||
|
|||||||
@ -11,14 +11,7 @@
|
|||||||
<el-row :gutter="10">
|
<el-row :gutter="10">
|
||||||
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
|
||||||
<el-form-item label="上级菜单">
|
<el-form-item label="上级菜单">
|
||||||
<el-cascader
|
<el-cascader :options="props.menuData" :props="cascaderProps" placeholder="请选择上级菜单" clearable filterable class="w100" v-model="state.ruleForm.pid">
|
||||||
:options="props.menuData"
|
|
||||||
:props="{ checkStrictly: true, emitPath: false, value: 'id', label: 'title' }"
|
|
||||||
placeholder="请选择上级菜单"
|
|
||||||
clearable
|
|
||||||
class="w100"
|
|
||||||
v-model="state.ruleForm.pid"
|
|
||||||
>
|
|
||||||
<template #default="{ node, data }">
|
<template #default="{ node, data }">
|
||||||
<span>{{ data.title }}</span>
|
<span>{{ data.title }}</span>
|
||||||
<span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
|
<span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
|
||||||
@ -165,6 +158,8 @@ const state = reactive({
|
|||||||
isShowDialog: false,
|
isShowDialog: false,
|
||||||
ruleForm: {} as UpdateMenuInput,
|
ruleForm: {} as UpdateMenuInput,
|
||||||
});
|
});
|
||||||
|
// 级联选择器配置选项
|
||||||
|
const cascaderProps = { checkStrictly: true, emitPath: false, value: 'id', label: 'title' };
|
||||||
|
|
||||||
// 获取全局组件大小
|
// 获取全局组件大小
|
||||||
const getGlobalComponentSize = computed(() => {
|
const getGlobalComponentSize = computed(() => {
|
||||||
|
|||||||
@ -11,14 +11,7 @@
|
|||||||
<el-row :gutter="10">
|
<el-row :gutter="10">
|
||||||
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
|
||||||
<el-form-item label="上级机构">
|
<el-form-item label="上级机构">
|
||||||
<el-cascader
|
<el-cascader :options="props.orgData" :props="cascaderProps" placeholder="请选择上级机构" clearable filterable class="w100" v-model="state.ruleForm.pid">
|
||||||
:options="props.orgData"
|
|
||||||
:props="{ checkStrictly: true, emitPath: false, value: 'id', label: 'name' }"
|
|
||||||
placeholder="请选择上级机构"
|
|
||||||
clearable
|
|
||||||
class="w100"
|
|
||||||
v-model="state.ruleForm.pid"
|
|
||||||
>
|
|
||||||
<template #default="{ node, data }">
|
<template #default="{ node, data }">
|
||||||
<span>{{ data.name }}</span>
|
<span>{{ data.name }}</span>
|
||||||
<span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
|
<span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
|
||||||
@ -96,6 +89,8 @@ const state = reactive({
|
|||||||
ruleForm: {} as UpdateOrgInput,
|
ruleForm: {} as UpdateOrgInput,
|
||||||
orgTypeList: [] as any,
|
orgTypeList: [] as any,
|
||||||
});
|
});
|
||||||
|
// 级联选择器配置选项
|
||||||
|
const cascaderProps = { checkStrictly: true, emitPath: false, value: 'id', label: 'name' };
|
||||||
|
|
||||||
// 页面初始化
|
// 页面初始化
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
|
|||||||
@ -13,7 +13,7 @@
|
|||||||
<el-form-item label="上级名称">
|
<el-form-item label="上级名称">
|
||||||
<el-cascader
|
<el-cascader
|
||||||
:options="regionData"
|
:options="regionData"
|
||||||
:props="{ checkStrictly: true, emitPath: false, value: 'id', label: 'name' }"
|
:props="cascaderProps"
|
||||||
placeholder="请选择上级名称"
|
placeholder="请选择上级名称"
|
||||||
clearable
|
clearable
|
||||||
class="w100"
|
class="w100"
|
||||||
@ -84,6 +84,8 @@ const state = reactive({
|
|||||||
isShowDialog: false,
|
isShowDialog: false,
|
||||||
ruleForm: {} as UpdateRegionInput,
|
ruleForm: {} as UpdateRegionInput,
|
||||||
});
|
});
|
||||||
|
// 级联选择器配置选项
|
||||||
|
//const cascaderProps = { checkStrictly: true, emitPath: false, value: 'id', label: 'name' };
|
||||||
|
|
||||||
// 打开弹窗
|
// 打开弹窗
|
||||||
const openDialog = (row: any) => {
|
const openDialog = (row: any) => {
|
||||||
|
|||||||
@ -4,38 +4,40 @@
|
|||||||
<el-col :md="12" :sm="24">
|
<el-col :md="12" :sm="24">
|
||||||
<el-card shadow="hover" header="系统信息">
|
<el-card shadow="hover" header="系统信息">
|
||||||
<table class="sysInfo_table">
|
<table class="sysInfo_table">
|
||||||
<tr>
|
<tbody>
|
||||||
<td class="sysInfo_td">主机名称:</td>
|
<tr>
|
||||||
<td class="sysInfo_td">{{ state.machineBaseInfo.hostName }}</td>
|
<td class="sysInfo_td">主机名称:</td>
|
||||||
</tr>
|
<td class="sysInfo_td">{{ state.machineBaseInfo.hostName }}</td>
|
||||||
<tr>
|
</tr>
|
||||||
<td class="sysInfo_td">操作系统:</td>
|
<tr>
|
||||||
<td class="sysInfo_td">{{ state.machineBaseInfo.systemOs }}</td>
|
<td class="sysInfo_td">操作系统:</td>
|
||||||
</tr>
|
<td class="sysInfo_td">{{ state.machineBaseInfo.systemOs }}</td>
|
||||||
<tr>
|
</tr>
|
||||||
<td class="sysInfo_td">系统架构:</td>
|
<tr>
|
||||||
<td class="sysInfo_td">{{ state.machineBaseInfo.osArchitecture }}</td>
|
<td class="sysInfo_td">系统架构:</td>
|
||||||
</tr>
|
<td class="sysInfo_td">{{ state.machineBaseInfo.osArchitecture }}</td>
|
||||||
<tr>
|
</tr>
|
||||||
<td class="sysInfo_td">CPU核数:</td>
|
<tr>
|
||||||
<td class="sysInfo_td">{{ state.machineBaseInfo.processorCount }}</td>
|
<td class="sysInfo_td">CPU核数:</td>
|
||||||
</tr>
|
<td class="sysInfo_td">{{ state.machineBaseInfo.processorCount }}</td>
|
||||||
<tr>
|
</tr>
|
||||||
<td class="sysInfo_td">运行时长:</td>
|
<tr>
|
||||||
<td class="sysInfo_td">{{ state.machineBaseInfo.sysRunTime }}</td>
|
<td class="sysInfo_td">运行时长:</td>
|
||||||
</tr>
|
<td class="sysInfo_td">{{ state.machineBaseInfo.sysRunTime }}</td>
|
||||||
<tr>
|
</tr>
|
||||||
<td class="sysInfo_td">外网地址:</td>
|
<tr>
|
||||||
<td class="sysInfo_td">{{ state.machineBaseInfo.remoteIp }}</td>
|
<td class="sysInfo_td">外网地址:</td>
|
||||||
</tr>
|
<td class="sysInfo_td">{{ state.machineBaseInfo.remoteIp }}</td>
|
||||||
<tr>
|
</tr>
|
||||||
<td class="sysInfo_td">内网地址:</td>
|
<tr>
|
||||||
<td class="sysInfo_td">{{ state.machineBaseInfo.localIp }}</td>
|
<td class="sysInfo_td">内网地址:</td>
|
||||||
</tr>
|
<td class="sysInfo_td">{{ state.machineBaseInfo.localIp }}</td>
|
||||||
<tr>
|
</tr>
|
||||||
<td class="sysInfo_td">运行框架:</td>
|
<tr>
|
||||||
<td class="sysInfo_td">{{ state.machineBaseInfo.frameworkDescription }}</td>
|
<td class="sysInfo_td">运行框架:</td>
|
||||||
</tr>
|
<td class="sysInfo_td">{{ state.machineBaseInfo.frameworkDescription }}</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -76,26 +78,28 @@
|
|||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<table class="sysInfo_table">
|
<table class="sysInfo_table">
|
||||||
<tr>
|
<tbody>
|
||||||
<td class="sysInfo_td">启动时间:</td>
|
<tr>
|
||||||
<td class="sysInfo_td">{{ state.machineUseInfo.startTime }}</td>
|
<td class="sysInfo_td">启动时间:</td>
|
||||||
</tr>
|
<td class="sysInfo_td">{{ state.machineUseInfo.startTime }}</td>
|
||||||
<tr>
|
</tr>
|
||||||
<td class="sysInfo_td">运行时长:</td>
|
<tr>
|
||||||
<td class="sysInfo_td">{{ state.machineUseInfo.runTime }}</td>
|
<td class="sysInfo_td">运行时长:</td>
|
||||||
</tr>
|
<td class="sysInfo_td">{{ state.machineUseInfo.runTime }}</td>
|
||||||
<tr>
|
</tr>
|
||||||
<td class="sysInfo_td">网站目录:</td>
|
<tr>
|
||||||
<td class="sysInfo_td">{{ state.machineBaseInfo.wwwroot }}</td>
|
<td class="sysInfo_td">网站目录:</td>
|
||||||
</tr>
|
<td class="sysInfo_td">{{ state.machineBaseInfo.wwwroot }}</td>
|
||||||
<tr>
|
</tr>
|
||||||
<td class="sysInfo_td">开发环境:</td>
|
<tr>
|
||||||
<td class="sysInfo_td">{{ state.machineBaseInfo.environment }}</td>
|
<td class="sysInfo_td">开发环境:</td>
|
||||||
</tr>
|
<td class="sysInfo_td">{{ state.machineBaseInfo.environment }}</td>
|
||||||
<tr>
|
</tr>
|
||||||
<td class="sysInfo_td">环境变量:</td>
|
<tr>
|
||||||
<td class="sysInfo_td">{{ state.machineBaseInfo.stage }}</td>
|
<td class="sysInfo_td">环境变量:</td>
|
||||||
</tr>
|
<td class="sysInfo_td">{{ state.machineBaseInfo.stage }}</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|||||||
@ -62,14 +62,7 @@
|
|||||||
</el-divider>
|
</el-divider>
|
||||||
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
|
||||||
<el-form-item label="所属机构" prop="orgId" :rules="[{ required: true, message: '所属机构不能为空', trigger: 'blur' }]">
|
<el-form-item label="所属机构" prop="orgId" :rules="[{ required: true, message: '所属机构不能为空', trigger: 'blur' }]">
|
||||||
<el-cascader
|
<el-cascader :options="props.orgData" :props="cascaderProps" placeholder="所属机构" clearable filterable class="w100" v-model="state.ruleForm.orgId">
|
||||||
:options="props.orgData"
|
|
||||||
:props="{ checkStrictly: true, emitPath: false, value: 'id', label: 'name', expandTrigger: 'hover' }"
|
|
||||||
placeholder="所属机构"
|
|
||||||
clearable
|
|
||||||
class="w100"
|
|
||||||
v-model="state.ruleForm.orgId"
|
|
||||||
>
|
|
||||||
<template #default="{ node, data }">
|
<template #default="{ node, data }">
|
||||||
<span>{{ data.name }}</span>
|
<span>{{ data.name }}</span>
|
||||||
<span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
|
<span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
|
||||||
@ -115,14 +108,7 @@
|
|||||||
<el-button icon="ele-Delete" type="danger" circle plain size="small" @click="deleteExtOrgRow(k)" />
|
<el-button icon="ele-Delete" type="danger" circle plain size="small" @click="deleteExtOrgRow(k)" />
|
||||||
<span class="ml5">机构</span>
|
<span class="ml5">机构</span>
|
||||||
</template>
|
</template>
|
||||||
<el-cascader
|
<el-cascader :options="props.orgData" :props="cascaderProps" placeholder="机构组织" clearable filterable class="w100" v-model="state.ruleForm.extOrgIdList[k].orgId">
|
||||||
:options="props.orgData"
|
|
||||||
:props="{ checkStrictly: true, emitPath: false, value: 'id', label: 'name', expandTrigger: 'hover' }"
|
|
||||||
placeholder="机构组织"
|
|
||||||
clearable
|
|
||||||
class="w100"
|
|
||||||
v-model="state.ruleForm.extOrgIdList[k].orgId"
|
|
||||||
>
|
|
||||||
<template #default="{ node, data }">
|
<template #default="{ node, data }">
|
||||||
<span>{{ data.name }}</span>
|
<span>{{ data.name }}</span>
|
||||||
<span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
|
<span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
|
||||||
@ -284,6 +270,8 @@ const state = reactive({
|
|||||||
posData: [] as Array<PagePosOutput>, // 职位数据
|
posData: [] as Array<PagePosOutput>, // 职位数据
|
||||||
roleData: [] as Array<RoleOutput>, // 角色数据
|
roleData: [] as Array<RoleOutput>, // 角色数据
|
||||||
});
|
});
|
||||||
|
// 级联选择器配置选项
|
||||||
|
const cascaderProps = { checkStrictly: true, emitPath: false, value: 'id', label: 'name', expandTrigger: 'hover' };
|
||||||
|
|
||||||
// 页面初始化
|
// 页面初始化
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
|
|||||||
@ -58,8 +58,8 @@
|
|||||||
<template #row_sex="{ row }">
|
<template #row_sex="{ row }">
|
||||||
<el-tag v-if="row.sex === 1" type="success">男</el-tag>
|
<el-tag v-if="row.sex === 1" type="success">男</el-tag>
|
||||||
<el-tag v-else-if="row.sex === 2" type="danger">女</el-tag>
|
<el-tag v-else-if="row.sex === 2" type="danger">女</el-tag>
|
||||||
<el-tag v-else-if="row.sex === 0" type="info">未知的性别</el-tag>
|
<el-tag v-else-if="row.sex === 0" type="info">未知</el-tag>
|
||||||
<el-tag v-else-if="row.sex === 9" type="info">未说明的性别</el-tag>
|
<el-tag v-else-if="row.sex === 9" type="info">未说明</el-tag>
|
||||||
</template>
|
</template>
|
||||||
<template #row_accountType="{ row }">
|
<template #row_accountType="{ row }">
|
||||||
<el-tag v-if="row.accountType === 888">系统管理员</el-tag>
|
<el-tag v-if="row.accountType === 888">系统管理员</el-tag>
|
||||||
|
|||||||
@ -96,7 +96,7 @@ const viteConfig = defineConfig((mode: ConfigEnv) => {
|
|||||||
...(JSON.parse(env.VITE_OPEN_CDN) ? { external: buildConfig.external } : {}),
|
...(JSON.parse(env.VITE_OPEN_CDN) ? { external: buildConfig.external } : {}),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
css: { preprocessorOptions: { css: { charset: false } } },
|
css: { preprocessorOptions: { css: { charset: false }, scss: { silenceDeprecations: ['legacy-js-api'] } } },
|
||||||
define: {
|
define: {
|
||||||
__VUE_I18N_LEGACY_API__: JSON.stringify(false),
|
__VUE_I18N_LEGACY_API__: JSON.stringify(false),
|
||||||
__VUE_I18N_FULL_INSTALL__: JSON.stringify(false),
|
__VUE_I18N_FULL_INSTALL__: JSON.stringify(false),
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user