😎1、菜单新增时上级数据刷新 2、修复字典编码返回问题(大小写、序列化设置) 3、调整字典相关页面代码

This commit is contained in:
zuohuaijun 2025-08-02 02:30:45 +08:00
parent c7715bd19e
commit 772435b924
6 changed files with 21 additions and 19 deletions

View File

@ -24,14 +24,12 @@ using Microsoft.Extensions.FileProviders;
using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Hosting;
using MQTTnet.AspNetCore; using MQTTnet.AspNetCore;
using Newtonsoft.Json; using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Serialization; using Newtonsoft.Json.Serialization;
using OnceMi.AspNetCore.OSS; using OnceMi.AspNetCore.OSS;
using RabbitMQ.Client; using RabbitMQ.Client;
using SixLabors.ImageSharp.Web.DependencyInjection; using SixLabors.ImageSharp.Web.DependencyInjection;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Globalization;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Text.Encodings.Web; using System.Text.Encodings.Web;
@ -153,7 +151,7 @@ public class Startup : AppStartup
setting.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; // 忽略循环引用 setting.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; // 忽略循环引用
//setting.NullValueHandling = NullValueHandling.Ignore; // 忽略所有 null 属性 //setting.NullValueHandling = NullValueHandling.Ignore; // 忽略所有 null 属性
//setting.DefaultValueHandling = DefaultValueHandling.Ignore; // 忽略所有默认值属性 //setting.DefaultValueHandling = DefaultValueHandling.Ignore; // 忽略所有默认值属性
setting.ContractResolver = new CamelCasePropertyNamesContractResolver(); // 解决动态对象属性名大写问题 //setting.ContractResolver = new CamelCasePropertyNamesContractResolver(); // 解决动态对象属性名大写问题
setting.Formatting = Formatting.Indented; // JSON 字符串缩进 setting.Formatting = Formatting.Indented; // JSON 字符串缩进
setting.Converters.AddLongTypeConverters(overMaxLengthOf17: true); // long 类型序列化时转 string超过 17 位再转换) setting.Converters.AddLongTypeConverters(overMaxLengthOf17: true); // long 类型序列化时转 string超过 17 位再转换)
setting.Converters.AddDateOnlyConverters(); // DateOnly setting.Converters.AddDateOnlyConverters(); // DateOnly

View File

@ -38,7 +38,7 @@
"echarts": "^6.0.0", "echarts": "^6.0.0",
"echarts-gl": "^2.0.9", "echarts-gl": "^2.0.9",
"echarts-wordcloud": "^2.1.0", "echarts-wordcloud": "^2.1.0",
"element-plus": "^2.10.4", "element-plus": "^2.10.5",
"exceljs": "^4.4.0", "exceljs": "^4.4.0",
"ezuikit-js": "^8.1.12", "ezuikit-js": "^8.1.12",
"flag-icons": "^7.5.0", "flag-icons": "^7.5.0",

View File

@ -19,6 +19,12 @@
</ul> </ul>
<el-drawer :title="$t('message.list.addApp')" v-model="modsDrawer" :size="520" destroy-on-close :before-close="beforeClose"> <el-drawer :title="$t('message.list.addApp')" v-model="modsDrawer" :size="520" destroy-on-close :before-close="beforeClose">
<template #header>
<div style="color: #fff">
<el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"> <ele-Menu /> </el-icon>
<span>{{ $t('message.list.addApp') }}</span>
</div>
</template>
<div class="setMods mt15"> <div class="setMods mt15">
<h4>{{ $t('message.list.myoffenuse') }} ( {{ myMods.length }} )</h4> <h4>{{ $t('message.list.myoffenuse') }} ( {{ myMods.length }} )</h4>
<VueDraggable tag="ul" v-model="myMods" :animation="200" group="app" class="draggable-box"> <VueDraggable tag="ul" v-model="myMods" :animation="200" group="app" class="draggable-box">
@ -39,8 +45,8 @@
</div> </div>
<template #footer> <template #footer>
<div style="margin: 0 20px 20px 0"> <div style="margin: 0 20px 20px 0">
<el-button @click="beforeClose"> {{ $t('message.list.cancelButtonText') }} </el-button> <el-button icon="ele-CircleCloseFilled" @click="beforeClose"> {{ $t('message.list.cancelButtonText') }} </el-button>
<el-button type="primary" @click="saveMods"> {{ $t('message.list.save') }} </el-button> <el-button type="primary" icon="ele-CircleCheckFilled" @click="saveMods"> {{ $t('message.list.confirmButtonText') }} </el-button>
</div> </div>
</template> </template>
</el-drawer> </el-drawer>

View File

@ -47,10 +47,7 @@
</el-col> </el-col>
<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="状态"> <el-form-item label="状态">
<el-radio-group v-model="state.ruleForm.status"> <g-sys-dict v-model="state.ruleForm.status" code="StatusEnum" render-as="radio" />
<el-radio :value="1">启用</el-radio>
<el-radio :value="2">禁用</el-radio>
</el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
<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">
@ -59,13 +56,13 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<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-input v-model="state.ruleForm.remark" placeholder="请输入备注内容" clearable type="textarea" /> <el-input v-model="state.ruleForm.extData" placeholder="请输入拓展数据" clearable type="textarea" :rows="6" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<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-input v-model="state.ruleForm.extData" placeholder="请输入拓展数据" clearable type="textarea" :rows="6" /> <el-input v-model="state.ruleForm.remark" placeholder="请输入备注内容" clearable type="textarea" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>

View File

@ -29,16 +29,16 @@
<g-sys-dict v-model="state.ruleForm.status" code="StatusEnum" render-as="radio" /> <g-sys-dict v-model="state.ruleForm.status" code="StatusEnum" render-as="radio" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
<el-form-item label="排序">
<el-input-number v-model="state.ruleForm.orderNo" placeholder="排序" class="w100" />
</el-form-item>
</el-col>
<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-input v-model="state.ruleForm.remark" placeholder="请输入备注内容" clearable type="textarea" /> <el-input v-model="state.ruleForm.remark" placeholder="请输入备注内容" clearable type="textarea" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :xs="8" :sm="8" :md="8" :lg="8" :xl="8" class="mb20">
<el-form-item label="排序">
<el-input-number v-model="state.ruleForm.orderNo" placeholder="排序" class="w100" />
</el-form-item>
</el-col>
</el-row> </el-row>
</el-form> </el-form>
<template #footer> <template #footer>

View File

@ -153,6 +153,7 @@ const handleQueryApi = async () => {
const handleQuery = async (reset = false) => { const handleQuery = async (reset = false) => {
options.loading = true; options.loading = true;
reset ? await xGrid.value?.commitProxy('reload') : await xGrid.value?.commitProxy('query'); reset ? await xGrid.value?.commitProxy('reload') : await xGrid.value?.commitProxy('query');
state.menuData = xGrid.value?.getTableData().tableData ?? [];
options.loading = false; options.loading = false;
}; };