Prechádzať zdrojové kódy

feat(s0): hide legacy DomainCode from all S0 forms/lists

域编码(旧系统标识,类似租户)从 S0 仓储+销售各页前台隐藏:列表删域编码列、
表单域编码控件 v-if=false 隐藏。form.domainCode 保留在模型(openEdit 保值、submit 照传),
编辑不抹空既有域(实测 AIDOP 租户部门 8010 保值)。单号类型域为后端必填业务键,
额外去必填校验并用 getDefaultS0OrgScope 灌默认工厂域(S0-F001),隐藏后新建不被后端拒。
沿用制造建模页既有隐藏范式,纯前端,不动后端/表结构/S5-WMS。

bump version Web 2.4.284
YY968XX 1 týždeň pred
rodič
commit
10e738fd1b

+ 1 - 1
Web/package.json

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

+ 1 - 1
Web/src/views/aidop/s0/sales/OrderPriorityRuleList.vue

@@ -161,7 +161,7 @@
 							<el-input v-model="form.valueId" placeholder="工单表关联字段" />
 							<el-input v-model="form.valueId" placeholder="工单表关联字段" />
 						</el-form-item>
 						</el-form-item>
 					</el-col>
 					</el-col>
-					<el-col :span="12">
+					<el-col v-if="false" :span="12">
 						<el-form-item label="工厂域">
 						<el-form-item label="工厂域">
 							<el-input v-model="form.domainCode" placeholder="工厂域编码(Domain)" />
 							<el-input v-model="form.domainCode" placeholder="工厂域编码(Domain)" />
 						</el-form-item>
 						</el-form-item>

+ 1 - 1
Web/src/views/aidop/s0/warehouse/BarcodeRuleList.vue

@@ -57,7 +57,7 @@
 					<el-col :span="12"><el-form-item label="流水长度"><el-input-number v-model="form.waterLen" :min="0" style="width:100%" /></el-form-item></el-col>
 					<el-col :span="12"><el-form-item label="流水长度"><el-input-number v-model="form.waterLen" :min="0" style="width:100%" /></el-form-item></el-col>
 					<el-col :span="12"><el-form-item label="分隔符"><el-input v-model="form.separator" /></el-form-item></el-col>
 					<el-col :span="12"><el-form-item label="分隔符"><el-input v-model="form.separator" /></el-form-item></el-col>
 					<el-col :span="12"><el-form-item label="固定长度"><el-input-number v-model="form.firmLength" :min="0" style="width:100%" /></el-form-item></el-col>
 					<el-col :span="12"><el-form-item label="固定长度"><el-input-number v-model="form.firmLength" :min="0" style="width:100%" /></el-form-item></el-col>
-					<el-col :span="12"><el-form-item label="域编码"><el-input v-model="form.domainCode" /></el-form-item></el-col>
+					<el-col v-if="false" :span="12"><el-form-item label="域编码"><el-input v-model="form.domainCode" /></el-form-item></el-col>
 				</el-row>
 				</el-row>
 				<el-divider>固定字符串(FirmString 1-12)</el-divider>
 				<el-divider>固定字符串(FirmString 1-12)</el-divider>
 				<div v-for="n in 12" :key="n">
 				<div v-for="n in 12" :key="n">

+ 1 - 2
Web/src/views/aidop/s0/warehouse/CostCenterList.vue

@@ -16,7 +16,6 @@
 			<el-table-column prop="descr" label="说明" min-width="200" show-overflow-tooltip />
 			<el-table-column prop="descr" label="说明" min-width="200" show-overflow-tooltip />
 			<el-table-column prop="ufld1" label="自定义字段1" width="140" show-overflow-tooltip />
 			<el-table-column prop="ufld1" label="自定义字段1" width="140" show-overflow-tooltip />
 			<el-table-column prop="effTime" label="生效时间" width="160" show-overflow-tooltip />
 			<el-table-column prop="effTime" label="生效时间" width="160" show-overflow-tooltip />
-			<el-table-column prop="domainCode" label="域编码" width="120" show-overflow-tooltip />
 			<el-table-column label="操作" width="160" fixed="right" align="center">
 			<el-table-column label="操作" width="160" fixed="right" align="center">
 				<template #default="{ row }">
 				<template #default="{ row }">
 					<el-button link type="primary" @click="openEdit(row)">编辑</el-button>
 					<el-button link type="primary" @click="openEdit(row)">编辑</el-button>
@@ -47,7 +46,7 @@
 				<el-form-item label="说明"><el-input v-model="form.descr" /></el-form-item>
 				<el-form-item label="说明"><el-input v-model="form.descr" /></el-form-item>
 				<el-form-item label="自定义字段1"><el-input v-model="form.ufld1" /></el-form-item>
 				<el-form-item label="自定义字段1"><el-input v-model="form.ufld1" /></el-form-item>
 				<el-form-item label="生效时间"><el-date-picker v-model="form.effTime" type="datetime" value-format="YYYY-MM-DDTHH:mm:ss" style="width: 100%" /></el-form-item>
 				<el-form-item label="生效时间"><el-date-picker v-model="form.effTime" type="datetime" value-format="YYYY-MM-DDTHH:mm:ss" style="width: 100%" /></el-form-item>
-				<el-form-item label="域编码"><el-input v-model="form.domainCode" /></el-form-item>
+				<el-form-item v-if="false" label="域编码"><el-input v-model="form.domainCode" /></el-form-item>
 			</el-form>
 			</el-form>
 			<template #footer>
 			<template #footer>
 				<el-button @click="dialogVisible = false">取消</el-button>
 				<el-button @click="dialogVisible = false">取消</el-button>

+ 1 - 2
Web/src/views/aidop/s0/warehouse/DepartmentList.vue

@@ -20,7 +20,6 @@
 		<el-table :data="rows" v-loading="loading" border stripe style="width: 100%" max-height="calc(100vh - 260px)">
 		<el-table :data="rows" v-loading="loading" border stripe style="width: 100%" max-height="calc(100vh - 260px)">
 			<el-table-column prop="department" label="部门编码" width="160" show-overflow-tooltip />
 			<el-table-column prop="department" label="部门编码" width="160" show-overflow-tooltip />
 			<el-table-column prop="descr" label="部门说明" min-width="200" show-overflow-tooltip />
 			<el-table-column prop="descr" label="部门说明" min-width="200" show-overflow-tooltip />
-			<el-table-column prop="domainCode" label="域编码" width="120" show-overflow-tooltip />
 			<el-table-column label="启用" width="80" align="center">
 			<el-table-column label="启用" width="80" align="center">
 				<template #default="{ row }">
 				<template #default="{ row }">
 					<el-tag :type="row.isActive ? 'success' : 'info'" size="small">{{ row.isActive ? '是' : '否' }}</el-tag>
 					<el-tag :type="row.isActive ? 'success' : 'info'" size="small">{{ row.isActive ? '是' : '否' }}</el-tag>
@@ -59,7 +58,7 @@
 				<el-form-item label="部门说明">
 				<el-form-item label="部门说明">
 					<el-input v-model="form.descr" />
 					<el-input v-model="form.descr" />
 				</el-form-item>
 				</el-form-item>
-				<el-form-item label="域编码">
+				<el-form-item v-if="false" label="域编码">
 					<el-input v-model="form.domainCode" placeholder="Domain" />
 					<el-input v-model="form.domainCode" placeholder="Domain" />
 				</el-form-item>
 				</el-form-item>
 				<el-form-item label="启用">
 				<el-form-item label="启用">

+ 1 - 1
Web/src/views/aidop/s0/warehouse/EmpWorkDutyList.vue

@@ -83,7 +83,7 @@
 					<el-col :span="12"><el-form-item label="生产线"><el-input v-model="form.prodLine" /></el-form-item></el-col>
 					<el-col :span="12"><el-form-item label="生产线"><el-input v-model="form.prodLine" /></el-form-item></el-col>
 					<el-col :span="12"><el-form-item label="员工类型"><el-input v-model="form.empType" /></el-form-item></el-col>
 					<el-col :span="12"><el-form-item label="员工类型"><el-input v-model="form.empType" /></el-form-item></el-col>
 					<el-col :span="24"><el-form-item label="职责(原始值)"><el-input v-model="form.duty" placeholder="如 iss-po,rct-wo" /></el-form-item></el-col>
 					<el-col :span="24"><el-form-item label="职责(原始值)"><el-input v-model="form.duty" placeholder="如 iss-po,rct-wo" /></el-form-item></el-col>
-					<el-col :span="12"><el-form-item label="域编码"><el-input v-model="form.domainCode" /></el-form-item></el-col>
+					<el-col v-if="false" :span="12"><el-form-item label="域编码"><el-input v-model="form.domainCode" /></el-form-item></el-col>
 					<el-col :span="12"><el-form-item label="自定义字段2"><el-input v-model="form.ufld2" /></el-form-item></el-col>
 					<el-col :span="12"><el-form-item label="自定义字段2"><el-input v-model="form.ufld2" /></el-form-item></el-col>
 					<el-col :span="24">
 					<el-col :span="24">
 						<div class="scope-hint">规则:单物料模式仅填“单物料编码”;区间模式需同时填写“物料编码起/止”。</div>
 						<div class="scope-hint">规则:单物料模式仅填“单物料编码”;区间模式需同时填写“物料编码起/止”。</div>

+ 1 - 1
Web/src/views/aidop/s0/warehouse/EmployeeList.vue

@@ -90,7 +90,7 @@
 					<el-col :span="12">
 					<el-col :span="12">
 						<el-form-item label="在职状态"><el-input v-model="form.employmentStatus" /></el-form-item>
 						<el-form-item label="在职状态"><el-input v-model="form.employmentStatus" /></el-form-item>
 					</el-col>
 					</el-col>
-					<el-col :span="12">
+					<el-col v-if="false" :span="12">
 						<el-form-item label="域编码"><el-input v-model="form.domainCode" /></el-form-item>
 						<el-form-item label="域编码"><el-input v-model="form.domainCode" /></el-form-item>
 					</el-col>
 					</el-col>
 					<el-col :span="12">
 					<el-col :span="12">

+ 1 - 1
Web/src/views/aidop/s0/warehouse/ItemPackList.vue

@@ -75,7 +75,7 @@
 					<el-col :span="12"><el-form-item label="发料特性"><el-input v-model="form.issSpecific" /></el-form-item></el-col>
 					<el-col :span="12"><el-form-item label="发料特性"><el-input v-model="form.issSpecific" /></el-form-item></el-col>
 					<el-col :span="12"><el-form-item label="客户物料号"><el-input v-model="form.custItem" /></el-form-item></el-col>
 					<el-col :span="12"><el-form-item label="客户物料号"><el-input v-model="form.custItem" /></el-form-item></el-col>
 					<el-col :span="24"><el-form-item label="备注"><el-input v-model="form.remark" type="textarea" rows="2" /></el-form-item></el-col>
 					<el-col :span="24"><el-form-item label="备注"><el-input v-model="form.remark" type="textarea" rows="2" /></el-form-item></el-col>
-					<el-col :span="12"><el-form-item label="域编码"><el-input v-model="form.domainCode" /></el-form-item></el-col>
+					<el-col v-if="false" :span="12"><el-form-item label="域编码"><el-input v-model="form.domainCode" /></el-form-item></el-col>
 					<el-col :span="12"><el-form-item label="启用"><el-switch v-model="form.isActive" /></el-form-item></el-col>
 					<el-col :span="12"><el-form-item label="启用"><el-switch v-model="form.isActive" /></el-form-item></el-col>
 				</el-row>
 				</el-row>
 			</el-form>
 			</el-form>

+ 1 - 1
Web/src/views/aidop/s0/warehouse/LabelTypeList.vue

@@ -48,7 +48,7 @@
 				<el-form-item label="标签类型编码" prop="barType"><el-input v-model="form.barType" :disabled="!!editingId" /></el-form-item>
 				<el-form-item label="标签类型编码" prop="barType"><el-input v-model="form.barType" :disabled="!!editingId" /></el-form-item>
 				<el-form-item label="分类"><el-input v-model="form.class" /></el-form-item>
 				<el-form-item label="分类"><el-input v-model="form.class" /></el-form-item>
 				<el-form-item label="输入字符串"><el-input v-model="form.inputString" type="textarea" rows="4" /></el-form-item>
 				<el-form-item label="输入字符串"><el-input v-model="form.inputString" type="textarea" rows="4" /></el-form-item>
-				<el-form-item label="域编码"><el-input v-model="form.domainCode" /></el-form-item>
+				<el-form-item v-if="false" label="域编码"><el-input v-model="form.domainCode" /></el-form-item>
 			</el-form>
 			</el-form>
 			<template #footer>
 			<template #footer>
 				<el-button @click="dialogVisible = false">取消</el-button>
 				<el-button @click="dialogVisible = false">取消</el-button>

+ 1 - 1
Web/src/views/aidop/s0/warehouse/LocationList.vue

@@ -53,7 +53,7 @@
 					<el-col :span="12"><el-form-item label="货主/保管方"><el-input v-model="form.storer" /></el-form-item></el-col>
 					<el-col :span="12"><el-form-item label="货主/保管方"><el-input v-model="form.storer" /></el-form-item></el-col>
 					<el-col :span="12"><el-form-item label="库位类型"><el-input v-model="form.typed" placeholder="如 Supp" /></el-form-item></el-col>
 					<el-col :span="12"><el-form-item label="库位类型"><el-input v-model="form.typed" placeholder="如 Supp" /></el-form-item></el-col>
 					<el-col :span="12"><el-form-item label="物理地址"><el-input v-model="form.physicalAddress" /></el-form-item></el-col>
 					<el-col :span="12"><el-form-item label="物理地址"><el-input v-model="form.physicalAddress" /></el-form-item></el-col>
-					<el-col :span="12"><el-form-item label="域编码"><el-input v-model="form.domainCode" :disabled="!!editingId" /></el-form-item></el-col>
+					<el-col v-if="false" :span="12"><el-form-item label="域编码"><el-input v-model="form.domainCode" /></el-form-item></el-col>
 					<el-col :span="12"><el-form-item label="启用"><el-switch v-model="form.isActive" /></el-form-item></el-col>
 					<el-col :span="12"><el-form-item label="启用"><el-switch v-model="form.isActive" /></el-form-item></el-col>
 				</el-row>
 				</el-row>
 			</el-form>
 			</el-form>

+ 1 - 1
Web/src/views/aidop/s0/warehouse/NbrControlList.vue

@@ -69,7 +69,7 @@
 					<el-col :span="8"><el-form-item label="最小值"><el-input-number v-model="form.minValue" style="width:100%" /></el-form-item></el-col>
 					<el-col :span="8"><el-form-item label="最小值"><el-input-number v-model="form.minValue" style="width:100%" /></el-form-item></el-col>
 					<el-col :span="8"><el-form-item label="最大值"><el-input-number v-model="form.maxValue" style="width:100%" /></el-form-item></el-col>
 					<el-col :span="8"><el-form-item label="最大值"><el-input-number v-model="form.maxValue" style="width:100%" /></el-form-item></el-col>
 					<el-col :span="12"><el-form-item label="日期类型"><el-input v-model="form.dateType" /></el-form-item></el-col>
 					<el-col :span="12"><el-form-item label="日期类型"><el-input v-model="form.dateType" /></el-form-item></el-col>
-					<el-col :span="12"><el-form-item label="域编码"><el-input v-model="form.domainCode" /></el-form-item></el-col>
+					<el-col v-if="false" :span="12"><el-form-item label="域编码"><el-input v-model="form.domainCode" /></el-form-item></el-col>
 					<el-col :span="8"><el-form-item label="允许重置"><el-switch v-model="form.allowReset" /></el-form-item></el-col>
 					<el-col :span="8"><el-form-item label="允许重置"><el-switch v-model="form.allowReset" /></el-form-item></el-col>
 					<el-col :span="8"><el-form-item label="允许跳号"><el-switch v-model="form.allowSkip" /></el-form-item></el-col>
 					<el-col :span="8"><el-form-item label="允许跳号"><el-switch v-model="form.allowSkip" /></el-form-item></el-col>
 					<el-col :span="8"><el-form-item label="允许手动"><el-switch v-model="form.allowManual" /></el-form-item></el-col>
 					<el-col :span="8"><el-form-item label="允许手动"><el-switch v-model="form.allowManual" /></el-form-item></el-col>

+ 11 - 3
Web/src/views/aidop/s0/warehouse/NbrTypeList.vue

@@ -61,7 +61,7 @@
 				<el-form-item label="类型描述"><el-input v-model="form.descr1" /></el-form-item>
 				<el-form-item label="类型描述"><el-input v-model="form.descr1" /></el-form-item>
 				<el-form-item label="单号分类"><el-input v-model="form.nbrClass" /></el-form-item>
 				<el-form-item label="单号分类"><el-input v-model="form.nbrClass" /></el-form-item>
 				<el-form-item label="部门"><el-input v-model="form.dept" /></el-form-item>
 				<el-form-item label="部门"><el-input v-model="form.dept" /></el-form-item>
-				<el-form-item label="域编码" prop="domainCode"><el-input v-model="form.domainCode" /></el-form-item>
+				<el-form-item v-if="false" label="域编码" prop="domainCode"><el-input v-model="form.domainCode" /></el-form-item>
 				<el-form-item label="启用"><el-switch v-model="form.isActive" /></el-form-item>
 				<el-form-item label="启用"><el-switch v-model="form.isActive" /></el-form-item>
 			</el-form>
 			</el-form>
 			<template #footer>
 			<template #footer>
@@ -79,6 +79,7 @@ import { ElMessage, ElMessageBox, type FormInstance, type FormRules } from 'elem
 import AidopDemoShell from '../../components/AidopDemoShell.vue';
 import AidopDemoShell from '../../components/AidopDemoShell.vue';
 import { s0NbrTypesApi, type S0NbrTypeRow, type S0NbrTypeUpsert } from '../api/s0WarehouseApi';
 import { s0NbrTypesApi, type S0NbrTypeRow, type S0NbrTypeUpsert } from '../api/s0WarehouseApi';
 import { loadOrgList, type OrgOption } from '../api/s0SalesApi';
 import { loadOrgList, type OrgOption } from '../api/s0SalesApi';
+import { getDefaultS0OrgScope } from '../composables/useS0MfgOrgScope';
 
 
 const route = useRoute();
 const route = useRoute();
 const pageTitle = computed(() => (route.meta?.title as string) || '单号类型');
 const pageTitle = computed(() => (route.meta?.title as string) || '单号类型');
@@ -112,7 +113,6 @@ const formFactoryOptions = computed(() => {
 
 
 const rules: FormRules = {
 const rules: FormRules = {
 	nbrType: [{ required: true, message: '请填写单号类型编码', trigger: 'blur' }],
 	nbrType: [{ required: true, message: '请填写单号类型编码', trigger: 'blur' }],
-	domainCode: [{ required: true, message: '请填写域编码', trigger: 'blur' }],
 };
 };
 
 
 watch(
 watch(
@@ -133,7 +133,13 @@ async function loadList() {
 }
 }
 function resetQuery() { Object.assign(query, { keyword: '', domainCode: '', dept: '', isActive: undefined, page: 1 }); void loadList(); }
 function resetQuery() { Object.assign(query, { keyword: '', domainCode: '', dept: '', isActive: undefined, page: 1 }); void loadList(); }
 function resetForm() { editingId.value = null; Object.assign(form, { companyRefId: undefined, factoryRefId: undefined, domainCode: '', nbrType: '', descr1: '', nbrClass: '', dept: '', isActive: true }); formRef.value?.clearValidate(); }
 function resetForm() { editingId.value = null; Object.assign(form, { companyRefId: undefined, factoryRefId: undefined, domainCode: '', nbrType: '', descr1: '', nbrClass: '', dept: '', isActive: true }); formRef.value?.clearValidate(); }
-function openCreate() { resetForm(); dialogTitle.value = '新增单号类型'; dialogVisible.value = true; }
+function openCreate() {
+	resetForm();
+	// 域编码降级为后台归属字段(前台隐藏):新增时从默认工厂 code 灌入,取不到默认组织时保留空由 submit 兜底。
+	form.domainCode = getDefaultS0OrgScope(companyOptions.value, factoryOptions.value).domainCode ?? form.domainCode ?? '';
+	dialogTitle.value = '新增单号类型';
+	dialogVisible.value = true;
+}
 function openEdit(row: S0NbrTypeRow) {
 function openEdit(row: S0NbrTypeRow) {
 	resetForm(); editingId.value = row.id; dialogTitle.value = `编辑单号类型 ${row.nbrType}`;
 	resetForm(); editingId.value = row.id; dialogTitle.value = `编辑单号类型 ${row.nbrType}`;
 	Object.assign(form, { companyRefId: row.companyRefId, factoryRefId: row.factoryRefId, domainCode: row.domainCode ?? '', nbrType: row.nbrType, descr1: row.descr1 ?? '', nbrClass: row.nbrClass ?? '', dept: row.dept ?? '', isActive: row.isActive });
 	Object.assign(form, { companyRefId: row.companyRefId, factoryRefId: row.factoryRefId, domainCode: row.domainCode ?? '', nbrType: row.nbrType, descr1: row.descr1 ?? '', nbrClass: row.nbrClass ?? '', dept: row.dept ?? '', isActive: row.isActive });
@@ -142,6 +148,8 @@ function openEdit(row: S0NbrTypeRow) {
 async function submitForm() {
 async function submitForm() {
 	await formRef.value?.validate();
 	await formRef.value?.validate();
 	applyDefaultOrg();
 	applyDefaultOrg();
+	// 域编码兜底:隐藏字段后仍确保域非空(单号类型域为后端必填业务键),缺则取默认工厂 code。
+	if (!form.domainCode) form.domainCode = getDefaultS0OrgScope(companyOptions.value, factoryOptions.value).domainCode ?? form.domainCode;
 	saving.value = true;
 	saving.value = true;
 	try {
 	try {
 		if (editingId.value) { await s0NbrTypesApi.update(editingId.value, { ...form }); ElMessage.success('已保存'); }
 		if (editingId.value) { await s0NbrTypesApi.update(editingId.value, { ...form }); ElMessage.success('已保存'); }

+ 1 - 1
Web/src/views/aidop/s0/warehouse/TaskAssignmentList.vue

@@ -72,7 +72,7 @@
 					<el-col :span="12"><el-form-item label="需求时间"><el-date-picker v-model="form.xqsj" type="datetime" value-format="YYYY-MM-DDTHH:mm:ss" style="width:100%" /></el-form-item></el-col>
 					<el-col :span="12"><el-form-item label="需求时间"><el-date-picker v-model="form.xqsj" type="datetime" value-format="YYYY-MM-DDTHH:mm:ss" style="width:100%" /></el-form-item></el-col>
 					<el-col :span="12"><el-form-item label="处理人"><el-input v-model="form.clr" /></el-form-item></el-col>
 					<el-col :span="12"><el-form-item label="处理人"><el-input v-model="form.clr" /></el-form-item></el-col>
 					<el-col :span="12"><el-form-item label="状态"><el-input v-model="form.zt" /></el-form-item></el-col>
 					<el-col :span="12"><el-form-item label="状态"><el-input v-model="form.zt" /></el-form-item></el-col>
-					<el-col :span="12"><el-form-item label="域编码"><el-input v-model="form.domainCode" /></el-form-item></el-col>
+					<el-col v-if="false" :span="12"><el-form-item label="域编码"><el-input v-model="form.domainCode" /></el-form-item></el-col>
 					<el-col :span="24"><el-form-item label="备注"><el-input v-model="form.bz" type="textarea" rows="2" /></el-form-item></el-col>
 					<el-col :span="24"><el-form-item label="备注"><el-input v-model="form.bz" type="textarea" rows="2" /></el-form-item></el-col>
 				</el-row>
 				</el-row>
 			</el-form>
 			</el-form>