From 17b36c3c68aa864d122cd767662f344dbacf0be0 Mon Sep 17 00:00:00 2001
From: gaoluyang <gaoluyang@rengu.cc>
Date: 星期二, 11 二月 2025 15:55:57 +0800
Subject: [PATCH] 原材料报检页面迁移

---
 src/api/business/materialInspection.js                      |   10 
 src/components/rawMaterialInspection/unPassRetestResult.vue |   57 ++
 src/views/business/rawMaterialInspection/index.vue          |  929 ++++++++++++++++++++++++++++++++++++++++++++++
 src/components/rawMaterialInspection/dataLookVisible.vue    |  162 ++++++++
 src/router/index.js                                         |    5 
 src/components/Table/value-table.vue                        |    4 
 6 files changed, 1,165 insertions(+), 2 deletions(-)

diff --git a/src/api/business/materialInspection.js b/src/api/business/materialInspection.js
new file mode 100644
index 0000000..69feb5e
--- /dev/null
+++ b/src/api/business/materialInspection.js
@@ -0,0 +1,10 @@
+import request from '@/utils/request'
+
+// 鏌ヨ鐢ㄦ埛鍒楄〃
+export function getWarehouseSubmit(query) {
+  return request({
+    url: '/rawMaterialOrder/getWarehouseSubmit',
+    method: 'get',
+    params: query
+  })
+}
diff --git a/src/components/Table/value-table.vue b/src/components/Table/value-table.vue
index a5a57ef..0998661 100644
--- a/src/components/Table/value-table.vue
+++ b/src/components/Table/value-table.vue
@@ -118,7 +118,7 @@
     <div :style="data.isPage!=undefined&&data.isPage!=true?'height:100%':''" class="table">
       <el-table :key="specialKey" ref="eltable" v-loading="loading" :current-row-key="data.currentId" :data="tableData" :highlight-current-row="data.highlight===undefined||data.highlight"
         :row-class-name="tableRowClassName" :row-key="record=>record[rowKey]" :show-summary="data.countFleid!=undefined && data.countFleid.length > 0" :span-method="spanMethod"
-        :summary-method="getSummaries" border
+        :summary-method="getSummaries"
         height="100%" style="width: 100%;" tooltip-effect="dark"
         @select="select" @selection-change="selectChange"
         @sort-change="sortChange" @row-click="rowClick">
@@ -607,7 +607,7 @@
       selectList(val) {
         // console.log('val---', val)
         // console.log('this.page---', this.page)
-        this.loading = true
+        // this.loading = true
         if(val===undefined){
           this.page.current = 1;
         }
diff --git a/src/components/rawMaterialInspection/dataLookVisible.vue b/src/components/rawMaterialInspection/dataLookVisible.vue
new file mode 100644
index 0000000..79aceca
--- /dev/null
+++ b/src/components/rawMaterialInspection/dataLookVisible.vue
@@ -0,0 +1,162 @@
+<template>
+  <div>
+    <el-dialog title="鏁版嵁鏌ョ湅" :visible.sync="isShow" width="80%" @closed="$emit('closeDataLook')">
+      <ul class="tab">
+        <li v-for="(m,i) in dataVisibleTitle" :key="i" :class="{active:i===dataVisibleIndex}" @click="handleDataVisibleTab(m,i)">{{m.label}}</li>
+      </ul>
+      <div style="height: 70vh;overflow-y: auto;">
+        <ValueTable ref="ValueTableDataLook" :url="$api.insOrder.selectSampleAndProductByOrderId"
+                    :key="upIndex"
+                    :componentData="componentDataDataLook"/>
+      </div>
+    </el-dialog>
+    <un-pass-retest-result :retestVisible="retestVisible" :retestInfo="retestInfo" @closeRetestLook="closeRetestLook" v-if="retestVisible"></un-pass-retest-result>
+  </div>
+</template>
+
+<script>
+import ValueTable from "@/components/Table/value-table.vue";
+import UnPassRetestResult from "./unPassRetestResult.vue";
+
+export default {
+  name: "dataLookVisible",
+  // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+  components: {UnPassRetestResult, ValueTable},
+  props: {
+    dataDialogVisible: {
+      type: Boolean,
+      default: () => false
+    },
+    dataLookInfo: {
+      type: Object,
+      default: () => {}
+    },
+  },
+  data() {
+    // 杩欓噷瀛樻斁鏁版嵁
+    return {
+      upIndex: 0,
+      isShow: this.dataDialogVisible,
+      dataVisibleTitle: [
+        {
+          label: '杩涘巶妫�楠�',
+          value: 0
+        },
+        {
+          label: '瀛e害妫�楠�',
+          value: 1
+        },
+      ],
+      dataVisibleIndex: 0, // 鏁版嵁鏌ョ湅tab鏍忛�夋嫨鍊�
+      // 琛ㄦ牸鏁版嵁
+      componentDataDataLook: { // 鏁扮粍鏌ョ湅鐨則able鏁版嵁
+        entity: {
+          id: null,
+        },
+        isIndex: false,
+        showSelect: false,
+        select: false,
+        do: [
+          {
+            id: '',
+            font: '涓嶅悎鏍煎娴嬫煡鐪�',
+            type: 'text',
+            method: 'getRetestResult',
+            disabFun: (row, index) =>  {
+              return row.insResult!=0
+            }
+          }
+        ],
+        tagField: {
+          insState: {
+            select: []
+          },
+          insResult: {
+            select: [{
+              value: 1,
+              label: '鍚堟牸',
+              type: 'success'
+            },{
+              value: 0,
+              label: '涓嶅悎鏍�',
+              type: 'danger'
+            },{
+              value: 3,
+              label: '涓嶅垽瀹�',
+              type: ''
+            }]
+          }
+        },
+        selectField: {},
+        requiredAdd: [],
+        requiredUp: []
+      },
+      retestVisible: false,
+      retestInfo: []
+    }
+  },
+  mounted() {
+    this.refreshTable()
+  },
+  // 鏂规硶闆嗗悎
+  methods: {
+    // 鍒囨崲鏁版嵁鏌ョ湅tab鏍�
+    handleDataVisibleTab (m, i) {
+      this.dataVisibleIndex = i
+      this.refreshTable()
+    },
+    // 鏌ヨ鍥炶皟
+    refreshTable(e) {
+      if (this.dataVisibleIndex === 0) {
+        this.componentDataDataLook.entity.id = this.dataLookInfo.enterOrderId
+      } else {
+        this.componentDataDataLook.entity.id = this.dataLookInfo.quarterOrderId
+      }
+      this.$nextTick(() => {
+        this.$refs['ValueTableDataLook'].selectList(e)
+      })
+    },
+    // 鏌ョ湅涓嶅悎鏍煎娴嬬粨鏋�
+    getRetestResult (row) {
+      this.$axios.get(this.$api.insOrder.getRetestResult+'?insProductId='+row.insProductId).then(res => {
+        if (res.code == 201) return
+        this.retestVisible = true
+        this.retestInfo = res.data
+      })
+    },
+    closeRetestLook () {
+      this.retestVisible = false
+    },
+  },
+}
+</script>
+
+<style scoped>
+.tab {
+  list-style-type: none;
+  display: flex;
+  margin-bottom: 12px;
+}
+
+.tab li {
+  line-height: 24px;
+  padding: 6px 14px;
+  font-size: 14px;
+  color: #333333;
+  border: 1px solid #EEEEEE;
+  cursor: pointer;
+}
+
+.tab li:nth-child(1) {
+  border-radius: 8px 0 0 8px;
+}
+
+.tab li:nth-child(2) {
+  border-radius: 0 8px 8px 0;
+}
+
+.tab li.active {
+  border-color: #3A7BFA;
+  color: #3A7BFA;
+}
+</style>
diff --git a/src/components/rawMaterialInspection/unPassRetestResult.vue b/src/components/rawMaterialInspection/unPassRetestResult.vue
new file mode 100644
index 0000000..22f0f7a
--- /dev/null
+++ b/src/components/rawMaterialInspection/unPassRetestResult.vue
@@ -0,0 +1,57 @@
+<template>
+  <div>
+    <el-dialog
+      title="涓嶅悎鏍煎娴嬫煡鐪�"
+      :visible.sync="isShow"
+      @closed="$emit('closeRetestLook')"
+      width="40%">
+      <el-table
+        :data="retestInfo"
+        border
+        style="width: 100%">
+        <el-table-column type="index" label="澶嶆祴娆℃暟" align="center" width="100">
+        </el-table-column>
+        <el-table-column prop="tell" label="璇曢獙瑕佹眰" width="120">
+        </el-table-column>
+        <el-table-column prop="lastValue" label="妫�楠岀粨鏋�" width="120">
+        </el-table-column>
+        <el-table-column prop="insResult" label="缁撴灉鍒ゅ畾">
+          <template slot-scope="scope">
+            <el-tag type="danger" v-if="scope.row.insResult === 0" disable-transitions>涓嶅悎鏍�</el-tag>
+            <el-tag type="success" v-if="scope.row.insResult === 1" disable-transitions>鍚堟牸</el-tag>
+            <el-tag v-if="scope.row.insResult === 3" disable-transitions>涓嶅垽瀹�</el-tag>
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "unPassRetestResult",
+  // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+  components: {},
+  props: {
+    retestVisible: {
+      type: Boolean,
+      default: () => false
+    },
+    retestInfo: {
+      type: Array,
+      default: () => []
+    }
+  },
+  data() {
+    // 杩欓噷瀛樻斁鏁版嵁
+    return {
+      isShow: this.retestVisible,
+    }
+  },
+  // 鏂规硶闆嗗悎
+  methods: {},
+}
+</script>
+
+<style scoped>
+</style>
diff --git a/src/router/index.js b/src/router/index.js
index 71907b6..c157664 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -93,6 +93,11 @@
 // 鍔ㄦ�佽矾鐢憋紝鍩轰簬鐢ㄦ埛鏉冮檺鍔ㄦ�佸幓鍔犺浇
 export const dynamicRoutes = [
   {
+    path: '/business/rawMaterialInspection',
+    component: Layout,
+    hidden: true,
+  },
+  {
     path: '/system/user-auth',
     component: Layout,
     hidden: true,
diff --git a/src/views/business/rawMaterialInspection/index.vue b/src/views/business/rawMaterialInspection/index.vue
new file mode 100644
index 0000000..4eaa8af
--- /dev/null
+++ b/src/views/business/rawMaterialInspection/index.vue
@@ -0,0 +1,929 @@
+<template>
+  <div class="app-container">
+    <div>
+      <el-row class="title">
+        <el-col :span="12" style="text-align: left;">鍘熸潗鏂欐姤妫�</el-col>
+        <el-col :span="12" style="text-align: right;">
+          <el-button v-show="tabIndex === 4" :loading="outLoading" size="medium" type="primary" @click="handleDown">瀵煎嚭</el-button>
+          <el-button v-if="isShowIFS && 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="addDeclare">鏂板鎶ユ淇℃伅</el-button>
+        </el-col>
+      </el-row>
+    </div>
+    <div class="search">
+      <el-form :model="componentData" ref="componentData" size="small" :inline="true">
+        <el-row>
+          <el-form-item label="鎵瑰彿" prop="menuName">
+            <el-input v-model="componentData.entity.updateBatchNo" clearable placeholder="璇疯緭鍏�"
+                      size="small"
+                      @keyup.enter.native="refreshTable"></el-input>
+          </el-form-item>
+          <el-form-item label="闆朵欢鍙�" prop="menuName">
+            <el-input v-model="componentData.entity.partNo" clearable placeholder="璇疯緭鍏�"
+                      size="small"
+                      @keyup.enter.native="refreshTable">
+            </el-input>
+          </el-form-item>
+          <el-form-item label="闆朵欢鎻忚堪" prop="menuName">
+            <el-input v-model="componentData.entity.partDesc" clearable placeholder="璇疯緭鍏�"
+                      size="small"
+                      @keyup.enter.native="refreshTable">
+            </el-input>
+          </el-form-item>
+          <el-form-item label="渚涘簲鍟�" prop="menuName" v-if="(tabIndex === 3 || tabIndex === 4)">
+            <el-input v-model="componentData.entity.supplierName" clearable placeholder="璇疯緭鍏�"
+                      size="small"
+                      @keyup.enter.native="refreshTable">
+            </el-input>
+          </el-form-item>
+<!--          <div class="search_thing" style="padding-left: 30px;">-->
+            <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="small" icon="el-icon-search" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
+          <el-button size="small" @click="refresh()" icon="el-icon-refresh">閲� 缃�</el-button>
+<!--          </div>-->
+        </el-row>
+        <el-row>
+          <el-form-item label="妫�楠岀姸鎬�" prop="menuName" v-if="(tabIndex === 3 || tabIndex === 4) && more">
+            <el-select v-model="componentData4.entity.inspectStatus" clearable
+                       size="small" style="width: 100%;" @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="menuName" v-if="(tabIndex === 3 || tabIndex === 4) && more">
+            <el-date-picker
+              v-model="entity.date"
+              end-placeholder="缁撴潫鏃ユ湡"
+              format="yyyy-MM-dd"
+              placeholder="閫夋嫨鏃ユ湡"
+              range-separator="鑷�"
+              size="small"
+              start-placeholder="寮�濮嬫棩鏈�"
+              style="width: 100%;"
+              type="daterange"
+              value-format="yyyy-MM-dd">
+            </el-date-picker>
+          </el-form-item>
+          <el-form-item label="濮旀墭缂栧彿" prop="menuName" v-if="(tabIndex === 3 || tabIndex === 4) && more">
+            <el-input v-model="componentData4.entity.entrustCode" clearable placeholder="璇疯緭鍏�"
+                      size="small"
+                      @keyup.enter.native="refreshTable">
+            </el-input>
+          </el-form-item>
+        </el-row>
+      </el-form>
+    </div>
+    <div class="table">
+      <ul class="tab">
+        <li v-for="(m,i) in tabList" :key="m.value" :class="{active:m.value===tabIndex}" @click="handleTab(m,i)">{{m.label}}</li>
+      </ul>
+      <!--      寰呮姤妫�-->
+      <ValueTable v-show="tabIndex === 0" :key="'a'+ upIndex"
+                  ref="ValueTable"
+                  :componentData="componentData"
+                  :style="getStyle()"
+                  :tableRowClassName="changeRowClass"
+                  :url="getWarehouseSubmitApi()" />
+      <!--      寰呬笅鍗�-->
+      <ValueTable v-show="tabIndex === 1" :key="'b'+ upIndex"
+                  ref="ValueTable1"
+                  :componentData="componentData1"
+                  :style="getStyle()"
+                  :tableRowClassName="changeRowClass"
+                  :url="getWarehouseSubmitApi()" />
+      <!--      宸插畬鎴愬垪琛�-->
+<!--      <ValueTable v-show="tabIndex === 3" :key="'c'+ upIndex"-->
+<!--                  ref="ValueTable2"-->
+<!--                  :componentData="componentData2"-->
+<!--                  :style="getStyle()"-->
+<!--                  :url="$api.materialInspection.getIfsByFinish" />-->
+<!--      &lt;!&ndash;      鍏ㄩ儴&ndash;&gt;-->
+<!--      <ValueTable v-show="tabIndex === 4" :key="'d'+ upIndex"-->
+<!--                  ref="ValueTable4"-->
+<!--                  :componentData="componentData4"-->
+<!--                  :style="getStyle()"-->
+<!--                  :url="$api.materialInspection.getIfsByAll" />-->
+    </div>
+    <!-- 鎵归噺鎶ユ -->
+    <el-dialog :visible.sync="declareDialogSVisible" title="纭鎶ユ" width="30%">
+      <p style="font-size:16px;color:#333333">鏄惁纭鎶ユ閫夋嫨鐨勬暟鎹紵</p>
+      <span slot="footer" class="dialog-footer">
+					<el-row>
+						<el-button @click="declareDialogSVisible = false">鍙� 娑�</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' ? '鏂板鎶ユ淇℃伅' : '鍘熸潗鏂欐姤妫�'"
+               :visible.sync="declareDialogVisible"
+               width="62%" @close="resetForm">
+      <el-form ref="declareObj" :inline="true" :model="declareObj" :rules="declareObjRules" label-width="130px" style="display: flex;flex-wrap: wrap;">
+        <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>
+        </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 placeholder="" size="small"></el-input>
+        </el-form-item>
+        <el-form-item class="declareObj-form-item" label="闆朵欢鎻忚堪:" prop="partDesc">
+          <el-input v-model="declareObj.partDesc" :disabled="declareType !== 'add'" class="addObj-info" clearable placeholder="" size="small"></el-input>
+        </el-form-item>
+        <el-form-item class="declareObj-form-item" label="鎶佃揪鐨勯噰璐暟閲�:" prop="qtyArrived">
+          <el-input v-model="declareObj.qtyArrived" :disabled="declareType !== 'add'" class="addObj-info" clearable placeholder="" size="small"></el-input>
+        </el-form-item>
+        <el-form-item v-if="declareType !== 'add'" class="declareObj-form-item" label="渚涘簲鍟嗙紪鍙�:" prop="supplierId">
+          <el-input v-model="declareObj.supplierId" :disabled="declareType !== 'add'" class="addObj-info" clearable placeholder="" size="small"></el-input>
+        </el-form-item>
+        <el-form-item class="declareObj-form-item" label="渚涘簲鍟嗗悕绉�:" prop="supplierName">
+          <el-input v-model="declareObj.supplierName" :disabled="declareType !== 'add'" class="addObj-info" clearable placeholder="" size="small"></el-input>
+        </el-form-item>
+        <el-form-item class="declareObj-form-item" label="鎵瑰彿:" prop="updateBatchNo">
+          <el-input v-model="declareObj.updateBatchNo" class="addObj-info" clearable size="small"></el-input>
+        </el-form-item>
+        <el-form-item v-if="declareType !== 'add'" class="declareObj-form-item" label="搴撲綅鍙�:" prop="locationNo">
+          <el-input v-model="declareObj.locationNo" :disabled="declareType !== 'add'" class="addObj-info" clearable size="small"></el-input>
+        </el-form-item>
+        <el-form-item v-if="declareType !== 'add'" class="declareObj-form-item" label="鎺ユ敹鏃堕棿:" prop="receiverDate">
+          <el-input v-model="declareObj.receiverDate" class="addObj-info" clearable disabled size="small"></el-input>
+        </el-form-item>
+        <el-form-item class="declareObj-form-item" label="鍗曚綅:" prop="buyUnitMeas">
+          <el-input v-model="declareObj.buyUnitMeas" :disabled="declareType !== 'add'" class="addObj-info" size="small"></el-input>
+        </el-form-item>
+        <el-form-item class="declareObj-form-item" label="鐗╂枡绫诲瀷锛�" prop="isExpire">
+          <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>
+      <span slot="footer" class="dialog-footer">
+        <el-row>
+          <el-button @click="resetForm">鍙� 娑�</el-button>
+          <el-button :loading="submitDeclareLoading" type="primary" @click="submitDeclare">纭� 瀹�</el-button>
+        </el-row>
+      </span>
+    </el-dialog>
+    <!-- 鍒犻櫎鎶ユ -->
+    <el-dialog :visible.sync="deleteVisible" title="纭鍒犻櫎" width="30%">
+      <p style="font-size:16px;color:#333333">鏄惁纭鍒犻櫎锛�</p>
+      <span slot="footer" class="dialog-footer">
+					<el-row>
+						<el-button @click="deleteVisible = false">鍙� 娑�</el-button>
+						<el-button :loading="deleteLoading" type="primary" @click="submitDelete">纭� 瀹�</el-button>
+					</el-row>
+				</span>
+    </el-dialog>
+    <!-- 鎾ら攢鎶ユ -->
+    <el-dialog :visible.sync="declareDialogVisible1" title="鎶ユ鎾ら攢" width="30%">
+      <p style="font-size:16px;color:#333333">鎵瑰彿<span
+        style="color:#34BD66">{{insOrderRow.updateBatchNo}}</span>鐨勪俊鎭槸鍚�<span style="color: #FF4902">鎾ら攢鎶ユ</span></p>
+      <span slot="footer" class="dialog-footer">
+					<el-row>
+						<el-button @click="declareDialogVisible1 = false">鍙� 娑�</el-button>
+						<el-button :loading="upLoad" type="primary" @click="submitDeclare1">纭� 瀹�</el-button>
+					</el-row>
+				</span>
+    </el-dialog>
+    <!--鏁版嵁鏌ョ湅寮规-->
+    <data-look-visible v-if="dataDialogVisible" ref="dataDialogVisible"
+                       :dataDialogVisible="dataDialogVisible"
+                       :dataLookInfo="dataLookInfo" @closeDataLook="closeDataLook"></data-look-visible>
+  </div>
+</template>
+
+<script>
+import ValueTable from "@/components/Table/value-table.vue";
+import DataLookVisible from "@/components/rawMaterialInspection/dataLookVisible.vue";
+import {getUser} from "@/api/system/user";
+import {getWarehouseSubmit} from '@/api/business/materialInspection'
+
+export default {
+  // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+  components: {DataLookVisible, ValueTable},
+  data() {
+    // 杩欓噷瀛樻斁鏁版嵁
+    return {
+      entity: {
+        date: null
+      },
+      more:false,
+      isShowIFS: false,
+      declareObj: {
+        id: null,
+        orderNo: '', // 璁㈠崟鍙�
+        partNo: '', // 闆朵欢鍙�
+        partDesc: '', // 闆朵欢鎻忚堪
+        qtyArrived: '', // 鎶佃揪鐨勯噰璐暟閲�
+        supplierId: '', // 渚涘簲鍟嗙紪鍙�
+        supplierName: '', // 渚涘簲鍟嗗悕绉�
+        updateBatchNo: '', // 鎵瑰彿
+        locationNo: '', // 搴撲綅鍙�
+        receiverDate: '', // 鎺ユ敹鏃堕棿
+        buyUnitMeas: '', // 鍗曚綅
+        isExpire: '', // 鍗曚綅
+      },
+      componentData: { // 琛ㄦ牸鏁版嵁
+        entity: {
+          updateBatchNo: null,
+          partNo: null,
+          partDesc: null,
+          supplierName: null,
+          isInspect: 0,
+        },
+        isIndex: true,
+        showSelect: true,
+        select: true,
+        selectMethod: 'selectMethod',
+        do: [
+          {
+            font: '鎶ユ',
+            type: 'text',
+            method: 'declare'
+          },
+          {
+            font: '鍒犻櫎',
+            type: 'text',
+            method: 'deleteMaterial'
+          }
+        ],
+        tagField: {
+          isExpire: {
+            select: [{
+              value: 1,
+              label: '杩囨湡鐗╂枡',
+              type: 'warning'
+            }]
+          }
+        },
+        selectField: {},
+        requiredAdd: [],
+        requiredUp: []
+      },
+      declareDialogVisible1: false,
+      upLoad: false,
+      componentData1: {
+        entity: {
+          updateBatchNo: null,
+          partDesc: null,
+          state: 0,
+          isInspect: 1,
+          partNo: null,
+          supplierName: null,
+        },
+        isIndex: true,
+        showSelect: false,
+        select: false,
+        selectMethod:'selectMethod',
+        do: [
+          {
+            font: '鎾ら攢鎶ユ',
+            type: 'text',
+            method: 'cancelDeclare',
+          },
+        ],
+        tagField: {
+          isExpire: {
+            select: [{
+              value: 1,
+              label: '杩囨湡鐗╂枡',
+              type: 'warning'
+            }]
+          },
+        },
+        selectField: {},
+        requiredAdd: [],
+        requiredUp: []
+      },
+      componentData2: {
+        entity: {
+          orderBy: {
+            field: 'sendTime',
+            order: 'desc'
+          },
+          updateBatchNo: null,
+          partNo: null,
+          partDesc: null,
+          supplierName: null,
+          beginDeclareDate: null,
+          endDeclareDate: null,
+        },
+        isIndex: true,
+        showSelect: true,
+        select: true,
+        selectMethod:'selectMethod',
+        do: [
+          {
+            id: 'dataLook',
+            font: '鏁版嵁鏌ョ湅',
+            type: 'text',
+            method: 'handleDataLook',
+          }
+        ],
+        tagField: {
+          inspectStatus: {
+            select: [{
+              value: 0,
+              label: '妫�楠屼腑',
+              type: 'warning'
+            },{
+              value: 1,
+              label: '鍚堟牸',
+              type: 'success'
+            },{
+              value: 2,
+              label: '涓嶅悎鏍�',
+              type: 'danger'
+            },{
+              value: 3,
+              label: '鏈笅鍗�',
+              type: 'info'
+            },{
+              value: 3,
+              label: '璁╂鏀捐',
+              type: ''
+            }]
+          },
+          isExemption: {
+            select: [{
+              value: 1,
+              label: '鍏嶆',
+              type: 'success'
+            }]
+          },
+          isExpire: {
+            select: [{
+              value: 1,
+              label: '杩囨湡鐗╂枡',
+              type: 'warning'
+            }]
+          },
+        },
+        selectField: {},
+        requiredAdd: [],
+        requiredUp: [],
+        needSort: ['sendTime', 'receiverDate', 'declareDate']
+      },
+      componentData4: {
+        entity: {
+          orderBy: {
+            field: 'id',
+            order: 'desc'
+          },
+          updateBatchNo: null,
+          partNo: null,
+          partDesc: null,
+          supplierName: null,
+          inspectStatus: null,
+          beginDeclareDate: null,
+          endDeclareDate: null,
+        },
+        isIndex: true,
+        showSelect: true,
+        select: true,
+        selectMethod:'selectMethod',
+        do: [
+          {
+            id: 'dataLook',
+            font: '鏁版嵁鏌ョ湅',
+            type: 'text',
+            method: 'handleDataLook',
+          },
+          {
+            id: '',
+            font: '鏀捐',
+            type: 'text',
+            method: 'goPass',
+            disabFun: (row, index) => {
+              return row.inspectStatus != 2
+            }
+          },
+          {
+            id: '',
+            font: '鎻愬墠鍏ュ簱',
+            type: 'text',
+            method: 'advancedGodown',
+            disabFun: (row, index) => {
+              return row.inspectStatus != 0 && row.inspectStatus != 3
+            }
+          }
+        ],
+        tagField: {
+          inspectStatus: {
+            select: [{
+              value: 0,
+              label: '妫�楠屼腑',
+              type: 'warning'
+            },{
+              value: 1,
+              label: '鍚堟牸',
+              type: 'success'
+            },{
+              value: 2,
+              label: '涓嶅悎鏍�',
+              type: 'danger'
+            },{
+              value: 3,
+              label: '鏈笅鍗�',
+              type: 'info'
+            },{
+              value: 4,
+              label: '璁╂鏀捐',
+              type: ''
+            }]
+          },
+          isExemption: {
+            select: [{
+              value: 1,
+              label: '鍏嶆',
+              type: 'success'
+            }]
+          },
+          isExpire: {
+            select: [{
+              value: 1,
+              label: '杩囨湡鐗╂枡',
+              type: 'warning'
+            }]
+          },
+        },
+        selectField: {},
+        requiredAdd: [],
+        requiredUp: [],
+        needSort: ['sendTime', 'receiverDate', 'declareDate']
+      },
+      upIndex: 0,
+      multipleSelection: [],
+      entityCopy: {},
+      currentId: null,
+      btnLoading: false, // 鑾峰彇IFS璁㈠崟鎸夐挳loading
+      insOrderRow: {},
+      declareDialogVisible: false, // 纭鎶ユ寮规
+      submitDeclareLoading: false, // 鎻愪氦鎶ユ寮规鎸夐挳loading
+      declareDialogSVisible: false,
+      declareObjRules: {
+        orderNo: [
+          { required: false, message: '璇峰~鍐欒鍗曞彿', trigger: 'blur' }
+        ],
+        partNo: [
+          { required: true, message: '璇峰~鍐欓浂浠跺彿', trigger: 'blur' }
+        ],
+        partDesc: [
+          { required: true, message: '璇峰~鍐欓浂浠舵弿杩�', trigger: 'blur' }
+        ],
+        qtyArrived: [
+          { required: false, message: '璇峰~鍐欐姷杈剧殑閲囪喘鏁伴噺', trigger: 'blur' }
+        ],
+        supplierName: [
+          { required: true, message: '璇峰~鍐欎緵搴斿晢鍚嶇О', trigger: 'blur' }
+        ],
+        updateBatchNo: [
+          { required: true, message: '璇峰~鍐欐壒鍙�', trigger: 'blur' }
+        ],
+        locationNo: [
+          { required: false, message: '璇峰~鍐欏簱浣嶅彿', trigger: 'blur' }
+        ],
+        buyUnitMeas: [
+          { required: false, message: '璇峰~鍐欏崟浣�', trigger: 'blur' }
+        ],
+      },
+      tabList: [
+        {
+          label: '寰呮姤妫�',
+          value: 0
+        },
+        {
+          label: '寰呬笅鍗�',
+          value: 1
+        },
+        {
+          label: '宸插畬鎴�',
+          value: 3
+        },
+        {
+          label: '鍏ㄩ儴',
+          value: 4
+        }
+      ],
+      tabIndex: 0,
+      deleteVisible: false, // 鍒犻櫎鎶ユ寮规
+      deleteLoading: false, // 鍒犻櫎鎶ユ鎸夐挳
+      entityCopy1: {},
+      entityCopy2: {},
+      entityCopy4: {},
+      dataDialogVisible: false, // 鏁版嵁鏌ョ湅寮规
+      dataLookInfo: {}, // 鏁版嵁鏌ョ湅寮规鏁版嵁
+      declareType: '', // 鎿嶄綔鎶ユ鐨勭被鍨�
+      queryStatusList: [
+        {label: '妫�楠屼腑', value: 0},
+        {label: '鍚堟牸', value: 1},
+        {label: '涓嶅悎鏍�', value: 2},
+        {label: '鏈笅鍗�', value: 3},
+        {label: '璁╂鏀捐', value: 4},
+      ],
+      outLoading:false
+    }
+  },
+  mounted() {
+    this.entityCopy = this.HaveJson(this.componentData.entity)
+    this.entityCopy1 = this.HaveJson(this.componentData1.entity)
+    this.entityCopy2 = this.HaveJson(this.componentData2.entity)
+    this.entityCopy4 = this.HaveJson(this.componentData4.entity)
+    this.getPower()
+  },
+  // 鏂规硶闆嗗悎
+  methods: {
+    // 鎵撳紑鎾ら攢鎶ユ寮规
+    cancelDeclare (row) {
+      this.declareDialogVisible1 = true
+      this.insOrderRow = row
+    },
+    // 鎻愪氦鎾ら攢鎶ユ鐢宠
+    submitDeclare1 () {
+      this.$axios.post(this.$api.rawMaterialOrder.revokeInspectionReport, {
+        id: this.insOrderRow.id
+      }).then(res => {
+        if (res.code === 200) {
+          this.declareDialogVisible1 = false
+          this.refreshTable('page')
+          this.$message.success("鎾ら攢鎶ユ鎴愬姛")
+        }
+      }).catch(err => {
+        console.log(err)
+      })
+    },
+    // 鍒囨崲tab琛ㄦ牸
+    handleTab(m, i) {
+      this.tabIndex = m.value;
+      this.componentData.entity.isInspect = this.tabIndex
+      if (this.tabIndex === 0) {
+        this.componentData.do = [
+          {
+            font: '鎶ユ',
+            type: 'text',
+            method: 'declare'
+          },
+          {
+            font: '鍒犻櫎',
+            type: 'text',
+            method: 'deleteMaterial'
+          }
+        ]
+      } else if (this.tabIndex === 1) {
+        this.componentData.do = []
+      }
+      this.refreshTable()
+    },
+    // 鑾峰彇鏉冮檺
+    getPower() {
+      let power = JSON.parse(sessionStorage.getItem('power'))
+      let getIFS = false
+      for (var i = 0; i < power.length; i++) {
+        if (power[i].menuMethod == 'getIfsOrder') { // 鑾峰彇IFS鐨勬潈闄�
+          getIFS = true
+        }
+      }
+      this.isShowIFS = getIFS
+    },
+    // 鏌ヨ鍥炶皟
+    refreshTable(e) {
+      if (this.tabIndex === 0) {
+        this.componentData.entity.isInspect = this.tabIndex
+        this.$refs.ValueTable.selectList(e)
+      } else if (this.tabIndex === 1) {
+        this.componentData1.entity.updateBatchNo = this.componentData.entity.updateBatchNo
+        this.componentData1.entity.partNo = this.componentData.entity.partNo
+        this.componentData1.entity.partDesc = this.componentData.entity.partDesc
+        this.componentData1.entity.supplierName = this.componentData.entity.supplierName
+        this.$refs['ValueTable1'].selectList(e)
+      } else if (this.tabIndex === 3) {
+        this.componentData2.entity.updateBatchNo = this.componentData.entity.updateBatchNo
+        this.componentData2.entity.partNo = this.componentData.entity.partNo
+        this.componentData2.entity.partDesc = this.componentData.entity.partDesc
+        this.componentData2.entity.supplierName = this.componentData.entity.supplierName
+        this.componentData2.entity.inspectStatus = this.componentData4.entity.inspectStatus
+        if (this.entity.date !== null) {
+          this.componentData2.entity.beginDeclareDate = this.entity.date[0] + ' 00:00:00'
+          this.componentData2.entity.endDeclareDate = this.entity.date[1] + ' 23:59:59'
+        } else {
+          this.componentData2.entity.beginDeclareDate = ''
+          this.componentData2.entity.endDeclareDate = ''
+        }
+        this.$refs['ValueTable2'].selectList(e)
+      }else {
+        this.componentData4.entity.updateBatchNo = this.componentData.entity.updateBatchNo
+        this.componentData4.entity.partNo = this.componentData.entity.partNo
+        this.componentData4.entity.partDesc = this.componentData.entity.partDesc
+        this.componentData4.entity.supplierName = this.componentData.entity.supplierName
+        if (this.entity.date !== null) {
+          this.componentData4.entity.beginDeclareDate = this.entity.date[0] + ' 00:00:00'
+          this.componentData4.entity.endDeclareDate = this.entity.date[1] + ' 23:59:59'
+        } else {
+          this.componentData4.entity.beginDeclareDate = ''
+          this.componentData4.entity.endDeclareDate = ''
+        }
+        this.$refs['ValueTable4'].selectList(e)
+      }
+    },
+    // 閲嶇疆
+    refresh() {
+      this.entity.date = null
+      this.componentData.entity = this.HaveJson(this.entityCopy)
+      if (this.tabIndex === 0) {
+        this.componentData.entity = this.HaveJson(this.entityCopy)
+      } else if (this.tabIndex === 1) {
+        this.componentData1.entity = this.HaveJson(this.entityCopy1)
+      } else if (this.tabIndex === 3) {
+        this.componentData2.entity = this.HaveJson(this.entityCopy2)
+        this.componentData4.entity = this.HaveJson(this.entityCopy4)
+      } else {
+        this.componentData4.entity = this.HaveJson(this.entityCopy4)
+      }
+      this.refreshTable()
+    },
+    // 鏁版嵁鏌ョ湅
+    handleDataLook(row) {
+      this.dataDialogVisible = true;
+      this.dataLookInfo = row
+    },
+    // 鐩存帴鏀捐
+    goPass (row) {
+      this.$confirm('鏄惁鏀捐褰撳墠鏁版嵁?', '鎻愮ず', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning'
+      }).then(() => {
+        this.$axios.post(this.$api.materialInspection.concessionRelease+'?ifsInventoryId='+row.id).then(res => {
+          if (res.code === 200) {
+            this.$message({
+              type: 'success',
+              message: '鏀捐鎴愬姛!'
+            });
+            this.refresh()
+          }
+        })
+      }).catch(() => {
+        this.$message({
+          type: 'error',
+          message: '鏀捐澶辫触'
+        });
+      });
+    },
+    // 鎻愬墠鍏ュ簱
+    advancedGodown (row) {
+      this.$confirm('褰撳墠鍘熸潗鏂欐槸鍚︽彁鍓嶅叆搴�?', '鎻愮ず', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning'
+      }).then(() => {
+        this.$axios.post(this.$api.materialInspection.advancedGodown+'?ifsInventoryId='+row.id).then(res => {
+          if (res.code === 200) {
+            this.$message({
+              type: 'success',
+              message: '鎿嶄綔鎴愬姛!'
+            });
+            this.refresh()
+          }
+        })
+      }).catch(() => {
+        this.$message({
+          type: 'error',
+          message: '鎿嶄綔澶辫触'
+        });
+      });
+    },
+    // 鍏抽棴鏁版嵁鏌ョ湅寮规
+    closeDataLook () {
+      this.dataDialogVisible = false
+    },
+    // 鎵嬪姩鎶ユ
+    addDeclare () {
+      this.clear()
+      this.declareDialogVisible = true
+      this.declareType = 'add'
+    },
+    declareS () {
+      if (this.multipleSelection.length > 0) {
+        this.declareDialogSVisible = true
+      } else {
+        this.$message.error('璇烽�夋嫨闇�瑕佹姤妫�鐨勬暟鎹�')
+      }
+    },
+    submitDeclareS () {
+      let ids = []
+      this.multipleSelection.forEach(item => {
+        ids.push(item.id)
+      })
+      this.declareDialogSVisible = true
+      this.$axios.post(this.$api.rawMaterialOrder.inspectionReport, {
+        ids: ids
+      }, {
+        headers: {
+          'Content-Type': 'application/json'
+        }
+      }).then(res => {
+        if (res.code === 200) {
+          this.declareDialogSVisible = false
+          this.$message.success('鎶ユ鎴愬姛')
+          this.refresh()
+        }
+        this.submitDeclareLoading = false
+      }).catch(err => {
+        this.submitDeclareLoading = false
+        console.log(err)
+      })
+    },
+    // 鎵撳紑鎶ユ纭寮规
+    declare(row) {
+      this.declareObj = {...row}
+      this.declareDialogVisible = true
+      this.declareType = 'edit'
+    },
+    // 鎻愪氦鎶ユ
+    submitDeclare () {
+      if (this.declareType === 'add') {
+        this.$refs['declareObj'].validate((valid) => {
+          if (valid) {
+            this.$axios.post(this.$api.rawMaterialOrder.addIfsInventoryQuantity,
+              this.declareObj
+              , {
+                headers: {
+                  'Content-Type': 'application/json'
+                }
+              }).then(res => {
+              if (res.code === 200) {
+                this.declareDialogVisible = false
+                this.$message.success('鎶ユ鎴愬姛')
+                this.refresh()
+              }
+            }).catch(err => {
+              console.log(err)
+            })
+          } else {
+            console.log('error submit!!');
+            return false;
+          }
+        });
+      } else {
+        this.$refs['declareObj'].validate((valid) => {
+          if (valid) {
+            this.$axios.post(this.$api.rawMaterialOrder.inspectionReportOne, {
+              id: this.declareObj.id,
+              updateBatchNo: this.declareObj.updateBatchNo
+            }, {
+              headers: {
+                'Content-Type': 'application/json'
+              }
+            }).then(res => {
+              if (res.code === 200) {
+                this.declareDialogVisible = false
+                this.$message.success('鎶ユ鎴愬姛')
+                this.refresh()
+              }
+            }).catch(err => {
+              console.log(err)
+            })
+          } else {
+            console.log('error submit!!');
+            return false;
+          }
+        });
+      }
+    },
+    resetForm () {
+      this.$refs['declareObj'].resetFields();
+      this.declareDialogVisible = false
+    },
+    // 鎵撳紑鍒犻櫎寮规
+    deleteMaterial (row) {
+      this.deleteVisible = true
+      this.deleteInfo = row
+    },
+    // 纭鍒犻櫎
+    submitDelete () {
+      this.deleteLoading = true
+      this.$axios.post(this.$api.rawMaterialOrder.delIfsInventory + '?id=' + this.deleteInfo.id).then(res => {
+        if (res.code === 200) {
+          this.deleteVisible = false
+          this.$message.success('鍒犻櫎鎴愬姛')
+          this.refresh()
+        }
+        this.deleteLoading = false
+      }).catch(err => {
+        console.log(err)
+        this.deleteLoading = false
+      })
+    },
+    // 琛ㄦ牸閫夋嫨鏂规硶
+    selectMethod(val) {
+      this.multipleSelection = val
+    },
+    // 鑾峰彇IFS鎸夐挳鍥炶皟
+    openIFS() {
+      this.btnLoading = true
+      this.$axios.post(this.$api.materialInspection.getIfsOrder).then(res => {
+        if (res.code === 200) {
+          this.refresh()
+        }
+        this.btnLoading = false
+      }).catch(err => {
+        this.btnLoading = false
+        console.log(err)
+      })
+    },
+    changeRowClass({row, rowIndex}) {
+      if (row.isFirst == 1) {
+        return 'highlight-danger-row-border'
+      }
+      return ''
+    },
+    getStyle() {
+      return 'height: calc(100% - ' + (this.more ? '94' : '44') + 'px)'
+    },
+    getWarehouseSubmitApi () {
+      const row = {}
+      getWarehouseSubmit(row).then(response => {
+
+      })
+    },
+    // 鍏ㄩ儴瀵煎嚭
+    handleDown(){
+      let entity = {...this.componentData4.entity}
+      delete entity.orderBy
+      this.outLoading = true
+      this.$axios.post(this.$api.rawMaterialOrder.rawAllExport,{
+        entity:entity
+      },{
+        headers: {
+          'Content-Type': 'application/json'
+        }
+        ,responseType: "blob"}).then(res => {
+        this.outLoading = false
+        this.$message.success('瀵煎嚭鎴愬姛')
+        const blob = new Blob([res],{ type: 'application/octet-stream' });
+        const url = URL.createObjectURL(blob);
+        const link = document.createElement('a');
+        link.href = url;
+        link.download = '鍘熸潗鏂欐娴嬩俊鎭鍑�.xlsx';
+        link.click();
+      })
+    },
+    clear() {
+      this.declareObj = {
+        id: null,
+        orderNo: '', // 璁㈠崟鍙�
+        partNo: '', // 闆朵欢鍙�
+        partDesc: '', // 闆朵欢鎻忚堪
+        qtyArrived: '', // 鎶佃揪鐨勯噰璐暟閲�
+        supplierId: '', // 渚涘簲鍟嗙紪鍙�
+        supplierName: '', // 渚涘簲鍟嗗悕绉�
+        updateBatchNo: '', // 鎵瑰彿
+        locationNo: '', // 搴撲綅鍙�
+        receiverDate: '', // 鎺ユ敹鏃堕棿
+        buyUnitMeas: '', // 鍗曚綅
+        isExpire: '', // 鍗曚綅
+      }
+    }
+  },
+}
+</script>
+
+<style scoped lang="scss">
+.app-container {
+  padding-top: 0;
+}
+.title {
+  height: 60px;
+  line-height: 60px;
+}
+
+.tab {
+  list-style-type: none;
+  display: flex;
+  margin-bottom: 12px;
+  margin-top: 0;
+  padding-left: 0;
+}
+
+.tab li {
+  line-height: 24px;
+  padding: 6px 14px;
+  font-size: 14px;
+  color: #333333;
+  border: 1px solid #EEEEEE;
+  cursor: pointer;
+}
+
+.tab li:nth-child(1) {
+  border-radius: 8px 0 0 8px;
+}
+
+.tab li:nth-child(4) {
+  border-radius: 0 8px 8px 0;
+}
+
+.tab li.active {
+  border-color: #3A7BFA;
+  color: #3A7BFA;
+}
+</style>

--
Gitblit v1.9.3