diff --git a/code/WebApp/vanilla/api/user.js b/code/WebApp/vanilla/api/user.js index e830bbdd..d245865a 100644 --- a/code/WebApp/vanilla/api/user.js +++ b/code/WebApp/vanilla/api/user.js @@ -1,5 +1,5 @@ import router from "../router/index.js"; -import { get, post } from "../request/index.js"; +import request, { get, post } from "../request/index.js"; import jwt_decode from "../lib/jwt-decode/jwt-decode.esm.js"; import qs from "../lib/qs/shim.js"; import { useAppStore } from "../store/index.js"; @@ -46,7 +46,9 @@ const logout = () => { }; const getUser = async () => { - const result = await get("abp/application-configuration"); + const result = await request("abp/application-configuration", null, { + method: "GET", + }); const data = result.data; const user = {}; user.id = data.currentUser.id; diff --git a/code/WebApp/vanilla/components/form/form-input.js b/code/WebApp/vanilla/components/form/form-input.js index 6d133fc6..87d16b3d 100644 --- a/code/WebApp/vanilla/components/form/form-input.js +++ b/code/WebApp/vanilla/components/form/form-input.js @@ -8,8 +8,9 @@ export default { @@ -70,7 +71,7 @@ export default { }); /*start*/ const getDisabled = () => { - if (props.mode==='details') { + if (props.mode === "details") { return true; } if (props.mode === "update" && props.schema.readOnly) { @@ -92,7 +93,7 @@ export default { } else if (props.schema.url) { try { const url = `${props.schema.url}`; - const result = await request(url, null, { method: "get" }); + const result = await request(url, null, { method: "GET" }); options.value = result.data?.items.map((o) => ({ value: o[props.schema.value], label: o[props.schema.label], diff --git a/code/WebApp/vanilla/components/icon/index.js b/code/WebApp/vanilla/components/icon/index.js index df178a82..2f446c3d 100644 --- a/code/WebApp/vanilla/components/icon/index.js +++ b/code/WebApp/vanilla/components/icon/index.js @@ -16,27 +16,21 @@ export default { }, setup(props) { const svg = ref(null); + const appStore = useAppStore(); onMounted(async () => { if (!props.name.startsWith("ep-")) { try { const url = `./assets/icons/${props.name}.svg`; - navigator.locks.request(url, async () => { - const appStore = useAppStore(); - if (appStore.cache.has(url)) { - svg.value = appStore.cache.get(url); - } else { - const response = await fetch(url); - if (response.ok && response.status === 200) { - svg.value = await response.text(); - appStore.cache.set(url, svg.value); - } - } - }); + if (!appStore.cache.has(url)) { + const response = await fetch(url); + const result = await response.text(); + appStore.cache.set(url, result); + } + svg.value = appStore.cache.get(url); } catch (error) { console.log(error); - if (!svg.value) { - svg.value = ``; - } + } finally { + svg.value ??= ``; } } }); diff --git a/code/WebApp/vanilla/components/list/index.js b/code/WebApp/vanilla/components/list/index.js index 82a456cc..d9d4125b 100644 --- a/code/WebApp/vanilla/components/list/index.js +++ b/code/WebApp/vanilla/components/list/index.js @@ -352,9 +352,11 @@ export default { const router = useRouter(); const { t } = useI18n(); const appStore = useAppStore(); - const buttons = ref(props.buttons ?? route.meta.children.filter((o) => o.meta.hasPermission)); + // 注释一下代码暂停权限验证 + // const buttons = ref(props.buttons ?? route.meta.children.filter((o) => o.meta.hasPermission)); + // 添加下行代码暂停权限验证 + const buttons = ref(props.buttons ?? route.meta.children); const baseUrl = props.controller ?? `${route.meta.path}`; - const indexUrl = props.indexUrl ?? `${baseUrl}/index`; const queryModel = ref({}); const sortColumns = ref(new Map()); const querySchema = ref(props.querySchema); @@ -476,7 +478,8 @@ export default { editFormModel.value = schemaToModel(config.edit.schema); } else { const url = `${config.edit.updateUrl ?? config.query.url}/${rows[0].id}`; - editFormModel.value = (await request(url, null, { method: "get" })).data; + editFormModel.value = (await request(url, null, { method: "GET" })).data; + editFormModel.value.id = rows[0].id; } editFormTitle.value = `${t(item.path)}${config.edit.schema.title}`; dialogVisible.value = true; @@ -516,8 +519,11 @@ export default { const valid = await editFormRef.value.validate(); if (valid) { editFormloading.value = true; - const url = + let url = (editFormMode.value === "create" ? config.edit.createUrl : config.edit.updateUrl) ?? config.query.url; + if (editFormMode.value === "update") { + url = `${url}/${editFormModel.value.id}`; + } const method = editFormMode.value === "create" ? config.edit.createMethod : config.edit.updateMethod; const result = await request(url, editFormModel.value, { method }); if (result.errors) { @@ -617,9 +623,11 @@ export default { return false; }; onMounted(async () => { - for (const item of route.meta.children) { - if (item.meta.disabled?.constructor === String) { - item.meta.disabled = await importFunction(item.meta.disabled); + if (route.meta.children?.length) { + for (const item of route.meta.children) { + if (item.meta.disabled?.constructor === String) { + item.meta.disabled = await importFunction(item.meta.disabled); + } } } pushQueryList(); diff --git a/code/WebApp/vanilla/models/code-setting.js b/code/WebApp/vanilla/models/code-setting.js new file mode 100644 index 00000000..561da745 --- /dev/null +++ b/code/WebApp/vanilla/models/code-setting.js @@ -0,0 +1,86 @@ +const schema = { + title: "通用代码", + type: "object", + properties: { + userName: { + title: "项目", + type: "string", + readOnly: true, + showForList: true, + rules: [ + { + required: true, + }, + ], + }, + userName: { + title: "值", + type: "string", + readOnly: true, + showForList: true, + rules: [ + { + required: true, + }, + ], + }, + name: { + title: "描述", + type: "string", + showForList: true, + rules: [ + { + required: true, + }, + ], + }, + }, +}; + +const url = "base/code-settings"; +const createUrl = url; +const updateUrl = url; +const deleteUrl = url; +const method = "GET"; +const createMethod = "POST"; +const updateMethod = "PUT"; +const deleteMethod = "DELETE"; + +export default function () { + return { + query: { + url, + method, + schema: { + title: "通用代码", + type: "object", + properties: { + filter: { + title: "项目", + type: "string", + }, + skipCount: { + hidden: true, + default: 0, + }, + maxResultCount: { + hidden: true, + default: 10, + }, + }, + }, + }, + table: { + schema: schema, + }, + edit: { + createUrl, + updateUrl, + deleteUrl, + createMethod, + updateMethod, + deleteMethod, + schema: schema, + }, + }; +} diff --git a/code/WebApp/vanilla/models/role.js b/code/WebApp/vanilla/models/role.js index c574f7c3..e65832bb 100644 --- a/code/WebApp/vanilla/models/role.js +++ b/code/WebApp/vanilla/models/role.js @@ -23,7 +23,7 @@ export default function () { return { query: { url: "identity/roles", - method: "get", + method: "GET", schema: { title: "用户", type: "object", diff --git a/code/WebApp/vanilla/models/user.js b/code/WebApp/vanilla/models/user.js index 08960eba..8c2fcfa9 100644 --- a/code/WebApp/vanilla/models/user.js +++ b/code/WebApp/vanilla/models/user.js @@ -5,7 +5,7 @@ const schema = { userName: { title: "用户名", type: "string", - readOnly: true, // + readOnly: true, showForList: true, rules: [ { @@ -20,6 +20,7 @@ const schema = { password: { title: "密码", type: "string", + readOnly: true, input: "password", }, name: { @@ -52,18 +53,18 @@ const schema = { }, ], }, - roleNames: { - title: "角色", - type: "array", - input: "select", - multiple: true, - url: "identity/roles/all", - value: "name", - label: "name", - items: { - type: "string", - }, - }, + // roleNames: { + // title: "角色", + // type: "array", + // input: "select", + // multiple: true, + // url: "identity/roles/all", + // value: "name", + // label: "name", + // items: { + // type: "string", + // }, + // }, }, }; @@ -71,10 +72,10 @@ const url = "base/user"; const createUrl = url; const updateUrl = url; const deleteUrl = "api/identity/users"; -const method = "get"; -const createMethod = "post"; -const updateMethod = "put"; -const deleteMethod = "delete"; +const method = "GET"; +const createMethod = "POST"; +const updateMethod = "PUT"; +const deleteMethod = "DELETE"; export default function () { return { diff --git a/code/WebApp/vanilla/request/index.js b/code/WebApp/vanilla/request/index.js index 4c9a8ab7..dc9e51e3 100644 --- a/code/WebApp/vanilla/request/index.js +++ b/code/WebApp/vanilla/request/index.js @@ -113,7 +113,6 @@ async function request(url, data, options, withoutToken = false) { method: "POST", headers: { "Accept-Language": "zh-Hans", - "Content-Type": "application/json", }, }; if (options) { @@ -121,17 +120,17 @@ async function request(url, data, options, withoutToken = false) { } if (defaultOptions.method === "GET" && data) { url = `${url}?${qs.stringify(data)}`; - } - if (defaultOptions.method === "POST") { - if (data instanceof FormData) { - delete defaultOptions.headers["Content-Type"]; - } + } else { if (defaultOptions.headers["Content-Type"]?.startsWith("application/x-www-form-urlencoded")) { defaultOptions.body = qs.stringify(data); } else if (defaultOptions.headers["Content-Type"]?.startsWith("application/json")) { defaultOptions.body = JSON.stringify(data); - } else { + } else if (data instanceof FormData) { + delete defaultOptions.headers["Content-Type"]; defaultOptions.body = data; + } else if (data) { + defaultOptions.headers["Content-Type"] = "application/json"; + defaultOptions.body = JSON.stringify(data); } } if (!withoutToken) { diff --git a/code/WebApp/vanilla/router/index.js b/code/WebApp/vanilla/router/index.js index 8d1fcca7..61294c3d 100644 --- a/code/WebApp/vanilla/router/index.js +++ b/code/WebApp/vanilla/router/index.js @@ -49,11 +49,14 @@ router.beforeEach(async (to, from, next) => { if (!(await isLogin())) { next({ path: "/login", query: { redirect: to.fullPath } }); } else { - if (!to.meta.public && to.meta.hasPermission === false) { - next({ path: "/403", query: { redirect: to.fullPath } }); - } else { - next(); - } + // 注释以下代码暂停权限验证 + // if (!to.meta.public && to.meta.hasPermission === false) { + // next({ path: "/403", query: { redirect: to.fullPath } }); + // } else { + // next(); + // } + // 添加一下代码暂停权限验证 + next(); } } else { next(); diff --git a/code/WebApp/vanilla/router/routes.js b/code/WebApp/vanilla/router/routes.js index ed43f2aa..1dafad91 100644 --- a/code/WebApp/vanilla/router/routes.js +++ b/code/WebApp/vanilla/router/routes.js @@ -55,50 +55,68 @@ export default [ isTop: true, }, }, - ], - }, - { - path: "role", - meta: { - type: "page", - title: "角色管理", - icon: "file", - permission: "AbpIdentity.Users", - }, - children: [ - { - path: "create", - meta: { - type: "button", - title: "新建", - icon: "file", - permission: "AbpIdentity.Users.Create", - isTop: true, - }, - }, { - path: "update", + path: "%s/reset-password", meta: { type: "button", - title: "编辑", + title: "重置密码", icon: "file", - htmlClass: "el-button--primary", - permission: "AbpIdentity.Users.Update", - disabled: `(o) => o.isStatic`, - }, - }, - { - path: "delete", - meta: { - type: "button", - title: "删除", - icon: "file", - permission: "AbpIdentity.Users.Delete", - disabled: `(o) => o.isStatic`, + permission: "reset-password?", + method: "PUT", }, }, ], }, + // { + // path: "role", + // meta: { + // type: "page", + // title: "角色管理", + // icon: "file", + // permission: "AbpIdentity.Users", + // }, + // children: [ + // { + // path: "create", + // meta: { + // type: "button", + // title: "新建", + // icon: "file", + // permission: "AbpIdentity.Users.Create", + // isTop: true, + // }, + // }, + // { + // path: "update", + // meta: { + // type: "button", + // title: "编辑", + // icon: "file", + // htmlClass: "el-button--primary", + // permission: "AbpIdentity.Users.Update", + // disabled: `(o) => o.isStatic`, + // }, + // }, + // { + // path: "delete", + // meta: { + // type: "button", + // title: "删除", + // icon: "file", + // permission: "AbpIdentity.Users.Delete", + // disabled: `(o) => o.isStatic`, + // }, + // }, + // ], + // }, + { + path: "code-setting", + meta: { + type: "page", + title: "通用代码", + icon: "file", + }, + }, ], }, ]; diff --git a/code/WebApp/vanilla/utils/validation.js b/code/WebApp/vanilla/utils/validation.js index 29bd903a..5155c275 100644 --- a/code/WebApp/vanilla/utils/validation.js +++ b/code/WebApp/vanilla/utils/validation.js @@ -80,10 +80,10 @@ const validators = { } else { const config = { url: rule.url, - method: rule.method ?? "get", + method: rule.method ?? "GET", }; const data = { [rule.field]: value }; - if (config.method === "get") { + if (config.method === "GET") { config.params = data; } else { config.data = data; diff --git a/code/WebApp/vanilla/views/base-data/code-setting.js b/code/WebApp/vanilla/views/base-data/code-setting.js new file mode 100644 index 00000000..bab632ca --- /dev/null +++ b/code/WebApp/vanilla/views/base-data/code-setting.js @@ -0,0 +1,28 @@ +import AppList from "../../components/list/index.js"; +import html from "html"; +import useConfig from "../../models/code-setting.js"; +import request from "../../request/index.js"; +import { format } from "../../utils/index.js"; +import { ElMessage } from "element-plus"; + +export default { + components: { AppList }, + template: html``, + setup() { + // 变量定义 + const config = useConfig(); + // 函数定义 + const onCommand = async (item, rows) => { + console.log(item.path, item, rows); + if (item.path === "%s/reset-password") { + const url = format(item.path, rows[0].id); + await request(`base/user/${url}`, null, { method: item.meta.method }); + ElMessage({ + type: "info", + message: format("用户%s的密码已经成功重置为123456", rows[0].userName), + }); + } + }; + return { config, onCommand }; + }, +}; diff --git a/code/WebApp/vanilla/views/base-data/user.js b/code/WebApp/vanilla/views/base-data/user.js index 414d4630..e6df244e 100644 --- a/code/WebApp/vanilla/views/base-data/user.js +++ b/code/WebApp/vanilla/views/base-data/user.js @@ -1,6 +1,9 @@ import AppList from "../../components/list/index.js"; import html from "html"; import useConfig from "../../models/user.js"; +import request from "../../request/index.js"; +import { format } from "../../utils/index.js"; +import { ElMessage } from "element-plus"; export default { components: { AppList }, @@ -9,8 +12,16 @@ export default { // 变量定义 const config = useConfig(); // 函数定义 - const onCommand = (item, rows) => { + const onCommand = async (item, rows) => { console.log(item.path, item, rows); + if (item.path === "%s/reset-password") { + const url = format(item.path, rows[0].id); + await request(`base/user/${url}`, null, { method: item.meta.method }); + ElMessage({ + type: "info", + message: format("用户%s的密码已经成功重置为123456", rows[0].userName), + }); + } }; return { config, onCommand }; }, diff --git a/code/WebApp/vanilla/views/login.js b/code/WebApp/vanilla/views/login.js index 832c0adb..0f1c2a05 100644 --- a/code/WebApp/vanilla/views/login.js +++ b/code/WebApp/vanilla/views/login.js @@ -36,12 +36,14 @@ export default { const result = await request(url, model, { method: "POST" }, true); if (!result.errors) { appStore.token = result.data.accessToken; - setAccessToken(appStore.token); - //setRefreshToken(result.data.refresh_token); - appStore.user = await getUser(); - await refreshRouter(); - const redirect = router.currentRoute.value.query?.redirect ?? "/"; - router.push(redirect); + if (appStore.token) { + setAccessToken(appStore.token); + //setRefreshToken(result.data.refresh_token); + appStore.user = await getUser(); + await refreshRouter(); + const redirect = router.currentRoute.value.query?.redirect ?? "/"; + router.push(redirect); + } } callback(result.errors); } catch (error) { diff --git a/code/src/AuthServer/AuthServer.Host/appsettings.json b/code/src/AuthServer/AuthServer.Host/appsettings.json index 1a4089cd..ca902997 100644 --- a/code/src/AuthServer/AuthServer.Host/appsettings.json +++ b/code/src/AuthServer/AuthServer.Host/appsettings.json @@ -1,6 +1,6 @@ { "ConnectionStrings": { - "Default": "Server=dev.ccwin-in.com,13319;Database=BJABP;User ID=ccwin-in;Password=Microsoft@2022;Trusted_Connection=False;TrustServerCertificate=True" + "Default": "Server=localhost;Database=BJABP;User ID=sa;Password=aA123456!;Trusted_Connection=False;TrustServerCertificate=True" }, "CorsOrigins": "http://localhost:9527,http://dev.ccwin-in.com:10588,http://localhost:44307", "ElasticSearch": { diff --git a/code/src/Modules/BaseService/BaseService.Host/appsettings.json b/code/src/Modules/BaseService/BaseService.Host/appsettings.json index 73b75822..5901cf11 100644 --- a/code/src/Modules/BaseService/BaseService.Host/appsettings.json +++ b/code/src/Modules/BaseService/BaseService.Host/appsettings.json @@ -1,8 +1,9 @@ { "AuthServer": { "Authority": "http://dev.ccwin-in.com:10580", + //"Authority": "http://localhost:10130", "ClientId": "basic-web", - "ClientSecret": "" + "ClientSecret": "1q2w3e*" }, "App": { "CorsOrigins": "http://localhost:9527,http://dev.ccwin-in.com:10588,http://localhost:44307" diff --git a/docs/12.sql b/docs/12.sql new file mode 100644 index 00000000..da14e750 Binary files /dev/null and b/docs/12.sql differ diff --git a/docs/demo/src/WTA.Application/Identity/Controllers/CodeSettingController.cs b/docs/demo/src/WTA.Application/Identity/Controllers/CodeSettingController.cs new file mode 100644 index 00000000..db3a32b9 --- /dev/null +++ b/docs/demo/src/WTA.Application/Identity/Controllers/CodeSettingController.cs @@ -0,0 +1,32 @@ +using System.ComponentModel.DataAnnotations; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Logging; +using WTA.Application.Identity.Entities.SystemManagement; +using WTA.Shared.Application; +using WTA.Shared.Controllers; +using WTA.Shared.Data; + +namespace WTA.Application.Identity.Controllers; + +public class CodeSettingController : GenericController +{ + public CodeSettingController(ILogger logger, IRepository repository) : base(logger, repository) + { + } + + [Display(Name = "导出Excel")] + public override IActionResult Export([FromBody] PaginationModel model, bool includeAll = false, bool includeDeleted = false) + { + return base.Export(model, includeAll, includeDeleted); + } + [Display(Name = "搜索")] + public override IActionResult Index([FromBody] PaginationModel model) + { + return base.Index(model); + } + [Display(Name = "新增")] + public override IActionResult Create([FromBody] CodeSetting model) + { + return base.Create(model); + } +} diff --git a/docs/demo/src/WTA.Application/Identity/Data/IdentityDbSeed.cs b/docs/demo/src/WTA.Application/Identity/Data/IdentityDbSeed.cs index 8c1d841c..214a9e21 100644 --- a/docs/demo/src/WTA.Application/Identity/Data/IdentityDbSeed.cs +++ b/docs/demo/src/WTA.Application/Identity/Data/IdentityDbSeed.cs @@ -172,10 +172,20 @@ public class IdentityDbSeed : IDbSeed context.Set().Add(new INVOICE_NOT_SETTLE { InvGroupNum = "分组号测试数据一", Version = "测试数据", SettleGroupNum = "测试数据", LU = "测试数据", LU1 = "测试数据", Extend1 = "测试数据", Extend2 = "测试数据" }); context.Set().Add(new INVOICE_NOT_SETTLE { InvGroupNum = "分组号测试数据二", Version = "测试数据", SettleGroupNum = "测试数据", LU = "测试数据", LU1 = "测试数据", Extend1 = "测试数据", Extend2 = "测试数据" }); context.Set().Add(new HBPO_SE_REPORT { KeyCode = "测试数据", Version = "测试数据", LU = "测试数据", PN = "测试数据", SeqNumber = "测试数据", AssemblyCode = "测试数据", InjectionCode = "测试数据", BeginDate = new DateTime(), ShippingDate = new DateTime(), WmsBillNum = "测试数据" }); + context.Set().Add(new BBAC_SE_REPORT { KeyCode = "测试数据", Version = "测试数据", LU = "测试数据", PN = "测试数据", SeqNumber = "测试数据", AssemblyCode = "测试数据", InjectionCode = "测试数据", BeginDate = new DateTime(), ShippingDate = new DateTime(), WmsBillNum = "测试数据" }); context.Set().Add(new PUB_SA { Version = "测试数据", State = "测试数据", BillNum = "1号测试数据" }); context.Set().Add(new PUB_SA { Version = "测试数据", State = "测试数据", BillNum = "2号测试数据" }); + context.Set().Add(new PUB_SA { Version = "测试数据", State = "测试数据", BillNum = "3号测试数据" }); + context.Set().Add(new PUB_SA { Version = "测试数据", State = "测试数据", BillNum = "一号测试数据" }); + context.Set().Add(new PUB_SA { Version = "测试数据", State = "测试数据", BillNum = "二号测试数据" }); + context.Set().Add(new PUB_SA { Version = "测试数据", State = "测试数据", BillNum = "三号测试数据" }); context.Set().Add(new PUB_SA_DETAIL { KeyCode = "测试数据", Version = "测试数据", BillNum = "1号测试数据", LU = "测试数据", PN = "测试数据", Site = "测试数据", InvGroupNum = "测试数据", SettleDate = new DateTime(), Extend1 = "测试数据", Extend2 = "测试数据", Extend3 = "测试数据", GroupNum = "测试数据" }); context.Set().Add(new PUB_SA_DETAIL { KeyCode = "测试数据", Version = "测试数据", BillNum = "2号测试数据", LU = "测试数据", PN = "测试数据", Site = "测试数据", InvGroupNum = "测试数据", SettleDate = new DateTime(), Extend1 = "测试数据", Extend2 = "测试数据", Extend3 = "测试数据", GroupNum = "测试数据" }); + context.Set().Add(new PUB_SA_DETAIL { KeyCode = "测试数据", Version = "测试数据", BillNum = "3号测试数据", LU = "测试数据", PN = "测试数据", Site = "测试数据", InvGroupNum = "测试数据", SettleDate = new DateTime(), Extend1 = "测试数据", Extend2 = "测试数据", Extend3 = "测试数据", GroupNum = "测试数据" }); + context.Set().Add(new PUB_SA_DETAIL { KeyCode = "测试数据", Version = "测试数据", BillNum = "一号测试数据", LU = "测试数据", PN = "测试数据", Site = "测试数据", InvGroupNum = "测试数据", SettleDate = new DateTime(), Extend1 = "测试数据", Extend2 = "测试数据", Extend3 = "测试数据", GroupNum = "测试数据" }); + context.Set().Add(new PUB_SA_DETAIL { KeyCode = "测试数据", Version = "测试数据", BillNum = "二号测试数据", LU = "测试数据", PN = "测试数据", Site = "测试数据", InvGroupNum = "测试数据", SettleDate = new DateTime(), Extend1 = "测试数据", Extend2 = "测试数据", Extend3 = "测试数据", GroupNum = "测试数据" }); + context.Set().Add(new PUB_SA_DETAIL { KeyCode = "测试数据", Version = "测试数据", BillNum = "三号测试数据", LU = "测试数据", PN = "测试数据", Site = "测试数据", InvGroupNum = "测试数据", SettleDate = new DateTime(), Extend1 = "测试数据", Extend2 = "测试数据", Extend3 = "测试数据", GroupNum = "测试数据" }); + } private static void InitDictionaries(DbContext context) diff --git a/docs/demo/src/WTA.Application/Identity/Entities/SystemManagement/BBAC_SE_DETAIL.cs b/docs/demo/src/WTA.Application/Identity/Entities/SystemManagement/BBAC_SE_DETAIL.cs index 4d2a8004..f84ac70e 100644 --- a/docs/demo/src/WTA.Application/Identity/Entities/SystemManagement/BBAC_SE_DETAIL.cs +++ b/docs/demo/src/WTA.Application/Identity/Entities/SystemManagement/BBAC_SE_DETAIL.cs @@ -5,7 +5,7 @@ using WTA.Shared.Domain; namespace WTA.Application.Identity.Entities.SystemManagement; -[Order(4)] +[Order(2)] [JISBBACDataInputGroup] [Display(Name = "JIS发运数据")] //BBAC发运单 diff --git a/docs/demo/src/WTA.Application/Identity/Entities/SystemManagement/CodeSetting.cs b/docs/demo/src/WTA.Application/Identity/Entities/SystemManagement/CodeSetting.cs new file mode 100644 index 00000000..ca38904d --- /dev/null +++ b/docs/demo/src/WTA.Application/Identity/Entities/SystemManagement/CodeSetting.cs @@ -0,0 +1,29 @@ +using System.ComponentModel.DataAnnotations; +using WTA.Shared.Attributes; +using WTA.Shared.Domain; + +namespace WTA.Application.Identity.Entities.SystemManagement; + +[SystemManagement] +[Order(4)] +[Display(Name = "通用代码")] +public class CodeSetting : BaseEntity +{ + /// + /// 项目 + /// + [Display(Name = "项目")] + public string Project { set; get; } = null!; + + /// + /// 值 + /// + [Display(Name = "值")] + public string Value { set; get; } = null!; + + /// + /// 描述 + /// + [Display(Name = "描述")] + public string Description { set; get; } = null!; +} diff --git a/docs/demo/src/WTA.Application/Identity/Entities/SystemManagement/HBPO_NOT_SA_DETAIL.cs b/docs/demo/src/WTA.Application/Identity/Entities/SystemManagement/HBPO_NOT_SA_DETAIL.cs index 98177610..c3613e89 100644 --- a/docs/demo/src/WTA.Application/Identity/Entities/SystemManagement/HBPO_NOT_SA_DETAIL.cs +++ b/docs/demo/src/WTA.Application/Identity/Entities/SystemManagement/HBPO_NOT_SA_DETAIL.cs @@ -1,5 +1,6 @@ using System.ComponentModel.DataAnnotations; using WTA.Application.Identity.Entities.SystemManagement.Group; +using WTA.Shared.Attributes; using WTA.Shared.Domain; namespace WTA.Application.Identity.Entities.SystemManagement; @@ -29,6 +30,7 @@ namespace WTA.Application.Identity.Entities.SystemManagement; // [Display(Name = "明细记录行数")] // public string RecordCount { get; set; } = null!; //} +[Order(2)] [JISHBPOSettlementInvoicingGroup] [Display(Name = "不可结算单")] //HBPO不可结算导入明细 diff --git a/docs/demo/src/WTA.Application/Identity/Entities/SystemManagement/HBPO_SA.cs b/docs/demo/src/WTA.Application/Identity/Entities/SystemManagement/HBPO_SA.cs index 7fa6e32d..74489aae 100644 --- a/docs/demo/src/WTA.Application/Identity/Entities/SystemManagement/HBPO_SA.cs +++ b/docs/demo/src/WTA.Application/Identity/Entities/SystemManagement/HBPO_SA.cs @@ -4,6 +4,7 @@ using WTA.Shared.Attributes; using WTA.Shared.Domain; namespace WTA.Application.Identity.Entities.SystemManagement; +[Order(1)] [JISHBPODataInputGroup] [Display(Name = "JIS结算数据")] //HBPO结算导入 diff --git a/docs/demo/src/WTA.Application/Identity/Entities/SystemManagement/HBPO_SE_DETAIL.cs b/docs/demo/src/WTA.Application/Identity/Entities/SystemManagement/HBPO_SE_DETAIL.cs index 55c5bf25..2b543d5e 100644 --- a/docs/demo/src/WTA.Application/Identity/Entities/SystemManagement/HBPO_SE_DETAIL.cs +++ b/docs/demo/src/WTA.Application/Identity/Entities/SystemManagement/HBPO_SE_DETAIL.cs @@ -1,9 +1,10 @@ using System.ComponentModel.DataAnnotations; using WTA.Application.Identity.Entities.SystemManagement.Group; +using WTA.Shared.Attributes; using WTA.Shared.Domain; namespace WTA.Application.Identity.Entities.SystemManagement; - +[Order(2)] [Display(Name = "JIS发运数据")] //HBPO发运数据 [JISHBPODataInputGroup] diff --git a/docs/demo/src/WTA.Application/Identity/Entities/SystemManagement/HBPO_SE_EDI.cs b/docs/demo/src/WTA.Application/Identity/Entities/SystemManagement/HBPO_SE_EDI.cs index 7617b0e8..5cdcd2db 100644 --- a/docs/demo/src/WTA.Application/Identity/Entities/SystemManagement/HBPO_SE_EDI.cs +++ b/docs/demo/src/WTA.Application/Identity/Entities/SystemManagement/HBPO_SE_EDI.cs @@ -1,8 +1,10 @@ using System.ComponentModel.DataAnnotations; using WTA.Application.Identity.Entities.SystemManagement.Group; +using WTA.Shared.Attributes; using WTA.Shared.Domain; namespace WTA.Application.Identity.Entities.SystemManagement; +[Order(3)] [JISHBPODataInputGroup] [Display(Name = "EDI数据")] //HBPO的EDI数据