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 @@
- {{ row.nickName?.slice(0, 1) ?? row.realName?.slice(0, 1) }}
+ {{ row.nickName?.slice(0, 1) ?? row.realName?.slice(0, 1) }}
- {{ $t('message.list.male') }}
+ {{ $t('message.list.male') }}
{{ $t('message.list.female') }}
{{ $t('message.list.unknown') }}