From 85f689b65f4fb915ffe6bb2e5e65d7a88dc22865 Mon Sep 17 00:00:00 2001
From: yuyu <1981343953@qq.com>
Date: 星期四, 10 八月 2023 16:59:25 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.110.209:9001/r/lims-before

---
 src/views/experiment/reportAuditing/index.vue        |  212 ++++++++
 src/api/experiment/reportAuditing.js                 |    9 
 src/api/urlEnum/nonConformingFeedback.js             |    8 
 src/views/experiment/nonConformanceReview/index.vue  |  196 ++++++++
 src/views/experiment/nonConformingFeedback/index.vue |  196 ++++++++
 src/views/experiment/planAssignments/index.vue       |  307 +++++-------
 README.md                                            |    4 
 src/api/urlEnum/nonConformanceReview.js              |    8 
 src/api/util/requestUtil.js                          |   18 
 src/api/experiment/checkTheReport.js                 |    9 
 src/views/CNAS/satisfactionSurveys/index.vue         |  192 +++++++
 src/views/experiment/checkTheReport/index.vue        |  250 ++++++++++
 src/api/experiment/planAssignments.js                |    9 
 src/api/rawMaterials/reportForInspection.js          |    2 
 14 files changed, 1,238 insertions(+), 182 deletions(-)

diff --git a/README.md b/README.md
new file mode 100644
index 0000000..2485b1d
--- /dev/null
+++ b/README.md
@@ -0,0 +1,4 @@
+## lims-before
+
+lims鍓嶆
+
diff --git a/src/api/experiment/checkTheReport.js b/src/api/experiment/checkTheReport.js
new file mode 100644
index 0000000..940fb8a
--- /dev/null
+++ b/src/api/experiment/checkTheReport.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+
+export function selectAllReport(params) {
+  return request({
+    url: '/report/selectAllReport',
+    method: 'get',
+    params
+  })
+}
diff --git a/src/api/experiment/planAssignments.js b/src/api/experiment/planAssignments.js
new file mode 100644
index 0000000..b373041
--- /dev/null
+++ b/src/api/experiment/planAssignments.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+
+export function selectAllPlan(params) {
+  return request({
+    url: '/plan/selectAllPlan',
+    method: 'get',
+    params
+  })
+}
\ No newline at end of file
diff --git a/src/api/experiment/reportAuditing.js b/src/api/experiment/reportAuditing.js
new file mode 100644
index 0000000..f6a7bae
--- /dev/null
+++ b/src/api/experiment/reportAuditing.js
@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+
+export function selectAllReportCheck(params) {
+  return request({
+    url: '/reportAuditing/selectAllReportAuditing',
+    method: 'get',
+    params
+  })
+}
diff --git a/src/api/rawMaterials/reportForInspection.js b/src/api/rawMaterials/reportForInspection.js
index e110f2d..7b62c9e 100644
--- a/src/api/rawMaterials/reportForInspection.js
+++ b/src/api/rawMaterials/reportForInspection.js
@@ -3,7 +3,7 @@
 // 鏌ヨ鎵�鏈夌敵璇峰崟鍒楄〃
 export function getInspectionList(params) {
   return request({
-    url: '/inspection/selectAllInspection',
+    url: '/inspection/selectInspectsList',
     method: 'get',
     params
   })
diff --git a/src/api/urlEnum/nonConformanceReview.js b/src/api/urlEnum/nonConformanceReview.js
new file mode 100644
index 0000000..1b61727
--- /dev/null
+++ b/src/api/urlEnum/nonConformanceReview.js
@@ -0,0 +1,8 @@
+const baseurl='/nonConformanceReview'
+
+const url={
+    "getNonConformanceReview": baseurl+"/getNonConformanceReview",//鑾峰彇涓嶅悎鏍煎搧璇勫
+}
+export default{
+    url
+}
\ No newline at end of file
diff --git a/src/api/urlEnum/nonConformingFeedback.js b/src/api/urlEnum/nonConformingFeedback.js
new file mode 100644
index 0000000..736e5d4
--- /dev/null
+++ b/src/api/urlEnum/nonConformingFeedback.js
@@ -0,0 +1,8 @@
+const baseurl='/non-conforming-feedback'
+
+const url={
+    "getNonConformingFeedback": baseurl+"/getNonConformingFeedback",//鑾峰彇涓嶅悎鏍煎搧鍙嶉
+}
+export default{
+    url
+}
\ No newline at end of file
diff --git a/src/api/util/requestUtil.js b/src/api/util/requestUtil.js
new file mode 100644
index 0000000..263da29
--- /dev/null
+++ b/src/api/util/requestUtil.js
@@ -0,0 +1,18 @@
+ import request from '@/utils/request'
+
+export function get(path, params) {
+    return request({
+        url: path,
+        method: 'get',
+        params
+    })
+}
+
+export function post(path, data) {
+    return request({
+        url: path,
+        method: 'post',
+        data
+    })
+}
+
diff --git a/src/views/CNAS/satisfactionSurveys/index.vue b/src/views/CNAS/satisfactionSurveys/index.vue
index 0888772..571dd96 100644
--- a/src/views/CNAS/satisfactionSurveys/index.vue
+++ b/src/views/CNAS/satisfactionSurveys/index.vue
@@ -1,5 +1,191 @@
 <template>
-    <div>
-        婊℃剰搴﹁皟鏌�
+    <div class="content-main survey">
+      <div class="top-bar">
+        <el-form ref="form" style="width: 1000px;" :inline="true">
+          <!-- <el-input v-model="input" class="input-form" placeholder="璇风洿鎺ヨ緭鍏ユ牱寮忕紪鍙�/鏍峰搧鍚嶇О/鍨嬪彿瑙勬牸/杩涜鎼滅储鎴栦笅鎷夐�夋嫨杩涜缁勫悎鏌ヨ"
+              @keyup.enter.native="getData" /> -->
+          <el-form-item style="width: 800px;">
+            <el-col style="display: flex; justify-content: space-around;" :span="8">
+              <el-row>璋冩煡鏃ユ湡:</el-row>
+              <el-row><el-input type="date" style="width: 130px;" v-model="materialCode" placeholder="璇烽�夋嫨璋冩煡鏃ユ湡"></el-input></el-row>
+            </el-col>
+            <el-col style="display: flex; justify-content: space-around;" :span="8">
+              <el-row>褰曞叆鏃ユ湡:</el-row>
+              <el-row><el-input style="width: 130px;" v-model="materialName" placeholder="璇烽�夋嫨褰曞叆鏃ユ湡"></el-input></el-row>
+            </el-col>
+          </el-form-item>
+          <el-form-item>
+            <el-button type="primary" size="small" @click="getData()">鏌ヨ</el-button>
+            <el-button type="primary" size="small" plain @click="resetData()">娓呯┖</el-button>
+          </el-form-item>
+        </el-form>
+        <el-form>
+          <el-button size="40" icon="el-icon-document-add" type="primary">鏂板璁板綍</el-button>
+        </el-form>
+      </div>
+      <div class="library-table">
+        <div class="table-box">
+          <el-table ref="tableData" :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="tableData" style="width: 100%">
+            <el-table-column type="selection" label="" min-width="5%" />
+            <el-table-column  label="鏍峰搧缂栧彿" min-width="10%">
+              <template slot-scope="scope">
+                <a style="color: #3894d1;">{{ scope.row.materialCode }}</a>
+              </template>
+            </el-table-column>
+            <el-table-column prop="materialName" label="鏍峰搧鍚嶇О" min-width="10%" />
+            <el-table-column label="鐢宠鍗曞彿" min-width="10%" >
+              <template slot-scope="scope">
+                <a style="color: #3894d1;">{{ scope.row.inspectionCode }}</a>
+              </template>
+            </el-table-column>
+            <el-table-column prop="createTime" label="鐧昏鏃ユ湡" min-width="10%" />
+            <el-table-column prop="testManager" label="妫�楠岃礋璐d汉" min-width="10%" />
+            <el-table-column prop="specifications" label="瑙勬牸鍨嬪彿" min-width="10%" />
+            <el-table-column prop="inspectionStatus" label="缁撹" min-width="10%">
+              <template slot-scope="scope">
+                <el-tag type="danger">涓嶅悎鏍�</el-tag>
+              </template>
+            </el-table-column>
+            <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">浣滃簾</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+          <!-- 鍒嗛〉鍣� -->
+          <div>
+            <el-pagination :current-page="page" :page-sizes="[10, 20, 30, 40]" :page-size="pageSize"
+              layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handleSizeChange"
+              @current-change="handleCurrentChange" />
+          </div>
+        </div>
+      </div>
     </div>
-</template>
+  </template>
+  
+  <script>
+  import { get, post } from '@/api/util/requestUtil';
+  import urlInfo from '../../../api/urlEnum/nonConformanceReview.js'
+  export default {
+    data() {
+      return {
+        input: '',
+        tableData: [],
+        page: 1,
+        total: 0,
+        pageSize: 10,
+        materialCode: null,
+        materialName: null,
+        inspectionCode: null
+      }
+    },
+    created() {
+  
+    },
+    mounted() {
+      this.getData()
+    },
+    methods: {
+      handleCurrentChange() {
+        this.getData();
+      },
+      handleSizeChange() {
+  
+      },
+      exportData() {
+  
+      },
+      // 閲嶇疆鎸夐挳
+      resetData() {
+        this.page = 1
+        this.pageSize = 10
+        this.materialCode=null
+        this.materialName=null
+        this.inspectionCode=null
+        this.getData()
+      },
+      async getData() {
+        let param = {
+          "currentPage": this.page,
+          'pageNum': this.pageSize,
+          "inspectionCode": this.inspectionCode,
+          "materialCode": this.materialCode,
+          "materialName": this.materialName
+        }
+        let res = await get(urlInfo.url.getNonConformanceReview, param)
+        this.tableData = res.data.nonConformanceReviewList
+        this.total = res.data.total
+      }
+    }
+  }
+  </script>
+  
+  <style lang="scss" scoped>
+  .top-bar {
+    margin: -25px -15px;
+    background: #fff;
+    display: flex;
+    justify-content: space-between;
+    padding: 5px 24px 0px 24px;
+  
+    .input-form {
+      width: 800px;
+    }
+  
+    .el-dropdown-link {
+      cursor: pointer;
+      color: #409EFF !important;
+    }
+  
+    .el-icon-arrow-down {
+      font-size: 12px !important;
+    }
+  
+  
+  }
+  
+  .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: 20px;
+      flex: 1;
+      background: #fff;
+      display: flex;
+      flex-direction: column;
+  
+      >div:nth-child(2) {
+        display: flex;
+        justify-content: end;
+        margin: 10px 0;
+      }
+  
+    }
+  }
+  </style>
+  <style >
+  .content-main {
+    .el-form .el-form-item .el-form-item__content {
+      width: 100% !important;
+    }
+  }
+  </style>
diff --git a/src/views/experiment/checkTheReport/index.vue b/src/views/experiment/checkTheReport/index.vue
index d08ff60..4a58f59 100644
--- a/src/views/experiment/checkTheReport/index.vue
+++ b/src/views/experiment/checkTheReport/index.vue
@@ -1,13 +1,255 @@
 <template>
-  <div>妫�娴嬫姤鍛�</div>
+  <div class="content-main">
+    <div class="top-bar">
+      <el-form ref="form" :inline="true">
+        <el-form-item class="sermargin">
+          <el-input
+            v-model="input"
+            class="input-form"
+            placeholder="璇风洿鎺ヨ緭鍏ユ牱寮忕紪鍙�/鎶ュ憡鍗曞彿/鏍峰搧缂栧彿/杩涜鎼滅储鎴栦笅鎷夐�夋嫨杩涜缁勫悎鏌ヨ"
+            @keyup.enter.native="getData"
+          />
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" @click="getData()">鏌ヨ</el-button>
+          <el-button type="primary" plain @click="resetData()">閲嶇疆</el-button>
+        </el-form-item>
+        <el-dropdown>
+          <span class="el-dropdown-link">
+            楂樼骇鎼滅储<i class="el-icon-arrow-down el-icon--right"></i>
+          </span>
+          <el-dropdown-menu slot="dropdown">
+            <el-dropdown-item>楂樼骇鎼滅储</el-dropdown-item>
+          </el-dropdown-menu>
+        </el-dropdown>
+      </el-form>
+      <el-form>
+        <el-button
+          class="rightBtn"
+          type="primary"
+          icon="el-icon-document"
+          @click="exportData"
+          >瀵煎嚭鎶ュ憡</el-button
+        >
+      </el-form>
+    </div>
+    <div class="library-table">
+      <div class="table-header">
+        <div class="search-bar">
+          <el-radio-group v-model="checkStatus" @change="handleRadioChange">
+            <el-radio-button>鍏ㄩ儴</el-radio-button>
+            <el-radio-button label="0">寰呮彁浜�</el-radio-button>
+            <el-radio-button label="1">寰呭鏍�</el-radio-button>
+            <el-radio-button label="2">宸插鏍�</el-radio-button>
+          </el-radio-group>
+
+          <el-checkbox v-model="checked" style="margin-left: 20px"
+            >浠呯湅鎴戠殑</el-checkbox
+          >
+        </div>
+      </div>
+      <div class="table-box">
+        <el-table
+          ref="reportTable"
+          :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="reportTable"
+          style="width: 100%"
+        >
+          <el-table-column type="selection" label="" min-width="5%" />
+
+          <el-table-column
+            prop="materialCode"
+            label="鏍峰搧缂栧彿"
+            sortable
+            min-width="10%"
+          />
+          <el-table-column
+            prop="reportCode"
+            label="鎶ュ憡鍗曞彿"
+            sortable
+            min-width="10%"
+          />
+          <el-table-column
+            prop="inspectionCode"
+            label="鐢宠鍗曞彿"
+            sortable
+            min-width="10%"
+          />
+          <el-table-column prop="approver" label="瀹℃壒浜�" min-width="8%">
+            <template slot-scope="scope">
+              <span>
+                <el-tag type="info" icon="el-icon-user">
+                  <i class="el-icon-user">{{ scope.row.approver }}</i>
+                </el-tag>
+              </span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="status" label="瀹℃壒鐘舵��" min-width="8%">
+            <template slot-scope="scope">
+              <span>
+                <el-tag type="info">{{
+                  scope.row.status == 0
+                    ? "寰呮彁浜�"
+                    : scope.row.status == 1
+                    ? "寰呭鏍�"
+                    : scope.row.status == 2
+                    ? "浠g瀛�"
+                    : "宸插畬鎴�"
+                }}</el-tag>
+              </span>
+            </template></el-table-column
+          >
+          <el-table-column prop="conclusion" label="妫�楠岀粨璁�" min-width="8%" />
+          <el-table-column prop="name" label="缂栧埗浜�" min-width="8%">
+            <template slot-scope="scope">
+              <span>
+                <el-tag type="info" icon="el-icon-user">
+                  <i class="el-icon-user">{{ scope.row.name }}</i>
+                </el-tag>
+              </span>
+            </template>
+          </el-table-column>
+          <el-table-column label="鎿嶄綔" min-width="8%">
+            <template slot-scope="scope">
+              <el-button
+                type="text"
+                size="small"
+                @click="handleClick(scope.row)"
+                >棰勮</el-button
+              >
+              <el-button type="text" size="small">鎵撳嵃</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        <!-- 鍒嗛〉鍣� -->
+        <div>
+          <el-pagination
+            :current-page="page"
+            :page-sizes="[10, 20, 30, 40]"
+            :page-size="pageSize"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="total"
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+          />
+        </div>
+      </div>
+    </div>
+  </div>
 </template>
 
 <script>
+import { selectAllReport } from "@/api/experiment/checkTheReport";
 export default {
-
-}
+  data() {
+    return {
+      input: "",
+      checkStatus: undefined,
+      reportTable: [],
+      page: 1,
+      total: 0,
+      pageSize: 10,
+      checked: true,
+    };
+  },
+  created() {
+    this.getData();
+  },
+  methods: {
+    // 鐘舵�佹寜閽�
+    handleRadioChange() {
+      this.getData();
+    },
+    // 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣
+    handleSizeChange(val) {
+      console.log(`姣忛〉 ${val} 鏉);
+      this.pageSize = val;
+      this.getData();
+    },
+    // 褰撳墠椤垫敼鍙樻椂瑙﹀彂 璺宠浆鍏朵粬椤�
+    handleCurrentChange(val) {
+      console.log(`褰撳墠椤�: ${val}`);
+      this.page = val;
+      this.getData();
+    },
+    // 閲嶇疆鎸夐挳
+    resetData() {
+      this.input = undefined;
+      this.page = 1;
+      this.pageSize = 10;
+      this.checkStatus = undefined;
+      this.getData();
+    },
+    // 鏌ヨ鍒楄〃
+    async getData() {
+      const params = {
+        page: this.page,
+        pageSize: this.pageSize,
+        name: this.input ? this.input : undefined,
+        status: this.checkStatus ? this.checkStatus : undefined,
+      };
+      const { data } = await selectAllReport(params);
+      this.reportTable = data.row;
+      this.total = data.total;
+    },
+  },
+};
 </script>
 
 <style lang="scss" scoped>
-
+.top-bar {
+  margin: -25px -15px;
+  background: #fff;
+  display: flex;
+  justify-content: space-between;
+  padding: 5px 24px 0px 24px;
+  .input-form {
+    width: 700px;
+  }
+  .el-dropdown-link {
+    cursor: pointer;
+    color: #409EFF;
+  }
+  .el-icon-arrow-down {
+    font-size: 12px;
+  }
+}
+.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;
+    display: flex;
+    flex-direction: column;
+    > div:nth-child(2) {
+      display: flex;
+      justify-content: end;
+      margin: 10px 0;
+    }
+  }
+  
+}
 </style>
diff --git a/src/views/experiment/nonConformanceReview/index.vue b/src/views/experiment/nonConformanceReview/index.vue
index 23f8a41..5eab166 100644
--- a/src/views/experiment/nonConformanceReview/index.vue
+++ b/src/views/experiment/nonConformanceReview/index.vue
@@ -1,13 +1,207 @@
 <template>
-  <div>涓嶅悎鏍艰瘎瀹�</div>
+  <div class="content-main">
+    <div class="top-bar">
+      <el-form ref="form" style="width: 1000px;" :inline="true">
+        <!-- <el-input v-model="input" class="input-form" placeholder="璇风洿鎺ヨ緭鍏ユ牱寮忕紪鍙�/鏍峰搧鍚嶇О/鍨嬪彿瑙勬牸/杩涜鎼滅储鎴栦笅鎷夐�夋嫨杩涜缁勫悎鏌ヨ"
+            @keyup.enter.native="getData" /> -->
+        <el-form-item style="width: 800px;">
+          <el-col style="display: flex; justify-content: space-around;" :span="8">
+            <el-row>鏍峰紡缂栧彿:</el-row>
+            <el-row><el-input size="small" v-model="materialCode" placeholder="璇疯緭鍏ユ牱寮忕紪鍙�"></el-input></el-row>
+          </el-col>
+          <el-col style="display: flex; justify-content: space-around;" :span="8">
+            <el-row>鏍峰紡鍚嶇О:</el-row>
+            <el-row><el-input size="small" v-model="materialName" placeholder="璇疯緭鍏ユ牱寮忓悕绉�"></el-input></el-row>
+          </el-col>
+          <el-col style="display: flex; justify-content: space-around;" :span="8">
+            <el-row>鐢宠鍗曞彿:</el-row>
+            <el-row><el-input size="small" v-model="inspectionCode" placeholder="璇疯緭鍏ョ敵璇峰崟鍙�"></el-input></el-row>
+          </el-col>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" size="small" @click="getData()">鏌ヨ</el-button>
+          <el-button type="primary" size="small" plain @click="resetData()">閲嶇疆</el-button>
+          <el-dropdown style="margin-left: 7px;">
+            <span class="el-dropdown-link">
+              楂樼骇鎼滅储<i class="el-icon-arrow-down el-icon--right"></i>
+            </span>
+            <el-dropdown-menu slot="dropdown">
+              <el-dropdown-item>榛勯噾绯�</el-dropdown-item>
+              <el-dropdown-item>鐙瓙澶�</el-dropdown-item>
+              <el-dropdown-item>铻鸿洺绮�</el-dropdown-item>
+              <el-dropdown-item disabled>鍙岀毊濂�</el-dropdown-item>
+              <el-dropdown-item divided>铓典粩鐓�</el-dropdown-item>
+            </el-dropdown-menu>
+          </el-dropdown>
+        </el-form-item>
+      </el-form>
+      <el-form>
+        <el-button size="40" type="primary">鎵归噺鎻愪氦</el-button>
+      </el-form>
+    </div>
+    <div class="library-table">
+      <div class="table-box">
+        <el-table ref="tableData" :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="tableData" style="width: 100%">
+          <el-table-column type="selection" label="" min-width="5%" />
+          <el-table-column  label="鏍峰搧缂栧彿" min-width="10%">
+            <template slot-scope="scope">
+              <a style="color: #3894d1;">{{ scope.row.materialCode }}</a>
+            </template>
+          </el-table-column>
+          <el-table-column prop="materialName" label="鏍峰搧鍚嶇О" min-width="10%" />
+          <el-table-column label="鐢宠鍗曞彿" min-width="10%" >
+            <template slot-scope="scope">
+              <a style="color: #3894d1;">{{ scope.row.inspectionCode }}</a>
+            </template>
+          </el-table-column>
+          <el-table-column prop="createTime" label="鐧昏鏃ユ湡" min-width="10%" />
+          <el-table-column prop="testManager" label="妫�楠岃礋璐d汉" min-width="10%" />
+          <el-table-column prop="specifications" label="瑙勬牸鍨嬪彿" min-width="10%" />
+          <el-table-column prop="inspectionStatus" label="缁撹" min-width="10%">
+            <template slot-scope="scope">
+              <el-tag type="danger">涓嶅悎鏍�</el-tag>
+            </template>
+          </el-table-column>
+          <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">浣滃簾</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        <!-- 鍒嗛〉鍣� -->
+        <div>
+          <el-pagination :current-page="page" :page-sizes="[10, 20, 30, 40]" :page-size="pageSize"
+            layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handleSizeChange"
+            @current-change="handleCurrentChange" />
+        </div>
+      </div>
+    </div>
+  </div>
 </template>
 
 <script>
+import { get, post } from '@/api/util/requestUtil';
+import urlInfo from '../../../api/urlEnum/nonConformingFeedback.js'
 export default {
+  data() {
+    return {
+      input: '',
+      tableData: [],
+      page: 1,
+      total: 0,
+      pageSize: 10,
+      materialCode: null,
+      materialName: null,
+      inspectionCode: null
+    }
+  },
+  created() {
 
+  },
+  mounted() {
+    this.getData()
+  },
+  methods: {
+    handleCurrentChange() {
+        this.getData();
+    },
+    handleSizeChange() {
+
+    },
+    exportData() {
+
+    },
+    // 閲嶇疆鎸夐挳
+    resetData() {
+      this.page = 1
+      this.pageSize = 10
+      this.materialCode=null
+      this.materialName=null
+      this.inspectionCode=null
+      this.getData()
+    },
+    async getData() {
+      let param = {
+        "currentPage": this.page,
+        'pageNum': this.pageSize,
+        "inspectionCode": this.inspectionCode,
+        "materialCode": this.materialCode,
+        "materialName": this.materialName
+      }
+      let res = await get(urlInfo.url.getNonConformingFeedback, param)
+      this.tableData = res.data.nonConformingFeedbackList
+      this.total = res.data.total
+    }
+  }
 }
 </script>
 
 <style lang="scss" scoped>
+.top-bar {
+  margin: -25px -15px;
+  background: #fff;
+  display: flex;
+  justify-content: space-between;
+  padding: 5px 24px 0px 24px;
 
+  .input-form {
+    width: 800px;
+  }
+
+  .el-dropdown-link {
+    cursor: pointer;
+    color: #409EFF !important;
+  }
+
+  .el-icon-arrow-down {
+    font-size: 12px !important;
+  }
+
+
+}
+
+.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: 20px;
+    flex: 1;
+    background: #fff;
+    display: flex;
+    flex-direction: column;
+
+    >div:nth-child(2) {
+      display: flex;
+      justify-content: end;
+      margin: 10px 0;
+    }
+
+  }
+}
+</style>
+<style >
+.content-main {
+  .el-form .el-form-item .el-form-item__content {
+    width: 100% !important;
+  }
+}
 </style>
diff --git a/src/views/experiment/nonConformingFeedback/index.vue b/src/views/experiment/nonConformingFeedback/index.vue
index 6733e19..2c58565 100644
--- a/src/views/experiment/nonConformingFeedback/index.vue
+++ b/src/views/experiment/nonConformingFeedback/index.vue
@@ -1,13 +1,207 @@
 <template>
-  <div>涓嶅悎鏍煎弽棣�</div>
+  <div class="content-main">
+    <div class="top-bar">
+      <el-form ref="form" style="width: 1000px;" :inline="true">
+        <!-- <el-input v-model="input" class="input-form" placeholder="璇风洿鎺ヨ緭鍏ユ牱寮忕紪鍙�/鏍峰搧鍚嶇О/鍨嬪彿瑙勬牸/杩涜鎼滅储鎴栦笅鎷夐�夋嫨杩涜缁勫悎鏌ヨ"
+            @keyup.enter.native="getData" /> -->
+        <el-form-item style="width: 800px;">
+          <el-col style="display: flex; justify-content: space-around;" :span="8">
+            <el-row>鏍峰紡缂栧彿:</el-row>
+            <el-row><el-input size="small" v-model="materialCode" placeholder="璇疯緭鍏ユ牱寮忕紪鍙�"></el-input></el-row>
+          </el-col>
+          <el-col style="display: flex; justify-content: space-around;" :span="8">
+            <el-row>鏍峰紡鍚嶇О:</el-row>
+            <el-row><el-input size="small" v-model="materialName" placeholder="璇疯緭鍏ユ牱寮忓悕绉�"></el-input></el-row>
+          </el-col>
+          <el-col style="display: flex; justify-content: space-around;" :span="8">
+            <el-row>鐢宠鍗曞彿:</el-row>
+            <el-row><el-input size="small" v-model="inspectionCode" placeholder="璇疯緭鍏ョ敵璇峰崟鍙�"></el-input></el-row>
+          </el-col>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" size="small" @click="getData()">鏌ヨ</el-button>
+          <el-button type="primary" size="small" plain @click="resetData()">閲嶇疆</el-button>
+          <el-dropdown style="margin-left: 7px;">
+            <span class="el-dropdown-link">
+              楂樼骇鎼滅储<i class="el-icon-arrow-down el-icon--right"></i>
+            </span>
+            <el-dropdown-menu slot="dropdown">
+              <el-dropdown-item>榛勯噾绯�</el-dropdown-item>
+              <el-dropdown-item>鐙瓙澶�</el-dropdown-item>
+              <el-dropdown-item>铻鸿洺绮�</el-dropdown-item>
+              <el-dropdown-item disabled>鍙岀毊濂�</el-dropdown-item>
+              <el-dropdown-item divided>铓典粩鐓�</el-dropdown-item>
+            </el-dropdown-menu>
+          </el-dropdown>
+        </el-form-item>
+      </el-form>
+      <el-form>
+        <el-button size="40" type="primary">鎵归噺鎻愪氦</el-button>
+      </el-form>
+    </div>
+    <div class="library-table">
+      <div class="table-box">
+        <el-table ref="tableData" :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="tableData" style="width: 100%">
+          <el-table-column type="selection" label="" min-width="5%" />
+          <el-table-column  label="鏍峰搧缂栧彿" min-width="10%">
+            <template slot-scope="scope">
+              <a style="color: #3894d1;">{{ scope.row.materialCode }}</a>
+            </template>
+          </el-table-column>
+          <el-table-column prop="materialName" label="鏍峰搧鍚嶇О" min-width="10%" />
+          <el-table-column label="鐢宠鍗曞彿" min-width="10%" >
+            <template slot-scope="scope">
+              <a style="color: #3894d1;">{{ scope.row.inspectionCode }}</a>
+            </template>
+          </el-table-column>
+          <el-table-column prop="createTime" label="鐧昏鏃ユ湡" min-width="10%" />
+          <el-table-column prop="testManager" label="妫�楠岃礋璐d汉" min-width="10%" />
+          <el-table-column prop="specifications" label="瑙勬牸鍨嬪彿" min-width="10%" />
+          <el-table-column prop="inspectionStatus" label="缁撹" min-width="10%">
+            <template slot-scope="scope">
+              <el-tag type="danger">涓嶅悎鏍�</el-tag>
+            </template>
+          </el-table-column>
+          <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">浣滃簾</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        <!-- 鍒嗛〉鍣� -->
+        <div>
+          <el-pagination :current-page="page" :page-sizes="[10, 20, 30, 40]" :page-size="pageSize"
+            layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handleSizeChange"
+            @current-change="handleCurrentChange" />
+        </div>
+      </div>
+    </div>
+  </div>
 </template>
 
 <script>
+import { get, post } from '@/api/util/requestUtil';
+import urlInfo from '../../../api/urlEnum/nonConformanceReview.js'
 export default {
+  data() {
+    return {
+      input: '',
+      tableData: [],
+      page: 1,
+      total: 0,
+      pageSize: 10,
+      materialCode: null,
+      materialName: null,
+      inspectionCode: null
+    }
+  },
+  created() {
 
+  },
+  mounted() {
+    this.getData()
+  },
+  methods: {
+    handleCurrentChange() {
+      this.getData();
+    },
+    handleSizeChange() {
+
+    },
+    exportData() {
+
+    },
+    // 閲嶇疆鎸夐挳
+    resetData() {
+      this.page = 1
+      this.pageSize = 10
+      this.materialCode=null
+      this.materialName=null
+      this.inspectionCode=null
+      this.getData()
+    },
+    async getData() {
+      let param = {
+        "currentPage": this.page,
+        'pageNum': this.pageSize,
+        "inspectionCode": this.inspectionCode,
+        "materialCode": this.materialCode,
+        "materialName": this.materialName
+      }
+      let res = await get(urlInfo.url.getNonConformanceReview, param)
+      this.tableData = res.data.nonConformanceReviewList
+      this.total = res.data.total
+    }
+  }
 }
 </script>
 
 <style lang="scss" scoped>
+.top-bar {
+  margin: -25px -15px;
+  background: #fff;
+  display: flex;
+  justify-content: space-between;
+  padding: 5px 24px 0px 24px;
 
+  .input-form {
+    width: 800px;
+  }
+
+  .el-dropdown-link {
+    cursor: pointer;
+    color: #409EFF !important;
+  }
+
+  .el-icon-arrow-down {
+    font-size: 12px !important;
+  }
+
+
+}
+
+.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: 20px;
+    flex: 1;
+    background: #fff;
+    display: flex;
+    flex-direction: column;
+
+    >div:nth-child(2) {
+      display: flex;
+      justify-content: end;
+      margin: 10px 0;
+    }
+
+  }
+}
+</style>
+<style >
+.content-main {
+  .el-form .el-form-item .el-form-item__content {
+    width: 100% !important;
+  }
+}
 </style>
diff --git a/src/views/experiment/planAssignments/index.vue b/src/views/experiment/planAssignments/index.vue
index cffcc61..f5bdf13 100644
--- a/src/views/experiment/planAssignments/index.vue
+++ b/src/views/experiment/planAssignments/index.vue
@@ -3,12 +3,17 @@
     <div class="top-bar">
       <el-form ref="form" :inline="true" :model="searchData">
         <el-form-item label="璁惧鍚嶇О:" class="sermargin">
-          <el-select v-model="searchData.devicename" placeholder="鍏ㄩ儴" style="width: 100px;">
+          <el-select
+            v-model="searchData.devicename"
+            placeholder="鍏ㄩ儴"
+            style="width: 100px"
+          >
             <el-option
-              v-for="item in options"
+              v-for="item in options1"
               :key="item.value"
               :label="item.label"
-              :value="item.value">
+              :value="item.value"
+            >
             </el-option>
           </el-select>
         </el-form-item>
@@ -18,131 +23,132 @@
             type="daterange"
             range-separator="~"
             start-placeholder="寮�濮嬫棩鏈�"
-            end-placeholder="缁撴潫鏃ユ湡">
+            end-placeholder="缁撴潫鏃ユ湡"
+          >
           </el-date-picker>
         </el-form-item>
-        <el-form-item label="妫�楠屼汉:" style="margin-right: 20px;">
-          <el-select v-model="searchData.person" placeholder="鍏ㄩ儴" style="width: 80px;margin-right: 100px;">
+        <el-form-item label="妫�楠屼汉:" style="margin-right: 20px">
+          <el-select
+            v-model="searchData.person"
+            placeholder="鍏ㄩ儴"
+            style="width: 80px; margin-right: 100px"
+          >
             <el-option
-              v-for="item in options"
+              v-for="item in options2"
               :key="item.value"
               :label="item.label"
-              :value="item.value">
+              :value="item.value"
+            >
             </el-option>
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-button type="primary" plain style="margin-right: 10px;">閲嶇疆</el-button>
+          <el-button type="primary" plain style="margin-right: 10px"
+            >閲嶇疆</el-button
+          >
           <el-button type="primary">鏌ヨ</el-button>
         </el-form-item>
-        </el-form>
+      </el-form>
     </div>
     <div class="table-box">
       <div class="formwrapper">
         <el-table
           ref="planTable"
           :max-height="800"
-          :cell-style="{textAlign: 'center'}"
-          :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}"
+          :cell-style="{ textAlign: 'center' }"
+          :header-cell-style="{
+            border: '0px',
+            background: '#f5f7fa',
+            color: '#606266',
+            boxShadow: 'inset 0 1px 0 #ebeef5',
+            textAlign: 'center',
+          }"
           :data="planTable"
           style="width: 100%"
         >
-        <el-table-column
-          type="index"
-          label="搴忓彿"
-          min-width="10%"
-        />
-        <el-table-column
-          prop="device"
-          label="妫�楠岃澶�"
-          min-width="8%"
-        />
-        <el-table-column
-          prop="samplename"
-          label="鏍峰搧鍚嶇О"
-          min-width="8%"
-        />
-        <el-table-column
-          prop="sampleid"
-          label="鏍峰搧缂栧彿"
-          min-width="10%"
-        />
-        <el-table-column
-          prop="modelandspecification"
-          label="瑙勬牸鍨嬪彿"
-          min-width="12%"
-        />
-        <el-table-column
-          prop="unit"
-          label="鍗曚綅"
-          min-width="5%"
-        />
-        <el-table-column
-          prop="amount"
-          label="鏁伴噺"
-          min-width="5%"
-        />
-        <el-table-column
-          prop="checkproject"
-          label="妫�楠岄」鐩�"
-          min-width="12%"
-        />
-        <el-table-column
-          prop="checker"
-          label="妫�楠屼汉"
-          min-width="6%"
-        />
-        <el-table-column
-          prop="duration"
-          label="璁″垝宸ユ湡/h"
-          min-width="8%"
-        />
-        <el-table-column
-          prop="progress"
-          label="妫�楠岃繘搴�"
-          min-width="12%">
-          <template slot-scope="scope">
-            <div v-if="scope.row.progress === 100" style="display: flex;">
-              <el-progress :text-inside="true" :stroke-width="15" :percentage="scope.row.progress" status="success" style="width: 70%;"></el-progress>
-              <span style="color: rgb(103, 194, 58);">宸插畬鎴�</span>
-            </div>
-            <div v-if="scope.row.progress <100 && scope.row.progress >0" style="display: flex;">
-              <el-progress :text-inside="true" :stroke-width="15" :percentage="scope.row.progress" status="warning" style="width: 70%;"></el-progress>
-              <span style="color: rgb(230, 162, 60);">妫�楠屼腑</span>
-            </div>
-            <div v-if="scope.row.progress === 0" style="display: flex;">
-              <el-progress :text-inside="true" :stroke-width="15" :percentage="scope.row.progress" style="width: 70%;"></el-progress>
-              <span style="color: gray">鏈垎閰�</span>
-            </div>
-            <div v-else>
-            </div>
-          </template>
-        </el-table-column>
-        <el-table-column
-          prop="starttime"
-          label="璁″垝寮�濮嬫椂闂�"
-          min-width="10%"
-        />
-        <el-table-column
-          prop="finishtime"
-          label="璁″垝缁撴潫鏃堕棿"
-          min-width="10%"
-        />
-        <el-table-column
-            label="鎿嶄綔"
-            min-width="8%"
-        >
-          <template slot-scope="scope">
-            <el-button type="text" size="small" @click="handleClick(scope.row)">鏌ョ湅</el-button>
-          </template>
-        </el-table-column>
+          <el-table-column type="index" label="搴忓彿" min-width="10%" />
+          <el-table-column prop="device" label="妫�楠岃澶�" min-width="8%" />
+          <el-table-column prop="samplename" label="鏍峰搧鍚嶇О" min-width="8%" />
+          <el-table-column prop="sampleid" label="鏍峰搧缂栧彿" min-width="10%" />
+          <el-table-column
+            prop="modelandspecification"
+            label="瑙勬牸鍨嬪彿"
+            min-width="12%"
+          />
+          <el-table-column prop="unit" label="鍗曚綅" min-width="5%" />
+          <el-table-column prop="amount" label="鏁伴噺" min-width="5%" />
+          <el-table-column
+            prop="checkproject"
+            label="妫�楠岄」鐩�"
+            min-width="12%"
+          />
+          <el-table-column prop="checker" label="妫�楠屼汉" min-width="6%" />
+          <el-table-column prop="duration" label="璁″垝宸ユ湡/h" min-width="8%" />
+          <el-table-column prop="progress" label="妫�楠岃繘搴�" min-width="12%">
+            <template slot-scope="scope">
+              <div v-if="scope.row.progress === 100" style="display: flex">
+                <el-progress
+                  :text-inside="true"
+                  :stroke-width="15"
+                  :percentage="scope.row.progress"
+                  status="success"
+                  style="width: 70%"
+                ></el-progress>
+                <span style="color: rgb(103, 194, 58)">宸插畬鎴�</span>
+              </div>
+              <div
+                v-if="scope.row.progress < 100 && scope.row.progress > 0"
+                style="display: flex"
+              >
+                <el-progress
+                  :text-inside="true"
+                  :stroke-width="15"
+                  :percentage="scope.row.progress"
+                  status="warning"
+                  style="width: 70%"
+                ></el-progress>
+                <span style="color: rgb(230, 162, 60)">妫�楠屼腑</span>
+              </div>
+              <div v-if="scope.row.progress === 0" style="display: flex">
+                <el-progress
+                  :text-inside="true"
+                  :stroke-width="15"
+                  :percentage="scope.row.progress"
+                  style="width: 70%"
+                ></el-progress>
+                <span style="color: gray">鏈垎閰�</span>
+              </div>
+              <div v-else></div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="starttime"
+            label="璁″垝寮�濮嬫椂闂�"
+            min-width="10%"
+          />
+          <el-table-column
+            prop="finishtime"
+            label="璁″垝缁撴潫鏃堕棿"
+            min-width="10%"
+          />
+          <el-table-column label="鎿嶄綔" min-width="8%">
+            <template slot-scope="scope">
+              <el-button
+                type="text"
+                size="small"
+                @click="handleClick(scope.row)"
+                >鏌ョ湅</el-button
+              >
+            </template>
+          </el-table-column>
         </el-table>
       </div>
-      </div>
+    </div>
   </div>
 </template>
 
 <script>
+import { selectAllPlan } from "@/api/experiment/planAssignments";
 export default {
   data() {
     return {
@@ -151,71 +157,36 @@
         time: "",
         person: "",
       },
-      options: [
-        {
-          value: "閫夐」1",
-          label: "閫夐」1",
-        },
-        {
-          value: "閫夐」2",
-          label: "閫夐」2",
-          disabled: true,
-        },
-      ],
-      planTable: [{
-        device: '鎷夊姏鏈�',
-        samplename: '闀�閿岄挗缁炵嚎',
-        sampleid: 'SN1027401-12937',
-        modelandspecification: 'JLHA/G1A-185/30-14/7',
-        unit: 'm',
-        amount: '200',
-        checkproject: '鎶楀帇寮哄害锛堢粸鍓嶏級',
-        checker: '榛勫皬鏄�',
-        duration: '2',
-        progress: 100,
-        starttime: '2023-08-04 8:00',
-        finishtime: '2023-08-04 10:00',
-      },{
-        device: '鎷夊姏鏈�',
-        samplename: '闀�閿岄挗缁炵嚎',
-        sampleid: 'SN1027401-12937',
-        modelandspecification: 'JLHA/G1A-185/30-14/7',
-        unit: 'm',
-        amount: '200',
-        checkproject: '鎶楀帇寮哄害锛堢粸鍓嶏級',
-        checker: '榛勫皬鏄�',
-        duration: '2',
-        progress: 60,
-        starttime: '2023-08-04 8:00',
-        finishtime: '2023-08-04 10:00',
-      },{
-        device: '鎷夊姏鏈�',
-        samplename: '闀�閿岄挗缁炵嚎',
-        sampleid: 'SN1027401-12937',
-        modelandspecification: 'JLHA/G1A-185/30-14/7',
-        unit: 'm',
-        amount: '200',
-        checkproject: '鎶楀帇寮哄害锛堢粸鍓嶏級',
-        checker: '榛勫皬鏄�',
-        duration: '2',
-        progress: 30,
-        starttime: '2023-08-04 8:00',
-        finishtime: '2023-08-04 10:00',
-      },{
-        device: '鎷夊姏鏈�',
-        samplename: '闀�閿岄挗缁炵嚎',
-        sampleid: 'SN1027401-12937',
-        modelandspecification: 'JLHA/G1A-185/30-14/7',
-        unit: 'm',
-        amount: '200',
-        checkproject: '鎶楀帇寮哄害锛堢粸鍓嶏級',
-        checker: '榛勫皬鏄�',
-        duration: '2',
-        progress: 0,
-        starttime: '2023-08-04 8:00',
-        finishtime: '2023-08-04 10:00',
-      }]
+      options1: [],
+      options2: [],
+      planTable: [],
     };
+  },
+  created() {
+    this.getData();
+  },
+  methods: {
+    // 鏌ヨ鍒楄〃
+    async getData() {
+      const params = {};
+      const { data } = await selectAllPlan(params);
+      this.planTable = data;
+      this.planTable.forEach((res) => {
+        let o1 = {
+          value: res.device,
+          label: res.device,
+        };
+        this.options1.push(o1);
+
+        if(res.userId == undefined) {
+
+        }
+      });
+      let d=this.options1.filter((val,index,self)=>{
+        return self.indexOf(val)==index;
+      })
+      console.log(d);
+    },
   },
 };
 </script>
@@ -236,14 +207,14 @@
     margin-right: 60px;
   }
 }
-.table-box{
+.table-box {
   background-color: #fff;
   margin: 0px -15px;
   margin-top: 35px;
   display: flex;
   flex-direction: column;
   height: 78vh;
-  .formwrapper{
+  .formwrapper {
     padding: 0px 20px;
     margin-top: 0px;
     flex: 1;
diff --git a/src/views/experiment/reportAuditing/index.vue b/src/views/experiment/reportAuditing/index.vue
index f409c24..0e8bf65 100644
--- a/src/views/experiment/reportAuditing/index.vue
+++ b/src/views/experiment/reportAuditing/index.vue
@@ -1,13 +1,217 @@
 <template>
-  <div>鎶ュ憡瀹℃牳</div>
+  <div class="content-main">
+    <div class="top-bar">
+      <el-form ref="form" :inline="true">
+        <el-form-item class="sermargin">
+          <el-input
+            v-model="input"
+            class="input-form"
+            placeholder="璇风洿鎺ヨ緭鍏ユ牱寮忕紪鍙�/鎶ュ憡缂栧彿/鏍峰搧鍚嶇О/杩涜鎼滅储鎴栦笅鎷夐�夋嫨杩涜缁勫悎鏌ヨ"
+            @keyup.enter.native="getData"
+          />
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" @click="getData()">鏌ヨ</el-button>
+          <el-button type="primary" plain @click="resetData()">閲嶇疆</el-button>
+        </el-form-item>
+        <el-dropdown>
+          <span class="el-dropdown-link">
+            楂樼骇鎼滅储<i class="el-icon-arrow-down el-icon--right"></i>
+          </span>
+          <el-dropdown-menu slot="dropdown">
+            <el-dropdown-item>楂樼骇鎼滅储</el-dropdown-item>
+          </el-dropdown-menu>
+        </el-dropdown>
+      </el-form>
+      <el-form>
+        <el-button class="rightBtn" type="primary" @click="exportData"
+          >瀹℃牳</el-button
+        >
+      </el-form>
+    </div>
+    <div class="library-table">
+      <div class="table-header">
+        <div class="search-bar">
+          <el-radio-group v-model="checkStatus" @change="handleRadioChange">
+            <el-radio-button>鍏ㄩ儴</el-radio-button>
+            <el-radio-button label="0">寰呮彁浜�</el-radio-button>
+            <el-radio-button label="2">寰呴�氳繃</el-radio-button>
+          </el-radio-group>
+          <el-checkbox v-model="checked" style="margin-left: 20px"
+            >浠呯湅鎴戠殑</el-checkbox
+          >
+        </div>
+      </div>
+      <div class="table-box">
+        <el-table
+          ref="reportTable"
+          :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="reportTable"
+          style="width: 100%"
+        >
+          <el-table-column type="selection" label="" min-width="5%" />
+          <el-table-column
+            prop="materialCode"
+            label="鏍峰搧缂栧彿"
+            min-width="10%"
+          />
+          <el-table-column prop="reportCode" label="鎶ュ憡鍗曞彿" min-width="10%" />
+          <el-table-column
+            prop="materialName"
+            label="鏍峰搧鍚嶇О"
+            min-width="10%"
+          />
+          <el-table-column prop="status" label="瀹℃壒鐘舵��" min-width="8%">
+            <template slot-scope="scope">
+              <span>
+                <el-tag type="warning">{{
+                  scope.row.status == 0 ? "寰呮彁浜�" : "寰呴�氳繃"
+                }}</el-tag>
+              </span>
+            </template></el-table-column
+          >
+          <el-table-column prop="approver" label="瀹℃壒浜�" min-width="8%" />
+          <el-table-column prop="submitTime" label="鎻愪氦鏃ユ湡" min-width="8%" />
+          <el-table-column prop="checkTime" label="瀹℃牳鏃ユ湡" min-width="8%" />
+          <el-table-column label="鎿嶄綔" min-width="8%">
+            <template slot-scope="scope">
+              <el-button
+                type="text"
+                size="small"
+                @click="handleClick(scope.row)"
+                >鏌ョ湅璇︾粏</el-button
+              >
+            </template>
+          </el-table-column>
+        </el-table>
+        <!-- 鍒嗛〉鍣� -->
+        <div>
+          <el-pagination
+            :current-page="page"
+            :page-sizes="[10, 20, 30, 40]"
+            :page-size="pageSize"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="total"
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+          />
+        </div>
+      </div>
+    </div>
+  </div>
 </template>
 
 <script>
+import { selectAllReportCheck } from "@/api/experiment/reportAuditing";
 export default {
-
-}
+  data() {
+    return {
+      input: "",
+      checkStatus: undefined,
+      reportTable: [],
+      page: 1,
+      total: 0,
+      pageSize: 10,
+      checked: true,
+    };
+  },
+  created() {
+    this.getData();
+  },
+  methods: {
+    // 鐘舵�佹寜閽�
+    handleRadioChange() {
+      this.getData();
+    },
+    // 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣
+    handleSizeChange(val) {
+      console.log(`姣忛〉 ${val} 鏉);
+      this.pageSize = val;
+      this.getData();
+    },
+    // 褰撳墠椤垫敼鍙樻椂瑙﹀彂 璺宠浆鍏朵粬椤�
+    handleCurrentChange(val) {
+      console.log(`褰撳墠椤�: ${val}`);
+      this.page = val;
+      this.getData();
+    },
+    // 閲嶇疆鎸夐挳
+    resetData() {
+      this.input = undefined;
+      this.page = 1;
+      this.pageSize = 10;
+      this.checkStatus = undefined;
+      this.getData();
+    },
+    // 鏌ヨ鍒楄〃
+    async getData() {
+      const params = {
+        page: this.page,
+        pageSize: this.pageSize,
+        name: this.input ? this.input : undefined,
+        status: this.checkStatus ? this.checkStatus : undefined,
+      };
+      const { data } = await selectAllReportCheck(params);
+      this.reportTable = data.row;
+      this.total = data.total;
+    },
+  },
+};
 </script>
 
 <style lang="scss" scoped>
-
+.top-bar {
+  margin: -25px -15px;
+  background: #fff;
+  display: flex;
+  justify-content: space-between;
+  padding: 5px 24px 0px 24px;
+  .input-form {
+    width: 700px;
+  }
+  .el-dropdown-link {
+    cursor: pointer;
+    color: #409eff;
+  }
+  .el-icon-arrow-down {
+    font-size: 12px;
+  }
+}
+.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;
+    display: flex;
+    flex-direction: column;
+    > div:nth-child(2) {
+      display: flex;
+      justify-content: end;
+      margin: 10px 0;
+    }
+  }
+}
 </style>

--
Gitblit v1.9.3