From 46aceb8303dc691cfbe70c834bc95e87b3b76567 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期三, 24 十二月 2025 14:13:48 +0800
Subject: [PATCH] 销售订单报检区分物料属性2

---
 src/views/business/rawMaterialInspection/index.vue |  171 ++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 146 insertions(+), 25 deletions(-)

diff --git a/src/views/business/rawMaterialInspection/index.vue b/src/views/business/rawMaterialInspection/index.vue
index 1fa1140..2333ca1 100644
--- a/src/views/business/rawMaterialInspection/index.vue
+++ b/src/views/business/rawMaterialInspection/index.vue
@@ -47,6 +47,12 @@
               @keyup.enter.native="refreshTable">
             </el-input>
           </el-form-item>
+          <el-form-item label="閿�鍞鍗曞垎绫�" prop="orderType" v-if="(tabIndex === 3 || tabIndex === 4) && more">
+            <el-select v-model="componentData.orderType" clearable size="small"
+              @keyup.enter.native="refreshTable">
+              <el-option v-for="(item,index) in orderTypeList" :label="item.dictLabel" :value="item.dictValue" :key="index"></el-option>
+            </el-select>
+          </el-form-item>
         </el-row>
       </el-form>
     </div>
@@ -65,7 +71,7 @@
             @click="handleDown">瀵煎嚭</el-button>
           <el-button v-if="tabIndex === 0" :loading="btnLoading" size="small" type="primary"
             @click="openIFS">鑾峰彇IFS璁㈠崟</el-button>
-          <el-button v-if="tabIndex === 0" size="small" type="primary" @click="declareS">鎶ユ</el-button>
+          <el-button v-if="tabIndex === 0" size="small" type="primary" @click="declareS">鎵归噺鎶ユ</el-button>
           <el-button v-if="tabIndex === 0" size="small" type="primary" @click="addDeclare">鏂板鎶ユ淇℃伅</el-button>
         </div>
       </div>
@@ -83,17 +89,29 @@
       </div>
     </div>
     <!-- 鎵归噺鎶ユ -->
-    <el-dialog :visible.sync="declareDialogSVisible" title="纭鎶ユ" width="30%">
-      <p style="font-size:16px;color:#333333">鏄惁纭鎶ユ閫夋嫨鐨勬暟鎹紵</p>
+    <el-dialog :visible.sync="declareDialogSVisible" title="鎵归噺鎶ユ" width="30%" :before-close="resetBatchFormData">
+      <el-form ref="declareBatchObj" :inline="true" :model="declareBatchObj" :rules="declareObjBatchRules" label-width="130px"
+               label-position="right">
+        <el-form-item class="declareObj-form-item" label="閿�鍞鍗曞垎绫伙細" prop="orderType">
+          <el-select v-model="declareBatchObj.orderType" prop="orderType" clearable size="small">
+            <el-option v-for="(item,index) in orderTypeList" :value="item.dictValue" :label="item.dictLabel" :key="index"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item class="declareObj-form-item" label="鐗╂枡灞炴�э細" prop="materialProp">
+          <el-select v-model="declareBatchObj.materialProp" clearable size="small">
+            <el-option v-for="(item,index) in materialPropList" :value="item.dictValue" :label="item.dictLabel" :key="index"></el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
       <span slot="footer" class="dialog-footer">
         <el-row>
-          <el-button @click="declareDialogSVisible = false">鍙� 娑�</el-button>
+          <el-button @click="resetBatchFormData()">鍙� 娑�</el-button>
           <el-button :loading="submitDeclareLoading" type="primary" @click="submitDeclareS">纭� 瀹�</el-button>
         </el-row>
       </span>
     </el-dialog>
     <!-- 纭鎶ユ -->
-    <el-dialog :close-on-click-modal="false" :title="declareType === 'add' ? '鏂板鎶ユ淇℃伅' : '鍘熸潗鏂欐姤妫�'"
+    <el-dialog :close-on-click-modal="false" :title="declareType === 'add' ? '鏂板鎶ユ淇℃伅' : '閿�鍞鍗曟姤妫�'"
       :visible.sync="declareDialogVisible" width="800px" @close="resetFormData">
       <el-form ref="declareObj" :inline="true" :model="declareObj" :rules="declareObjRules" label-width="130px"
         label-position="right">
@@ -139,6 +157,16 @@
           <el-select v-model="declareObj.isExpire" prop="isExpire" :disabled="declareType !== 'add'" clearable
             size="small">
             <el-option :value="1" label="杩囨湡鐗╂枡"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item class="declareObj-form-item" label="閿�鍞鍗曞垎绫伙細" prop="orderType">
+          <el-select v-model="declareObj.orderType" clearable size="small">
+            <el-option v-for="(item,index) in orderTypeList" :value="item.dictValue" :label="item.dictLabel" :key="index"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item class="declareObj-form-item" label="鐗╂枡灞炴�э細" prop="materialProp">
+          <el-select v-model="declareObj.materialProp" clearable size="small">
+            <el-option v-for="(item,index) in materialPropList" :value="item.dictValue" :label="item.dictLabel" :key="index"></el-option>
           </el-select>
         </el-form-item>
       </el-form>
@@ -247,7 +275,18 @@
       </div>
       <span slot="footer" class="dialog-footer">
     <el-button @click="resetOrderSplitData()" :disabled="confirmSplitOrderLoading">鍙� 娑�</el-button>
-    <el-button type="primary" @click="confirmSplitOrder()" :loading="confirmSplitOrderLoading">纭� 瀹�</el-button>
+    <el-button type="primary" @click="beforeConfirmSplitOrder()" :loading="confirmSplitOrderLoading">纭� 瀹�</el-button>
+  </span>
+    </el-dialog>
+    <el-dialog
+      title="閫夋嫨鐗╂枡灞炴��"
+      :visible.sync="materialPropVisible"
+      width="15%">
+      <el-select placeholder="璇烽�夋嫨鐗╂枡灞炴��" v-model="declareObj.materialProp" clearable size="small">
+        <el-option v-for="(item,index) in materialPropList" :value="item.dictValue" :label="item.dictLabel" :key="index"></el-option>
+      </el-select>
+      <span slot="footer" class="dialog-footer">
+    <el-button type="primary" @click="confirmSplitOrder">纭� 瀹�</el-button>
   </span>
     </el-dialog>
   </div>
@@ -259,12 +298,15 @@
   addIfsInventoryQuantity,
   advancedGodown,
   concessionRelease, delIfsInventory,
-  getIfsByAll,
-  getIfsByFinish,
   getIfsOrder,
   getWarehouseSubmit, inspectionReport, inspectionReportOne, rawAllExport,
   revokeInspectionReport,downloadTemplate,confirmSplitOrder
 } from '@/api/business/materialInspection'
+import {
+  getIfsByAll,
+  getIfsByFinish,
+} from '@/api/business/ifsOrderInspection'
+import { getDicts } from "@/api/system/dict/data";
 import limsTable from "@/components/Table/lims-table.vue";
 import {transformExcel} from '@/utils/file'
 
@@ -280,6 +322,20 @@
   data() {
     // 杩欓噷瀛樻斁鏁版嵁
     return {
+      materialPropVisible:false,
+      splitOrderType: null,
+      declareBatchObj:{
+        orderType:'',
+        materialProp:''
+      },
+      declareObjBatchRules:{
+        orderType: [
+          { required: true, message: '璇烽�夋嫨閿�鍞鍗曞垎绫�', trigger: 'change' }
+        ],
+        materialProp: [
+          { required: true, message: '璇烽�夋嫨鐗╂枡灞炴��', trigger: 'change' }
+        ],
+      },
       confirmSplitOrderLoading: false,
       detailDataLoading: false,
       pushToMes:false,//鏄惁鍚屾鍒癿es
@@ -434,6 +490,7 @@
           }
         },
         { label: '璁㈠崟鍙�', prop: 'orderNo' },
+        { label: '璁㈠崟鍒嗙被', prop: 'orderTypeName' },
         { label: '鎶佃揪鐨勯噰璐暟閲�', prop: 'purQtyInStore',width:'160px' },
         { label: '鎶ユ鏃堕棿', prop: 'declareDate' },
         { label: '鎵瑰彿', prop: 'updateBatchNo' },
@@ -549,6 +606,8 @@
         receiverDate: '', // 鎺ユ敹鏃堕棿
         buyUnitMeas: '', // 鍗曚綅
         isExpire: '', // 鍗曚綅
+        orderType: null, // 閿�鍞鍗曞垎绫�
+        materialProp: null, // 鐗╂枡灞炴��
       },
       componentData: { // 琛ㄦ牸鏁版嵁
         updateBatchNo: null,
@@ -558,6 +617,7 @@
         date: null,
         entrustCode: '',
         inspectStatus: '',
+        orderType: null,
       },
       declareDialogVisible1: false,
       upLoad: false,
@@ -594,6 +654,12 @@
         buyUnitMeas: [
           { required: false, message: '璇峰~鍐欏崟浣�', trigger: 'blur' }
         ],
+        orderType: [
+          { required: true, message: '璇烽�夋嫨閿�鍞鍗曞垎绫�', trigger: 'change' }
+        ],
+        materialProp: [
+          { required: true, message: '璇烽�夋嫨鐗╂枡灞炴��', trigger: 'change' }
+        ],
       },
       tabList: [
         {
@@ -628,13 +694,36 @@
       ],
       outLoading: false,
       upLoading: false,
+      orderTypeList: [],
+      materialPropList: [],
     }
   },
   mounted() {
     this.refreshTable()
+    this.getOrderTypeList()
+    this.getMaterialPropList()
   },
   // 鏂规硶闆嗗悎
   methods: {
+    getOrderTypeList(){
+      getDicts('inspection_type').then(res=>{
+        if(res.code === 200){
+          this.orderTypeList = res.data
+        }
+      }).catch(error=>{
+        console.error(error)
+      })
+    },
+    //鑾峰彇鐗╂枡灞炴�у瓧鍏搁」
+    getMaterialPropList(){
+      getDicts('material_prop_type').then(res=>{
+        if(res.code === 200){
+          this.materialPropList = res.data
+        }
+      }).catch(error=>{
+        console.error(error)
+      })
+    },
     resetOrderSplitData(){
       this.orderSplitBasicData = []
       this.orderSplitDetailData = []
@@ -645,12 +734,26 @@
         this.refreshTable()
       })
     },
+    //纭鎷嗗垎璁㈠崟鍓嶏紝閫夋嫨璁㈠崟鐨勭墿鏂欏睘鎬�
+    beforeConfirmSplitOrder(){
+      if(!this.declareObj.materialProp){
+        this.materialPropVisible = true
+      }else{
+        this.confirmSplitOrder()
+      }
+    },
     confirmSplitOrder(){
+      if(!this.declareObj.materialProp){
+        this.$message.warning("璇烽�夋嫨鐗╂枡灞炴��")
+        return
+      }
+      this.materialPropVisible = false
       this.confirmSplitOrderLoading = true
       let requestData = {
         ifsId: this.declareObj.id,
         splitDetailList: this.orderSplitDetailData,
-        pushToMes: this.pushToMes
+        pushToMes: this.pushToMes,
+        materialProp: this.declareObj.materialProp
       }
       confirmSplitOrder(requestData).then(res=>{
         if(res.code===200 && res.data){
@@ -713,6 +816,9 @@
     // 鍒囨崲tab琛ㄦ牸
     handleTab(m) {
       this.tabIndex = m;
+      if([0,1].includes(this.tabIndex)){
+        this.componentData.orderType = null
+      }
       this.refreshTable()
     },
     // 鏌ヨ鍥炶皟
@@ -883,21 +989,29 @@
     },
     // 鎻愪氦鎵归噺鎶ユ
     submitDeclareS() {
-      let ids = []
-      this.multipleSelection.forEach(item => {
-        ids.push(item.id)
-      })
-      this.declareDialogSVisible = true
-      inspectionReport({ ids: ids }).then(res => {
-        if (res.code === 200) {
-          this.declareDialogSVisible = false
-          this.$message.success('鎶ユ鎴愬姛')
-          this.refreshTable()
+      this.$refs.declareBatchObj.validate(valid=>{
+        if(valid){
+          let ids = []
+          this.multipleSelection.forEach(item => {
+            ids.push(item.id)
+          })
+          this.declareDialogSVisible = true
+          inspectionReport({
+            ids: ids,
+            orderType: this.declareBatchObj.orderType,
+            materialProp: this.declareBatchObj.materialProp
+          }).then(res => {
+            if (res.code === 200) {
+              this.declareDialogSVisible = false
+              this.$message.success('鎶ユ鎴愬姛')
+              this.refreshTable()
+            }
+            this.submitDeclareLoading = false
+          }).catch(err => {
+            this.submitDeclareLoading = false
+            console.log(err)
+          })
         }
-        this.submitDeclareLoading = false
-      }).catch(err => {
-        this.submitDeclareLoading = false
-        console.log(err)
       })
     },
     // 鎵撳紑鎶ユ纭寮规
@@ -943,7 +1057,9 @@
           if (valid) {
             inspectionReportOne({
               id: this.declareObj.id,
-              updateBatchNo: this.declareObj.updateBatchNo
+              updateBatchNo: this.declareObj.updateBatchNo,
+              orderType: this.declareObj.orderType,
+              materialProp: this.declareObj.materialProp
             }).then(res => {
               if (res.code === 200) {
                 this.declareDialogVisible = false
@@ -961,8 +1077,12 @@
       }
     },
     resetFormData() {
-      this.$refs['declareObj'].resetFields();
+      this.$refs.declareObj.resetFields();
       this.declareDialogVisible = false
+    },
+    resetBatchFormData() {
+      this.$refs.declareBatchObj.resetFields();
+      this.declareDialogSVisible = false
     },
     // 鎵撳紑鍒犻櫎寮规
     deleteMaterial(row) {
@@ -1023,6 +1143,7 @@
         receiverDate: '', // 鎺ユ敹鏃堕棿
         buyUnitMeas: '', // 鍗曚綅
         isExpire: '', // 鍗曚綅
+        orderType: null, // 閿�鍞鍗曞垎绫�
       }
     }
   },

--
Gitblit v1.9.3