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

---
 ruoyi-plus-soybean/src/views/qm/judge-details/modules/judge-details-operate-drawer.vue |  149 +++++++++++++++++++++++++++++--------------------
 1 files changed, 89 insertions(+), 60 deletions(-)

diff --git a/ruoyi-plus-soybean/src/views/qm/judge-details/modules/judge-details-operate-drawer.vue b/ruoyi-plus-soybean/src/views/qm/judge-details/modules/judge-details-operate-drawer.vue
index fee65a3..55fcf0d 100644
--- a/ruoyi-plus-soybean/src/views/qm/judge-details/modules/judge-details-operate-drawer.vue
+++ b/ruoyi-plus-soybean/src/views/qm/judge-details/modules/judge-details-operate-drawer.vue
@@ -39,42 +39,47 @@
   return titles[props.operateType];
 });
 
+const clsOptions = [
+  { label: 'A', value: 'A' },
+  { label: 'B', value: 'B' },
+  { label: 'C', value: 'C' },
+  { label: 'D', value: 'D' }
+];
+
 type Model = Api.Qm.JudgeDetailsOperateParams;
 
 const model = ref<Model>(createDefaultModel());
 
 function createDefaultModel(): Model {
   return {
-      id: '',
-      judgeId: '',
-      itemCod: '',
-      itemName: '',
-      value3: null,
-      value1: null,
-      value2: null,
-      location: '',
-      cls: '',
-      stdscore: null,
-      ismix: null,
-      rid: '',
-      category: null,
-      decisionDes: '',
-      updateUser: '',
+    id: '',
+    judgeId: '',
+    itemCod: '',
+    itemName: '',
+    value3: null,
+    value1: null,
+    value2: null,
+    location: '',
+    cls: '',
+    stdscore: null,
+    ismix: null,
+    rid: '',
+    category: null,
+    decisionDes: '',
+    updateUser: ''
   };
 }
 
-type RuleKey = Extract<
-  keyof Model,
-  | 'id'
->;
+type RuleKey = Extract<keyof Model, 'id'>;
 
-const rules: Record<RuleKey, App.Global.FormRule> = {
+const rules: Record<RuleKey, App.Global.FormRule | App.Global.FormRule[]> = {
+  id: createRequiredRule('璇疯緭鍏ョ紪鐮�')
 };
 
 function handleUpdateModelWhenEdit() {
   model.value = createDefaultModel();
 
-  if (props.operateType === 'edit' && props.rowData) {
+  if (props.rowData) {
     Object.assign(model.value, jsonClone(props.rowData));
   }
 }
@@ -86,16 +91,64 @@
 async function handleSubmit() {
   await validate();
 
-  const { id, judgeId, itemCod, itemName, value3, value1, value2, location, cls, stdscore, ismix, rid, category, decisionDes, updateUser } = model.value;
+  const {
+    id,
+    judgeId,
+    itemCod,
+    itemName,
+    value3,
+    value1,
+    value2,
+    location,
+    cls,
+    stdscore,
+    ismix,
+    rid,
+    category,
+    decisionDes,
+    updateUser
+  } = model.value;
 
   // request
   if (props.operateType === 'add') {
-    const { error } = await fetchCreateJudgeDetails({ id, judgeId, itemCod, itemName, value3, value1, value2, location, cls, stdscore, ismix, rid, category, decisionDes, updateUser });
+    const { error } = await fetchCreateJudgeDetails({
+      id,
+      judgeId,
+      itemCod,
+      itemName,
+      value3,
+      value1,
+      value2,
+      location,
+      cls,
+      stdscore,
+      ismix,
+      rid,
+      category,
+      decisionDes,
+      updateUser
+    });
     if (error) return;
   }
 
   if (props.operateType === 'edit') {
-    const { error } = await fetchUpdateJudgeDetails({ id, judgeId, itemCod, itemName, value3, value1, value2, location, cls, stdscore, ismix, rid, category, decisionDes, updateUser });
+    const { error } = await fetchUpdateJudgeDetails({
+      id,
+      judgeId,
+      itemCod,
+      itemName,
+      value3,
+      value1,
+      value2,
+      location,
+      cls,
+      stdscore,
+      ismix,
+      rid,
+      category,
+      decisionDes,
+      updateUser
+    });
     if (error) return;
   }
 
@@ -116,50 +169,26 @@
   <NDrawer v-model:show="visible" :title="title" display-directive="show" :width="800" class="max-w-90%">
     <NDrawerContent :title="title" :native-scrollbar="false" closable>
       <NForm ref="formRef" :model="model" :rules="rules">
-        <NFormItem label="缂栫爜" path="id">
-          <NInput v-model:value="model.id" placeholder="璇疯緭鍏ョ紪鐮�" />
-        </NFormItem>
-        <NFormItem label="鍒ゅ畾涓绘爣璇�" path="judgeId">
-          <NInput v-model:value="model.judgeId" placeholder="璇疯緭鍏ュ垽瀹氫富鏍囪瘑" />
-        </NFormItem>
-        <NFormItem label="鍒ゅ畾椤笽TEM" path="itemCod">
-          <NInput v-model:value="model.itemCod" placeholder="璇疯緭鍏ュ垽瀹氶」ITEM" />
-        </NFormItem>
-        <NFormItem label="鍒ゅ畾椤筃AME" path="itemName">
-          <NInput v-model:value="model.itemName" placeholder="璇疯緭鍏ュ垽瀹氶」NAME" />
+        <NFormItem label="鍒ゅ畾椤�" path="itemName">
+          <NInput v-model:value="(model.itemName as any)" placeholder="璇疯緭鍏ュ垽瀹氶」" :disabled="operateType === 'edit'" />
         </NFormItem>
         <NFormItem label="鏍囧噯鍊�" path="value3">
-          <NInput v-model:value="model.value3" placeholder="璇疯緭鍏ユ爣鍑嗗��" />
+          <NInputNumber v-model:value="(model.value3 as any)" placeholder="璇疯緭鍏ユ爣鍑嗗��" class="w-full" />
         </NFormItem>
-        <NFormItem label="鍒ゅ畾鍊�1" path="value1">
-          <NInput v-model:value="model.value1" placeholder="璇疯緭鍏ュ垽瀹氬��1" />
+        <NFormItem label="涓嬮檺鍊�" path="value1">
+          <NInputNumber v-model:value="(model.value1 as any)" placeholder="璇疯緭鍏ヤ笅闄愬��" class="w-full" />
         </NFormItem>
-        <NFormItem label="鍒ゅ畾鍊�2" path="value2">
-          <NInput v-model:value="model.value2" placeholder="璇疯緭鍏ュ垽瀹氬��2" />
+        <NFormItem label="涓婇檺鍊�" path="value2">
+          <NInputNumber v-model:value="(model.value2 as any)" placeholder="璇疯緭鍏ヤ笂闄愬��" class="w-full" />
         </NFormItem>
-        <NFormItem label="缂洪櫡浣嶇疆" path="location">
-          <NInput v-model:value="model.location" placeholder="璇疯緭鍏ョ己闄蜂綅缃�" />
+        <NFormItem label="鍒嗗��" path="stdscore">
+          <NInputNumber v-model:value="(model.stdscore as any)" placeholder="璇疯緭鍏ュ垎鍊�" class="w-full" />
         </NFormItem>
-        <NFormItem label="鍒ゅ畾绾у埆 (A,B,C,D)" path="cls">
-          <NInput v-model:value="model.cls" placeholder="璇疯緭鍏ュ垽瀹氱骇鍒� (A,B,C,D)" />
-        </NFormItem>
-        <NFormItem label="鍒嗗�兼爣鍑� (鎵e垎鏍囧噯锛屽緱鍒嗘爣鍑�),姣斿涓嶅悎鏍间竴娆℃墸澶氬皯鍒�" path="stdscore">
-          <NInput v-model:value="model.stdscore" placeholder="璇疯緭鍏ュ垎鍊兼爣鍑� (鎵e垎鏍囧噯锛屽緱鍒嗘爣鍑�),姣斿涓嶅悎鏍间竴娆℃墸澶氬皯鍒�" />
-        </NFormItem>
-        <NFormItem label="鏍囪姝ら」鏄惁涓哄悎鎴愰」鐩紝姣斿澶栬锛屽疄闄呬笂鍏宠仈浜嗗緢澶氬瓙椤圭洰" path="ismix">
-          <NInput v-model:value="model.ismix" placeholder="璇疯緭鍏ユ爣璁版椤规槸鍚︿负鍚堟垚椤圭洰锛屾瘮濡傚瑙傦紝瀹為檯涓婂叧鑱斾簡寰堝瀛愰」鐩�" />
-        </NFormItem>
-        <NFormItem label="鑻ユ瀛楁鏈塙UID鍊硷紝琛ㄦ槑瀹冨彲鑳戒负鍏朵粬椤圭洰鐨勫瓙椤癸紝姣斿鈥滅┖澶粹��,瀹冧负鐑熸敮澶栬椤圭洰鐨勫瓙椤�" path="rid">
-          <NInput v-model:value="model.rid" placeholder="璇疯緭鍏ヨ嫢姝ゅ瓧娈垫湁UUID鍊硷紝琛ㄦ槑瀹冨彲鑳戒负鍏朵粬椤圭洰鐨勫瓙椤癸紝姣斿鈥滅┖澶粹��,瀹冧负鐑熸敮澶栬椤圭洰鐨勫瓙椤�" />
-        </NFormItem>
-        <NFormItem label="鑼冨洿-澶囩敤" path="category">
-          <NInput v-model:value="model.category" placeholder="璇疯緭鍏ヨ寖鍥�-澶囩敤" />
+        <NFormItem label="鍒ゅ畾绾у埆" path="cls">
+          <NSelect v-model:value="(model.cls as any)" :options="clsOptions" placeholder="璇烽�夋嫨鍒ゅ畾绾у埆" />
         </NFormItem>
         <NFormItem label="澶囨敞" path="decisionDes">
-          <NInput v-model:value="model.decisionDes" placeholder="璇疯緭鍏ュ娉�" />
-        </NFormItem>
-        <NFormItem label="淇敼浜�" path="updateUser">
-          <NInput v-model:value="model.updateUser" placeholder="璇疯緭鍏ヤ慨鏀逛汉" />
+          <NInput v-model:value="(model.decisionDes as any)" type="textarea" placeholder="璇疯緭鍏ュ娉�" />
         </NFormItem>
       </NForm>
       <template #footer>

--
Gitblit v1.9.3