Selaa lähdekoodia

1、字黄控件加了字段,更新前端接口信息
2、SysFileService 加一个通过base64传输文修的接口,同时更新前端接口信息

yzp 2 vuotta sitten
vanhempi
commit
adfbae4aba

+ 20 - 2
Admin.NET/Admin.NET.Core/Service/File/Dto/FileInput.cs

@@ -1,4 +1,4 @@
-// 麻省理工学院许可证
+// 麻省理工学院许可证
 //
 // 版权所有 (c) 2021-2023 zuohuaijun,大名科技(天津)有限公司  联系电话/微信:18020030720  QQ:515096995
 //
@@ -33,4 +33,22 @@ public class PageFileInput : BasePageInput
 
 public class DeleteFileInput : BaseIdInput
 {
-}
+}
+
+public class UploadFileFromBase64Input
+{
+    /// <summary>
+    /// 文件内容
+    /// </summary>
+    public string FileDataBase64 { get; set; }
+
+    /// <summary>
+    /// 文件类型( "image/jpeg",)
+    /// </summary>
+    public string ContentType { get; set; }
+
+    /// <summary>
+    /// 保存路径
+    /// </summary>
+    public string Path { get; set; }
+}

+ 28 - 0
Admin.NET/Admin.NET.Core/Service/File/SysFileService.cs

@@ -76,6 +76,34 @@ public class SysFileService : IDynamicApiController, ITransient
         };
     }
 
+    [NonAction]
+    public async Task<FileOutput> UploadFileFromBase64([Required] string strBase64, string contentType, string? path)
+    {
+        byte[] fileData = Convert.FromBase64String(strBase64);
+        MemoryStream ms = new MemoryStream();
+        ms.Write(fileData);
+        ms.Seek(0, SeekOrigin.Begin);
+        string fileName = "base64.jpg";
+        IFormFile formFile = new FormFile(ms, 0, fileData.Length, "file", fileName)
+        {
+            Headers = new HeaderDictionary(),
+            ContentType = contentType
+        };
+        return await UploadFile(formFile, path);
+    }
+
+    /// <summary>
+    /// 上传文件Base64
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    [DisplayName("上传文件Base64")]
+    [HttpPost]
+    public async Task<FileOutput> UploadFileFromBase64(UploadFileFromBase64Input input)
+    {
+        return await UploadFileFromBase64(input.FileDataBase64, input.ContentType, input.Path);
+    }
+
     /// <summary>
     /// 上传多文件
     /// </summary>

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

@@ -23,6 +23,7 @@ import { AdminResultSqlSugarPagedListSysFile } from '../models';
 import { DeleteFileInput } from '../models';
 import { FileInput } from '../models';
 import { PageFileInput } from '../models';
+import { UploadFileFromBase64Input } from '../models';
 /**
  * SysFileApi - axios parameter creator
  * @export
@@ -225,6 +226,54 @@ export const SysFileApiAxiosParamCreator = function (configuration?: Configurati
                 options: localVarRequestOptions,
             };
         },
+        /**
+         * 
+         * @summary 上传文件Base64
+         * @param {UploadFileFromBase64Input} [body] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        apiSysFileUploadFileFromBase64Post: async (body?: UploadFileFromBase64Input, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/sysFile/uploadFileFromBase64`;
+            // 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 上传文件
@@ -452,6 +501,20 @@ export const SysFileApiFp = function(configuration?: Configuration) {
                 return axios.request(axiosRequestArgs);
             };
         },
+        /**
+         * 
+         * @summary 上传文件Base64
+         * @param {UploadFileFromBase64Input} [body] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiSysFileUploadFileFromBase64Post(body?: UploadFileFromBase64Input, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultFileOutput>>> {
+            const localVarAxiosArgs = await SysFileApiAxiosParamCreator(configuration).apiSysFileUploadFileFromBase64Post(body, options);
+            return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
+                const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
+                return axios.request(axiosRequestArgs);
+            };
+        },
         /**
          * 
          * @summary 上传文件
@@ -544,6 +607,16 @@ export const SysFileApiFactory = function (configuration?: Configuration, basePa
         async apiSysFileUploadAvatarPostForm(file?: Blob, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultFileOutput>> {
             return SysFileApiFp(configuration).apiSysFileUploadAvatarPostForm(file, options).then((request) => request(axios, basePath));
         },
+        /**
+         * 
+         * @summary 上传文件Base64
+         * @param {UploadFileFromBase64Input} [body] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiSysFileUploadFileFromBase64Post(body?: UploadFileFromBase64Input, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultFileOutput>> {
+            return SysFileApiFp(configuration).apiSysFileUploadFileFromBase64Post(body, options).then((request) => request(axios, basePath));
+        },
         /**
          * 
          * @summary 上传文件
@@ -629,6 +702,17 @@ export class SysFileApi extends BaseAPI {
     public async apiSysFileUploadAvatarPostForm(file?: Blob, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultFileOutput>> {
         return SysFileApiFp(this.configuration).apiSysFileUploadAvatarPostForm(file, options).then((request) => request(this.axios, this.basePath));
     }
+    /**
+     * 
+     * @summary 上传文件Base64
+     * @param {UploadFileFromBase64Input} [body] 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof SysFileApi
+     */
+    public async apiSysFileUploadFileFromBase64Post(body?: UploadFileFromBase64Input, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultFileOutput>> {
+        return SysFileApiFp(this.configuration).apiSysFileUploadFileFromBase64Post(body, options).then((request) => request(this.axios, this.basePath));
+    }
     /**
      * 
      * @summary 上传文件

+ 24 - 0
Web/src/api-services/models/add-dict-data-input.ts

@@ -104,6 +104,24 @@ export interface AddDictDataInput {
      * @memberof AddDictDataInput
      */
     code: string;
+    /**
+     * 显示样式-标签颜色
+     * @type {string}
+     * @memberof AddDictDataInput
+     */
+    tagType?: string | null;
+    /**
+     * 显示样式-Style(控制显示样式)
+     * @type {string}
+     * @memberof AddDictDataInput
+     */
+    styleSetting?: string | null;
+    /**
+     * 显示样式-Class(控制显示样式)
+     * @type {string}
+     * @memberof AddDictDataInput
+     */
+    classSetting?: string | null;
     /**
      * 排序
      * @type {number}
@@ -116,6 +134,12 @@ export interface AddDictDataInput {
      * @memberof AddDictDataInput
      */
     remark?: string | null;
+    /**
+     * 拓展数据(保存业务功能的配置项)
+     * @type {string}
+     * @memberof AddDictDataInput
+     */
+    extData?: string | null;
     /**
      * 
      * @type {StatusEnum}

+ 1 - 0
Web/src/api-services/models/index.ts

@@ -261,6 +261,7 @@ export * from './update-region-input';
 export * from './update-role-input';
 export * from './update-tenant-input';
 export * from './update-user-input';
+export * from './upload-file-from-base64-input';
 export * from './user-input';
 export * from './user-role-input';
 export * from './wechat-pay-output';

+ 24 - 0
Web/src/api-services/models/sys-dict-data.ts

@@ -104,6 +104,24 @@ export interface SysDictData {
      * @memberof SysDictData
      */
     code: string;
+    /**
+     * 显示样式-标签颜色
+     * @type {string}
+     * @memberof SysDictData
+     */
+    tagType?: string | null;
+    /**
+     * 显示样式-Style(控制显示样式)
+     * @type {string}
+     * @memberof SysDictData
+     */
+    styleSetting?: string | null;
+    /**
+     * 显示样式-Class(控制显示样式)
+     * @type {string}
+     * @memberof SysDictData
+     */
+    classSetting?: string | null;
     /**
      * 排序
      * @type {number}
@@ -116,6 +134,12 @@ export interface SysDictData {
      * @memberof SysDictData
      */
     remark?: string | null;
+    /**
+     * 拓展数据(保存业务功能的配置项)
+     * @type {string}
+     * @memberof SysDictData
+     */
+    extData?: string | null;
     /**
      * 
      * @type {StatusEnum}

+ 24 - 0
Web/src/api-services/models/update-dict-data-input.ts

@@ -104,6 +104,24 @@ export interface UpdateDictDataInput {
      * @memberof UpdateDictDataInput
      */
     code: string;
+    /**
+     * 显示样式-标签颜色
+     * @type {string}
+     * @memberof UpdateDictDataInput
+     */
+    tagType?: string | null;
+    /**
+     * 显示样式-Style(控制显示样式)
+     * @type {string}
+     * @memberof UpdateDictDataInput
+     */
+    styleSetting?: string | null;
+    /**
+     * 显示样式-Class(控制显示样式)
+     * @type {string}
+     * @memberof UpdateDictDataInput
+     */
+    classSetting?: string | null;
     /**
      * 排序
      * @type {number}
@@ -116,6 +134,12 @@ export interface UpdateDictDataInput {
      * @memberof UpdateDictDataInput
      */
     remark?: string | null;
+    /**
+     * 拓展数据(保存业务功能的配置项)
+     * @type {string}
+     * @memberof UpdateDictDataInput
+     */
+    extData?: string | null;
     /**
      * 
      * @type {StatusEnum}

+ 38 - 0
Web/src/api-services/models/upload-file-from-base64-input.ts

@@ -0,0 +1,38 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * Admin.NET
+ * 让 .NET 开发更简单、更通用、更流行。前后端分离架构(.NET6/Vue3),开箱即用紧随前沿技术。<br/><a href='https://gitee.com/zuohuaijun/Admin.NET/'>https://gitee.com/zuohuaijun/Admin.NET</a>
+ *
+ * OpenAPI spec version: 1.0.0
+ * Contact: 515096995@qq.com
+ *
+ * NOTE: This class is auto generated by the swagger code generator program.
+ * https://github.com/swagger-api/swagger-codegen.git
+ * Do not edit the class manually.
+ */
+/**
+ * 
+ * @export
+ * @interface UploadFileFromBase64Input
+ */
+export interface UploadFileFromBase64Input {
+    /**
+     * 文件内容
+     * @type {string}
+     * @memberof UploadFileFromBase64Input
+     */
+    fileDataBase64?: string | null;
+    /**
+     * 文件类型( \"image/jpeg\",)
+     * @type {string}
+     * @memberof UploadFileFromBase64Input
+     */
+    contentType?: string | null;
+    /**
+     * 保存路径
+     * @type {string}
+     * @memberof UploadFileFromBase64Input
+     */
+    path?: string | null;
+}