From 12c8999bab7206bc652fd69ac4f364d84c9e7153 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期五, 12 六月 2026 18:07:46 +0800
Subject: [PATCH] 不合格处理:支持多生产批次提交oa;oa流程查看调整

---
 src/views/business/unpass/components/unPassDialog.vue |  193 ++++++++++++++++++++++++++++-------------------
 1 files changed, 115 insertions(+), 78 deletions(-)

diff --git a/src/views/business/unpass/components/unPassDialog.vue b/src/views/business/unpass/components/unPassDialog.vue
index af51b98..b6c79ae 100644
--- a/src/views/business/unpass/components/unPassDialog.vue
+++ b/src/views/business/unpass/components/unPassDialog.vue
@@ -1,65 +1,99 @@
 <template>
   <div>
-    <el-dialog :title="type==='view'?'涓嶅悎鏍煎鐞嗚鎯�':'涓嶅悎鏍煎鐞嗘彁浜�'" :visible.sync="isShow" width="740px" :show-close="false" :close-on-click-modal="false"
-      :close-on-press-escape="false">
-      <div class="search">
-        <el-form :inline="true" :model="unPassForm" :rules="unPassFormRules" ref="unPassForm" class="form-inline"
+    <el-dialog :title="type==='view'?'涓嶅悎鏍煎鐞嗚鎯�':'涓嶅悎鏍煎鐞嗘彁浜�'" :visible.sync="isShow" width="40%" :show-close="false" :close-on-click-modal="false"
+      :close-on-press-escape="false" append-to-body>
+      <div>
+        <el-form :model="unPassForm" :rules="unPassFormRules" ref="unPassForm"
           label-width="120px">
-          <div>
-            <el-form-item class="headLine" label="鏍囬:" style="width: 100%" prop="headline">
-              <el-input clearable v-model="unPassForm.headline" size="small" :disabled="type === 'view'" type="textarea"
-                placeholder="璇疯緭鍏�"></el-input>
-            </el-form-item>
-          </div>
-          <el-form-item label="渚涘簲鍟嗗悕绉�:">
-            <el-input clearable v-model="unPassForm.supplierName" disabled size="small" placeholder="璇疯緭鍏�"></el-input>
-          </el-form-item>
-          <el-form-item label="鐗╂枡鍚嶇О:" prop="materialName">
-            <el-tooltip class="item" effect="dark" placement="top" :content="unPassForm.materialName">
-              <el-input clearable v-model="unPassForm.materialName" :disabled="type==='view'" size="small" placeholder="璇疯緭鍏�"></el-input>
-            </el-tooltip>
-          </el-form-item>
-          <el-form-item label="鐢熶骇鎵规:">
-            <el-input clearable v-model="unPassForm.productionBatch" disabled size="small" placeholder="璇疯緭鍏�"></el-input>
-          </el-form-item>
-          <el-form-item label="鍒拌揣鏁伴噺:">
-            <el-input clearable v-model="unPassForm.cargoQuantity" disabled size="small" placeholder="璇疯緭鍏�"></el-input>
-          </el-form-item>
-          <el-form-item label="瑙勬牸鍨嬪彿:">
-            <el-input clearable v-model="unPassForm.specsModels" disabled size="small" placeholder="璇疯緭鍏�"></el-input>
-          </el-form-item>
-          <el-form-item label="鎶ユ鏃堕棿:">
-            <el-date-picker v-model="unPassForm.inspectTime" format="yyyy-MM-dd" value-format="yyyy-MM-dd" size="small"
-              disabled style="width: 175px" type="date" placeholder="閫夋嫨鏃ユ湡">
-            </el-date-picker>
-          </el-form-item>
-          <el-form-item label="鍙嶉浜�:">
-            <el-input clearable v-model="unPassForm.feedbackUser" disabled size="small" placeholder="璇疯緭鍏�"></el-input>
-          </el-form-item>
-          <el-form-item label="鍙嶉鏃堕棿:" prop="feedbackTime">
-            <el-date-picker  :picker-options="{ disabledDate: this.disabledDate }" v-model="unPassForm.feedbackTime" :disabled="type === 'view'" format="yyyy-MM-dd"
-              value-format="yyyy-MM-dd" size="small" style="width: 175px" type="date" placeholder="閫夋嫨鏃ユ湡">
-            </el-date-picker>
-          </el-form-item>
-          <el-form-item label="鍒嗙被:" prop="classification">
-            <el-select v-model="unPassForm.classification" :disabled="type === 'view' || !unPassForm.id" size="small" placeholder="璇烽�夋嫨">
-              <el-option v-for="item in classificationOptions" :key="item.value" :label="item.label"
-                :value="item.value">
-              </el-option>
-            </el-select>
-          </el-form-item>
-          <el-form-item label="涓嶅悎鏍煎綊灞�:" prop="offGradeAscription">
-            <el-select v-model="unPassForm.offGradeAscription" :disabled="type === 'view'" size="small"
-              placeholder="璇烽�夋嫨">
-              <el-option v-for="item in offGradeAscriptionOptions" :key="item.value" :label="item.label"
-                :value="item.value">
-              </el-option>
-            </el-select>
-          </el-form-item>
-          <el-form-item label="涓嶅悎鏍兼儏鍐垫弿杩�:" prop="unqualifiedDesc">
-            <el-input clearable type="textarea" v-model="unPassForm.unqualifiedDesc" :disabled="type === 'view'"
-              style="width: 484px" size="small" placeholder="璇疯緭鍏�"></el-input>
-          </el-form-item>
+          <el-row >
+            <el-col :span="24">
+              <el-form-item label="鏍囬" prop="headline">
+                <el-input style="width:100%" clearable v-model="unPassForm.headline" size="small" :disabled="type === 'view'" type="textarea"
+                          placeholder="璇疯緭鍏�"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row >
+            <el-col :span="12">
+              <el-form-item label="渚涘簲鍟嗗悕绉�">
+                <el-input style="width:100%" clearable v-model="unPassForm.supplierName" disabled size="small" placeholder="璇疯緭鍏�"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="鐗╂枡鍚嶇О" prop="materialName">
+                <el-input style="width:100%" clearable v-model="unPassForm.materialName" :disabled="type==='view'" size="small" placeholder="璇疯緭鍏�"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row >
+            <el-col :span="12">
+              <el-form-item label="鐢熶骇鎵规">
+                <el-input style="width:100%" clearable v-model="unPassForm.productionBatch" disabled size="small" placeholder="璇疯緭鍏�"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="鍒拌揣鏁伴噺">
+                <el-input style="width:100%" clearable v-model="unPassForm.cargoQuantity" disabled size="small" placeholder="璇疯緭鍏�" >
+                  <template slot="append">{{unPassForm.buyUnitMeas}}</template>
+                </el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row >
+            <el-col :span="12">
+              <el-form-item label="瑙勬牸鍨嬪彿">
+                <el-input style="width:100%" clearable v-model="unPassForm.specsModels" disabled size="small" placeholder="璇疯緭鍏�"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="鎶ユ鏃堕棿">
+                <el-date-picker style="width:100%" v-model="unPassForm.inspectTime" format="yyyy-MM-dd" value-format="yyyy-MM-dd" size="small"
+                                disabled type="date" placeholder="閫夋嫨鏃ユ湡">
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row >
+            <el-col :span="12">
+              <el-form-item label="鍙嶉浜�">
+                <el-input style="width:100%" clearable v-model="unPassForm.feedbackUser" disabled size="small" placeholder="璇疯緭鍏�"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="鍙嶉鏃堕棿" prop="feedbackTime">
+                <el-date-picker style="width:100%" :picker-options="{ disabledDate: this.disabledDate }" v-model="unPassForm.feedbackTime" :disabled="type === 'view'" format="yyyy-MM-dd"
+                                 value-format="yyyy-MM-dd" size="small" type="date" placeholder="閫夋嫨鏃ユ湡">
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row >
+            <el-col :span="12">
+              <el-form-item label="鍒嗙被" prop="classification">
+                <el-select style="width:100%" v-model="unPassForm.classification" :disabled="type === 'view' || !unPassForm.id" size="small" placeholder="璇烽�夋嫨">
+                  <el-option v-for="item in classificationOptions" :key="item.value" :label="item.label"
+                             :value="item.value"></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="涓嶅悎鏍煎綊灞�" prop="offGradeAscription">
+                <el-select style="width:100%" v-model="unPassForm.offGradeAscription" :disabled="type === 'view'" size="small"
+                           placeholder="璇烽�夋嫨">
+                  <el-option v-for="item in offGradeAscriptionOptions" :key="item.value" :label="item.label"
+                             :value="item.value"></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row >
+            <el-col :span="24">
+              <el-form-item label="涓嶅悎鏍兼儏鍐垫弿杩�" prop="unqualifiedDesc">
+                <el-input style="width:100%" clearable type="textarea" v-model="unPassForm.unqualifiedDesc" :disabled="type === 'view'"
+                           size="small" placeholder="璇疯緭鍏�"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
         </el-form>
         <el-upload v-if="type !== 'view'" ref="upload" :action="action2" :on-change="beforeUpload" :on-error="onError"
           :on-remove="handleRemoveFile" :on-success="getUnpassUrl" :headers="uploadHeader" :file-list="unPassFilesList">
@@ -84,7 +118,7 @@
 </template>
 
 <script>
-import { getInsOrder, getUnqualifiedHandler, downFile, addUnqualifiedHandler,reSubmitPushOa } from '@/api/business/unpass.js'
+import { getInsOrder,getInsOrderList, getUnqualifiedHandler, downFile, addUnqualifiedHandler,reSubmitPushOa } from '@/api/business/unpass.js'
 import {mapGetters} from "vuex";
 export default {
   name: "unPassDialog",
@@ -95,9 +129,11 @@
       type: Boolean,
       default: () => false
     },
-    orderId: {
-      type: String,
-      default: () => null
+    selectOrderIds: {
+      type: Array,
+      default: () => {
+        return []
+      }
     },
   },
   data() {
@@ -152,21 +188,22 @@
       this.type = type
       if (type === 'add') {
         // 璧嬪�奸粯璁ゆ暟鎹�
-        getInsOrder({
-          orderId: this.orderId
+        getInsOrderList({
+          selectOrderIds: this.selectOrderIds
         }).then(res => {
           if (res.code === 200) {
             this.unPassForm.feedbackTime = new Date().toISOString().substring(0, 10) // 鎶ユ鏃堕棿
-            this.unPassForm.headline = `No.0020-涓ぉ鑰愪笣-渚涘簲鍟嗚川閲忓紓甯稿弽棣堟祦绋�-${res.data.insOrderTemplate.supplierName}-${this.unPassForm.feedbackTime}` // 鏍囬
+            this.unPassForm.headline = `No.0020-涓ぉ鑰愪笣-渚涘簲鍟嗚川閲忓紓甯稿弽棣堟祦绋�-${res.data.supplierName}-${this.unPassForm.feedbackTime}` // 鏍囬
             this.unPassForm.feedbackUser = this.nickName // 鍙嶉浜�
-            this.unPassForm.insOrderId = res.data.insOrder.id // 璁㈠崟id
-            this.unPassForm.materialName = res.data.insOrder.sampleType // 鐗╂枡鍚嶇О
-            this.unPassForm.specsModels = res.data.insOrder.partDetail // 瑙勬牸鍨嬪彿
-            this.unPassForm.inventoryQuantityId = res.data.insOrderTemplate.inventoryQuantityId // 鍘熸潗鏂檌d
-            this.unPassForm.supplierName = res.data.insOrderTemplate.supplierName // 渚涘簲鍟嗗悕绉�
-            this.unPassForm.productionBatch = res.data.insOrderTemplate.updateBatchNo // 鐢熶骇鎵规
-            this.unPassForm.cargoQuantity = res.data.insOrderTemplate.qtyArrived + res.data.insOrderTemplate.buyUnitMeas // 鍒拌揣鏁伴噺
-            this.unPassForm.inspectTime = res.data.insOrderTemplate.sendTime.substring(0, 10)  // 鎶ユ鏃堕棿
+            // this.unPassForm.insOrderId = res.data.insOrder.id // 璁㈠崟id
+            this.unPassForm.materialName = res.data.sampleType // 鐗╂枡鍚嶇О
+            this.unPassForm.specsModels = res.data.partDetail // 瑙勬牸鍨嬪彿
+            // this.unPassForm.inventoryQuantityId = res.data.inventoryQuantityId // 鍘熸潗鏂檌d
+            this.unPassForm.supplierName = res.data.supplierName // 渚涘簲鍟嗗悕绉�
+            this.unPassForm.productionBatch = res.data.updateBatchNo // 鐢熶骇鎵规
+            this.unPassForm.cargoQuantity = res.data.qtyArrived // 鍒拌揣鏁伴噺
+            this.unPassForm.buyUnitMeas = res.data.buyUnitMeas // 閲囪喘鍗曚綅
+            this.unPassForm.inspectTime = res.data.sendTime  // 鎶ユ鏃堕棿
           }
         })
       } else {
@@ -201,7 +238,10 @@
             delete item.orderBy
           })
           this.handlunPassLoading = true
-          addUnqualifiedHandler(this.unPassForm).then(res => {
+          addUnqualifiedHandler({
+            ...this.unPassForm,
+            selectOrderIds: this.selectOrderIds
+          }).then(res => {
             if (res.code === 200) {
               this.$message.success('鎻愪氦鎴愬姛')
               this.$emit('resetForm')
@@ -288,7 +328,4 @@
 </script>
 
 <style scoped>
-.headLine>>>.el-form-item__content {
-  width: 68%;
-}
 </style>

--
Gitblit v1.9.3