😎1、增加表行记录查看组件 2、优化前端页面代码 3、升级依赖

This commit is contained in:
zuohuaijun 2025-06-11 12:39:20 +08:00
parent 1211d34770
commit 7efa9795d6
17 changed files with 134 additions and 29 deletions

View File

@ -56,7 +56,7 @@
<PackageReference Include="SSH.NET" Version="2025.0.0" />
<PackageReference Include="System.Linq.Dynamic.Core" Version="1.6.5" />
<PackageReference Include="System.Net.Http" Version="4.3.4" />
<PackageReference Include="TencentCloudSDK.Sms" Version="3.0.1254" />
<PackageReference Include="TencentCloudSDK.Sms" Version="3.0.1258" />
<PackageReference Include="UAParser" Version="3.1.47" />
<PackageReference Include="Yitter.IdGenerator" Version="1.0.14" />
</ItemGroup>
@ -76,9 +76,9 @@
<PackageReference Include="AspNet.Security.OAuth.Gitee" Version="9.4.0" />
<PackageReference Include="AspNet.Security.OAuth.Weixin" Version="9.4.0" />
<PackageReference Include="Lazy.Captcha.Core" Version="2.1.0" />
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="9.0.5" />
<PackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" Version="9.0.5" />
<PackageReference Include="Microsoft.AspNetCore.SignalR.StackExchangeRedis" Version="9.0.5" />
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="9.0.6" />
<PackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" Version="9.0.6" />
<PackageReference Include="Microsoft.AspNetCore.SignalR.StackExchangeRedis" Version="9.0.6" />
<PackageReference Include="Microsoft.PowerShell.SDK" Version="7.5.1" />
<PackageReference Include="My.Extensions.Localization.Json" Version="3.4.0" />
</ItemGroup>

View File

@ -12,7 +12,7 @@
<ItemGroup>
<PackageReference Include="IGeekFan.AspNetCore.Knife4jUI" Version="0.0.16" />
<PackageReference Include="MQTTnet.AspNetCore" Version="5.0.1.1416" />
<PackageReference Include="System.Security.Cryptography.Pkcs" Version="9.0.5" />
<PackageReference Include="System.Security.Cryptography.Pkcs" Version="9.0.6" />
</ItemGroup>
<ItemGroup>

View File

@ -79,7 +79,7 @@
"vue-router": "^4.5.1",
"vue-signature-pad": "^3.0.2",
"vue3-tree-org": "^4.2.2",
"vxe-pc-ui": "^4.6.19",
"vxe-pc-ui": "^4.6.20",
"vxe-table": "^4.13.37",
"xe-utils": "^3.7.5",
"xlsx-js-style": "^1.2.0"

View File

@ -0,0 +1,115 @@
<template>
<el-dialog v-model="state.dialogVisible" draggable :close-on-click-modal="false">
<template #header>
<div style="color: #fff">
<el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"> <ele-View /> </el-icon>
<span>{{ props.title }}</span>
</div>
</template>
<el-descriptions :column="descColumn" border>
<el-descriptions-item v-for="(item, key) in state.data" :key="key" :label="key" :width="state.descriptionsWidth">
<template #label>
<el-text v-if="String(key) === t('message.list.creator')">
<el-icon><ele-UserFilled /></el-icon>
{{ key }}
</el-text>
<el-text v-else-if="String(key) === t('message.list.createTime')">
<el-icon><ele-Calendar /></el-icon>
{{ key }}
</el-text>
<el-text v-else-if="String(key) === t('message.list.modifier')">
<el-icon><ele-UserFilled /></el-icon>
{{ key }}
</el-text>
<el-text v-else-if="String(key) === t('message.list.modifyTime')">
<el-icon><ele-Calendar /></el-icon>
{{ key }}
</el-text>
<el-text v-else-if="String(key) === t('message.list.remark')">
<el-icon><ele-Tickets /></el-icon>
{{ key }}
</el-text>
<el-text v-else>
{{ key }}
</el-text>
</template>
<template v-if="item === false || item === true">
<span>{{ item === false ? '否' : '是' }}</span>
</template>
<span v-else>{{ item }}</span>
</el-descriptions-item>
</el-descriptions>
</el-dialog>
</template>
<script lang="ts" setup>
import { computed, reactive, onMounted, onUnmounted } from 'vue';
import { useI18n } from 'vue-i18n';
const { t } = useI18n();
const props = defineProps({
title: String,
});
const state = reactive({
dialogVisible: false,
data: {} as any,
windowWidth: window.innerWidth,
descriptionsWidth: '',
});
const handleResize = () => {
state.windowWidth = window.innerWidth;
};
onMounted(() => {
window.addEventListener('resize', handleResize);
});
onUnmounted(() => {
window.removeEventListener('resize', handleResize);
});
//
const openDialog = (row: any, columns: any) => {
state.data = {};
state.dialogVisible = true;
//
const columnsData = columns.reduce((acc: any, item: any) => {
if (item.field !== 'seq' && item.field !== 'record' && item.field !== 'buttons') {
acc[item.title] = row[item.field];
}
return acc;
}, {});
//
const fixedFields = {
创建者: row.createUserName,
创建时间: row.createTime,
修改者: row.updateUserName,
修改时间: row.updateTime,
...(row.remark && { 备注: row.remark }),
};
state.data = { ...columnsData, ...fixedFields };
};
//
const descColumn = computed(() => {
if (state.windowWidth < 800) {
state.descriptionsWidth = '50%';
return 1;
}
if (state.windowWidth < 1000) {
state.descriptionsWidth = '25%';
return 2;
}
state.descriptionsWidth = '10%';
return 3;
});
defineExpose({
openDialog,
});
</script>

View File

@ -7,6 +7,7 @@ export default {
button: 'Button',
query: 'Query',
reset: 'Reset',
view: 'view',
add: 'Add',
allExpand: 'Expand All',
allFold: 'Collapse All',

View File

@ -7,6 +7,7 @@ export default {
button: '按钮',
query: '查询',
reset: '重置',
view: '查看',
add: '新增',
allExpand: '全部展开',
allFold: '全部折叠',

View File

@ -57,7 +57,7 @@ import { reactive, ref } from 'vue';
import { getAPI } from '/@/utils/axios-utils';
import { SysDictTypeApi } from '/@/api-services/api';
import { AccountTypeEnum, UpdateDictTypeInput } from '/@/api-services/models';
import {useUserInfo} from "/@/stores/userInfo";
import { useUserInfo } from '/@/stores/userInfo';
const props = defineProps({
title: String,

View File

@ -148,15 +148,7 @@ import ModifyRecord from '/@/components/table/modifyRecord.vue';
import { getAPI } from '/@/utils/axios-utils';
import { SysDictTypeApi, SysDictDataApi } from '/@/api-services/api';
import {
SysDictType,
PageDictTypeInput,
SysDictData,
PageDictDataInput,
UpdateDictDataInput,
AccountTypeEnum
} from '/@/api-services/models';
import {auth} from "/@/utils/authFunction";
import { SysDictType, PageDictTypeInput, SysDictData, PageDictDataInput, UpdateDictDataInput, AccountTypeEnum } from '/@/api-services/models';
const userInfo = useUserInfo().userInfos;
const xGridDictType = ref<VxeGridInstance>();

View File

@ -145,12 +145,11 @@ import { ElMessageBox, ElMessage, UploadInstance } from 'element-plus';
import { VxeGridInstance, VxeGridListeners, VxeGridPropTypes } from 'vxe-table';
import { useVxeTable } from '/@/hooks/useVxeTableOptionsHook';
import { Local } from '/@/utils/storage';
import { downloadByUrl } from '/@/utils/download';
import { Splitpanes, Pane } from 'splitpanes';
import 'splitpanes/dist/splitpanes.css';
import { downloadByUrl } from '/@/utils/download';
import VueOfficeDocx from '@vue-office/docx';
import VueOfficeExcel from '@vue-office/excel';
import VueOfficePdf from '@vue-office/pdf';

View File

@ -80,6 +80,7 @@ import { ElMessageBox, ElMessage } from 'element-plus';
import { VxeGridInstance, VxeGridListeners } from 'vxe-table';
import { useVxeTable } from '/@/hooks/useVxeTableOptionsHook';
import SvgIcon from '/@/components/svgIcon/index.vue';
import { Hide } from '@element-plus/icons-vue';
import EditMenu from '/@/views/system/menu/component/editMenu.vue';
import ModifyRecord from '/@/components/table/modifyRecord.vue';
@ -87,7 +88,6 @@ import ModifyRecord from '/@/components/table/modifyRecord.vue';
import { getAPI } from '/@/utils/axios-utils';
import { SysMenuApi } from '/@/api-services/api';
import { SysMenu, UpdateMenuInput } from '/@/api-services/models';
import { Hide } from '@element-plus/icons-vue';
const xGrid = ref<VxeGridInstance>();
const editMenuRef = ref<InstanceType<typeof EditMenu>>();

View File

@ -76,6 +76,7 @@ import commonFunction from '/@/utils/commonFunction';
import { VxeGridInstance, VxeGridListeners, VxeGridPropTypes } from 'vxe-table';
import { useVxeTable } from '/@/hooks/useVxeTableOptionsHook';
import { Local } from '/@/utils/storage';
import { useI18n } from 'vue-i18n';
import EditNotice from '/@/views/system/notice/component/editNotice.vue';
import ModifyRecord from '/@/components/table/modifyRecord.vue';
@ -83,10 +84,8 @@ import ModifyRecord from '/@/components/table/modifyRecord.vue';
import { getAPI } from '/@/utils/axios-utils';
import { SysNoticeApi } from '/@/api-services/api';
import { SysNotice, PageNoticeInput } from '/@/api-services/models';
import { useI18n } from 'vue-i18n';
const i18n = useI18n();
const xGrid = ref<VxeGridInstance>();
const editNoticeRef = ref<InstanceType<typeof EditNotice>>();
const { removeHtml } = commonFunction();

View File

@ -80,7 +80,6 @@ import { SysOnlineUser, PageOnlineUserInput } from '/@/api-services/models';
const storesThemeConfig = useThemeConfig();
const { themeConfig } = storeToRefs(storesThemeConfig);
const { t } = useI18n();
const xGrid = ref<VxeGridInstance>();
const sendMessageRef = ref<InstanceType<typeof SendMessage>>();
const state = reactive({

View File

@ -133,11 +133,11 @@
<script lang="ts" setup name="sysPluginCore">
import { onMounted, reactive, ref } from 'vue';
import { ElMessageBox, ElMessage, UploadInstance } from 'element-plus';
import { auth } from '/@/utils/authFunction';
import EditPlugin from './component/editPluginSetting.vue';
import DetailsPluginDialog from './component/detailsPluginDialog.vue';
import { auth } from '/@/utils/authFunction';
import { getAPI } from '/@/utils/axios-utils';
import { SysPluginCoreApi } from '/@/api-plugins/pluginCore/api';
import { SysPluginCore } from '/@/api-plugins/pluginCore/models';

View File

@ -79,6 +79,7 @@ import { ElMessageBox, ElMessage } from 'element-plus';
import { VxeGridInstance, VxeGridListeners, VxeGridPropTypes } from 'vxe-table';
import { useVxeTable } from '/@/hooks/useVxeTableOptionsHook';
import { Local } from '/@/utils/storage';
import { useI18n } from 'vue-i18n';
import EditPos from '/@/views/system/pos/component/editPos.vue';
import ModifyRecord from '/@/components/table/modifyRecord.vue';
@ -86,10 +87,8 @@ import ModifyRecord from '/@/components/table/modifyRecord.vue';
import { getAPI } from '/@/utils/axios-utils';
import { SysPosApi } from '/@/api-services/api';
import { PagePosOutput, PagePosInput, UpdatePosInput } from '/@/api-services/models';
import { useI18n } from 'vue-i18n';
const i18n = useI18n();
const xGrid = ref<VxeGridInstance>();
const editPosRef = ref<InstanceType<typeof EditPos>>();
const state = reactive({

View File

@ -106,6 +106,7 @@ import { ElMessageBox, ElMessage, ElButton } from 'element-plus';
import { VxeGridInstance, VxeGridListeners, VxeGridPropTypes } from 'vxe-table';
import { useVxeTable } from '/@/hooks/useVxeTableOptionsHook';
import { Local } from '/@/utils/storage';
import EditTenant from '/@/views/system/tenant/component/editTenant.vue';
import GrantMenu from '/@/views/system/tenant/component/grantMenu.vue';
import GrantApi from '/@/views/system/role/component/grantApi.vue';

View File

@ -110,6 +110,7 @@ import { Local } from '/@/utils/storage';
import XEUtils from 'xe-utils';
import { Splitpanes, Pane } from 'splitpanes';
import 'splitpanes/dist/splitpanes.css';
import { useI18n } from 'vue-i18n';
import OrgTree from '/@/views/system/org/component/orgTree.vue';
import EditUser from '/@/views/system/user/component/editUser.vue';
@ -118,10 +119,8 @@ import ModifyRecord from '/@/components/table/modifyRecord.vue';
import { getAPI } from '/@/utils/axios-utils';
import { SysUserApi, SysOrgApi } from '/@/api-services/api';
import { SysOrg, PageTenantInput, UserOutput, UpdateUserInput } from '/@/api-services/models';
import { useI18n } from 'vue-i18n';
const { t } = useI18n();
const xGrid = ref<VxeGridInstance>();
// const treeRef = ref<InstanceType<typeof OrgTree>>();
const editUserRef = ref<InstanceType<typeof EditUser>>();