From 6a415a072a98d64d2f95d16eef73b6d7270b8d56 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期六, 30 五月 2026 15:14:25 +0800
Subject: [PATCH] 新疆马铃薯 1.首页问题:挪新系统ui,需要确认一下页面数据完整。 2.协同办公:挪新系统 3.营销管理:客户往来取消回款金额字段,改为点击左侧客户时显示与该客户的所有订单信息,以及发货情况。销售可以选好对应的采购订单方便质量追溯。 4.采购管理:供应商往来同上逻辑,显示是否收货,也加上采购退货和采购报表功能。 5.采购加上设备备件选项,设备备件入库到备件库存。设备,仓储不足时做采购提醒。 6.仓储物流:得区分成品库和原料库(不存在半成品,成品只有一个产品,很好确认),原材料需要有批号,采集原料库需要做好仓库字段,让他们可以区分哪个仓库,然后把数采设备信息做一个实时的显示。总库存显示好当前存在的批次信息。 7.质量:只有不通过才需要填写对应的数据信息。在外侧做好选择通过不通过。过程,出厂检验无法对应到生产订单,那就对应到销售订单。 8.决策分析:基础数据分析和进销存分析,质量数据分析需要重新设计

---
 src/views/qualityManagement/nonconformingManagement/components/formDia.vue |   97 ++++++++++++++++++++++++++++++++++++------------
 1 files changed, 72 insertions(+), 25 deletions(-)

diff --git a/src/views/qualityManagement/nonconformingManagement/components/formDia.vue b/src/views/qualityManagement/nonconformingManagement/components/formDia.vue
index b464762..e747d04 100644
--- a/src/views/qualityManagement/nonconformingManagement/components/formDia.vue
+++ b/src/views/qualityManagement/nonconformingManagement/components/formDia.vue
@@ -2,20 +2,12 @@
   <div>
     <el-dialog
         v-model="dialogFormVisible"
-        :title="operationType === 'add' ? '鏂板鍘熸潗鏂欐楠�' : '缂栬緫鍘熸潗鏂欐楠�'"
+        :title="operationType === 'add' ? '鏂板涓嶅悎鏍肩鐞�' : '缂栬緫涓嶅悎鏍肩鐞�'"
         width="70%"
         @close="closeDia"
     >
       <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
         <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="鐘舵�侊細" prop="inspectState">
-              <el-select v-model="form.inspectState">
-                <el-option label="寰呭鐞�" :value="0" />
-                <el-option label="宸插鐞�" :value="1" />
-              </el-select>
-            </el-form-item>
-          </el-col>
           <el-col :span="12">
             <el-form-item label="绫诲埆锛�" prop="inspectType">
               <el-select v-model="form.inspectType">
@@ -43,7 +35,10 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="瑙勬牸鍨嬪彿锛�" prop="model">
-              <el-input v-model="form.model" placeholder="璇疯緭鍏�" clearable/>
+              <el-select v-model="form.productModelId" placeholder="璇烽�夋嫨" clearable :disabled="operationType === 'edit'"
+                         filterable readonly @change="handleChangeModel">
+                <el-option v-for="item in modelOptions" :key="item.id" :label="item.model" :value="item.id" />
+              </el-select>
             </el-form-item>
           </el-col>
         </el-row>
@@ -62,7 +57,9 @@
         <el-row :gutter="30">
           <el-col :span="12">
             <el-form-item label="妫�楠屽憳锛�" prop="checkName">
-              <el-input v-model="form.checkName" placeholder="璇疯緭鍏�" clearable/>
+              <el-select v-model="form.checkName" placeholder="璇烽�夋嫨" clearable style="width: 100%">
+                <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName" :value="item.nickName"/>
+              </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -87,14 +84,18 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="澶勭悊缁撴灉锛�" prop="dealResult">
-              <el-input v-model="form.dealResult" placeholder="璇疯緭鍏�" clearable/>
+              <el-select v-model="form.dealResult" placeholder="璇烽�夋嫨" clearable>
+                <el-option :label="item.label" :value="item.value" v-for="item in rejection_handling" :key="item.value" />
+              </el-select>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="30">
           <el-col :span="12">
             <el-form-item label="澶勭悊浜猴細" prop="dealName">
-              <el-input v-model="form.dealName" placeholder="璇疯緭鍏�" clearable/>
+              <el-select v-model="form.dealName" placeholder="璇烽�夋嫨" clearable style="width: 100%">
+                <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName" :value="item.nickName"/>
+              </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -123,18 +124,22 @@
 </template>
 
 <script setup>
-import {ref} from "vue";
-import {productTreeList} from "@/api/basicData/product.js";
+import {ref, reactive, toRefs} from "vue";
+import {modelList, productTreeList} from "@/api/basicData/product.js";
 import {
   getQualityUnqualifiedInfo,
   qualityUnqualifiedAdd,
   qualityUnqualifiedUpdate
 } from "@/api/qualityManagement/nonconformingManagement.js";
+import {userListNoPage} from "@/api/system/user.js";
+import useUserStore from "@/store/modules/user";
 const { proxy } = getCurrentInstance()
+const userStore = useUserStore()
 const emit = defineEmits(['close'])
 
 const dialogFormVisible = ref(false);
 const operationType = ref('')
+const { rejection_handling } = proxy.useDict("rejection_handling")
 const data = reactive({
   form: {
     checkTime: "",
@@ -144,38 +149,69 @@
     productId: "",
     model: "",
     unit: "",
-    quantity: "",
+    quantity: undefined,
     checkCompany: "",
     checkResult: "",
-    inspectState: '',
     inspectType: '',
     defectivePhenomena: '',
     dealResult: '',
+    dealName: '',
+    dealTime: '',
+    productModelId: undefined,
   },
   rules: {
     checkTime: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" },],
     process: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-    checkName: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+    checkName: [{ required: true, message: "璇烽�夋嫨妫�楠屽憳", trigger: "change" }],
     productId: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-    model: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+    model: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
     unit: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
     quantity: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
     checkCompany: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
     checkResult: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+    dealName: [{ required: true, message: "璇烽�夋嫨澶勭悊浜�", trigger: "change" }],
   },
 });
 const { form, rules } = toRefs(data);
 const productOptions = ref([]);
+const modelOptions = ref([]);
+const userList = ref([]); // 妫�楠屽憳/澶勭悊浜轰笅鎷夊垪琛�
 
 // 鎵撳紑寮规
-const openDialog = (type, row) => {
+const openDialog = async (type, row) => {
   operationType.value = type;
+  try {
+    const userRes = await userListNoPage();
+    userList.value = userRes.data || [];
+  } catch (e) {
+    console.error("鍔犺浇鐢ㄦ埛鍒楄〃澶辫触", e);
+    userList.value = [];
+  }
   dialogFormVisible.value = true;
-  form.value = {}
+  if (operationType.value === 'add') {
+    form.value = {
+      checkName: userStore.nickName || '',
+      dealName: '',
+      dealTime: '',
+      dealResult: '',
+      defectivePhenomena: '',
+      inspectType: '',
+      checkTime: '',
+      productId: '',
+      model: '',
+      unit: '',
+      quantity: undefined,
+      productName: '',
+      productModelId: undefined,
+    };
+  } else {
+    form.value = {};
+  }
   getProductOptions();
   if (operationType.value === 'edit') {
     getQualityUnqualifiedInfo(row.id).then(res => {
-      form.value = {...res.data}
+      const { inspectState, ...rest } = (res.data || {})
+      form.value = { ...rest }
     })
   }
 }
@@ -186,6 +222,15 @@
 };
 const getModels = (value) => {
   form.value.productName = findNodeById(productOptions.value, value);
+  modelList({ id: value }).then((res) => {
+    modelOptions.value = res;
+  })
+};
+const handleChangeModel = (value) => {
+  const selectedModel = modelOptions.value.find(item => item.id === value);
+  if (selectedModel) {
+    form.value.model = selectedModel.model;
+  }
 };
 const findNodeById = (nodes, productId) => {
   for (let i = 0; i < nodes.length; i++) {
@@ -219,13 +264,15 @@
 const submitForm = () => {
   proxy.$refs.formRef.validate(valid => {
     if (valid) {
+      // 鐘舵�佸瓧娈典笉鍦ㄨ〃鍗曞~鍐欙紝涔熶笉浼犵粰鍚庣
+      const { inspectState, ...payload } = (form.value || {})
       if (operationType.value === "add") {
-        qualityUnqualifiedAdd(form.value).then(res => {
+        qualityUnqualifiedAdd(payload).then(res => {
           proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
           closeDia();
         })
       } else {
-        qualityUnqualifiedUpdate(form.value).then(res => {
+        qualityUnqualifiedUpdate(payload).then(res => {
           proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
           closeDia();
         })
@@ -246,4 +293,4 @@
 
 <style scoped>
 
-</style>
\ No newline at end of file
+</style>

--
Gitblit v1.9.3