From d1791f762791428af91467b8855de83d54f015f9 Mon Sep 17 00:00:00 2001
From: zhuguifei <312353457@qq.com>
Date: 星期五, 17 四月 2026 15:23:21 +0800
Subject: [PATCH] feat: 1.新增物料、物料类型、材料检验统计等表维护功能  2.完善判定依据-判断依据明细  3.新增判断依据、物料管理等字典翻译类  4.成品物料批次-原始数据维护页面

---
 ruoyi-plus-soybean/src/views/qm/judge/modules/judge-operate-drawer.vue |   59 ++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 48 insertions(+), 11 deletions(-)

diff --git a/ruoyi-plus-soybean/src/views/qm/judge/modules/judge-operate-drawer.vue b/ruoyi-plus-soybean/src/views/qm/judge/modules/judge-operate-drawer.vue
index 82a891e..28bfabd 100644
--- a/ruoyi-plus-soybean/src/views/qm/judge/modules/judge-operate-drawer.vue
+++ b/ruoyi-plus-soybean/src/views/qm/judge/modules/judge-operate-drawer.vue
@@ -1,10 +1,11 @@
 <script setup lang="ts">
-import { computed, onMounted, ref, watch } from 'vue';
+import { computed, ref, watch } from 'vue';
 import type { SelectOption } from 'naive-ui';
 import { NSelect } from 'naive-ui';
 import { jsonClone } from '@sa/utils';
 import { fetchCreateJudge, fetchUpdateJudge } from '@/service/api/qm/judge';
 import { fetchGetStdList } from '@/service/api/qm/std';
+import { fetchGetMatList } from '@/service/api/md/mat';
 import { useFormRules, useNaiveForm } from '@/hooks/common/form';
 import { $t } from '@/locales';
 
@@ -53,6 +54,7 @@
 ];
 
 const stdOptions = ref<SelectOption[]>([]);
+const matOptions = ref<SelectOption[]>([]);
 
 type Model = Api.Qm.JudgeOperateParams;
 
@@ -102,6 +104,20 @@
   }
 }
 
+async function fetchMatOptions() {
+  if (model.value.category === 1) {
+    matOptions.value = [];
+    return;
+  }
+  const { data } = await fetchGetMatList({ tid: 1, pageSize: 1000 });
+  if (data) {
+    matOptions.value = data.rows.map(item => ({
+      label: item.name,
+      value: item.code
+    }));
+  }
+}
+
 async function handleSubmit() {
   await validate();
 
@@ -147,20 +163,39 @@
   emit('submitted');
 }
 
-watch(visible, () => {
+watch(visible, async () => {
   if (visible.value) {
     handleUpdateModelWhenEdit();
     restoreValidation();
 
-    // Fetch stdOptions when the drawer becomes visible
-    fetchStdOptions();
+    await fetchStdOptions();
+    await fetchMatOptions();
   }
 });
 
 watch(
   () => model.value.category,
-  () => {
+  async () => {
     fetchStdOptions();
+    model.value.matName = '';
+    model.value.matCode = '';
+    await fetchMatOptions();
+  }
+);
+
+watch(
+  () => model.value.matCode,
+  val => {
+    if (val) {
+      const selectedOption = matOptions.value.find(opt => opt.value === val);
+      if (selectedOption && typeof selectedOption.label === 'string') {
+        const name = selectedOption.label as string;
+        model.value.matName = name;
+        model.value.judgeName = name;
+      }
+    } else {
+      model.value.matName = '';
+    }
   }
 );
 </script>
@@ -172,15 +207,17 @@
         <NFormItem label="鍒ゅ畾鍚嶇О" path="judgeName">
           <NInput v-model:value="model.judgeName" placeholder="璇疯緭鍏ュ垽瀹氬悕绉�" />
         </NFormItem>
-        <NFormItem label="鐗╂枡鐗屽彿浠g爜" path="matCode">
-          <NInput v-model:value="model.matCode" placeholder="璇疯緭鍏ョ墿鏂欑墝鍙蜂唬鐮�" />
-        </NFormItem>
-        <NFormItem label="鐗╂枡鐗屽彿" path="matName">
-          <NInput v-model:value="model.matName" placeholder="璇疯緭鍏ョ墿鏂欑墝鍙�" />
-        </NFormItem>
         <NFormItem label="鐗╂枡绫诲瀷" path="category">
           <NSelect v-model:value="model.category" :options="categoryOptions" placeholder="璇烽�夋嫨鐗╂枡绫诲瀷" />
         </NFormItem>
+        <NFormItem label="鐗╂枡鐗屽彿" path="matName">
+          <NSelect
+            v-model:value="model.matCode"
+            :options="matOptions"
+            placeholder="璇烽�夋嫨鐗╂枡鐗屽彿"
+            :disabled="model.category === 1"
+          />
+        </NFormItem>
         <NFormItem label="鐘舵��" path="status">
           <NSelect v-model:value="model.status" :options="statusOptions" placeholder="璇烽�夋嫨鐘舵��" />
         </NFormItem>

--
Gitblit v1.9.3