diff --git a/Admin.NET/Admin.NET.Core/Service/File/Dto/FileInput.cs b/Admin.NET/Admin.NET.Core/Service/File/Dto/FileInput.cs
index d0bc7ea6..25644af2 100644
--- a/Admin.NET/Admin.NET.Core/Service/File/Dto/FileInput.cs
+++ b/Admin.NET/Admin.NET.Core/Service/File/Dto/FileInput.cs
@@ -28,6 +28,21 @@ public class FileInput : BaseIdInput
/// 文件Url
///
public string? Url { get; set; }
+
+ ///
+ /// 所属实体ID
+ ///
+ public long BelongId { get; set; }
+
+ ///
+ /// 关联对象Id
+ ///
+ public long RelationId { get; set; }
+
+ ///
+ /// 关联对象名称
+ ///
+ public string RelationName { get; set; }
}
public class PageFileInput : BasePageInput
@@ -84,6 +99,21 @@ public class UploadFileFromBase64Input
/// 若为true则所有人都可以查看,默认只有自己或有权限的可以查看
///
public bool IsPublic { get; set; }
+
+ ///
+ /// 所属实体ID
+ ///
+ public long BelongId { get; set; }
+
+ ///
+ /// 关联对象Id
+ ///
+ public long RelationId { get; set; }
+
+ ///
+ /// 关联对象名称
+ ///
+ public string RelationName { get; set; }
}
///
@@ -112,6 +142,21 @@ public class FileUploadInput
/// 文件路径
///
public string Path { get; set; }
+
+ ///
+ /// 所属实体ID
+ ///
+ public long BelongId { get; set; }
+
+ ///
+ /// 关联对象Id
+ ///
+ public long RelationId { get; set; }
+
+ ///
+ /// 关联对象名称
+ ///
+ public string RelationName { get; set; }
}
///
diff --git a/Admin.NET/Admin.NET.Core/Service/File/SysFileService.cs b/Admin.NET/Admin.NET.Core/Service/File/SysFileService.cs
index 5ee67092..7ae8d2cf 100644
--- a/Admin.NET/Admin.NET.Core/Service/File/SysFileService.cs
+++ b/Admin.NET/Admin.NET.Core/Service/File/SysFileService.cs
@@ -65,7 +65,7 @@ public class SysFileService : IDynamicApiController, ITransient
[DisplayName("上传文件")]
public async Task UploadFile([FromForm] FileUploadInput input)
{
- return await HandleUploadFile(input.File, input.Path, fileType: input.FileType, isPublic: input.IsPublic);
+ return await HandleUploadFile(input.File, input.Path, fileType: input.FileType, isPublic: input.IsPublic, belongId: input.BelongId, relationId: input.RelationId, relationName: input.RelationName);
}
///
@@ -297,8 +297,11 @@ public class SysFileService : IDynamicApiController, ITransient
/// 允许格式:.jpg.png.gif.tif.bmp
/// 类型
/// 是否公开
+ /// 所属实体的ID
+ ///
+ ///
///
- private async Task HandleUploadFile(IFormFile file, string savePath, string allowSuffix = "", string fileType = "", bool isPublic = false)
+ private async Task HandleUploadFile(IFormFile file, string savePath, string allowSuffix = "", string fileType = "", bool isPublic = false, long belongId = 0, string relationName = "", long relationId = 0)
{
if (file == null) throw Oops.Oh(ErrorCodeEnum.D8000);
@@ -364,6 +367,9 @@ public class SysFileService : IDynamicApiController, ITransient
FileMd5 = fileMd5,
FileType = fileType,
IsPublic = isPublic,
+ BelongId = belongId,
+ RelationId = relationId,
+ RelationName = relationName,
};
var finalName = newFile.Id + suffix; // 文件最终名称
diff --git a/Web/package.json b/Web/package.json
index 13363f89..49ccd7b8 100644
--- a/Web/package.json
+++ b/Web/package.json
@@ -2,7 +2,7 @@
"name": "admin.net.pro",
"type": "module",
"version": "2.4.33",
- "lastBuildTime": "2024.10.18",
+ "lastBuildTime": "2024.10.19",
"description": "Admin.NET 站在巨人肩膀上的 .NET 通用权限开发框架",
"author": "zuohuaijun",
"license": "MIT",
@@ -20,7 +20,7 @@
"@microsoft/signalr": "^8.0.7",
"@vue-office/docx": "^1.6.2",
"@vue-office/excel": "^1.7.11",
- "@vue-office/pdf": "^2.0.6",
+ "@vue-office/pdf": "^2.0.7",
"@vueuse/core": "^11.1.0",
"@wangeditor/editor": "^5.1.23",
"@wangeditor/editor-for-vue": "^5.1.12",
@@ -33,7 +33,7 @@
"echarts": "^5.5.1",
"echarts-gl": "^2.0.9",
"echarts-wordcloud": "^2.1.0",
- "element-plus": "^2.8.5",
+ "element-plus": "^2.8.6",
"exceljs": "^4.4.0",
"ezuikit-js": "^8.0.13-alpha.2",
"gcoord": "^1.0.6",
@@ -71,7 +71,7 @@
"vue-router": "^4.4.5",
"vue-signature-pad": "^3.0.2",
"vue3-tree-org": "^4.2.2",
- "vxe-pc-ui": "^4.2.23",
+ "vxe-pc-ui": "^4.2.24",
"vxe-table": "^4.7.59",
"vxe-table-plugin-element": "^4.0.4",
"vxe-table-plugin-export-xlsx": "^4.0.7",
diff --git a/Web/src/api-services/apis/sys-email-api.ts b/Web/src/api-services/apis/sys-email-api.ts
index 4210f6f3..0a912dbc 100644
--- a/Web/src/api-services/apis/sys-email-api.ts
+++ b/Web/src/api-services/apis/sys-email-api.ts
@@ -28,21 +28,27 @@ export const SysEmailApiAxiosParamCreator = function (configuration?: Configurat
* @summary 发送邮件 📧
* @param {string} content
* @param {string} title
+ * @param {string} toEmail
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
- apiSysEmailSendEmailContentTitlePost: async (content: string, title: string, options: AxiosRequestConfig = {}): Promise => {
+ apiSysEmailSendEmailContentTitleToEmailPost: async (content: string, title: string, toEmail: string, options: AxiosRequestConfig = {}): Promise => {
// verify required parameter 'content' is not null or undefined
if (content === null || content === undefined) {
- throw new RequiredError('content','Required parameter content was null or undefined when calling apiSysEmailSendEmailContentTitlePost.');
+ throw new RequiredError('content','Required parameter content was null or undefined when calling apiSysEmailSendEmailContentTitleToEmailPost.');
}
// verify required parameter 'title' is not null or undefined
if (title === null || title === undefined) {
- throw new RequiredError('title','Required parameter title was null or undefined when calling apiSysEmailSendEmailContentTitlePost.');
+ throw new RequiredError('title','Required parameter title was null or undefined when calling apiSysEmailSendEmailContentTitleToEmailPost.');
}
- const localVarPath = `/api/sysEmail/sendEmail/{content}/{title}`
+ // verify required parameter 'toEmail' is not null or undefined
+ if (toEmail === null || toEmail === undefined) {
+ throw new RequiredError('toEmail','Required parameter toEmail was null or undefined when calling apiSysEmailSendEmailContentTitleToEmailPost.');
+ }
+ const localVarPath = `/api/sysEmail/sendEmail/{content}/{title}/{toEmail}`
.replace(`{${"content"}}`, encodeURIComponent(String(content)))
- .replace(`{${"title"}}`, encodeURIComponent(String(title)));
+ .replace(`{${"title"}}`, encodeURIComponent(String(title)))
+ .replace(`{${"toEmail"}}`, encodeURIComponent(String(toEmail)));
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, 'https://example.com');
let baseOptions;
@@ -92,11 +98,12 @@ export const SysEmailApiFp = function(configuration?: Configuration) {
* @summary 发送邮件 📧
* @param {string} content
* @param {string} title
+ * @param {string} toEmail
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
- async apiSysEmailSendEmailContentTitlePost(content: string, title: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> {
- const localVarAxiosArgs = await SysEmailApiAxiosParamCreator(configuration).apiSysEmailSendEmailContentTitlePost(content, title, options);
+ async apiSysEmailSendEmailContentTitleToEmailPost(content: string, title: string, toEmail: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> {
+ const localVarAxiosArgs = await SysEmailApiAxiosParamCreator(configuration).apiSysEmailSendEmailContentTitleToEmailPost(content, title, toEmail, options);
return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
return axios.request(axiosRequestArgs);
@@ -116,11 +123,12 @@ export const SysEmailApiFactory = function (configuration?: Configuration, baseP
* @summary 发送邮件 📧
* @param {string} content
* @param {string} title
+ * @param {string} toEmail
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
- async apiSysEmailSendEmailContentTitlePost(content: string, title: string, options?: AxiosRequestConfig): Promise> {
- return SysEmailApiFp(configuration).apiSysEmailSendEmailContentTitlePost(content, title, options).then((request) => request(axios, basePath));
+ async apiSysEmailSendEmailContentTitleToEmailPost(content: string, title: string, toEmail: string, options?: AxiosRequestConfig): Promise> {
+ return SysEmailApiFp(configuration).apiSysEmailSendEmailContentTitleToEmailPost(content, title, toEmail, options).then((request) => request(axios, basePath));
},
};
};
@@ -137,11 +145,12 @@ export class SysEmailApi extends BaseAPI {
* @summary 发送邮件 📧
* @param {string} content
* @param {string} title
+ * @param {string} toEmail
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof SysEmailApi
*/
- public async apiSysEmailSendEmailContentTitlePost(content: string, title: string, options?: AxiosRequestConfig) : Promise> {
- return SysEmailApiFp(this.configuration).apiSysEmailSendEmailContentTitlePost(content, title, options).then((request) => request(this.axios, this.basePath));
+ public async apiSysEmailSendEmailContentTitleToEmailPost(content: string, title: string, toEmail: string, options?: AxiosRequestConfig) : Promise> {
+ return SysEmailApiFp(this.configuration).apiSysEmailSendEmailContentTitleToEmailPost(content, title, toEmail, options).then((request) => request(this.axios, this.basePath));
}
}
diff --git a/Web/src/api-services/apis/sys-file-api.ts b/Web/src/api-services/apis/sys-file-api.ts
index fbf15d3d..ca3168d4 100644
--- a/Web/src/api-services/apis/sys-file-api.ts
+++ b/Web/src/api-services/apis/sys-file-api.ts
@@ -185,10 +185,13 @@ export const SysFileApiAxiosParamCreator = function (configuration?: Configurati
* @param {string} [fileType] 文件类型
* @param {boolean} [isPublic] 是否公开 若为true则所有人都可以查看,默认只有自己或有权限的可以查看
* @param {string} [url] 文件Url
+ * @param {number} [belongId] 所属实体ID
+ * @param {number} [relationId] 关联对象Id
+ * @param {string} [relationName] 关联对象名称
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
- apiSysFileFileGet: async (id: number, fileName?: string, fileType?: string, isPublic?: boolean, url?: string, options: AxiosRequestConfig = {}): Promise => {
+ apiSysFileFileGet: async (id: number, fileName?: string, fileType?: string, isPublic?: boolean, url?: string, belongId?: number, relationId?: number, relationName?: string, options: AxiosRequestConfig = {}): Promise => {
// verify required parameter 'id' is not null or undefined
if (id === null || id === undefined) {
throw new RequiredError('id','Required parameter id was null or undefined when calling apiSysFileFileGet.');
@@ -229,6 +232,18 @@ export const SysFileApiAxiosParamCreator = function (configuration?: Configurati
localVarQueryParameter['Url'] = url;
}
+ if (belongId !== undefined) {
+ localVarQueryParameter['BelongId'] = belongId;
+ }
+
+ if (relationId !== undefined) {
+ localVarQueryParameter['RelationId'] = relationId;
+ }
+
+ if (relationName !== undefined) {
+ localVarQueryParameter['RelationName'] = relationName;
+ }
+
if (id !== undefined) {
localVarQueryParameter['Id'] = id;
}
@@ -564,10 +579,13 @@ export const SysFileApiAxiosParamCreator = function (configuration?: Configurati
* @param {string} [fileType]
* @param {boolean} [isPublic]
* @param {string} [path]
+ * @param {number} [belongId]
+ * @param {number} [relationId]
+ * @param {string} [relationName]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
- apiSysFileUploadFilePostForm: async (file?: Blob, fileType?: string, isPublic?: boolean, path?: string, options: AxiosRequestConfig = {}): Promise => {
+ apiSysFileUploadFilePostForm: async (file?: Blob, fileType?: string, isPublic?: boolean, path?: string, belongId?: number, relationId?: number, relationName?: string, options: AxiosRequestConfig = {}): Promise => {
const localVarPath = `/api/sysFile/uploadFile`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, 'https://example.com');
@@ -606,6 +624,18 @@ export const SysFileApiAxiosParamCreator = function (configuration?: Configurati
localVarFormParams.append('Path', path as any);
}
+ if (belongId !== undefined) {
+ localVarFormParams.append('BelongId', belongId as any);
+ }
+
+ if (relationId !== undefined) {
+ localVarFormParams.append('RelationId', relationId as any);
+ }
+
+ if (relationName !== undefined) {
+ localVarFormParams.append('RelationName', relationName as any);
+ }
+
localVarHeaderParameter['Content-Type'] = 'multipart/form-data';
const query = new URLSearchParams(localVarUrlObj.search);
for (const key in localVarQueryParameter) {
@@ -788,11 +818,14 @@ export const SysFileApiFp = function(configuration?: Configuration) {
* @param {string} [fileType] 文件类型
* @param {boolean} [isPublic] 是否公开 若为true则所有人都可以查看,默认只有自己或有权限的可以查看
* @param {string} [url] 文件Url
+ * @param {number} [belongId] 所属实体ID
+ * @param {number} [relationId] 关联对象Id
+ * @param {string} [relationName] 关联对象名称
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
- async apiSysFileFileGet(id: number, fileName?: string, fileType?: string, isPublic?: boolean, url?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> {
- const localVarAxiosArgs = await SysFileApiAxiosParamCreator(configuration).apiSysFileFileGet(id, fileName, fileType, isPublic, url, options);
+ async apiSysFileFileGet(id: number, fileName?: string, fileType?: string, isPublic?: boolean, url?: string, belongId?: number, relationId?: number, relationName?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> {
+ const localVarAxiosArgs = await SysFileApiAxiosParamCreator(configuration).apiSysFileFileGet(id, fileName, fileType, isPublic, url, belongId, relationId, relationName, options);
return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
return axios.request(axiosRequestArgs);
@@ -892,11 +925,14 @@ export const SysFileApiFp = function(configuration?: Configuration) {
* @param {string} [fileType]
* @param {boolean} [isPublic]
* @param {string} [path]
+ * @param {number} [belongId]
+ * @param {number} [relationId]
+ * @param {string} [relationName]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
- async apiSysFileUploadFilePostForm(file?: Blob, fileType?: string, isPublic?: boolean, path?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> {
- const localVarAxiosArgs = await SysFileApiAxiosParamCreator(configuration).apiSysFileUploadFilePostForm(file, fileType, isPublic, path, options);
+ async apiSysFileUploadFilePostForm(file?: Blob, fileType?: string, isPublic?: boolean, path?: string, belongId?: number, relationId?: number, relationName?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> {
+ const localVarAxiosArgs = await SysFileApiAxiosParamCreator(configuration).apiSysFileUploadFilePostForm(file, fileType, isPublic, path, belongId, relationId, relationName, options);
return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
return axios.request(axiosRequestArgs);
@@ -977,11 +1013,14 @@ export const SysFileApiFactory = function (configuration?: Configuration, basePa
* @param {string} [fileType] 文件类型
* @param {boolean} [isPublic] 是否公开 若为true则所有人都可以查看,默认只有自己或有权限的可以查看
* @param {string} [url] 文件Url
+ * @param {number} [belongId] 所属实体ID
+ * @param {number} [relationId] 关联对象Id
+ * @param {string} [relationName] 关联对象名称
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
- async apiSysFileFileGet(id: number, fileName?: string, fileType?: string, isPublic?: boolean, url?: string, options?: AxiosRequestConfig): Promise> {
- return SysFileApiFp(configuration).apiSysFileFileGet(id, fileName, fileType, isPublic, url, options).then((request) => request(axios, basePath));
+ async apiSysFileFileGet(id: number, fileName?: string, fileType?: string, isPublic?: boolean, url?: string, belongId?: number, relationId?: number, relationName?: string, options?: AxiosRequestConfig): Promise> {
+ return SysFileApiFp(configuration).apiSysFileFileGet(id, fileName, fileType, isPublic, url, belongId, relationId, relationName, options).then((request) => request(axios, basePath));
},
/**
*
@@ -1053,11 +1092,14 @@ export const SysFileApiFactory = function (configuration?: Configuration, basePa
* @param {string} [fileType]
* @param {boolean} [isPublic]
* @param {string} [path]
+ * @param {number} [belongId]
+ * @param {number} [relationId]
+ * @param {string} [relationName]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
- async apiSysFileUploadFilePostForm(file?: Blob, fileType?: string, isPublic?: boolean, path?: string, options?: AxiosRequestConfig): Promise> {
- return SysFileApiFp(configuration).apiSysFileUploadFilePostForm(file, fileType, isPublic, path, options).then((request) => request(axios, basePath));
+ async apiSysFileUploadFilePostForm(file?: Blob, fileType?: string, isPublic?: boolean, path?: string, belongId?: number, relationId?: number, relationName?: string, options?: AxiosRequestConfig): Promise> {
+ return SysFileApiFp(configuration).apiSysFileUploadFilePostForm(file, fileType, isPublic, path, belongId, relationId, relationName, options).then((request) => request(axios, basePath));
},
/**
*
@@ -1130,12 +1172,15 @@ export class SysFileApi extends BaseAPI {
* @param {string} [fileType] 文件类型
* @param {boolean} [isPublic] 是否公开 若为true则所有人都可以查看,默认只有自己或有权限的可以查看
* @param {string} [url] 文件Url
+ * @param {number} [belongId] 所属实体ID
+ * @param {number} [relationId] 关联对象Id
+ * @param {string} [relationName] 关联对象名称
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof SysFileApi
*/
- public async apiSysFileFileGet(id: number, fileName?: string, fileType?: string, isPublic?: boolean, url?: string, options?: AxiosRequestConfig) : Promise> {
- return SysFileApiFp(this.configuration).apiSysFileFileGet(id, fileName, fileType, isPublic, url, options).then((request) => request(this.axios, this.basePath));
+ public async apiSysFileFileGet(id: number, fileName?: string, fileType?: string, isPublic?: boolean, url?: string, belongId?: number, relationId?: number, relationName?: string, options?: AxiosRequestConfig) : Promise> {
+ return SysFileApiFp(this.configuration).apiSysFileFileGet(id, fileName, fileType, isPublic, url, belongId, relationId, relationName, options).then((request) => request(this.axios, this.basePath));
}
/**
*
@@ -1213,12 +1258,15 @@ export class SysFileApi extends BaseAPI {
* @param {string} [fileType]
* @param {boolean} [isPublic]
* @param {string} [path]
+ * @param {number} [belongId]
+ * @param {number} [relationId]
+ * @param {string} [relationName]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof SysFileApi
*/
- public async apiSysFileUploadFilePostForm(file?: Blob, fileType?: string, isPublic?: boolean, path?: string, options?: AxiosRequestConfig) : Promise> {
- return SysFileApiFp(this.configuration).apiSysFileUploadFilePostForm(file, fileType, isPublic, path, options).then((request) => request(this.axios, this.basePath));
+ public async apiSysFileUploadFilePostForm(file?: Blob, fileType?: string, isPublic?: boolean, path?: string, belongId?: number, relationId?: number, relationName?: string, options?: AxiosRequestConfig) : Promise> {
+ return SysFileApiFp(this.configuration).apiSysFileUploadFilePostForm(file, fileType, isPublic, path, belongId, relationId, relationName, options).then((request) => request(this.axios, this.basePath));
}
/**
*
diff --git a/Web/src/api-services/models/file-input.ts b/Web/src/api-services/models/file-input.ts
index 542c8e70..141f1c77 100644
--- a/Web/src/api-services/models/file-input.ts
+++ b/Web/src/api-services/models/file-input.ts
@@ -59,4 +59,28 @@ export interface FileInput {
* @memberof FileInput
*/
url?: string | null;
+
+ /**
+ * 所属实体ID
+ *
+ * @type {number}
+ * @memberof FileInput
+ */
+ belongId?: number;
+
+ /**
+ * 关联对象Id
+ *
+ * @type {number}
+ * @memberof FileInput
+ */
+ relationId?: number;
+
+ /**
+ * 关联对象名称
+ *
+ * @type {string}
+ * @memberof FileInput
+ */
+ relationName?: string | null;
}
diff --git a/Web/src/api-services/models/sys-file-upload-file-body.ts b/Web/src/api-services/models/sys-file-upload-file-body.ts
index 40ca483a..accfa690 100644
--- a/Web/src/api-services/models/sys-file-upload-file-body.ts
+++ b/Web/src/api-services/models/sys-file-upload-file-body.ts
@@ -51,4 +51,28 @@ export interface SysFileUploadFileBody {
* @memberof SysFileUploadFileBody
*/
path?: string;
+
+ /**
+ * 所属实体ID
+ *
+ * @type {number}
+ * @memberof SysFileUploadFileBody
+ */
+ belongId?: number;
+
+ /**
+ * 关联对象Id
+ *
+ * @type {number}
+ * @memberof SysFileUploadFileBody
+ */
+ relationId?: number;
+
+ /**
+ * 关联对象名称
+ *
+ * @type {string}
+ * @memberof SysFileUploadFileBody
+ */
+ relationName?: string;
}
diff --git a/Web/src/api-services/models/upload-file-from-base64-input.ts b/Web/src/api-services/models/upload-file-from-base64-input.ts
index 2004ca6c..11507b52 100644
--- a/Web/src/api-services/models/upload-file-from-base64-input.ts
+++ b/Web/src/api-services/models/upload-file-from-base64-input.ts
@@ -67,4 +67,28 @@ export interface UploadFileFromBase64Input {
* @memberof UploadFileFromBase64Input
*/
isPublic?: boolean;
+
+ /**
+ * 所属实体ID
+ *
+ * @type {number}
+ * @memberof UploadFileFromBase64Input
+ */
+ belongId?: number;
+
+ /**
+ * 关联对象Id
+ *
+ * @type {number}
+ * @memberof UploadFileFromBase64Input
+ */
+ relationId?: number;
+
+ /**
+ * 关联对象名称
+ *
+ * @type {string}
+ * @memberof UploadFileFromBase64Input
+ */
+ relationName?: string | null;
}
diff --git a/Web/src/views/system/file/component/editFile.vue b/Web/src/views/system/file/component/editFile.vue
index cf7a5d7f..d035c7be 100644
--- a/Web/src/views/system/file/component/editFile.vue
+++ b/Web/src/views/system/file/component/editFile.vue
@@ -33,6 +33,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+