Bladeren bron

😎接口调整

zuohuaijun 2 jaren geleden
bovenliggende
commit
11b0645235
55 gewijzigde bestanden met toevoegingen van 3833 en 44 verwijderingen
  1. 2 2
      Admin.NET/Admin.NET.Core/Service/User/SysUserMenuService.cs
  2. 15 0
      Web/src/api-services/_dingTalk/api.ts
  3. 420 0
      Web/src/api-services/_dingTalk/apis/ding-talk-api.ts
  4. 70 0
      Web/src/api-services/_dingTalk/base.ts
  5. 83 0
      Web/src/api-services/_dingTalk/configuration.ts
  6. 18 0
      Web/src/api-services/_dingTalk/index.ts
  7. 69 0
      Web/src/api-services/_dingTalk/models/admin-result-ding-talk-base-response-get-ding-talk-current-employees-list-output.ts
  8. 69 0
      Web/src/api-services/_dingTalk/models/admin-result-ding-talk-base-response-list-ding-talk-emp-roster-field-vo.ts
  9. 69 0
      Web/src/api-services/_dingTalk/models/admin-result-ding-talk-send-interactive-cards-output.ts
  10. 69 0
      Web/src/api-services/_dingTalk/models/admin-result-get-ding-talk-token-output.ts
  11. 61 0
      Web/src/api-services/_dingTalk/models/ding-talk-base-response-get-ding-talk-current-employees-list-output.ts
  12. 63 0
      Web/src/api-services/_dingTalk/models/ding-talk-base-response-list-ding-talk-emp-roster-field-vo.ts
  13. 37 0
      Web/src/api-services/_dingTalk/models/ding-talk-card-data.ts
  14. 30 0
      Web/src/api-services/_dingTalk/models/ding-talk-card-param-map.ts
  15. 24 0
      Web/src/api-services/_dingTalk/models/ding-talk-conversation-type-enum.ts
  16. 53 0
      Web/src/api-services/_dingTalk/models/ding-talk-emp-field-data-vo.ts
  17. 47 0
      Web/src/api-services/_dingTalk/models/ding-talk-emp-roster-field-vo.ts
  18. 46 0
      Web/src/api-services/_dingTalk/models/ding-talk-field-value-vo.ts
  19. 84 0
      Web/src/api-services/_dingTalk/models/ding-talk-send-interactive-cards-input.ts
  20. 37 0
      Web/src/api-services/_dingTalk/models/ding-talk-send-interactive-cards-output.ts
  21. 30 0
      Web/src/api-services/_dingTalk/models/ding-talk-send-interactive-cards-result.ts
  22. 46 0
      Web/src/api-services/_dingTalk/models/get-ding-talk-current-employees-list-input.ts
  23. 38 0
      Web/src/api-services/_dingTalk/models/get-ding-talk-current-employees-list-output.ts
  24. 46 0
      Web/src/api-services/_dingTalk/models/get-ding-talk-current-employees-roster-list-input.ts
  25. 54 0
      Web/src/api-services/_dingTalk/models/get-ding-talk-token-output.ts
  26. 19 0
      Web/src/api-services/_dingTalk/models/index.ts
  27. 16 0
      Web/src/api-services/_goView/api.ts
  28. 833 0
      Web/src/api-services/_goView/apis/project-api.ts
  29. 214 0
      Web/src/api-services/_goView/apis/sys-api.ts
  30. 70 0
      Web/src/api-services/_goView/base.ts
  31. 83 0
      Web/src/api-services/_goView/configuration.ts
  32. 18 0
      Web/src/api-services/_goView/index.ts
  33. 38 0
      Web/src/api-services/_goView/models/go-view-login-input.ts
  34. 36 0
      Web/src/api-services/_goView/models/go-view-login-output.ts
  35. 38 0
      Web/src/api-services/_goView/models/go-view-login-token.ts
  36. 46 0
      Web/src/api-services/_goView/models/go-view-login-user-info.ts
  37. 46 0
      Web/src/api-services/_goView/models/go-view-pro-create-input.ts
  38. 30 0
      Web/src/api-services/_goView/models/go-view-pro-create-output.ts
  39. 85 0
      Web/src/api-services/_goView/models/go-view-pro-detail-output.ts
  40. 46 0
      Web/src/api-services/_goView/models/go-view-pro-edit-input.ts
  41. 77 0
      Web/src/api-services/_goView/models/go-view-pro-item-output.ts
  42. 37 0
      Web/src/api-services/_goView/models/go-view-pro-publish-input.ts
  43. 24 0
      Web/src/api-services/_goView/models/go-view-pro-state.ts
  44. 102 0
      Web/src/api-services/_goView/models/go-view-pro-upload-output.ts
  45. 53 0
      Web/src/api-services/_goView/models/go-view-result-go-view-login-output.ts
  46. 53 0
      Web/src/api-services/_goView/models/go-view-result-go-view-pro-create-output.ts
  47. 53 0
      Web/src/api-services/_goView/models/go-view-result-go-view-pro-detail-output.ts
  48. 53 0
      Web/src/api-services/_goView/models/go-view-result-go-view-pro-upload-output.ts
  49. 55 0
      Web/src/api-services/_goView/models/go-view-result-list-go-view-pro-item-output.ts
  50. 19 0
      Web/src/api-services/_goView/models/index.ts
  51. 28 0
      Web/src/api-services/_goView/models/project-upload-body.ts
  52. 38 0
      Web/src/api-services/_goView/models/save-data-body.ts
  53. 41 41
      Web/src/api-services/apis/sys-user-menu-api.ts
  54. 1 0
      Web/src/utils/axios-utils.ts
  55. 1 1
      Web/src/views/home/widgets/components/index.ts

+ 2 - 2
Admin.NET/Admin.NET.Core/Service/User/SysUserMenuService.cs

@@ -55,8 +55,8 @@ public class SysUserMenuService : IDynamicApiController, ITransient
     /// </summary>
     /// <param name="userId"></param>
     /// <returns></returns>
-    [ApiDescriptionSettings(Name = "DeleteUserMenuByUserId"), HttpPost]
-    public async Task DeleteUserMenuByUserId(long userId)
+    [ApiDescriptionSettings(Name = "DeleteByUserId"), HttpPost]
+    public async Task DeleteByUserId(long userId)
     {
         await _sysUserMenuRep.DeleteAsync(u => u.UserId == userId);
     }

+ 15 - 0
Web/src/api-services/_dingTalk/api.ts

@@ -0,0 +1,15 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * DingTalk
+ * 集成钉钉开放平台<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * 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 * from './apis/ding-talk-api';
+

+ 420 - 0
Web/src/api-services/_dingTalk/apis/ding-talk-api.ts

@@ -0,0 +1,420 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * DingTalk
+ * 集成钉钉开放平台<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * 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.
+ */
+
+import globalAxios, { AxiosResponse, AxiosInstance, AxiosRequestConfig } from 'axios';
+import { Configuration } from '../configuration';
+// Some imports not used depending on template conditions
+// @ts-ignore
+import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from '../../base';
+import { AdminResultDingTalkBaseResponseGetDingTalkCurrentEmployeesListOutput } from '../models';
+import { AdminResultDingTalkBaseResponseListDingTalkEmpRosterFieldVo } from '../models';
+import { AdminResultDingTalkSendInteractiveCardsOutput } from '../models';
+import { AdminResultGetDingTalkTokenOutput } from '../models';
+import { DingTalkSendInteractiveCardsInput } from '../models';
+import { GetDingTalkCurrentEmployeesListInput } from '../models';
+import { GetDingTalkCurrentEmployeesRosterListInput } from '../models';
+/**
+ * DingTalkApi - axios parameter creator
+ * @export
+ */
+export const DingTalkApiAxiosParamCreator = function (configuration?: Configuration) {
+    return {
+        /**
+         * 
+         * @summary 获取在职员工列表 🔖
+         * @param {GetDingTalkCurrentEmployeesListInput} body 
+         * @param {string} accessToken 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        apiDingTalkDingTalkCurrentEmployeesListAccessTokenGet: async (body: GetDingTalkCurrentEmployeesListInput, accessToken: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+            // verify required parameter 'body' is not null or undefined
+            if (body === null || body === undefined) {
+                throw new RequiredError('body','Required parameter body was null or undefined when calling apiDingTalkDingTalkCurrentEmployeesListAccessTokenGet.');
+            }
+            // verify required parameter 'accessToken' is not null or undefined
+            if (accessToken === null || accessToken === undefined) {
+                throw new RequiredError('accessToken','Required parameter accessToken was null or undefined when calling apiDingTalkDingTalkCurrentEmployeesListAccessTokenGet.');
+            }
+            const localVarPath = `/api/dingTalk/dingTalkCurrentEmployeesList/{access_token}`
+                .replace(`{${"access_token"}}`, encodeURIComponent(String(accessToken)));
+            // 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: 'GET', ...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 获取员工花名册字段信息 🔖
+         * @param {GetDingTalkCurrentEmployeesRosterListInput} body 
+         * @param {string} accessToken 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        apiDingTalkDingTalkCurrentEmployeesRosterListAccessTokenGet: async (body: GetDingTalkCurrentEmployeesRosterListInput, accessToken: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+            // verify required parameter 'body' is not null or undefined
+            if (body === null || body === undefined) {
+                throw new RequiredError('body','Required parameter body was null or undefined when calling apiDingTalkDingTalkCurrentEmployeesRosterListAccessTokenGet.');
+            }
+            // verify required parameter 'accessToken' is not null or undefined
+            if (accessToken === null || accessToken === undefined) {
+                throw new RequiredError('accessToken','Required parameter accessToken was null or undefined when calling apiDingTalkDingTalkCurrentEmployeesRosterListAccessTokenGet.');
+            }
+            const localVarPath = `/api/dingTalk/dingTalkCurrentEmployeesRosterList/{access_token}`
+                .replace(`{${"access_token"}}`, encodeURIComponent(String(accessToken)));
+            // 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: 'GET', ...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 发送钉钉互动卡片 🔖
+         * @param {string} token 
+         * @param {DingTalkSendInteractiveCardsInput} [body] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        apiDingTalkDingTalkSendInteractiveCardsTokenPost: async (token: string, body?: DingTalkSendInteractiveCardsInput, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+            // verify required parameter 'token' is not null or undefined
+            if (token === null || token === undefined) {
+                throw new RequiredError('token','Required parameter token was null or undefined when calling apiDingTalkDingTalkSendInteractiveCardsTokenPost.');
+            }
+            const localVarPath = `/api/dingTalk/dingTalkSendInteractiveCards/{token}`
+                .replace(`{${"token"}}`, encodeURIComponent(String(token)));
+            // 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 获取企业内部应用的access_token
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        apiDingTalkDingTalkTokenGet: async (options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/dingTalk/dingTalkToken`;
+            // 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: 'GET', ...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;
+            }
+
+            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};
+
+            return {
+                url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
+                options: localVarRequestOptions,
+            };
+        },
+    }
+};
+
+/**
+ * DingTalkApi - functional programming interface
+ * @export
+ */
+export const DingTalkApiFp = function(configuration?: Configuration) {
+    return {
+        /**
+         * 
+         * @summary 获取在职员工列表 🔖
+         * @param {GetDingTalkCurrentEmployeesListInput} body 
+         * @param {string} accessToken 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiDingTalkDingTalkCurrentEmployeesListAccessTokenGet(body: GetDingTalkCurrentEmployeesListInput, accessToken: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultDingTalkBaseResponseGetDingTalkCurrentEmployeesListOutput>>> {
+            const localVarAxiosArgs = await DingTalkApiAxiosParamCreator(configuration).apiDingTalkDingTalkCurrentEmployeesListAccessTokenGet(body, accessToken, options);
+            return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
+                const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
+                return axios.request(axiosRequestArgs);
+            };
+        },
+        /**
+         * 
+         * @summary 获取员工花名册字段信息 🔖
+         * @param {GetDingTalkCurrentEmployeesRosterListInput} body 
+         * @param {string} accessToken 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiDingTalkDingTalkCurrentEmployeesRosterListAccessTokenGet(body: GetDingTalkCurrentEmployeesRosterListInput, accessToken: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultDingTalkBaseResponseListDingTalkEmpRosterFieldVo>>> {
+            const localVarAxiosArgs = await DingTalkApiAxiosParamCreator(configuration).apiDingTalkDingTalkCurrentEmployeesRosterListAccessTokenGet(body, accessToken, options);
+            return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
+                const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
+                return axios.request(axiosRequestArgs);
+            };
+        },
+        /**
+         * 
+         * @summary 发送钉钉互动卡片 🔖
+         * @param {string} token 
+         * @param {DingTalkSendInteractiveCardsInput} [body] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiDingTalkDingTalkSendInteractiveCardsTokenPost(token: string, body?: DingTalkSendInteractiveCardsInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultDingTalkSendInteractiveCardsOutput>>> {
+            const localVarAxiosArgs = await DingTalkApiAxiosParamCreator(configuration).apiDingTalkDingTalkSendInteractiveCardsTokenPost(token, body, options);
+            return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
+                const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
+                return axios.request(axiosRequestArgs);
+            };
+        },
+        /**
+         * 
+         * @summary 获取企业内部应用的access_token
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiDingTalkDingTalkTokenGet(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultGetDingTalkTokenOutput>>> {
+            const localVarAxiosArgs = await DingTalkApiAxiosParamCreator(configuration).apiDingTalkDingTalkTokenGet(options);
+            return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
+                const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
+                return axios.request(axiosRequestArgs);
+            };
+        },
+    }
+};
+
+/**
+ * DingTalkApi - factory interface
+ * @export
+ */
+export const DingTalkApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
+    return {
+        /**
+         * 
+         * @summary 获取在职员工列表 🔖
+         * @param {GetDingTalkCurrentEmployeesListInput} body 
+         * @param {string} accessToken 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiDingTalkDingTalkCurrentEmployeesListAccessTokenGet(body: GetDingTalkCurrentEmployeesListInput, accessToken: string, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultDingTalkBaseResponseGetDingTalkCurrentEmployeesListOutput>> {
+            return DingTalkApiFp(configuration).apiDingTalkDingTalkCurrentEmployeesListAccessTokenGet(body, accessToken, options).then((request) => request(axios, basePath));
+        },
+        /**
+         * 
+         * @summary 获取员工花名册字段信息 🔖
+         * @param {GetDingTalkCurrentEmployeesRosterListInput} body 
+         * @param {string} accessToken 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiDingTalkDingTalkCurrentEmployeesRosterListAccessTokenGet(body: GetDingTalkCurrentEmployeesRosterListInput, accessToken: string, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultDingTalkBaseResponseListDingTalkEmpRosterFieldVo>> {
+            return DingTalkApiFp(configuration).apiDingTalkDingTalkCurrentEmployeesRosterListAccessTokenGet(body, accessToken, options).then((request) => request(axios, basePath));
+        },
+        /**
+         * 
+         * @summary 发送钉钉互动卡片 🔖
+         * @param {string} token 
+         * @param {DingTalkSendInteractiveCardsInput} [body] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiDingTalkDingTalkSendInteractiveCardsTokenPost(token: string, body?: DingTalkSendInteractiveCardsInput, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultDingTalkSendInteractiveCardsOutput>> {
+            return DingTalkApiFp(configuration).apiDingTalkDingTalkSendInteractiveCardsTokenPost(token, body, options).then((request) => request(axios, basePath));
+        },
+        /**
+         * 
+         * @summary 获取企业内部应用的access_token
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiDingTalkDingTalkTokenGet(options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultGetDingTalkTokenOutput>> {
+            return DingTalkApiFp(configuration).apiDingTalkDingTalkTokenGet(options).then((request) => request(axios, basePath));
+        },
+    };
+};
+
+/**
+ * DingTalkApi - object-oriented interface
+ * @export
+ * @class DingTalkApi
+ * @extends {BaseAPI}
+ */
+export class DingTalkApi extends BaseAPI {
+    /**
+     * 
+     * @summary 获取在职员工列表 🔖
+     * @param {GetDingTalkCurrentEmployeesListInput} body 
+     * @param {string} accessToken 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof DingTalkApi
+     */
+    public async apiDingTalkDingTalkCurrentEmployeesListAccessTokenGet(body: GetDingTalkCurrentEmployeesListInput, accessToken: string, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultDingTalkBaseResponseGetDingTalkCurrentEmployeesListOutput>> {
+        return DingTalkApiFp(this.configuration).apiDingTalkDingTalkCurrentEmployeesListAccessTokenGet(body, accessToken, options).then((request) => request(this.axios, this.basePath));
+    }
+    /**
+     * 
+     * @summary 获取员工花名册字段信息 🔖
+     * @param {GetDingTalkCurrentEmployeesRosterListInput} body 
+     * @param {string} accessToken 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof DingTalkApi
+     */
+    public async apiDingTalkDingTalkCurrentEmployeesRosterListAccessTokenGet(body: GetDingTalkCurrentEmployeesRosterListInput, accessToken: string, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultDingTalkBaseResponseListDingTalkEmpRosterFieldVo>> {
+        return DingTalkApiFp(this.configuration).apiDingTalkDingTalkCurrentEmployeesRosterListAccessTokenGet(body, accessToken, options).then((request) => request(this.axios, this.basePath));
+    }
+    /**
+     * 
+     * @summary 发送钉钉互动卡片 🔖
+     * @param {string} token 
+     * @param {DingTalkSendInteractiveCardsInput} [body] 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof DingTalkApi
+     */
+    public async apiDingTalkDingTalkSendInteractiveCardsTokenPost(token: string, body?: DingTalkSendInteractiveCardsInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultDingTalkSendInteractiveCardsOutput>> {
+        return DingTalkApiFp(this.configuration).apiDingTalkDingTalkSendInteractiveCardsTokenPost(token, body, options).then((request) => request(this.axios, this.basePath));
+    }
+    /**
+     * 
+     * @summary 获取企业内部应用的access_token
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof DingTalkApi
+     */
+    public async apiDingTalkDingTalkTokenGet(options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultGetDingTalkTokenOutput>> {
+        return DingTalkApiFp(this.configuration).apiDingTalkDingTalkTokenGet(options).then((request) => request(this.axios, this.basePath));
+    }
+}

+ 70 - 0
Web/src/api-services/_dingTalk/base.ts

@@ -0,0 +1,70 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * DingTalk
+ * 集成钉钉开放平台<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * 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.
+ */
+
+import { Configuration } from "./configuration";
+// Some imports not used depending on template conditions
+// @ts-ignore
+import globalAxios, { AxiosRequestConfig, AxiosInstance } from 'axios';
+
+export const BASE_PATH = "/".replace(/\/+$/, "");
+
+/**
+ *
+ * @export
+ */
+export const COLLECTION_FORMATS = {
+    csv: ",",
+    ssv: " ",
+    tsv: "\t",
+    pipes: "|",
+};
+
+/**
+ *
+ * @export
+ * @interface RequestArgs
+ */
+export interface RequestArgs {
+    url: string;
+    options: AxiosRequestConfig;
+}
+
+/**
+ *
+ * @export
+ * @class BaseAPI
+ */
+export class BaseAPI {
+    protected configuration: Configuration | undefined;
+
+    constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) {
+        if (configuration) {
+            this.configuration = configuration;
+            this.basePath = configuration.basePath || this.basePath;
+        }
+    }
+};
+
+/**
+ *
+ * @export
+ * @class RequiredError
+ * @extends {Error}
+ */
+export class RequiredError extends Error {
+    name: "RequiredError" = "RequiredError";
+    constructor(public field: string, msg?: string) {
+        super(msg);
+    }
+}

+ 83 - 0
Web/src/api-services/_dingTalk/configuration.ts

@@ -0,0 +1,83 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * DingTalk
+ * 集成钉钉开放平台<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * 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 ConfigurationParameters {
+    apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
+    username?: string;
+    password?: string;
+    accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
+    basePath?: string;
+    baseOptions?: any;
+}
+
+export class Configuration {
+
+    /**
+     * parameter for apiKey security
+     *
+     * @param name security name
+     * @memberof Configuration
+     */
+    apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
+
+    /**
+     * parameter for basic security
+     *
+     * @type {string}
+     * @memberof Configuration
+     */
+    username?: string;
+
+    /**
+     * parameter for basic security
+     *
+     * @type {string}
+     * @memberof Configuration
+     */
+    password?: string;
+
+    /**
+     * parameter for oauth2 security
+     *
+     * @param name security name
+     * @param scopes oauth2 scope
+     * @memberof Configuration
+     */
+    accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
+
+    /**
+     * override base path
+     *
+     * @type {string}
+     * @memberof Configuration
+     */
+    basePath?: string;
+
+    /**
+     * base options for axios calls
+     *
+     * @type {any}
+     * @memberof Configuration
+     */
+    baseOptions?: any;
+
+    constructor(param: ConfigurationParameters = {}) {
+        this.apiKey = param.apiKey;
+        this.username = param.username;
+        this.password = param.password;
+        this.accessToken = param.accessToken;
+        this.basePath = param.basePath;
+        this.baseOptions = param.baseOptions;
+    }
+}

+ 18 - 0
Web/src/api-services/_dingTalk/index.ts

@@ -0,0 +1,18 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * DingTalk
+ * 集成钉钉开放平台<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * 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 * from "./api";
+export * from "./configuration";
+export * from "./models";
+

+ 69 - 0
Web/src/api-services/_dingTalk/models/admin-result-ding-talk-base-response-get-ding-talk-current-employees-list-output.ts

@@ -0,0 +1,69 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * DingTalk
+ * 集成钉钉开放平台<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * 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.
+ */
+
+import { DingTalkBaseResponseGetDingTalkCurrentEmployeesListOutput } from './ding-talk-base-response-get-ding-talk-current-employees-list-output';
+ /**
+ * 全局返回结果
+ *
+ * @export
+ * @interface AdminResultDingTalkBaseResponseGetDingTalkCurrentEmployeesListOutput
+ */
+export interface AdminResultDingTalkBaseResponseGetDingTalkCurrentEmployeesListOutput {
+
+    /**
+     * 状态码
+     *
+     * @type {number}
+     * @memberof AdminResultDingTalkBaseResponseGetDingTalkCurrentEmployeesListOutput
+     */
+    code?: number;
+
+    /**
+     * 类型success、warning、error
+     *
+     * @type {string}
+     * @memberof AdminResultDingTalkBaseResponseGetDingTalkCurrentEmployeesListOutput
+     */
+    type?: string | null;
+
+    /**
+     * 错误信息
+     *
+     * @type {string}
+     * @memberof AdminResultDingTalkBaseResponseGetDingTalkCurrentEmployeesListOutput
+     */
+    message?: string | null;
+
+    /**
+     * @type {DingTalkBaseResponseGetDingTalkCurrentEmployeesListOutput}
+     * @memberof AdminResultDingTalkBaseResponseGetDingTalkCurrentEmployeesListOutput
+     */
+    result?: DingTalkBaseResponseGetDingTalkCurrentEmployeesListOutput;
+
+    /**
+     * 附加数据
+     *
+     * @type {any}
+     * @memberof AdminResultDingTalkBaseResponseGetDingTalkCurrentEmployeesListOutput
+     */
+    extras?: any | null;
+
+    /**
+     * 时间
+     *
+     * @type {Date}
+     * @memberof AdminResultDingTalkBaseResponseGetDingTalkCurrentEmployeesListOutput
+     */
+    time?: Date;
+}

+ 69 - 0
Web/src/api-services/_dingTalk/models/admin-result-ding-talk-base-response-list-ding-talk-emp-roster-field-vo.ts

@@ -0,0 +1,69 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * DingTalk
+ * 集成钉钉开放平台<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * 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.
+ */
+
+import { DingTalkBaseResponseListDingTalkEmpRosterFieldVo } from './ding-talk-base-response-list-ding-talk-emp-roster-field-vo';
+ /**
+ * 全局返回结果
+ *
+ * @export
+ * @interface AdminResultDingTalkBaseResponseListDingTalkEmpRosterFieldVo
+ */
+export interface AdminResultDingTalkBaseResponseListDingTalkEmpRosterFieldVo {
+
+    /**
+     * 状态码
+     *
+     * @type {number}
+     * @memberof AdminResultDingTalkBaseResponseListDingTalkEmpRosterFieldVo
+     */
+    code?: number;
+
+    /**
+     * 类型success、warning、error
+     *
+     * @type {string}
+     * @memberof AdminResultDingTalkBaseResponseListDingTalkEmpRosterFieldVo
+     */
+    type?: string | null;
+
+    /**
+     * 错误信息
+     *
+     * @type {string}
+     * @memberof AdminResultDingTalkBaseResponseListDingTalkEmpRosterFieldVo
+     */
+    message?: string | null;
+
+    /**
+     * @type {DingTalkBaseResponseListDingTalkEmpRosterFieldVo}
+     * @memberof AdminResultDingTalkBaseResponseListDingTalkEmpRosterFieldVo
+     */
+    result?: DingTalkBaseResponseListDingTalkEmpRosterFieldVo;
+
+    /**
+     * 附加数据
+     *
+     * @type {any}
+     * @memberof AdminResultDingTalkBaseResponseListDingTalkEmpRosterFieldVo
+     */
+    extras?: any | null;
+
+    /**
+     * 时间
+     *
+     * @type {Date}
+     * @memberof AdminResultDingTalkBaseResponseListDingTalkEmpRosterFieldVo
+     */
+    time?: Date;
+}

+ 69 - 0
Web/src/api-services/_dingTalk/models/admin-result-ding-talk-send-interactive-cards-output.ts

@@ -0,0 +1,69 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * DingTalk
+ * 集成钉钉开放平台<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * 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.
+ */
+
+import { DingTalkSendInteractiveCardsOutput } from './ding-talk-send-interactive-cards-output';
+ /**
+ * 全局返回结果
+ *
+ * @export
+ * @interface AdminResultDingTalkSendInteractiveCardsOutput
+ */
+export interface AdminResultDingTalkSendInteractiveCardsOutput {
+
+    /**
+     * 状态码
+     *
+     * @type {number}
+     * @memberof AdminResultDingTalkSendInteractiveCardsOutput
+     */
+    code?: number;
+
+    /**
+     * 类型success、warning、error
+     *
+     * @type {string}
+     * @memberof AdminResultDingTalkSendInteractiveCardsOutput
+     */
+    type?: string | null;
+
+    /**
+     * 错误信息
+     *
+     * @type {string}
+     * @memberof AdminResultDingTalkSendInteractiveCardsOutput
+     */
+    message?: string | null;
+
+    /**
+     * @type {DingTalkSendInteractiveCardsOutput}
+     * @memberof AdminResultDingTalkSendInteractiveCardsOutput
+     */
+    result?: DingTalkSendInteractiveCardsOutput;
+
+    /**
+     * 附加数据
+     *
+     * @type {any}
+     * @memberof AdminResultDingTalkSendInteractiveCardsOutput
+     */
+    extras?: any | null;
+
+    /**
+     * 时间
+     *
+     * @type {Date}
+     * @memberof AdminResultDingTalkSendInteractiveCardsOutput
+     */
+    time?: Date;
+}

+ 69 - 0
Web/src/api-services/_dingTalk/models/admin-result-get-ding-talk-token-output.ts

@@ -0,0 +1,69 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * DingTalk
+ * 集成钉钉开放平台<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * 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.
+ */
+
+import { GetDingTalkTokenOutput } from './get-ding-talk-token-output';
+ /**
+ * 全局返回结果
+ *
+ * @export
+ * @interface AdminResultGetDingTalkTokenOutput
+ */
+export interface AdminResultGetDingTalkTokenOutput {
+
+    /**
+     * 状态码
+     *
+     * @type {number}
+     * @memberof AdminResultGetDingTalkTokenOutput
+     */
+    code?: number;
+
+    /**
+     * 类型success、warning、error
+     *
+     * @type {string}
+     * @memberof AdminResultGetDingTalkTokenOutput
+     */
+    type?: string | null;
+
+    /**
+     * 错误信息
+     *
+     * @type {string}
+     * @memberof AdminResultGetDingTalkTokenOutput
+     */
+    message?: string | null;
+
+    /**
+     * @type {GetDingTalkTokenOutput}
+     * @memberof AdminResultGetDingTalkTokenOutput
+     */
+    result?: GetDingTalkTokenOutput;
+
+    /**
+     * 附加数据
+     *
+     * @type {any}
+     * @memberof AdminResultGetDingTalkTokenOutput
+     */
+    extras?: any | null;
+
+    /**
+     * 时间
+     *
+     * @type {Date}
+     * @memberof AdminResultGetDingTalkTokenOutput
+     */
+    time?: Date;
+}

+ 61 - 0
Web/src/api-services/_dingTalk/models/ding-talk-base-response-get-ding-talk-current-employees-list-output.ts

@@ -0,0 +1,61 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * DingTalk
+ * 集成钉钉开放平台<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * 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.
+ */
+
+import { GetDingTalkCurrentEmployeesListOutput } from './get-ding-talk-current-employees-list-output';
+ /**
+ * 钉钉基础响应结果
+ *
+ * @export
+ * @interface DingTalkBaseResponseGetDingTalkCurrentEmployeesListOutput
+ */
+export interface DingTalkBaseResponseGetDingTalkCurrentEmployeesListOutput {
+
+    /**
+     * @type {GetDingTalkCurrentEmployeesListOutput}
+     * @memberof DingTalkBaseResponseGetDingTalkCurrentEmployeesListOutput
+     */
+    result?: GetDingTalkCurrentEmployeesListOutput;
+
+    /**
+     * 返回码
+     *
+     * @type {number}
+     * @memberof DingTalkBaseResponseGetDingTalkCurrentEmployeesListOutput
+     */
+    errCode?: number;
+
+    /**
+     * 返回码描述。
+     *
+     * @type {string}
+     * @memberof DingTalkBaseResponseGetDingTalkCurrentEmployeesListOutput
+     */
+    errMsg?: string | null;
+
+    /**
+     * 是否调用成功
+     *
+     * @type {boolean}
+     * @memberof DingTalkBaseResponseGetDingTalkCurrentEmployeesListOutput
+     */
+    success?: boolean;
+
+    /**
+     * 请求Id
+     *
+     * @type {string}
+     * @memberof DingTalkBaseResponseGetDingTalkCurrentEmployeesListOutput
+     */
+    requestId?: string | null;
+}

+ 63 - 0
Web/src/api-services/_dingTalk/models/ding-talk-base-response-list-ding-talk-emp-roster-field-vo.ts

@@ -0,0 +1,63 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * DingTalk
+ * 集成钉钉开放平台<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * 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.
+ */
+
+import { DingTalkEmpRosterFieldVo } from './ding-talk-emp-roster-field-vo';
+ /**
+ * 钉钉基础响应结果
+ *
+ * @export
+ * @interface DingTalkBaseResponseListDingTalkEmpRosterFieldVo
+ */
+export interface DingTalkBaseResponseListDingTalkEmpRosterFieldVo {
+
+    /**
+     * 返回结果
+     *
+     * @type {Array<DingTalkEmpRosterFieldVo>}
+     * @memberof DingTalkBaseResponseListDingTalkEmpRosterFieldVo
+     */
+    result?: Array<DingTalkEmpRosterFieldVo> | null;
+
+    /**
+     * 返回码
+     *
+     * @type {number}
+     * @memberof DingTalkBaseResponseListDingTalkEmpRosterFieldVo
+     */
+    errCode?: number;
+
+    /**
+     * 返回码描述。
+     *
+     * @type {string}
+     * @memberof DingTalkBaseResponseListDingTalkEmpRosterFieldVo
+     */
+    errMsg?: string | null;
+
+    /**
+     * 是否调用成功
+     *
+     * @type {boolean}
+     * @memberof DingTalkBaseResponseListDingTalkEmpRosterFieldVo
+     */
+    success?: boolean;
+
+    /**
+     * 请求Id
+     *
+     * @type {string}
+     * @memberof DingTalkBaseResponseListDingTalkEmpRosterFieldVo
+     */
+    requestId?: string | null;
+}

+ 37 - 0
Web/src/api-services/_dingTalk/models/ding-talk-card-data.ts

@@ -0,0 +1,37 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * DingTalk
+ * 集成钉钉开放平台<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * 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.
+ */
+
+import { DingTalkCardParamMap } from './ding-talk-card-param-map';
+ /**
+ * 卡片公有数据
+ *
+ * @export
+ * @interface DingTalkCardData
+ */
+export interface DingTalkCardData {
+
+    /**
+     * @type {DingTalkCardParamMap}
+     * @memberof DingTalkCardData
+     */
+    cardParamMap?: DingTalkCardParamMap;
+
+    /**
+     * 卡片模板内容替换参数,多媒体类型。
+     *
+     * @type {string}
+     * @memberof DingTalkCardData
+     */
+    cardMediaIdParamMap?: string | null;
+}

+ 30 - 0
Web/src/api-services/_dingTalk/models/ding-talk-card-param-map.ts

@@ -0,0 +1,30 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * DingTalk
+ * 集成钉钉开放平台<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * 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 DingTalkCardParamMap
+ */
+export interface DingTalkCardParamMap {
+
+    /**
+     * 片模板内容替换参数
+     *
+     * @type {string}
+     * @memberof DingTalkCardParamMap
+     */
+    sysFullJsonObj?: string | null;
+}

+ 24 - 0
Web/src/api-services/_dingTalk/models/ding-talk-conversation-type-enum.ts

@@ -0,0 +1,24 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * DingTalk
+ * 集成钉钉开放平台<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * 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.
+ */
+
+/**
+ * 钉钉发送的会话类型枚举<br />&nbsp;单聊 SingleChat = 0<br />&nbsp;群聊 GroupChat = 1<br />
+ * @export
+ * @enum {string}
+ */
+export enum DingTalkConversationTypeEnum {
+    NUMBER_0 = 0,
+    NUMBER_1 = 1
+}
+

+ 53 - 0
Web/src/api-services/_dingTalk/models/ding-talk-emp-field-data-vo.ts

@@ -0,0 +1,53 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * DingTalk
+ * 集成钉钉开放平台<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * 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.
+ */
+
+import { DingTalkFieldValueVo } from './ding-talk-field-value-vo';
+ /**
+ * 
+ *
+ * @export
+ * @interface DingTalkEmpFieldDataVo
+ */
+export interface DingTalkEmpFieldDataVo {
+
+    /**
+     * 字段名称
+     *
+     * @type {string}
+     * @memberof DingTalkEmpFieldDataVo
+     */
+    fieldName?: string | null;
+
+    /**
+     * 字段标识
+     *
+     * @type {string}
+     * @memberof DingTalkEmpFieldDataVo
+     */
+    fieldCode?: string | null;
+
+    /**
+     * 分组标识
+     *
+     * @type {string}
+     * @memberof DingTalkEmpFieldDataVo
+     */
+    groupId?: string | null;
+
+    /**
+     * @type {Array<DingTalkFieldValueVo>}
+     * @memberof DingTalkEmpFieldDataVo
+     */
+    fieldValueList?: Array<DingTalkFieldValueVo> | null;
+}

+ 47 - 0
Web/src/api-services/_dingTalk/models/ding-talk-emp-roster-field-vo.ts

@@ -0,0 +1,47 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * DingTalk
+ * 集成钉钉开放平台<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * 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.
+ */
+
+import { DingTalkEmpFieldDataVo } from './ding-talk-emp-field-data-vo';
+ /**
+ * 
+ *
+ * @export
+ * @interface DingTalkEmpRosterFieldVo
+ */
+export interface DingTalkEmpRosterFieldVo {
+
+    /**
+     * 企业的corpid
+     *
+     * @type {string}
+     * @memberof DingTalkEmpRosterFieldVo
+     */
+    corpId?: string | null;
+
+    /**
+     * 返回的字段信息列表
+     *
+     * @type {Array<DingTalkEmpFieldDataVo>}
+     * @memberof DingTalkEmpRosterFieldVo
+     */
+    fieldDataList?: Array<DingTalkEmpFieldDataVo> | null;
+
+    /**
+     * 员工的userid
+     *
+     * @type {string}
+     * @memberof DingTalkEmpRosterFieldVo
+     */
+    userid?: string | null;
+}

+ 46 - 0
Web/src/api-services/_dingTalk/models/ding-talk-field-value-vo.ts

@@ -0,0 +1,46 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * DingTalk
+ * 集成钉钉开放平台<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * 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 DingTalkFieldValueVo
+ */
+export interface DingTalkFieldValueVo {
+
+    /**
+     * 第几条的明细标识,下标从0开始
+     *
+     * @type {number}
+     * @memberof DingTalkFieldValueVo
+     */
+    itemIndex?: number;
+
+    /**
+     * 字段展示值,选项类型字段对应选项的value
+     *
+     * @type {string}
+     * @memberof DingTalkFieldValueVo
+     */
+    label?: string | null;
+
+    /**
+     * 字段取值,选项类型字段对应选项的key
+     *
+     * @type {string}
+     * @memberof DingTalkFieldValueVo
+     */
+    value?: string | null;
+}

+ 84 - 0
Web/src/api-services/_dingTalk/models/ding-talk-send-interactive-cards-input.ts

@@ -0,0 +1,84 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * DingTalk
+ * 集成钉钉开放平台<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * 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.
+ */
+
+import { DingTalkCardData } from './ding-talk-card-data';
+import { DingTalkConversationTypeEnum } from './ding-talk-conversation-type-enum';
+ /**
+ * 
+ *
+ * @export
+ * @interface DingTalkSendInteractiveCardsInput
+ */
+export interface DingTalkSendInteractiveCardsInput {
+
+    /**
+     * 互动卡片的消息模板Id
+     *
+     * @type {string}
+     * @memberof DingTalkSendInteractiveCardsInput
+     */
+    cardTemplateId: string;
+
+    /**
+     * 群Id
+     *
+     * @type {string}
+     * @memberof DingTalkSendInteractiveCardsInput
+     */
+    openConversationId?: string | null;
+
+    /**
+     * 接收人userId列表
+     *
+     * @type {Array<string>}
+     * @memberof DingTalkSendInteractiveCardsInput
+     */
+    receiverUserIdList: Array<string>;
+
+    /**
+     * 唯一标示卡片的外部编码
+     *
+     * @type {string}
+     * @memberof DingTalkSendInteractiveCardsInput
+     */
+    outTrackId: string;
+
+    /**
+     * 机器人的编码
+     *
+     * @type {string}
+     * @memberof DingTalkSendInteractiveCardsInput
+     */
+    robotCode?: string | null;
+
+    /**
+     * @type {DingTalkConversationTypeEnum}
+     * @memberof DingTalkSendInteractiveCardsInput
+     */
+    conversationType: DingTalkConversationTypeEnum;
+
+    /**
+     * 卡片回调时的路由Key,用于查询注册的callbackUrl
+     *
+     * @type {string}
+     * @memberof DingTalkSendInteractiveCardsInput
+     */
+    callbackRouteKey?: string | null;
+
+    /**
+     * @type {DingTalkCardData}
+     * @memberof DingTalkSendInteractiveCardsInput
+     */
+    cardData: DingTalkCardData;
+}

+ 37 - 0
Web/src/api-services/_dingTalk/models/ding-talk-send-interactive-cards-output.ts

@@ -0,0 +1,37 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * DingTalk
+ * 集成钉钉开放平台<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * 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.
+ */
+
+import { DingTalkSendInteractiveCardsResult } from './ding-talk-send-interactive-cards-result';
+ /**
+ * 发送钉钉互动卡片返回
+ *
+ * @export
+ * @interface DingTalkSendInteractiveCardsOutput
+ */
+export interface DingTalkSendInteractiveCardsOutput {
+
+    /**
+     * 返回结果
+     *
+     * @type {boolean}
+     * @memberof DingTalkSendInteractiveCardsOutput
+     */
+    success?: boolean;
+
+    /**
+     * @type {DingTalkSendInteractiveCardsResult}
+     * @memberof DingTalkSendInteractiveCardsOutput
+     */
+    result?: DingTalkSendInteractiveCardsResult;
+}

+ 30 - 0
Web/src/api-services/_dingTalk/models/ding-talk-send-interactive-cards-result.ts

@@ -0,0 +1,30 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * DingTalk
+ * 集成钉钉开放平台<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * 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 DingTalkSendInteractiveCardsResult
+ */
+export interface DingTalkSendInteractiveCardsResult {
+
+    /**
+     * 用于业务方后续查看已读列表的查询key
+     *
+     * @type {string}
+     * @memberof DingTalkSendInteractiveCardsResult
+     */
+    processQueryKey?: string | null;
+}

+ 46 - 0
Web/src/api-services/_dingTalk/models/get-ding-talk-current-employees-list-input.ts

@@ -0,0 +1,46 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * DingTalk
+ * 集成钉钉开放平台<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * 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 GetDingTalkCurrentEmployeesListInput
+ */
+export interface GetDingTalkCurrentEmployeesListInput {
+
+    /**
+     * 在职员工状态筛选,可以查询多个状态。不同状态之间使用英文逗号分隔。2:试用期、3:正式、5:待离职、-1:无状态
+     *
+     * @type {string}
+     * @memberof GetDingTalkCurrentEmployeesListInput
+     */
+    statusList?: string | null;
+
+    /**
+     * 分页游标,从0开始。根据返回结果里的next_cursor是否为空来判断是否还有下一页,且再次调用时offset设置成next_cursor的值。
+     *
+     * @type {number}
+     * @memberof GetDingTalkCurrentEmployeesListInput
+     */
+    offset?: number;
+
+    /**
+     * 分页大小,最大50。
+     *
+     * @type {number}
+     * @memberof GetDingTalkCurrentEmployeesListInput
+     */
+    size?: number;
+}

+ 38 - 0
Web/src/api-services/_dingTalk/models/get-ding-talk-current-employees-list-output.ts

@@ -0,0 +1,38 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * DingTalk
+ * 集成钉钉开放平台<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * 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 GetDingTalkCurrentEmployeesListOutput
+ */
+export interface GetDingTalkCurrentEmployeesListOutput {
+
+    /**
+     * 查询到的员工userId列表
+     *
+     * @type {Array<string>}
+     * @memberof GetDingTalkCurrentEmployeesListOutput
+     */
+    dataList?: Array<string> | null;
+
+    /**
+     * 下一次分页调用的offset值,当返回结果里没有next_cursor时,表示分页结束。
+     *
+     * @type {number}
+     * @memberof GetDingTalkCurrentEmployeesListOutput
+     */
+    nextCursor?: number | null;
+}

+ 46 - 0
Web/src/api-services/_dingTalk/models/get-ding-talk-current-employees-roster-list-input.ts

@@ -0,0 +1,46 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * DingTalk
+ * 集成钉钉开放平台<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * 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 GetDingTalkCurrentEmployeesRosterListInput
+ */
+export interface GetDingTalkCurrentEmployeesRosterListInput {
+
+    /**
+     * 员工的userId列表,多个userid之间使用逗号分隔,一次最多支持传100个值。
+     *
+     * @type {string}
+     * @memberof GetDingTalkCurrentEmployeesRosterListInput
+     */
+    useridList?: string | null;
+
+    /**
+     * 需要获取的花名册字段field_code值列表,多个字段之间使用逗号分隔,一次最多支持传100个值。
+     *
+     * @type {string}
+     * @memberof GetDingTalkCurrentEmployeesRosterListInput
+     */
+    fieldFilterList?: string | null;
+
+    /**
+     * 应用的AgentId
+     *
+     * @type {string}
+     * @memberof GetDingTalkCurrentEmployeesRosterListInput
+     */
+    agentId?: string | null;
+}

+ 54 - 0
Web/src/api-services/_dingTalk/models/get-ding-talk-token-output.ts

@@ -0,0 +1,54 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * DingTalk
+ * 集成钉钉开放平台<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 1.0.0
+ * 
+ *
+ * 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 GetDingTalkTokenOutput
+ */
+export interface GetDingTalkTokenOutput {
+
+    /**
+     * 生成的access_token
+     *
+     * @type {string}
+     * @memberof GetDingTalkTokenOutput
+     */
+    accessToken?: string | null;
+
+    /**
+     * access_token的过期时间,单位秒
+     *
+     * @type {number}
+     * @memberof GetDingTalkTokenOutput
+     */
+    expiresIn?: number;
+
+    /**
+     * 返回码描述
+     *
+     * @type {string}
+     * @memberof GetDingTalkTokenOutput
+     */
+    errMsg?: string | null;
+
+    /**
+     * 返回码
+     *
+     * @type {number}
+     * @memberof GetDingTalkTokenOutput
+     */
+    errCode?: number;
+}

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

@@ -0,0 +1,19 @@
+export * from './admin-result-ding-talk-base-response-get-ding-talk-current-employees-list-output';
+export * from './admin-result-ding-talk-base-response-list-ding-talk-emp-roster-field-vo';
+export * from './admin-result-ding-talk-send-interactive-cards-output';
+export * from './admin-result-get-ding-talk-token-output';
+export * from './ding-talk-base-response-get-ding-talk-current-employees-list-output';
+export * from './ding-talk-base-response-list-ding-talk-emp-roster-field-vo';
+export * from './ding-talk-card-data';
+export * from './ding-talk-card-param-map';
+export * from './ding-talk-conversation-type-enum';
+export * from './ding-talk-emp-field-data-vo';
+export * from './ding-talk-emp-roster-field-vo';
+export * from './ding-talk-field-value-vo';
+export * from './ding-talk-send-interactive-cards-input';
+export * from './ding-talk-send-interactive-cards-output';
+export * from './ding-talk-send-interactive-cards-result';
+export * from './get-ding-talk-current-employees-list-input';
+export * from './get-ding-talk-current-employees-list-output';
+export * from './get-ding-talk-current-employees-roster-list-input';
+export * from './get-ding-talk-token-output';

+ 16 - 0
Web/src/api-services/_goView/api.ts

@@ -0,0 +1,16 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * GoView
+ * GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 2.2.8
+ * 
+ *
+ * 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 * from './apis/project-api';
+export * from './apis/sys-api';
+

+ 833 - 0
Web/src/api-services/_goView/apis/project-api.ts

@@ -0,0 +1,833 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * GoView
+ * GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 2.2.8
+ * 
+ *
+ * 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.
+ */
+
+import globalAxios, { AxiosResponse, AxiosInstance, AxiosRequestConfig } from 'axios';
+import { Configuration } from '../configuration';
+// Some imports not used depending on template conditions
+// @ts-ignore
+import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from '../../base';
+import { GoViewProCreateInput } from '../models';
+import { GoViewProEditInput } from '../models';
+import { GoViewProPublishInput } from '../models';
+import { GoViewResultGoViewProCreateOutput } from '../models';
+import { GoViewResultGoViewProDetailOutput } from '../models';
+import { GoViewResultGoViewProUploadOutput } from '../models';
+import { GoViewResultListGoViewProItemOutput } from '../models';
+/**
+ * ProjectApi - axios parameter creator
+ * @export
+ */
+export const ProjectApiAxiosParamCreator = function (configuration?: Configuration) {
+    return {
+        /**
+         * 
+         * @summary 新增项目 🔖
+         * @param {GoViewProCreateInput} [body] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        apiGoviewProjectCreatePost: async (body?: GoViewProCreateInput, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/goview/project/create`;
+            // 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 删除项目 🔖
+         * @param {string} [ids] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        apiGoviewProjectDeleteDelete: async (ids?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/goview/project/delete`;
+            // 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: 'DELETE', ...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;
+            }
+
+            if (ids !== undefined) {
+                localVarQueryParameter['ids'] = ids;
+            }
+
+            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};
+
+            return {
+                url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
+                options: localVarRequestOptions,
+            };
+        },
+        /**
+         * 
+         * @summary 修改项目 🔖
+         * @param {GoViewProEditInput} [body] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        apiGoviewProjectEditPost: async (body?: GoViewProEditInput, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/goview/project/edit`;
+            // 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 获取项目数据 🔖
+         * @param {number} [projectId] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        apiGoviewProjectGetDataGet: async (projectId?: number, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/goview/project/getData`;
+            // 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: 'GET', ...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;
+            }
+
+            if (projectId !== undefined) {
+                localVarQueryParameter['projectId'] = projectId;
+            }
+
+            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};
+
+            return {
+                url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
+                options: localVarRequestOptions,
+            };
+        },
+        /**
+         * 
+         * @summary 获取预览图 🔖
+         * @param {number} id 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        apiGoviewProjectGetIndexImageIdGet: async (id: number, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+            // 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 apiGoviewProjectGetIndexImageIdGet.');
+            }
+            const localVarPath = `/api/goview/project/getIndexImage/{id}`
+                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
+            // 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: 'GET', ...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;
+            }
+
+            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};
+
+            return {
+                url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
+                options: localVarRequestOptions,
+            };
+        },
+        /**
+         * 
+         * @summary 获取项目列表 🔖
+         * @param {number} [page] 
+         * @param {number} [limit] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        apiGoviewProjectListGet: async (page?: number, limit?: number, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/goview/project/list`;
+            // 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: 'GET', ...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;
+            }
+
+            if (page !== undefined) {
+                localVarQueryParameter['page'] = page;
+            }
+
+            if (limit !== undefined) {
+                localVarQueryParameter['limit'] = limit;
+            }
+
+            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};
+
+            return {
+                url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
+                options: localVarRequestOptions,
+            };
+        },
+        /**
+         * 
+         * @summary 修改发布状态 🔖
+         * @param {GoViewProPublishInput} [body] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        apiGoviewProjectPublishPut: async (body?: GoViewProPublishInput, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/goview/project/publish`;
+            // 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: 'PUT', ...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 保存项目数据 🔖
+         * @param {number} [projectId] 
+         * @param {string} [content] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        apiGoviewProjectSaveDataPostForm: async (projectId?: number, content?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/goview/project/save/data`;
+            // 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;
+            const localVarFormParams = new FormData();
+
+            // 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;
+            }
+
+
+            if (projectId !== undefined) { 
+                localVarFormParams.append('ProjectId', projectId as any);
+            }
+
+            if (content !== undefined) { 
+                localVarFormParams.append('Content', content as any);
+            }
+
+            localVarHeaderParameter['Content-Type'] = 'multipart/form-data';
+            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};
+            localVarRequestOptions.data = localVarFormParams;
+
+            return {
+                url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
+                options: localVarRequestOptions,
+            };
+        },
+        /**
+         * 
+         * @summary 上传预览图 🔖
+         * @param {Blob} [object] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        apiGoviewProjectUploadPostForm: async (object?: Blob, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/goview/project/upload`;
+            // 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;
+            const localVarFormParams = new FormData();
+
+            // 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;
+            }
+
+
+            if (object !== undefined) { 
+                localVarFormParams.append('object', object as any);
+            }
+
+            localVarHeaderParameter['Content-Type'] = 'multipart/form-data';
+            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};
+            localVarRequestOptions.data = localVarFormParams;
+
+            return {
+                url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
+                options: localVarRequestOptions,
+            };
+        },
+    }
+};
+
+/**
+ * ProjectApi - functional programming interface
+ * @export
+ */
+export const ProjectApiFp = function(configuration?: Configuration) {
+    return {
+        /**
+         * 
+         * @summary 新增项目 🔖
+         * @param {GoViewProCreateInput} [body] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiGoviewProjectCreatePost(body?: GoViewProCreateInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<GoViewResultGoViewProCreateOutput>>> {
+            const localVarAxiosArgs = await ProjectApiAxiosParamCreator(configuration).apiGoviewProjectCreatePost(body, options);
+            return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
+                const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
+                return axios.request(axiosRequestArgs);
+            };
+        },
+        /**
+         * 
+         * @summary 删除项目 🔖
+         * @param {string} [ids] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiGoviewProjectDeleteDelete(ids?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<void>>> {
+            const localVarAxiosArgs = await ProjectApiAxiosParamCreator(configuration).apiGoviewProjectDeleteDelete(ids, options);
+            return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
+                const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
+                return axios.request(axiosRequestArgs);
+            };
+        },
+        /**
+         * 
+         * @summary 修改项目 🔖
+         * @param {GoViewProEditInput} [body] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiGoviewProjectEditPost(body?: GoViewProEditInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<void>>> {
+            const localVarAxiosArgs = await ProjectApiAxiosParamCreator(configuration).apiGoviewProjectEditPost(body, options);
+            return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
+                const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
+                return axios.request(axiosRequestArgs);
+            };
+        },
+        /**
+         * 
+         * @summary 获取项目数据 🔖
+         * @param {number} [projectId] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiGoviewProjectGetDataGet(projectId?: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<GoViewResultGoViewProDetailOutput>>> {
+            const localVarAxiosArgs = await ProjectApiAxiosParamCreator(configuration).apiGoviewProjectGetDataGet(projectId, options);
+            return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
+                const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
+                return axios.request(axiosRequestArgs);
+            };
+        },
+        /**
+         * 
+         * @summary 获取预览图 🔖
+         * @param {number} id 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiGoviewProjectGetIndexImageIdGet(id: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<void>>> {
+            const localVarAxiosArgs = await ProjectApiAxiosParamCreator(configuration).apiGoviewProjectGetIndexImageIdGet(id, options);
+            return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
+                const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
+                return axios.request(axiosRequestArgs);
+            };
+        },
+        /**
+         * 
+         * @summary 获取项目列表 🔖
+         * @param {number} [page] 
+         * @param {number} [limit] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiGoviewProjectListGet(page?: number, limit?: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<GoViewResultListGoViewProItemOutput>>> {
+            const localVarAxiosArgs = await ProjectApiAxiosParamCreator(configuration).apiGoviewProjectListGet(page, limit, options);
+            return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
+                const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
+                return axios.request(axiosRequestArgs);
+            };
+        },
+        /**
+         * 
+         * @summary 修改发布状态 🔖
+         * @param {GoViewProPublishInput} [body] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiGoviewProjectPublishPut(body?: GoViewProPublishInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<void>>> {
+            const localVarAxiosArgs = await ProjectApiAxiosParamCreator(configuration).apiGoviewProjectPublishPut(body, options);
+            return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
+                const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
+                return axios.request(axiosRequestArgs);
+            };
+        },
+        /**
+         * 
+         * @summary 保存项目数据 🔖
+         * @param {number} [projectId] 
+         * @param {string} [content] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiGoviewProjectSaveDataPostForm(projectId?: number, content?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<void>>> {
+            const localVarAxiosArgs = await ProjectApiAxiosParamCreator(configuration).apiGoviewProjectSaveDataPostForm(projectId, content, options);
+            return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
+                const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
+                return axios.request(axiosRequestArgs);
+            };
+        },
+        /**
+         * 
+         * @summary 上传预览图 🔖
+         * @param {Blob} [object] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiGoviewProjectUploadPostForm(object?: Blob, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<GoViewResultGoViewProUploadOutput>>> {
+            const localVarAxiosArgs = await ProjectApiAxiosParamCreator(configuration).apiGoviewProjectUploadPostForm(object, options);
+            return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
+                const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
+                return axios.request(axiosRequestArgs);
+            };
+        },
+    }
+};
+
+/**
+ * ProjectApi - factory interface
+ * @export
+ */
+export const ProjectApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
+    return {
+        /**
+         * 
+         * @summary 新增项目 🔖
+         * @param {GoViewProCreateInput} [body] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiGoviewProjectCreatePost(body?: GoViewProCreateInput, options?: AxiosRequestConfig): Promise<AxiosResponse<GoViewResultGoViewProCreateOutput>> {
+            return ProjectApiFp(configuration).apiGoviewProjectCreatePost(body, options).then((request) => request(axios, basePath));
+        },
+        /**
+         * 
+         * @summary 删除项目 🔖
+         * @param {string} [ids] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiGoviewProjectDeleteDelete(ids?: string, options?: AxiosRequestConfig): Promise<AxiosResponse<void>> {
+            return ProjectApiFp(configuration).apiGoviewProjectDeleteDelete(ids, options).then((request) => request(axios, basePath));
+        },
+        /**
+         * 
+         * @summary 修改项目 🔖
+         * @param {GoViewProEditInput} [body] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiGoviewProjectEditPost(body?: GoViewProEditInput, options?: AxiosRequestConfig): Promise<AxiosResponse<void>> {
+            return ProjectApiFp(configuration).apiGoviewProjectEditPost(body, options).then((request) => request(axios, basePath));
+        },
+        /**
+         * 
+         * @summary 获取项目数据 🔖
+         * @param {number} [projectId] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiGoviewProjectGetDataGet(projectId?: number, options?: AxiosRequestConfig): Promise<AxiosResponse<GoViewResultGoViewProDetailOutput>> {
+            return ProjectApiFp(configuration).apiGoviewProjectGetDataGet(projectId, options).then((request) => request(axios, basePath));
+        },
+        /**
+         * 
+         * @summary 获取预览图 🔖
+         * @param {number} id 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiGoviewProjectGetIndexImageIdGet(id: number, options?: AxiosRequestConfig): Promise<AxiosResponse<void>> {
+            return ProjectApiFp(configuration).apiGoviewProjectGetIndexImageIdGet(id, options).then((request) => request(axios, basePath));
+        },
+        /**
+         * 
+         * @summary 获取项目列表 🔖
+         * @param {number} [page] 
+         * @param {number} [limit] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiGoviewProjectListGet(page?: number, limit?: number, options?: AxiosRequestConfig): Promise<AxiosResponse<GoViewResultListGoViewProItemOutput>> {
+            return ProjectApiFp(configuration).apiGoviewProjectListGet(page, limit, options).then((request) => request(axios, basePath));
+        },
+        /**
+         * 
+         * @summary 修改发布状态 🔖
+         * @param {GoViewProPublishInput} [body] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiGoviewProjectPublishPut(body?: GoViewProPublishInput, options?: AxiosRequestConfig): Promise<AxiosResponse<void>> {
+            return ProjectApiFp(configuration).apiGoviewProjectPublishPut(body, options).then((request) => request(axios, basePath));
+        },
+        /**
+         * 
+         * @summary 保存项目数据 🔖
+         * @param {number} [projectId] 
+         * @param {string} [content] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiGoviewProjectSaveDataPostForm(projectId?: number, content?: string, options?: AxiosRequestConfig): Promise<AxiosResponse<void>> {
+            return ProjectApiFp(configuration).apiGoviewProjectSaveDataPostForm(projectId, content, options).then((request) => request(axios, basePath));
+        },
+        /**
+         * 
+         * @summary 上传预览图 🔖
+         * @param {Blob} [object] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiGoviewProjectUploadPostForm(object?: Blob, options?: AxiosRequestConfig): Promise<AxiosResponse<GoViewResultGoViewProUploadOutput>> {
+            return ProjectApiFp(configuration).apiGoviewProjectUploadPostForm(object, options).then((request) => request(axios, basePath));
+        },
+    };
+};
+
+/**
+ * ProjectApi - object-oriented interface
+ * @export
+ * @class ProjectApi
+ * @extends {BaseAPI}
+ */
+export class ProjectApi extends BaseAPI {
+    /**
+     * 
+     * @summary 新增项目 🔖
+     * @param {GoViewProCreateInput} [body] 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof ProjectApi
+     */
+    public async apiGoviewProjectCreatePost(body?: GoViewProCreateInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<GoViewResultGoViewProCreateOutput>> {
+        return ProjectApiFp(this.configuration).apiGoviewProjectCreatePost(body, options).then((request) => request(this.axios, this.basePath));
+    }
+    /**
+     * 
+     * @summary 删除项目 🔖
+     * @param {string} [ids] 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof ProjectApi
+     */
+    public async apiGoviewProjectDeleteDelete(ids?: string, options?: AxiosRequestConfig) : Promise<AxiosResponse<void>> {
+        return ProjectApiFp(this.configuration).apiGoviewProjectDeleteDelete(ids, options).then((request) => request(this.axios, this.basePath));
+    }
+    /**
+     * 
+     * @summary 修改项目 🔖
+     * @param {GoViewProEditInput} [body] 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof ProjectApi
+     */
+    public async apiGoviewProjectEditPost(body?: GoViewProEditInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<void>> {
+        return ProjectApiFp(this.configuration).apiGoviewProjectEditPost(body, options).then((request) => request(this.axios, this.basePath));
+    }
+    /**
+     * 
+     * @summary 获取项目数据 🔖
+     * @param {number} [projectId] 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof ProjectApi
+     */
+    public async apiGoviewProjectGetDataGet(projectId?: number, options?: AxiosRequestConfig) : Promise<AxiosResponse<GoViewResultGoViewProDetailOutput>> {
+        return ProjectApiFp(this.configuration).apiGoviewProjectGetDataGet(projectId, options).then((request) => request(this.axios, this.basePath));
+    }
+    /**
+     * 
+     * @summary 获取预览图 🔖
+     * @param {number} id 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof ProjectApi
+     */
+    public async apiGoviewProjectGetIndexImageIdGet(id: number, options?: AxiosRequestConfig) : Promise<AxiosResponse<void>> {
+        return ProjectApiFp(this.configuration).apiGoviewProjectGetIndexImageIdGet(id, options).then((request) => request(this.axios, this.basePath));
+    }
+    /**
+     * 
+     * @summary 获取项目列表 🔖
+     * @param {number} [page] 
+     * @param {number} [limit] 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof ProjectApi
+     */
+    public async apiGoviewProjectListGet(page?: number, limit?: number, options?: AxiosRequestConfig) : Promise<AxiosResponse<GoViewResultListGoViewProItemOutput>> {
+        return ProjectApiFp(this.configuration).apiGoviewProjectListGet(page, limit, options).then((request) => request(this.axios, this.basePath));
+    }
+    /**
+     * 
+     * @summary 修改发布状态 🔖
+     * @param {GoViewProPublishInput} [body] 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof ProjectApi
+     */
+    public async apiGoviewProjectPublishPut(body?: GoViewProPublishInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<void>> {
+        return ProjectApiFp(this.configuration).apiGoviewProjectPublishPut(body, options).then((request) => request(this.axios, this.basePath));
+    }
+    /**
+     * 
+     * @summary 保存项目数据 🔖
+     * @param {number} [projectId] 
+     * @param {string} [content] 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof ProjectApi
+     */
+    public async apiGoviewProjectSaveDataPostForm(projectId?: number, content?: string, options?: AxiosRequestConfig) : Promise<AxiosResponse<void>> {
+        return ProjectApiFp(this.configuration).apiGoviewProjectSaveDataPostForm(projectId, content, options).then((request) => request(this.axios, this.basePath));
+    }
+    /**
+     * 
+     * @summary 上传预览图 🔖
+     * @param {Blob} [object] 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof ProjectApi
+     */
+    public async apiGoviewProjectUploadPostForm(object?: Blob, options?: AxiosRequestConfig) : Promise<AxiosResponse<GoViewResultGoViewProUploadOutput>> {
+        return ProjectApiFp(this.configuration).apiGoviewProjectUploadPostForm(object, options).then((request) => request(this.axios, this.basePath));
+    }
+}

+ 214 - 0
Web/src/api-services/_goView/apis/sys-api.ts

@@ -0,0 +1,214 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * GoView
+ * GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 2.2.8
+ * 
+ *
+ * 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.
+ */
+
+import globalAxios, { AxiosResponse, AxiosInstance, AxiosRequestConfig } from 'axios';
+import { Configuration } from '../configuration';
+// Some imports not used depending on template conditions
+// @ts-ignore
+import { BASE_PATH, COLLECTION_FORMATS, RequestArgs, BaseAPI, RequiredError } from '../../base';
+import { GoViewLoginInput } from '../models';
+import { GoViewResultGoViewLoginOutput } from '../models';
+/**
+ * SysApi - axios parameter creator
+ * @export
+ */
+export const SysApiAxiosParamCreator = function (configuration?: Configuration) {
+    return {
+        /**
+         * 
+         * @summary GoView 登录 🔖
+         * @param {GoViewLoginInput} [body] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        apiGoviewSysLoginPost: async (body?: GoViewLoginInput, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/goview/sys/login`;
+            // 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 GoView 退出 🔖
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        apiGoviewSysLogoutGet: async (options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/goview/sys/logout`;
+            // 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: 'GET', ...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;
+            }
+
+            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};
+
+            return {
+                url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
+                options: localVarRequestOptions,
+            };
+        },
+    }
+};
+
+/**
+ * SysApi - functional programming interface
+ * @export
+ */
+export const SysApiFp = function(configuration?: Configuration) {
+    return {
+        /**
+         * 
+         * @summary GoView 登录 🔖
+         * @param {GoViewLoginInput} [body] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiGoviewSysLoginPost(body?: GoViewLoginInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<GoViewResultGoViewLoginOutput>>> {
+            const localVarAxiosArgs = await SysApiAxiosParamCreator(configuration).apiGoviewSysLoginPost(body, options);
+            return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
+                const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
+                return axios.request(axiosRequestArgs);
+            };
+        },
+        /**
+         * 
+         * @summary GoView 退出 🔖
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiGoviewSysLogoutGet(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<void>>> {
+            const localVarAxiosArgs = await SysApiAxiosParamCreator(configuration).apiGoviewSysLogoutGet(options);
+            return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
+                const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
+                return axios.request(axiosRequestArgs);
+            };
+        },
+    }
+};
+
+/**
+ * SysApi - factory interface
+ * @export
+ */
+export const SysApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
+    return {
+        /**
+         * 
+         * @summary GoView 登录 🔖
+         * @param {GoViewLoginInput} [body] 
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiGoviewSysLoginPost(body?: GoViewLoginInput, options?: AxiosRequestConfig): Promise<AxiosResponse<GoViewResultGoViewLoginOutput>> {
+            return SysApiFp(configuration).apiGoviewSysLoginPost(body, options).then((request) => request(axios, basePath));
+        },
+        /**
+         * 
+         * @summary GoView 退出 🔖
+         * @param {*} [options] Override http request option.
+         * @throws {RequiredError}
+         */
+        async apiGoviewSysLogoutGet(options?: AxiosRequestConfig): Promise<AxiosResponse<void>> {
+            return SysApiFp(configuration).apiGoviewSysLogoutGet(options).then((request) => request(axios, basePath));
+        },
+    };
+};
+
+/**
+ * SysApi - object-oriented interface
+ * @export
+ * @class SysApi
+ * @extends {BaseAPI}
+ */
+export class SysApi extends BaseAPI {
+    /**
+     * 
+     * @summary GoView 登录 🔖
+     * @param {GoViewLoginInput} [body] 
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof SysApi
+     */
+    public async apiGoviewSysLoginPost(body?: GoViewLoginInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<GoViewResultGoViewLoginOutput>> {
+        return SysApiFp(this.configuration).apiGoviewSysLoginPost(body, options).then((request) => request(this.axios, this.basePath));
+    }
+    /**
+     * 
+     * @summary GoView 退出 🔖
+     * @param {*} [options] Override http request option.
+     * @throws {RequiredError}
+     * @memberof SysApi
+     */
+    public async apiGoviewSysLogoutGet(options?: AxiosRequestConfig) : Promise<AxiosResponse<void>> {
+        return SysApiFp(this.configuration).apiGoviewSysLogoutGet(options).then((request) => request(this.axios, this.basePath));
+    }
+}

+ 70 - 0
Web/src/api-services/_goView/base.ts

@@ -0,0 +1,70 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * GoView
+ * GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 2.2.8
+ * 
+ *
+ * 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.
+ */
+
+import { Configuration } from "./configuration";
+// Some imports not used depending on template conditions
+// @ts-ignore
+import globalAxios, { AxiosRequestConfig, AxiosInstance } from 'axios';
+
+export const BASE_PATH = "/".replace(/\/+$/, "");
+
+/**
+ *
+ * @export
+ */
+export const COLLECTION_FORMATS = {
+    csv: ",",
+    ssv: " ",
+    tsv: "\t",
+    pipes: "|",
+};
+
+/**
+ *
+ * @export
+ * @interface RequestArgs
+ */
+export interface RequestArgs {
+    url: string;
+    options: AxiosRequestConfig;
+}
+
+/**
+ *
+ * @export
+ * @class BaseAPI
+ */
+export class BaseAPI {
+    protected configuration: Configuration | undefined;
+
+    constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) {
+        if (configuration) {
+            this.configuration = configuration;
+            this.basePath = configuration.basePath || this.basePath;
+        }
+    }
+};
+
+/**
+ *
+ * @export
+ * @class RequiredError
+ * @extends {Error}
+ */
+export class RequiredError extends Error {
+    name: "RequiredError" = "RequiredError";
+    constructor(public field: string, msg?: string) {
+        super(msg);
+    }
+}

+ 83 - 0
Web/src/api-services/_goView/configuration.ts

@@ -0,0 +1,83 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * GoView
+ * GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 2.2.8
+ * 
+ *
+ * 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 ConfigurationParameters {
+    apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
+    username?: string;
+    password?: string;
+    accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
+    basePath?: string;
+    baseOptions?: any;
+}
+
+export class Configuration {
+
+    /**
+     * parameter for apiKey security
+     *
+     * @param name security name
+     * @memberof Configuration
+     */
+    apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
+
+    /**
+     * parameter for basic security
+     *
+     * @type {string}
+     * @memberof Configuration
+     */
+    username?: string;
+
+    /**
+     * parameter for basic security
+     *
+     * @type {string}
+     * @memberof Configuration
+     */
+    password?: string;
+
+    /**
+     * parameter for oauth2 security
+     *
+     * @param name security name
+     * @param scopes oauth2 scope
+     * @memberof Configuration
+     */
+    accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
+
+    /**
+     * override base path
+     *
+     * @type {string}
+     * @memberof Configuration
+     */
+    basePath?: string;
+
+    /**
+     * base options for axios calls
+     *
+     * @type {any}
+     * @memberof Configuration
+     */
+    baseOptions?: any;
+
+    constructor(param: ConfigurationParameters = {}) {
+        this.apiKey = param.apiKey;
+        this.username = param.username;
+        this.password = param.password;
+        this.accessToken = param.accessToken;
+        this.basePath = param.basePath;
+        this.baseOptions = param.baseOptions;
+    }
+}

+ 18 - 0
Web/src/api-services/_goView/index.ts

@@ -0,0 +1,18 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * GoView
+ * GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 2.2.8
+ * 
+ *
+ * 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 * from "./api";
+export * from "./configuration";
+export * from "./models";
+

+ 38 - 0
Web/src/api-services/_goView/models/go-view-login-input.ts

@@ -0,0 +1,38 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * GoView
+ * GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 2.2.8
+ * 
+ *
+ * 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 GoViewLoginInput
+ */
+export interface GoViewLoginInput {
+
+    /**
+     * 用户名
+     *
+     * @type {string}
+     * @memberof GoViewLoginInput
+     */
+    username: string;
+
+    /**
+     * 密码
+     *
+     * @type {string}
+     * @memberof GoViewLoginInput
+     */
+    password: string;
+}

+ 36 - 0
Web/src/api-services/_goView/models/go-view-login-output.ts

@@ -0,0 +1,36 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * GoView
+ * GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 2.2.8
+ * 
+ *
+ * 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.
+ */
+
+import { GoViewLoginToken } from './go-view-login-token';
+import { GoViewLoginUserInfo } from './go-view-login-user-info';
+ /**
+ * 登录输出
+ *
+ * @export
+ * @interface GoViewLoginOutput
+ */
+export interface GoViewLoginOutput {
+
+    /**
+     * @type {GoViewLoginUserInfo}
+     * @memberof GoViewLoginOutput
+     */
+    userinfo?: GoViewLoginUserInfo;
+
+    /**
+     * @type {GoViewLoginToken}
+     * @memberof GoViewLoginOutput
+     */
+    token?: GoViewLoginToken;
+}

+ 38 - 0
Web/src/api-services/_goView/models/go-view-login-token.ts

@@ -0,0 +1,38 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * GoView
+ * GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 2.2.8
+ * 
+ *
+ * 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.
+ */
+
+ /**
+ * 登录 Token
+ *
+ * @export
+ * @interface GoViewLoginToken
+ */
+export interface GoViewLoginToken {
+
+    /**
+     * Token 名
+     *
+     * @type {string}
+     * @memberof GoViewLoginToken
+     */
+    tokenName?: string | null;
+
+    /**
+     * Token 值
+     *
+     * @type {string}
+     * @memberof GoViewLoginToken
+     */
+    tokenValue?: string | null;
+}

+ 46 - 0
Web/src/api-services/_goView/models/go-view-login-user-info.ts

@@ -0,0 +1,46 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * GoView
+ * GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 2.2.8
+ * 
+ *
+ * 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 GoViewLoginUserInfo
+ */
+export interface GoViewLoginUserInfo {
+
+    /**
+     * 用户 Id
+     *
+     * @type {string}
+     * @memberof GoViewLoginUserInfo
+     */
+    id?: string | null;
+
+    /**
+     * 用户名
+     *
+     * @type {string}
+     * @memberof GoViewLoginUserInfo
+     */
+    username?: string | null;
+
+    /**
+     * 昵称
+     *
+     * @type {string}
+     * @memberof GoViewLoginUserInfo
+     */
+    nickname?: string | null;
+}

+ 46 - 0
Web/src/api-services/_goView/models/go-view-pro-create-input.ts

@@ -0,0 +1,46 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * GoView
+ * GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 2.2.8
+ * 
+ *
+ * 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.
+ */
+
+ /**
+ * GoView 新增项目
+ *
+ * @export
+ * @interface GoViewProCreateInput
+ */
+export interface GoViewProCreateInput {
+
+    /**
+     * 项目名称
+     *
+     * @type {string}
+     * @memberof GoViewProCreateInput
+     */
+    projectName?: string | null;
+
+    /**
+     * 项目备注
+     *
+     * @type {string}
+     * @memberof GoViewProCreateInput
+     */
+    remarks?: string | null;
+
+    /**
+     * 预览图片url
+     *
+     * @type {string}
+     * @memberof GoViewProCreateInput
+     */
+    indexImage?: string | null;
+}

+ 30 - 0
Web/src/api-services/_goView/models/go-view-pro-create-output.ts

@@ -0,0 +1,30 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * GoView
+ * GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 2.2.8
+ * 
+ *
+ * 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.
+ */
+
+ /**
+ * GoView 新增项目输出
+ *
+ * @export
+ * @interface GoViewProCreateOutput
+ */
+export interface GoViewProCreateOutput {
+
+    /**
+     * 项目Id
+     *
+     * @type {number}
+     * @memberof GoViewProCreateOutput
+     */
+    id?: number;
+}

+ 85 - 0
Web/src/api-services/_goView/models/go-view-pro-detail-output.ts

@@ -0,0 +1,85 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * GoView
+ * GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 2.2.8
+ * 
+ *
+ * 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.
+ */
+
+import { GoViewProState } from './go-view-pro-state';
+ /**
+ * GoView 项目详情
+ *
+ * @export
+ * @interface GoViewProDetailOutput
+ */
+export interface GoViewProDetailOutput {
+
+    /**
+     * 项目Id
+     *
+     * @type {number}
+     * @memberof GoViewProDetailOutput
+     */
+    id?: number;
+
+    /**
+     * 项目名称
+     *
+     * @type {string}
+     * @memberof GoViewProDetailOutput
+     */
+    projectName?: string | null;
+
+    /**
+     * @type {GoViewProState}
+     * @memberof GoViewProDetailOutput
+     */
+    state?: GoViewProState;
+
+    /**
+     * 创建时间
+     *
+     * @type {Date}
+     * @memberof GoViewProDetailOutput
+     */
+    createTime?: Date | null;
+
+    /**
+     * 预览图片url
+     *
+     * @type {string}
+     * @memberof GoViewProDetailOutput
+     */
+    indexImage?: string | null;
+
+    /**
+     * 创建者Id
+     *
+     * @type {number}
+     * @memberof GoViewProDetailOutput
+     */
+    createUserId?: number | null;
+
+    /**
+     * 项目备注
+     *
+     * @type {string}
+     * @memberof GoViewProDetailOutput
+     */
+    remarks?: string | null;
+
+    /**
+     * 项目内容
+     *
+     * @type {string}
+     * @memberof GoViewProDetailOutput
+     */
+    content?: string | null;
+}

+ 46 - 0
Web/src/api-services/_goView/models/go-view-pro-edit-input.ts

@@ -0,0 +1,46 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * GoView
+ * GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 2.2.8
+ * 
+ *
+ * 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.
+ */
+
+ /**
+ * GoView 编辑项目
+ *
+ * @export
+ * @interface GoViewProEditInput
+ */
+export interface GoViewProEditInput {
+
+    /**
+     * 项目Id
+     *
+     * @type {number}
+     * @memberof GoViewProEditInput
+     */
+    id?: number;
+
+    /**
+     * 项目名称
+     *
+     * @type {string}
+     * @memberof GoViewProEditInput
+     */
+    projectName?: string | null;
+
+    /**
+     * 预览图片url
+     *
+     * @type {string}
+     * @memberof GoViewProEditInput
+     */
+    indexImage?: string | null;
+}

+ 77 - 0
Web/src/api-services/_goView/models/go-view-pro-item-output.ts

@@ -0,0 +1,77 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * GoView
+ * GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 2.2.8
+ * 
+ *
+ * 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.
+ */
+
+import { GoViewProState } from './go-view-pro-state';
+ /**
+ * GoView 项目 Item
+ *
+ * @export
+ * @interface GoViewProItemOutput
+ */
+export interface GoViewProItemOutput {
+
+    /**
+     * 项目Id
+     *
+     * @type {number}
+     * @memberof GoViewProItemOutput
+     */
+    id?: number;
+
+    /**
+     * 项目名称
+     *
+     * @type {string}
+     * @memberof GoViewProItemOutput
+     */
+    projectName?: string | null;
+
+    /**
+     * @type {GoViewProState}
+     * @memberof GoViewProItemOutput
+     */
+    state?: GoViewProState;
+
+    /**
+     * 创建时间
+     *
+     * @type {Date}
+     * @memberof GoViewProItemOutput
+     */
+    createTime?: Date | null;
+
+    /**
+     * 预览图片url
+     *
+     * @type {string}
+     * @memberof GoViewProItemOutput
+     */
+    indexImage?: string | null;
+
+    /**
+     * 创建者Id
+     *
+     * @type {number}
+     * @memberof GoViewProItemOutput
+     */
+    createUserId?: number | null;
+
+    /**
+     * 项目备注
+     *
+     * @type {string}
+     * @memberof GoViewProItemOutput
+     */
+    remarks?: string | null;
+}

+ 37 - 0
Web/src/api-services/_goView/models/go-view-pro-publish-input.ts

@@ -0,0 +1,37 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * GoView
+ * GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 2.2.8
+ * 
+ *
+ * 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.
+ */
+
+import { GoViewProState } from './go-view-pro-state';
+ /**
+ * GoView 修改项目发布状态
+ *
+ * @export
+ * @interface GoViewProPublishInput
+ */
+export interface GoViewProPublishInput {
+
+    /**
+     * 项目Id
+     *
+     * @type {number}
+     * @memberof GoViewProPublishInput
+     */
+    id?: number;
+
+    /**
+     * @type {GoViewProState}
+     * @memberof GoViewProPublishInput
+     */
+    state?: GoViewProState;
+}

+ 24 - 0
Web/src/api-services/_goView/models/go-view-pro-state.ts

@@ -0,0 +1,24 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * GoView
+ * GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 2.2.8
+ * 
+ *
+ * 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.
+ */
+
+/**
+ * GoView 项目状态<br />&nbsp;已发布 Published = 1<br />&nbsp;未发布 UnPublish = -1<br />
+ * @export
+ * @enum {string}
+ */
+export enum GoViewProState {
+    NUMBER_1 = 1,
+    NUMBER_MINUS_1 = -1
+}
+

+ 102 - 0
Web/src/api-services/_goView/models/go-view-pro-upload-output.ts

@@ -0,0 +1,102 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * GoView
+ * GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 2.2.8
+ * 
+ *
+ * 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.
+ */
+
+ /**
+ * GoView 上传项目输出
+ *
+ * @export
+ * @interface GoViewProUploadOutput
+ */
+export interface GoViewProUploadOutput {
+
+    /**
+     * Id
+     *
+     * @type {number}
+     * @memberof GoViewProUploadOutput
+     */
+    id?: number;
+
+    /**
+     * 仓储名称
+     *
+     * @type {string}
+     * @memberof GoViewProUploadOutput
+     */
+    bucketName?: string | null;
+
+    /**
+     * 创建时间
+     *
+     * @type {Date}
+     * @memberof GoViewProUploadOutput
+     */
+    createTime?: Date | null;
+
+    /**
+     * 创建者Id
+     *
+     * @type {number}
+     * @memberof GoViewProUploadOutput
+     */
+    createUserId?: number | null;
+
+    /**
+     * 文件名称
+     *
+     * @type {string}
+     * @memberof GoViewProUploadOutput
+     */
+    fileName?: string | null;
+
+    /**
+     * 文件大小KB
+     *
+     * @type {number}
+     * @memberof GoViewProUploadOutput
+     */
+    fileSize?: number;
+
+    /**
+     * 文件后缀
+     *
+     * @type {string}
+     * @memberof GoViewProUploadOutput
+     */
+    fileSuffix?: string | null;
+
+    /**
+     * 文件 Url
+     *
+     * @type {string}
+     * @memberof GoViewProUploadOutput
+     */
+    fileUrl?: string | null;
+
+    /**
+     * 更新时间
+     *
+     * @type {Date}
+     * @memberof GoViewProUploadOutput
+     */
+    updateTime?: Date | null;
+
+    /**
+     * 修改者Id
+     *
+     * @type {number}
+     * @memberof GoViewProUploadOutput
+     */
+    updateUserId?: number | null;
+}

+ 53 - 0
Web/src/api-services/_goView/models/go-view-result-go-view-login-output.ts

@@ -0,0 +1,53 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * GoView
+ * GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 2.2.8
+ * 
+ *
+ * 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.
+ */
+
+import { GoViewLoginOutput } from './go-view-login-output';
+ /**
+ * GoView 返回结果
+ *
+ * @export
+ * @interface GoViewResultGoViewLoginOutput
+ */
+export interface GoViewResultGoViewLoginOutput {
+
+    /**
+     * 状态码
+     *
+     * @type {number}
+     * @memberof GoViewResultGoViewLoginOutput
+     */
+    code?: number;
+
+    /**
+     * 信息
+     *
+     * @type {string}
+     * @memberof GoViewResultGoViewLoginOutput
+     */
+    msg?: string | null;
+
+    /**
+     * @type {GoViewLoginOutput}
+     * @memberof GoViewResultGoViewLoginOutput
+     */
+    data?: GoViewLoginOutput;
+
+    /**
+     * 总数
+     *
+     * @type {number}
+     * @memberof GoViewResultGoViewLoginOutput
+     */
+    count?: number | null;
+}

+ 53 - 0
Web/src/api-services/_goView/models/go-view-result-go-view-pro-create-output.ts

@@ -0,0 +1,53 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * GoView
+ * GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 2.2.8
+ * 
+ *
+ * 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.
+ */
+
+import { GoViewProCreateOutput } from './go-view-pro-create-output';
+ /**
+ * GoView 返回结果
+ *
+ * @export
+ * @interface GoViewResultGoViewProCreateOutput
+ */
+export interface GoViewResultGoViewProCreateOutput {
+
+    /**
+     * 状态码
+     *
+     * @type {number}
+     * @memberof GoViewResultGoViewProCreateOutput
+     */
+    code?: number;
+
+    /**
+     * 信息
+     *
+     * @type {string}
+     * @memberof GoViewResultGoViewProCreateOutput
+     */
+    msg?: string | null;
+
+    /**
+     * @type {GoViewProCreateOutput}
+     * @memberof GoViewResultGoViewProCreateOutput
+     */
+    data?: GoViewProCreateOutput;
+
+    /**
+     * 总数
+     *
+     * @type {number}
+     * @memberof GoViewResultGoViewProCreateOutput
+     */
+    count?: number | null;
+}

+ 53 - 0
Web/src/api-services/_goView/models/go-view-result-go-view-pro-detail-output.ts

@@ -0,0 +1,53 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * GoView
+ * GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 2.2.8
+ * 
+ *
+ * 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.
+ */
+
+import { GoViewProDetailOutput } from './go-view-pro-detail-output';
+ /**
+ * GoView 返回结果
+ *
+ * @export
+ * @interface GoViewResultGoViewProDetailOutput
+ */
+export interface GoViewResultGoViewProDetailOutput {
+
+    /**
+     * 状态码
+     *
+     * @type {number}
+     * @memberof GoViewResultGoViewProDetailOutput
+     */
+    code?: number;
+
+    /**
+     * 信息
+     *
+     * @type {string}
+     * @memberof GoViewResultGoViewProDetailOutput
+     */
+    msg?: string | null;
+
+    /**
+     * @type {GoViewProDetailOutput}
+     * @memberof GoViewResultGoViewProDetailOutput
+     */
+    data?: GoViewProDetailOutput;
+
+    /**
+     * 总数
+     *
+     * @type {number}
+     * @memberof GoViewResultGoViewProDetailOutput
+     */
+    count?: number | null;
+}

+ 53 - 0
Web/src/api-services/_goView/models/go-view-result-go-view-pro-upload-output.ts

@@ -0,0 +1,53 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * GoView
+ * GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 2.2.8
+ * 
+ *
+ * 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.
+ */
+
+import { GoViewProUploadOutput } from './go-view-pro-upload-output';
+ /**
+ * GoView 返回结果
+ *
+ * @export
+ * @interface GoViewResultGoViewProUploadOutput
+ */
+export interface GoViewResultGoViewProUploadOutput {
+
+    /**
+     * 状态码
+     *
+     * @type {number}
+     * @memberof GoViewResultGoViewProUploadOutput
+     */
+    code?: number;
+
+    /**
+     * 信息
+     *
+     * @type {string}
+     * @memberof GoViewResultGoViewProUploadOutput
+     */
+    msg?: string | null;
+
+    /**
+     * @type {GoViewProUploadOutput}
+     * @memberof GoViewResultGoViewProUploadOutput
+     */
+    data?: GoViewProUploadOutput;
+
+    /**
+     * 总数
+     *
+     * @type {number}
+     * @memberof GoViewResultGoViewProUploadOutput
+     */
+    count?: number | null;
+}

+ 55 - 0
Web/src/api-services/_goView/models/go-view-result-list-go-view-pro-item-output.ts

@@ -0,0 +1,55 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * GoView
+ * GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 2.2.8
+ * 
+ *
+ * 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.
+ */
+
+import { GoViewProItemOutput } from './go-view-pro-item-output';
+ /**
+ * GoView 返回结果
+ *
+ * @export
+ * @interface GoViewResultListGoViewProItemOutput
+ */
+export interface GoViewResultListGoViewProItemOutput {
+
+    /**
+     * 状态码
+     *
+     * @type {number}
+     * @memberof GoViewResultListGoViewProItemOutput
+     */
+    code?: number;
+
+    /**
+     * 信息
+     *
+     * @type {string}
+     * @memberof GoViewResultListGoViewProItemOutput
+     */
+    msg?: string | null;
+
+    /**
+     * 数据
+     *
+     * @type {Array<GoViewProItemOutput>}
+     * @memberof GoViewResultListGoViewProItemOutput
+     */
+    data?: Array<GoViewProItemOutput> | null;
+
+    /**
+     * 总数
+     *
+     * @type {number}
+     * @memberof GoViewResultListGoViewProItemOutput
+     */
+    count?: number | null;
+}

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

@@ -0,0 +1,19 @@
+export * from './go-view-login-input';
+export * from './go-view-login-output';
+export * from './go-view-login-token';
+export * from './go-view-login-user-info';
+export * from './go-view-pro-create-input';
+export * from './go-view-pro-create-output';
+export * from './go-view-pro-detail-output';
+export * from './go-view-pro-edit-input';
+export * from './go-view-pro-item-output';
+export * from './go-view-pro-publish-input';
+export * from './go-view-pro-state';
+export * from './go-view-pro-upload-output';
+export * from './go-view-result-go-view-login-output';
+export * from './go-view-result-go-view-pro-create-output';
+export * from './go-view-result-go-view-pro-detail-output';
+export * from './go-view-result-go-view-pro-upload-output';
+export * from './go-view-result-list-go-view-pro-item-output';
+export * from './project-upload-body';
+export * from './save-data-body';

+ 28 - 0
Web/src/api-services/_goView/models/project-upload-body.ts

@@ -0,0 +1,28 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * GoView
+ * GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 2.2.8
+ * 
+ *
+ * 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 ProjectUploadBody
+ */
+export interface ProjectUploadBody {
+
+    /**
+     * @type {Blob}
+     * @memberof ProjectUploadBody
+     */
+    object?: Blob;
+}

+ 38 - 0
Web/src/api-services/_goView/models/save-data-body.ts

@@ -0,0 +1,38 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * GoView
+ * GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。<br/><u><b><font color='FF0000'> 👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!</font></b></u>
+ *
+ * OpenAPI spec version: 2.2.8
+ * 
+ *
+ * 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 SaveDataBody
+ */
+export interface SaveDataBody {
+
+    /**
+     * 项目Id
+     *
+     * @type {number}
+     * @memberof SaveDataBody
+     */
+    projectId?: number;
+
+    /**
+     * 项目内容
+     *
+     * @type {string}
+     * @memberof SaveDataBody
+     */
+    content?: string;
+}

+ 41 - 41
Web/src/api-services/apis/sys-user-menu-api.ts

@@ -76,13 +76,18 @@ export const SysUserMenuApiAxiosParamCreator = function (configuration?: Configu
         },
         /**
          * 
-         * @summary 取消收藏菜单 🔖
-         * @param {UserMenuInput} [body] 
+         * @summary 根据用户Id删除收藏菜单 🔖
+         * @param {number} userId 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        apiSysUserMenuDeletePost: async (body?: UserMenuInput, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
-            const localVarPath = `/api/sysUserMenu/delete`;
+        apiSysUserMenuDeleteByUserIdUserIdPost: async (userId: number, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+            // verify required parameter 'userId' is not null or undefined
+            if (userId === null || userId === undefined) {
+                throw new RequiredError('userId','Required parameter userId was null or undefined when calling apiSysUserMenuDeleteByUserIdUserIdPost.');
+            }
+            const localVarPath = `/api/sysUserMenu/deleteByUserId/{userId}`
+                .replace(`{${"userId"}}`, encodeURIComponent(String(userId)));
             // use dummy base URL string because the URL constructor only accepts absolute URLs.
             const localVarUrlObj = new URL(localVarPath, 'https://example.com');
             let baseOptions;
@@ -102,8 +107,6 @@ export const SysUserMenuApiAxiosParamCreator = function (configuration?: Configu
                 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]);
@@ -114,8 +117,6 @@ export const SysUserMenuApiAxiosParamCreator = function (configuration?: Configu
             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,
@@ -124,18 +125,13 @@ export const SysUserMenuApiAxiosParamCreator = function (configuration?: Configu
         },
         /**
          * 
-         * @summary 根据用户Id删除收藏菜单 🔖
-         * @param {number} userId 
+         * @summary 取消收藏菜单 🔖
+         * @param {UserMenuInput} [body] 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        apiSysUserMenuDeleteUserMenuByUserIdUserIdPost: async (userId: number, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
-            // verify required parameter 'userId' is not null or undefined
-            if (userId === null || userId === undefined) {
-                throw new RequiredError('userId','Required parameter userId was null or undefined when calling apiSysUserMenuDeleteUserMenuByUserIdUserIdPost.');
-            }
-            const localVarPath = `/api/sysUserMenu/deleteUserMenuByUserId/{userId}`
-                .replace(`{${"userId"}}`, encodeURIComponent(String(userId)));
+        apiSysUserMenuDeletePost: async (body?: UserMenuInput, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
+            const localVarPath = `/api/sysUserMenu/delete`;
             // use dummy base URL string because the URL constructor only accepts absolute URLs.
             const localVarUrlObj = new URL(localVarPath, 'https://example.com');
             let baseOptions;
@@ -155,6 +151,8 @@ export const SysUserMenuApiAxiosParamCreator = function (configuration?: Configu
                 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]);
@@ -165,6 +163,8 @@ export const SysUserMenuApiAxiosParamCreator = function (configuration?: Configu
             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,
@@ -294,13 +294,13 @@ export const SysUserMenuApiFp = function(configuration?: Configuration) {
         },
         /**
          * 
-         * @summary 取消收藏菜单 🔖
-         * @param {UserMenuInput} [body] 
+         * @summary 根据用户Id删除收藏菜单 🔖
+         * @param {number} userId 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async apiSysUserMenuDeletePost(body?: UserMenuInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<void>>> {
-            const localVarAxiosArgs = await SysUserMenuApiAxiosParamCreator(configuration).apiSysUserMenuDeletePost(body, options);
+        async apiSysUserMenuDeleteByUserIdUserIdPost(userId: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<void>>> {
+            const localVarAxiosArgs = await SysUserMenuApiAxiosParamCreator(configuration).apiSysUserMenuDeleteByUserIdUserIdPost(userId, options);
             return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
                 const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
                 return axios.request(axiosRequestArgs);
@@ -308,13 +308,13 @@ export const SysUserMenuApiFp = function(configuration?: Configuration) {
         },
         /**
          * 
-         * @summary 根据用户Id删除收藏菜单 🔖
-         * @param {number} userId 
+         * @summary 取消收藏菜单 🔖
+         * @param {UserMenuInput} [body] 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async apiSysUserMenuDeleteUserMenuByUserIdUserIdPost(userId: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<void>>> {
-            const localVarAxiosArgs = await SysUserMenuApiAxiosParamCreator(configuration).apiSysUserMenuDeleteUserMenuByUserIdUserIdPost(userId, options);
+        async apiSysUserMenuDeletePost(body?: UserMenuInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<void>>> {
+            const localVarAxiosArgs = await SysUserMenuApiAxiosParamCreator(configuration).apiSysUserMenuDeletePost(body, options);
             return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
                 const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
                 return axios.request(axiosRequestArgs);
@@ -369,23 +369,23 @@ export const SysUserMenuApiFactory = function (configuration?: Configuration, ba
         },
         /**
          * 
-         * @summary 取消收藏菜单 🔖
-         * @param {UserMenuInput} [body] 
+         * @summary 根据用户Id删除收藏菜单 🔖
+         * @param {number} userId 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async apiSysUserMenuDeletePost(body?: UserMenuInput, options?: AxiosRequestConfig): Promise<AxiosResponse<void>> {
-            return SysUserMenuApiFp(configuration).apiSysUserMenuDeletePost(body, options).then((request) => request(axios, basePath));
+        async apiSysUserMenuDeleteByUserIdUserIdPost(userId: number, options?: AxiosRequestConfig): Promise<AxiosResponse<void>> {
+            return SysUserMenuApiFp(configuration).apiSysUserMenuDeleteByUserIdUserIdPost(userId, options).then((request) => request(axios, basePath));
         },
         /**
          * 
-         * @summary 根据用户Id删除收藏菜单 🔖
-         * @param {number} userId 
+         * @summary 取消收藏菜单 🔖
+         * @param {UserMenuInput} [body] 
          * @param {*} [options] Override http request option.
          * @throws {RequiredError}
          */
-        async apiSysUserMenuDeleteUserMenuByUserIdUserIdPost(userId: number, options?: AxiosRequestConfig): Promise<AxiosResponse<void>> {
-            return SysUserMenuApiFp(configuration).apiSysUserMenuDeleteUserMenuByUserIdUserIdPost(userId, options).then((request) => request(axios, basePath));
+        async apiSysUserMenuDeletePost(body?: UserMenuInput, options?: AxiosRequestConfig): Promise<AxiosResponse<void>> {
+            return SysUserMenuApiFp(configuration).apiSysUserMenuDeletePost(body, options).then((request) => request(axios, basePath));
         },
         /**
          * 
@@ -430,25 +430,25 @@ export class SysUserMenuApi extends BaseAPI {
     }
     /**
      * 
-     * @summary 取消收藏菜单 🔖
-     * @param {UserMenuInput} [body] 
+     * @summary 根据用户Id删除收藏菜单 🔖
+     * @param {number} userId 
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
      * @memberof SysUserMenuApi
      */
-    public async apiSysUserMenuDeletePost(body?: UserMenuInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<void>> {
-        return SysUserMenuApiFp(this.configuration).apiSysUserMenuDeletePost(body, options).then((request) => request(this.axios, this.basePath));
+    public async apiSysUserMenuDeleteByUserIdUserIdPost(userId: number, options?: AxiosRequestConfig) : Promise<AxiosResponse<void>> {
+        return SysUserMenuApiFp(this.configuration).apiSysUserMenuDeleteByUserIdUserIdPost(userId, options).then((request) => request(this.axios, this.basePath));
     }
     /**
      * 
-     * @summary 根据用户Id删除收藏菜单 🔖
-     * @param {number} userId 
+     * @summary 取消收藏菜单 🔖
+     * @param {UserMenuInput} [body] 
      * @param {*} [options] Override http request option.
      * @throws {RequiredError}
      * @memberof SysUserMenuApi
      */
-    public async apiSysUserMenuDeleteUserMenuByUserIdUserIdPost(userId: number, options?: AxiosRequestConfig) : Promise<AxiosResponse<void>> {
-        return SysUserMenuApiFp(this.configuration).apiSysUserMenuDeleteUserMenuByUserIdUserIdPost(userId, options).then((request) => request(this.axios, this.basePath));
+    public async apiSysUserMenuDeletePost(body?: UserMenuInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<void>> {
+        return SysUserMenuApiFp(this.configuration).apiSysUserMenuDeletePost(body, options).then((request) => request(this.axios, this.basePath));
     }
     /**
      * 

+ 1 - 0
Web/src/utils/axios-utils.ts

@@ -50,6 +50,7 @@ export const clearTokens = () => {
 export const axiosInstance: AxiosInstance = globalAxios;
 
 // 这里可以配置 axios 更多选项 =========================================
+axiosInstance.defaults.timeout = 1000 * 60 * 10; // 设置超时,默认 10 分钟
 
 // axios 请求拦截
 axiosInstance.interceptors.request.use(

+ 1 - 1
Web/src/views/home/widgets/components/index.ts

@@ -6,7 +6,7 @@ const resultComps: Record<string, Component> = {};
 
 // 使用 import.meta.glob 动态导入当前目录中的所有 .vue 文件,急切导入
 const requireComponent = import.meta.glob('./*.vue', { eager: true });
-console.log(requireComponent);
+// console.log(requireComponent);
 
 Object.keys(requireComponent).forEach((fileName: string) => {
 	// 处理文件名,去掉开头的 './' 和结尾的文件扩展名