Pārlūkot izejas kodu

😁升级依赖包版本及代码调整优化

zuohuaijun 2 gadi atpakaļ
vecāks
revīzija
5045645b13

+ 4 - 4
Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj

@@ -21,9 +21,9 @@
     <PackageReference Include="AspNet.Security.OAuth.Gitee" Version="6.0.15" />
     <PackageReference Include="AspNet.Security.OAuth.Weixin" Version="6.0.15" />
     <PackageReference Include="AspNetCoreRateLimit" Version="5.0.0" />
-    <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.9.1.27" />
-    <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.9.1.27" />
-    <PackageReference Include="Furion.Pure" Version="4.9.1.27" />
+    <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.9.1.28" />
+    <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.9.1.28" />
+    <PackageReference Include="Furion.Pure" Version="4.9.1.28" />
     <PackageReference Include="IPTools.China" Version="1.6.0" />
     <PackageReference Include="Lazy.Captcha.Core" Version="2.0.6" />
     <PackageReference Include="Magicodes.IE.Excel" Version="2.7.5.1" />
@@ -38,7 +38,7 @@
     <PackageReference Include="SixLabors.ImageSharp.Web" Version="3.1.0" />
     <PackageReference Include="SKIT.FlurlHttpClient.Wechat.Api" Version="2.37.0" />
     <PackageReference Include="SKIT.FlurlHttpClient.Wechat.TenpayV3" Version="2.21.0" />
-    <PackageReference Include="SqlSugarCore" Version="5.1.4.137" />
+    <PackageReference Include="SqlSugarCore" Version="5.1.4.140" />
     <PackageReference Include="System.Linq.Dynamic.Core" Version="1.3.8" />
     <PackageReference Include="UAParser" Version="3.1.47" />
     <PackageReference Include="Yitter.IdGenerator" Version="1.0.14" />

+ 4 - 4
Admin.NET/Plugins/Admin.NET.Plugin.Elsa/Admin.NET.Plugin.Elsa.csproj

@@ -16,10 +16,10 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="Elsa" Version="2.14.0" />
-    <PackageReference Include="Elsa.Activities.Http" Version="2.14.0" />
-    <PackageReference Include="Elsa.Designer.Components.Web" Version="2.14.0" />
-    <PackageReference Include="Elsa.Server.Api" Version="2.14.0" />
+    <PackageReference Include="Elsa" Version="2.14.1" />
+    <PackageReference Include="Elsa.Activities.Http" Version="2.14.1" />
+    <PackageReference Include="Elsa.Designer.Components.Web" Version="2.14.1" />
+    <PackageReference Include="Elsa.Server.Api" Version="2.14.1" />
   </ItemGroup>
 
   <ItemGroup>

+ 8 - 8
Web/package.json

@@ -25,7 +25,7 @@
 		"echarts": "^5.4.3",
 		"echarts-gl": "^2.0.9",
 		"echarts-wordcloud": "^2.1.0",
-		"element-plus": "^2.5.3",
+		"element-plus": "^2.5.4",
 		"js-cookie": "^3.0.5",
 		"js-table2excel": "^1.1.2",
 		"jsplumb": "^2.15.6",
@@ -45,9 +45,9 @@
 		"vform3-builds": "^3.0.10",
 		"vue": "^3.4.15",
 		"vue-clipboard3": "^2.0.0",
-		"vue-demi": "^0.14.6",
+		"vue-demi": "^0.14.7",
 		"vue-grid-layout": "3.0.0-beta1",
-		"vue-i18n": "^9.9.0",
+		"vue-i18n": "^9.9.1",
 		"vue-json-pretty": "^2.3.0",
 		"vue-plugin-hiprint": "0.0.57-beta6",
 		"vue-router": "^4.2.5",
@@ -57,17 +57,17 @@
 	},
 	"devDependencies": {
 		"@types/lodash-es": "^4.17.12",
-		"@types/node": "^20.11.7",
+		"@types/node": "^20.11.16",
 		"@types/nprogress": "^0.2.3",
 		"@types/sortablejs": "^1.15.7",
-		"@typescript-eslint/eslint-plugin": "^6.19.1",
-		"@typescript-eslint/parser": "^6.19.1",
+		"@typescript-eslint/eslint-plugin": "^6.20.0",
+		"@typescript-eslint/parser": "^6.20.0",
 		"@vitejs/plugin-vue": "^5.0.3",
 		"@vitejs/plugin-vue-jsx": "^3.1.0",
 		"@vue/compiler-sfc": "^3.4.15",
-		"code-inspector-plugin": "^0.5.1",
+		"code-inspector-plugin": "^0.6.4",
 		"eslint": "^8.56.0",
-		"eslint-plugin-vue": "^9.20.1",
+		"eslint-plugin-vue": "^9.21.1",
 		"less": "^4.2.0",
 		"prettier": "^3.2.4",
 		"sass": "^1.70.0",

+ 84 - 0
Web/src/api-services/apis/sys-file-api.ts

@@ -20,6 +20,7 @@ import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } fr
 import { AdminResultIActionResult } from '../models';
 import { AdminResultListSysFile } from '../models';
 import { AdminResultSqlSugarPagedListSysFile } from '../models';
+import { AdminResultString } from '../models';
 import { AdminResultSysFile } from '../models';
 import { DeleteFileInput } from '../models';
 import { FileInput } from '../models';
@@ -79,6 +80,54 @@ export const SysFileApiAxiosParamCreator = function (configuration?: Configurati
                 options: localVarRequestOptions,
             };
         },
+        /**
+         * 
+         * @summary 下载指定文件Base64格式
+         * @param {string} [body] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        apiSysFileDownloadFileBase64Post: async (body?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/sysFile/downloadFileBase64`;
+            // use dummy base URL string because the URL constructor only accepts absolute URLs.
+            const localVarUrlObj = new URL(localVarPath, 'https://example.com');
+            let baseOptions;
+            if (configuration) {
+                baseOptions = configuration.baseOptions;
+            }
+            const localVarRequestOptions :AxiosRequestConfig = { method: 'POST', ...baseOptions, ...options};
+            const localVarHeaderParameter = {} as any;
+            const localVarQueryParameter = {} as any;
+
+            // authentication Bearer required
+            // http bearer authentication required
+            if (configuration && configuration.accessToken) {
+                const accessToken = typeof configuration.accessToken === 'function'
+                    ? await configuration.accessToken()
+                    : await configuration.accessToken;
+                localVarHeaderParameter["Authorization"] = "Bearer " + accessToken;
+            }
+
+            localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';
+
+            const query = new URLSearchParams(localVarUrlObj.search);
+            for (const key in localVarQueryParameter) {
+                query.set(key, localVarQueryParameter[key]);
+            }
+            for (const key in options.params) {
+                query.set(key, options.params[key]);
+            }
+            localVarUrlObj.search = (new URLSearchParams(query)).toString();
+            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
+            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
+            const needsSerialization = (typeof body !== "string") || localVarRequestOptions.headers['Content-Type'] === 'application/json';
+            localVarRequestOptions.data =  needsSerialization ? JSON.stringify(body !== undefined ? body : {}) : (body || "");
+
+            return {
+                url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
+                options: localVarRequestOptions,
+            };
+        },
         /**
          * 
          * @summary 根据文件Id或Url下载
@@ -508,6 +557,20 @@ export const SysFileApiFp = function(configuration?: Configuration) {
                 return axios.request(axiosRequestArgs);
             };
         },
+        /**
+         * 
+         * @summary 下载指定文件Base64格式
+         * @param {string} [body] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiSysFileDownloadFileBase64Post(body?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultString>>> {
+            const localVarAxiosArgs = await SysFileApiAxiosParamCreator(configuration).apiSysFileDownloadFileBase64Post(body, options);
+            return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
+                const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
+                return axios.request(axiosRequestArgs);
+            };
+        },
         /**
          * 
          * @summary 根据文件Id或Url下载
@@ -640,6 +703,16 @@ export const SysFileApiFactory = function (configuration?: Configuration, basePa
         async apiSysFileDeletePost(body?: DeleteFileInput, options?: AxiosRequestConfig): Promise<AxiosResponse<void>> {
             return SysFileApiFp(configuration).apiSysFileDeletePost(body, options).then((request) => request(axios, basePath));
         },
+        /**
+         * 
+         * @summary 下载指定文件Base64格式
+         * @param {string} [body] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiSysFileDownloadFileBase64Post(body?: string, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultString>> {
+            return SysFileApiFp(configuration).apiSysFileDownloadFileBase64Post(body, options).then((request) => request(axios, basePath));
+        },
         /**
          * 
          * @summary 根据文件Id或Url下载
@@ -742,6 +815,17 @@ export class SysFileApi extends BaseAPI {
     public async apiSysFileDeletePost(body?: DeleteFileInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<void>> {
         return SysFileApiFp(this.configuration).apiSysFileDeletePost(body, options).then((request) => request(this.axios, this.basePath));
     }
+    /**
+     * 
+     * @summary 下载指定文件Base64格式
+     * @param {string} [body] 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof SysFileApi
+     */
+    public async apiSysFileDownloadFileBase64Post(body?: string, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultString>> {
+        return SysFileApiFp(this.configuration).apiSysFileDownloadFileBase64Post(body, options).then((request) => request(this.axios, this.basePath));
+    }
     /**
      * 
      * @summary 根据文件Id或Url下载

+ 10 - 1
Web/src/api-services/models/add-dict-type-input.ts

@@ -13,8 +13,9 @@
  */
 
 import { StatusEnum } from './status-enum';
+import { SysDictData } from './sys-dict-data';
 import {
-    StatusEnum,
+    StatusEnum,SysDictData,
 } from ".";
 
 /**
@@ -126,4 +127,12 @@ export interface AddDictTypeInput {
      * @memberof AddDictTypeInput
      */
     status?: StatusEnum;
+
+    /**
+     * 字典值集合
+     *
+     * @type {Array<SysDictData>}
+     * @memberof AddDictTypeInput
+     */
+    children?: Array<SysDictData> | null;
 }

+ 10 - 1
Web/src/api-services/models/sys-dict-type.ts

@@ -13,8 +13,9 @@
  */
 
 import { StatusEnum } from './status-enum';
+import { SysDictData } from './sys-dict-data';
 import {
-    StatusEnum,
+    StatusEnum,SysDictData,
 } from ".";
 
 /**
@@ -126,4 +127,12 @@ export interface SysDictType {
      * @memberof SysDictType
      */
     status?: StatusEnum;
+
+    /**
+     * 字典值集合
+     *
+     * @type {Array<SysDictData>}
+     * @memberof SysDictType
+     */
+    children?: Array<SysDictData> | null;
 }

+ 10 - 1
Web/src/api-services/models/update-dict-type-input.ts

@@ -13,8 +13,9 @@
  */
 
 import { StatusEnum } from './status-enum';
+import { SysDictData } from './sys-dict-data';
 import {
-    StatusEnum,
+    StatusEnum,SysDictData,
 } from ".";
 
 /**
@@ -126,4 +127,12 @@ export interface UpdateDictTypeInput {
      * @memberof UpdateDictTypeInput
      */
     status?: StatusEnum;
+
+    /**
+     * 字典值集合
+     *
+     * @type {Array<SysDictData>}
+     * @memberof UpdateDictTypeInput
+     */
+    children?: Array<SysDictData> | null;
 }

+ 2 - 2
Web/vite.config.ts

@@ -36,7 +36,7 @@ const viteConfig = defineConfig((mode: ConfigEnv) => {
 				// 对所有大于 5KB 的文件进行 gzip 压缩
 				threshold: 5120, // the unit is Bytes
 				algorithm: 'gzip', // 压缩算法
-  				ext: '.gz' // 文件类型
+				ext: '.gz', // 文件类型
 			}),
 			JSON.parse(env.VITE_OPEN_CDN) ? buildConfig.cdn() : null,
 		],
@@ -81,7 +81,7 @@ const viteConfig = defineConfig((mode: ConfigEnv) => {
 					assetFileNames: 'assets/[ext]/[name]-[hash].[ext]',
 					manualChunks(id) {
 						if (id.includes('node_modules')) {
-							let newId = id.toString().replace("/.", "/");
+							let newId = id.toString().replace('/.', '/');
 							return newId.match(/\/node_modules\/(?!.pnpm)(?<moduleName>[^\/]*)\//)?.groups!.moduleName ?? 'vender';
 						}
 					},