From 77a041c5e9a31ad96fce404f06fe0c03f4031b1d Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期一, 28 八月 2023 09:19:13 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.110.209:9001/r/lims-before

---
 src/api/inspection/commisioninspection.js                            |    2 
 src/views/experiment/reportAuditing/index.vue                        |   26 
 src/views/chart/work/index.vue                                       |   82 
 src/views/basicData/index.vue                                        |   53 
 src/views/experiment/inspectionApplication/index.vue                 |  359 +++--
 src/views/standardLibrary/index.vue                                  |  124 +
 src/api/standardLibrary.js                                           |   18 
 src/components/experiment/checkTheReport/index.vue                   |  136 ++
 src/layout/components/Navbar.vue                                     |    8 
 src/views/inspectionManagement/reportForInspection/index.vue         |    7 
 src/api/laboratory/organizational.js                                 |   40 
 src/views/laboratory/personnel/index.vue                             |  435 +++++-
 src/views/inspectionManagement/commissionInspection/addCommision.vue | 1017 ++++++++--------
 src/api/util/requestUtil.js                                          |    8 
 src/api/experiment/checkTheReport.js                                 |    9 
 src/main.js                                                          |    1 
 src/views/template_testReport/index.vue                              |  651 ++++++++++
 package.json                                                         |    1 
 src/views/laboratory/organizational/index.vue                        |  216 +++
 src/views/experiment/checkTheReport/index.vue                        |   63 
 src/views/experiment/inspectionApplication/Viewdetails/index.vue     |  177 --
 src/api/experiment/planAssignments.js                                |   42 
 src/views/inspectionManagement/commissionInspection/index.vue        |  123 +-
 23 files changed, 2,449 insertions(+), 1,149 deletions(-)

diff --git a/package.json b/package.json
index 048f7b0..0b19172 100644
--- a/package.json
+++ b/package.json
@@ -25,6 +25,7 @@
     "nprogress": "0.2.0",
     "path-to-regexp": "2.4.0",
     "postcss-pxtorem": "^5.1.1",
+    "print-js": "^1.6.0",
     "vue": "2.6.10",
     "vue-clipboard2": "^0.3.3",
     "vue-router": "3.0.6",
diff --git a/src/api/experiment/checkTheReport.js b/src/api/experiment/checkTheReport.js
index 940fb8a..7484a0e 100644
--- a/src/api/experiment/checkTheReport.js
+++ b/src/api/experiment/checkTheReport.js
@@ -7,3 +7,12 @@
     params
   })
 }
+
+//鑾峰彇鎶ュ憡鍐呯殑鏁版嵁
+export function getReportData(params) {
+  return request({
+    url: '/report/getReportContext',
+    method: 'post',
+    params
+  })
+}
diff --git a/src/api/experiment/planAssignments.js b/src/api/experiment/planAssignments.js
index bd94754..51f20e3 100644
--- a/src/api/experiment/planAssignments.js
+++ b/src/api/experiment/planAssignments.js
@@ -30,4 +30,44 @@
     method: 'post',
     data
   })
-}
\ No newline at end of file
+}
+//妫�楠屽崟璇︽儏
+export function selectInspectsListById(params){
+  return request({
+    url: '/inspection/selectInspectsListById',
+    method: 'get',
+    params
+  })
+}
+//閫夋嫨璐d换椤圭洰妫�楠屼汉
+export function selectUser(params){
+  return request({
+    url: '/inspection/selectUser',
+    method: 'get',
+    params
+  })
+}
+// 濮旀墭妫�楠屽垪琛�
+export function getCommisionList(params) {
+  return request({
+    url: '/link-basic-table/page',
+    method: 'get',
+    params
+  })
+}
+//鍘熸潗鏂欐楠屽垪琛�
+export function YANcailiso(params) {
+  return request({
+    url: '/raw-material/selectAll',
+    method: 'get',
+    params
+  })
+}
+//鐗堟湰鍙�
+export function chooseVer(params) {
+  return request({
+    url: '/inspection/chooseVer',
+    method: 'get',
+    params
+  })
+}
diff --git a/src/api/inspection/commisioninspection.js b/src/api/inspection/commisioninspection.js
index 982a2f0..275a65b 100644
--- a/src/api/inspection/commisioninspection.js
+++ b/src/api/inspection/commisioninspection.js
@@ -25,7 +25,7 @@
   })
 
 }
-
+//瑙勬牸鍨嬪彿
 export function getModelSpecification(params){
   return request({
     url: '/link-basic/specification',
diff --git a/src/api/laboratory/organizational.js b/src/api/laboratory/organizational.js
index a88b77f..bec30c9 100644
--- a/src/api/laboratory/organizational.js
+++ b/src/api/laboratory/organizational.js
@@ -2,10 +2,50 @@
 
 const Api = {
     getOrganizational: "/organizational/list", // 鍥涚骇鏍�
+    getTableInitialization: "/organizational/table", // 琛ㄦ牸鏁版嵁鎺ュ彛
+    organizationalAdd: "/organizational/add", // 娣诲姞閮ㄩ棬
+    organizationalUpdate: "/organizational/add", // 淇敼閮ㄩ棬
+    organizationalDelete: "/organizational/delete", // 鍒犻櫎閮ㄩ棬
 }
 export function getOrganizationalApi() {
     return request({
         url: Api.getOrganizational,
         method: 'get'
     })
+}
+
+export function getTableInitializationApi(departmentId) {
+    return request({
+        url: Api.getTableInitialization,
+        method: 'get',
+        params: {
+            departmentId
+        }
+    })
+}
+
+export function organizationalAddApi(formData){
+    return request({
+        url: Api.organizationalAdd,
+        method: 'post',
+        data: formData
+    })
+}
+
+export function organizationalUpdateApi(formData){
+    return request({
+        url: Api.organizationalUpdate + '?id=' + formData.id,
+        method: 'put',
+        data: formData
+    })
+}
+
+export function organizationalDeleteApi(id){
+    return request({
+        url: Api.organizationalDelete,
+        method: 'delete',
+        params: {
+            ids: id.toString()
+        }
+    })
 }
\ No newline at end of file
diff --git a/src/api/standardLibrary.js b/src/api/standardLibrary.js
index 09b57f9..2eb0e96 100644
--- a/src/api/standardLibrary.js
+++ b/src/api/standardLibrary.js
@@ -7,6 +7,24 @@
   })
 }
 
+//鑾峰彇鎵�鏈夌増鏈�
+export function getVersion(params){
+  return request({
+    url: '/product/chooseVersion',
+    method: 'get',
+    params
+  })
+}
+
+//娣诲姞鍚屼竴涓瀷鍙风殑鍏朵粬鐗堟湰
+export function addVersion(params){
+  return request({
+    url: '/product/addVersion',
+    method: 'post',
+    params
+  })
+}
+
 // 鑾峰彇鎵�鏈夐」鐩�
 export function getProductList(params) {
   return request({
diff --git a/src/api/util/requestUtil.js b/src/api/util/requestUtil.js
index 3055a2f..df22c02 100644
--- a/src/api/util/requestUtil.js
+++ b/src/api/util/requestUtil.js
@@ -16,6 +16,14 @@
     })
 }
 
+export function put(path, data) {
+    return request({
+        url: path,
+        method: 'put',
+        data
+    })
+}
+
 export function wpost(path, params) {
     return request({
         url: path,
diff --git a/src/components/experiment/checkTheReport/index.vue b/src/components/experiment/checkTheReport/index.vue
new file mode 100644
index 0000000..fe7d0f5
--- /dev/null
+++ b/src/components/experiment/checkTheReport/index.vue
@@ -0,0 +1,136 @@
+<template>
+    <div class="preview-main">
+        <div class="logo">
+            <img :src="logoSrc" />
+        </div>
+        <div class="center">
+            <h1>鍘熸潗鏂欐娴嬫姤鍛�</h1>
+            <table>
+                <tr>
+                    <td>鏉愭枡鍚嶇О</td>
+                    <td colspan="5">{{reportData.name}}</td>
+                </tr>
+                <tr>
+                    <td>瑙勬牸鍨嬪彿</td>
+                    <td colspan="2">
+                        {{reportData.specifications.split("-")[1]}}
+                    </td>
+                    <td>鏉愭枡鍘傚</td>
+                    <td colspan="2">{{reportData.supplier}}</td>
+                </tr>
+                <tr>
+                    <td>鏉愭枡缂栧彿</td>
+                    <td colspan="2">{{reportData.imCode}}</td>
+                    <td>妫�娴嬬紪鍙�</td>
+                    <td colspan="2">{{reportData.insCode}}</td>
+                </tr>
+                <tr>
+                    <td>妫�娴嬩緷鎹�</td>
+                    <td colspan="2">{{reportData.specifications.split("-")[0]}}</td>
+                    <td>妫�娴嬬被鍒�</td>
+                    <td colspan="2">鍘熸潗鏂�</td>
+                </tr>
+                <tr>
+                    <td>搴忓彿</td>
+                    <td>妫�楠岄」鐩�</td>
+                    <td>鍗曚綅</td>
+                    <td>鏍囧噯瑕佹眰</td>
+                    <td>妫�娴嬬粨鏋�</td>
+                    <td>鍗曢」鍒ゆ柇</td>
+                </tr>
+                <tr v-for="(item,index) in reportData.products" :key="item">
+                    <td>{{index+1}}</td>
+                    <td>{{item.ipName}}</td>
+                    <td>{{item.unit}}</td>
+                    <td>{{item.required}}</td>
+                    <td>{{item.testValue}}</td>
+                    <td>{{item.testState == 1 ? "鈭�" : "X"}}</td>
+                </tr>
+                <tr>
+                    <td colspan="6">妫�楠岀粨璁猴細{{reportData.type == 1 ? "鍚堟牸" : "涓嶅悎鏍�"}}</td>
+                </tr>
+                <tr>
+                    <td colspan="6">
+                        娉細鈥溾垰鈥濊〃绀鸿椤圭洰鍚堟牸锛屸�溍椻�濊〃绀鸿椤圭洰涓嶅悎鏍硷紝鈥溾�斺�濊〃绀鸿椤圭洰涓嶈姹傛娴嬨��
+                    </td>
+                </tr>
+            </table>
+            <el-row class="date-group" :gutter="20">
+                <el-col :span="12">妫�娴嬨�佹棩鏈燂細<span>{{reportData.createTime}}</span></el-col>
+                <el-col :span="12">瀹℃牳銆佹棩鏈燂細<span>{{reportData.checkTime}}</span></el-col>
+            </el-row>
+            <p class="footer">
+                <span>缂栧彿:</span><span>{{reportData.reportCode}}</span>
+                <span> 鍙戣鏃ユ湡:</span><span>{{new Date() | formatDate}}</span>
+                <span> 淇濆瓨鏈熼檺:</span><span>闀挎湡</span>
+            </p>
+        </div>
+    </div>
+</template>
+<script>
+export default({
+    data() {
+        return {
+            logoSrc : require("@/assets/404_images/logo.png"),    
+        }
+    },
+    methods:{
+        formatDate(val){
+            var dt = new Date(val);
+            let year = dt.getFullYear();
+            let month = (dt.getMonth() + 1).toString().padStart(2,'0');
+            let date = dt.getDate().toString().padStart(2,'0');
+            return `${year}-${month}-${date}`;
+        }
+    },
+    props:["reportData"]
+})
+</script>
+<style scoped lang="scss">
+     .preview-main{
+        margin: 0;
+        padding: 0;
+        width:90%;
+        margin-left: 5%;
+        .logo{
+            img{
+                width: 150px;
+                height: 60px;
+            }
+        }
+        .center{
+            width: 100%;
+            h1{
+                width:100%;
+                font-family: "寰蒋闆呴粦" !important;
+                text-align: center;
+            }
+            table{
+                width:100%;
+                height:100vh;
+                border-collapse: collapse;
+                font-size: 18px;
+            }
+            table,tr,th,td{
+                border: 2px solid black;
+            }
+            tr,td,th{
+                padding: 5px 5px;
+            }
+            .date-group .el-col{
+                text-align: center;
+                padding: 50px 0px;
+                font-size: 18px;
+            }
+            .footer{
+                margin: 0;
+                padding: 0;
+                width:90%;
+                margin-left: 5%;
+                color: gray; 
+                text-align: center;
+                margin-top: 250px;
+            }
+        }
+     }
+</style>
diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
index 905c4ac..be3b829 100644
--- a/src/layout/components/Navbar.vue
+++ b/src/layout/components/Navbar.vue
@@ -24,7 +24,7 @@
           </el-dropdown-item>
         </el-dropdown-menu>
       </el-dropdown>
-      <el-dialog title="淇敼瀵嗙爜" :visible.sync="dialogFormVisible" :append-to-body="true">
+      <el-dialog title="淇敼瀵嗙爜" :visible.sync="dialogFormVisible" :append-to-body="true" width="40%">
         <el-form :model="form">
           <el-form-item label="鏃у瘑鐮�" :label-width="formLabelWidth">
             <el-input v-model="form.oldPwd" autocomplete="off"></el-input>
@@ -69,7 +69,11 @@
 				name: 'value'
 			},
       dialogFormVisible: false,
-      formLabelWidth: '120px'
+      formLabelWidth: '120px',
+			user: {
+				id: null,
+				name: 'value'
+			}
     }
   },
   components: {
diff --git a/src/main.js b/src/main.js
index 1eda87c..d578a57 100644
--- a/src/main.js
+++ b/src/main.js
@@ -20,6 +20,7 @@
 import echarts from 'echarts'
 Vue.prototype.$echarts = echarts
 
+import print from 'print-js'
 
 import '@/icons' // icon
 import '@/permission' // permission control
diff --git a/src/views/basicData/index.vue b/src/views/basicData/index.vue
index 4ee318a..e47537f 100644
--- a/src/views/basicData/index.vue
+++ b/src/views/basicData/index.vue
@@ -136,13 +136,14 @@
       <el-table
         :data="tableData"
         style="width: 100%; margin-bottom: 20px"
-        row-key="name"
+        row-key="id"
         border
         height="calc(100vh - 250px)"
         default-expand-all
         ref="multipleTable"
         @select="selectTr"
         @select-all="selectAll"
+        @selection-change="handleSelectionChange"
         :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
       >
         <el-table-column type="selection" label="搴忓彿"> </el-table-column>
@@ -344,20 +345,6 @@
       this.isAllSelect = !this.isAllSelect;
       let data = this.tableData;
       this.toggleSelect(data, this.isAllSelect, "all");
-      // 鑷畾涔�
-      if (this.isAllSelect) {
-        val.forEach((i) => {
-          if (i.id !== undefined) {
-            this.deleteList.push(i.id);
-          } else {
-            i.children.forEach((c) => {
-              this.deleteList.push(c.id);
-            });
-          }
-        });
-      } else {
-        this.deleteList.splice(0, this.deleteList.length);
-      }
     },
     //閫夋嫨鏌愯
     selectTr(selection, row) {
@@ -366,33 +353,6 @@
         this.isAllSelect = row.isChecked;
         this.toggleSelect(row, row.isChecked, "tr");
       });
-
-      if (row.isChecked === true) {
-        if (row.children !== undefined) {
-          row.children.forEach((i) => {
-            this.deleteList.push(i.id);
-          });
-        } else {
-          this.deleteList.push(row.id);
-        }
-      } else if (row.isChecked === false) {
-        if (row.children !== undefined) {
-          row.children.forEach((i) => {
-            this.deleteList.findIndex((c, index) => {
-              if (c === i.id) {
-                this.deleteList.splice(index, 1);
-                return;
-              }
-            });
-          });
-        }
-        this.deleteList.findIndex((c, index) => {
-          if (c === row.id) {
-            this.deleteList.splice(index, 1);
-            return;
-          }
-        });
-      }
     },
     //閫掑綊瀛愮骇
     toggleSelect(data, flag, type) {
@@ -426,6 +386,15 @@
         }
       });
     },
+    handleSelectionChange(val) {
+      this.deleteList = []
+      val.forEach((v) => {
+        if(v.id !== undefined) {
+          this.deleteList.push(v.id)
+        }
+      })
+      console.log(`output->this.deleteList`,this.deleteList)
+    },
     // 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆  缁撴潫
     deleteListClick() {
       deleteListApi(this.deleteList).then((res) => {
diff --git a/src/views/chart/work/index.vue b/src/views/chart/work/index.vue
index e04f144..46e1da2 100644
--- a/src/views/chart/work/index.vue
+++ b/src/views/chart/work/index.vue
@@ -90,12 +90,7 @@
         },
       }
     },
-    mounted(){
-      // this.initLeaderStatiChart("");
-      this.initLeaderTimelyChart("leaderTimely");
-      this.initTesterStatiChart("testerStati");
-      this.initTesterTimelyChart("testerTimely");
-    },
+    mounted(){},
     methods: {
       async queryData(){
         let date = this.formInline.date;
@@ -182,7 +177,7 @@
           series: [
             {
               name: '宸插畬鎴�',
-              barWidth: '20%',
+              barWidth: '30%',
               type: 'bar',
               stack: 'one',
               emphasis: emphasisStyle,
@@ -207,22 +202,25 @@
         option && myChart.setOption(option);
       },
       initTesterStatiChart(id,executeMater){
-        console.log("qqq----",executeMater);
         var chartDom = document.getElementById(id);
         var myChart = echarts.init(chartDom);
           window.addEventListener('resize', function() {
           myChart.resize();
         });
         var option;
-
+        let max = 0;
         let xAxisData = [];
         let data1 = [];
         let data2 = [];
-        // for(let i=0;i<executeMater.length;i++){
-        //   xAxisData.push(executeMater[i].name);
-        //   data1.push(executeMater[i].finsh);
-        //   data2.push(executeMater[i].unfinsh);
-        // }
+        for(let i=0;i<executeMater.length;i++){
+          xAxisData.push(executeMater[i].name);
+          data1.push(executeMater[i].finsh);
+          data2.push(executeMater[i].unfinsh);
+          let sum = executeMater[i].finsh + executeMater[i].unfinsh;
+          if(sum > max){
+            max = sum;
+          }
+        }
         var emphasisStyle = {
           itemStyle: {
             shadowBlur: 10,
@@ -244,8 +242,8 @@
           },
           yAxis: {
             min: 0,
-            max: 60,
-            interval: 10,
+            max: max,
+            interval: 1,
           },
           grid: {
             bottom: 100
@@ -255,6 +253,7 @@
               name: '鏁版嵁1',
               type: 'bar',
               stack: 'one',
+              barWidth: '30%',
               emphasis: emphasisStyle,
               data: data1,
               itemStyle:{
@@ -265,6 +264,7 @@
               name: '鏁版嵁2',
               type: 'bar',
               stack: 'one',
+              barWidth: '30%',
               emphasis: emphasisStyle,
               data: data2,
               itemStyle:{
@@ -282,6 +282,18 @@
           myChart.resize();
         });
         var option;
+        let xAxisData = [];
+        let data1 = [];
+        let data2 = [];
+        let yAxisData1 = 0;
+        for(let i=0;i<dutyTimely.length;i++){
+          xAxisData.push(dutyTimely[i].name);
+          data1.push(dutyTimely[i].total);
+          data2.push(dutyTimely[i].timely);
+          if(dutyTimely[i].total > yAxisData1){
+            yAxisData1 = dutyTimely[i].total;
+          }
+        }
         option = {
           tooltip: {
             trigger: 'axis',
@@ -299,13 +311,10 @@
             {
               name: '濮撳悕',
               type: 'category',
-              data: ['娌愮',],
+              data: xAxisData,
               axisPointer: {
                 type: 'shadow'
               },
-              itemStyle: {
-                top: '20px'
-              }
             }
           ],
           yAxis: [
@@ -313,7 +322,7 @@
               type: 'value',
               name: '鏁伴噺',
               min: 0,
-              max: 10,
+              max: yAxisData1,
               interval: 1,
               axisLabel: {
                 formatter: '{value}'
@@ -334,13 +343,13 @@
             {
               name: '鏍峰搧鏁�',
               type: 'bar',
-              barWidth: '20%',
+              barWidth: '30%',
               tooltip: {
                 valueFormatter: function (value) {
                   return value;
                 }
               },
-              data: [4.0],
+              data: data1,
               itemStyle: {
                 color: '#9fceff'
               }
@@ -348,19 +357,19 @@
             {
               name: '瀹屾垚鍙婃椂鐜�',
               type: 'line',
+              yAxisIndex: 1,
               tooltip: {
                 valueFormatter: function (value) {
                   return value + ' %';
                 }
               },
-              data: [7.5],
+              data: [{value:20},{value:40}],
               itemStyle: {
                 color: '#d2eec5'
               }
             },
           ]
         };
-
         option && myChart.setOption(option);
       },
       initTesterTimelyChart(id,executeTimely){
@@ -370,6 +379,18 @@
           myChart.resize();
         });
         var option;
+        let xAxisData = [];
+        let data1 = [];
+        let data2 = [];
+        let yAxisData1 = 0;
+        for(let i=0;i<executeTimely.length;i++){
+          xAxisData.push(executeTimely[i].name);
+          data1.push(executeTimely[i].total);
+          data2.push(executeTimely[i].timely);
+          if(executeTimely[i].total > yAxisData1){
+            yAxisData1 = executeTimely[i].total;
+          }
+        }
         option = {
           tooltip: {
             trigger: 'axis',
@@ -387,7 +408,7 @@
           xAxis: [
             {
               type: 'category',
-              data: ["","",""],
+              data: xAxisData,
               axisPointer: {
                 type: 'shadow'
               }
@@ -398,8 +419,8 @@
               type: 'value',
               name: '',
               min: 0,
-              max: 50,
-              interval: 5,
+              max: yAxisData1,
+              interval: 1,
               axisLabel: {
                 formatter: '{value}'
               }
@@ -419,12 +440,13 @@
             {
               name: '椤圭洰鏁�',
               type: 'bar',
+              barWidth: '30%',
               tooltip: {
                 valueFormatter: function (value) {
                   return value ;
                 }
               },
-              data: [2.0, 4.9, 7.0],
+              data: data1,
               itemStyle: {
                 color: '#5087ec'
               }
@@ -438,7 +460,7 @@
                   return value + ' %';
                 }
               },
-              data: [2.0, 2.2, 3.3],
+              data: data2,
               itemStyle: {
                 color: '#68bbc4'
               }
diff --git a/src/views/experiment/checkTheReport/index.vue b/src/views/experiment/checkTheReport/index.vue
index a127c10..ab2d6ee 100644
--- a/src/views/experiment/checkTheReport/index.vue
+++ b/src/views/experiment/checkTheReport/index.vue
@@ -51,6 +51,18 @@
           >
         </div>
       </div>
+      <el-dialog
+        top="10vh"
+        title="鎶ュ憡棰勮"
+        :visible.sync="dialogVisible"
+        width="60%">
+        <span slot="footer" class="dialog-footer">
+          <el-button type="primary" @click="printFun()">鎵撳嵃</el-button>
+        </span>
+        <div class="printStyle">
+          <preview id="printDiv" :reportData="reportData"></preview>
+        </div>
+      </el-dialog>
       <div class="table-box">
         <el-table
           ref="reportTable"
@@ -81,14 +93,14 @@
             </template></el-table-column
           >
           <el-table-column
-            prop="materialCode"
+            prop="reportCode"
             label="鎶ュ憡鍗曞彿"
             sortable
             min-width="10%"
           >
             <template slot-scope="scope">
               <span style="color: #409eff;">
-                  {{ scope.row.materialCode }}
+                  {{ scope.row.reportCode }}
               </span>
             </template></el-table-column
           >
@@ -143,10 +155,9 @@
               <el-button
                 type="text"
                 size="small"
-                @click="handleClick(scope.row)"
-                >棰勮</el-button
+                @click="previewFun(scope.row)"
+                >鏌ョ湅鎶ュ憡</el-button
               >
-              <el-button type="text" size="small">鎵撳嵃</el-button>
             </template>
           </el-table-column>
         </el-table>
@@ -168,10 +179,13 @@
 </template>
 
 <script>
-import { selectAllReport } from "@/api/experiment/checkTheReport";
+import { selectAllReport,getReportData } from "@/api/experiment/checkTheReport";
+import Preview from "@/components/experiment/checkTheReport/index.vue";
+import PrintJS from 'print-js'
 export default {
   data() {
     return {
+      reportData: [],
       searchData:{
         sample_code:'',
         reportCode:'',
@@ -183,12 +197,39 @@
       total: 0,
       pageSize: 10,
       checked: true,
+      dialogVisible: false,
     };
   },
   created() {
     this.getData();
   },
+  mounted(){
+  },
+  components:{
+    Preview
+  },
   methods: {
+    async queryReportByRCode(code){
+      const resp = await getReportData({code:code});
+      this.reportData = resp.data;
+      console.log(this.reportData);
+    },
+    //鏌ョ湅鎶ュ憡鎸夐挳
+    previewFun(row){
+      this.dialogVisible = true;
+      this.queryReportByRCode(row.reportCode);
+    },
+    //鎵撳嵃鎸夐挳
+    printFun(){
+      this.dialogVisible = false;
+      PrintJS({
+        printable: "printDiv",
+        type: "html",
+        // header: "鍘熸潗鏂欐娴嬫姤鍛�",
+        targetStyles: ["*"],
+        ignoreElements: ["no-ignore"],
+      });
+    },
     // 鐘舵�佹寜閽�
     handleRadioChange() {
       this.getData();
@@ -227,6 +268,7 @@
       };
       const { data } = await selectAllReport(params);
       this.reportTable = data.row;
+      console.log(data.row);
       this.total = data.total;
     },
   },
@@ -280,5 +322,14 @@
       margin: 10px 0;
     }
   }
+  .printStyle{
+    overflow: scroll;
+    height:600px;
+    .el-button{
+      position: absolute;
+      top: 10vh;
+      left: 90%;
+    }
+  }
 }
 </style>
diff --git a/src/views/experiment/inspectionApplication/Viewdetails/index.vue b/src/views/experiment/inspectionApplication/Viewdetails/index.vue
index dd8a167..e61c489 100644
--- a/src/views/experiment/inspectionApplication/Viewdetails/index.vue
+++ b/src/views/experiment/inspectionApplication/Viewdetails/index.vue
@@ -12,7 +12,7 @@
                 <el-form ref="form" :model="searchData" label-width="80px">
                     <el-col :span="6">
                         <el-form-item label="鏉ユ枡鏃ユ湡:" >
-                            <el-input :disabled="true" v-model="searchData.from_time"></el-input>
+                            <el-input :disabled="true" v-model="searchData.formTime"></el-input>
                             
                         </el-form-item>
                     </el-col>
@@ -23,7 +23,7 @@
                     </el-col>                    
                     <el-col :span="6">
                         <el-form-item label="浜у搧缂栧彿:">
-                            <el-input :disabled="true" v-model="searchData.mcode"></el-input>
+                            <el-input :disabled="true" v-model="searchData.code"></el-input>
                         </el-form-item> 
                     </el-col>
                 </el-form>
@@ -60,7 +60,7 @@
                     <el-col :span="6">
 
                         <el-form-item label="鐧昏鏃ユ湡:">
-                            <el-input :disabled="true" v-model="searchData.end_time"></el-input>
+                            <el-input :disabled="true" v-model="searchData.endTime"></el-input>
                         </el-form-item>
                     </el-col>
                     
@@ -86,7 +86,7 @@
         <div>        
             <el-card style="margin: 10px;">
                 <el-table
-                    :data="tableData"
+                    :data="insProducts"
                     border      
                     style="width: 100%">
                     <el-table-column
@@ -95,52 +95,37 @@
                     width="50">
                     </el-table-column>
                     <el-table-column
-                        prop="date"
+                        prop="name"
                         label="椤圭洰"
                         width="180">
                     </el-table-column>
                     <el-table-column
-                        prop="name"
+                        prop="unit"
                         label="鍗曚綅"
                         width="180">
                     </el-table-column>
                     <el-table-column
-                        prop="kk"
+                        prop="internal"
                         label="鏍囧噯鍊�">
                     </el-table-column>
                     <el-table-column
-                        prop="zz"
+                        prop="required"
                         label="鍐呮帶鍊�">
                     </el-table-column>
-                    <el-table-column
-                        prop="oo"
-                        wight="200"
-                        label="缁忛獙浜�">
-                        <template>
-                            <el-select v-model="value" placeholder="榛勬檽鏄�">
-                                <el-option
-                                    v-for="item in cities"
-                                    :key="item.value"
-                                    :label="item.label"
-                                    :value="item.value">
-                                    <span style="float: left">{{ item.label }}</span>
-                                    <span style="float: right; color: #8492a6; font-size: 13px">{{ item.value }}</span>
-                                    </el-option>
+                    <el-table-column prop="userName" label="缁忛獙浜�">
+                        <template slot-scope="scope">
+                            <el-select v-model="value" size="small" slot="append" style="width: 220px;">
+                            <el-option v-for="item in ZERENren" :key="item.id" :label="item.name"  :value="item.name"></el-option>
                             </el-select>
                         </template>
                     </el-table-column>
                     <el-table-column
-                        prop="pp"
+                        prop="inspectionMaterialId"
                         label="瀹為獙璁惧">
                         <template>
-                            <el-select v-model="value" placeholder="鎷夊姏鏈�">
-                                <el-option
-                                v-for="item in cities"
-                                :key="item.value"
-                                :label="item.label"
-                                :value="item.value">
-                                </el-option>
-                            </el-select>
+                            <!-- <el-select v-model="scope.row.checker" size="small" slot="append" style="width: 260px;">
+                            <el-option v-for="item in checkeroptions" :key="item.value" :label="item.label">{{ item.label }}</el-option>
+                            </el-select> -->
                         </template>
                     </el-table-column>
                 </el-table>
@@ -151,126 +136,38 @@
 </div>       
 </template>
 <script>
-  import { selectInspectsList, selectAll, addInspect} from '@/api/experiment/planAssignments'
+  import { selectInspectsListById,selectUser} from '@/api/experiment/planAssignments'
 export default {
     data(){
         return {
-            searchData:{
-                from_time:'',
-                supplier:'',
-                mcode:'',
-                name:'',
-                specifications:'',
-                unit:'',
-                num:'',
-                userName:'',
-                end_time:'',
-
-            },
-            value:{},
-            cities:[{
-                value: 'Beijing',
-                label: '榛勫皬鏄�'
-                }, {
-                value: 'Shanghai',
-                label: '榛勫皬鏄�'
-                }, {
-            }],
-            tableData:[{            
-            date: '瀵肩嚎',
-            name: 'mm',
-            kk:'30.0',
-            zz:'30.0',
-            oo:'榛勬檽鏄�',
-            pp:'鎷夊姏鏈�',
-          },{
-            date: '瀵肩嚎',
-            name: 'mm',
-            kk:'30.0',
-            zz:'30.0',
-            oo:'榛勬檽鏄�',
-            pp:'鎷夊姏鏈�',
-          },{
-            date: '瀵肩嚎',
-            name: 'mm',
-            kk:'30.0',
-            zz:'30.0',
-            oo:'榛勬檽鏄�',
-            pp:'鎷夊姏鏈�',
-          },{
-            date: '瀵肩嚎',
-            name: 'mm',
-            kk:'30.0',
-            zz:'30.0',
-            oo:'榛勬檽鏄�',
-            pp:'鎷夊姏鏈�',
-          },{
-            date: '瀵肩嚎',
-            name: 'mm',
-            kk:'30.0',
-            zz:'30.0',
-            oo:'榛勬檽鏄�',
-            pp:'鎷夊姏鏈�',
-          }],
-          currentPage:1,
-          pageSize:8,
-          id:''
+            searchData:{ },
+            insProducts:[],
+            uu:'',
+            value:''
         }
     },
     created(){
-        console.log(this.$route.query.icode);
-        this.id = this.$route.query.icode;
-        this.selectInspectsList()
+        this.uu = this.$route.query.id;
+        this.selectInspectsListById()
+        this.selectUser()
     },
     methods: {
-      async goback(){
-        
+        //杩斿洖
+      async goback(){       
         this.$router.push({name:'inspectionApplication'})
       },
-      async selectInspectsList() {
-
-        // 鑾峰彇鍒嗛〉鍒楄〃
-        const res = await selectInspectsList({ countSize: this.pageSize, pageSize: this.currentPage ,message:this.id})
-        // this.inspectionTable = data
-        console.log(res)
-        
-    //     res.data.forEach((item) => {
-    //       var formTime = item["DATE_FORMAT(`form_time`,'%Y-%m-%d')"]
-    //       var startTime = item["DATE_FORMAT(i"]["`start_time`,'%Y-%m-%d')"]
-    //       var endTime = item["DATE_FORMAT(i"]["`end_time`,'%Y-%m-%d')"]
-    //       var checkdate = startTime + '~' + endTime
-    //       var createTime = item["DATE_FORMAT(i"]["`create_time`,'%Y-%m-%d')"]
-    //       item['formTime'] = formTime // 鏉ユ枡鏃ユ湡
-    //       item['checkdate'] = checkdate // 妫�楠屾棩鏈�
-    //       item['createTime'] = createTime // 鐧昏鏃ユ湡
-    //   })
-        this.searchData.mcode = res.data.row[0].mcode
-        this.searchData.supplier = res.data.row[0].supplier
-        this.searchData.from_time = res.data.row[0]["DATE_FORMAT(`form_time`,'%Y-%m-%d')"]
-        this.searchData.name = res.data.row[0].name
-        this.searchData.specifications = res.data.row[0].specifications
-        this.searchData.unit = res.data.row[0].unit
-        this.searchData.num = res.data.row[0].num
-        this.searchData.end_time = res.data.row[0]["DATE_FORMAT(i"]["`end_time`,'%Y-%m-%d')"]
-        this.searchData.userName = res.data.row[0].userName
-
-
-
-        
-        const data = res.data.row
-        data.forEach((item) => {
-          var formTime = item["DATE_FORMAT(`form_time`,'%Y-%m-%d')"]
-          var startTime = item["DATE_FORMAT(i"]["`start_time`,'%Y-%m-%d')"]
-          var endTime = item["DATE_FORMAT(i"]["`end_time`,'%Y-%m-%d')"]
-          var checkdate = startTime + '~' + endTime
-          var createTime = item["DATE_FORMAT(i"]["`create_time`,'%Y-%m-%d')"]
-          item['formTime'] = formTime // 鏉ユ枡鏃ユ湡
-          item['checkdate'] = checkdate // 妫�楠屾棩鏈�
-          item['createTime'] = createTime // 鐧昏鏃ユ湡
-      })
-        this.inspectionTable = data
-        this.total = res.data.total
+      //妫�楠屽崟璐d换浜�
+      async selectUser(){
+        const res = await selectUser()
+        this.ZERENren = res.data
+        // console.log(this.ZERENren);
       },
+      //妫�楠屽崟琛�
+      async selectInspectsListById() {
+        const res = await selectInspectsListById({id:this.uu})
+        this.searchData = res.data
+        this.insProducts = res.data.insProducts
+      }
 }
 }
 </script>
diff --git a/src/views/experiment/inspectionApplication/index.vue b/src/views/experiment/inspectionApplication/index.vue
index a378d03..e6f5023 100644
--- a/src/views/experiment/inspectionApplication/index.vue
+++ b/src/views/experiment/inspectionApplication/index.vue
@@ -82,7 +82,7 @@
                   label="妫�楠岀被鍨�"
                   min-width="80px">
                   <template slot-scope="scope">
-                    <div v-if="scope.row.type === 0" ><span>鍘熸潗鏂欐楠�</span></div>
+                    <div v-if="scope.row.type === 0" ><span >鍘熸潗鏂欐楠�</span></div>
                     <div v-if="scope.row.type === 1" ><span>濮旀墭妫�楠�</span></div>
                     <div v-if="scope.row.type === 2" ><span>鎴愬搧妫�楠�</span></div>
                   </template>
@@ -180,16 +180,17 @@
               title="鏂板妫�楠屽崟"
               :visible.sync="checkTypeVisible"
               width="50%"
+							top="10vh"
             >
               <div class="check-box">
-                <el-radio-group v-model="type" @change="handleRadioChange">
-                  <el-radio :label="0" border >鍘熸潗鏂欐楠�</el-radio>
-                  <el-radio :label="1" border>濮旀墭妫�楠�</el-radio>
-                  <el-radio :label="2" border>鎴愬搧妫�楠�</el-radio>
+                <el-radio-group v-model="type" @click.native="handleRadioChange">
+                  <el-radio :style="`background-color: ${type==0?'rgb(170, 236, 214)':'#fff'};border-radius: 10px;`" :label="0" border>鍘熸潗鏂欐楠�</el-radio>
+                  <el-radio :style="`background-color: ${type==1?'rgb(170, 236, 214)':'#fff'};border-radius: 10px;`" :label="1" border>濮旀墭妫�楠�</el-radio>
+                  <el-radio :style="`background-color: ${type==2?'rgb(170, 236, 214)':'#fff'};border-radius: 10px;`" :label="2" border>鎴愬搧妫�楠�</el-radio>
                 </el-radio-group>
               </div>
-              <div v-if="type === 0 || type === ''">
-                <el-form :model="infoForm" ref="infoForm" class="checkTypeForm" label-position="top" label-width="200px" size="mini">
+              <div v-if="type === 0">
+                <el-form :model="infoForm" ref="infoForm" class="checkTypeForm" label-position="top" label-width="200px" size="medium">
                   <el-row :gutter="100">
                       <el-col :span="10">
                           <el-form-item label="鏉ユ枡鏃ユ湡锛�">
@@ -251,44 +252,44 @@
                 <el-form :model="commisionSelection" ref="commisionTable" class="checkTypeForm" label-position="top" label-width="200px" size="mini">
                   <el-row :gutter="100">
                       <el-col :span="10">
-                          <el-form-item label="鏉ユ枡鏃ユ湡锛�">
-                              <el-input style="width: 300px" type="text" :value="commisionSelection.formTime" placeholder="璇疯緭鍏ユ潵鏂欐棩鏈�" autocomplete="off" />
+                          <el-form-item label="濮旀墭缂栧彿">
+                              <el-input style="width: 300px" type="text" :value="commisionSelection.entrust_coding" placeholder="璇疯緭鍏ユ潵鏂欐棩鏈�" autocomplete="off" />
                           </el-form-item>
                       </el-col>
                       <el-col :span="10">
-                          <el-form-item label="渚涘簲鍟嗗悕绉帮細">
-                              <el-input style="width: 300px" type="text" :value="commisionSelection.supplier" placeholder="璇疯緭鍏ュ鎵樺崟浣�" autocomplete="off" />
+                          <el-form-item label="濮旀墭鍗曚綅">
+                              <el-input style="width: 300px" type="text" :value="commisionSelection.entrusted" placeholder="璇疯緭鍏ュ鎵樺崟浣�" autocomplete="off" />
                           </el-form-item>
                       </el-col>
                       </el-row>
                       <el-row :gutter="100">
                       <el-col :span="10">
-                          <el-form-item label="濮旀墭缂栧彿锛�">
-                              <el-input style="width: 300px" type="text" :value="commisionSelection.mcode" placeholder="璇疯緭鍏ユ牱鍝佺紪鍙�" autocomplete="off" />
+                          <el-form-item label="鏍峰搧缂栧彿">
+                              <el-input style="width: 300px" type="text" :value="commisionSelection.samples_number" placeholder="璇疯緭鍏ユ牱鍝佺紪鍙�" autocomplete="off" />
                           </el-form-item>
                       </el-col>
                       <el-col :span="10">
-                          <el-form-item label="濮旀墭鍚嶇О锛�">
-                              <el-input style="width: 300px" type="text" :value="commisionSelection.name" placeholder="璇疯緭鍏ユ牱鍝佸悕绉�" autocomplete="off" />
+                          <el-form-item label="鏍峰搧鍚嶇О">
+                              <el-input style="width: 300px" type="text" :value="commisionSelection.sample_name" placeholder="璇疯緭鍏ユ牱鍝佸悕绉�" autocomplete="off" />
                           </el-form-item>
                       </el-col>
                       </el-row>
                       <el-row :gutter="100">
                       <el-col :span="10">
                           <el-form-item label="瑙勬牸鍨嬪彿锛�">
-                              <el-input style="width: 300px" type="text" :value="commisionSelection.specifications" placeholder="璇疯緭鍏ュ瀷鍙疯鏍�" autocomplete="off" />
+                              <el-input style="width: 300px" type="text" :value="commisionSelection.specifications_models" placeholder="璇疯緭鍏ュ瀷鍙疯鏍�" autocomplete="off" />
                           </el-form-item>
                       </el-col>
                       <el-col :span="10">
-                          <el-form-item label="鍗曚綅锛�">
-                            <el-input style="width: 300px" type="text" :value="commisionSelection.unit" placeholder="璇疯緭鍏ュ崟浣�" autocomplete="off" />
+                          <el-form-item label="閫佽揪鏃堕棿">
+                            <el-input style="width: 300px" type="text" :value="commisionSelection.dateSurvey" placeholder="璇疯緭鍏ュ崟浣�" autocomplete="off" />
                           </el-form-item>
                       </el-col>
                       </el-row>
                       <el-row :gutter="100">
                       <el-col :span="10">
-                          <el-form-item label="鏁伴噺锛�">
-                            <el-input style="width: 300px" type="text" :value="commisionSelection.num" placeholder="璇疯緭鍏ユ暟閲�" autocomplete="off" />
+                          <el-form-item label="瀹屾垚鏈熼檺">
+                            <el-input style="width: 300px" type="text" :value="commisionSelection.completionDeadline" placeholder="璇疯緭鍏ユ暟閲�" autocomplete="off" />
                           </el-form-item>
                       </el-col>
                       <el-col :span="10">
@@ -367,11 +368,90 @@
               </div>
               <span slot="footer" class="dialog-footer">
                 <el-button @click="checkTypeVisible = false">鍙� 娑�</el-button>
-                <el-button type="primary" @click="addInspection">纭� 瀹�</el-button>
+                <!-- <el-button type="primary" @click="addInspection">纭� 瀹�</el-button> -->
+                <el-button type="primary" @click="QUEding">纭� 瀹�</el-button>
               </span>
             </el-dialog>
           </div>
         </div>
+
+        <!-- 纭畾璺宠浆鍩烘湰搴撳脊绐� -->
+        <el-dialog
+              title="鏍囧噯搴�"
+              :visible.sync="Standardframe"
+              width="48%">
+              <el-card>
+                  <template slot-scope="scope" >
+                    <span>鐗堟湰閫夋嫨锛�</span>
+                            <el-select v-model="commisionTable" size="small" slot="append" style="width: 220px;">
+                            <el-option v-for="item in BANben" :key="item.id" :label="item.name"  :value="item.name"></el-option>
+                            </el-select>
+                  </template>
+              </el-card>
+                <el-table
+                    :data="tableData"
+                    style="width: 100%; margin-bottom: 20px"
+                    row-key="name"
+                    border
+
+                    default-expand-all
+                    ref="multipleTable"
+                    :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
+                  >
+                    <el-table-column type="selection" label="搴忓彿"> </el-table-column>
+                    <el-table-column
+                      type="index"
+                      width="50px"
+                      label="搴忓彿"
+                    ></el-table-column>
+                    <el-table-column label="椤圭洰鍚嶇О" sortable>
+                      <template scope="scope">
+                        <el-tag
+                          ><div
+                            class="firstDiv"
+                            :style="`color: ${
+                              scope.row.code == '[1]' ? '#16a7ff' : '#58c173'
+                            }`"
+                          >
+                            {{ scope.row.code == "[1]" ? "01" : "02" }}
+                          </div>
+                          <span style="color: black">{{ scope.row.name }}</span></el-tag
+                        >
+                      </template>
+                    </el-table-column>
+                    <el-table-column
+                      prop="unit"
+                      label="鍗曚綅"
+                      sortable
+                    ></el-table-column>
+                    <el-table-column label="鏍囧噯鍊�" sortable>
+                      <template scope="scope">
+                        <el-input
+                          v-if="scope.row.edit === true || scope.row.code === '[2]'"
+                          @blur="requiredOnfocus(scope)"
+                          v-model="scope.row.required"
+                          placeholder="璇疯緭鍏ユ爣鍑嗗��"
+                        ></el-input>
+                      </template>
+                    </el-table-column>
+                    <el-table-column prop="internal" label="鍐呮帶鍊�" sortable>
+                      <template scope="scope">
+                        <el-input
+                          v-if="scope.row.edit === true || scope.row.code === '[2]'"
+                          @blur="requiredOnfocus(scope)"
+                          v-model="scope.row.internal"
+                          placeholder="璇疯緭鍏ュ唴鎺у��"
+                        ></el-input>
+                      </template>
+                    </el-table-column>
+                  </el-table>
+                  <span slot="footer" class="dialog-footer">
+                <el-button @click="Standardframe = false">鍙� 娑�</el-button>
+                <el-button type="primary" @click="Standardframe = false">纭� 瀹�</el-button>
+            </span>
+
+            </el-dialog>
+
         <!-- 鍘熸潗鏂欐楠屾ā鎬佹 -->
         <el-dialog
         title="鍘熸潗鏂欐楠�"
@@ -385,11 +465,10 @@
               :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}"
               :data="rawMaterialTable"
               style="width: 100%"
-              @selection-change="handleSelectionChange"
+              @selection-change="handleSelectionChange_0"
             >
-              <el-table-column
+            <el-table-column
                 type="selection"
-                label=""
                 min-width="10%"
               />
               <el-table-column
@@ -398,7 +477,7 @@
                 min-width="8%"
               />
               <el-table-column
-                prop="dateSurvey"
+                prop="createTime"
                 label="鏉ユ枡鏃ユ湡"
                 min-width="8%"
               />
@@ -443,12 +522,12 @@
                 min-width="8%"
               />
               <el-table-column
-                prop="createTime"
+                prop="dateSurvey"
                 label="妫�楠屾棩鏈�"
                 min-width="8%"
               />
               <el-table-column
-                prop="state"
+                prop="condition"
                 label="鐘舵��"
                 min-width="8%"
               >
@@ -480,50 +559,32 @@
                 @selection-change="handleSelectionChange"
                 style="width: 100%"
               >
-                <el-table-column
-                  type="selection"
-                  min-width="10%"
-                />
-                <el-table-column
-                  type="index"
-                  label="搴忓彿"
-                  min-width="10%"
-                />
-                <el-table-column
-                  prop="formTime"
-                  label="鏉ユ枡鏃ユ湡"
-                  min-width="10%"
-                />
-                <el-table-column
-                  prop="supplier"
-                  label="渚涘簲鍟嗗悕绉�"
-                  min-width="12%"
-                />
-                <el-table-column
-                  prop="mcode"
-                  label="鏉愭枡缂栫爜"
-                  min-width="8%"
-                />
-                <el-table-column
-                  prop="specifications"
-                  label="瑙勬牸鍨嬪彿"
-                  min-width="8%"
-                />
-                <el-table-column
-                  prop="unit"
-                  label="鍗曚綅"
-                  min-width="12%"
-                />
-                <el-table-column
-                  prop="num"
-                  label="鏁伴噺"
-                  min-width="8%"
-                />
-                <el-table-column
-                  prop="checkdate_"
-                  label="妫�楠屾棩鏈�"
-                  min-width="8%"
-                />
+              <el-table-column type="selection" min-width="10%" />
+							<el-table-column type="index" label="搴忓彿" min-width="10%" />
+							<el-table-column prop="entrust_coding" label="濮旀墭缂栧彿" min-width="10%" />
+							<el-table-column prop="entrusted" label="濮旀墭鍗曚綅" min-width="12%" />
+							<el-table-column prop="samples_number" label="鏍峰搧缂栧彿" min-width="8%" />
+							<el-table-column prop="sample_name" label="鏍峰搧鍚嶇О" min-width="8%" />
+							<el-table-column prop="specifications_models" label="瑙勬牸鍨嬪彿" min-width="12%" />
+							<el-table-column prop="dateSurvey" label="閫佽揪鏃堕棿" min-width="8%" />
+							<el-table-column prop="completionDeadline" label="瀹屾垚鏈熼檺" min-width="8%" />
+							<el-table-column prop="contacts" label="濮旀墭缂栧埗浜�" min-width="8%" />
+							<el-table-column prop="inspectionTime" label="妫�楠屾棩鏈�" min-width="8%" />
+							<el-table-column prop="inspection_status" label="鐘舵��" min-width="8%">
+								<template slot-scope="scope">
+									<div v-if="scope.row.inspection_status === 1">
+										<span style="color: green;">宸叉娴�</span>
+									</div>
+									<div v-else>
+										<span style="color: red;">寰呮娴�</span>
+									</div>
+								</template>
+							</el-table-column>
+							<el-table-column label="鎿嶄綔" min-width="8%">
+								<template slot-scope="scope">
+									<el-button type="text" size="small">鍒犻櫎</el-button>
+								</template>
+							</el-table-column>
               </el-table>
             <span slot="footer" class="dialog-footer">
                 <el-button @click="commisionVisible = false">鍙� 娑�</el-button>
@@ -534,13 +595,12 @@
       </template>
       <template v-else>
         <router-view />
-
       </template>
     </div>
   </template>
 
   <script>
-  import { selectInspectsList, selectAll, addInspect} from '@/api/experiment/planAssignments'
+  import { selectInspectsList, selectAll, addInspect,getCommisionList,YANcailiso,chooseVer} from '@/api/experiment/planAssignments'
   export default {
     data() {
       return {
@@ -550,34 +610,11 @@
           type: '',
           state: '',
         },
+        valu:{},
         icode:'',
         inspectionTable: [],
         rawMaterialTable: [],
-        commisionTable: [{
-          specifications_models: "GGXH-AAAAA",
-          inspectionTime: "2023-08-03",
-          id: 2,
-          samples_number: 0,
-          dateSurvey: "2023-08-03",
-          entrusted: "闃块噷宸村反",
-          completionDeadline: "2023-08-03",
-          contacts: "灏忛粦",
-          entrust_coding: "SL20230803000003",
-          sample_name: "鍙戝姩鏈�",
-          inspection_status: 1
-        },{
-          specifications_models: "GGXH-AAAAA",
-          inspectionTime: "2023-08-03",
-          id: 2,
-          samples_number: 0,
-          dateSurvey: "2023-08-03",
-          entrusted: "闃块噷宸村反",
-          completionDeadline: "2023-08-03",
-          contacts: "灏忛粦",
-          entrust_coding: "SL20230803000003",
-          sample_name: "鍙戝姩鏈�",
-          inspection_status: 1
-        }],
+        commisionTable: [],
         finishedTable: {
           deliverydate: '',
           supplier: '',
@@ -588,7 +625,7 @@
           amount: '',
           checkdate: []
         },
-        infoForm:'',
+        infoForm:{},
         commisionSelection:{
           entrust_coding: '',
           entrusted: '',
@@ -629,10 +666,15 @@
         pageSize: 8, // 姣忛〉鐨勬暟鎹潯鏁�
         radioValue: '鍏ㄩ儴',
         checkTypeVisible: false,
-        type: '', // 榛樿涓嶉�変腑鐨勭姸鎬�
+        type: 0, // 榛樿涓嶉�変腑鐨勭姸鎬�
         rawmaterialVisible: false,
         commisionVisible: false,
-        tmp: ''
+        tmp: '',
+        Standardframe: false,
+				tableData: [],
+        tableRow:{},
+        BANben:[],
+        select_1: []
       }
     },
     watch: {
@@ -653,23 +695,36 @@
     },
     methods: {
       async handleClick(row){
-        // console.log(item);
-        // const res = await ddd({goodId:id})
-        // this.$message({
-        //   message: '鎭枩浣狅紝杩欐槸涓�鏉℃垚鍔熸秷鎭�',
-        //   type: 'success'
-        // });
-
-        // console.log(res);
         this.inspectionTable = row;
-        console.log(row.icode);
-        this.icode = row.icode
-        this.$router.push({name:'Viewdetails',query: {icode:row.icode}});
+        this.id = row.id
+        this.$router.push({name:'Viewdetails',query: {id:row.id}});
         this.selectInspectsList()
+      },
+      //鐗堟湰搴�
+      async chooseVer() {
+        const res = await chooseVer ({
+          mcode:this.commisionTable.entrust_coding,
+          name:this.commisionTable.entrusted,
+          scifications:this.commisionTable.specifications_models
+         })
+        console.log(res);
+        this.BANben = res.data.row
+      },
+      //濮旀墭妫�楠�
+      async getCommisionList() {
+        const res = await getCommisionList({pageNo:1,pageSize:10 })
+        console.log(res);
+        this.commisionTable = res.data
+      },
+      //鍘熸潗鏂�
+      async selecYANcailisotAllAPI() {
+        const res = await YANcailiso({pageNo:1,pageSize:10 })
+        console.log(res);
+        this.rawMaterialTable = res.data.row
       },
       async selectInspectsList() {
         // 鑾峰彇鍒嗛〉鍒楄〃
-        const res = await selectInspectsList({ countSize: this.pageSize, pageSize: this.currentPage,message:this.icode})
+        const res = await selectInspectsList({ countSize: this.pageSize, pageSize: this.currentPage,message:this.id})
         // this.inspectionTable = data
         // console.log(res.data.row)
         const data = res.data.row
@@ -699,7 +754,6 @@
           item['checkdate'] = checkdate // 妫�楠屾棩鏈�
           item['createTime'] = createTime // 鐧昏鏃ユ湡
       })
-      console.log('data:',data)
       this.inspectionTable = data
       if(this.searchData.type !== ''){
         if(this.searchData.state !== ''){
@@ -742,33 +796,30 @@
       this.infoForm = this.tmp
       this.rawmaterialVisible = false
     },
-    async handleRadioChange(){
-      if(this.type === 0){
-        // 鍘熸潗鏂欐姤妫�
-        // this.rawmaterialVisible = true
-        // const res = await selectAll({type: this.type})
-        // var data = res.data
-        // data.forEach((item)=>{
-        //   var checkdate = []
-        //   checkdate.push(item['createTime'])
-        //   checkdate.push(item['updateTime'])
-        //   item['checkdate'] = checkdate // 妫�楠屾棩鏈�
-        // })
-        this.$router.push({ name: 'ReportForInspection' });
-      }else if(this.type === 1){
-        // this.commisionVisible = true
-        // const res = await selectAll({type: this.type})
-        // var data = res.data
-        // data.forEach((item)=>{
-        //   var checkdate = []
-        //   checkdate.push(item['startTime'])
-        //   checkdate.push(item['endTime'])
-        //   item['checkdate_'] = item['startTime'] + '~' + item['endTime']
-        //   item['checkdate'] = checkdate // 妫�楠屾棩鏈�
-        // })
-        // this.commisionTable = res.data
-        this.$router.push({ name: 'CommissionInspection' });
-      }
+    handleRadioChange(){
+      setTimeout(()=>{
+				if(this.type === 0){
+				  // 鍘熸潗鏂欐姤妫�
+				  this.rawmaterialVisible = true
+				  selectAll({type: this.type}).then(res=>{
+						var data = res.data
+						data.forEach((item)=>{
+						  var checkdate = []
+						  checkdate.push(item['createTime'])
+						  checkdate.push(item['updateTime'])
+						  item['checkdate'] = checkdate // 妫�楠屾棩鏈�
+						})
+						this.rawMaterialTable = res.data
+					})
+				  // this.$router.push({ name: 'ReportForInspection' });
+				}else if(this.type === 1){
+				  this.commisionVisible = true
+                  getCnList({pageNo:1,pageSize:10}).then(res=>{
+                    // consommisioole.log(res);
+                    this.commisionTable = res.data.row
+                  })
+				}
+			},100)
     },
     // 鏂板妫�楠�
     async addInspection(){
@@ -811,7 +862,7 @@
           type: this.type,
           unit: this.finishedTable.unit })
       }
-      this.type = ''
+      this.type = 0
       this.checkTypeVisible = false
       this.$message({
           message: '娣诲姞鎴愬姛锛�',
@@ -830,6 +881,28 @@
         console.log(`褰撳墠椤�: ${val}`)
         this.currentPage = val
         this.selectInspectsList()
+      },
+      //纭畾璺宠浆
+      QUEding(){
+        // this.tableRow = a
+        this.Standardframe = true
+        chooseVer({mcode:this.select_1[0].materialCoding,
+          name:this.select_1[0].materialName,
+          scifications:this.select_1[0].specificationsModels}).then(res => {
+            this.BANben = res.data.row
+            console.log(this.BANben);
+          })
+
+      },
+      handleSelectionChange_0(val){
+        this.select_1 = []
+        val.forEach(v => {
+          let obj = {}
+          obj.materialCoding = v.materialCoding
+          obj.materialName = v.materialName
+          obj.specificationsModels = v.specificationsModels
+          this.select_1.push(obj)
+        })
       }
     }
   }
@@ -854,7 +927,7 @@
           }
           height: auto;
           font-size: 22px !important;
-          padding: 20px 40px !important;
+          padding: 40px 50px !important;
           ::v-deep  .el-radio__label{
             font-size: 22px !important;
             padding-left: 0px !important;
diff --git a/src/views/experiment/reportAuditing/index.vue b/src/views/experiment/reportAuditing/index.vue
index 6c699b2..4386859 100644
--- a/src/views/experiment/reportAuditing/index.vue
+++ b/src/views/experiment/reportAuditing/index.vue
@@ -78,7 +78,7 @@
               </span>
             </template></el-table-column
           >
-          <el-table-column
+          <el-table-columne
             prop="materialName"
             label="鏍峰搧鍚嶇О"
             min-width="10%"
@@ -86,7 +86,7 @@
           <el-table-column prop="status" label="瀹℃壒鐘舵��" min-width="8%" v-model="Auditconclusion">
             <template slot-scope="scope">
               <span>
-                <el-tag type="warning">{{
+                <el-tag :color="scope.row.status == 0 ? '' : 'rgb(187, 237, 221)'" type="warning">{{
                   scope.row.status == 0 ? "寰呴�氳繃" : "閫氳繃"
                 }}</el-tag>
               </span>
@@ -109,7 +109,7 @@
               title="鍘熷璁板綍瀹℃牳"
               :visible.sync="checkskipvisible"
               width="30%"
-          
+
               >
               <el-form :model="form">
                 <el-form-item label="璇烽�夋嫨瀹℃牳缁撴灉:" :label-width="formLabelWidth">
@@ -153,7 +153,7 @@
       reportTable: [],
       page: 1,
       total: 0,
-      pageSize: 10,
+      pageSize: 8,
       checkskipvisible: false,
       form:{},
       // handleClose:{},
@@ -163,7 +163,7 @@
       Auditconclusion:{},
       tableRow: {},
 
-      
+
     };
   },
   created() {
@@ -201,9 +201,13 @@
     //閫氳繃
     async checkskip(row) {
       console.log(this.tableRow);
-      this.reportTable[this.tableRow.$index].status=2
+      this.reportTable[this.tableRow.$index].status=1
       this.transmitData(this.tableRow.row.id)
       this.checkskipvisible= false
+      this.$message({
+          message: '閫氳繃鎴愬姛',
+          type: 'success'
+        });
 
     },
     //涓嶉�氳繃
@@ -212,12 +216,16 @@
       this.reportTable[this.tableRow.$index].status=0
       this.transmitData(this.tableRow.row.id)
       this.checkskipvisible= false
+      this.$message({
+          message: '寰呴�氳繃',
+          type: 'warning'
+        });
 
     },
     //瀹℃牳
-    async transmitData(id) { 
-      let param={"id":id,"result":1}
-     let data = await checkApi(param)     
+    async transmitData(id) {
+      let param={"id":id,"result":2}
+     let data = await checkApi(param)
     },
     // 鏌ヨ鍒楄〃
     async getData() {
diff --git a/src/views/inspectionManagement/commissionInspection/addCommision.vue b/src/views/inspectionManagement/commissionInspection/addCommision.vue
index bebe006..ce5d9d4 100644
--- a/src/views/inspectionManagement/commissionInspection/addCommision.vue
+++ b/src/views/inspectionManagement/commissionInspection/addCommision.vue
@@ -1,12 +1,13 @@
 <template>
-  <div class="add_commision">
-  <div class="content-main">
-    <div class="firstBox">
-      <div class="title">濮旀墭淇℃伅</div>
-      <div class="tableBox">
-        <div class="tableBox-header">
-        <el-button class="split" @click="dialogueFormVisible = true" type="primary" size="small" style="background-color: rgb(1, 102, 226);">娣诲姞鏍峰搧</el-button>
-<!--        <el-input
+	<div class="add_commision">
+		<div class="content-main">
+			<div class="firstBox">
+				<div class="title">濮旀墭淇℃伅</div>
+				<div class="tableBox">
+					<div class="tableBox-header">
+						<el-button class="split" @click="dialogueFormVisible = true" type="primary" size="small"
+							style="background-color: rgb(1, 102, 226);">娣诲姞鏍峰搧</el-button>
+						<!--        <el-input
           v-model="searchData"
           class="input-form split"
           placeholder="鎵弿浜岀淮鐮佸綍鍏ユ牱鍝�..."
@@ -14,537 +15,493 @@
           style="width: 200px;"
         >
         </el-input>-->
-        <el-button type="primary" size="small" style="background-color: rgb(1, 102, 226);">閲嶇疆</el-button>
-      </div>
-        <el-table
-                ref="detectionInfo"
-                :max-height="800"
-                :cell-style="{textAlign: 'center'}"
-                :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}"
-                :data="detectionInfo"
-                style="width: 100%"
-              >
-                <el-table-column
-                  type="index"
-                  label="搴忓彿"
-                  min-width="10%"
-                />
-                <el-table-column
-                  prop="sampleNumber"
-                  label="鏍峰搧缂栧彿"
-                  min-width="8%"
-                />
-                <el-table-column
-                  prop="sampleName"
-                  label="鏍峰搧鍚嶇О"
-                  min-width="10%"
-                />
-                <el-table-column
-                  prop="specificationsModels"
-                  label="瑙勬牸鍨嬪彿"
-                  min-width="10%"
-                />
-                <el-table-column
-                  prop="unit"
-                  label="鍗曚綅"
-                  min-width="8%"
-                />
-                <el-table-column
-                  prop="samplesNumber"
-                  label="鏁伴噺"
-                  min-width="8%"
-                />
-                <el-table-column
-                  prop="addway"
-                  label="娣诲姞鏂瑰紡"
-                  min-width="8%">
-                  <template slot-scope="scope">
-                    <div v-if="scope.row.addway === 0">
-                      <el-tag :type= 'success' disable-transitions>鎵弿</el-tag>
-                    </div>
-                    <div v-if="scope.row.addway === 1">
-                      <el-tag :type= 'primary' disable-transitions>褰曞叆</el-tag>
-                    </div>
-                    <div v-else></div>
-                </template>
-                </el-table-column>
-                <el-table-column
-                  prop="experiment"
-                  label="璇曢獙"
-                  min-width="8%"
-                />
-                <el-table-column
-                  prop="remarks"
-                  label="澶囨敞"
-                  min-width="8%"
-                />
-                <el-table-column
-                  label="鎿嶄綔"
-                  min-width="8%"
-                >
-                  <template slot-scope="scope">
-                    <el-button type="text" size="small">淇敼</el-button>
-                    <el-button type="text" size="small" @click="deleteRow(scope.row)">鍒犻櫎</el-button>
-                  </template>
-                </el-table-column>
-              </el-table>
-              <!-- 鍒嗛〉鍣� -->
-              <div>
-                <el-pagination
-                  class="pagination"
-                  @size-change="handleSizeChange"
-                  @current-change="handleCurrentChange"
-                  :current-page="currentPage"
-                  :page-sizes="[100, 200, 300, 400]"
-                  :page-size="100"
-                  layout="total, sizes, prev, pager, next, jumper"
-                  :total="400">
-                </el-pagination>
-              </div>
-      </div>
-      <div class="secondBox">
-        <el-row class="header">
-            <el-col :span="12">鍩烘湰淇℃伅</el-col>
-            <el-col :span="12" style="text-align: right;">
-            <!-- 鐐瑰嚮杩斿洖锛屽綋鍓嶉〉闈㈠�间负false -->
-            <!-- <el-button type="primary" size="mini" style="background-color: rgb(1, 102, 226); ">鎵撳嵃濮旀墭鍗�</el-button> -->
-            </el-col>
-        </el-row>
-            <el-form :model="infoForm" ref="infoForm" class="infoForm" label-position="right" label-width="100px" size="mini" >
-              <div class="formwrapper">
-                  <el-row :gutter="200">
-                        <el-col :span="5">
-                        <el-form-item label="濮旀墭缂栧彿锛�">
-                            <el-input style="width: 160px" type="text" :value="infoForm.commisioncode" readonly disabled="true" autocomplete="off" />
-                        </el-form-item>
-                        </el-col>
-                        <el-col :span="5">
-                        <el-form-item label="濮旀墭鍗曚綅锛�">
-                          <el-input style="width: 160px" v-model="infoForm.department" placeholder="璇疯緭鍏ュ鎵樺崟浣�"  />
-                        </el-form-item>
-                        </el-col>
-                        <el-col :span="5">
-                        <el-form-item label="鑱旂郴浜猴細">
-                          <el-input style="width: 160px" v-model="infoForm.contacter" placeholder="璇疯緭鍏ュ鎵樺崟浣�"  />
-                        </el-form-item>
-                        </el-col>
-                        <el-col :span="5">
-                        <el-form-item label="鑱旂郴鐢佃瘽锛�">
-                          <el-input style="width: 160px" v-model="infoForm.tel" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" />
-                        </el-form-item>
-                        </el-col>
-                    </el-row>
-                    <el-row :gutter="200">
-                        <el-col :span="5">
-                        <el-form-item label="鑱旂郴鍦板潃锛�" >
-                          <el-input style="width: 160px;" v-model="infoForm.address" placeholder="璇疯緭鍏ヨ仈绯诲湴鍧�" autocomplete="off" />
-                        </el-form-item>
-                        </el-col>
-                        <el-col :span="5">
-                        <el-form-item label="瀹屾垚鏈熼檺锛�">
-                            <el-date-picker
-                              v-model="infoForm.deadline"
-                              type="date"
-                              placeholder="閫夋嫨鏃ユ湡"
-                              style="width: 160px;">
-                            </el-date-picker>
-                          </el-form-item>
-                        </el-col>
-                        <el-col :span="5">
-                        <el-form-item label="閫佹牱鏃堕棿锛�">
-                            <el-date-picker
-                              v-model="infoForm.time"
-                              type="date"
-                              placeholder="閫夋嫨鏃ユ湡"
-                              style="width: 160px;">
-                            </el-date-picker>
-                        </el-form-item>
-                        </el-col>
-                        <el-col :span="5">
-                        <el-form-item label="閫佹牱鏂瑰紡锛�">
-                          <el-select style="width: 160px;" v-model="infoForm.way" size="small" placeholder="閫佹牱">
-                                <el-option v-for="options in sampleDeliveryMode" :key="options.key" :value="options.value">{{ options.value }}</el-option>
-                            </el-select>
-                        </el-form-item>
-                        </el-col>
-                    </el-row>
-                    <el-row :gutter="200">
-                        <el-col :span="5">
-                        <el-form-item label="閫佹牱浜猴細" >
-                          <el-input style="width: 160px;" v-model="infoForm.sender" placeholder="璇疯緭鍏ラ�佹牱浜�" autocomplete="off" />
-                        </el-form-item>
-                        </el-col>
-                        <el-col :span="5">
-                        <el-form-item label="閫佹牱浜虹數璇濓細" >
-                          <el-input style="width: 160px;" v-model="infoForm.sendertel" placeholder="璇疯緭鍏ラ�佹牱浜虹數璇�" autocomplete="off" />
-                        </el-form-item>
-                        </el-col>
-                        <el-col :span="5">
-                        <el-form-item label="鎶ュ憡鏁帮細">
-                            <el-input style="width: 160px;" v-model="infoForm.num" placeholder="璇疯緭鍏ユ姤鍛婃暟" autocomplete="off" />
-                        </el-form-item>
-                        </el-col>
-                        <el-col :span="5">
-                        <el-form-item label="濮旀墭澶囨敞锛�">
-                            <el-input style="width: 160px;" v-model="infoForm.other" placeholder="澶囨敞" autocomplete="off" />
-                        </el-form-item>
-                        </el-col>
-                    </el-row>
-                    </div>
-                    <div class="submitBtn">
-                      <el-button type="primary" size="small" @click="submitInspection" style="background-color: rgb(1, 102, 226);">鎻愪氦</el-button>
-                      <!-- 鐐瑰嚮杩斿洖锛屽綋鍓嶉〉闈㈠�间负false -->
-                      <el-button type="primary" size="mini" style="background-color: rgb(1, 102, 226); ">鎵撳嵃濮旀墭鍗�</el-button>
-                    </div>
-                </el-form>
-      </div>
-    </div>
-    <div class="checkType">
-      <el-dialog
-        title="娣诲姞鎸囨爣"
-        :visible.sync="dialogueFormVisible"
-        width="40%"
-      >
-        <el-form :model="addPointerForm" ref="addPointerForm" class="addPointerForm" label-position="right" label-width="100px" size="mini">
-          <el-row :gutter="50">
-            <el-col :span="10">
-              <el-form-item label="鏍峰搧缂栧彿锛�">
-                <el-select style="width: 160px;" v-model="addPointerForm.sampleNumber" size="small" placeholder="璇烽�夋嫨鏍峰搧缂栧彿">
-                  <el-option v-for="options in samplecodeoptions" :value="options.value" :key="options.key" >{{ options.value }}</el-option>
-                </el-select>
-              </el-form-item>
-            </el-col>
-            <el-col :span="10">
-              <el-form-item label="鏍峰搧鍚嶇О锛�">
-                <el-select style="width: 160px;" v-model="addPointerForm.sampleName" size="small" placeholder="璇烽�夋嫨鏍峰搧鍚嶇О">
-                  <el-option v-for="options in sampleoptions" :value="options.value" :key="options.key">{{ options.value }}</el-option>
-                </el-select>
-              </el-form-item>
-            </el-col>
-          </el-row>
-          <el-row :gutter="50">
-            <el-col :span="10">
-              <el-form-item label="瑙勬牸鍨嬪彿锛�">
-                <el-select style="width: 160px;" v-model="addPointerForm.specificationsModels" size="small" placeholder="璇烽�夋嫨鏍峰搧鍚嶇О">
-                  <el-option v-for="options in model_spe_options" :value="options.value" :key="options.key">{{ options.value }}</el-option>
-                </el-select>
-              </el-form-item>
-            </el-col>
-            <el-col :span="10">
-              <el-form-item label="鏍峰搧鍗曚綅锛�">
-                <el-input style="width: 160px" type="text" v-model="addPointerForm.unit" placeholder="璇疯緭鍏ュ崟浣�" autocomplete="off" />
-              </el-form-item>
-            </el-col>
-          </el-row>
-          <el-row :gutter="50">
-            <el-col :span="10">
-              <el-form-item label="鏍峰搧鏁伴噺锛�">
-                <el-input style="width: 160px" type="text" v-model="addPointerForm.samplesNumber" placeholder="璇疯緭鍏ユ暟閲�" autocomplete="off" />
-              </el-form-item>
-            </el-col>
-            <el-col :span="10">
-              <el-form-item label="澶囨敞锛�">
-                <el-input style="width: 160px" type="text" v-model="addPointerForm.remarks" placeholder="璇疯緭鍏ュ娉�" autocomplete="off" />
-              </el-form-item>
-            </el-col>
-          </el-row>
-          <el-row :gutter="50">
-            <el-col :span="10">
-              <el-form-item label="娣诲姞瀹為獙锛�">
-                <el-checkbox-group v-model="addPointerForm.experiment" style="display: flex; flex-direction: column;">
-                  <el-checkbox v-for="expers in experList" :label="expers.label" :key="expers.key">{{ expers.label }}</el-checkbox>
-                </el-checkbox-group>
-              </el-form-item>
-            </el-col>
-          </el-row>
-              </el-form>
-              <span slot="footer" class="dialog-footer">
-                <el-button type="primary" @click="addInspection">娣诲姞</el-button>
-                <el-button @click="dialogueFormVisible = false">鍙� 娑�</el-button>
-              </span>
-      </el-dialog>
-          </div>
-  </div>
-</div>
+						<el-button type="primary" size="small" style="background-color: rgb(1, 102, 226);">閲嶇疆</el-button>
+					</div>
+					<el-table ref="detectionInfo" :max-height="800" :cell-style="{textAlign: 'center'}"
+						:header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}"
+						:data="detectionInfo" style="width: 100%;margin-bottom: 20px;">
+						<el-table-column type="index" label="搴忓彿" min-width="10%" />
+						<el-table-column prop="sampleNumber" label="鏍峰搧缂栧彿" min-width="8%" />
+
+						<el-table-column prop="sampleName" label="鏍峰搧鍚嶇О" min-width="10%" />
+
+						<el-table-column prop="specificationsModels" label="瑙勬牸鍨嬪彿" min-width="10%" />
+						<el-table-column prop="unit" label="鍗曚綅" min-width="8%" />
+						<el-table-column prop="samplesNumber" label="鏁伴噺" min-width="8%" />
+						<el-table-column prop="addway" label="娣诲姞鏂瑰紡" min-width="8%">
+							<template slot-scope="scope">
+								<div v-if="scope.row.addway === 0">
+									<el-tag type="success" disable-transitions>鎵弿</el-tag>
+								</div>
+								<div v-if="scope.row.addway === 1">
+									<el-tag type="primary" disable-transitions>褰曞叆</el-tag>
+								</div>
+								<div v-else></div>
+							</template>
+						</el-table-column>
+						<el-table-column prop="remarks" label="澶囨敞" min-width="8%" />
+						<el-table-column label="鎿嶄綔" min-width="8%">
+							<template slot-scope="scope">
+								<el-button type="text" size="small">淇敼</el-button>
+								<el-button type="text" size="small" @click="deleteRow(scope.row)">鍒犻櫎</el-button>
+							</template>
+						</el-table-column>
+					</el-table>
+				</div>
+				<div class="secondBox">
+					<el-row class="header">
+						<el-col :span="12" style="font-size: 16px;margin-bottom: 5px;">鍩烘湰淇℃伅</el-col>
+						<el-col :span="12" style="text-align: right;">
+						</el-col>
+					</el-row>
+					<el-form :model="infoForm" ref="infoForm" class="infoForm" label-position="right" label-width="100px"
+						size="mini">
+						<div class="formwrapper">
+							<el-row :gutter="200">
+								<el-col :span="5">
+									<el-form-item label="濮旀墭缂栧彿锛�">
+										<el-input style="width: 200px" type="text" :value="infoForm.commisioncode" readonly disabled
+											autocomplete="off" size="small" />
+									</el-form-item>
+								</el-col>
+								<el-col :span="5">
+									<el-form-item label="濮旀墭鍗曚綅锛�">
+										<el-input style="width: 200px" v-model="infoForm.department" placeholder="璇疯緭鍏ュ鎵樺崟浣�" size="small" />
+									</el-form-item>
+								</el-col>
+								<el-col :span="5">
+									<el-form-item label="鑱旂郴浜猴細">
+										<el-input style="width: 200px" v-model="infoForm.contacter" placeholder="璇疯緭鍏ュ鎵樺崟浣�" size="small" />
+									</el-form-item>
+								</el-col>
+								<el-col :span="5">
+									<el-form-item label="鑱旂郴鐢佃瘽锛�">
+										<el-input style="width: 200px" v-model="infoForm.tel" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" size="small" />
+									</el-form-item>
+								</el-col>
+							</el-row>
+							<el-row :gutter="200">
+								<el-col :span="5">
+									<el-form-item label="鑱旂郴鍦板潃锛�">
+										<el-input style="width: 200px;" v-model="infoForm.address" placeholder="璇疯緭鍏ヨ仈绯诲湴鍧�" autocomplete="off"
+											size="small" />
+									</el-form-item>
+								</el-col>
+								<el-col :span="5">
+									<el-form-item label="瀹屾垚鏈熼檺锛�">
+										<el-date-picker v-model="infoForm.deadline" type="date" placeholder="閫夋嫨鏃ユ湡" style="width: 200px;"
+											size="small">
+										</el-date-picker>
+									</el-form-item>
+								</el-col>
+								<el-col :span="5">
+									<el-form-item label="閫佹牱鏃堕棿锛�">
+										<el-date-picker v-model="infoForm.time" type="date" placeholder="閫夋嫨鏃ユ湡" style="width: 200px;">
+										</el-date-picker>
+									</el-form-item>
+								</el-col>
+								<el-col :span="5">
+									<el-form-item label="閫佹牱鏂瑰紡锛�">
+										<el-select style="width: 200px;" v-model="infoForm.way" size="small" placeholder="閫佹牱">
+											<el-option v-for="options in sampleDeliveryMode" :key="options.key"
+												:value="options.value">{{ options.value }}</el-option>
+										</el-select>
+									</el-form-item>
+								</el-col>
+							</el-row>
+							<el-row :gutter="200">
+								<el-col :span="5">
+									<el-form-item label="閫佹牱浜猴細">
+										<el-input style="width: 200px;" v-model="infoForm.sender" placeholder="璇疯緭鍏ラ�佹牱浜�" autocomplete="off"
+											size="small" />
+									</el-form-item>
+								</el-col>
+								<el-col :span="5">
+									<el-form-item label="閫佹牱浜虹數璇濓細">
+										<el-input style="width: 200px;" v-model="infoForm.sendertel" placeholder="璇疯緭鍏ラ�佹牱浜虹數璇�"
+											autocomplete="off" size="small" />
+									</el-form-item>
+								</el-col>
+								<el-col :span="5">
+									<el-form-item label="鎶ュ憡鏁帮細">
+										<el-input style="width: 200px;" v-model="infoForm.num" placeholder="璇疯緭鍏ユ姤鍛婃暟" autocomplete="off"
+											size="small" />
+									</el-form-item>
+								</el-col>
+								<el-col :span="5">
+									<el-form-item label="濮旀墭澶囨敞锛�">
+										<el-input style="width: 200px;" v-model="infoForm.other" placeholder="澶囨敞" autocomplete="off"
+											size="small" />
+									</el-form-item>
+								</el-col>
+							</el-row>
+						</div>
+						<div class="submitBtn">
+							<el-button type="primary" size="small" @click="submitInspection"
+								style="background-color: rgb(1, 102, 226);">鎻愪氦</el-button>
+							<!-- 鐐瑰嚮杩斿洖锛屽綋鍓嶉〉闈㈠�间负false -->
+							<el-button type="primary" size="mini" style="background-color: rgb(1, 102, 226); ">鎵撳嵃濮旀墭鍗�</el-button>
+						</div>
+					</el-form>
+				</div>
+			</div>
+			<div class="checkType">
+				<el-dialog title="娣诲姞鏍峰搧" :visible.sync="dialogueFormVisible" width="40%" top="30vh">
+					<el-form :model="addPointerForm" ref="addPointerForm" class="addPointerForm" label-position="right"
+						label-width="100px" size="mini">
+						<el-row :gutter="50">
+							<el-col :span="11">
+								<el-form-item label="鏍峰搧缂栧彿锛�">
+									<el-input v-model="addPointerForm.sampleNumber" size="small" disabled>
+									</el-input>
+								</el-form-item>
+							</el-col>
+							<el-col :span="11">
+								<el-form-item label="鏍峰搧鍚嶇О锛�">
+									<el-select v-model="addPointerForm.sampleName" size="small" placeholder="璇烽�夋嫨鏍峰搧鍚嶇О"
+										@change="upMaterialName">
+										<el-option v-for="options in sampleoptions" :value="options.key" :label="options.value"></el-option>
+									</el-select>
+								</el-form-item>
+							</el-col>
+						</el-row>
+						<el-row :gutter="50">
+							<el-col :span="11">
+								<el-form-item label="璇勫畾鏍囧噯锛�">
+									<el-select v-model="addPointerForm.addway" size="small" placeholder="璇烽�夋嫨璇勫畾鏍囧噯">
+										<el-option v-for="options in model_spe_options" :value="options.value"
+											:key="options.key">{{ options.value }}</el-option>
+									</el-select>
+								</el-form-item>
+							</el-col>
+							<el-col :span="11">
+								<el-form-item label="瑙勬牸鍨嬪彿锛�">
+									<el-select v-model="addPointerForm.specificationsModels" size="small" placeholder="璇峰厛閫夋嫨鏍峰搧鍚嶇О">
+										<el-option v-for="options in model_spe_options" :value="options.value"
+											:key="options.key">{{ options.value }}</el-option>
+									</el-select>
+								</el-form-item>
+							</el-col>
+							
+						</el-row>
+						<el-row :gutter="50">
+
+							<el-col :span="11">
+								<el-form-item label="鏍峰搧鍗曚綅锛�">
+									<el-input type="text" v-model="addPointerForm.unit" placeholder="璇疯緭鍏ュ崟浣�" autocomplete="off" />
+								</el-form-item>
+							</el-col>
+
+							<el-col :span="11">
+								<el-form-item label="鏍峰搧鏁伴噺锛�">
+									<el-input type="text" v-model="addPointerForm.samplesNumber" placeholder="璇疯緭鍏ユ暟閲�" autocomplete="off" />
+								</el-form-item>
+							</el-col>
+							
+						</el-row>
+						<el-row :gutter="50">
+							<el-col :span="9">
+								<el-form-item label="娣诲姞椤圭洰锛�">
+									<el-checkbox-group v-model="addPointerForm.experiment" style="display: flex; flex-direction: column;">
+										<el-checkbox v-for="expers in experList" :label="expers.label"
+											:key="expers.key">{{ expers.label }}</el-checkbox>
+									</el-checkbox-group>
+								</el-form-item>
+							</el-col>
+							<el-col :span="41">
+								<el-form-item label="澶囨敞锛�">
+									<el-input type="textarea" :autosize="{ minRows: 4, maxRows: 20}"  style="width: 200px;" v-model="addPointerForm.remarks" placeholder="璇疯緭鍏ュ娉�" autocomplete="off" />
+								</el-form-item>
+							</el-col>
+						</el-row>
+					</el-form>
+					<span slot="footer" class="dialog-footer">
+						<el-button type="primary" @click="addInspection">娣诲姞</el-button>
+						<el-button @click="dialogueFormVisible = false">鍙� 娑�</el-button>
+					</span>
+				</el-dialog>
+			</div>
+		</div>
+	</div>
 </template>
 
 <script>
-import {getSampleName, getModelSpecification, getlink, addInspection} from '@/api/inspection/commisioninspection'
-export default {
-  data() {
-    return {
-      currentPage: 0,
-      searchData: '',
-      infoForm: {
-        commisioncode: '',
-        department: '',
-        contacter: '',
-        tel: '',
-        address: '',
-        deadline: '',
-        time: '',
-        way: '',
-        sender: '',
-        sendertel: '',
-        num: '',
-        other: ''
-      },
-      detectionInfo: [],
-      addPointerForm:{
-        sampleNumber: '',
-        sampleName: '',
-        specificationsModels: '',
-        unit: '',
-        samplesNumber: '',
-        remarks: '',
-        experiment: [],
-        addway: ''
-      },
-      experList:[{
-        key: '1',
-        label: '澶栬妫�鏌�'
-      },{
-        key: '2',
-        label: '鍔ㄤ綔鐢靛帇璇曢獙'
-      },{
-        key: '3',
-        label: '鐢甸樆绠℃硠婕忕數娴佽瘯楠�'
-      },{
-        key: '4',
-        label: '缁濈紭閮ㄥ垎浜ゆ祦鑰愬帇璇曢獙'
-      }],
-      sampleoptions:[{
-        key:'1',
-        value: '閫夐」1'
-      },{
-        key:'2',
-        value: '閫夐」2'
-      }],
-      samplecodeoptions:[{
-        key:'1',
-        value: ''
-      }],
-      model_spe_options:[{
-        key:'1',
-        value: '閫夐」1'
-      },{
-        key: '2',
-        value: '閫夐」2'
-      }],
-      sampleDeliveryMode:[{
-        key: '1',
-        value: '閫佹牱'
-      },{
-        key: '2',
-        value: '涓婇棬'
-      }],
-      dialogueFormVisible: false,
-      showDetail: false
-    }
-  },
-  created(){
-    this.getlink()
-  },
-  mounted(){
-    this.getSampleName()
-    this.getModelSpecification()
-  },
-  methods: {
-    // 鑾峰彇閾炬帴link
-    getlink(){
-      getlink().then((result)=>{
-        this.$store.commit('settings/SAVE_LINK',result.data)
-        console.log(this.$store.state.settings.link)
-      })
-    },
-    async getSampleName(){
-      const res = await getSampleName()
-      // console.log('res',res.data)
-      this.sampleoptions = res.data.map((item)=>{
-        return{
-          key:item.id.toString(),
-          value:item.name
-        }
-      })
-      this.samplecodeoptions = res.data.map((item)=>{
-        return{
-          key:item.id.toString(),
-          value:item.code
-        }
-      })
-    },
-    async getModelSpecification(){
-      const res = await getModelSpecification({materialId: '1'})
-      // console.log(res)
-      this.model_spe_options = res.data.map((item)=>{
-        return{
-          key:item.specificationsId,
-          value:item.specificationsName
-        }
-      })
-    },
-    addInspection(){
-      let exper = this.addPointerForm.experiment[0]
-      this.addPointerForm.addway = 1
-      for(let i=1;i<this.addPointerForm.experiment.length;i++){
-        exper += ',' + this.addPointerForm.experiment[i]
-      }
-      // console.log(exper)
-      this.addPointerForm.experiment = exper
-      let tmp = this.addPointerForm
-      this.detectionInfo.push(tmp)
-      this.dialogueFormVisible = false
-      this.addPointerForm ={
-        sampleNumber: '',
-        sampleName: '',
-        specificationsModels: '',
-        unit: '',
-        samplesNumber: '',
-        remarks: '',
-        experiment: [],
-        addway: ''
-      }
-    },
-    async submitInspection(){
-      let sampledeliveryway
-      if(this.infoForm.way === '閫佹牱'){
-        sampledeliveryway = 1
-      }else{
-        sampledeliveryway = 2
-      }
-      const res = await addInspection({completionDeadline: this.infoForm.deadline,
-        contactAddress: this.infoForm.address,
-        contactNumber: this.infoForm.tel,
-        contacts: this.infoForm.contacter,
-        entrustRemarks: this.infoForm.other,
-        entrusted: this.infoForm.department,
-        inspectionTime: this.infoForm.time,
-        linkDetectionList: this.detectionInfo,
-        reportNumber: parseInt(this.infoForm.num),
-        sampleDeliveryMode: sampledeliveryway,
-        sampleDeliveryPhone: this.infoForm.sendertel,
-        sampleSender: this.infoForm.sender})
-//       const res = await addInspection({
-//   completionDeadline: "2023-08-03",
-//   contactAddress: "姹熻嫃鍗楅��",
-//   contactNumber: "12321423432",
-//   contacts: "灏忛粦",
-//   entrustRemarks: "濮旀墭澶囨敞YPBH123456789YPBH123456789YPBH123456789",
-//   entrusted: "闃块噷宸村反",
-//   inspectionTime: "2023-08-03",
-//   linkDetectionList: [
-//     {
-//       "experiment": "鍋氭ⅵ",
-//       "remarks": "閫氳繃浜�",
-//       "sampleName": "鍙戝姩鏈�",
-//       "sampleNumber": "YPBH123456789",
-//       "samplesNumber": 20,
-//       "specificationsModels": "GGXH-AAAAA",
-//       "unit": "鐧惧害"
-//     }
-//   ],
-//   reportNumber: 23,
-//   sampleDeliveryMode: 1,
-//   sampleDeliveryPhone: "123456789676",
-//   sampleSender: "灏忕櫧"
-// })
-      // console.log(res)
-      this.infoForm.commisioncode = res.data
-      if(res.data){
-        this.$message({
-          message: '鎭枩浣�!',
-          type: 'success'
-        })
-        // 璺宠浆椤甸潰
-        this.$router.push('/inspectionManagement/commissionInspection')
-        this.showDetail = true
-      }else{
-        this.$message.error(res.message)
-      }
-    },
-    handleSizeChange(pageSize) {
-      this.pageParams.pageSize = pageSize
-    },
-    handleCurrentChange(pageNo) {
-      this.pageParams.pageNo = pageNo
-    },
-    deleteRow(row){
-      console.log(row)
-      row = null
-    }
-  }
-}
+	import {
+		getSampleName,
+		getModelSpecification,
+		getlink,
+		addInspection,
+		isIfViewUUID
+	} from '@/api/inspection/commisioninspection'
+	export default {
+		data() {
+			return {
+				currentPage: 0,
+				searchData: '',
+				infoForm: {
+					commisioncode: '',
+					department: '',
+					contacter: '',
+					tel: '',
+					address: '',
+					deadline: '',
+					time: '',
+					way: '',
+					sender: '',
+					sendertel: '',
+					num: '',
+					other: ''
+				},
+				detectionInfo: [],
+				addPointerForm: {
+					sampleNumber: '',
+					sampleName: '',
+					specificationsModels: '',
+					unit: '',
+					samplesNumber: '',
+					remarks: '',
+					experiment: [],
+					addway: ''
+				},
+				experList: [{
+					key: '1',
+					label: '澶栬妫�鏌�'
+				}, {
+					key: '2',
+					label: '鍔ㄤ綔鐢靛帇璇曢獙'
+				}, {
+					key: '3',
+					label: '鐢甸樆绠℃硠婕忕數娴佽瘯楠�'
+				}, {
+					key: '4',
+					label: '缁濈紭閮ㄥ垎浜ゆ祦鑰愬帇璇曢獙'
+				}],
+				sampleoptions: [{
+					key: '1',
+					value: '閫夐」1'
+				}, {
+					key: '2',
+					value: '閫夐」2'
+				}],
+				samplecodeoptions: [{
+					key: '1',
+					value: ''
+				}],
+				model_spe_options: [],
+				sampleDeliveryMode: [{
+					key: '1',
+					value: '閫佹牱'
+				}, {
+					key: '2',
+					value: '涓婇棬'
+				}],
+				dialogueFormVisible: false,
+				showDetail: false,
+				viewId: null
+			}
+		},
+		created() {
+			this.viewId = this.$route.params.viewId
+			this.$store.commit('settings/SAVE_LINK', this.viewId)
+			this.getlink(this.$route.params.viewId)
+		},
+		mounted() {
+			this.getSampleName()
+		},
+		methods: {
+			getlink(viewId) {
+				if (viewId == null) {
+					this.$message.error('褰撳墠閾炬帴涓嶅湪鏈夋晥鏈熷唴,绯荤粺鑷姩鍏抽棴')
+					this.$router.push('/404')
+					return
+				}
+				isIfViewUUID({
+					viewId
+				}).then(res => {
+					if (!res.data) {
+						this.$message.error('褰撳墠閾炬帴涓嶅湪鏈夋晥鏈熷唴,绯荤粺鑷姩鍏抽棴')
+						this.$router.push('/404')
+					}
+				})
+			},
+			async getSampleName() {
+				const res = await getSampleName()
+				this.sampleoptions = res.data.map((item) => {
+					return {
+						key: item.id.toString(),
+						value: item.name,
+						code: item.code
+					}
+				})
+			},
+			async getModelSpecification(val) {
+				const res = await getModelSpecification({
+					materialId: val
+				})
+				this.model_spe_options = res.data.map((item) => {
+					return {
+						key: item.specificationsId,
+						value: item.specificationsName
+					}
+				})
+			},
+			addInspection() {
+				let exper = this.addPointerForm.experiment[0]
+				this.addPointerForm.addway = 1
+				for (let i = 1; i < this.addPointerForm.experiment.length; i++) {
+					exper += ',' + this.addPointerForm.experiment[i]
+				}
+				
+				// console.log(exper)
+				this.addPointerForm.experiment = exper
+				let tmp = this.addPointerForm
+				this.detectionInfo.push(tmp)
+				this.dialogueFormVisible = false
+				this.addPointerForm = {
+					sampleNumber: '',
+					sampleName: '',
+					specificationsModels: '',
+					unit: '',
+					samplesNumber: '',
+					remarks: '',
+					experiment: [],
+					addway: ''
+				}
+			},
+			async submitInspection() {
+				let sampledeliveryway
+				if (this.infoForm.way === '閫佹牱') {
+					sampledeliveryway = 1
+				} else {
+					sampledeliveryway = 2
+				}
+				const res = await addInspection({
+					completionDeadline: this.infoForm.deadline,
+					contactAddress: this.infoForm.address,
+					contactNumber: this.infoForm.tel,
+					contacts: this.infoForm.contacter,
+					entrustRemarks: this.infoForm.other,
+					entrusted: this.infoForm.department,
+					inspectionTime: this.infoForm.time,
+					linkDetectionList: this.detectionInfo,
+					reportNumber: parseInt(this.infoForm.num),
+					sampleDeliveryMode: sampledeliveryway,
+					sampleDeliveryPhone: this.infoForm.sendertel,
+					sampleSender: this.infoForm.sender
+				})
+				this.infoForm.commisioncode = res.data
+				if (res.data) {
+					this.$message({
+						message: '鎭枩浣�!',
+						type: 'success'
+					})
+					// 璺宠浆椤甸潰
+					this.$router.push('/inspectionManagement/commissionInspection')
+					this.showDetail = true
+				} else {
+					this.$message.error(res.message)
+				}
+			},
+			handleSizeChange(pageSize) {
+				this.pageParams.pageSize = pageSize
+			},
+			handleCurrentChange(pageNo) {
+				this.pageParams.pageNo = pageNo
+			},
+			deleteRow(row) {
+
+			},
+			upMaterialName(val) {
+				this.sampleoptions.forEach(a => {
+					if (a.key == val) {
+						this.addPointerForm.sampleNumber = a.code
+					}
+				})
+				this.getModelSpecification(val)
+			}
+		}
+	}
 </script>
 
 <style lang="scss" scoped>
-.add_commision{
-  padding: 20px;
-}
-
 .content-main{
   padding: 20px 40px;
   background-color: #f0f2f5;
   width: 100%;
   height: 100vh;
+  display: flex;
+  flex-direction: column;
+  justify-content: space-between;
+  // align-items: center;
 
-.firstBox{
-  .title {
-    padding: 15px 10px;
-    font-size: 18px;
-    background-color: #0166e2;
-    color: #fff;
-    border-radius: 4px;
-  }
-  .tableBox{
-    background-color: #fff;
-    padding: 0px 20px;
-    margin: 0px -15px;
-    flex: 1;
-    background: #fff;
-    /* padding: 20px 20px 10px 20px; */
-    display: flex;
-    flex-direction: column;
-    .tableBox-header{
-      padding: 20px 0px;
-      .split{
-        margin-right: 15px;
-      }
-    }
-          .el-table {
-            flex: 1;
-          }
-          >div:nth-child(3){
-            display: flex;
-            justify-content: end;
-            margin: 10px 0;
-          }
-  }
-}
-.secondBox{
-  margin: 0px -15px;
-  .header{
-    display: flex;
-    justify-content: space-between;
-    padding: 10px 20px;
-    margin-top: 10px;
-  }
-  .submitBtn{
-    display: flex;
-    justify-content: end;
-    margin-right: 40px;
-    margin-top: 20px;
-  }
-}
-.infoForm{
-  background-color: #fff;
-  padding: 20px 50px;
-  .formwrapper{
-    margin: 20px 0px;
-    padding-left: 30px;
-    .el-row{
-      margin: 10px 0px;
-    }
-  }
-}
-}
-</style>
+		.firstBox {
+			.title {
+				padding: 15px 10px;
+				font-size: 18px;
+				background-color: #0166e2;
+				color: #fff;
+				border-radius: 4px;
+				margin-bottom: 20px;
+			}
+
+			.tableBox {
+				background-color: #fff;
+				padding: 0px 20px;
+				flex: 1;
+				background: #fff;
+				/* padding: 20px 20px 10px 20px; */
+				display: flex;
+				flex-direction: column;
+
+				.tableBox-header {
+					padding: 20px 0px;
+
+					.split {
+						margin-right: 15px;
+					}
+				}
+
+				.el-table {
+					flex: 1;
+				}
+
+				>div:nth-child(3) {
+					display: flex;
+					justify-content: end;
+					margin: 10px 0;
+				}
+			}
+		}
+
+		.secondBox {
+
+			.header {
+				display: flex;
+				justify-content: space-between;
+				padding: 10px 20px;
+				margin-top: 10px;
+			}
+
+			.submitBtn {
+				display: flex;
+				justify-content: end;
+				margin-right: 40px;
+				margin-top: 20px;
+			}
+		}
+
+		.infoForm {
+			background-color: #fff;
+			padding: 20px 50px;
+
+			.formwrapper {
+				margin: 20px 0px;
+				padding-left: 30px;
+
+				.el-row {
+					margin: 10px 0px;
+				}
+			}
+		}
+	}
+</style>
\ No newline at end of file
diff --git a/src/views/inspectionManagement/commissionInspection/index.vue b/src/views/inspectionManagement/commissionInspection/index.vue
index a07fdda..b113ca8 100644
--- a/src/views/inspectionManagement/commissionInspection/index.vue
+++ b/src/views/inspectionManagement/commissionInspection/index.vue
@@ -339,70 +339,71 @@
 		display: flex;
 		justify-content: space-between;
 		padding: 5px 24px 0px 24px;
-    }
 
-.top-bar{
-    margin: -25px -15px;
-    background: #fff;
-    display: flex;
-    justify-content: space-between;
-    padding: 5px 24px 0px 24px;
-    .sermargin{
-      margin-right: 60px;
-    }
-    .rightForm{
-      display: flex;
-      justify-content: space-between;
-      /* background-color: #bfa; */
-      height: 40px;
-      line-height: 40px;
-      >div{
-        padding: 0px 10px;
-        padding-bottom: 10px;
-        border:1px solid rgb(8, 156, 230);
-        margin-right: 10px;
-        /* height: 40px;
+		.sermargin {
+			margin-right: 60px;
+		}
+
+		.rightForm {
+			display: flex;
+			justify-content: space-between;
+			/* background-color: #bfa; */
+			height: 40px;
+			line-height: 40px;
+
+			>div {
+				padding: 0px 10px;
+				padding-bottom: 10px;
+				border: 1px solid rgb(8, 156, 230);
+				margin-right: 10px;
+				/* height: 40px;
         line-height: 40px; */
-      }
-      .rightBtn{
-        background-color: rgb(1, 102, 226);
-      }
-    }
-  }
+			}
 
-.library-table{
-      background-color: #fff;
-      flex: 1;
-      margin: 0px -15px;
-      margin-top: 40px;
-      display: flex;
-      flex-direction: column;
-      .table-header{
-        padding: 20px;
-        display: flex;
-        justify-content: space-between;
-        .el-form-item{
-          margin-bottom: 30px !important;
-        }
-      }
-      .table-box{
-          padding: 0px 20px;
-          margin-top: 0px;
-          flex: 1;
-          background: #fff;
-          /* padding: 20px 20px 10px 20px; */
-          display: flex;
-          flex-direction: column;
-          .el-table {
-            flex: 1;
-          }
-          >div:nth-child(2){
-            display: flex;
-            justify-content: end;
-            margin: 10px 0;
-          }
-      }
-    }
+			.rightBtn {
+				background-color: rgb(1, 102, 226);
+			}
+		}
+	}
+
+	.library-table {
+		background-color: #fff;
+		flex: 1;
+		margin: 0px -15px;
+		margin-top: 40px;
+		display: flex;
+		flex-direction: column;
+
+		.table-header {
+			padding: 20px;
+			display: flex;
+			justify-content: space-between;
+
+			.el-form-item {
+				margin-bottom: 30px !important;
+			}
+		}
+
+		.table-box {
+			padding: 0px 20px;
+			margin-top: 0px;
+			flex: 1;
+			background: #fff;
+			/* padding: 20px 20px 10px 20px; */
+			display: flex;
+			flex-direction: column;
+
+			.el-table {
+				flex: 1;
+			}
+
+			>div:nth-child(2) {
+				display: flex;
+				justify-content: end;
+				margin: 10px 0;
+			}
+		}
+	}
 
 	.rightBtn {
 		background-color: rgb(1, 102, 226);
diff --git a/src/views/inspectionManagement/reportForInspection/index.vue b/src/views/inspectionManagement/reportForInspection/index.vue
index e48728d..a2d7b1e 100644
--- a/src/views/inspectionManagement/reportForInspection/index.vue
+++ b/src/views/inspectionManagement/reportForInspection/index.vue
@@ -123,13 +123,13 @@
                 min-width="8%"
               />
               <el-table-column
-                prop="condition"
+                prop="type"
                 label="鐘舵��"
                 min-width="8%"
               >
               <template slot-scope="scope">
-                <span :style="{ color: scope.row.condition === 1 ? 'green' : 'red' }">
-                  {{ scope.row.condition === 1 ? '宸叉娴�':'鏈娴�' }}
+                <span :style="{ color: scope.row.type === 1 ? 'green' : 'red' }">
+                  {{ scope.row.type === 1 ? '宸叉娴�':'鏈娴�' }}
                 </span>
               </template>
               </el-table-column>
@@ -386,6 +386,7 @@
       // console.log(res)
       this.inspectionTable = res.data.row
       this.data = res.data.row
+      console.log(res.data.row);
       this.total = res.data.total
     },
     async search(){
diff --git a/src/views/laboratory/organizational/index.vue b/src/views/laboratory/organizational/index.vue
index b25fa6a..b44012b 100644
--- a/src/views/laboratory/organizational/index.vue
+++ b/src/views/laboratory/organizational/index.vue
@@ -23,9 +23,15 @@
             type="primary"
             size="small"
             icon="el-icon-circle-plus-outline"
+            @click="dialogVisible = true"
             >鏂板</el-button
           >
-          <el-button size="small" icon="el-icon-delete-solid">鍒犻櫎</el-button>
+          <el-button
+            size="small"
+            icon="el-icon-delete-solid"
+            @click="listDeleteClick"
+            >鍒犻櫎</el-button
+          >
         </div>
       </div>
       <div class="table-main-div">
@@ -39,27 +45,84 @@
           @selection-change="handleSelectionChange"
         >
           <el-table-column type="selection" width="55"> </el-table-column>
-          <el-table-column label="鏃ユ湡" width="120">
-            <template slot-scope="scope">{{ scope.row.date }}</template>
-          </el-table-column>
-          <el-table-column prop="name" label="濮撳悕" width="120">
-          </el-table-column>
-          <el-table-column prop="address" label="鍦板潃" show-overflow-tooltip>
+          <el-table-column
+            label="搴忓彿"
+            type="index"
+            width="70"
+          ></el-table-column>
+          <el-table-column prop="department" label="閮ㄩ棬"> </el-table-column>
+          <el-table-column label="鎿嶄綔">
+            <template scope="scope">
+              <el-button type="text" size="mini" @click="updateClick(scope)"
+                >缂栬緫</el-button
+              >
+              <el-button type="text" size="mini" @click="deleteClick(scope)"
+                >鍒犻櫎</el-button
+              >
+            </template>
           </el-table-column>
         </el-table>
       </div>
     </div>
+    <el-dialog
+      :title="isUpdate ? '鏇存柊閮ㄩ棬鍚嶇О' : '鏂板閮ㄩ棬'"
+      :visible.sync="dialogVisible"
+      width="30%"
+    >
+      <el-form
+        :model="formData"
+        :rules="rules"
+        ref="ruleForm"
+        class="elFormClass"
+      >
+        <el-form-item label="涓婄骇閮ㄩ棬锛�" prop="name" style="padding-left: 10px">
+          <el-input
+            v-model="treeNodeData.department"
+            :disabled="true"
+            style="width: 81.3%"
+          >
+          </el-input>
+        </el-form-item>
+        <el-form-item
+          label="閮ㄩ棬鍚嶇О锛�"
+          prop="department"
+          style="padding-top: 20px"
+        >
+          <el-input
+            placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�"
+            v-model="formData.department"
+            clearable
+            style="width: 80%"
+          >
+          </el-input>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="saveForm">{{
+          isUpdate ? "鏇� 鏂�" : "鏂� 澧�"
+        }}</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 
 <script>
-import { getOrganizationalApi } from "@/api/laboratory/organizational";
+import {
+  getOrganizationalApi,
+  getTableInitializationApi,
+  organizationalAddApi,
+  organizationalUpdateApi,
+  organizationalDeleteApi,
+} from "@/api/laboratory/organizational";
 export default {
   name: "Organizational",
   data() {
     return {
       filterText: "",
+      dialogVisible: false,
       msg: "",
+      isUpdate: false,
       data: [],
       // tree鏍戦粯璁ゅ�奸厤缃�
       defaultProps: {
@@ -67,28 +130,24 @@
         label: "department",
         id: "id",
       },
-      tableData: [
-        {
-          date: "2016-05-02",
-          name: "鐜嬪皬铏�",
-          address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�",
-        },
-        {
-          date: "2016-05-04",
-          name: "鐜嬪皬铏�",
-          address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1517 寮�",
-        },
-        {
-          date: "2016-05-01",
-          name: "鐜嬪皬铏�",
-          address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1519 寮�",
-        },
-        {
-          date: "2016-05-03",
-          name: "鐜嬪皬铏�",
-          address: "涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�",
-        },
-      ],
+      formData: {
+        fatherId: "",
+        department: "",
+      },
+      // 鏂板鎸夐挳閲岄潰绂佹杈撳叆妗嗘暟鎹�
+      disabledInputShow: "",
+      // 淇濆瓨鐐瑰嚮鑺傜偣鏁版嵁
+      treeNodeData: {},
+      // 澶氶�夊垹闄�
+      listDelete: [],
+      // 琛ㄦ牸鏁版嵁
+      tableData: [],
+      rules: {
+        department: [
+          { required: true, message: "璇疯緭鍏ユ椿鍔ㄥ悕绉�", trigger: "blur" },
+          { min: 1, max: 25, message: "闀垮害鍦� 1 鍒� 5 涓瓧绗�", trigger: "blur" },
+        ],
+      },
     };
   },
   methods: {
@@ -101,6 +160,13 @@
     treeInitialization() {
       getOrganizationalApi().then((res) => {
         this.data = res.data;
+        // 鍒濆鍖栭粯璁sg鎻愮ず璺緞涓虹涓�鑺傜偣鍚嶇О
+        this.msg = res.data[0].department;
+        // 鍒濆鍖栬皟鐢ㄨ〃鏍兼帴鍙�
+        this.tableInitialization(res.data[0].id);
+        // 鍒濆鍖栦繚瀛樼涓�鑺傜偣鏁版嵁
+        this.treeNodeData.department = res.data[0].department;
+        this.treeNodeData.id = res.data[0].id;
       });
     },
     // 鑾峰彇鏍戣矾寰�
@@ -115,10 +181,14 @@
     // 鐐瑰嚮鏍戣妭鐐�
     handleNodeClick(data, node, element) {
       this.getParentData(node.parent, node.data.department);
-      console.log(`output->this.msg`, this.msg);
-      console.log(`output->data`, data);
-      console.log(`output->node`, node);
-      console.log(`output->element`, element);
+      // 鐢变簬鐐瑰嚮绗竴鑺傜偣鏃犳硶瑙﹀彂getParentData閲岄潰鐨勫垽鏂紝鍙兘棰濆鍒ゆ柇
+      if (node.data.id === 0) {
+        this.msg = node.data.department;
+      }
+      // 鐐瑰嚮鑺傜偣鏁版嵁瀛樺偍涓嬫潵
+      this.treeNodeData = node.data;
+      // 鐐瑰嚮瑙﹀彂璇ュ嚱鏁帮紝鏇存柊琛ㄦ牸鏁版嵁
+      this.tableInitialization(node.data.id);
     },
     // 鏀瑰彉澶氶�夋鐘舵��
     toggleSelection(rows) {
@@ -132,7 +202,71 @@
     },
     // 鐐瑰嚮澶氶�夋浠ュ悗鐨勬搷浣�
     handleSelectionChange(val) {
-      this.multipleSelection = val;
+      this.listDelete = []
+      val.forEach((v) => {
+        this.listDelete.push(v.id);
+        });
+    },
+    // 鍒濆鍖栬〃鏍兼暟鎹�
+    tableInitialization(departmentId) {
+      getTableInitializationApi(departmentId).then((res) => {
+        this.tableData = res.data;
+      });
+    },
+    // 鏇存柊涓庢柊澧炶〃鍗�
+    saveForm() {
+      this.formData.fatherId = this.treeNodeData.id;
+      this.$refs.ruleForm.validate((valid) => {
+        if (valid) {
+          if (!this.isUpdate) {
+            organizationalAddApi(this.formData).then((res) => {
+              this.$message({
+                message: res.message,
+                type: "success",
+              });
+              this.treeInitialization();
+              this.dialogVisible = false;
+            });
+          } else {
+            organizationalUpdateApi(this.formData).then((res) => {
+              this.$message({
+                message: res.message,
+                type: "success",
+              });
+              this.treeInitialization();
+              this.dialogVisible = false;
+            });
+          }
+        }
+      });
+    },
+    // 鐐瑰嚮缂栬緫瑙﹀彂
+    updateClick(scope) {
+      this.dialogVisible = true;
+      this.isUpdate = true;
+      this.formData.id = scope.row.id;
+      this.formData.fatherId = this.treeNodeData.id;
+      this.formData.department = scope.row.department;
+    },
+    // 琛ㄦ牸涓殑鍒犻櫎鎸夐挳
+    deleteClick(scope) {
+      organizationalDeleteApi(scope.row.id).then((res) => {
+        this.$message({
+          message: res.message,
+          type: "success",
+        });
+        this.treeInitialization();
+      });
+    },
+    // 澶撮儴澶氶�夊垹闄�
+    listDeleteClick() {
+      organizationalDeleteApi(this.listDelete).then((res) => {
+        this.$message({
+          message: res.message,
+          type: "success",
+        });
+        this.treeInitialization();
+      });
     },
   },
   mounted() {
@@ -141,6 +275,15 @@
   watch: {
     filterText(val) {
       this.$refs.tree.filter(val);
+    },
+    dialogVisible: {
+      handler(newVal, oldVal) {
+        if (newVal == false) {
+          this.isUpdate = false;
+          this.formData = {};
+          this.$refs.ruleForm.resetFields();
+        }
+      },
     },
   },
 };
@@ -187,4 +330,7 @@
   font-weight: 500;
   color: #999999;
 }
+.elFormClass .el-form-item__error {
+  padding-left: 90px;
+}
 </style>
diff --git a/src/views/laboratory/personnel/index.vue b/src/views/laboratory/personnel/index.vue
index 26998b3..4259f2f 100644
--- a/src/views/laboratory/personnel/index.vue
+++ b/src/views/laboratory/personnel/index.vue
@@ -1,5 +1,5 @@
 <template>
-  <div class="personnel-main ">
+  <div class="personnel-main">
     <div class="page-header-search">
       <div class="search-bar">
         <el-form ref="form" :inline="true">
@@ -10,74 +10,197 @@
           </el-form-item>
           <el-form-item>
             <el-button type="primary" @click="getData()">鏌ヨ</el-button>
-            <el-button type="primary" plain @click="resetData()">閲嶇疆</el-button>
+            <el-button type="primary" plain @click="resetData()"
+              >閲嶇疆</el-button
+            >
             <!-- <el-button type="text">楂樼骇鎼滅储<i class="el-icon-arrow-down el-icon--right" /></el-button> -->
           </el-form-item>
         </el-form>
       </div>
       <div class="serve-btn">
-        <el-button type="primary" icon="el-icon-plus" @click="dialogFormVisible = true">鏂板浜哄憳</el-button>
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          @click="dialogFormVisible = true"
+          >鏂板浜哄憳</el-button
+        >
 
-        <el-dialog title="鏂板浜哄憳" :visible.sync="dialogFormVisible" width="30%">
-          <el-form :model="form" :rules="rules">
-            <el-form-item label="璐﹀彿" :label-width="formLabelWidth" prop="account">
-              <el-input v-model="form.account" autocomplete="off" />
+        <el-dialog
+          :title="isUpdate == true ? '鏇存柊浜哄憳淇℃伅' : '鏂板浜哄憳'"
+          :visible.sync="dialogFormVisible"
+          width="30%"
+        >
+          <el-form :model="form" ref="form" :rules="rules">
+            <el-form-item
+              label="璐﹀彿"
+              :label-width="formLabelWidth"
+              prop="account"
+            >
+              <el-input v-model="form.account" />
             </el-form-item>
             <el-form-item label="骞撮緞" :label-width="formLabelWidth">
-              <el-input v-model="form.age" autocomplete="off" />
+              <el-input v-model="form.age" />
             </el-form-item>
-            <el-form-item label="閭" :label-width="formLabelWidth" prop="email">
-              <el-input v-model="form.email" autocomplete="off" />
+            <el-form-item
+              label="閭"
+              :label-width="formLabelWidth"
+              prop="email"
+            >
+              <el-input v-model="form.email" />
             </el-form-item>
-            <el-form-item label="鍚嶅瓧" :label-width="formLabelWidth" prop="name">
-              <el-input v-model="form.name" autocomplete="off" />
+            <el-form-item
+              label="鍚嶅瓧"
+              :label-width="formLabelWidth"
+              prop="name"
+            >
+              <el-input v-model="form.name" />
             </el-form-item>
-            <el-form-item label="鐢佃瘽" :label-width="formLabelWidth" prop="phone">
-              <el-input v-model="form.phone" autocomplete="off" />
+            <el-form-item
+              label="鐢佃瘽"
+              :label-width="formLabelWidth"
+              prop="phone"
+            >
+              <el-input v-model="form.phone" />
             </el-form-item>
 
-            <el-form-item label="鏉冮檺" :label-width="formLabelWidth" prop="role_id">
-              <el-input v-model="form.role_id" autocomplete="off" />
+            <el-form-item
+              label="閮ㄩ棬"
+              :label-width="formLabelWidth"
+              required
+              prop="organizationId"
+            >
+              <el-cascader
+                style="width: 100%"
+                :options="options"
+                :props="myProp"
+                v-model="form.organizationId"
+                clearable
+              ></el-cascader>
+            </el-form-item>
+
+            <el-form-item
+              label="鏉冮檺"
+              :label-width="formLabelWidth"
+              prop="roleId"
+            >
+              <el-select
+                v-model="form.roleId"
+                clearable
+                style="100%"
+                placeholder="璇烽�夋嫨鏉冮檺"
+              >
+                <el-option
+                  v-for="item in roleList"
+                  :key="item.id"
+                  :label="item.name"
+                  :value="item.id"
+                >
+                </el-option>
+              </el-select>
             </el-form-item>
           </el-form>
           <div slot="footer" class="dialog-footer">
             <el-button @click="dialogFormVisible = false">鍙� 娑�</el-button>
-            <el-button type="primary" @click="submitForm()">纭� 瀹�</el-button>
+            <el-button type="primary" @click="submitForm()">{{
+              isUpdate == true ? "鏇� 鏂�" : "纭� 瀹�"
+            }}</el-button>
           </div>
         </el-dialog>
       </div>
     </div>
     <div class="content-main">
       <div class="personner-table">
-        <el-table ref="personnerlTable" :max-height="700" :cell-style="{ textAlign: 'center' }"
-          :header-cell-style="{ border: '0px', background: '#f5f7fa', color: '#606266', boxShadow: 'inset 0 1px 0 #ebeef5', textAlign: 'center' }"
-          :data="personnerlTable" style="width: 100%">
+        <el-table
+          ref="personnerlTable"
+          height="calc(100vh - 240px)"
+          border
+          :cell-style="{ textAlign: 'center' }"
+          :header-cell-style="{
+            border: '0px',
+            background: '#f5f7fa',
+            color: '#606266',
+            boxShadow: 'inset 0 1px 0 #ebeef5',
+            textAlign: 'center',
+          }"
+          @filter-change="fnFilterChangeInit"
+          :data="personnerlTable"
+          style="width: 100%"
+        >
           <el-table-column prop="username" label="瑙掕壊鍚嶇О" min-width="120" />
           <el-table-column prop="roleName" label="瑙掕壊鏉冮檺" min-width="120" />
-          <el-table-column prop="age" label="骞撮緞" min-width="150" />
+          <el-table-column prop="age" label="骞撮緞" min-width="150">
+            <template scope="scope">
+              {{
+                scope.row.age === "" ||
+                scope.row.age === null ||
+                scope.row.age == undefined
+                  ? "---"
+                  : scope.row.age
+              }}
+            </template>
+          </el-table-column>
+          <el-table-column prop="department" label="閮ㄩ棬" min-width="150" />
           <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="180" />
-          <el-table-column prop="phone" label="鐢佃瘽" min-width="200" />
-          <el-table-column prop="email" label="閭" min-width="200" />
-          <el-table-column prop="jobState" label="鍦ㄨ亴鐘舵��" min-width="120"
-            :filters="[{ text: 0, value: 0 }, { text: 1, value: 1 }]" :filter-method="filterTag"
-            filter-placement="bottom-end">
+          <el-table-column prop="phone" label="鐢佃瘽" min-width="200">
+            <template scope="scope">
+              {{
+                scope.row.phone === "" || scope.row.phone === undefined
+                  ? "---"
+                  : scope.row.phone
+              }}
+            </template>
+          </el-table-column>
+          <el-table-column prop="email" label="閭" min-width="200">
+            <template scope="scope">
+              {{
+                scope.row.email === "" || scope.row.email === undefined
+                  ? "---"
+                  : scope.row.email
+              }}
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="jobState"
+            label="鍦ㄨ亴鐘舵��"
+            min-width="120"
+            :filters="[
+              { text: '鍦ㄨ亴', value: 1 },
+              { text: '绂诲矖', value: 0 },
+            ]"
+            column-key="status"
+            :filter-method="filterTag"
+            filter-placement="bottom-end"
+          >
             <template slot-scope="scope">
-              <el-tag :type="scope.row.jobState === 0 ? 'danger' : 'success'" disable-transitions>{{
-                scope.row.jobState === 0 ? '绂诲矖' : '鍦ㄨ亴' }}</el-tag>
+              <el-tag
+                :type="scope.row.jobState === 0 ? 'danger' : 'success'"
+                disable-transitions
+                >{{ scope.row.jobState === 0 ? "绂诲矖" : "鍦ㄨ亴" }}</el-tag
+              >
             </template>
           </el-table-column>
           <el-table-column label="鎿嶄綔" min-width="120">
             <template slot-scope="scope">
-              <el-button type="text" size="small" @click="handleClick(scope.row)">缂栬緫</el-button>
-              <!-- <el-button type="text" size="small">缂栬緫</el-button> -->
+              <el-button
+                type="text"
+                size="small"
+                @click="handleClick(scope.row)"
+                >缂栬緫</el-button
+              >
             </template>
           </el-table-column>
         </el-table>
         <div>
           <!-- 鍒嗛〉鍣� -->
-          <el-pagination :current-page="currentPage" :page-sizes="[100, 200, 300, 400]" :page-size="pageSize"
-            layout="total, sizes, prev, pager, next, jumper" :total="this.personnerlTable.length"
-            @size-change="handleSizeChange" @current-change="handleCurrentChange" />
+          <el-pagination
+            :current-page="currentPage"
+            :page-sizes="[10, 15, 20, 25]"
+            :page-size="pageSize"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="total"
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+          />
         </div>
       </div>
     </div>
@@ -85,15 +208,15 @@
 </template>
 
 <script>
-import { get, post } from '@/api/util/requestUtil';
-import urlInfo from '../../../api/urlEnum/personnel.js'
+import { get, post, put } from "@/api/util/requestUtil";
+import urlInfo from "../../../api/urlEnum/personnel.js";
+import { getOrganizationalApi } from "@/api/laboratory/organizational";
 export default {
   data() {
     return {
-      keyword: '',
-      personnerlTable: [
-
-      ],
+      keyword: "",
+      roleList: "",
+      personnerlTable: [],
       filteredpersonnerlTable: [],
       currentindex: 1,
       currentPage: 1, // 褰撳墠椤电爜
@@ -102,108 +225,224 @@
       personData: [], // 鐢ㄦ潵瀛樻斁鎺ュ彛浼犺繃鏉ョ殑浜哄憳鍒楄〃鏁版嵁
       dialogFormVisible: false,
       form: {
-        account: '',
-        age: '',
-        email: '',
-        name: '',
-        phone: '',
-        role_id: ''
+        account: "",
+        age: "",
+        email: "",
+        name: "",
+        phone: "",
+        organizationId: "",
+        roleId: "",
       },
-      formLabelWidth: '100px',
+      myProp: {
+        value: "id",
+        label: "department",
+        checkStrictly: true, //鍏佽閫夋嫨浠绘剰涓�鑺�
+      },
+      formLabelWidth: "100px",
       rules: {
         account: [
           {
-            required: true, message: '璇疯緭鍏ヨ处鍙�', trigger: 'blur'
-          }
+            required: true,
+            message: "璇疯緭鍏ヨ处鍙�",
+            trigger: "blur",
+          },
         ],
-        name: [{
-          required: true, message: '璇疯緭鍏ュ悕瀛�', trigger: 'blur'
-        }],
+        name: [
+          {
+            required: true,
+            message: "璇疯緭鍏ュ悕瀛�",
+            trigger: "blur",
+          },
+        ],
         phone: [
           // { required: true, message: '璇疯緭鍏�11浣嶇數璇濆彿鐮�', trigger: 'blur' },
-          { pattern: /^1[34578]\d{9}$/, message: '闈炴硶鎵嬫満鍙风爜', trigger: 'blur' }
+          {
+            pattern: /^1[3456789]\d{9}$/,
+            message: "闈炴硶鎵嬫満鍙风爜",
+            trigger: ["blur", "change"],
+          },
         ],
         email: [
           // { required: true, message: '璇疯緭鍏ラ偖绠卞湴鍧�', trigger: 'blur' },
-          { type: 'email', message: '闈炴硶閭鍦板潃', trigger: ['blur', 'change'] }
+          {
+            type: "email",
+            message: "闈炴硶閭鍦板潃",
+            trigger: ["blur", "change"],
+          },
         ],
-        role_id: [
-          { required: true, message: '璇疯緭鍏ユ潈闄�(0鎴�1)', trigger: 'blur' }
-
-        ]
-      }
-    }
+        organizationId: [
+          {
+            required: true,
+            type: "array",
+            message: "璇烽�夋嫨閮ㄩ棬",
+            trigger: "change",
+          },
+        ],
+        roleId: [
+          { required: true, message: "璇疯緭鍏ユ潈闄�(0鎴�1)", trigger: "blur" },
+        ],
+      },
+      options: [],
+      status: "",
+      isUpdate: false,
+    };
   },
   mounted() {
-    this.getData()
+    this.getData();
+    this.getTreeData();
   },
   methods: {
     // 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣
     handleSizeChange(val) {
-      console.log(`姣忛〉 ${val} 鏉)
-      this.currentPage = 1
-      this.pageSize = val
+      console.log(`姣忛〉 ${val} 鏉);
+      this.currentPage = 1;
+      this.pageSize = val;
     },
-    filterTag() {
-      console.log(11);
+    filterTag(value) {
+      this.status = "";
+      this.status = value;
+      return true;
     },
     // 褰撳墠椤垫敼鍙樻椂瑙﹀彂 璺宠浆鍏朵粬椤�
     handleCurrentChange(val) {
-      console.log(`褰撳墠椤�: ${val}`)
-      this.currentPage = val
+      console.log(`褰撳墠椤�: ${val}`);
+      this.currentPage = val;
     },
     async getData() {
       let data = {
         pageNo: 0,
-        pageSize: 20,
-        name: this.keyword
-      }
+        pageSize: 10,
+        name: this.keyword,
+        status: this.status,
+      };
       let res = await get(urlInfo.url.list_new_personnel, data);
-      this.personnerlTable=res.data.row
-      this.total=res.data.total
+      this.personnerlTable = res.data.row;
+      this.total = res.data.total;
     },
     searchData() {
       this.filteredpersonnerlTable = this.personnerlTable.filter((item) => {
-        return item.username === this.keyword
-      }
-      )
-      this.personnerlTable = this.filteredpersonnerlTable
+        return item.username === this.keyword;
+      });
+      this.personnerlTable = this.filteredpersonnerlTable;
     },
     resetData() {
-      // console.log("111111")
-      this.personnerlTable = this.personData
-      this.keyword = ''
+      this.personnerlTable = this.personData;
+      this.keyword = "";
+      this.status = "";
+      this.getData();
     },
     // 鎻愪氦鏂板浜哄憳琛ㄥ崟
     submitForm() {
-      // Handle form submission here
-      // console.log(this.form);
-      // POST璇锋眰
       this.$refs.form.validate((valid) => {
         if (valid) {
-          this.dialogFormVisible = false
-          axios.post('/user/add_new_personnel', this.form)
-            .then(response => {
-              console.log(response)
-              // this.dialogVisible = false;
-            })
-            .catch(error => {
-              console.error(error)
-            })
+          let departmentId = this.form.organizationId;
+          this.form.organizationId = departmentId[departmentId.length - 1];
+          if (!this.isUpdate) {
+            post("/user/add_new_personnel", this.form).then((response) => {
+              this.$message({
+                message: response.message,
+                type: "success",
+              });
+              this.dialogFormVisible = false;
+              this.getData();
+            });
+          } else {
+            put("/user/update_new_personnel", this.form).then((res) => {
+              this.$message({
+                message: res.message,
+                type: "success",
+              });
+              this.dialogFormVisible = false;
+              this.getData();
+            });
+          }
         } else {
-          console.log('error submit!!')
-          return false
+          console.log("error submit!!");
+          return false;
         }
-      })
+      });
     },
-  }
+    // 娓呯┖Cascader绌虹櫧
+    clearCascaderBlank(list) {
+      list.forEach((i) => {
+        if (i.children.length === 0) {
+          i.children = undefined;
+        } else {
+          this.clearCascaderBlank(i.children);
+        }
+      });
+    },
+    fnFilterChangeInit() {
+      this.personData = [];
+      this.getData();
+    },
+    /*
+     * @param  list 鏁版嵁鍒楄〃
+     * @param  id 鍚庣杩斿洖鐨刬d
+     **/
+    getParentsById(list, id) {
+      for (let i in list) {
+        if (list[i].id == id) {
+          return [list[i].id];
+        }
+        if (list[i].children) {
+          let node = this.getParentsById(list[i].children, id);
+          if (node !== undefined) {
+            //鏌ヨ鍒版妸鐖惰妭鎶婄埗鑺傜偣鍔犲埌鏁扮粍鍓嶉潰
+            node.unshift(list[i].id);
+            return node;
+          }
+        }
+      }
+    },
 
-}
+    handleClick(row) {
+      this.isUpdate = true;
+      this.dialogFormVisible = true;
+      this.form.name = row.username;
+      this.form.roleName = row.roleName;
+      this.form.phone = row.phone;
+      this.form.id = row.id;
+      this.form.email = row.email;
+      this.form.organizationId = this.getParentsById(
+        this.options,
+        row.departmentId
+      );
+      this.form.roleId = row.roleName;
+      this.form.age = row.age;
+      this.form.account = row.account;
+    },
+    getTreeData() {
+      getOrganizationalApi().then((res) => {
+        this.options = res.data[0].children;
+        this.clearCascaderBlank(this.options);
+      });
+    },
+    getRoleList() {
+      get("/user/list").then((res) => {
+        console.log(`output->res`, res);
+        this.roleList = res.data;
+      });
+    },
+  },
+  watch: {
+    dialogFormVisible: {
+      handler(newVal, oldVal) {
+        if (newVal == false) {
+          this.isUpdate = false;
+          this.form = {};
+          this.$refs.form.resetFields();
+        } else {
+          this.getRoleList();
+        }
+      },
+    },
+  },
+};
 </script>
 
 <style lang="scss" scoped>
 .personnel-main {
-
   // width: 100%;
   // height: 100%;
   .page-header-search {
@@ -229,7 +468,7 @@
     background: #fff;
     padding: 20px 20px 10px 20px;
 
-    >div:nth-child(2) {
+    > div:nth-child(2) {
       display: flex;
       justify-content: end;
       margin: 10px 0;
diff --git a/src/views/standardLibrary/index.vue b/src/views/standardLibrary/index.vue
index 6070828..5c69021 100644
--- a/src/views/standardLibrary/index.vue
+++ b/src/views/standardLibrary/index.vue
@@ -25,6 +25,16 @@
         <div class="table-header">
           <div class="serve-btn">
             <span class="tipMsg">{{ msg !== "" ? msg : "" }}</span>
+            <el-select v-model="versionValue" @change="changeSelect" placeholder="璇烽�夋嫨鐗堟湰鍙�">
+              <el-option
+                v-for="item in options"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+                >
+              </el-option>
+            </el-select>
+            <el-button type="primary" @click="addVersionFun">鏂板鐗堟湰鍙�</el-button>
             <el-button
               type="primary"
               icon="el-icon-plus"
@@ -44,13 +54,14 @@
           <el-table
             :data="tableData"
             style="width: 100%; margin-bottom: 20px"
-            row-key="name"
+            row-key="id"
             border
             height="calc(100vh - 250px)"
             default-expand-all
             ref="multipleTable"
             @select="selectTr"
             @select-all="selectAll"
+            @selection-change="handleSelectionChange"
             :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
           >
             <el-table-column type="selection" label="搴忓彿"> </el-table-column>
@@ -160,12 +171,16 @@
   addSpecifications,
   deleteListApi,
   blurUpdateApi,
+  getVersion,
+  addVersion
 } from "@/api/standardLibrary";
 
 import { selectproductModelApi } from "@/api/basicData/index";
 export default {
   data() {
     return {
+      options:[],
+      versionValue: '',
       deleteList: [],
       msg: "",
       isAllSelect: false,
@@ -198,7 +213,48 @@
   created() {
     this.getStandardTree();
   },
+  mounted(){
+    
+  },
   methods: {
+    async initSelect(){
+        this.options = [];
+        this.versionValue = "";
+        const response = await getVersion({"specificationsId":this.selectData.id});
+        if(response.code===200 && response.data.length>0){
+          this.getTableByClick(this.selectData,response.data[0])
+          for(let i=0;i<response.data.length;i++){
+            this.options.push({
+              value: response.data[i],
+              label: "V" + response.data[i]
+            })
+            this.versionValue = response.data[0];
+          }
+        }
+    },
+    changeSelect(){
+      this.tableData = [];
+      this.getTableByClick(this.selectData,this.versionValue);
+    },
+    async insertVersion(){
+      const resp = await addVersion({"specificationsId":this.selectData.id});
+      if(resp.code===200){
+        this.initSelect();
+        this.$message({
+            type: 'success',
+            message: resp.message
+          });
+      }
+    },
+     addVersionFun() {
+        this.$confirm('纭娣诲姞鏂扮殑鐗堟湰鍙峰悧?', '鎻愮ず', {
+          confirmButtonText: '纭畾',
+          cancelButtonText: '鍙栨秷',
+          type: 'warning'
+        }).then(() => {
+          this.insertVersion();
+        }).catch(() => {});
+    },
     filterNode(value, data) {
       if (!value) return true;
       return data.name.indexOf(value) !== -1;
@@ -252,7 +308,8 @@
         this.getParentData(node.parent, node.data.name);
         // 瀛樹笅閫変腑鑺傜偣
         this.selectData = data;
-        this.getTableByClick(data);
+        this.getTableByClick(data,this.versionValue);
+        this.initSelect();
       }
       if (!("children" in data)) {
         return;
@@ -267,9 +324,10 @@
         this.getParentData(node.parent, this.msg);
       }
     },
-    async getTableByClick(data) {
+    async getTableByClick(data,versionVal) {
       await getProductList({
         specificationsId: data.id,
+        version: versionVal
       }).then((res) => {
         res.data.forEach((i) => {
           if (i.name === undefined) {
@@ -345,13 +403,12 @@
         this.$message.error("娣诲姞澶辫触");
       }
 
-      console.log(res);
       this.$message.success("娣诲姞鎴愬姛");
       this.addTreeForm = {
         addTypeArr: [],
       };
       this.getStandardTree();
-      this.getTableByClick(this.selectData);
+      this.getTableByClick(this.selectData,this.versionValue);
     },
     changeCascader(data) {
       this.addTreeForm.addTypeArr = data;
@@ -400,20 +457,6 @@
       this.isAllSelect = !this.isAllSelect;
       let data = this.tableData;
       this.toggleSelect(data, this.isAllSelect, "all");
-      // 鑷畾涔�
-      if (this.isAllSelect) {
-        val.forEach((i) => {
-          if (i.id !== undefined) {
-            this.deleteList.push(i.id);
-          } else {
-            i.children.forEach((c) => {
-              this.deleteList.push(c.id);
-            });
-          }
-        });
-      } else {
-        this.deleteList.splice(0, this.deleteList.length);
-      }
     },
     //閫夋嫨鏌愯
     selectTr(selection, row) {
@@ -422,33 +465,6 @@
         this.isAllSelect = row.isChecked;
         this.toggleSelect(row, row.isChecked, "tr");
       });
-
-      if (row.isChecked === true) {
-        if (row.children !== undefined) {
-          row.children.forEach((i) => {
-            this.deleteList.push(i.id);
-          });
-        } else {
-          this.deleteList.push(row.id);
-        }
-      } else if (row.isChecked === false) {
-        if (row.children !== undefined) {
-          row.children.forEach((i) => {
-            this.deleteList.findIndex((c, index) => {
-              if (c === i.id) {
-                this.deleteList.splice(index, 1);
-                return;
-              }
-            });
-          });
-        }
-        this.deleteList.findIndex((c, index) => {
-          if (c === row.id) {
-            this.deleteList.splice(index, 1);
-            return;
-          }
-        });
-      }
     },
     //閫掑綊瀛愮骇
     toggleSelect(data, flag, type) {
@@ -482,6 +498,15 @@
         }
       });
     },
+    handleSelectionChange(val) {
+      this.deleteList = []
+      val.forEach((v) => {
+        if(v.id !== undefined){
+          this.deleteList.push(v.id)
+        }
+      })
+      console.log(`output->this.deleteList`,this.deleteList)
+    },
     // 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆  缁撴潫
     deleteListClick() {
       deleteListApi(this.deleteList).then((res) => {
@@ -489,7 +514,7 @@
           message: res.message,
           type: "success",
         });
-        this.getTableByClick(this.selectData);
+        this.getTableByClick(this.selectData,this.versionValue);
       });
     },
     async requiredOnfocus(scope) {
@@ -504,7 +529,7 @@
           message: res.message,
           type: "success",
         });
-        this.getTableByClick(this.selectData);
+        this.getTableByClick(this.selectData,this.versionValue);
       });
     },
   },
@@ -640,6 +665,9 @@
   width: 100%;
   padding-bottom: 6px;
   text-align: right;
+  .el-select{
+    margin-right:10px;
+  }
 }
 .tipMsg {
   float: left;
diff --git a/src/views/template_testReport/index.vue b/src/views/template_testReport/index.vue
new file mode 100644
index 0000000..575e579
--- /dev/null
+++ b/src/views/template_testReport/index.vue
@@ -0,0 +1,651 @@
+<template>
+  <div class="content-wrapper">
+    <div class="content-main">
+      <div class="cover">
+        <div class="cover-top">
+          <div>
+            <div style="height: 30px; line-height: 30px;">鎶ュ憡缂栧彿:</div>
+            <div style="height: 30px; line-height: 30px;">Reference No:</div>
+          </div>
+        </div>
+        <div class="title">
+          <h1 style="text-align-last:justify ;">妫�楠屾姤鍛�</h1>
+          <h1>Test   Report</h1>
+        </div>
+        <div class="cover-body">
+          <div class="name">
+            <div style="width:140px; text-align-last: justify;">
+            <div>璇曟牱鍚嶇О</div>
+            <span style="font-size: 14px;">Name of Product</span>
+            </div>
+            <div class="line"> 娴嬭瘯鍚嶇О</div>
+          </div>
+          <div class="name">
+            <div style="width:140px; text-align-last: justify;">
+            <div style="text-align-last: justify;">鍨嬪彿</div>
+            <span style="font-size: 14px;">Type and Size</span>
+            </div>
+            <div class="line"> 娴嬭瘯鍚嶇О</div>
+          </div>
+          <div class="name">
+            <div style="width:140px; text-align-last: justify;">
+            <div>濮旀墭鍗曚綅</div>
+            <span style="font-size: 14px;display: block;margin: 10px 50px 0px;">Client</span>
+          </div>
+            <div class="line"> 娴嬭瘯鍚嶇О</div>
+          </div>
+          <div class="name">
+            <div style="width:140px; text-align-last: justify;">
+            <div>妫�楠岀被鍒�</div>
+            <span style="font-size: 14px;">Kind of Test</span></div>
+            <div class="line"> 娴嬭瘯鍚嶇О</div>
+          </div>
+        </div>
+        <div class="cover-footer">
+          <span>姹熻嫃涓ぉ绉戞妧鑲′唤鏈夐檺鍏徃妫�娴嬩腑蹇�</span><br>
+          <span style="font-size: 14px;">TEST CENTER OF JIANGSU ZHONGTIAN TECHNOLOGY CO.,LTD</span>
+        </div>
+      </div>
+      <div class="pageOne">
+        <div class="statement">
+          <div><h2>澹版槑</h2></div>
+          <div style="text-align-last: center;"><h2 style="font-size: 14px;">Statement</h2></div>
+        </div>
+        <div class="statement-body">
+          <div>
+            <span>1.	鏈楠屾姤鍛婏紙鍖呮嫭澶嶅嵃浠讹級鏈姞妫�娴嬩笓鐢ㄧ珷涓�寰嬫棤鏁堛��</span><br>
+            <span>This test report (including any duplicates) shall become effective only with pecial chapter for testing on.</span>
+          </div>
+          <div>
+            <span>2.	鏈楠屾姤鍛婃棤缂栧啓銆佸鏍搞�佹壒鍑嗕汉绛剧珷鏃犳晥銆�</span><br>
+            <span>This test report shall become effective only with the signatures of compiler checker and approver.</span>
+          </div>
+          <div>
+            <span>3.	鏈楠屾姤鍛婃秱鏀规棤鏁堛��</span><br>
+            <span>This test report will be invalid if altered.</span>
+          </div>
+          <div>
+            <span>4.	鏈楠屾姤鍛婁笉寰楅儴鍒嗗鍗般��</span><br>
+            <span>This test report mustn鈥檛 copy partly.</span>
+          </div>
+          <div>
+            <span>5.	閫佹牱濮旀墭妫�楠岋紝浠呭鏉ユ牱璐熻矗銆�</span><br>
+            <span>For the sample submitted by clients, the test result is valid only for these samples.</span>
+          </div>
+          <div>
+            <span>6.	鏍峰搧鍙婂鎵樺崟浣嶄负濮旀墭鏂硅嚜鍛藉悕銆�</span><br>
+            <span>Samples and consignor name for the principal.</span>
+          </div>
+          <div>
+            <span>7.	鏈楠屾姤鍛婁腑鑻辨枃鎻忚堪鏈夊啿绐佹椂锛屼互涓枃瑙i噴涓哄噯銆�</span><br>
+            <span>If the Chinese and English version of the test report have any conflict, the Chinese version should be the standard for arbitrament.</span>
+          </div>
+          <div>
+            <span>8.	濮旀墭鏂瑰鏈楠屾姤鍛婅嫢鏈夊紓璁紝搴斾簬鏍峰搧淇濆瓨鏈熷唴鍚戞湰涓績鎻愬嚭锛岃仈绯荤數璇濓細0513-84885657</span><br>
+            <span>Clients who have any different ideas about this test report, may contract with Test Central within the sample reservation time. Tel: 0513-84885657</span>
+          </div>
+          <div>
+            <span>9.	鏈腑蹇冩牱鍝佽嚜鎶ュ憡鍙戦�佹棩璧凤紝涓�鑸繚瀛樹竴涓湀锛屼互澶囧楠屻��</span><br>
+            <span>The sample shall be reserved for one month beginning from the data when this test report is submitted for examine or review.</span>
+          </div>
+        </div>
+        <div class="statement-footer">
+          <div class="depart">
+            <span>姹熻嫃涓ぉ绉戞妧鑲′唤鏈夐檺鍏徃妫�娴嬩腑蹇�</span><br>
+            <span>Test Center of Jiangsu Zhongtian Technology Co., LTD</span>
+          </div>
+          <div class="address">
+            <span>鍦�    鍧�锛氭睙鑻忕渷鍗楅�氬競缁忔祹鎶�鏈紑鍙戝尯鏂板紑鍗楄矾19鍙�</span><br>
+            <span>Address: No.19 Xinkai South Road, Nantong Economic and Technological Development Zone, Jiangsu Province</span>
+          </div>
+          <div class="zipcode">閭斂缂栫爜Zip Code锛�226010</div>
+          <div class="tel">鐢�    璇漈el锛�0513-89059043</div>
+          <div class="email">閭�    绠盓-mail:锛歾tttc@chinaztt.com </div>
+        </div>
+      </div>
+      <div class="pageTwo">
+        <div class="header" style="line-height: 10px;">
+          <div style="width: 350px;margin: 0 auto; text-align-last: justify;">
+            <h2 style="font-size: 18px;">姹熻嫃涓ぉ绉戞妧鑲′唤鏈夐檺鍏徃妫�娴嬩腑蹇�</h2>
+          </div>
+          <div style="width: 500px; margin: 0 auto;text-align-last: justify;">
+            <h2 style="font-size: 14px;">TEST CENTER OF JIANGSU ZHONGTIAN TECHNOLOGY CO.,LTD</h2>
+          </div>
+          <div style="width: 120px;margin: 0 auto;text-align-last: justify;">
+            <h2 style="font-size: 18px;">妫�娴嬫姤鍛�</h2>
+          </div>
+          <div style="width: 100px; margin: 0 auto;text-align-last: justify;">
+            <h2 style="font-size: 14px;">Test Report</h2>
+          </div>
+        </div>
+        <div class="table">
+          <div class="table-header">
+            <div>
+              <span>鎶ュ憡缂栧彿锛�</span><br>
+              <span>Reference No锛�</span>
+            </div>
+            <div>
+              <span>绗�1椤靛叡2椤�</span><br>
+              <span>Page 1 of 2</span>
+            </div>
+          </div>
+          <div class="table-body">
+            <table width="100%" border="1" cellspacing="0" style="text-align: center;">
+              <tr>
+                <td><span>璇曟牱鍚嶇О</span><br>
+                <span>Name of product</span></td>
+                <td colspan="2"></td>
+                <td>
+                  <span>瑙勬牸鍨嬪彿</span><br>
+                  <span>Type and size</span>
+                </td>
+                <td colspan="2"></td>
+              </tr>
+              <tr>
+                <td>
+                  <span>鏍峰搧鏁伴噺</span><br>
+                  <span>Test item</span>
+                </td>
+                <td colspan="2"></td>
+                <td>
+                  <span>妫�楠岄」鐩�</span><br>
+                  <span>Test item</span>
+                </td>
+                <td colspan="2"></td>
+              </tr>
+              <tr>
+                <td>
+                  <span>鏉ユ牱鏂瑰紡</span><br>
+                  <span>Delivering method</span>
+                </td>
+                <td colspan="2"></td>
+                <td>
+                  <span>妫�楠岀被鍨�</span><br>
+                  <span>Type of test</span>
+                </td>
+                <td colspan="2"></td>
+              </tr>
+              <tr>
+                <td>
+                  <span>鏍峰搧鐘舵��</span><br>
+                  <span>Sample discription</span>
+                </td>
+                <td colspan="2"></td>
+                <td>
+                  <span>鐢熶骇鍗曚綅</span><br>
+                  <span>Producer</span>
+                </td>
+                <td colspan="2"></td>
+              </tr>
+              <tr>
+                <td>
+                  <span>鏀舵牱鏃堕棿</span><br>
+                  <span>Received date</span>
+                </td>
+                <td colspan="2"></td>
+                <td>
+                  <span>妫�楠屾棩鏈�</span><br>
+                  <span>Test date</span>
+                </td>
+                <td colspan="2"></td>
+              </tr>
+              <tr>
+                <td>
+                  <span>濮旀墭浜�</span><br>
+                  <span>Consignor</span>
+                </td>
+                <td colspan="2"></td>
+                <td>
+                  <span>鐢佃瘽</span><br>
+                  <span>Tel</span>
+                </td>
+                <td colspan="2"></td>
+              </tr>
+              <tr>
+                <td>
+                  <span>濮旀墭鍗曚綅</span><br>
+                  <span>Client</span>
+                </td>
+                <td colspan="5"></td>
+              </tr>
+              <tr>
+                <td>
+                  <span>濮旀墭鍗曚綅鍦板潃</span><br>
+                  <span>Address</span>
+                </td>
+                <td colspan="5"></td>
+              </tr>
+              <tr>
+                <td>
+                  <span>妫�楠岀幆澧�</span><br>
+                  <span>Test environment</span>
+                </td>
+                <td colspan="5"></td>
+              </tr>
+              <tr>
+                <td>
+                  <span>妫�楠屼緷鎹�</span><br>
+                  <span>Test standard</span>
+                </td>
+                <td colspan="5"></td>
+              </tr>
+              <tr>
+                <td style="height: 180px;">
+                  <span>缁撹</span><br>
+                  <span>Conclusion </span>
+                </td>
+                <td colspan="5">
+                  <div style="height: 120px;"></div>
+                  <div style="height: 60px;margin-left: 250px;">
+                    <span>锛堟娴嬫姤鍛婁笓鐢ㄧ珷锛�</span><br>
+                     <span>( SPECIFIC STAMP FOR TEST RTORT) </span><br>                                        
+                      <span>绛惧彂鏃ユ湡锛�  骞�   鏈�   鏃�</span><br>
+                      <span>Date of issue: August 23, 2023</span>
+                  </div>
+                </td>
+              </tr>
+              <tr>
+                <td>
+                  <span>澶囨敞</span><br>
+                  <span>Remark </span>
+                </td>
+                <td colspan="5"></td>
+              </tr>
+              <tr>
+                <td>
+                  <span>缂栧埗</span><br>
+                  <span>Preparer</span>
+                </td>
+                <td colspan="2"></td>
+                <td>
+                  <span>妫�楠�</span><br>
+                  <span>Tester</span>
+                </td>
+                <td colspan="2"></td>
+              </tr>
+              <tr>
+                <td>
+                  <span>瀹℃牳</span><br>
+                  <span>Checker </span>
+                </td>
+                <td colspan="2"></td>
+                <td>
+                  <span>鎵瑰噯</span><br>
+                  <span>Approver</span>
+                </td>
+                <td colspan="2"></td>
+              </tr>
+            </table>
+          </div>
+        </div>
+      </div>
+      <div class="pageThree">
+        <div class="header" style="line-height: 10px;">
+          <div style="width: 350px;margin: 0 auto; text-align-last: justify;">
+            <h2 style="font-size: 18px;">姹熻嫃涓ぉ绉戞妧鑲′唤鏈夐檺鍏徃妫�娴嬩腑蹇�</h2>
+          </div>
+          <div style="width: 500px; margin: 0 auto;text-align-last: justify;">
+            <h2 style="font-size: 14px;">TEST CENTER OF JIANGSU ZHONGTIAN TECHNOLOGY CO.,LTD</h2>
+          </div>
+          <div style="width: 120px;margin: 0 auto;text-align-last: justify;">
+            <h2 style="font-size: 18px;">妫�娴嬫姤鍛�</h2>
+          </div>
+          <div style="width: 100px; margin: 0 auto;text-align-last: justify;">
+            <h2 style="font-size: 14px;">Test Report</h2>
+          </div>
+        </div>
+        <div class="table">
+          <div class="table-header">
+            <div>
+              <span>鎶ュ憡缂栧彿锛�</span><br>
+              <span>Reference No锛�</span>
+            </div>
+            <div>
+              <span>绗�2椤靛叡2椤�</span><br>
+              <span>Page 2 of 2</span>
+            </div>
+          </div>
+          <div class="table-body">
+            <table width="100%" border="1" cellspacing="0" style="text-align: center;">
+              <tr>
+                <td colspan="4">
+                  <span>鏍峰搧缂栧彿</span><br>
+                  <span>Sample No</span></td>
+                <td colspan="3"></td>
+                <td colspan="4">
+                  <span>瑙勬牸鍨嬪彿</span><br>
+                  <span>Type</span>
+                </td>
+                <td colspan="3"></td>
+              </tr>
+              <tr>
+                <td>
+                  <span>搴忓彿</span><br>
+                  <span>No</span>
+                </td>
+                <td colspan="3">
+                  <span>妫�楠岄」鐩�</span><br>
+                  <span>Test item</span>
+                </td>
+                <td>
+                  <span>鍗曚綅</span><br>
+                  <span>Unit</span>
+                </td>
+                <td colspan="3">
+                  <span>鏍囧噯瑕佹眰</span><br>
+                  <span>Requirement</span>
+                </td>
+                <td colspan="3">
+                  <span>妫�楠岀粨鏋�</span><br>
+                  <span>Test result</span>
+                </td>
+                <td>
+                  <span>缁撹</span><br>
+                  <span>Conclusion</span>
+                </td>
+                </tr>
+                <tr>
+                  <td>
+                    <span></span><br>
+                    <span></span>
+                  </td>
+                  <td colspan="3">
+                    <span>鏍峰搧鏍囪瘑</span><br>
+                    <span>Sample labeling</span>
+                  </td>
+                  <td>
+                    <span></span><br>
+                    <span>I</span>
+                  </td>
+                  <td colspan="3">
+                    <span></span><br>
+                    <span></span>
+                  </td>
+                  <td colspan="3">
+                    <span></span><br>
+                    <span></span>
+                  </td>
+                  <td>
+                    <span></span><br>
+                    <span></span>
+                  </td>
+                </tr>
+                <tr v-for="item in resultTable" :key="index">
+                  <td>
+                    <span>{{ item.id }}</span><br>
+                  </td>
+                  <td colspan="3">
+                    <span>{{ item.testitem }}</span><br>
+                    <span>{{ item.testitem_engName }}</span>
+                  </td>
+                  <td>
+                    <span>{{ item.unit }}</span>
+                  </td>
+                  <td colspan="3">
+                    <span>{{ item.requirement }}</span><br>
+                    <span>{{ item.requirement_eng }}</span>
+                  </td>
+                  <td colspan="3">
+                    <span>{{ item.testresult }}</span><br>
+                    <span>{{ item.testresult_engName }}</span>
+                  </td>
+                  <td>
+                    <span>{{ item.conclusion }}</span>
+                  </td>
+                </tr>
+                
+            </table>
+          </div>
+        </div>
+      </div>
+      <div class="pageFour">
+        <div class="page-header" style="display: flex;justify-content: space-between;font-size: 12px;">
+          <div>
+            <span>鎶ュ憡缂栧彿锛�</span><br>
+            <span>Reference No锛�</span>
+          </div>
+          <div>
+            <span>闄勯〉</span><br>
+            <span>Appenfix</span>
+          </div>
+        </div>
+        <hr>
+        <div class="table">
+          <div class="table-header">
+            <div style="width: 200px; margin: 0 auto;text-align-last: justify;"><h2>妫�楠岃澶囦竴瑙堣〃</h2></div>
+            <div style="text-align-last: center;"><h2 style="font-size: 14px;">Equipment List</h2></div>
+          </div>
+          <div class="table-body">
+            <table width="100%" border="1" cellspacing="0" style="text-align: center;">
+              <thead>
+                  <tr>
+                    <td>
+                      <span>搴忓彿</span><br>
+                      <span>No</span>
+                    </td>
+                    <td colspan="2">
+                      <span>璁惧鍚嶇О</span><br>
+                      <span>Equipment name</span>
+                    </td>
+                    <td>
+                      <span>璁惧鍨嬪彿</span><br>
+                      <span>type</span>
+                    </td>
+                    <td colspan="2">
+                      <span>缂栧彿</span><br>
+                      <span>Factory number</span>
+                    </td>
+                    <td colspan="2">
+                      <span>鏍″噯鏈夋晥鏈�</span><br>
+                      <span>Date of validity</span>
+                    </td>
+                  </tr>
+              </thead>
+              <tr v-for="item in table" :key="index">
+                <td>
+                  <span>{{ item.id }}</span>
+                </td>
+                <td colspan="2">
+                  <span>{{ item.equipment_name }}</span>
+                </td>
+                <td>
+                  <span>{{ item.type }}</span><br>
+                </td>
+                <td colspan="2">
+                  <span>{{ item.factory_number }}</span>
+                </td>
+                <td colspan="2">
+                  <span>{{ item.validity }}</span>
+                </td>
+              </tr>
+                
+            </table>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  props:{
+
+  },
+  data(){
+    return {
+      resultTable:[
+        {
+          id: '1',
+          testitem: '鍘熷鎷変几',
+          testitem_engName: 'Primitive strength',
+          unit: 'MPa',
+          requirement: '鏈�灏�10.0',
+          requirement_eng: 'Minimun 10.0',
+          testresult: '',
+          testitem_engName: ''
+        }
+      ],
+      table:[{
+        id: 1,
+        equipment_name: '鎷栨媺鏈�',
+        type: 1,
+        factory_number: 'Akjgfewof',
+        validity:'2023.8.25~2023.8.27'
+      }]
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.content-wrapper{
+  background-color: #f0f2f5;
+  width: 100%;
+  height: 100vh;
+  overflow-y: auto;
+  .content-main{
+    margin: -50px auto;
+    width: 50%;
+    // background-color: #fff;
+    // background-color: #bfa;
+    .cover{
+      margin: 80px 0px;
+      padding:0px 50px;
+      height: 1200px;
+      background-color: #fff;
+      box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2);
+      .cover-top{
+        display: flex;
+        justify-content: end;
+        font-size: 20px;
+        margin-right: 50px;
+        padding-top: 50px;
+        // font-weight: bold;
+      }
+      .title{
+        margin-top: 100px;
+        padding: 0px 220px;
+        text-align: center;
+        font-size: 25px;
+      }
+      .cover-body{
+        font-size: 25px;
+        margin: 100px 80px;
+        .name{
+          // background-color: #bfa;
+          display: flex;
+          justify-content: space-between;
+          margin-bottom: 20px;
+          .line{
+            width: 500px;
+            border-bottom: solid 1px black;
+            text-align: center;
+            // height: 60px;
+            line-height: 60px;
+          }
+        }
+      }
+      .cover-footer{
+        text-align: center;
+        margin-top: 200px;
+        span{
+          font-size: 23px;
+          height: 40px;
+          line-height: 40px;
+        }
+      }
+    }
+    .pageOne{
+      margin-top: -50px;
+      background-color: #fff;
+      box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2);
+      padding:50px 100px;
+      height: 1200px;
+      .statement{
+        margin: 0 auto;
+        width: 100px;
+        text-align-last: justify;
+      }
+      .statement-body{
+        line-height: 32px;
+        text-align: justify;
+        margin: 30px 0px;
+        font-size: 12px;
+      }
+      .statement-footer{
+        line-height: 30px;
+        font-size: 12px;
+      }
+    }
+    .pageTwo{
+      margin-top: 30px;
+      background-color: #fff;
+      box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2);
+      padding:50px 60px;
+      height: 1200px;
+      .table{
+        margin-top: 20px;
+        .table-header{
+          display: flex;
+          justify-content: space-between;
+          font-size: 14px;
+          line-height: 20px;
+        }
+        .table-body{
+          font-size: 12px;
+          table td{
+            width: 150px;
+            height: 52px;
+          }
+        }
+      }
+    }
+    .pageThree{
+      margin-top: 30px;
+      background-color: #fff;
+      box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2);
+      padding:50px 60px;
+      height: 1200px;
+      .table{
+        margin-top: 20px;
+        .table-header{
+          display: flex;
+          justify-content: space-between;
+          font-size: 14px;
+          line-height: 20px;
+        }
+        .table-body{
+          font-size: 12px;
+          table td{
+            width: 8%;
+            height: 52px;
+          }
+        }
+      }
+    }
+    .pageFour{
+      margin-top: 30px;
+      background-color: #fff;
+      box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2);
+      padding:50px 60px;
+      height: 1200px;
+      .table{
+        margin-top: 50px;
+        .table-header{
+          line-height: 20px;
+        }
+        .table-body{
+          margin-top: 20px;
+          font-size: 12px;
+          table td{
+            width: 80px;
+            height: 52px;
+          }
+        }
+      }
+    }
+    
+  }
+}
+</style>
\ No newline at end of file

--
Gitblit v1.9.3