Browse Source

fix(s0): align material type and property dictionaries

YY968XX 4 tháng trước cách đây
mục cha
commit
09fdaa959d

+ 5 - 3
Web/src/views/aidop/s0/sales/MaterialList.vue

@@ -164,8 +164,7 @@
 							<el-col :span="12"><el-form-item label="计划员"><el-input v-model="form.planner" /></el-form-item></el-col>
 							<el-col :span="12"><el-form-item label="物料属性">
 								<el-select v-model="form.ownerApplication" clearable filterable style="width: 100%">
-									<el-option label="常规产品" value="常规产品" />
-									<el-option label="非标产品" value="非标产品" />
+									<el-option v-for="item in ownerApplicationOptions" :key="item.value" :label="item.label" :value="item.value" />
 								</el-select>
 							</el-form-item></el-col>
 							<el-col :span="12"><el-form-item label="特殊采购类型"><el-input v-model="form.emtType" /></el-form-item></el-col>
@@ -291,6 +290,7 @@ const factoryOptions = ref<OrgOption[]>([]);
 const materialTypeOptions = ref<OptionItem[]>([]);
 const plCategoryOptions = ref<OptionItem[]>([]);
 const stockTypeOptions = ref<OptionItem[]>([]);
+const ownerApplicationOptions = ref<OptionItem[]>([]);
 
 function emptyForm(): S0ItemMasterUpsert {
 	return {
@@ -398,18 +398,20 @@ watch(
 );
 
 async function loadOptions() {
-	const [companies, factories, materialTypes, plCategories, stockTypes] = await Promise.all([
+	const [companies, factories, materialTypes, plCategories, stockTypes, ownerApplications] = await Promise.all([
 		loadOrgList('201'),
 		loadOrgList('501'),
 		loadDictOptions('s0_material_type'),
 		loadDictOptions('s0_pl_category'),
 		loadDictOptions('s0_stock_type'),
+		loadDictOptions('s0_owner_application'),
 	]);
 	companyOptions.value = companies;
 	factoryOptions.value = factories;
 	materialTypeOptions.value = materialTypes;
 	plCategoryOptions.value = plCategories;
 	stockTypeOptions.value = stockTypes;
+	ownerApplicationOptions.value = ownerApplications;
 
 	if (!companies.length || !factories.length || !materialTypes.length) {
 		ElMessage.warning('部分下拉数据加载失败,请检查平台种子数据');

+ 9 - 8
Web/src/views/aidop/s0/sales/ProductDesignCycleList.vue

@@ -17,9 +17,8 @@
 				</el-select>
 			</el-form-item>
 			<el-form-item label="物料属性">
-				<el-select v-model="query.ownerApplication" clearable placeholder="全部" style="width: 140px">
-					<el-option label="常规产品" value="常规产品" />
-					<el-option label="非标产品" value="非标产品" />
+				<el-select v-model="query.ownerApplication" clearable filterable placeholder="全部" style="width: 140px">
+					<el-option v-for="item in ownerApplicationOptions" :key="item.value" :label="item.label" :value="item.value" />
 				</el-select>
 			</el-form-item>
 			<el-form-item label="启用">
@@ -95,9 +94,8 @@
 					</el-col>
 					<el-col :span="12">
 						<el-form-item label="物料属性" prop="ownerApplication">
-							<el-select v-model="form.ownerApplication" style="width: 100%">
-								<el-option label="常规产品" value="常规产品" />
-								<el-option label="非标产品" value="非标产品" />
+							<el-select v-model="form.ownerApplication" filterable style="width: 100%">
+								<el-option v-for="item in ownerApplicationOptions" :key="item.value" :label="item.label" :value="item.value" />
 							</el-select>
 						</el-form-item>
 					</el-col>
@@ -161,6 +159,7 @@ const formRef = ref<FormInstance>();
 const companyOptions = ref<OrgOption[]>([]);
 const factoryOptions = ref<OrgOption[]>([]);
 const materialTypeOptions = ref<OptionItem[]>([]);
+const ownerApplicationOptions = ref<OptionItem[]>([]);
 
 const filteredFactoryOptions = computed(() => {
 	if (!query.companyRefId) return factoryOptions.value;
@@ -219,14 +218,16 @@ watch(
 );
 
 async function loadOptions() {
-	const [companies, factories, materialTypes] = await Promise.all([
+	const [companies, factories, materialTypes, ownerApplications] = await Promise.all([
 		loadOrgList('201'),
 		loadOrgList('501'),
-		loadDictOptions('s0_item_type'),
+		loadDictOptions('s0_material_type'),
+		loadDictOptions('s0_owner_application'),
 	]);
 	companyOptions.value = companies;
 	factoryOptions.value = factories;
 	materialTypeOptions.value = materialTypes;
+	ownerApplicationOptions.value = ownerApplications;
 }
 
 async function loadList() {

+ 5 - 0
server/Plugins/Admin.NET.Plugin.AiDOP/SeedData/S0DictDataSeedData.cs

@@ -26,6 +26,7 @@ public class S0DictDataSeedData : ISqlSugarEntitySeedData<SysDictData>
         var priorityCustomerTypeId = types[12].Id;
         var orderTypeId            = types[13].Id;
         var dueStatusId            = types[14].Id;
+        var ownerApplicationId     = types[15].Id;
 
         long seq = 1329900100001L;
 
@@ -112,6 +113,10 @@ public class S0DictDataSeedData : ISqlSugarEntitySeedData<SysDictData>
             D(seq++, dueStatusId, "逾期", "overdue", 100, ct),
             D(seq++, dueStatusId, "正常", "normal",  101, ct),
             D(seq++, dueStatusId, "不限", "*",       102, ct),
+
+            // ── s0_owner_application ──
+            D(seq++, ownerApplicationId, "常规产品", "standard",     100, ct),
+            D(seq++, ownerApplicationId, "非标产品", "non_standard", 101, ct),
         };
     }
 

+ 1 - 0
server/Plugins/Admin.NET.Plugin.AiDOP/SeedData/S0DictTypeSeedData.cs

@@ -26,6 +26,7 @@ public class S0DictTypeSeedData : ISqlSugarEntitySeedData<SysDictType>
             new SysDictType { Id = 1329900001013L, Name = "S0-优先级客户类型", Code = "s0_order_priority_customer_type", SysFlag = YesNoEnum.N, OrderNo = 512, Remark = "S0 订单优先级规则 - 客户类型过滤条件",  Status = StatusEnum.Enable, CreateTime = ct },
             new SysDictType { Id = 1329900001014L, Name = "S0-订单类型",     Code = "s0_order_type",         SysFlag = YesNoEnum.N, OrderNo = 513, Remark = "S0 订单优先级规则 - 订单类型过滤条件",            Status = StatusEnum.Enable, CreateTime = ct },
             new SysDictType { Id = 1329900001015L, Name = "S0-到期状态",     Code = "s0_due_status",         SysFlag = YesNoEnum.N, OrderNo = 514, Remark = "S0 订单优先级规则 - 到期状态过滤条件",            Status = StatusEnum.Enable, CreateTime = ct },
+            new SysDictType { Id = 1329900001016L, Name = "S0-物料属性",     Code = "s0_owner_application",  SysFlag = YesNoEnum.N, OrderNo = 515, Remark = "S0 物料属性(常规/非标)",                       Status = StatusEnum.Enable, CreateTime = ct },
         };
     }
 }