😎1、升级Furion v4.9.4.5等 2、代码调整
This commit is contained in:
parent
6614392375
commit
47775c42ce
@ -18,9 +18,9 @@
|
|||||||
<PackageReference Include="AspectCore.Extensions.Reflection" Version="2.4.0" />
|
<PackageReference Include="AspectCore.Extensions.Reflection" Version="2.4.0" />
|
||||||
<PackageReference Include="AspNetCoreRateLimit" Version="5.0.0" />
|
<PackageReference Include="AspNetCoreRateLimit" Version="5.0.0" />
|
||||||
<PackageReference Include="Elastic.Clients.Elasticsearch" Version="8.14.6" />
|
<PackageReference Include="Elastic.Clients.Elasticsearch" Version="8.14.6" />
|
||||||
<PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.9.4.4" />
|
<PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.9.4.5" />
|
||||||
<PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.9.4.4" />
|
<PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.9.4.5" />
|
||||||
<PackageReference Include="Furion.Pure" Version="4.9.4.4" />
|
<PackageReference Include="Furion.Pure" Version="4.9.4.5" />
|
||||||
<PackageReference Include="IPTools.China" Version="1.6.0" />
|
<PackageReference Include="IPTools.China" Version="1.6.0" />
|
||||||
<PackageReference Include="IPTools.International" Version="1.6.0" />
|
<PackageReference Include="IPTools.International" Version="1.6.0" />
|
||||||
<PackageReference Include="Magicodes.IE.Excel" Version="2.7.5.1" />
|
<PackageReference Include="Magicodes.IE.Excel" Version="2.7.5.1" />
|
||||||
@ -34,10 +34,10 @@
|
|||||||
<PackageReference Include="SixLabors.ImageSharp.Web" Version="3.1.2" />
|
<PackageReference Include="SixLabors.ImageSharp.Web" Version="3.1.2" />
|
||||||
<PackageReference Include="SKIT.FlurlHttpClient.Wechat.Api" Version="3.3.0" />
|
<PackageReference Include="SKIT.FlurlHttpClient.Wechat.Api" Version="3.3.0" />
|
||||||
<PackageReference Include="SKIT.FlurlHttpClient.Wechat.TenpayV3" Version="3.6.0" />
|
<PackageReference Include="SKIT.FlurlHttpClient.Wechat.TenpayV3" Version="3.6.0" />
|
||||||
<PackageReference Include="SqlSugarCore" Version="5.1.4.160" />
|
<PackageReference Include="SqlSugarCore" Version="5.1.4.162" />
|
||||||
<PackageReference Include="SSH.NET" Version="2024.1.0" />
|
<PackageReference Include="SSH.NET" Version="2024.1.0" />
|
||||||
<PackageReference Include="System.Linq.Dynamic.Core" Version="1.4.3" />
|
<PackageReference Include="System.Linq.Dynamic.Core" Version="1.4.3" />
|
||||||
<PackageReference Include="TencentCloudSDK.Sms" Version="3.0.1044" />
|
<PackageReference Include="TencentCloudSDK.Sms" Version="3.0.1045" />
|
||||||
<PackageReference Include="UAParser" Version="3.1.47" />
|
<PackageReference Include="UAParser" Version="3.1.47" />
|
||||||
<PackageReference Include="Yitter.IdGenerator" Version="1.0.14" />
|
<PackageReference Include="Yitter.IdGenerator" Version="1.0.14" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
@ -45,7 +45,7 @@
|
|||||||
<ItemGroup Condition=" '$(TargetFramework)' == 'net6.0' ">
|
<ItemGroup Condition=" '$(TargetFramework)' == 'net6.0' ">
|
||||||
<PackageReference Include="AspNet.Security.OAuth.Gitee" Version="6.0.15" />
|
<PackageReference Include="AspNet.Security.OAuth.Gitee" Version="6.0.15" />
|
||||||
<PackageReference Include="AspNet.Security.OAuth.Weixin" Version="6.0.15" />
|
<PackageReference Include="AspNet.Security.OAuth.Weixin" Version="6.0.15" />
|
||||||
<PackageReference Include="Lazy.Captcha.Core" Version="2.0.6" />
|
<PackageReference Include="Lazy.Captcha.Core" Version="2.0.8" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="6.0.31" />
|
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="6.0.31" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" Version="6.0.31" />
|
<PackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" Version="6.0.31" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.SignalR.StackExchangeRedis" Version="6.0.31" />
|
<PackageReference Include="Microsoft.AspNetCore.SignalR.StackExchangeRedis" Version="6.0.31" />
|
||||||
|
|||||||
@ -20,25 +20,25 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="@(@Model.LowerClassName)-container" v-loading="options.loading">
|
<div class="@(@Model.LowerClassName)-container" v-loading="options.loading">
|
||||||
<el-card shadow="hover" :body-style="{ padding: '20px 20px 16px 10px', display: 'flex', width: '100%', height: '100%', alignItems: 'start' }">
|
<el-card shadow="hover" :body-style="{ padding: '20px 20px 16px 10px', display: 'flex', width: '100%', height: '100%', alignItems: 'start' }">
|
||||||
<el-form :model="state.queryParams" ref="queryForm" :show-message="false" :inlineMessage="true" label-width="auto" style="flex: 1 1 0%" @@submit.prevent="handleQuery(true)" >
|
<el-form :model="state.queryParams" ref="queryForm" :show-message="false" :inlineMessage="true" label-width="auto" style="flex: 1 1 0%" @@submit.prevent="handleQuery" >
|
||||||
<el-row :gutter="10">
|
<el-row :gutter="10">
|
||||||
@if(Model.QueryWhetherList.Count > 0){
|
@if(Model.QueryWhetherList.Count > 0){
|
||||||
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
|
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
|
||||||
<el-form-item label="关键字" prop="searchKey">
|
<el-form-item label="关键字" prop="searchKey">
|
||||||
<el-input v-model="state.queryParams.searchKey" placeholder="请输入模糊查询关键字" clearable @@keyup.enter.native="handleQuery(true)" />
|
<el-input v-model="state.queryParams.searchKey" placeholder="请输入模糊查询关键字" clearable @@keyup.enter.native="handleQuery" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
foreach (var column in Model.QueryWhetherList) {
|
foreach (var column in Model.QueryWhetherList) {
|
||||||
if(@column.EffectType == "Input" || @column.EffectType == "InputTextArea") {
|
if(@column.EffectType == "Input" || @column.EffectType == "InputTextArea") {
|
||||||
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.showAdvanceQueryUI">
|
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.showAdvanceQueryUI">
|
||||||
<el-form-item label="@column.ColumnComment" prop="@(@column.LowerPropertyName)">
|
<el-form-item label="@column.ColumnComment" prop="@(@column.LowerPropertyName)">
|
||||||
<el-input v-model="state.queryParams.@(@column.LowerPropertyName)" placeholder="@column.ColumnComment" clearable @@keyup.enter.native="handleQuery(true)" />
|
<el-input v-model="state.queryParams.@(@column.LowerPropertyName)" placeholder="@column.ColumnComment" clearable @@keyup.enter.native="handleQuery" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
} else if(@column.EffectType == "InputNumber") {
|
} else if(@column.EffectType == "InputNumber") {
|
||||||
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.showAdvanceQueryUI">
|
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.showAdvanceQueryUI">
|
||||||
<el-form-item label="@column.ColumnComment">
|
<el-form-item label="@column.ColumnComment">
|
||||||
<el-input-number v-model="state.queryParams.@(@column.LowerPropertyName)" placeholder="请输入@(@column.ColumnComment)" clearable @@keyup.enter.native="handleQuery(true)" />
|
<el-input-number v-model="state.queryParams.@(@column.LowerPropertyName)" placeholder="请输入@(@column.ColumnComment)" clearable @@keyup.enter.native="handleQuery" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
} else if(@column.EffectType == "fk") {
|
} else if(@column.EffectType == "fk") {
|
||||||
@ -52,7 +52,7 @@
|
|||||||
} else if(@column.EffectType == "Select") {
|
} else if(@column.EffectType == "Select") {
|
||||||
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.showAdvanceQueryUI">
|
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.showAdvanceQueryUI">
|
||||||
<el-form-item label="@column.ColumnComment" prop="@(@column.LowerPropertyName)">
|
<el-form-item label="@column.ColumnComment" prop="@(@column.LowerPropertyName)">
|
||||||
<el-select v-model="state.queryParams.@(@column.LowerPropertyName)" filterable placeholder="请选择@(@column.ColumnComment)" clearable @@keyup.enter.native="handleQuery(true)" >
|
<el-select v-model="state.queryParams.@(@column.LowerPropertyName)" filterable placeholder="请选择@(@column.ColumnComment)" clearable @@keyup.enter.native="handleQuery" >
|
||||||
<el-option v-for="(item,index) in dl('@(@column.DictTypeCode)')" :key="index" :value="item.code" :label="`${item.name} [${item.code}] ${item.value}`" />
|
<el-option v-for="(item,index) in dl('@(@column.DictTypeCode)')" :key="index" :value="item.code" :label="`${item.name} [${item.code}] ${item.value}`" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -60,7 +60,7 @@
|
|||||||
} else if(@column.EffectType == "EnumSelector") {
|
} else if(@column.EffectType == "EnumSelector") {
|
||||||
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.showAdvanceQueryUI">
|
<el-col class="mb5" :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.showAdvanceQueryUI">
|
||||||
<el-form-item label="@column.ColumnComment" prop="@(@column.LowerPropertyName)">
|
<el-form-item label="@column.ColumnComment" prop="@(@column.LowerPropertyName)">
|
||||||
<el-select v-model="state.queryParams.@(@column.LowerPropertyName)" filterable placeholder="请选择@(@column.ColumnComment)" clearable @@keyup.enter.native="handleQuery(true)" >
|
<el-select v-model="state.queryParams.@(@column.LowerPropertyName)" filterable placeholder="请选择@(@column.ColumnComment)" clearable @@keyup.enter.native="handleQuery" >
|
||||||
<el-option v-for="(item,index) in dl('@(@column.DictTypeCode)')" :key="index" :value="item.value" :label="`${item.name} [${item.code}] ${item.value}`" />
|
<el-option v-for="(item,index) in dl('@(@column.DictTypeCode)')" :key="index" :value="item.value" :label="`${item.name} [${item.code}] ${item.value}`" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -86,7 +86,7 @@
|
|||||||
<el-row>
|
<el-row>
|
||||||
<el-col>
|
<el-col>
|
||||||
<el-button-group>
|
<el-button-group>
|
||||||
<el-button type="primary" icon="ele-Search" @@click="handleQuery(true)" v-auth="'@(@Model.LowerClassName):page'" :loading="options.loading"> 查询 </el-button>
|
<el-button type="primary" icon="ele-Search" @@click="handleQuery" v-auth="'@(@Model.LowerClassName):page'" :loading="options.loading"> 查询 </el-button>
|
||||||
<el-button icon="ele-Refresh" @@click="resetQuery" :loading="options.loading"> 重置 </el-button>
|
<el-button icon="ele-Refresh" @@click="resetQuery" :loading="options.loading"> 重置 </el-button>
|
||||||
<el-button icon="ele-ZoomIn" @@click="changeAdvanceQueryUI" v-if="!state.showAdvanceQueryUI" style="margin-left: 5px"> 高级查询 </el-button>
|
<el-button icon="ele-ZoomIn" @@click="changeAdvanceQueryUI" v-if="!state.showAdvanceQueryUI" style="margin-left: 5px"> 高级查询 </el-button>
|
||||||
<el-button icon="ele-ZoomOut" @@click="changeAdvanceQueryUI" v-if="state.showAdvanceQueryUI" style="margin-left: 5px"> 隐藏 </el-button>
|
<el-button icon="ele-ZoomOut" @@click="changeAdvanceQueryUI" v-if="state.showAdvanceQueryUI" style="margin-left: 5px"> 隐藏 </el-button>
|
||||||
@ -96,7 +96,7 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
<el-card class="full-table" shadow="hover" style="margin-top: 5px">
|
<el-card class="full-table" shadow="hover" style="margin-top: 5px">
|
||||||
<vxe-grid ref="xGrid" class="xGrid-style" v-bind="options" @@sort-change="sortChange">
|
<vxe-grid ref="xGrid" class="xGrid-style" v-bind="options" v-on="gridEvents">
|
||||||
<template #toolbar_buttons>
|
<template #toolbar_buttons>
|
||||||
<el-button type="primary" icon="ele-Plus" @@click="handleAdd" v-auth="'@(@Model.LowerClassName):add'"> 新增 </el-button>
|
<el-button type="primary" icon="ele-Plus" @@click="handleAdd" v-auth="'@(@Model.LowerClassName):add'"> 新增 </el-button>
|
||||||
</template>
|
</template>
|
||||||
@ -154,7 +154,11 @@
|
|||||||
@:<template #row_@(@column.LowerPropertyName)="{ row }">
|
@:<template #row_@(@column.LowerPropertyName)="{ row }">
|
||||||
@:<el-tag :type="dv('@(@column.DictTypeCode)', row.@(@column.LowerPropertyName))?.tagType"> {{dv('@(@column.DictTypeCode)', row.@column.LowerPropertyName)?.name}}</el-tag>
|
@:<el-tag :type="dv('@(@column.DictTypeCode)', row.@(@column.LowerPropertyName))?.tagType"> {{dv('@(@column.DictTypeCode)', row.@column.LowerPropertyName)?.name}}</el-tag>
|
||||||
@:</template>
|
@:</template>
|
||||||
}
|
} else if(@column.EffectType == "DatePicker") {
|
||||||
|
@:<template #row_@(@column.LowerPropertyName)="{ row }">
|
||||||
|
@:<span>{{ formatDate(new Date(row.@(@column.LowerPropertyName)), 'YYYY-mm-dd HH:MM:SS') }}</span>
|
||||||
|
@:</template>
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
<template #row_record="{ row }">
|
<template #row_record="{ row }">
|
||||||
@ -173,15 +177,6 @@
|
|||||||
<el-button icon="ele-Delete" size="small" text type="danger" @@click="handleDelete(row)" v-auth="'@(@Model.LowerClassName):delete'" :disabled="row.status === 1" />
|
<el-button icon="ele-Delete" size="small" text type="danger" @@click="handleDelete(row)" v-auth="'@(@Model.LowerClassName):delete'" :disabled="row.status === 1" />
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
</template>
|
</template>
|
||||||
<template #pager>
|
|
||||||
<vxe-pager
|
|
||||||
:loading="options.loading"
|
|
||||||
v-model:current-page="state.tableParams.page"
|
|
||||||
v-model:page-size="state.tableParams.pageSize"
|
|
||||||
:total="state.tableParams.total"
|
|
||||||
@@page-change="pageChange"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
</vxe-grid>
|
</vxe-grid>
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
@ -194,8 +189,10 @@
|
|||||||
import { onMounted, reactive, ref } from 'vue';
|
import { onMounted, reactive, ref } from 'vue';
|
||||||
import { ElMessageBox, ElMessage } from "element-plus";
|
import { ElMessageBox, ElMessage } from "element-plus";
|
||||||
import { auth } from '/@@/utils/authFunction';
|
import { auth } from '/@@/utils/authFunction';
|
||||||
import { VxeGridInstance, VxePagerEvents, VxePagerDefines } from 'vxe-table';
|
|
||||||
import { useVxeTable } from '/@@/hooks/vxeTableOptionsHook';
|
import { VxeGridInstance, VxeGridListeners, VxeGridPropTypes } from 'vxe-table';
|
||||||
|
import { useVxeTable } from '/@@/hooks/useVxeTableOptionsHook';
|
||||||
|
import { Local } from '/@@/utils/storage';
|
||||||
|
|
||||||
@if(@Model.TableField.Any(x=>x.EffectType == "ConstSelector")){
|
@if(@Model.TableField.Any(x=>x.EffectType == "ConstSelector")){
|
||||||
@:import { codeToName, getConstType } from "/@@/utils/constHelper";
|
@:import { codeToName, getConstType } from "/@@/utils/constHelper";
|
||||||
@ -256,81 +253,82 @@ const state = reactive({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
tableParams: {
|
localPageParam: {
|
||||||
page: 1,
|
pageSize: 50 as number,
|
||||||
pageSize: 50,
|
defaultSort: { field: 'createTime', order: 'asc', descStr: 'desc' },
|
||||||
field: 'id', // 默认的排序字段
|
|
||||||
order: 'aes', // 排序方向
|
|
||||||
descStr: 'desc', // 降序排序的关键字符
|
|
||||||
total: 0 as any,
|
|
||||||
},
|
},
|
||||||
visible: false,
|
visible: false,
|
||||||
title: '',
|
title: '',
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 本地存储参数
|
||||||
|
const localPageParamKey = 'localPageParam:@(@Model.LowerClassName)';
|
||||||
|
|
||||||
// 改变高级查询的控件显示状态
|
// 改变高级查询的控件显示状态
|
||||||
const changeAdvanceQueryUI = () => {
|
const changeAdvanceQueryUI = () => {
|
||||||
state.showAdvanceQueryUI = !state.showAdvanceQueryUI;
|
state.showAdvanceQueryUI = !state.showAdvanceQueryUI;
|
||||||
};
|
};
|
||||||
|
|
||||||
// 表格参数配置
|
// 表格参数配置
|
||||||
const options = useVxeTable<@(@Model.ClassName)>({
|
const options = useVxeTable<@(@Model.ClassName)>(
|
||||||
id: '@(@Model.ClassName)',
|
{
|
||||||
name: '@(@Model.BusName)',
|
id: '@(@Model.ClassName)',
|
||||||
columns: [
|
name: '@(@Model.BusName)',
|
||||||
{ type: 'seq', title: '序号', width: 60, fixed: 'left' },
|
columns: [
|
||||||
@foreach (var column in Model.TableField) {
|
{ type: 'seq', title: '序号', width: 60, fixed: 'left' },
|
||||||
var whethersortable =column.WhetherSortable == "Y" ? "sortable: true" : "sortable: false";
|
@foreach (var column in Model.TableField) {
|
||||||
if(@column.WhetherTable == "Y") {
|
var whethersortable =column.WhetherSortable == "Y" ? "sortable: true" : "sortable: false";
|
||||||
if(@column.EffectType == "Upload" || @column.EffectType == "fk" || @column.EffectType == "ApiTreeSelect" || @column.EffectType == "Switch" || @column.EffectType == "ConstSelector") {
|
if(@column.WhetherTable == "Y") {
|
||||||
if(@column.EffectType == "Upload") {
|
if(@column.EffectType == "Upload" || @column.EffectType == "fk" || @column.EffectType == "ApiTreeSelect" || @column.EffectType == "Switch" || @column.EffectType == "ConstSelector") {
|
||||||
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
|
if(@column.EffectType == "Upload") {
|
||||||
} else if(@column.EffectType == "fk") {
|
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
|
||||||
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
|
} else if(@column.EffectType == "fk") {
|
||||||
} else if(@column.EffectType == "ApiTreeSelect") {
|
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
|
||||||
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
|
} else if(@column.EffectType == "ApiTreeSelect") {
|
||||||
} else if(@column.EffectType == "Switch") {
|
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
|
||||||
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
|
} else if(@column.EffectType == "Switch") {
|
||||||
} else if(@column.EffectType == "ConstSelector") {
|
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
|
||||||
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
|
} else if(@column.EffectType == "ConstSelector") {
|
||||||
}
|
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
|
||||||
} else if(@column.EffectType == "Select") {
|
}
|
||||||
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
|
} else if(@column.EffectType == "Select") {
|
||||||
} else if(@column.EffectType == "EnumSelector") {
|
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
|
||||||
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
|
} else if(@column.EffectType == "EnumSelector") {
|
||||||
} else if(@column.EffectType == "DatePicker") {
|
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
|
||||||
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', formatter: ({ cellValue }) => formatDate(new Date(cellValue), 'YYYY-mm-dd HH:MM:SS'), @whethersortable },
|
} else if(@column.EffectType == "DatePicker") {
|
||||||
} else {
|
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', slots: { default: 'row_@column.LowerPropertyName' }, @whethersortable },
|
||||||
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', @whethersortable},
|
} else {
|
||||||
}
|
@:{ field: '@column.LowerPropertyName', title: '@column.ColumnComment', minWidth: 100, showOverflow: 'tooltip', @whethersortable},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
{ field: '', title: '修改记录', width: 100, showOverflow: 'tooltip', slots: { default: 'row_record' } },
|
}
|
||||||
{ title: '操作', fixed: 'right', width: 180, showOverflow: true, slots: { default: 'row_buttons' } },
|
{ field: '', title: '修改记录', width: 100, showOverflow: 'tooltip', slots: { default: 'row_record' } },
|
||||||
],
|
{ title: '操作', fixed: 'right', width: 180, showOverflow: true, slots: { default: 'row_buttons' } },
|
||||||
enableExport: auth('@(@Model.LowerClassName):export'),
|
],
|
||||||
searchCallback: () => handleQuery(),
|
},
|
||||||
queryAllCallback: () => fetchData({ pageSize: 99999 }),
|
// vxeGrid配置参数(此处可覆写任何参数),参考vxe-table官方文档
|
||||||
});
|
{
|
||||||
|
// 代理配置
|
||||||
|
proxyConfig: { autoLoad: true, ajax: { query: ({ page, sort }) => handleQueryApi(page, sort) } },
|
||||||
|
// 排序配置
|
||||||
|
sortConfig: { defaultSort: Local.get(localPageParamKey)?.defaultSort || state.localPageParam.defaultSort },
|
||||||
|
// 分页配置
|
||||||
|
pagerConfig: { pageSize: Local.get(localPageParamKey)?.pageSize || state.localPageParam.pageSize },
|
||||||
|
// 工具栏配置
|
||||||
|
toolbarConfig: { export: false },
|
||||||
|
// 行设置
|
||||||
|
rowConfig: { height: 80 },
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
// 页面初始化
|
// 页面初始化
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
await handleQuery();
|
await handleQuery();
|
||||||
});
|
});
|
||||||
|
|
||||||
// 查询操作
|
// 查询api
|
||||||
const handleQuery = async (reset = false) => {
|
const handleQueryApi = async (page: VxeGridPropTypes.ProxyAjaxQueryPageParams, sort: VxeGridPropTypes.ProxyAjaxQuerySortCheckedParams) => {
|
||||||
options.loading = true;
|
const params = Object.assign(state.queryParams, { page: page.currentPage, pageSize: page.pageSize, field: sort.field, order: sort.order, descStr: 'desc' }) as @(@Model.ClassName)Input;
|
||||||
if (reset) state.tableParams.page = 1;
|
|
||||||
var res = await fetchData(null);
|
|
||||||
xGrid.value?.loadData(res.data.result?.items ?? []);
|
|
||||||
state.tableParams.total = res.data.result?.total;
|
|
||||||
options.loading = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
// 获取数据
|
|
||||||
const fetchData = async (tableParams: any) => {
|
|
||||||
let params = Object.assign(state.queryParams, state.tableParams, tableParams);
|
|
||||||
@if (@Model.IsApiService) {
|
@if (@Model.IsApiService) {
|
||||||
@:return getAPI(@(@Model.ClassName)Api).api@(@Model.ClassName)PagePost(params);
|
@:return getAPI(@(@Model.ClassName)Api).api@(@Model.ClassName)PagePost(params);
|
||||||
} else {
|
} else {
|
||||||
@ -338,6 +336,11 @@ const fetchData = async (tableParams: any) => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 查询操作
|
||||||
|
const handleQuery = async (reset = false) => {
|
||||||
|
await xGrid.value?.commitProxy('query');
|
||||||
|
};
|
||||||
|
|
||||||
// 重置操作
|
// 重置操作
|
||||||
const resetQuery = () => {
|
const resetQuery = () => {
|
||||||
state.queryParams.searchKey = undefined,
|
state.queryParams.searchKey = undefined,
|
||||||
@ -346,21 +349,7 @@ const resetQuery = () => {
|
|||||||
@:state.queryParams.@(@column.LowerPropertyName) = undefined,
|
@:state.queryParams.@(@column.LowerPropertyName) = undefined,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
handleQuery(true);
|
await xGrid.value?.commitProxy('reload');
|
||||||
};
|
|
||||||
|
|
||||||
// 改变页码序号或页面容量
|
|
||||||
const pageChange: VxePagerEvents.PageChange = ({ currentPage, pageSize }: VxePagerDefines.PageChangeEventParams) => {
|
|
||||||
state.tableParams.page = currentPage;
|
|
||||||
state.tableParams.pageSize = pageSize;
|
|
||||||
handleQuery();
|
|
||||||
};
|
|
||||||
|
|
||||||
// 列排序
|
|
||||||
const sortChange = (options: any) => {
|
|
||||||
state.tableParams.field = options.field;
|
|
||||||
state.tableParams.order = options.order;
|
|
||||||
handleQuery();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// 打开新增页面
|
// 打开新增页面
|
||||||
@ -415,6 +404,20 @@ const handleDelete = (row: any) => {
|
|||||||
.catch(() => {});
|
.catch(() => {});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 表格事件
|
||||||
|
const gridEvents: VxeGridListeners<@(@Model.ClassName)> = {
|
||||||
|
// 只对 pager-config 配置时有效,分页发生改变时会触发该事件
|
||||||
|
async pageChange({ pageSize }) {
|
||||||
|
state.localPageParam.pageSize = pageSize;
|
||||||
|
Local.set(localPageParamKey, state.localPageParam);
|
||||||
|
},
|
||||||
|
// 当排序条件发生变化时会触发该事件
|
||||||
|
async sortChange({ field, order }) {
|
||||||
|
state.localPageParam.defaultSort = { field: field, order: order!, descStr: 'desc' };
|
||||||
|
Local.set(localPageParamKey, state.localPageParam);
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
@foreach (var column in Model.QueryWhetherList) {
|
@foreach (var column in Model.QueryWhetherList) {
|
||||||
@if(@column.EffectType == "fk") {
|
@if(@column.EffectType == "fk") {
|
||||||
@:const @LowerFirstLetter(@column.FkEntityName)@(@column.PropertyName)DropdownList = ref<any>([]);
|
@:const @LowerFirstLetter(@column.FkEntityName)@(@column.PropertyName)DropdownList = ref<any>([]);
|
||||||
|
|||||||
@ -24,7 +24,7 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Rezero.Api" Version="1.7.8" />
|
<PackageReference Include="Rezero.Api" Version="1.7.9" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@ -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.07.10",
|
"lastBuildTime": "2024.07.12",
|
||||||
"description": "Admin.NET 站在巨人肩膀上的 .NET 通用权限开发框架",
|
"description": "Admin.NET 站在巨人肩膀上的 .NET 通用权限开发框架",
|
||||||
"author": "zuohuaijun",
|
"author": "zuohuaijun",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
@ -68,8 +68,8 @@
|
|||||||
"vue-signature-pad": "^3.0.2",
|
"vue-signature-pad": "^3.0.2",
|
||||||
"vue3-tree-org": "^4.2.2",
|
"vue3-tree-org": "^4.2.2",
|
||||||
"vuedraggable": "4.0.3",
|
"vuedraggable": "4.0.3",
|
||||||
"vxe-pc-ui": "^4.0.58",
|
"vxe-pc-ui": "^4.0.61",
|
||||||
"vxe-table": "^4.7.47",
|
"vxe-table": "^4.7.48",
|
||||||
"vxe-table-plugin-element": "^4.0.4",
|
"vxe-table-plugin-element": "^4.0.4",
|
||||||
"vxe-table-plugin-export-xlsx": "^4.0.5",
|
"vxe-table-plugin-export-xlsx": "^4.0.5",
|
||||||
"xe-utils": "^3.5.28",
|
"xe-utils": "^3.5.28",
|
||||||
|
|||||||
@ -132,8 +132,7 @@ export const useUserInfo = defineStore('userInfo', {
|
|||||||
|
|
||||||
// 根据字典类型和代码取字典项
|
// 根据字典类型和代码取字典项
|
||||||
getDictItemByCode(typePCode: string, val: string) {
|
getDictItemByCode(typePCode: string, val: string) {
|
||||||
if(val!=undefined)
|
if (val != undefined) {
|
||||||
{
|
|
||||||
val = val.toString();
|
val = val.toString();
|
||||||
if (val) {
|
if (val) {
|
||||||
const _val = val.toString();
|
const _val = val.toString();
|
||||||
|
|||||||
@ -5,8 +5,8 @@
|
|||||||
<el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"> <ele-Postcard /> </el-icon>简介(About)
|
<el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"> <ele-Postcard /> </el-icon>简介(About)
|
||||||
</h4>
|
</h4>
|
||||||
<span class="text">
|
<span class="text">
|
||||||
基于 .NET6 (Furion/SqlSugar) 实现的通用权限开发框架,前端采用
|
🔥基于 .NET 6/8 (Furion/SqlSugar) 实现的通用权限开发框架,前端采用
|
||||||
Vue3+Element-plus+Vite5,整合众多优秀技术和框架,模块插件式开发。集成多租户、缓存、数据校验、鉴权、事件总线、动态API、通讯、远程请求、任务调度、打印等众多黑科技。代码结构简单清晰,注释详尽,易于上手与二次开发,即便是复杂业务逻辑也能迅速实现,真正实现“开箱即用”。
|
Vue3/Element-plus,代码简洁、易扩展。整合最新技术,模块插件式开发,前后端分离,开箱即用。集成多租户、缓存、数据校验、鉴权、事件总线、动态API、通讯、远程请求、任务调度、打印等众多黑科技。让开发更简单、更通用、更流行!
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user