😎调整字典相关对应
This commit is contained in:
parent
8adfd623d4
commit
efeb9f843e
@ -127,9 +127,10 @@ public class SysOnlineUserService : IDynamicApiController, ITransient
|
||||
Id = SqlFunc.AggregateMax(u.Id)
|
||||
})
|
||||
.ToListAsync();
|
||||
var onlineUserIds = onlineUsers.Select(u => u.Id).ToList();
|
||||
if (onlineUsers.Count < 1) return;
|
||||
|
||||
// 无效登录用户集合
|
||||
var onlineUserIds = onlineUsers.Select(u => u.Id).ToList();
|
||||
var offlineUsers = await _sysOnlineUerRep.AsQueryable().Where(u => !onlineUserIds.Contains(u.Id)).ToListAsync();
|
||||
foreach (var user in offlineUsers)
|
||||
{
|
||||
|
||||
@ -165,7 +165,7 @@
|
||||
@:</template>
|
||||
} else if(@column.EffectType == "DictSelector") {
|
||||
@:<template #row_@(@column.LowerPropertyName)="{ row }">
|
||||
@:<el-tag v-if="row.@(@column.LowerPropertyName)" :type="dc('@(@column.DictTypeCode)', row.@(@column.LowerPropertyName))?.tagType"> {{dc('@(@column.DictTypeCode)', row.@column.LowerPropertyName)?.value}}</el-tag>
|
||||
@:<el-tag v-if="row.@(@column.LowerPropertyName)" :type="dc('@(@column.DictTypeCode)', row.@(@column.LowerPropertyName))?.tagType"> {{dc('@(@column.DictTypeCode)', row.@column.LowerPropertyName)?.label}}</el-tag>
|
||||
@:</template>
|
||||
} else if(@column.EffectType == "EnumSelector") {
|
||||
@:<template #row_@(@column.LowerPropertyName)="{ row }">
|
||||
@ -258,8 +258,8 @@ const userStore = useUserInfo();
|
||||
@:const codeToName = userStore.codeToName;
|
||||
}
|
||||
@if(@Model.TableField.Any(x=>x.EffectType == "DictSelector") || @Model.TableField.Any(x=>x.EffectType == "EnumSelector")){
|
||||
@:const dc = userStore.getDictItemByCode;
|
||||
@:const dv = userStore.getDictLabelByVal;
|
||||
@:const dc = userStore.getDictItemByValue;
|
||||
@:const dv = userStore.getDictItemByLabel;
|
||||
@:const dl = userStore.getDictDataByCode;
|
||||
}
|
||||
|
||||
|
||||
@ -224,8 +224,6 @@ const userStore = useUserInfo();
|
||||
@:const getConstType = userStore.getConstDataByTypeCode;
|
||||
}
|
||||
@if(@Model.TableField.Any(x=>x.EffectType == "DictSelector") || @Model.TableField.Any(x=>x.EffectType == "EnumSelector")){
|
||||
//@:const dc = userStore.getDictItemByCode;
|
||||
//@:const dv = userStore.getDictLabelByVal;
|
||||
@:const dl = userStore.getDictDataByCode;
|
||||
}
|
||||
|
||||
|
||||
@ -158,7 +158,7 @@
|
||||
else if(@column.EffectType == "DictSelector"){
|
||||
@:<el-table-column prop="@column.LowerPropertyName" label="@column.ColumnComment" @(column.WhetherSortable == "Y" ? "sortable='custom'" : "") show-overflow-tooltip="" >
|
||||
@:<template #default="scope">
|
||||
@:<el-tag :type="dc('@(@column.DictTypeCode)', scope.row.@(@column.LowerPropertyName))?.tagType"> {{dc("@(@column.DictTypeCode)", scope.row.@(@column.LowerPropertyName))?.value}} </el-tag>
|
||||
@:<el-tag :type="dc('@(@column.DictTypeCode)', scope.row.@(@column.LowerPropertyName))?.tagType"> {{dc("@(@column.DictTypeCode)", scope.row.@(@column.LowerPropertyName))?.label}} </el-tag>
|
||||
@:</template>
|
||||
@:</el-table-column>
|
||||
}
|
||||
@ -251,8 +251,8 @@
|
||||
@:const codeToName = userStore.codeToName;
|
||||
}
|
||||
@if(@Model.TableField.Any(x=>x.EffectType == "DictSelector") || @Model.TableField.Any(x=>x.EffectType == "EnumSelector")){
|
||||
@:const dc = userStore.getDictItemByCode;
|
||||
@:const dv = userStore.getDictLabelByVal;
|
||||
@:const dc = userStore.getDictItemByValue;
|
||||
@:const dv = userStore.getDictItemByLabel;
|
||||
@:const dl = userStore.getDictDataByCode;
|
||||
}
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
"name": "admin.net.pro",
|
||||
"type": "module",
|
||||
"version": "2.4.33",
|
||||
"lastBuildTime": "2025.02.18",
|
||||
"lastBuildTime": "2025.02.20",
|
||||
"description": "Admin.NET 站在巨人肩膀上的 .NET 通用权限开发框架",
|
||||
"author": "zuohuaijun",
|
||||
"license": "MIT",
|
||||
@ -103,7 +103,7 @@
|
||||
"sass": "^1.85.0",
|
||||
"terser": "^5.39.0",
|
||||
"typescript": "^5.7.3",
|
||||
"vite": "^6.1.0",
|
||||
"vite": "^6.1.1",
|
||||
"vite-plugin-cdn-import": "^1.0.1",
|
||||
"vite-plugin-compression2": "^1.3.3",
|
||||
"vite-plugin-vue-setup-extend": "^0.4.0",
|
||||
|
||||
@ -139,18 +139,23 @@ export const useUserInfo = defineStore('userInfo', {
|
||||
return data.find((item: any) => item.code === itemCode)?.name;
|
||||
},
|
||||
|
||||
// 常量编码和名称转换
|
||||
codeToName(code: any, type: any) {
|
||||
return this.constList.find((x: any) => x.code === type).data.result.find((x: any) => x.code === code)?.name;
|
||||
},
|
||||
|
||||
// 根据字典类型获取字典数据
|
||||
getDictDataByCode(dictTypeCode: string) {
|
||||
return this.dictList[dictTypeCode] || [];
|
||||
},
|
||||
|
||||
// 根据字典类型和代码取字典项
|
||||
getDictItemByCode(typePCode: string, code: string) {
|
||||
if (code != undefined && code !== '') {
|
||||
const _code = code.toString();
|
||||
const ds = this.getDictDataByCode(typePCode);
|
||||
// 根据字典类型和值获取取字典项
|
||||
getDictItemByValue(dictTypeCode: string, value: string) {
|
||||
if (value != undefined && value !== '') {
|
||||
const _value = value.toString();
|
||||
const ds = this.dictList[dictTypeCode] || [];
|
||||
for (const element of ds) {
|
||||
if (element.code == _code) {
|
||||
if (element.value == _value) {
|
||||
return element;
|
||||
}
|
||||
}
|
||||
@ -158,30 +163,25 @@ export const useUserInfo = defineStore('userInfo', {
|
||||
return {};
|
||||
},
|
||||
|
||||
// 根据字典类型和值取描述
|
||||
getDictLabelByVal(typePCode: string, val: string) {
|
||||
if (val != undefined && val !== '') {
|
||||
const _val = val.toString();
|
||||
const ds = this.getDictDataByCode(typePCode);
|
||||
// 根据字典类型和名称获取取字典项
|
||||
getDictItemByLabel(dictTypeCode: string, label: string) {
|
||||
if (label != undefined && label !== '') {
|
||||
const _label = label.toString();
|
||||
const ds = this.dictList[dictTypeCode] || [];
|
||||
for (const element of ds) {
|
||||
if (element.value == _val) {
|
||||
if (element.label == _label) {
|
||||
return element;
|
||||
}
|
||||
}
|
||||
}
|
||||
return {};
|
||||
},
|
||||
|
||||
// 常量编码和名称转换
|
||||
codeToName(code: any, type: any) {
|
||||
return this.constList.find((x: any) => x.code === type).data.result.find((x: any) => x.code === code)?.name;
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
// 处理字典国际化, 默认显示字典中的value值
|
||||
// 处理字典国际化, 默认显示字典中的label值
|
||||
const setDictLangMessageAsync = async (dict: any) => {
|
||||
dict.langMessage = `message.system.dictType.${dict.typeCode}.${dict.code}`;
|
||||
const value = t(dict.langMessage);
|
||||
dict.value = value !== dict.langMessage ? value : dict.value;
|
||||
dict.langMessage = `message.dictType.${dict.typeCode}_${dict.value}`;
|
||||
const text = t(dict.langMessage);
|
||||
dict.label = text !== dict.langMessage ? text : dict.label;
|
||||
};
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
</template>
|
||||
<template #effectType="{ row, $index }">
|
||||
<vxe-select v-model="row.effectType" class="m-2" style="width: 70%" placeholder="Select" transfer :disabled="judgeColumns(row)" @change="effectTypeChange(row, $index)" filterable>
|
||||
<vxe-option v-for="item in state.effectTypeList" :key="item.code" :label="item.value" :value="item.code" />
|
||||
<vxe-option v-for="item in state.effectTypeList" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</vxe-select>
|
||||
<vxe-button v-if="row.effectType === 'ApiTreeSelector' || row.effectType === 'ForeignKey'" style="width: 30%" icon="vxe-icon-edit" @click="effectTypeChange(row, $index)">修改</vxe-button>
|
||||
</template>
|
||||
@ -43,7 +43,7 @@
|
||||
</template>
|
||||
<template #queryType="{ row }">
|
||||
<vxe-select v-model="row.queryType" class="m-2" placeholder="Select" :disabled="!row.queryWhether" filterable transfer>
|
||||
<vxe-option v-for="item in state.queryTypeList" :key="item.code" :label="item.value" :value="item.code" />
|
||||
<vxe-option v-for="item in state.queryTypeList" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</vxe-select>
|
||||
</template>
|
||||
<template #verification="{ row }">
|
||||
|
||||
@ -37,7 +37,7 @@
|
||||
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
|
||||
<el-form-item label="机构类型">
|
||||
<el-select v-model="state.ruleForm.type" filterable clearable class="w100">
|
||||
<el-option v-for="item in state.orgTypeList" :key="item.value" :label="item.value" :value="item.code" />
|
||||
<el-option v-for="item in state.orgTypeList" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
|
||||
<el-form-item label="机构类型" prop="type">
|
||||
<el-select v-model="state.queryParams.type" filterable clearable class="w100" @clear="state.queryParams.type = undefined">
|
||||
<el-option v-for="item in state.orgTypeList" :key="item.value" :label="item.value" :value="item.code" />
|
||||
<el-option v-for="item in state.orgTypeList" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user