From aae0b49229d8798a2cc31a8449092e2db62e2407 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期四, 26 三月 2026 11:26:41 +0800
Subject: [PATCH] 绩效管理:人员考勤功能模块

---
 src/views/business/rawMaterialInspection/index.vue |  165 +++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 143 insertions(+), 22 deletions(-)

diff --git a/src/views/business/rawMaterialInspection/index.vue b/src/views/business/rawMaterialInspection/index.vue
index 8d25540..dfe0014 100644
--- a/src/views/business/rawMaterialInspection/index.vue
+++ b/src/views/business/rawMaterialInspection/index.vue
@@ -3,6 +3,11 @@
     <div class="search">
       <el-form :model="componentData" ref="componentData" size="small" :inline="true">
         <el-row>
+          <el-form-item label="IFS鍩�" prop="contract">
+            <el-select @keyup.enter.native="refreshTable" v-model="componentData.contract" clearable placeholder="璇烽�夋嫨" size="small">
+              <el-option v-for="(item,index) in contractList" :key="index" :label="item.label" :value="item.value"/>
+            </el-select>
+          </el-form-item>
           <el-form-item label="鎵瑰彿" prop="updateBatchNo">
             <el-input v-model="componentData.updateBatchNo" clearable placeholder="璇疯緭鍏�" size="small"
               @keyup.enter.native="refreshTable"></el-input>
@@ -22,36 +27,34 @@
               @keyup.enter.native="refreshTable">
             </el-input>
           </el-form-item>
-          <el-form-item>
-            <el-button v-if="tabIndex === 3 || tabIndex === 4" :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'"
-              style="color: #3A7BFA;" type="text" @click="more = !more">{{ !more ? '鏇村' : '鏀惰捣' }}</el-button>
-            <el-button size="mini" type="primary" @click="refreshTable()">鏌ヨ</el-button>
-            <el-button size="mini" @click="refresh()" >閲嶇疆</el-button>
-          </el-form-item>
-        </el-row>
-        <el-row>
           <el-form-item label="妫�楠岀姸鎬�" prop="inspectStatus" v-if="(tabIndex === 3 || tabIndex === 4) && more">
             <el-select v-model="componentData.inspectStatus" clearable size="small" style="width: 100%;"
-              @change="refreshTable()">
+                       @change="refreshTable()">
               <el-option v-for="(a, i) in queryStatusList" :key="i" :label="a.label" :value="a.value"></el-option>
             </el-select>
           </el-form-item>
           <el-form-item label="涓嬪彂鏃堕棿" prop="date" v-if="(tabIndex === 3 || tabIndex === 4) && more">
             <el-date-picker v-model="componentData.date" end-placeholder="缁撴潫鏃ユ湡" format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡"
-              range-separator="鑷�" size="small" start-placeholder="寮�濮嬫棩鏈�" style="width: 100%;" type="daterange" @change="refreshTable()"
-              value-format="yyyy-MM-dd">
+                            range-separator="鑷�" size="small" start-placeholder="寮�濮嬫棩鏈�" style="width: 100%;" type="daterange" @change="refreshTable()"
+                            value-format="yyyy-MM-dd">
             </el-date-picker>
           </el-form-item>
           <el-form-item label="濮旀墭缂栧彿" prop="entrustCode" v-if="(tabIndex === 3 || tabIndex === 4) && more">
             <el-input v-model="componentData.entrustCode" clearable placeholder="璇疯緭鍏�" size="small"
-              @keyup.enter.native="refreshTable">
+                      @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">
+                       @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-form-item>
+            <el-button v-if="tabIndex === 3 || tabIndex === 4" :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'"
+              style="color: #3A7BFA;" type="text" @click="more = !more">{{ !more ? '鏇村' : '鏀惰捣' }}</el-button>
+            <el-button size="mini" type="primary" @click="refreshTable()">鏌ヨ</el-button>
+            <el-button size="mini" @click="refresh()" >閲嶇疆</el-button>
           </el-form-item>
         </el-row>
       </el-form>
@@ -97,6 +100,11 @@
             <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>
@@ -112,7 +120,13 @@
         label-position="right">
         <el-form-item class="declareObj-form-item" label="璁㈠崟鍙�:" prop="orderNo">
           <el-input v-model="declareObj.orderNo" :disabled="declareType !== 'add'" class="addObj-info" clearable
-            placeholder="" size="small"></el-input>
+                    placeholder="" size="small"></el-input>
+        </el-form-item>
+        <el-form-item class="declareObj-form-item" label="IFS鍩�:" prop="contract">
+          <el-select v-model="declareObj.contract" v-if="declareType === 'add'" clearable size="small">
+            <el-option v-for="(item,index) in contractList" :key="index" :label="item.label" :value="item.value"/>
+          </el-select>
+          <el-tag v-else :type="declareObj.contract==='ZTNS'?'':'success'">{{declareObj.contract}}</el-tag>
         </el-form-item>
         <el-form-item class="declareObj-form-item" label="闆朵欢鍙�:" prop="partNo">
           <el-input v-model="declareObj.partNo" :disabled="declareType !== 'add'" class="addObj-info" clearable
@@ -157,6 +171,11 @@
         <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>
@@ -207,6 +226,11 @@
           :header-cell-style="{textAlign:'center'}"
           :cell-style="{textAlign:'center'}"
         >
+          <el-table-column label="IFS鍩�" prop="contract" :min-width="100" width="100">
+            <template slot-scope="scope">
+              <el-tag :type="scope.row.contract==='ZTNS'?'':'success'">{{scope.row.contract}}</el-tag>
+            </template>
+          </el-table-column>
           <el-table-column label="璁㈠崟缂栧彿" prop="orderNo" :min-width="100" width="100"></el-table-column>
           <el-table-column label="闆朵欢缂栧彿" prop="partNo" :min-width="150" width="150" show-overflow-tooltip></el-table-column>
           <el-table-column label="闆朵欢鎻忚堪" prop="partDesc" :min-width="150" show-overflow-tooltip></el-table-column>
@@ -220,9 +244,6 @@
         <el-row>
           <el-col :span="12">
             <el-checkbox v-model="pushToMes"><span style="font-weight: bold">鍚屾鍒癕ES</span></el-checkbox>
-<!--            <el-select v-model="splitOrderType" clearable size="mini" placeholder="璇烽�夋嫨閿�鍞鍗曞垎绫�">-->
-<!--              <el-option v-for="(item,index) in orderTypeList" :value="item.dictValue" :label="item.dictLabel" :key="index"></el-option>-->
-<!--            </el-select>-->
           </el-col>
           <el-col :span="12">
             <div style="width:100%;text-align: right;margin-bottom:5px">
@@ -268,7 +289,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>
@@ -304,13 +336,18 @@
   data() {
     // 杩欓噷瀛樻斁鏁版嵁
     return {
+      materialPropVisible:false,
       splitOrderType: null,
       declareBatchObj:{
-        orderType:''
+        orderType:'',
+        materialProp:''
       },
       declareObjBatchRules:{
         orderType: [
           { required: true, message: '璇烽�夋嫨閿�鍞鍗曞垎绫�', trigger: 'change' }
+        ],
+        materialProp: [
+          { required: true, message: '璇烽�夋嫨鐗╂枡灞炴��', trigger: 'change' }
         ],
       },
       confirmSplitOrderLoading: false,
@@ -356,6 +393,25 @@
               return null
             }
           }
+        },
+        {
+          label: 'IFS鍩�',
+          prop: 'contract',
+          width: '120px',
+          dataType: 'tag',
+          formatData: (params) => {
+              return params
+          },
+          formatType: (params) => {
+            if (params === 'ZTNS') {
+              return ''
+            } else if (params === 'KJNS') {
+              return 'success'
+            }else {
+              return null
+            }
+          }
+
         },
         { label: '璁㈠崟鍙�', prop: 'orderNo' },
         { label: '鎶佃揪鐨勯噰璐暟閲�', prop: 'purQtyInStore', width: '140px', },
@@ -465,6 +521,25 @@
               return null
             }
           }
+        },
+        {
+          label: 'IFS鍩�',
+          prop: 'contract',
+          width: '120px',
+          dataType: 'tag',
+          formatData: (params) => {
+            return params
+          },
+          formatType: (params) => {
+            if (params === 'ZTNS') {
+              return ''
+            } else if (params === 'KJNS') {
+              return 'success'
+            }else {
+              return null
+            }
+          }
+
         },
         { label: '璁㈠崟鍙�', prop: 'orderNo' },
         { label: '璁㈠崟鍒嗙被', prop: 'orderTypeName' },
@@ -584,8 +659,10 @@
         buyUnitMeas: '', // 鍗曚綅
         isExpire: '', // 鍗曚綅
         orderType: null, // 閿�鍞鍗曞垎绫�
+        materialProp: null, // 鐗╂枡灞炴��
       },
       componentData: { // 琛ㄦ牸鏁版嵁
+        contract:null,
         updateBatchNo: null,
         partNo: null,
         partDesc: null,
@@ -633,6 +710,9 @@
         orderType: [
           { required: true, message: '璇烽�夋嫨閿�鍞鍗曞垎绫�', trigger: 'change' }
         ],
+        materialProp: [
+          { required: true, message: '璇烽�夋嫨鐗╂枡灞炴��', trigger: 'change' }
+        ],
       },
       tabList: [
         {
@@ -668,11 +748,23 @@
       outLoading: false,
       upLoading: false,
       orderTypeList: [],
+      materialPropList: [],
+      contractList:[
+        {
+          label:"ZTNS",
+          value:"ZTNS"
+        },
+        {
+          label:"KJNS",
+          value:"KJNS"
+        },
+      ]
     }
   },
   mounted() {
     this.refreshTable()
     this.getOrderTypeList()
+    this.getMaterialPropList()
   },
   // 鏂规硶闆嗗悎
   methods: {
@@ -680,6 +772,16 @@
       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)
@@ -695,12 +797,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){
@@ -945,7 +1061,8 @@
           this.declareDialogSVisible = true
           inspectionReport({
             ids: ids,
-            orderType: this.declareBatchObj.orderType
+            orderType: this.declareBatchObj.orderType,
+            materialProp: this.declareBatchObj.materialProp
           }).then(res => {
             if (res.code === 200) {
               this.declareDialogSVisible = false
@@ -1004,7 +1121,10 @@
             inspectionReportOne({
               id: this.declareObj.id,
               updateBatchNo: this.declareObj.updateBatchNo,
-              orderType: this.declareObj.orderType
+              orderType: this.declareObj.orderType,
+              materialProp: this.declareObj.materialProp,
+              partNo: this.declareObj.partNo,
+              contract: this.declareObj.contract
             }).then(res => {
               if (res.code === 200) {
                 this.declareDialogVisible = false
@@ -1089,6 +1209,7 @@
         buyUnitMeas: '', // 鍗曚綅
         isExpire: '', // 鍗曚綅
         orderType: null, // 閿�鍞鍗曞垎绫�
+        materialProp: null, // 鐗╂枡灞炴��
       }
     }
   },

--
Gitblit v1.9.3