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 {
- {{dayjs(model[prop]).format('YYYY-MM-DD HH:mm:ss')}}
- {{dayjs(model[prop]).format('YYYY-MM-DD')}}
+ {{dayjs(model[prop]).format('YYYY-MM-DD HH:mm:ss')}}
+ {{dayjs(model[prop]).format('YYYY-MM-DD')}}
+ ******
{{model[prop]}}
@@ -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数据