diff --git a/Admin.NET/Admin.NET.Core/Entity/SysPos.cs b/Admin.NET/Admin.NET.Core/Entity/SysPos.cs index 4f65a88b..32f976d9 100644 --- a/Admin.NET/Admin.NET.Core/Entity/SysPos.cs +++ b/Admin.NET/Admin.NET.Core/Entity/SysPos.cs @@ -29,6 +29,13 @@ public partial class SysPos : EntityTenant [MaxLength(64)] public string? Code { get; set; } + /// + /// 类别 + /// + [SugarColumn(ColumnDescription = "类别", Length = 64)] + [MaxLength(64)] + public string? Type { get; set; } + /// /// 排序 /// diff --git a/Admin.NET/Admin.NET.Core/Service/Org/SysOrgService.cs b/Admin.NET/Admin.NET.Core/Service/Org/SysOrgService.cs index 47fcddbc..a0b4aa60 100644 --- a/Admin.NET/Admin.NET.Core/Service/Org/SysOrgService.cs +++ b/Admin.NET/Admin.NET.Core/Service/Org/SysOrgService.cs @@ -104,7 +104,7 @@ public class SysOrgService : IDynamicApiController, ITransient public async Task> GetChildTree(long pid, int level) { var iSugarQueryable = _sysOrgRep.AsQueryable().OrderBy(u => new { u.OrderNo }); - return await iSugarQueryable.Where(u => u.Level < level).ToTreeAsync(u => u.Children, u => u.Pid, pid); + return await iSugarQueryable.Where(u => u.Level < level).ToChildListAsync(u => u.Pid, pid, true); } /// diff --git a/Admin.NET/Admin.NET.Core/Service/Pos/Dto/PosDto.cs b/Admin.NET/Admin.NET.Core/Service/Pos/Dto/PosDto.cs index 2ffbcd4e..054c525a 100644 --- a/Admin.NET/Admin.NET.Core/Service/Pos/Dto/PosDto.cs +++ b/Admin.NET/Admin.NET.Core/Service/Pos/Dto/PosDto.cs @@ -17,6 +17,7 @@ public class PosDto /// 名称 /// [ImporterHeader(Name = "名称")] + [Required(ErrorMessage = "名称不能为空")] [ExporterHeader(DisplayName = "名称", IsBold = true)] public string Name { get; set; } @@ -27,6 +28,13 @@ public class PosDto [ExporterHeader(DisplayName = "编码", IsBold = true)] public string Code { get; set; } + /// + /// 类别 + /// + [ImporterHeader(Name = "类别")] + [ExporterHeader(DisplayName = "类别", IsBold = true)] + public string Type { get; set; } + /// /// 排序 /// @@ -45,7 +53,6 @@ public class PosDto /// 状态 /// [ImporterHeader(Name = "状态")] - [Required(ErrorMessage = "状态不能为空")] [ValueMapping("启用", 1)] [ValueMapping("停用", 2)] [ExporterHeader(DisplayName = "状态", IsBold = true)] diff --git a/Admin.NET/Admin.NET.Core/Service/Pos/SysPosService.cs b/Admin.NET/Admin.NET.Core/Service/Pos/SysPosService.cs index 4c3e36bf..80afd19f 100644 --- a/Admin.NET/Admin.NET.Core/Service/Pos/SysPosService.cs +++ b/Admin.NET/Admin.NET.Core/Service/Pos/SysPosService.cs @@ -146,9 +146,15 @@ public class SysPosService : IDynamicApiController, ITransient if (res == null || res.Exception != null) throw Oops.Oh(res.Exception); - var importData = res.Data.ToList(); + var posList = new List(); + var importData = res.Data.ToList().GroupBy(u => new { u.Name, u.Type }).Select(u => u.First()).ToList(); // 以名称和类型除重 + foreach (var item in importData) + { + if (string.IsNullOrWhiteSpace(item.Name)) continue; + posList.Add(item.Adapt()); + } // 按照编码条件进行批量更新或者新增 - await _sysPosRep.Context.Storageable(importData.Adapt>()).WhereColumns(u => u.Code).ExecuteCommandAsync(); + await _sysPosRep.Context.Storageable(posList).WhereColumns(u => u.Code).ExecuteCommandAsync(); } /// diff --git a/Admin.NET/Admin.NET.Core/Service/User/SysUserService.cs b/Admin.NET/Admin.NET.Core/Service/User/SysUserService.cs index de4b6b2e..514e130c 100644 --- a/Admin.NET/Admin.NET.Core/Service/User/SysUserService.cs +++ b/Admin.NET/Admin.NET.Core/Service/User/SysUserService.cs @@ -467,6 +467,32 @@ public class SysUserService : IDynamicApiController, ITransient return await _sysUserExtOrgService.GetUserExtOrgList(userId); } + /// + /// 获取用户能看到的其他用户集合 🔖 + /// + /// + [DisplayName("获取用户能看到的其他用户集合")] + public async Task> GetOwnUserList() + { + // 获取用户拥有的机构集合 + var orgList = await _sysOrgService.GetUserOrgIdList(); + + return await _sysUserRep.AsQueryable() + .LeftJoin((u, a) => u.OrgId == a.Id) + .LeftJoin((u, a, b) => u.PosId == b.Id) + .Where(u => u.AccountType != AccountTypeEnum.SuperAdmin) + .Where(u => orgList.Contains(u.OrgId)) + .OrderBy(u => new { u.OrderNo, u.Id }) + .Select((u, a, b) => new UserOutput + { + OrgName = a.Name, + PosName = b.Name, + RoleName = SqlFunc.Subqueryable().LeftJoin((m, n) => m.RoleId == n.Id).Where(m => m.UserId == u.Id).SelectStringJoin((m, n) => n.Name, ","), + DomainAccount = SqlFunc.Subqueryable().Where(m => m.UserId == u.Id).Select(m => m.Account) + }, true) + .ToListAsync(); + } + /// /// 强制下线账号和失效Token /// diff --git a/Web/src/api-services/system/api.ts b/Web/src/api-services/system/api.ts index 4b1a2e67..2ffb0f3a 100644 --- a/Web/src/api-services/system/api.ts +++ b/Web/src/api-services/system/api.ts @@ -12,9 +12,6 @@ * Do not edit the class manually. */ export * from './apis/apijsonapi'; -export * from './apis/llmchange-model-test-api'; -export * from './apis/llmtest-api'; -export * from './apis/sse-service-api'; export * from './apis/sys-alipay-api'; export * from './apis/sys-auth-api'; export * from './apis/sys-cache-api'; diff --git a/Web/src/api-services/system/apis/llmchange-model-test-api.ts b/Web/src/api-services/system/apis/llmchange-model-test-api.ts deleted file mode 100644 index 92afd30e..00000000 --- a/Web/src/api-services/system/apis/llmchange-model-test-api.ts +++ /dev/null @@ -1,139 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Admin.NET 通用权限开发平台 - * 让 .NET 开发更简单、更通用、更流行。整合最新技术,模块插件式开发,前后端分离,开箱即用。
👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! - * - * 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 { AdminNETResultString } from '../models'; -import { LLMModelInput } from '../models'; -/** - * LLMChangeModelTestApi - axios parameter creator - * @export - */ -export const LLMChangeModelTestApiAxiosParamCreator = function (configuration?: Configuration) { - return { - /** - * 测试模型切换 - * @summary 演示大模型的使用,可以切换模型。 例如:可以切换到不同的模型,如:OpenAI、Azure OpenAI、Google Gemini等。 - * @param {LLMModelInput} [body] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - apiLLMChangeModelTestTestSwitchPost: async (body?: LLMModelInput, options: AxiosRequestConfig = {}): Promise => { - const localVarPath = `/api/lLMChangeModelTest/testSwitch`; - // 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, - }; - }, - } -}; - -/** - * LLMChangeModelTestApi - functional programming interface - * @export - */ -export const LLMChangeModelTestApiFp = function(configuration?: Configuration) { - return { - /** - * 测试模型切换 - * @summary 演示大模型的使用,可以切换模型。 例如:可以切换到不同的模型,如:OpenAI、Azure OpenAI、Google Gemini等。 - * @param {LLMModelInput} [body] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async apiLLMChangeModelTestTestSwitchPost(body?: LLMModelInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> { - const localVarAxiosArgs = await LLMChangeModelTestApiAxiosParamCreator(configuration).apiLLMChangeModelTestTestSwitchPost(body, options); - return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { - const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; - return axios.request(axiosRequestArgs); - }; - }, - } -}; - -/** - * LLMChangeModelTestApi - factory interface - * @export - */ -export const LLMChangeModelTestApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - return { - /** - * 测试模型切换 - * @summary 演示大模型的使用,可以切换模型。 例如:可以切换到不同的模型,如:OpenAI、Azure OpenAI、Google Gemini等。 - * @param {LLMModelInput} [body] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async apiLLMChangeModelTestTestSwitchPost(body?: LLMModelInput, options?: AxiosRequestConfig): Promise> { - return LLMChangeModelTestApiFp(configuration).apiLLMChangeModelTestTestSwitchPost(body, options).then((request) => request(axios, basePath)); - }, - }; -}; - -/** - * LLMChangeModelTestApi - object-oriented interface - * @export - * @class LLMChangeModelTestApi - * @extends {BaseAPI} - */ -export class LLMChangeModelTestApi extends BaseAPI { - /** - * 测试模型切换 - * @summary 演示大模型的使用,可以切换模型。 例如:可以切换到不同的模型,如:OpenAI、Azure OpenAI、Google Gemini等。 - * @param {LLMModelInput} [body] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof LLMChangeModelTestApi - */ - public async apiLLMChangeModelTestTestSwitchPost(body?: LLMModelInput, options?: AxiosRequestConfig) : Promise> { - return LLMChangeModelTestApiFp(this.configuration).apiLLMChangeModelTestTestSwitchPost(body, options).then((request) => request(this.axios, this.basePath)); - } -} diff --git a/Web/src/api-services/system/apis/llmtest-api.ts b/Web/src/api-services/system/apis/llmtest-api.ts deleted file mode 100644 index 24d11b4a..00000000 --- a/Web/src/api-services/system/apis/llmtest-api.ts +++ /dev/null @@ -1,130 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Admin.NET 通用权限开发平台 - * 让 .NET 开发更简单、更通用、更流行。整合最新技术,模块插件式开发,前后端分离,开箱即用。
👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! - * - * 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 { AdminNETResultString } from '../models'; -/** - * LLMTestApi - axios parameter creator - * @export - */ -export const LLMTestApiAxiosParamCreator = function (configuration?: Configuration) { - return { - /** - * 测试 - * @summary 演示使用常规大模型的使用,只能使用配置的默认模型,不能切换模型。 - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - apiLLMTestTestPost: async (options: AxiosRequestConfig = {}): Promise => { - const localVarPath = `/api/lLMTest/test`; - // 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; - } - - 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, - }; - }, - } -}; - -/** - * LLMTestApi - functional programming interface - * @export - */ -export const LLMTestApiFp = function(configuration?: Configuration) { - return { - /** - * 测试 - * @summary 演示使用常规大模型的使用,只能使用配置的默认模型,不能切换模型。 - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async apiLLMTestTestPost(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> { - const localVarAxiosArgs = await LLMTestApiAxiosParamCreator(configuration).apiLLMTestTestPost(options); - return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { - const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; - return axios.request(axiosRequestArgs); - }; - }, - } -}; - -/** - * LLMTestApi - factory interface - * @export - */ -export const LLMTestApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - return { - /** - * 测试 - * @summary 演示使用常规大模型的使用,只能使用配置的默认模型,不能切换模型。 - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async apiLLMTestTestPost(options?: AxiosRequestConfig): Promise> { - return LLMTestApiFp(configuration).apiLLMTestTestPost(options).then((request) => request(axios, basePath)); - }, - }; -}; - -/** - * LLMTestApi - object-oriented interface - * @export - * @class LLMTestApi - * @extends {BaseAPI} - */ -export class LLMTestApi extends BaseAPI { - /** - * 测试 - * @summary 演示使用常规大模型的使用,只能使用配置的默认模型,不能切换模型。 - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof LLMTestApi - */ - public async apiLLMTestTestPost(options?: AxiosRequestConfig) : Promise> { - return LLMTestApiFp(this.configuration).apiLLMTestTestPost(options).then((request) => request(this.axios, this.basePath)); - } -} diff --git a/Web/src/api-services/system/apis/sse-service-api.ts b/Web/src/api-services/system/apis/sse-service-api.ts deleted file mode 100644 index 4f008246..00000000 --- a/Web/src/api-services/system/apis/sse-service-api.ts +++ /dev/null @@ -1,134 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Admin.NET 通用权限开发平台 - * 让 .NET 开发更简单、更通用、更流行。整合最新技术,模块插件式开发,前后端分离,开箱即用。
👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! - * - * 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'; -/** - * SseServiceApi - axios parameter creator - * @export - */ -export const SseServiceApiAxiosParamCreator = function (configuration?: Configuration) { - return { - /** - * - * @param {number} id - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - sseChatIdGet: async (id: number, options: AxiosRequestConfig = {}): Promise => { - // verify required parameter 'id' is not null or undefined - if (id === null || id === undefined) { - throw new RequiredError('id','Required parameter id was null or undefined when calling sseChatIdGet.'); - } - const localVarPath = `/sse/chat/{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, - }; - }, - } -}; - -/** - * SseServiceApi - functional programming interface - * @export - */ -export const SseServiceApiFp = function(configuration?: Configuration) { - return { - /** - * - * @param {number} id - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async sseChatIdGet(id: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> { - const localVarAxiosArgs = await SseServiceApiAxiosParamCreator(configuration).sseChatIdGet(id, options); - return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { - const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; - return axios.request(axiosRequestArgs); - }; - }, - } -}; - -/** - * SseServiceApi - factory interface - * @export - */ -export const SseServiceApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - return { - /** - * - * @param {number} id - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async sseChatIdGet(id: number, options?: AxiosRequestConfig): Promise> { - return SseServiceApiFp(configuration).sseChatIdGet(id, options).then((request) => request(axios, basePath)); - }, - }; -}; - -/** - * SseServiceApi - object-oriented interface - * @export - * @class SseServiceApi - * @extends {BaseAPI} - */ -export class SseServiceApi extends BaseAPI { - /** - * - * @param {number} id - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof SseServiceApi - */ - public async sseChatIdGet(id: number, options?: AxiosRequestConfig) : Promise> { - return SseServiceApiFp(this.configuration).sseChatIdGet(id, options).then((request) => request(this.axios, this.basePath)); - } -} diff --git a/Web/src/api-services/system/apis/sys-user-api.ts b/Web/src/api-services/system/apis/sys-user-api.ts index a65b9199..5ef80480 100644 --- a/Web/src/api-services/system/apis/sys-user-api.ts +++ b/Web/src/api-services/system/apis/sys-user-api.ts @@ -23,6 +23,7 @@ import { AdminNETResultGrantRoleOutput } from '../models'; import { AdminNETResultInt32 } from '../models'; import { AdminNETResultInt64 } from '../models'; import { AdminNETResultListSysUserExtOrg } from '../models'; +import { AdminNETResultListUserOutput } from '../models'; import { AdminNETResultSqlSugarPagedListUserOutput } from '../models'; import { AdminNETResultString } from '../models'; import { AdminNETResultSysUser } from '../models'; @@ -374,6 +375,49 @@ export const SysUserApiAxiosParamCreator = function (configuration?: Configurati options: localVarRequestOptions, }; }, + /** + * + * @summary 获取用户能看到的其他用户集合 🔖 + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + apiSysUserOwnUserListGet: async (options: AxiosRequestConfig = {}): Promise => { + const localVarPath = `/api/sysUser/ownUserList`; + // 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 获取用户分页列表 🔖 @@ -811,6 +855,19 @@ export const SysUserApiFp = function(configuration?: Configuration) { return axios.request(axiosRequestArgs); }; }, + /** + * + * @summary 获取用户能看到的其他用户集合 🔖 + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async apiSysUserOwnUserListGet(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> { + const localVarAxiosArgs = await SysUserApiAxiosParamCreator(configuration).apiSysUserOwnUserListGet(options); + return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => { + const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url}; + return axios.request(axiosRequestArgs); + }; + }, /** * * @summary 获取用户分页列表 🔖 @@ -986,6 +1043,15 @@ export const SysUserApiFactory = function (configuration?: Configuration, basePa async apiSysUserOwnRoleListUserIdGet(userId: number, options?: AxiosRequestConfig): Promise> { return SysUserApiFp(configuration).apiSysUserOwnRoleListUserIdGet(userId, options).then((request) => request(axios, basePath)); }, + /** + * + * @summary 获取用户能看到的其他用户集合 🔖 + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async apiSysUserOwnUserListGet(options?: AxiosRequestConfig): Promise> { + return SysUserApiFp(configuration).apiSysUserOwnUserListGet(options).then((request) => request(axios, basePath)); + }, /** * * @summary 获取用户分页列表 🔖 @@ -1141,6 +1207,16 @@ export class SysUserApi extends BaseAPI { public async apiSysUserOwnRoleListUserIdGet(userId: number, options?: AxiosRequestConfig) : Promise> { return SysUserApiFp(this.configuration).apiSysUserOwnRoleListUserIdGet(userId, options).then((request) => request(this.axios, this.basePath)); } + /** + * + * @summary 获取用户能看到的其他用户集合 🔖 + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof SysUserApi + */ + public async apiSysUserOwnUserListGet(options?: AxiosRequestConfig) : Promise> { + return SysUserApiFp(this.configuration).apiSysUserOwnUserListGet(options).then((request) => request(this.axios, this.basePath)); + } /** * * @summary 获取用户分页列表 🔖 diff --git a/Web/src/api-services/system/models/add-pos-input.ts b/Web/src/api-services/system/models/add-pos-input.ts index 74b53a97..710a3548 100644 --- a/Web/src/api-services/system/models/add-pos-input.ts +++ b/Web/src/api-services/system/models/add-pos-input.ts @@ -102,6 +102,14 @@ export interface AddPosInput { */ code?: string | null; + /** + * 类别 + * + * @type {string} + * @memberof AddPosInput + */ + type?: string | null; + /** * 排序 * diff --git a/Web/src/api-services/system/models/admin-netresult-list-user-output.ts b/Web/src/api-services/system/models/admin-netresult-list-user-output.ts new file mode 100644 index 00000000..4be1d518 --- /dev/null +++ b/Web/src/api-services/system/models/admin-netresult-list-user-output.ts @@ -0,0 +1,71 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Admin.NET 通用权限开发平台 + * 让 .NET 开发更简单、更通用、更流行。整合最新技术,模块插件式开发,前后端分离,开箱即用。
👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! + * + * 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 { UserOutput } from './user-output'; + /** + * 全局返回结果 + * + * @export + * @interface AdminNETResultListUserOutput + */ +export interface AdminNETResultListUserOutput { + + /** + * 状态码 + * + * @type {number} + * @memberof AdminNETResultListUserOutput + */ + code?: number; + + /** + * 类型success、warning、error + * + * @type {string} + * @memberof AdminNETResultListUserOutput + */ + type?: string | null; + + /** + * 错误信息 + * + * @type {string} + * @memberof AdminNETResultListUserOutput + */ + message?: string | null; + + /** + * 数据 + * + * @type {Array} + * @memberof AdminNETResultListUserOutput + */ + result?: Array | null; + + /** + * 附加数据 + * + * @type {any} + * @memberof AdminNETResultListUserOutput + */ + extras?: any | null; + + /** + * 时间 + * + * @type {Date} + * @memberof AdminNETResultListUserOutput + */ + time?: Date; +} diff --git a/Web/src/api-services/system/models/index.ts b/Web/src/api-services/system/models/index.ts index 375f281a..e946c744 100644 --- a/Web/src/api-services/system/models/index.ts +++ b/Web/src/api-services/system/models/index.ts @@ -94,6 +94,7 @@ export * from './admin-netresult-list-sys-user-ldap'; export * from './admin-netresult-list-sys-wechat-refund'; export * from './admin-netresult-list-table-output'; export * from './admin-netresult-list-tree-node'; +export * from './admin-netresult-list-user-output'; export * from './admin-netresult-login-output'; export * from './admin-netresult-login-user-output'; export * from './admin-netresult-notice-output'; @@ -309,7 +310,6 @@ export * from './job-trigger-input'; export * from './join-config'; export * from './join-config-table-column'; export * from './key-value-pair-string-string'; -export * from './llmmodel-input'; export * from './layout-kind'; export * from './list-schedule-input'; export * from './log-input'; diff --git a/Web/src/api-services/system/models/llmmodel-input.ts b/Web/src/api-services/system/models/llmmodel-input.ts deleted file mode 100644 index 65674cfa..00000000 --- a/Web/src/api-services/system/models/llmmodel-input.ts +++ /dev/null @@ -1,38 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Admin.NET 通用权限开发平台 - * 让 .NET 开发更简单、更通用、更流行。整合最新技术,模块插件式开发,前后端分离,开箱即用。
👮不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! - * - * 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. - */ - - /** - * LLM模型输入 用途:切换模型 - * - * @export - * @interface LLMModelInput - */ -export interface LLMModelInput { - - /** - * 产品名称 - * - * @type {string} - * @memberof LLMModelInput - */ - productName?: string | null; - - /** - * 模型ID - * - * @type {string} - * @memberof LLMModelInput - */ - modelId?: string | null; -} diff --git a/Web/src/api-services/system/models/page-pos-output.ts b/Web/src/api-services/system/models/page-pos-output.ts index 65c19df6..a7c213f8 100644 --- a/Web/src/api-services/system/models/page-pos-output.ts +++ b/Web/src/api-services/system/models/page-pos-output.ts @@ -110,6 +110,14 @@ export interface PagePosOutput { */ code?: string | null; + /** + * 类别 + * + * @type {string} + * @memberof PagePosOutput + */ + type?: string | null; + /** * 排序 * diff --git a/Web/src/api-services/system/models/pos-output.ts b/Web/src/api-services/system/models/pos-output.ts index 6d2ec760..7176513a 100644 --- a/Web/src/api-services/system/models/pos-output.ts +++ b/Web/src/api-services/system/models/pos-output.ts @@ -110,6 +110,14 @@ export interface PosOutput { */ code?: string | null; + /** + * 类别 + * + * @type {string} + * @memberof PosOutput + */ + type?: string | null; + /** * 排序 * diff --git a/Web/src/api-services/system/models/update-pos-input.ts b/Web/src/api-services/system/models/update-pos-input.ts index 5585684a..49a26348 100644 --- a/Web/src/api-services/system/models/update-pos-input.ts +++ b/Web/src/api-services/system/models/update-pos-input.ts @@ -102,6 +102,14 @@ export interface UpdatePosInput { */ code?: string | null; + /** + * 类别 + * + * @type {string} + * @memberof UpdatePosInput + */ + type?: string | null; + /** * 排序 * diff --git a/Web/src/views/system/pos/component/editPos.vue b/Web/src/views/system/pos/component/editPos.vue index 85a99c8a..01b98b0f 100644 --- a/Web/src/views/system/pos/component/editPos.vue +++ b/Web/src/views/system/pos/component/editPos.vue @@ -19,6 +19,11 @@ + + + + + diff --git a/Web/src/views/system/pos/index.vue b/Web/src/views/system/pos/index.vue index 07b68509..edc59ea7 100644 --- a/Web/src/views/system/pos/index.vue +++ b/Web/src/views/system/pos/index.vue @@ -152,6 +152,7 @@ const options = useVxeTable( { field: 'seq', type: 'seq', title: i18n.t('message.list.seq'), width: 60, fixed: 'left' }, { field: 'name', title: i18n.t('message.list.jobTitle'), minWidth: 200, showOverflow: 'tooltip' }, { field: 'code', title: i18n.t('message.list.positionCode'), minWidth: 200, showOverflow: 'tooltip' }, + { field: 'type', title: i18n.t('message.list.positionType'), minWidth: 200, showOverflow: 'tooltip' }, { field: 'userCount', title: i18n.t('message.list.staffCount'), showOverflow: 'tooltip', slots: { default: 'row_userCount' } }, { field: 'userList', title: i18n.t('message.list.staffDetails'), showOverflow: 'tooltip', slots: { default: 'row_userList' } }, { field: 'orderNo', title: i18n.t('message.list.orderNo'), width: 80, showOverflow: 'tooltip' }, diff --git a/Web/src/views/system/user/component/editUser.vue b/Web/src/views/system/user/component/editUser.vue index 05a6bac1..16fd042a 100644 --- a/Web/src/views/system/user/component/editUser.vue +++ b/Web/src/views/system/user/component/editUser.vue @@ -71,7 +71,7 @@ - + @@ -120,7 +120,7 @@ - + diff --git a/Web/src/views/system/user/index.vue b/Web/src/views/system/user/index.vue index d8ead86a..4b8209cb 100644 --- a/Web/src/views/system/user/index.vue +++ b/Web/src/views/system/user/index.vue @@ -55,10 +55,10 @@