Преглед на файлове

feat: S0 货源清单/标准BOM 新增表单自动带出默认公司/工厂

私有云单组织场景下,货源清单与标准BOM新增表单打开时自动带出 S0 默认公司/工厂
(种子 S0OrgSeedData:S0示范公司 S0-C001 / 一工厂 S0-F001),减少反复手选。

- 仅前端 openCreate 自动填值,按 Code 从已加载组织列表匹配默认公司/工厂;
- 公司/工厂字段仍可见可改,不隐藏、不删除、不禁用;
- 编辑走 openEdit 回填、不受影响;未匹配到默认组织时留空由用户手选;
- 不做 legacy org 域映射、不做历史数据回填、不改后端保存逻辑。

chore: bump version Web 2.4.228
YY968XX преди 3 дни
родител
ревизия
780304ee7b
променени са 3 файла, в които са добавени 35 реда и са изтрити 2 реда
  1. 1 1
      Web/package.json
  2. 17 1
      Web/src/views/aidop/s0/manufacturing/StandardBomManagement.vue
  3. 17 0
      Web/src/views/aidop/s0/supply/SourcingList.vue

+ 1 - 1
Web/package.json

@@ -1,7 +1,7 @@
 {
   "name": "admin.net",
   "type": "module",
-  "version": "2.4.227",
+  "version": "2.4.228",
   "packageManager": "pnpm@10.32.1",
   "lastBuildTime": "2026.03.15",
   "description": "Admin.NET 站在巨人肩膀上的 .NET 通用权限开发框架",

+ 17 - 1
Web/src/views/aidop/s0/manufacturing/StandardBomManagement.vue

@@ -150,7 +150,7 @@ const pageTitle = computed(() => (route.meta?.title as string) || '标准BOM列
 
 type MaterialRow = { id: number; code: string; name: string };
 
-const { companyOptions, loadOrgs, factoriesForCompany } = useS0MfgOrgScope();
+const { companyOptions, factoryOptions, loadOrgs, factoriesForCompany } = useS0MfgOrgScope();
 const queryFactories = computed(() => factoriesForCompany(query.companyRefId));
 const formFactories = computed(() => factoriesForCompany(form.companyRefId));
 
@@ -300,8 +300,24 @@ function resetForm() {
 	formRef.value?.clearValidate();
 }
 
+// 私有云单组织场景:新增 BOM 行时自动带出 S0 默认公司/工厂(种子 S0OrgSeedData:S0示范公司 S0-C001 / 一工厂 S0-F001)。
+// 字段仍可见可改;未匹配到默认组织时留空、由用户手选,不报错。编辑走 openEdit 回填、不受影响。
+const S0_DEFAULT_COMPANY_CODE = 'S0-C001';
+const S0_DEFAULT_FACTORY_CODE = 'S0-F001';
+
+function applyDefaultOrg() {
+	const company = companyOptions.value.find((item) => item.code === S0_DEFAULT_COMPANY_CODE);
+	if (!company) return;
+	const factory = factoryOptions.value.find((item) => item.code === S0_DEFAULT_FACTORY_CODE && item.pid === company.id);
+	Object.assign(form, {
+		companyRefId: company.id,
+		factoryRefId: factory?.id,
+	});
+}
+
 function openCreate() {
 	resetForm();
+	applyDefaultOrg();
 	dialogTitle.value = '新增标准 BOM 行';
 	dialogVisible.value = true;
 }

+ 17 - 0
Web/src/views/aidop/s0/supply/SourcingList.vue

@@ -516,8 +516,25 @@ function resetForm() {
 	formRef.value?.clearValidate();
 }
 
+// 私有云单组织场景:新增货源时自动带出 S0 默认公司/工厂(种子 S0OrgSeedData:S0示范公司 S0-C001 / 一工厂 S0-F001)。
+// 字段仍可见可改;未匹配到默认组织时留空、由用户手选,不报错。编辑走 openEdit 回填、不受影响。
+const S0_DEFAULT_COMPANY_CODE = 'S0-C001';
+const S0_DEFAULT_FACTORY_CODE = 'S0-F001';
+
+function applyDefaultOrg() {
+	const company = companyOptions.value.find((item) => item.code === S0_DEFAULT_COMPANY_CODE);
+	if (!company) return;
+	const factory = factoryOptions.value.find((item) => item.code === S0_DEFAULT_FACTORY_CODE && item.pid === company.id);
+	Object.assign(form, {
+		companyRefId: company.id,
+		factoryRefId: factory?.id,
+		domainCode: factory?.code ?? '',
+	});
+}
+
 async function openCreate() {
 	resetForm();
+	applyDefaultOrg();
 	dialogTitle.value = '新增货源';
 	dialogVisible.value = true;
 }