From e53971d9779889889ff8153c391361606d640ab4 Mon Sep 17 00:00:00 2001
From: zhuo <2089219845@qq.com>
Date: 星期二, 22 四月 2025 16:10:11 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 src/views/CNAS/process/disposal/sampleDisposal/index.vue                               |  568 +++++++++++++++++++
 src/views/CNAS/personnel/personnelInfo/tabs/training-record.vue                        |   16 
 src/views/CNAS/process/ensureResults/qualityControlPlan/components/processingSheet.vue |   12 
 src/views/business/materialOrderComponents/materialOrder/showInfo.vue                  |    6 
 src/views/business/reportPreparation/index.vue                                         |    4 
 src/views/business/inspectionTask/inspection.vue                                       |   14 
 src/views/business/materialOrder/copperView.vue                                        |   13 
 src/views/business/inspectionTask/index.vue                                            |    5 
 /dev/null                                                                              |  521 -----------------
 src/views/CNAS/systemManagement/documentRecords/distributionCollectionRecord.vue       |    1 
 src/views/CNAS/process/disposal/sampleReceipt/index.vue                                |  321 +++++++++++
 src/views/business/materialOrder/copperOrder.vue                                       |   13 
 src/api/cnas/process/sampleDisposal.js                                                 |   51 +
 src/components/echarts/DataComparison.vue                                              |  131 ++-
 src/views/business/inspectionView/index.vue                                            |   14 
 15 files changed, 1,024 insertions(+), 666 deletions(-)

diff --git a/src/api/cnas/process/sampleDisposal.js b/src/api/cnas/process/sampleDisposal.js
index a763edd..82501ac 100644
--- a/src/api/cnas/process/sampleDisposal.js
+++ b/src/api/cnas/process/sampleDisposal.js
@@ -1,6 +1,6 @@
-// 妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�
 import request from "@/utils/request";
 
+// 妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�
 // 淇敼
 export function doProcessDeal(data) {
   return request({
@@ -10,7 +10,7 @@
   });
 }
 
-// 鏂板
+// 鏂板璇︽儏
 export function addProcessDeal(data) {
   return request({
     url: "/processDeal/addProcessDeal",
@@ -27,11 +27,19 @@
     data: data,
   });
 }
+// 鎻愪氦鍘嗗彶  浼犲弬id
+export function addProcessTotaldeal(data) {
+  return request({
+    url: "/processTotaldeal/addProcessTotaldeal",
+    method: "post",
+    data: data,
+  });
+}
 
 //鏌ヨ璇︽儏  鍒嗛〉鏌ヨ閲岄潰totaldealId  浼犲弬鍘嗗彶鐨刬d
-export function pageProcessDeal(query) {
+export function getProcessDeal(query) {
   return request({
-    url: "/processDeal/pageProcessDeal",
+    url: "/processDeal/getProcessDeal",
     method: "get",
     params: query,
   });
@@ -72,3 +80,38 @@
     params: query,
   });
 }
+
+
+// 鏍峰搧鎺ユ敹-鍒嗛〉鏌ヨ
+export function pageProcessSample(query) {
+  return request({
+    url: "/processSample/pageProcessSample",
+    method: "get",
+    params: query,
+  });
+}
+// 鏍峰搧鎺ユ敹-鏂板/淇敼
+export function addProcessSample(query) {
+  return request({
+    url: "/processSample/addProcessSample",
+    method: "post",
+    data: query,
+  });
+}
+// 鏍峰搧鎺ユ敹-鍒犻櫎
+export function delProcessSample(query) {
+  return request({
+    url: "/processSample/delProcessSample",
+    method: "delete",
+    params: query,
+  });
+}
+// 鏍峰搧鎺ユ敹-瀵煎嚭
+export function exportProcessSample(query) {
+  return request({
+    url: "/processSample/exportProcessSample",
+    method: "get",
+    responseType: "blob",
+    params: query,
+  });
+}
diff --git a/src/components/echarts/DataComparison.vue b/src/components/echarts/DataComparison.vue
index 19d65e7..fd62924 100644
--- a/src/components/echarts/DataComparison.vue
+++ b/src/components/echarts/DataComparison.vue
@@ -163,7 +163,7 @@
                      :legend="legend2"
                      :lineColors="lineColors"
                      :series="echartsSeries2"
-                     :tooltip="tooltip"
+                     :tooltip="tooltip1"
                      :xAxis="xAxis"
                      :yAxis="yAxis2"
                      style="height: 40vh;"></Echarts>
@@ -190,6 +190,7 @@
 
 <script>
 import Echarts from "./echarts.vue";
+import {getRawSupplierCompare} from "@/api/statisticalCharts/dataAnalysis";
 
 export default {
   name: "DataComparison",
@@ -277,6 +278,20 @@
           type: 'shadow'
         }
       },
+      tooltip1: {
+        trigger: 'axis',
+        axisPointer: {
+          type: 'shadow'
+        },
+        formatter: (params) => {
+          // params 鏄竴涓暟缁勶紝鍖呭惈褰撳墠榧犳爣鎮仠鐨勬墍鏈夌郴鍒楃殑鏁版嵁
+          return params.map(param => {
+            const value = param.value; // 鑾峰彇褰撳墠鏁版嵁鐐圭殑鍊�
+            const name = param.seriesName; // 鑾峰彇绯诲垪鍚嶇О
+            return `${name}: ${Math.round(value)}%`; // 鏍煎紡鍖栦负鐧惧垎姣斿舰寮�
+          }).join('<br>'); // 姣忎釜绯诲垪鍗犱竴琛�
+        }
+      },
       xAxis: [{
         type: 'category',
         data: ['1', '2', '3', '4', '5']
@@ -351,7 +366,10 @@
       yAxis2: [{
         type: 'value',
         min: 0,
-        max: 1,
+        max: 100,
+        axisLabel: {
+          formatter: '{value}%' // 鍦ㄦ瘡涓埢搴﹀�煎悗娣诲姞鐧惧垎姣旂鍙�
+        }
       }],
       echartsSeries2: [
         {
@@ -360,7 +378,7 @@
           label: {
             show: true,
             position: 'top',
-            formatter: (params) => Math.round(params.value * 1000) / 10 + '%'
+            formatter: (params) => params.value + '%'
           },
           data: [],
         },
@@ -370,7 +388,7 @@
           label: {
             show: true,
             position: 'top',
-            formatter: (params) => Math.round(params.value * 1000) / 10 + '%'
+            formatter: (params) => params.value + '%'
           },
           data: [],
         }
@@ -389,43 +407,65 @@
   },
   // 鏂规硶闆嗗悎
   methods: {
-    getInfo () {
-      this.localData = this.comparisonData.localData === null ? ['', '', '', '', '','','', '', ''] : this.comparisonData.localData
-      this.localData = this.localData.map((number, index) => index === 7 ? `${Math.round(number * 100)}%` : number)
-      this.echartsSeries3[0].data = this.localData.slice(0, 5)
-      this.localULC = this.comparisonData.localULC
-      this.localLCL = this.comparisonData.localLCL
-      this.localAverage = this.comparisonData.localAverage
-      this.localRange = this.comparisonData.localRange
+    getInfo() {
+      const { localData, localULC, localLCL, localAverage, localRange } = this.comparisonData;
+      // 鍒濆鍖� localData锛岀‘淇濇湁榛樿鍊�
+      this.localData = localData === null
+        ? ['', '', '', '', '', '', '', '', '']
+        : localData.map((number, index) => index === 7 ? `${Math.round(number * 100)}%` : number);
+      // 鏇存柊鍥捐〃鏁版嵁
+      this.echartsSeries3[0].data = this.localData.slice(0, 5);
+      this.localULC = localULC;
+      this.localLCL = localLCL;
+      this.localAverage = localAverage;
+      this.localRange = localRange;
     },
-    getInfo1 () {
-      this.echartsSeries1[0].data = []
-      this.supplierData = this.comparisonData1.supplierData === null ? ['', '', '', '', '','','', '', ''] : this.comparisonData1.supplierData
-      this.localData = this.comparisonData1.localData === null ? ['', '', '', '', '','','', '', ''] : this.comparisonData1.localData
-      this.localData = this.localData.map((number, index) => index === 7 ? `${Math.round(number * 100)}%` : number)
-      this.echartsSeries3[0].data = this.localData.slice(0, 5)
-      this.echartsSeries[0].data = this.supplierData
-      this.echartsSeries[1].data = this.localData
-      this.absoluteDeviation = this.comparisonData1.absoluteDeviation === null ? ['', '', '', '', '','','', '', ''] : this.comparisonData1.absoluteDeviation
-      this.echartsSeries2[1].data = this.absoluteDeviation
-      this.absoluteDeviation = this.absoluteDeviation.map(number => `${Math.round(number * 100)}%`) // 缁濆鍋忓樊鐧惧垎姣旇浆鎹�
-      this.average = this.comparisonData1.average === null ? ['', '', '', '', '','','', '', ''] : this.comparisonData1.average
-      this.echartsSeries2[0].data = this.average
-      this.average = this.average.map(number => `${Math.round(number * 100)}%`) // 骞冲潎鍊肩櫨鍒嗘瘮杞崲
-      this.supplierULC = this.comparisonData1.supplierULC === null ? ['', '', '', '', ''] : this.comparisonData1.supplierULC
-      this.echartsSeries1[0].data.push(this.supplierULC[0]) // 娴嬮噺鏁版嵁鏍囧噯宸姣旀煴鐘跺浘鏁版嵁
-      this.supplierLCL = this.comparisonData1.supplierLCL === null ? ['', '', '', '', ''] : this.comparisonData1.supplierLCL
-      this.echartsSeries1[1].data.push(this.supplierLCL[0]) // 娴嬮噺鏁版嵁鏍囧噯宸姣旀煴鐘跺浘鏁版嵁
-      this.supplierAverage = this.comparisonData1.supplierAverage === null ? ['', '', '', '', ''] : this.comparisonData1.supplierAverage
-      this.echartsSeries1[2].data.push(this.supplierAverage[0]) // 娴嬮噺鏁版嵁鏍囧噯宸姣旀煴鐘跺浘鏁版嵁
-      this.supplierRange = this.comparisonData1.supplierRange === null ? ['', '', '', '', ''] : this.comparisonData1.supplierRange
-      this.localULC = this.comparisonData1.localULC
-      this.echartsSeries1[0].data.push(this.localULC[0]) // 娴嬮噺鏁版嵁鏍囧噯宸姣旀煴鐘跺浘鏁版嵁
-      this.localLCL = this.comparisonData1.localLCL
-      this.echartsSeries1[1].data.push(this.localLCL[0]) // 娴嬮噺鏁版嵁鏍囧噯宸姣旀煴鐘跺浘鏁版嵁
-      this.localAverage = this.comparisonData1.localAverage
-      this.echartsSeries1[2].data.push(this.localAverage[0]) // 娴嬮噺鏁版嵁鏍囧噯宸姣旀煴鐘跺浘鏁版嵁
-      this.localRange = this.comparisonData1.localRange
+    getInfo1() {
+      const {
+        supplierData,
+        localData,
+        absoluteDeviation,
+        average,
+        supplierULC,
+        supplierLCL,
+        supplierAverage,
+        supplierRange,
+        localULC,
+        localLCL,
+        localAverage,
+        localRange,
+      } = this.comparisonData1;
+      // 杈呭姪鍑芥暟锛氬鐞嗙┖鏁版嵁骞惰浆鎹㈢櫨鍒嗘瘮
+      const processPercentageData = (data, defaultValue = ['', '', '', '', '', '', '', '', '']) =>
+        data === null ? defaultValue : data.map((number, index) => index === 7 ? `${Math.round(number * 100)}%` : number);
+      // 杈呭姪鍑芥暟锛氬鐞嗙┖鏁板�煎瀷鏁版嵁
+      const processNumericData = (data, defaultValue = ['', '', '', '', '']) =>
+        data === null ? defaultValue : data;
+      // 鍒濆鍖栨暟鎹�
+      this.supplierData = processPercentageData(supplierData);
+      this.localData = processPercentageData(localData);
+      this.absoluteDeviation = processPercentageData(absoluteDeviation).map(number => `${Math.round(number * 100)}%`);
+      this.average = processPercentageData(average).map(number => `${Math.round(number * 100)}%`);
+      // 鏇存柊鍥捐〃鏁版嵁
+      this.echartsSeries1[0].data = [];
+      this.echartsSeries3[0].data = this.localData.slice(0, 5);
+      this.echartsSeries[0].data = this.supplierData;
+      this.echartsSeries[1].data = this.localData;
+      this.echartsSeries2[1].data = this.comparisonData1.absoluteDeviation.map(value => value * 100);
+      this.echartsSeries2[0].data = this.comparisonData1.average.map(value => value * 100);
+      // 澶勭悊渚涘簲鍟嗗拰鏈湴鐨勬爣鍑嗗樊瀵规瘮鏁版嵁
+      this.supplierULC = processNumericData(supplierULC);
+      this.supplierLCL = processNumericData(supplierLCL);
+      this.supplierAverage = processNumericData(supplierAverage);
+      this.supplierRange = processNumericData(supplierRange);
+      this.localULC = processNumericData(localULC);
+      this.localLCL = processNumericData(localLCL);
+      this.localAverage = processNumericData(localAverage);
+      this.localRange = processNumericData(localRange);
+      // 鏇存柊娴嬮噺鏁版嵁鏍囧噯宸姣旀煴鐘跺浘鏁版嵁
+      this.echartsSeries1[0].data.push(this.supplierULC[0], this.localULC[0]);
+      this.echartsSeries1[1].data.push(this.supplierLCL[0], this.localLCL[0]);
+      this.echartsSeries1[2].data.push(this.supplierAverage[0], this.localAverage[0]);
     },
     submitForm () {
       this.$refs['supplierForm'].validate((valid) => {
@@ -435,12 +475,7 @@
             itemNames: this.selectRow.itemNames,
             supplierDataList: Object.values(this.supplierForm)
           }
-          this.$axios.post(this.$api.dataAnalysis.getRawSupplierCompare, params, {
-            headers: {
-              'Content-Type': 'application/json'
-            },
-            noQs: true
-          }).then(res => {
+          getRawSupplierCompare(params).then(res => {
             this.comparisonData1 = res.data
             this.getInfo1()
           })
@@ -459,8 +494,8 @@
 
 <style scoped>
 .title {
-  height: 60px;
-  line-height: 60px;
+  height: 40px;
+  line-height: 40px;
 }
 .container {
   width: calc(100% - 20px);
diff --git a/src/views/CNAS/personnel/personnelInfo/tabs/training-record.vue b/src/views/CNAS/personnel/personnelInfo/tabs/training-record.vue
index 57c6947..52d1c4b 100644
--- a/src/views/CNAS/personnel/personnelInfo/tabs/training-record.vue
+++ b/src/views/CNAS/personnel/personnelInfo/tabs/training-record.vue
@@ -169,22 +169,6 @@
     this.getPersonnelTraining(this.departId);
   },
   methods: {
-    // exportExcel() {
-    //   this.outLoading = true;
-    //   const name = this.isDepartment ? 'departmentId' : 'userId';
-    //   this.$axios.get(this.$api.personal.personTrackRecordExport + `&${name}=` + this.departId, { 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();
-    //   }).catch(err => {
-    //     this.outLoading = false;
-    //   })
-    // },
     // 鏌ヨ
     refreshTable() {
       this.getPersonnelTraining(this.departId);
diff --git a/src/views/CNAS/process/disposal/sampleDisposal/index.vue b/src/views/CNAS/process/disposal/sampleDisposal/index.vue
new file mode 100644
index 0000000..f966024
--- /dev/null
+++ b/src/views/CNAS/process/disposal/sampleDisposal/index.vue
@@ -0,0 +1,568 @@
+<template>
+  <div class="capacity-scope">
+    <div style="display: flex;justify-content: space-between;align-items: flex-start">
+      <el-form :model="queryParams0" ref="queryParams0" size="small" :inline="true">
+        <el-form-item label="骞存湀" prop="month">
+          <el-date-picker v-model="queryParams0.month" type="month" placeholder="閫夋嫨鏈�" format="yyyy-MM"
+                          value-format="yyyy-MM" size="small" @change="refreshTable()">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" size="mini" @click="refreshTable">鏌ヨ</el-button>
+          <el-button size="mini" @click="refresh">閲嶇疆</el-button>
+        </el-form-item>
+      </el-form>
+      <el-button size="small" type="primary" @click="handleAdd0">鏂板</el-button>
+    </div>
+    <div class="table">
+      <lims-table :tableData="tableData0" :column="column0" :tableLoading="tableLoading"
+                  key="tableData0" :height="'calc(100vh - 240px)'" :page="page0" @pagination="pagination0"></lims-table>
+    </div>
+    <el-dialog title="璇︽儏" :visible.sync="editDialogVisible" width="70%">
+      <el-button size="small" type="primary" @click="handleAdd('add')" style="margin-bottom: 10px">鏂板</el-button>
+      <lims-table :tableData="tableData" :column="column" :tableLoading="tableLoading"
+                  key="tableData" :height="'calc(100vh - 290px)'">
+      </lims-table>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="editDialogVisible = false">鍙栨秷</el-button>
+      </span>
+    </el-dialog>
+    <!-- 鏂板鏍峰搧 -->
+    <el-dialog title="鏂板" :visible.sync="addDialogVisible" width="400px" @close="closeAddDialogVisible">
+      <el-form ref="addInfo" :model="addInfo" :rules="rules" label-width="120px">
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="鏍峰搧鍚嶇О" prop="sampleName">
+              <el-input size="small" placeholder="璇疯緭鍏�" clearable
+                        v-model="addInfo.sampleName"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="鏍峰搧缂栧彿" prop="sampleCode">
+              <el-input size="small" placeholder="璇疯緭鍏�" clearable
+                        v-model="addInfo.sampleCode"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="渚涙牱鍗曚綅" prop="sampleSupplier">
+              <el-select v-model="addInfo.sampleSupplier" size="small">
+                <el-option :label="item.company" :value="item.company" v-for="(item, index) in customPageList"
+                           :key="item.id"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="鏁伴噺" prop="num">
+              <el-input size="small" placeholder="璇疯緭鍏�" clearable
+                        v-model="addInfo.num"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="澶勭悊鏂瑰紡" prop="dealMethod">
+              <el-input size="small" placeholder="璇疯緭鍏�" clearable
+                        v-model="addInfo.dealMethod"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="鏃堕棿" prop="dealTime">
+              <el-date-picker v-model="addInfo.dealTime" type="date" size="small" placeholder="閫夋嫨鏃ユ湡" format="yyyy-MM-dd"
+                              value-format="yyyy-MM-dd" style="width: 100%;">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="closeAddDialogVisible">鍙� 娑�</el-button>
+        <el-button type="primary" @click="submitAdd" :loading="addLoading">纭� 瀹�</el-button>
+      </span>
+    </el-dialog>
+    <!-- 鏂板鍘嗗彶 -->
+    <el-dialog title="鏂板" :visible.sync="addDialogVisibleDeal" width="400px" @close="closeDiaDeal">
+      <el-form ref="addInfoDeal" :model="addInfoDeal" :rules="rulesDeal" label-width="80px">
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="鏈堜唤" prop="month">
+              <el-date-picker v-model="addInfoDeal.month" type="month" size="small" placeholder="閫夋嫨鏈堜唤" format="yyyy-MM"
+                              value-format="yyyy-MM" style="width: 100%;">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="closeDiaDeal">鍙� 娑�</el-button>
+        <el-button type="primary" @click="submitAddDeal" :loading="addLoading">纭� 瀹�</el-button>
+      </span>
+    </el-dialog>
+    <!-- 璇︽儏/涓嬭浇/瀹℃牳/鎵瑰噯 -->
+    <el-dialog :title="title0" :visible.sync="lookDialogVisible" width="400px" :class="{ downPdf: title0 == '涓嬭浇' }"
+      :modal="title0 != '涓嬭浇'" top="5vh">
+      <span>鏄惁閫氳繃{{title0}}锛�</span>
+      <span slot="footer" class="dialog-footer" v-if="title0 == '瀹℃牳' || title0 == '鎵瑰噯'">
+        <el-button @click="submitCheck('涓嶉�氳繃')" :loading="noCheckLoading">涓嶉�氳繃</el-button>
+        <el-button type="primary" @click="submitCheck('閫氳繃')" :loading="checkLoading">閫� 杩�</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import limsTable from "@/components/Table/lims-table.vue";
+import filePreview from "@/components/Preview/filePreview.vue";
+import { selectCustomPageList } from "@/api/system/customer";
+import {
+  doProcessDeal,
+  addProcessDeal,
+  submitProcessTotaldeal,
+  pageProcessDeal,
+  checkProcessTotaldeal,
+  ratifyProcessTotaldeal,
+  delProcessDeal,
+  pageProcessTotaldeal, getProcessDeal, addProcessTotaldeal,
+} from "@/api/cnas/process/sampleDisposal";
+export default {
+  name: 'SampleDisposal',
+  components: {
+    limsTable,
+    filePreview,
+  },
+  data() {
+    return {
+      title: '鏂板',
+      addDialogVisible: false,
+      addLoading: false,
+      outLoading: false,
+      editDialogVisible: false,
+      queryParams: {},
+      submitState: '',
+      lookDialogVisible: false,
+      title0: '鏌ョ湅',
+      noCheckLoading: false,
+      checkLoading: false,
+      // 鍘嗗彶鍒楄〃
+      addInfo: {},//鏂板鏍峰搧
+      addInfoDeal: {
+        month: ''
+      },//鏂板鏍峰搧
+      addDialogVisibleDeal: false,
+      rules: {
+        sampleName: [{ required: true, message: '璇峰~鍐欐牱鍝佸悕绉�', trigger: 'blur' }],
+        sampleCode: [{ required: true, message: '璇峰~鍐欐牱鍝佺紪鍙�', trigger: 'blur' }],
+        sampleSupplier: [{ required: true, message: '璇烽�夋嫨渚涙牱鍗曚綅', trigger: 'change' }],
+        num: [{ required: true, message: '璇峰~鍐欐暟閲�', trigger: 'blur' }],
+        dealMethod: [{ required: true, message: '璇峰~鍐欏鐞嗘柟寮�', trigger: 'blur' }],
+        dealTime: [{ required: true, message: '璇烽�夋嫨鏃堕棿', trigger: 'change' }],
+      },
+      rulesDeal: {
+        month: [{ required: true, message: '璇烽�夋嫨鏈堜唤', trigger: 'change' }],
+      },
+      customPageList: [],
+      currentInfo: {
+        arr: []
+      },//鏌ョ湅鐨勮鎯�
+      outPower: false,
+      addPower: false,
+      tableData: [],
+      column: [
+        { label: "鏍峰搧鍚嶇О", prop: "sampleName" },
+        { label: "鏍峰搧缂栧彿", prop: "sampleCode" },
+        { label: "渚涙牱鍗曚綅", prop: "sampleSupplier" },
+        { label: "鏁伴噺", prop: "num" },
+        { label: "澶勭悊鏂瑰紡", prop: "dealMethod" },
+        { label: "鏃堕棿", prop: "dealTime" },
+        {
+          dataType: "action",
+          label: "鎿嶄綔",
+          operation: [
+            {
+              name: "缂栬緫",
+              type: "text",
+              clickFun: (row) => {
+                this.handleAdd('edit',row);
+              },
+              disabled: (row) => {
+                return this.submitState === '宸叉彁浜�'
+              }
+            },
+            {
+              name: "鍒犻櫎",
+              type: "text",
+              clickFun: (row) => {
+                this.handleDelete(row);
+              },
+              disabled: (row) => {
+                return this.submitState === '宸叉彁浜�'
+              }
+            },
+          ],
+        },
+      ],
+      tableLoading: false,
+      queryParams0: {},
+      tableData0: [],
+      column0: [
+        { label: "鏈堜唤", prop: "month" },
+        { label: "鎻愪氦浜�", prop: "submitUserName" },
+        {
+          dataType: 'tag',
+          label: '鎻愪氦鐘舵��',
+          prop: 'submitState',
+          formatData: (params) => {
+            return params
+          },
+          formatType: (params) => {
+            if (params === '寰呮彁浜�') {
+              return 'danger';
+            } else if (params === '宸叉彁浜�') {
+              return 'success';
+            } else {
+              return null;
+            }
+          }
+        },
+        { label: "瀹℃牳浜�", prop: "examineUserName" },
+        {
+          dataType: 'tag',
+          label: '瀹℃牳鐘舵��',
+          prop: 'examineState',
+          formatData: (params) => {
+            return params
+          },
+          formatType: (params) => {
+            if (params === '涓嶉�氳繃') {
+              return 'danger';
+            } else if (params === '閫氳繃') {
+              return 'success';
+            } else {
+              return null;
+            }
+          }
+        },
+        { label: "鎵瑰噯浜�", prop: "ratifyUserName" },
+        {
+          dataType: 'tag',
+          label: '鎵瑰噯鐘舵��',
+          prop: 'ratifyState',
+          formatData: (params) => {
+            return params
+          },
+          formatType: (params) => {
+            if (params === '涓嶉�氳繃') {
+              return 'danger';
+            } else if (params === '閫氳繃') {
+              return 'success';
+            } else {
+              return null;
+            }
+          }
+        },
+        {
+          dataType: "action",
+          label: "鎿嶄綔",
+          operation: [
+            {
+              name: "鏌ョ湅",
+              type: "text",
+              clickFun: (row) => {
+                this.handleLook(row);
+              },
+            },
+            {
+              name: "涓嬭浇",
+              type: "text",
+              clickFun: (row) => {
+                this.handleDown0(row);
+              },
+              disabled: (row) => {
+                return !row.url
+              }
+            },
+            {
+              name: "鎻愪氦",
+              type: "text",
+              clickFun: (row) => {
+                this.handleSubmit(row);
+              },
+              disabled: (row) => {
+                return !!row.submitState && row.submitState != '寰呮彁浜�'
+              }
+            },
+            {
+              name: "瀹℃牳",
+              type: "text",
+              clickFun: (row) => {
+                this.handleCheck(row);
+              },
+              disabled: (row) => {
+                return row.examineState == '閫氳繃' || row.submitState == '寰呮彁浜�'
+              }
+            },
+            {
+              name: "鎵瑰噯",
+              type: "text",
+              clickFun: (row) => {
+                this.handleApproval(row);
+              },
+              disabled: (row) => {
+                return row.ratifyState == '閫氳繃' || row.submitState == '寰呮彁浜�'
+              }
+            },
+          ],
+        },
+      ],
+      page0: {
+        total: 0,
+        size: 20,
+        current: 1,
+      },
+      operationType: ''
+    };
+  },
+  mounted() {
+    this.getList0()
+  },
+  methods: {
+    // 鑾峰彇閫佹牱鍗曚綅鍒楄〃
+    getCustomPageList() {
+      selectCustomPageList({
+        current: -1,
+        size: -1
+      }).then(res => {
+        this.customPageList = res.data.records
+      }).catch(err => { });
+    },
+    handleDown() { },
+    refresh() {
+      this.queryParams0 = {};
+      this.page0.current = 1;
+      this.getList0();
+    },
+    refreshTable() {
+      this.page0.current = 1;
+      this.getList0();
+    },
+    // 鏌ヨ鍏ㄩ儴璁板綍
+    getList0() {
+      this.tableLoading = true;
+      let param = { ...this.queryParams0, ...this.page0 };
+      delete param.total;
+      pageProcessTotaldeal({ ...param })
+        .then((res) => {
+          this.tableLoading = false;
+          if (res.code === 200) {
+            this.tableData0 = res.data.records;
+            this.page0.total = res.data.total;
+          }
+        })
+        .catch((err) => {
+          this.tableLoading = false;
+        });
+    },
+    pagination0({ page, limit }) {
+      this.page0.current = page;
+      this.page0.size = limit;
+      this.getList0();
+    },
+    // 鎵撳紑鏂板鍘嗗彶鐣岄潰
+    handleAdd0() {
+      this.addDialogVisibleDeal = true
+      this.addInfoDeal.month = ''
+    },
+    closeAddDialogVisible() {
+      this.$refs['addInfo'].resetFields();
+      this.addDialogVisible = false
+    },
+    // 鎻愪氦鏂板-鍘嗗彶
+    submitAddDeal () {
+      this.$refs.addInfoDeal.validate(valid => {
+        if (valid) {
+          // 鏂板
+          this.addLoading = true
+          addProcessTotaldeal({
+            ...this.addInfoDeal
+          }).then(res => {
+            this.addLoading = false
+            this.addDialogVisibleDeal = false
+            this.$message({
+              type: 'success',
+              message: '鏂板鎴愬姛!'
+            });
+            this.getList0()
+          }).catch(err => {
+            this.addLoading = false
+          });
+        }
+      })
+    },
+    closeDiaDeal() {
+      this.$refs['addInfoDeal'].resetFields();
+      this.addDialogVisibleDeal = false
+    },
+    // 鎻愪氦
+    handleSubmit(row) {
+      this.$confirm('鏄惁鎻愪氦 ' + row.month + ' 鏈堜唤鐨勬暟鎹�', '鎻愪氦', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning'
+      }).then(() => {
+        submitProcessTotaldeal({
+          id: row.id
+        }).then(res => {
+          this.$message({
+            type: 'success',
+            message: '鎻愪氦鎴愬姛!'
+          });
+          this.refreshTable()
+        }).catch(err => { });
+      })
+    },
+    // 鏌ョ湅
+    handleLook(row) {
+      this.queryParams.id = row.id
+      this.submitState = row.submitState
+      this.$nextTick(() => {
+        this.editDialogVisible = true
+        this.getList();
+      })
+    },
+    getList() {
+      this.tableLoading = true;
+      let param = { ...this.queryParams };
+      getProcessDeal({ ...param }).then((res) => {
+          this.tableLoading = false;
+          if (res.code === 200) {
+            this.tableData = res.data;
+          }
+        })
+        .catch((err) => {
+          this.tableLoading = false;
+        });
+    },
+    // 鎵撳紑鏂板璇︽儏寮规
+    handleAdd(type, row) {
+      this.addDialogVisible = true
+      this.getCustomPageList()
+      this.operationType = type
+      if (row) {
+        this.addInfo = {...row}
+      }
+    },
+    // 鎻愪氦-璇︽儏
+    submitAdd() {
+      this.$refs.addInfo.validate(valid => {
+        if (valid) {
+          this.addLoading = true
+          addProcessDeal({
+            totaldealId: this.queryParams.id,
+            ...this.addInfo
+          }).then(res => {
+            this.addLoading = false
+            this.addDialogVisible = false
+            this.$message({
+              type: 'success',
+              message: '鏂板鎴愬姛!'
+            });
+            this.getList()
+          }).catch(err => {
+            this.addLoading = false
+          });
+        }
+      })
+    },
+    // 鎻愪氦淇敼璇︽儏
+    handleEdit() {
+      if (type === 'submit') {
+        doProcessDeal({
+          id: row.id,
+          ...row
+        }).then(res => {
+          this.$message({
+            type: 'success',
+            message: '缂栬緫鎴愬姛!'
+          });
+          this.getList();
+        }).catch(err => { });
+      }
+    },
+    // 瀹℃牳
+    handleCheck(row) {
+      this.title0 = '瀹℃牳'
+      this.lookDialogVisible = true
+      this.currentInfo = row
+      this.queryParams.id = row.id
+    },
+    // 鎵瑰噯
+    handleApproval(row) {
+      this.title0 = '鎵瑰噯'
+      this.lookDialogVisible = true
+      this.currentInfo = row
+      this.queryParams.id = row.id
+    },
+    // 鎻愪氦瀹℃牳/鎵瑰噯
+    submitCheck(state) {
+      if (state == '閫氳繃') {
+        this.checkLoading = true
+      } else {
+        this.noCheckLoading = true
+      }
+      if (this.title0 == '瀹℃牳') {
+        checkProcessTotaldeal({
+          id: this.currentInfo.id,
+          state: state
+        }).then(res => {
+          this.checkLoading = false
+          this.noCheckLoading = false
+          this.$message({
+            type: 'success',
+            message: '鎿嶄綔鎴愬姛!'
+          });
+          this.refreshTable()
+          this.lookDialogVisible = false
+        }).catch(err => { });
+      } else if (this.title0 == '鎵瑰噯') {
+        ratifyProcessTotaldeal({
+          id: this.currentInfo.id,
+          state: state
+        }).then(res => {
+          this.checkLoading = false
+          this.noCheckLoading = false
+          this.$message({
+            type: 'success',
+            message: '鎿嶄綔鎴愬姛!'
+          });
+          this.refreshTable()
+          this.lookDialogVisible = false
+        }).catch(err => { });
+      }
+    },
+    // 瀵煎嚭璇︽儏
+    handleDown0(row) {
+      if (!row.url) {
+        this.$message.warning('鏆傛棤鏂囦欢')
+        return
+      }
+      // 鍚庣涓嬭浇
+      this.$download.saveAs(row.url, row.month + ' 鏍峰搧澶勭悊鐢宠琛�');
+    },
+    handleDelete(row) {
+      this.$confirm("鏄惁鍒犻櫎璇ユ潯鏁版嵁?", "鎻愮ず", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning",
+      }).then(() => {
+        delProcessDeal({ id: row.id }).then((res) => {
+          this.$message.success("鍒犻櫎鎴愬姛");
+          this.getList();
+         });
+      }).catch(() => { });
+    },
+  },
+}
+</script>
+
+<style scoped>
+>>>.el-dialog__body {
+  padding-top: 10px;
+}
+</style>
diff --git a/src/views/CNAS/process/disposal/sampleReceipt/index.vue b/src/views/CNAS/process/disposal/sampleReceipt/index.vue
new file mode 100644
index 0000000..8ea9309
--- /dev/null
+++ b/src/views/CNAS/process/disposal/sampleReceipt/index.vue
@@ -0,0 +1,321 @@
+<template>
+  <div class="capacity-scope">
+    <div style="display: flex;justify-content: space-between;align-items: flex-start">
+      <el-form :model="queryParams0" ref="queryParams0" size="small" :inline="true">
+        <el-form-item label="鏀舵牱鏃ユ湡" prop="receiveDate">
+          <el-date-picker v-model="queryParams0.receiveDate" type="date" placeholder="閫夋嫨鏃ユ湡" format="yyyy-MM-dd"
+                          value-format="yyyy-MM-dd" size="small" @change="refreshTable()">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" size="mini" @click="refreshTable">鏌ヨ</el-button>
+          <el-button size="mini" @click="refresh">閲嶇疆</el-button>
+        </el-form-item>
+      </el-form>
+      <el-button size="small" @click="handleDown0">瀵煎嚭</el-button>
+    </div>
+
+    <div class="table">
+      <lims-table :tableData="tableData0" :column="column0" :tableLoading="tableLoading0"
+                  key="tableData0"
+                  :height="'calc(100vh - 240px)'" :page="page0" @pagination="pagination0">
+        <div slot="action" slot-scope="scope">
+          <el-button type="text" @click="handleAdd(scope.row)">缂栬緫</el-button>
+          <el-button type="text" @click="delRow(scope.row)">
+            <span style="color: #F56C6C">鍒犻櫎</span>
+          </el-button>
+        </div>
+      </lims-table>
+    </div>
+    <!-- 鏂板鏍峰搧 -->
+    <el-dialog :title="title" :visible.sync="addDialogVisible" width="400px">
+      <el-row>
+        <el-col :span="24" style="margin-bottom: 16px;">
+          <div class="search_thing">
+            <div class="search_label">鏍峰搧鍚嶇О锛�</div>
+            <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
+                                                v-model="addInfo.sampleName"></el-input></div>
+          </div>
+        </el-col>
+        <el-col :span="24" style="margin-bottom: 16px;">
+          <div class="search_thing">
+            <div class="search_label">鏍峰搧缂栧彿锛�</div>
+            <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
+                                                v-model="addInfo.sampleCode"></el-input></div>
+          </div>
+        </el-col>
+        <el-col :span="24" style="margin-bottom: 16px;">
+          <div class="search_thing">
+            <div class="search_label">渚涙牱鍗曚綅锛�</div>
+            <div class="search_input">
+              <el-select v-model="addInfo.sampleSupplier" size="small">
+                <el-option :label="item.company" :value="item.company" v-for="(item, index) in customPageList"
+                           :key="item.id"></el-option>
+              </el-select>
+            </div>
+          </div>
+        </el-col>
+        <el-col :span="24" style="margin-bottom: 16px;">
+          <div class="search_thing">
+            <div class="search_label">鏁伴噺锛�</div>
+            <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
+                                                v-model="addInfo.num"></el-input>
+            </div>
+          </div>
+        </el-col>
+        <el-col :span="24" style="margin-bottom: 16px;">
+          <div class="search_thing">
+            <div class="search_label">澶勭悊鏂瑰紡锛�</div>
+            <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
+                                                v-model="addInfo.dealMethod"></el-input></div>
+          </div>
+        </el-col>
+        <el-col :span="24" style="margin-bottom: 16px;">
+          <div class="search_thing">
+            <div class="search_label">鏃堕棿锛�</div>
+            <div class="search_input">
+              <el-date-picker v-model="addInfo.dealTime" type="date" size="small" placeholder="閫夋嫨鏃ユ湡" format="yyyy-MM-dd"
+                              value-format="yyyy-MM-dd" style="width: 100%;">
+              </el-date-picker>
+            </div>
+          </div>
+        </el-col>
+      </el-row>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="addDialogVisible = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="submitAdd" :loading="addLoading">纭� 瀹�</el-button>
+      </span>
+    </el-dialog>
+    <!-- 璇︽儏/涓嬭浇/瀹℃牳/鎵瑰噯 -->
+    <el-dialog :title="title0" :visible.sync="lookDialogVisible" width="800px" :class="{ downPdf: title0 == '涓嬭浇' }"
+               :modal="title0 != '涓嬭浇'" top="5vh">
+      <filePreview v-if="lookDialogVisible" :fileUrl="javaApi + '/word/' + currentInfo.url" :currentFile="{}"
+                   style="max-height: 70vh;overflow-y: auto;" />
+      <span slot="footer" class="dialog-footer" v-if="title0 == '瀹℃牳' || title0 == '鎵瑰噯'">
+        <el-button @click="submitCheck('涓嶉�氳繃')" :loading="noCheckLoading">涓嶉�氳繃</el-button>
+        <el-button type="primary" @click="submitCheck('閫氳繃')" :loading="checkLoading">閫� 杩�</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import limsTable from "@/components/Table/lims-table.vue";
+import filePreview from "@/components/Preview/filePreview.vue";
+import { selectCustomPageList } from "@/api/system/customer";
+import {
+  pageProcessSample,
+  delProcessSample,
+  addProcessSample,
+  exportProcessSample
+} from "@/api/cnas/process/sampleDisposal";
+import {exportInconsistentDistribution} from "@/api/cnas/process/nonconformingWork";
+export default {
+  name: 'SampleReceipt',
+  components: {
+    limsTable,
+    filePreview,
+  },
+  data() {
+    return {
+      activeName: '濉啓',
+      title: '鏂板',
+      addDialogVisible: false,
+      addLoading: false,
+      outLoading: false,
+      editDialogVisible: false,
+      lookDialogVisible: false,
+      title0: '鏌ョ湅',
+      noCheckLoading: false,
+      checkLoading: false,
+      // 鍘嗗彶鍒楄〃
+      addInfo: {},//鏂板鏍峰搧
+      customPageList: [],
+      currentInfo: {
+        arr: []
+      },//鏌ョ湅鐨勮鎯�
+      queryParams0: {
+        receiveDate: ''
+      },
+      tableLoading0: false,
+      tableData0: [],
+      column0: [
+        {
+          label: "鏀舵牱鏃ユ湡",
+          prop: "receiveDate",
+        },
+        {
+          label: "鏍峰搧缂栧彿",
+          prop: "sampleCode",
+        },
+        {
+          label: "鏍峰搧鍚嶇О",
+          prop: "sampleName",
+        },
+        {
+          label: "鏍峰搧鏁伴噺",
+          prop: "num",
+        },
+        {
+          label: "鏉ユ牱鍗曚綅",
+          prop: "sampleSupplier",
+        },
+        {
+          label: "鐣欐牱鏃ユ湡",
+          prop: "leaveDate",
+        },
+        {
+          label: "鏍峰搧鐘舵��",
+          prop: "sampleState",
+        },
+        {
+          label: "閫�鏍风鏀�/澶勭悊鏃ユ湡",
+          prop: "dealTime",
+        },
+        {
+          dataType: "slot",
+          slot: "action",
+          label: "鎿嶄綔",
+        }
+      ],
+      page0: {
+        total: 0,
+        size: 10,
+        current: 0,
+      },
+    };
+  },
+  mounted() {
+    this.getList0()
+  },
+  methods: {
+    // 鑾峰彇閫佹牱鍗曚綅鍒楄〃
+    getCustomPageList() {
+      selectCustomPageList({
+        current: -1,
+        size: -1
+      }).then(res => {
+        this.customPageList = res.data.records
+      }).catch(err => { });
+    },
+    refresh() {
+      this.queryParams0 = {};
+      this.page0.current = 1;
+      this.getList0();
+    },
+    refreshTable() {
+      this.page0.current = 1;
+      this.getList0();
+    },
+    // 鏌ヨ琛ㄦ牸鏁版嵁
+    getList0() {
+      this.tableLoading0 = true;
+      let param = { ...this.queryParams0, ...this.page0 };
+      delete param.total;
+      pageProcessSample({ ...param })
+        .then((res) => {
+          this.tableLoading0 = false;
+          if (res.code === 200) {
+            this.tableData0 = res.data.records;
+            this.page0.total = res.data.total;
+          }
+        })
+        .catch((err) => {
+          this.tableLoading0 = false;
+        });
+    },
+    pagination0({ page, limit }) {
+      this.page0.current = page;
+      this.page0.size = limit;
+      this.getList0();
+    },
+    // 鎵撳紑缂栬緫寮规
+    handleAdd(row) {
+      this.addInfo = this.HaveJson(row)
+      this.title = '缂栬緫'
+      this.addDialogVisible = true
+      this.getCustomPageList()
+    },
+    delRow(row) {
+      this.$confirm("鏄惁鍒犻櫎璇ユ潯鏁版嵁?", "鎻愮ず", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning",
+      })
+        .then(() => {
+          delProcessSample({ id: row.id }).then(res => {
+            if (res.code == 200) {
+              this.$message.success("鍒犻櫎鎴愬姛");
+              this.refreshTable();
+            }
+          }).catch(err => { });
+        })
+        .catch(() => { });
+    },
+    // 鎻愪氦鏂板
+    submitAdd() {
+      // 缂栬緫
+      this.addLoading = true
+      addProcessSample({
+        ...this.addInfo
+      }).then(res => {
+        this.addLoading = false
+        this.addDialogVisible = false
+        this.$message({
+          type: 'success',
+          message: '缂栬緫鎴愬姛!'
+        });
+        this.page0.current = 1;
+        this.refreshTable();
+      }).catch(err => { });
+    },
+    // 瀵煎嚭璇︽儏
+    handleDown0() {
+      exportProcessSample({ receiveDate: this.queryParams0.receiveDate }).then(res => {
+        this.outLoading = false
+        const blob = new Blob([res], { type: 'application/msword' });
+        this.$download.saveAs(blob, '鏍峰搧鎺ユ敹' + '.docx');
+      })
+    },
+  },
+}
+</script>
+
+<style scoped>
+.search_thing {
+  width: 350px;
+  display: flex;
+  align-items: center;
+}
+
+.search_label {
+  width: 110px;
+  font-size: 14px;
+  text-align: right;
+}
+
+.search_input {
+  width: calc(100% - 110px);
+}
+
+.downPdf {
+  opacity: 0 !important;
+}
+
+.tables td {
+  height: 40px;
+  width: 100px;
+  text-align: center;
+  font-size: 14px;
+  word-wrap: break-word;
+  white-space: normal;
+}
+
+.user-info .el-button {
+  margin: 0;
+}
+
+>>>.el-tabs__content {
+  height: 100%;
+}
+</style>
diff --git a/src/views/CNAS/process/ensureResults/qualityControlPlan/components/processingSheet.vue b/src/views/CNAS/process/ensureResults/qualityControlPlan/components/processingSheet.vue
index 5d2f2c8..c96c0bb 100644
--- a/src/views/CNAS/process/ensureResults/qualityControlPlan/components/processingSheet.vue
+++ b/src/views/CNAS/process/ensureResults/qualityControlPlan/components/processingSheet.vue
@@ -461,18 +461,6 @@
         this.personList = data;
       });
     },
-    // getSupervisedUserList () {
-    //   this.$axios.get(this.$api.user.selectDepartmentLimsUserList).then(res => {
-    //     let data = []
-    //     res.data.forEach(a => {
-    //       data.push({
-    //         label: a.name,
-    //         value: a.id
-    //       })
-    //     })
-    //     this.supervisedUserList = data
-    //   })
-    // },
   }
 };
 </script>
diff --git a/src/views/CNAS/process/sampleDisposal/index.vue b/src/views/CNAS/process/sampleDisposal/index.vue
deleted file mode 100644
index 31a1624..0000000
--- a/src/views/CNAS/process/sampleDisposal/index.vue
+++ /dev/null
@@ -1,521 +0,0 @@
-<template>
-  <div class="capacity-scope">
-    <el-tabs type="border-card" v-model="activeName" style="height: 100%;" @tab-click="queryParams.totaldealId = ''">
-      <el-tab-pane label="濉啓" name="濉啓" style="height: 100%;" :key="1">
-        <el-button size="small" type="primary" @click="handleAdd0" style="margin-bottom: 10px">鏂板</el-button>
-        <div class="table" style="height: calc(100% - 200px)" v-if="activeName == '濉啓'">
-          <lims-table :tableData="tableData" :column="column" :tableLoading="tableLoading"
-                      key="tableData" :height="'calc(100vh - 290px)'" :page="page" @pagination="pagination"></lims-table>
-        </div>
-      </el-tab-pane>
-      <el-tab-pane label="鍘嗗彶璁板綍" name="鍘嗗彶璁板綍" style="height: 100%;" :key="2">
-        <el-form :model="queryParams0" ref="queryParams0" size="small" :inline="true">
-          <el-form-item label="骞存湀" prop="month">
-            <el-date-picker v-model="queryParams0.month" type="month" placeholder="閫夋嫨鏈�" format="yyyy-MM"
-                            value-format="yyyy-MM" size="small" @change="refreshTable()">
-            </el-date-picker>
-          </el-form-item>
-          <el-form-item>
-            <el-button type="primary" size="mini" @click="refreshTable">鏌ヨ</el-button>
-            <el-button size="mini" @click="refresh">閲嶇疆</el-button>
-          </el-form-item>
-        </el-form>
-        <div class="table">
-          <lims-table :tableData="tableData0" :column="column0" :tableLoading="tableLoading"
-                      key="tableData0"
-            :height="'calc(100vh - 300px)'" :page="page0" @pagination="pagination0"></lims-table>
-        </div>
-      </el-tab-pane>
-    </el-tabs>
-    <!-- 鏂板鏍峰搧 -->
-    <el-dialog :title="title" :visible.sync="addDialogVisible" width="400px">
-      <el-row>
-        <el-col :span="24" style="margin-bottom: 16px;">
-          <div class="search_thing">
-            <div class="search_label">鏍峰搧鍚嶇О锛�</div>
-            <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
-                v-model="addInfo.sampleName"></el-input></div>
-          </div>
-        </el-col>
-        <el-col :span="24" style="margin-bottom: 16px;">
-          <div class="search_thing">
-            <div class="search_label">鏍峰搧缂栧彿锛�</div>
-            <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
-                v-model="addInfo.sampleCode"></el-input></div>
-          </div>
-        </el-col>
-        <el-col :span="24" style="margin-bottom: 16px;">
-          <div class="search_thing">
-            <div class="search_label">渚涙牱鍗曚綅锛�</div>
-            <div class="search_input">
-              <el-select v-model="addInfo.sampleSupplier" size="small">
-                <el-option :label="item.company" :value="item.company" v-for="(item, index) in customPageList"
-                  :key="item.id"></el-option>
-              </el-select>
-            </div>
-          </div>
-        </el-col>
-        <el-col :span="24" style="margin-bottom: 16px;">
-          <div class="search_thing">
-            <div class="search_label">鏁伴噺锛�</div>
-            <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
-                v-model="addInfo.num"></el-input>
-            </div>
-          </div>
-        </el-col>
-        <el-col :span="24" style="margin-bottom: 16px;">
-          <div class="search_thing">
-            <div class="search_label">澶勭悊鏂瑰紡锛�</div>
-            <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
-                v-model="addInfo.dealMethod"></el-input></div>
-          </div>
-        </el-col>
-        <el-col :span="24" style="margin-bottom: 16px;">
-          <div class="search_thing">
-            <div class="search_label">鏃堕棿锛�</div>
-            <div class="search_input">
-              <el-date-picker v-model="addInfo.dealTime" type="date" size="small" placeholder="閫夋嫨鏃ユ湡" format="yyyy-MM-dd"
-                value-format="yyyy-MM-dd" style="width: 100%;">
-              </el-date-picker>
-            </div>
-          </div>
-        </el-col>
-      </el-row>
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="addDialogVisible = false">鍙� 娑�</el-button>
-        <el-button type="primary" @click="submitAdd" :loading="addLoading">纭� 瀹�</el-button>
-      </span>
-    </el-dialog>
-    <!-- 璇︽儏/涓嬭浇/瀹℃牳/鎵瑰噯 -->
-    <el-dialog :title="title0" :visible.sync="lookDialogVisible" width="800px" :class="{ downPdf: title0 == '涓嬭浇' }"
-      :modal="title0 != '涓嬭浇'" top="5vh">
-      <filePreview v-if="lookDialogVisible" :fileUrl="javaApi + '/word/' + currentInfo.url" :currentFile="{}"
-        style="max-height: 70vh;overflow-y: auto;" />
-      <span slot="footer" class="dialog-footer" v-if="title0 == '瀹℃牳' || title0 == '鎵瑰噯'">
-        <el-button @click="submitCheck('涓嶉�氳繃')" :loading="noCheckLoading">涓嶉�氳繃</el-button>
-        <el-button type="primary" @click="submitCheck('閫氳繃')" :loading="checkLoading">閫� 杩�</el-button>
-      </span>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import limsTable from "@/components/Table/lims-table.vue";
-import filePreview from "@/components/Preview/filePreview.vue";
-import { selectCustomPageList } from "@/api/system/customer";
-import {
-  doProcessDeal,
-  addProcessDeal,
-  submitProcessTotaldeal,
-  pageProcessDeal,
-  checkProcessTotaldeal,
-  ratifyProcessTotaldeal,
-  delProcessDeal,
-  pageProcessTotaldeal,
-} from "@/api/cnas/process/sampleDisposal";
-export default {
-  name: 'SampleDisposal',
-  components: {
-    limsTable,
-    filePreview,
-  },
-  data() {
-    return {
-      activeName: '濉啓',
-      title: '鏂板',
-      addDialogVisible: false,
-      addLoading: false,
-      outLoading: false,
-      editDialogVisible: false,
-      lookDialogVisible: false,
-      title0: '鏌ョ湅',
-      noCheckLoading: false,
-      checkLoading: false,
-      // 鍘嗗彶鍒楄〃
-      addInfo: {},//鏂板鏍峰搧
-      customPageList: [],
-      currentInfo: {
-        arr: []
-      },//鏌ョ湅鐨勮鎯�
-      outPower: false,
-      addPower: false,
-      queryParams: {},
-      tableData: [],
-      column: [
-        { label: "鏍峰搧鍚嶇О", prop: "sampleName" },
-        { label: "鏍峰搧缂栧彿", prop: "sampleCode" },
-        { label: "渚涙牱鍗曚綅", prop: "sampleSupplier" },
-        { label: "鏁伴噺", prop: "num" },
-        { label: "澶勭悊鏂瑰紡", prop: "dealMethod" },
-        { label: "鏃堕棿", prop: "dealTime" },
-        {
-          dataType: "action",
-          fixed: "right",
-          label: "鎿嶄綔",
-          operation: [
-            {
-              name: "缂栬緫",
-              type: "text",
-              clickFun: (row) => {
-                this.handleAdd0(row);
-              },
-            },
-            {
-              name: "鍒犻櫎",
-              type: "text",
-              clickFun: (row) => {
-                this.handleDelete(row);
-              },
-            },
-          ],
-        },
-      ],
-      page: {
-        total: 0,
-        size: 10,
-        current: 0,
-      },
-      tableLoading: false,
-      queryParams0: {},
-      tableData0: [],
-      column0: [
-        { label: "鏈堜唤", prop: "month" },
-        { label: "鎬绘暟閲�", prop: "totalNum" },
-        { label: "鎻愪氦浜�", prop: "submitUserName" },
-        { label: "瀹℃牳浜�", prop: "examineUserName" },
-        { label: "鎵瑰噯浜�", prop: "ratifyUserName" },
-        {
-          dataType: "action",
-          fixed: "right",
-          label: "鎿嶄綔",
-          operation: [
-            {
-              name: "鏌ョ湅",
-              type: "text",
-              clickFun: (row) => {
-                this.handleLook(row);
-              },
-            },
-            {
-              name: "涓嬭浇",
-              type: "text",
-              clickFun: (row) => {
-                this.handleDown0(row);
-              },
-              disabled: (row) => {
-                return !row.url
-              }
-            },
-            {
-              name: "鎻愪氦",
-              type: "text",
-              clickFun: (row) => {
-                this.handleSubmit(row);
-              },
-              disabled: (row) => {
-                return !!row.submitState && row.submitState != '寰呮彁浜�'
-              }
-            },
-            {
-              name: "瀹℃牳",
-              type: "text",
-              clickFun: (row) => {
-                this.handleCheck(row);
-              },
-              disabled: (row) => {
-                return row.examineState == '閫氳繃' || row.submitState == '寰呮彁浜�'
-              }
-            },
-            {
-              name: "鎵瑰噯",
-              type: "text",
-              clickFun: (row) => {
-                this.handleApproval(row);
-              },
-              disabled: (row) => {
-                return row.ratifyState == '閫氳繃' || row.submitState == '寰呮彁浜�'
-              }
-            },
-          ],
-        },
-      ],
-      page0: {
-        total: 0,
-        size: 10,
-        current: 0,
-      },
-    };
-  },
-  mounted() {
-    this.getCustomPageList()
-    this.getList()
-    this.getList0()
-  },
-  methods: {
-    // 鑾峰彇閫佹牱鍗曚綅鍒楄〃
-    getCustomPageList() {
-      selectCustomPageList({
-        current: -1,
-        size: -1
-      }).then(res => {
-        this.customPageList = res.data.records
-      }).catch(err => { });
-    },
-    handleDown() { },
-    getList() {
-      this.tableLoading = true;
-      let param = { ...this.queryParams, ...this.page };
-      delete param.total;
-      pageProcessDeal({ ...param })
-        .then((res) => {
-          this.tableLoading = false;
-          if (res.code === 200) {
-            this.tableData = res.data.records;
-            this.page.total = res.data.total;
-          }
-        })
-        .catch((err) => {
-          this.tableLoading = false;
-        });
-    },
-    pagination({ page, limit }) {
-      this.page.current = page;
-      this.page.size = limit;
-      this.getList();
-    },
-    refresh() {
-      this.queryParams0 = {};
-      this.page0.current = 1;
-      this.getList0();
-    },
-    refreshTable() {
-      this.page0.current = 1;
-      this.getList0();
-    },
-    getList0() {
-      this.tableLoading = true;
-      let param = { ...this.queryParams0, ...this.page };
-      delete param.total;
-      pageProcessTotaldeal({ ...param })
-        .then((res) => {
-          this.tableLoading = false;
-          if (res.code === 200) {
-            this.tableData0 = res.data.records;
-            this.page0.total = res.data.total;
-          }
-        })
-        .catch((err) => {
-          this.tableLoading = false;
-        });
-    },
-    pagination0({ page, limit }) {
-      this.page0.current = page;
-      this.page0.size = limit;
-      this.getList0();
-    },
-    // 濉啓
-    // handleAdd(row){
-    //   this.componentData0.entity.totaldealId = row.id
-    //   this.editDialogVisible = true
-    // },
-    // 鎵撳紑鏂板鐣岄潰
-    handleAdd0(row) {
-      if (row) {
-        this.addInfo = this.HaveJson(row)
-        this.title = '缂栬緫'
-      } else {
-        this.title = '鏂板'
-        this.addInfo = {}
-      }
-      this.addDialogVisible = true
-    },
-    // 鎻愪氦鏂板
-    submitAdd() {
-      if (this.addInfo.id) {
-        // 缂栬緫
-        this.addLoading = true
-        doProcessDeal({
-          totaldealId: this.queryParams.totaldealId,
-          ...this.addInfo
-        }).then(res => {
-          this.addLoading = false
-          this.addDialogVisible = false
-          this.$message({
-            type: 'success',
-            message: '缂栬緫鎴愬姛!'
-          });
-          this.page.current = 0;
-          this.getList();
-        }).catch(err => { });
-      } else {
-        // 鏂板
-        this.addLoading = true
-        addProcessDeal({
-          totaldealId: this.queryParams.totaldealId,
-          ...this.addInfo
-        }).then(res => {
-          this.addLoading = false
-          this.addDialogVisible = false
-          this.$message({
-            type: 'success',
-            message: '鏂板鎴愬姛!'
-          });
-          this.page.current = 0;
-          this.getList();
-        }).catch(err => { });
-      }
-    },
-    // 鎻愪氦
-    handleSubmit(row) {
-      this.$confirm('鏄惁鎻愪氦 ' + row.month + ' 鏈堜唤鐨勬暟鎹�', '鎻愪氦', {
-        confirmButtonText: '纭畾',
-        cancelButtonText: '鍙栨秷',
-        type: 'warning'
-      }).then(() => {
-        submitProcessTotaldeal({
-          id: row.id
-        }).then(res => {
-          this.$message({
-            type: 'success',
-            message: '鎻愪氦鎴愬姛!'
-          });
-          this.refreshTable()
-        }).catch(err => { });
-      })
-    },
-    // 鏌ョ湅
-    handleLook(row) {
-      this.activeName = '濉啓'
-      this.queryParams.totaldealId = row.id
-      this.$nextTick(() => {
-        this.page.current = 1;
-        this.getList();
-      })
-    },
-    commonFun(row, callbanck) {
-      this.currentInfo = row
-      this.queryParams.totaldealId = row.id
-      pageProcessDeal({
-        current: -1,
-        size: -1, ...this.queryParams
-      }).then(res => {
-        this.lookDialogVisible = true
-        this.currentInfo.arr = res.data.records
-        if (callbanck) {
-          callbanck()
-        }
-      }).catch(err => { });
-    },
-    // 瀹℃牳
-    handleCheck(row) {
-      this.title0 = '瀹℃牳'
-      this.commonFun(row)
-    },
-    // 鎵瑰噯
-    handleApproval(row) {
-      this.title0 = '鎵瑰噯'
-      this.commonFun(row)
-    },
-    // 鎻愪氦瀹℃牳/鎵瑰噯
-    submitCheck(state) {
-      if (state == '閫氳繃') {
-        this.checkLoading = true
-      } else {
-        this.noCheckLoading = true
-      }
-      if (this.title0 == '瀹℃牳') {
-        checkProcessTotaldeal({
-          id: this.currentInfo.id,
-          state: state
-        }).then(res => {
-          this.checkLoading = false
-          this.noCheckLoading = false
-          this.$message({
-            type: 'success',
-            message: '鎿嶄綔鎴愬姛!'
-          });
-          this.refreshTable()
-          this.lookDialogVisible = false
-        }).catch(err => { });
-      } else if (this.title0 == '鎵瑰噯') {
-        ratifyProcessTotaldeal({
-          id: this.currentInfo.id,
-          state: state
-        }).then(res => {
-          this.checkLoading = false
-          this.noCheckLoading = false
-          this.$message({
-            type: 'success',
-            message: '鎿嶄綔鎴愬姛!'
-          });
-          this.refreshTable()
-          this.lookDialogVisible = false
-        }).catch(err => { });
-      }
-    },
-    // 瀵煎嚭璇︽儏
-    handleDown0(row) {
-      if (!row.url) {
-        this.$message.warning('鏆傛棤鏂囦欢')
-        return
-      }
-      // 鍚庣涓嬭浇
-      this.$download.saveAs(row.url, row.month + ' 鏍峰搧澶勭悊鐢宠琛�');
-    },
-    handleDelete(row) {
-      this.$confirm("鏄惁鍒犻櫎璇ユ潯鏁版嵁?", "鎻愮ず", {
-        confirmButtonText: "纭畾",
-        cancelButtonText: "鍙栨秷",
-        type: "warning",
-      })
-        .then(() => {
-          delProcessDeal({ id: row.id }).then((res) => {
-            this.$message.success("鍒犻櫎鎴愬姛");
-            this.page.current = 0;
-            this.getList();
-          });
-        })
-        .catch(() => { });
-    },
-  },
-}
-</script>
-
-<style scoped>
-.search_thing {
-  width: 350px;
-  display: flex;
-  align-items: center;
-}
-
-.search_label {
-  width: 110px;
-  font-size: 14px;
-  text-align: right;
-}
-
-.search_input {
-  width: calc(100% - 110px);
-}
-
-.downPdf {
-  opacity: 0 !important;
-}
-
-.tables td {
-  height: 40px;
-  width: 100px;
-  text-align: center;
-  font-size: 14px;
-  word-wrap: break-word;
-  white-space: normal;
-}
-
-.user-info .el-button {
-  margin: 0;
-}
-
->>>.el-tabs__content {
-  height: 100%;
-}
-</style>
diff --git a/src/views/CNAS/systemManagement/documentRecords/distributionCollectionRecord.vue b/src/views/CNAS/systemManagement/documentRecords/distributionCollectionRecord.vue
index be50c66..aabb2dc 100644
--- a/src/views/CNAS/systemManagement/documentRecords/distributionCollectionRecord.vue
+++ b/src/views/CNAS/systemManagement/documentRecords/distributionCollectionRecord.vue
@@ -248,7 +248,6 @@
   methods: {
     // 鏂板
     openAdd() {
-      // this.$refs.ValueTable.openAddDia(this.$api.manageRecordIssueRecycle.addManageRecordIssueRecycle);
       this.addInfo = {}
       this.title = '鏂板'
       this.addDialogVisible = true;
diff --git a/src/views/business/inspectionTask/index.vue b/src/views/business/inspectionTask/index.vue
index 1cdc196..08301b9 100644
--- a/src/views/business/inspectionTask/index.vue
+++ b/src/views/business/inspectionTask/index.vue
@@ -61,9 +61,10 @@
                 )"
                        @click="handleConnect(scope.row)">浜ゆ帴</el-button>
             <el-button type="text" size="small" @click="viewInspectInfo(scope.row)">鍘熷璁板綍</el-button>
-            <el-popover placement="bottom" trigger="hover" style="margin-left: 6px">
+            <el-popover placement="bottom" trigger="hover" style="margin-left: 6px" :disabled="(scope.row.insState != 3 || scope.row.userName == null ||(scope.row.userName && !scope.row.userName.includes(nickName)))">
               <template #reference>
-                <el-button link type="text" size="small">鏇村</el-button>
+                <el-button link type="text" size="small" :disabled="(scope.row.insState != 3 || scope.row.userName == null ||
+                  (scope.row.userName && !scope.row.userName.includes(nickName)))">鏇村</el-button>
               </template>
               <div>
                 <el-button :disabled="(scope.row.insState != 3 || scope.row.userName == null ||
diff --git a/src/views/business/inspectionTask/inspection.vue b/src/views/business/inspectionTask/inspection.vue
index cfaa862..f648679 100644
--- a/src/views/business/inspectionTask/inspection.vue
+++ b/src/views/business/inspectionTask/inspection.vue
@@ -1641,20 +1641,6 @@
         this.comparisonList = this.dictToValue(response.data);
       });
     },
-    // 鑾峰彇妫�楠屽�间负涓嬫媺鏃剁殑涓嬫媺鍒楄〃
-    // selectEnumByCategoryOfSelect(val) {
-    //   this.enumList = [];
-    //   if (val === undefined || val === null) {
-    //     return;
-    //   }
-    //   this.$axios
-    //     .post(this.$api.enums.selectEnumByCategory, {
-    //       category: val,
-    //     })
-    //     .then((res) => {
-    //       this.enumList = res.data;
-    //     });
-    // },
     tableRowClassName({ row, rowIndex }) {
       row.index = rowIndex + 1;
     },
diff --git a/src/views/business/inspectionView/index.vue b/src/views/business/inspectionView/index.vue
index f160492..c7f43c5 100644
--- a/src/views/business/inspectionView/index.vue
+++ b/src/views/business/inspectionView/index.vue
@@ -1639,20 +1639,6 @@
         this.comparisonList = this.dictToValue(response.data);
       });
     },
-    // 鑾峰彇妫�楠屽�间负涓嬫媺鏃剁殑涓嬫媺鍒楄〃
-    // selectEnumByCategoryOfSelect(val) {
-    //   this.enumList = [];
-    //   if (val === undefined || val === null) {
-    //     return;
-    //   }
-    //   this.$axios
-    //     .post(this.$api.enums.selectEnumByCategory, {
-    //       category: val,
-    //     })
-    //     .then((res) => {
-    //       this.enumList = res.data;
-    //     });
-    // },
     tableRowClassName({ row, rowIndex }) {
       row.index = rowIndex + 1;
     },
diff --git a/src/views/business/materialOrder/copperOrder.vue b/src/views/business/materialOrder/copperOrder.vue
index 7613887..fd8bbdd 100644
--- a/src/views/business/materialOrder/copperOrder.vue
+++ b/src/views/business/materialOrder/copperOrder.vue
@@ -1496,19 +1496,6 @@
       })
       // this.searchTemList()
     },
-    // searchTemList () {
-    //   this.temperatureList = []
-    //   this.$axios.post(this.$api.enums.selectEnumByCategory, {
-    //     category: "鐢靛姏娓╁害寰幆妫�楠�"
-    //   }).then(res => {
-    //     if (res.data.length > 0) {
-    //       this.temperatureEngList = res.data
-    //       res.data.forEach(item => {
-    //         this.temperatureList.push(item.label)
-    //       })
-    //     }
-    //   })
-    // },
     changeModel() {
       this.sampleList.forEach(a => {
         let obj = this.sampleIds.find(b => b == a.id)
diff --git a/src/views/business/materialOrder/copperView.vue b/src/views/business/materialOrder/copperView.vue
index 7a5a8f8..9d0595b 100644
--- a/src/views/business/materialOrder/copperView.vue
+++ b/src/views/business/materialOrder/copperView.vue
@@ -1495,19 +1495,6 @@
       })
       // this.searchTemList()
     },
-    // searchTemList () {
-    //   this.temperatureList = []
-    //   this.$axios.post(this.$api.enums.selectEnumByCategory, {
-    //     category: "鐢靛姏娓╁害寰幆妫�楠�"
-    //   }).then(res => {
-    //     if (res.data.length > 0) {
-    //       this.temperatureEngList = res.data
-    //       res.data.forEach(item => {
-    //         this.temperatureList.push(item.label)
-    //       })
-    //     }
-    //   })
-    // },
     changeModel() {
       this.sampleList.forEach(a => {
         let obj = this.sampleIds.find(b => b == a.id)
diff --git a/src/views/business/materialOrderComponents/materialOrder/showInfo.vue b/src/views/business/materialOrderComponents/materialOrder/showInfo.vue
index 1a902e7..4dab747 100644
--- a/src/views/business/materialOrderComponents/materialOrder/showInfo.vue
+++ b/src/views/business/materialOrderComponents/materialOrder/showInfo.vue
@@ -34,12 +34,6 @@
   methods: {
     getInfo (id) {
       console.log('id----', id)
-      this.$axios.get(this.$api.rawMaterialOrder.getIndustryChain + '?id=' + id).then(res => {
-        if (res.code === 200 && res.data !== null) {
-          this.infoLIst = JSON.parse(res.data)
-          console.log('this.infoLIst----', this.infoLIst)
-        }
-      })
     }
   },
 }
diff --git a/src/views/business/reportPreparation/index.vue b/src/views/business/reportPreparation/index.vue
index 0b6d7f7..785e9f1 100644
--- a/src/views/business/reportPreparation/index.vue
+++ b/src/views/business/reportPreparation/index.vue
@@ -187,7 +187,7 @@
           <el-button size="small" style="height: 38px" type="primary">闄勪欢涓婁紶</el-button>
         </el-upload>
       </div>
-      <lims-table :tableData="tableDataFile" :column="columnFile" height="500px"
+      <lims-table :tableData="tableDataFile" :column="columnFile" height="600px"
         key="tableDataFile" :tableLoading="tableLoadingFile"></lims-table>
     </el-dialog>
   </div>
@@ -525,7 +525,7 @@
     // 鏌ヨ闄勪欢鏌ョ湅鍒楄〃鍥炶皟
     getFileList() {
       this.tableLoadingFile = true
-      getFileList({ insOrderId: this.filesLookInfo.insOrderId }).then(res => {
+      getFileList({ insOrderId: this.filesLookInfo.insOrderId,current: -1, size: -1 }).then(res => {
         this.tableLoadingFile = false
         if (res.code === 200) {
           this.tableDataFile = res.data.records

--
Gitblit v1.9.3