From 0f32593939c05e2a2d699b27083c5dab77ef9870 Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期五, 18 八月 2023 08:56:50 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.110.209:9001/r/lims-before

---
 src/views/laboratory/measure/index.vue                       |   71 +++++
 src/views/laboratory/role/index.vue                          |  213 +++++++++++++++++
 src/layout/components/AppMain.vue                            |    2 
 src/views/inspectionManagement/reportForInspection/index.vue |  386 +++++++++++++++++++++++++------
 src/api/inspection/rawmaterial.js                            |   10 
 src/router/index.js                                          |    5 
 6 files changed, 602 insertions(+), 85 deletions(-)

diff --git a/src/api/inspection/rawmaterial.js b/src/api/inspection/rawmaterial.js
new file mode 100644
index 0000000..f32b4c3
--- /dev/null
+++ b/src/api/inspection/rawmaterial.js
@@ -0,0 +1,10 @@
+import request from '@/utils/request'
+
+// 鏌ヨ鍘熸潗鏂欐楠屽垪琛�
+export function getRawMaterialList(params) {
+  return request({
+    url: '/raw-material/selectAll',
+    method: 'get',
+    params
+  })
+}
diff --git a/src/layout/components/AppMain.vue b/src/layout/components/AppMain.vue
index 5932228..e9e0b9f 100644
--- a/src/layout/components/AppMain.vue
+++ b/src/layout/components/AppMain.vue
@@ -27,7 +27,7 @@
 
 <style lang="scss" scoped>
 .app-main {
-  /*88 = navbar+baredcrumb  */
+  /* 88 = navbar+baredcrumb  */
   min-height: calc(100vh - 88px);
   width: 100%;
   position: relative;
diff --git a/src/router/index.js b/src/router/index.js
index e1261b7..ba88b65 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -327,6 +327,11 @@
         name: 'Personnel',
         component: () => import('@/views/laboratory/personnel/index'),
         meta: { title: '浜哄憳绠$悊', icon: 'tree' }
+      },{
+        path: 'role',
+        name: 'Role',
+        component: () => import('@/views/laboratory/role/index'),
+        meta: { title: '瑙掕壊绠$悊', icon: 'tree' }
       }
     ]
   },
diff --git a/src/views/inspectionManagement/reportForInspection/index.vue b/src/views/inspectionManagement/reportForInspection/index.vue
index 84cdfb4..e48728d 100644
--- a/src/views/inspectionManagement/reportForInspection/index.vue
+++ b/src/views/inspectionManagement/reportForInspection/index.vue
@@ -1,8 +1,9 @@
 <template>
     <div class="content-main">
+      <div class="rawPage" v-if="!showNewPage">
         <div class="top-bar">
             <el-form ref="form" :inline="true" :model="searchData">
-            <el-form-item label="鏉愭枡缂栫爜:" class="sermargin">
+            <el-form-item label="鏉愭枡缂栫爜:" position="left" class="sermargin">
               <el-input
                 v-model="searchData.code"
                 class="input-form"
@@ -37,22 +38,20 @@
               </el-input>
             </el-form-item>
             <el-form-item>
-              <el-button type="primary">鏌ヨ</el-button>
-              <el-button type="primary" plain>閲嶇疆</el-button>
+              <el-button type="primary" @click="search">鏌ヨ</el-button>
+              <el-button type="primary" plain @click="reset">閲嶇疆</el-button>
             </el-form-item>
             </el-form>
         </div>
         <div class="library-table">
           <div class="table-header">
             <div class="search-bar">
-              <el-radio-group v-model="radioValue">
-                <el-radio-button label="鍏ㄩ儴" />
-                <el-radio-button label="寰呮楠�" />
-                <el-radio-button label="宸叉楠�" />
+              <el-radio-group v-model="radioValue" @change="radioclick">
+                <el-radio-button v-for="option in radioOptions" :key="option.value" :label="option.value">{{ option.label }}</el-radio-button>
               </el-radio-group>
             </div>
             <div class="generateInsp">
-              <el-button type="primary" size="mini" icon="el-icon-document" style="background-color: rgb(1, 102, 226);">鐢熸垚鎶ユ鍗�</el-button>
+              <el-button @click="showNewPage = true" type="primary" size="mini" icon="el-icon-document" style="background-color: rgb(1, 102, 226);">鐢熸垚鎶ユ鍗�</el-button>
             </div>
           </div>
           <div class="table-box">
@@ -66,7 +65,6 @@
             >
               <el-table-column
                 type="selection"
-                label=""
                 min-width="10%"
               /> 
               <el-table-column
@@ -75,27 +73,27 @@
                 min-width="8%"
               />
               <el-table-column
-                prop="date"
+                prop="createTime"
                 label="鏉ユ枡鏃ユ湡"
                 min-width="8%"
               />
               <el-table-column
-                prop="providerName"
+                prop="supplierName"
                 label="渚涘簲鍟嗗悕绉�"
                 min-width="12%"
               />
               <el-table-column
-                prop="code"
+                prop="materialCoding"
                 label="鏉愭枡缂栫爜"
                 min-width="8%"
               />
               <el-table-column
-                prop="name"
+                prop="materialName"
                 label="鏉愭枡鍚嶇О"
                 min-width="8%"
               />
               <el-table-column
-                prop="modelandspecification"
+                prop="specificationsModels"
                 label="瑙勬牸鍨嬪彿"
                 min-width="12%"
               />
@@ -105,33 +103,33 @@
                 min-width="5%"
               />
               <el-table-column
-                prop="amount"
+                prop="quantity"
                 label="鏁伴噺"
                 min-width="5%"
               />
               <el-table-column
-                prop="commisiondate"
+                prop="inspectionDate"
                 label="鎶ユ鏃ユ湡"
                 min-width="8%"
               />
               <el-table-column
-                prop="person"
+                prop="surveyor"
                 label="妫�楠屼汉"
                 min-width="8%"
               />
               <el-table-column
-                prop="checkdate"
+                prop="dateSurvey"
                 label="妫�楠屾棩鏈�"
                 min-width="8%"
               />
               <el-table-column
-                prop="state"
+                prop="condition"
                 label="鐘舵��"
                 min-width="8%"
               >
               <template slot-scope="scope">
-                <span :style="{ color: scope.row.state === '宸叉娴�' ? 'green' : 'red' }">
-                  {{ scope.row.state }}
+                <span :style="{ color: scope.row.condition === 1 ? 'green' : 'red' }">
+                  {{ scope.row.condition === 1 ? '宸叉娴�':'鏈娴�' }}
                 </span>
               </template>
               </el-table-column>
@@ -142,18 +140,116 @@
                 @size-change="handleSizeChange"
                 @current-change="handleCurrentChange"
                 :current-page="currentPage"
-                :page-sizes="[100, 200, 300, 400]"
-                :page-size="100"
+                :page-sizes="[5, 10, 15, 20]"
+                :page-size="pageSize"
                 layout="total, sizes, prev, pager, next, jumper"
-                :total="400">
+                :total="total">
               </el-pagination>
             </div>
           </div>
         </div>
-    </div>
+      </div>
+
+    <!-- 鐢熸垚鎶ユ鍗� -->
+      <div class="newPage" v-if="showNewPage">
+        <!-- 鏂板椤甸潰 -->
+        <div class="inspectionForm">
+          <el-form :model="inspectionForm" ref="inspectionForm" label-position="right" label-width="100px" size="mini" >
+            <div class="formwrapper">
+              <el-row>
+                <el-col  :span="8">
+                  <el-form-item label="鏉ユ枡鏃ユ湡锛�">
+                    <el-input  style="width: 180px;" :value="inspectionForm.createTime" disabled autocomplete="off" />  
+                  </el-form-item>
+                </el-col>
+                <el-col  :span="8">
+                  <el-form-item label="渚涘簲鍟嗗悕绉帮細">
+                    <el-input style="width: 180px;" :value="inspectionForm.supplier_name" disabled autocomplete="off" />                  </el-form-item>
+                </el-col>
+                <el-col  :span="8">
+                  <el-form-item label="鏍峰搧缂栧彿锛�">
+                    <el-input style="width: 180px;" :value="inspectionForm.materialCoding" disabled autocomplete="off" />
+                  </el-form-item>
+                </el-col>
+              </el-row>
+              <el-row >
+                <el-col  :span="8">
+                  <el-form-item label="鏍峰搧鍚嶇О锛�" >
+                    <el-input style="width: 180px;" :value="inspectionForm.materialName" disabled autocomplete="off" />
+                  </el-form-item>
+                </el-col>
+                <el-col  :span="8">
+                  <el-form-item label="瑙勬牸鍨嬪彿锛�">
+                    <el-input style="width: 180px;" :value="inspectionForm.specificationsModels" disabled autocomplete="off" />                       
+                  </el-form-item>
+                </el-col>
+                <el-col  :span="8">
+                  <el-form-item label="鍗曚綅锛�">
+                    <el-input style="width: 180px;" :value="inspectionForm.unit" disabled autocomplete="off" />
+                  </el-form-item>
+                </el-col>
+              </el-row>
+              <el-row >
+                <el-col  :span="8">
+                  <el-form-item label="鏁伴噺锛�" >
+                    <el-input style="width: 180px;" :value="inspectionForm.quantity" disabled autocomplete="off" />                       
+                  </el-form-item>
+                  </el-col>
+                  <el-col :span="8">
+                    <el-form-item label="鎶ユ鏃ユ湡锛�" >
+                      <el-input style="width: 180px;" :value="inspectionForm.dateSurvey" disabled autocomplete="off" />                       
+                    </el-form-item>
+                  </el-col>
+                  <el-col :span="8">
+                    <el-form-item label="鎶ユ浜猴細">
+                        <el-input style="width: 180px;" :value="inspectionForm.surveyor" disabled autocomplete="off" />
+                    </el-form-item>
+                  </el-col>
+                </el-row>
+            </div>
+            </el-form>
+        </div>
+        <div class="inspectionProject">
+          <div class="header">
+            <span style="font-size: 14px">妫�楠岄」鐩�</span>
+            <div>
+            <el-button  type="primary" plain size="mini">淇濆瓨</el-button>
+            <el-button @click="showNewPage = false" type="primary" plain size="mini" icon="el-icon-back">杩斿洖</el-button>
+          </div>
+          </div>
+            <el-table
+              :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="inspectionItems">
+            <el-table-column type="index" label="搴忓彿" width="60"></el-table-column>
+            <el-table-column prop="project" label="椤圭洰" width="250"></el-table-column>
+            <el-table-column prop="unit" label="鍗曚綅" width="125"></el-table-column>
+            <el-table-column prop="standardVal" label="鏍囧噯鍊�" width="125"></el-table-column>
+            <el-table-column prop="controlVal" label="鍐呮祴鍊�" width="125"></el-table-column>
+            <el-table-column prop="detectionVal" label="妫�楠屽��" width="125"></el-table-column>
+            <el-table-column prop="checker" label="妫�楠屼汉">
+              <template slot-scope="scope">
+                <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-column prop="device" label="璇曢獙璁惧">
+                <template slot-scope="scope">
+                <el-select v-model="scope.row.device" size="small" slot="append" style="width: 260px;">
+                    <el-option v-for="item in deviceoptions" :key="item.value" :label="item.label">{{ item.label }}</el-option>
+                </el-select>
+            </template>
+            </el-table-column>
+          </el-table>
+        </div>
+      </div>
+  </div>
 </template>
 
 <script>
+import { getRawMaterialList } from '@/api/inspection/rawmaterial'
 export default {
   data() {
     return {
@@ -165,87 +261,187 @@
         date: ''
       },
       options: [{
-        value: '1',
-        label: '閮ㄩ棬1'
+        value: 0,
+        label: '鍏ㄩ儴'
       }, {
-        value: '2',
-        label: '閮ㄩ棬2'
+        value: 1,
+        label: '宸叉楠�'
       }, {
-        value: '3',
-        label: '閮ㄩ棬3'
+        value: 2,
+        label: '寰呮楠�'
       }],
-      radioValue: '',
+      deviceoptions:[{
+        value: 0,
+        label: '鎷夊姏鏈�'
+      },{
+        value: 1,
+        label: '鎷栨媺鏈�'
+      }],
+      checkeroptions:[{
+        value: 0,
+        label: '榛勫皬鏄�'
+      },{
+        value: 1,
+        label: '寮犱笁'
+      }],
+      radioOptions:[{
+        label: '鍏ㄩ儴',
+        value: 0
+      },{
+        value: 1,
+        label: '宸叉楠�'
+      },{
+        value: 2,
+        label: '寰呮楠�'
+      }],
+      radioValue: 0,
       inspectionTable: [{
-        date: '2023-07-28',
-        providerName: '鍥界綉灞变笢鐪佺數鍔涙湁闄愬叕鍙�',
-        code: 'BP214274',
-        name: '閾濆寘閽㈢粸绾�',
-        modelandspecification: 'JLHA/G1A-185/30-26/7',
+        createTime: '2023-07-28',
+        supplier_name: '鍥界綉灞变笢鐪佺數鍔涙湁闄愬叕鍙�',
+        materialCoding: 'BP214274',
+        materialName: '閾濆寘閽㈢粸绾�',
+        specificationsModels: 'JLHA/G1A-185/30-26/7',
         unit: '鍚�',
-        amount: '21',
-        commisiondate: '2023-08-02',
-        person: '榛勫皬鏄�',
-        checkdate: '2023-12-09',
-        state: '宸叉娴�'
-      }, {
-        date: '2023-07-28',
-        providerName: '鍥界綉灞变笢鐪佺數鍔涙湁闄愬叕鍙�',
-        code: 'BP214274',
-        name: '閾濆寘閽㈢粸绾�',
-        modelandspecification: 'JLHA/G1A-185/30-26/7',
-        unit: '鍚�',
-        amount: '21',
-        commisiondate: '2023-08-02',
-        person: '榛勫皬鏄�',
-        checkdate: '2023-12-09',
-        state: '寰呮娴�'
-      }, {
-        date: '2023-07-28',
-        providerName: '鍥界綉灞变笢鐪佺數鍔涙湁闄愬叕鍙�',
-        code: 'BP214274',
-        name: '閾濆寘閽㈢粸绾�',
-        modelandspecification: 'JLHA/G1A-185/30-26/7',
-        unit: '鍚�',
-        amount: '21',
-        commisiondate: '2023-08-02',
-        person: '榛勫皬鏄�',
-        checkdate: '2023-12-09',
-        state: '宸叉娴�'
-      }, {
-        date: '2023-07-28',
-        providerName: '鍥界綉灞变笢鐪佺數鍔涙湁闄愬叕鍙�',
-        code: 'BP214274',
-        name: '閾濆寘閽㈢粸绾�',
-        modelandspecification: 'JLHA/G1A-185/30-26/7',
-        unit: '鍚�',
-        amount: '21',
-        commisiondate: '2023-08-02',
-        person: '榛勫皬鏄�',
-        checkdate: '2023-12-09',
-        state: '寰呮娴�'
+        quantity: 21,
+        dateSurvey: '2023-08-02',
+        surveyor: '榛勫皬鏄�',
+        inspectionDate: '2023-12-09',
+        condition: 1
       }],
-      currentPage: 0
+      currentPage: 1,
+      pageSize: 5,
+      total:20,
+      data: '',
+      showNewPage: false,
+      inspectionForm:{
+        createTime: '2023-07-28',
+        supplier_name: '鍥界綉灞变笢鐪佺數鍔涙湁闄愬叕鍙�',
+        materialCoding: 'BP214274',
+        materialName: '閾濆寘閽㈢粸绾�',
+        specificationsModels: 'JLHA/G1A-185/30-26/7',
+        unit: '鍚�',
+        quantity: 21,
+        dateSurvey: '2023-08-02',
+        surveyor: '榛勫皬鏄�',
+        inspectionDate: '2023-12-09',
+      },
+      inspectionItems:[{
+        project:'瀵肩嚎澶栧緞',
+        unit: 'mm',
+        standardVal: '30.0',
+        controlVal: '30.0',
+        detectionVal: '30.0',
+        device:'',
+        checker: '',
+      },{
+        project:'瀵肩嚎澶栧緞',
+        unit: 'mm',
+        standardVal: '30.0',
+        controlVal: '30.0',
+        detectionVal: '30.0',
+        device:'',
+        checker: ''
+      },{
+        project:'瀵肩嚎澶栧緞',
+        unit: 'mm',
+        standardVal: '30.0',
+        controlVal: '30.0',
+        detectionVal: '30.0',
+        device:'',
+        checker: ''
+      },{
+        project:'瀵肩嚎澶栧緞',
+        unit: 'mm',
+        standardVal: '30.0',
+        controlVal: '30.0',
+        detectionVal: '30.0',
+        device:'',
+        checker: ''
+      },{
+        project:'瀵肩嚎澶栧緞',
+        unit: 'mm',
+        standardVal: '30.0',
+        controlVal: '30.0',
+        detectionVal: '30.0',
+        device:'',
+        checker: ''
+      },{
+        project:'瀵肩嚎澶栧緞',
+        unit: 'mm',
+        standardVal: '30.0',
+        controlVal: '30.0',
+        detectionVal: '30.0',
+        device:'',
+        checker: ''
+      }]
     }
   },
+  created(){
+    this.getRawMaterialList()
+  },
   methods: {
+    // 鑾峰彇鍒嗛〉鍒楄〃鏁版嵁
+    async getRawMaterialList(){
+      const res = await getRawMaterialList({pageNo: this.currentPage,pageSize:this.pageSize})
+      // console.log(res)
+      this.inspectionTable = res.data.row
+      this.data = res.data.row
+      this.total = res.data.total
+    },
+    async search(){
+      this.radioValue = this.searchData.state
+      const res = await getRawMaterialList({condition: this.searchData.state,
+        createTime:this.searchData.date,
+        materialCoding:this.searchData.code,
+        materialName: this.searchData.name,
+        pageNo: this.currentPage,
+        pageSize: this.pageSize
+      })
+      // console.log(res)
+      this.inspectionTable = res.data.row
+      this.data = res.data.row
+      this.total = res.data.total
+    },
+    reset(){
+      this.searchData = {
+        code: '',
+        name: '',
+        state: '',
+        date: ''
+      }
+      this.getRawMaterialList()
+    },
+    radioclick(){
+      this.searchData.state = this.radioValue
+      // console.log(this.radioValue)
+      this.inspectionTable = this.data.filter((item)=>{
+        return item.condition === this.radioValue
+      })
+      if(this.radioValue === 0){
+        this.inspectionTable = this.data
+      }
+      this.total = this.inspectionTable.length
+    },
     // 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣
     handleSizeChange(val) {
       console.log(`姣忛〉 ${val} 鏉)
-      this.currentPage = 1
       this.pageSize = val
+      this.getRawMaterialList({pageNo: this.currentPage,pageSize:this.pageSize})
     },
     // 褰撳墠椤垫敼鍙樻椂瑙﹀彂 璺宠浆鍏朵粬椤�
     handleCurrentChange(val) {
       console.log(`褰撳墠椤�: ${val}`)
       this.currentPage = val
+      this.getRawMaterialList({pageNo: this.currentPage,pageSize:this.pageSize})
     }
   }
 }
 </script>
 
 <style scoped>
-
-.top-bar{
+.content-main{
+  height: 100%;
+  .top-bar{
     margin: -25px -15px;
     background: #fff;
     display: flex;
@@ -299,4 +495,30 @@
   color: red;
 }
 
+.newPage{
+  margin: -25px -15px;
+  .inspectionForm{
+    background-color:#fff;
+    .formwrapper{
+      margin-left: 80px;
+      padding:10px 0px;
+    }
+  }
+  .inspectionProject{
+    margin:10px 0px;
+    .header{
+      display:flex;
+      justify-content: space-between;
+      padding-top: -3px;
+      padding-bottom: 3px;
+    }
+    .el-table{
+      padding: 10px 10px;
+      height: 65vh;
+      overflow-y: auto;
+    }
+  }
+}
+}
+
 </style>
diff --git a/src/views/laboratory/measure/index.vue b/src/views/laboratory/measure/index.vue
index 96ab797..a9bd91e 100644
--- a/src/views/laboratory/measure/index.vue
+++ b/src/views/laboratory/measure/index.vue
@@ -194,8 +194,74 @@
         value: 1,
         label: '璁¢噺璁″垝'
       }],
-      measureLedgerTable: [],
-      measurePlanTable: [],
+      measureLedgerTable: [{
+        equipment_code: 'JSTC-W1-00001',  // 浠櫒璁惧缂栧彿
+        equipment_name: '鏁板瓧鐢垫ˉ',   // 浠櫒璁惧鍚嶇О
+        measure_range: '---',  // 娴嬮噺鑼冨洿
+        measurecycle: '12鏈�',   // 璁¢噺鍛ㄦ湡
+        mesureresult: 1,   // 璁¢噺缁撴灉
+        date: '2022-07-20',   // 璁¢噺鏃ユ湡
+        term_validity: '2023-07-20',   // 璁¢噺鏈夋晥鏈�
+        head: '榛勫皬鏄�' ,  // 璐熻矗浜�
+        create_time: '2023-07-20', // 鍒涘缓鏃ユ湡
+        create_person: '榛勫皬鏄�', // 鍒涘缓浜�
+        measure_code: 'QCX20230720' // 璁¢噺缂栧彿
+      },{
+        equipment_code: 'JSTC-W1-00001',  // 浠櫒璁惧缂栧彿
+        equipment_name: '鏁板瓧鐢垫ˉ',   // 浠櫒璁惧鍚嶇О
+        measure_range: '---',  // 娴嬮噺鑼冨洿
+        measurecycle: '12鏈�',   // 璁¢噺鍛ㄦ湡
+        mesureresult: 0,   // 璁¢噺缁撴灉
+        date: '2022-07-20',   // 璁¢噺鏃ユ湡
+        term_validity: '2023-07-20',   // 璁¢噺鏈夋晥鏈�
+        head: '榛勫皬鏄�' ,  // 璐熻矗浜�
+        create_time: '2023-07-20', // 鍒涘缓鏃ユ湡
+        create_person: '榛勫皬鏄�', // 鍒涘缓浜�
+        measure_code: 'QCX20230720' // 璁¢噺缂栧彿
+      },{
+        equipment_code: 'JSTC-W1-00001',  // 浠櫒璁惧缂栧彿
+        equipment_name: '鏁板瓧鐢垫ˉ',   // 浠櫒璁惧鍚嶇О
+        measure_range: '---',  // 娴嬮噺鑼冨洿
+        measurecycle: '12鏈�',   // 璁¢噺鍛ㄦ湡
+        mesureresult: 1,   // 璁¢噺缁撴灉
+        date: '2022-07-20',   // 璁¢噺鏃ユ湡
+        term_validity: '2023-07-20',   // 璁¢噺鏈夋晥鏈�
+        head: '榛勫皬鏄�' ,  // 璐熻矗浜�
+        create_time: '2023-07-20', // 鍒涘缓鏃ユ湡
+        create_person: '榛勫皬鏄�', // 鍒涘缓浜�
+        measure_code: 'QCX20230720' // 璁¢噺缂栧彿
+      }],
+      measurePlanTable: [{
+        measure_number: 'QC568946512', // 璁¢噺鍗曞彿
+        equipment_code: '010101', // 璁惧缂栧彿
+        equipment_name: '鎷夊姏鏈�', // 璁惧鍚嶇О
+        scheduled_date: '2023-04-08 ~ 2023-08-08', // 璁″垝鏃ユ湡
+        measure_state: 1, // 璁¢噺鐘舵��
+        head: '榛勫皬鏄�', // 璁¢噺璐熻矗浜�
+        department: '鍦扮嚎妫�娴�', // 璁¢噺鍗曚綅
+        creater: '榛勫皬鏄�', // 鍒涘缓浜�
+        create_date: '2023-07-20', // 鍒涘缓鏃ユ湡
+      },{
+        measure_number: 'QC568946512', // 璁¢噺鍗曞彿
+        equipment_code: '010101', // 璁惧缂栧彿
+        equipment_name: '鎷夊姏鏈�', // 璁惧鍚嶇О
+        scheduled_date: '2023-04-08 ~ 2023-08-08', // 璁″垝鏃ユ湡
+        measure_state: 1, // 璁¢噺鐘舵��
+        head: '榛勫皬鏄�', // 璁¢噺璐熻矗浜�
+        department: '鍦扮嚎妫�娴�', // 璁¢噺鍗曚綅
+        creater: '榛勫皬鏄�', // 鍒涘缓浜�
+        create_date: '2023-07-20', // 鍒涘缓鏃ユ湡
+      },{
+        measure_number: 'QC568946512', // 璁¢噺鍗曞彿
+        equipment_code: '010101', // 璁惧缂栧彿
+        equipment_name: '鎷夊姏鏈�', // 璁惧鍚嶇О
+        scheduled_date: '2023-04-08 ~ 2023-08-08', // 璁″垝鏃ユ湡
+        measure_state: 0, // 璁¢噺鐘舵��
+        head: '榛勫皬鏄�', // 璁¢噺璐熻矗浜�
+        department: '鍦扮嚎妫�娴�', // 璁¢噺鍗曚綅
+        creater: '榛勫皬鏄�', // 鍒涘缓浜�
+        create_date: '2023-07-20', // 鍒涘缓鏃ユ湡
+      }],
       currentPage: 1,
       pageSize: 5,
       total: 0,
@@ -219,6 +285,7 @@
   },
   created() {
     this.getStandingPageList()
+    // this.getPlanPageList()
   },
   methods: {
     handleSizeChangePlan(){
diff --git a/src/views/laboratory/role/index.vue b/src/views/laboratory/role/index.vue
new file mode 100644
index 0000000..1c01efc
--- /dev/null
+++ b/src/views/laboratory/role/index.vue
@@ -0,0 +1,213 @@
+<template>
+  <div>
+      <div class="content-main">
+          <div class="top-bar">
+              <el-form ref="form" :inline="true" :model="searchData">
+              <el-form-item label="瑙掕壊鍚嶇О锛�" class="sermargin">
+                <el-input
+                  v-model="searchData.roleName"
+                  class="input-form"
+                  placeholder="璇疯緭鍏ヨ鑹插悕绉�"
+                  style="width:250px"
+                >
+                </el-input>
+              </el-form-item>
+              <el-form-item label="鏉冮檺锛�" class="sermargin">
+                <el-input
+                  v-model="searchData.permission"
+                  class="input-form"
+                  placeholder="璇疯緭鍏ユ潈闄�"
+                  style="width:250px"
+                >
+                </el-input>
+              </el-form-item>
+              <el-form-item class="rightBtn">
+                <el-button type="primary" @click="search">鏌ヨ</el-button>
+                <el-button type="primary" plain @click="reset">閲嶇疆</el-button>
+              </el-form-item>
+              </el-form>
+              <el-form>
+                <el-form-item class="rightBtn">
+                  <el-button type="primary" @click="addRole" icon="el-icon-plus">鏂板鏉冮檺</el-button>
+                </el-form-item>
+              </el-form>
+              </el-form>
+          </div>
+          <div class="library-table">
+            <div class="table-box">
+              <el-table
+                :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="roleTable"
+                style="width: 100%"
+              >
+                <el-table-column
+                  type="selection"
+                  min-width="8%"
+                />
+                <el-table-column
+                  prop="rolename"
+                  label="瑙掕壊鍚嶇О"
+                  min-width="20%"
+                />
+                <el-table-column
+                  prop="permission"
+                  label="鏉冮檺"
+                  min-width="20%"
+                />
+                <el-table-column
+                  prop="create_time"
+                  label="鍒涘缓鏃堕棿"
+                  min-width="20%"
+                />
+                <el-table-column
+                  prop="update_time"
+                  label="鏇存柊鏃堕棿"
+                  min-width="20%"
+                />
+                <el-table-column
+                  label="鎿嶄綔"
+                  min-width="12%"
+                >
+                  <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 class="pagination">
+                <el-pagination
+                  @size-change="handleSizeChange"
+                  @current-change="handleCurrentChange"
+                  :current-page="currentPage"
+                  :page-sizes="[5, 10, 20]"
+                  :page-size="pageSize"
+                  layout="total, sizes, prev, pager, next, jumper"
+                  :total="total">
+                </el-pagination>
+              </div>
+            </div>
+          </div>
+      </div>
+      <el-dialog title="淇敼瀵嗙爜" :visible.sync="dialogTableVisible" width="30%">
+        <el-form :model="updateData" ref="updateData" label-position="right" label-width="100px">
+          <el-form-item label="鍘熷瘑鐮侊細">
+            <el-input style="width: 300px" v-model="updateData.oldPassWord" placeholder="璇疯緭鍏ュ師瀵嗙爜" >
+            </el-input>
+          </el-form-item>
+          <el-form-item label="鏂板瘑鐮侊細">
+            <el-input style="width: 300px" v-model="updateData.newPassWord" placeholder="璇疯緭鍏ユ柊瀵嗙爜">
+            </el-input>
+          </el-form-item>
+          <el-form-item label="纭瀵嗙爜锛�">
+            <el-input style="width: 300px" v-model="updateData.confirmPassWord" placeholder="鍐嶆杈撳叆瀵嗙爜">
+            </el-input>
+          </el-form-item>
+        </el-form>
+        <span slot="footer" class="dialog-footer">
+          <el-button @click="dialogTableVisible = false">鍙� 娑�</el-button>
+          <el-button type="primary" @click="changePassword">纭� 瀹�</el-button>
+        </span>
+      </el-dialog>
+  </div>
+</template>
+
+<script>
+import { getPlanPageList, getStandingPageList } from '@/api/laboratory/measure'
+export default {
+  data() {
+    return {
+      searchData:{
+        roleName: '',
+        permission: ''
+      },
+      roleTable:[{
+        rolename: '閮ㄩ暱',
+        permission: 'ROOT',
+        create_time: '2023-07-04 12:12:12',
+        update_time: '2023-07-04 12:12:12'
+      },{
+        rolename: '缁勯暱',
+        permission: '--',
+        create_time: '2023-07-04 12:12:12',
+        update_time: '2023-07-04 12:12:12'
+      }],
+      updateData:{
+        oldPassWord: '',
+        newPassWord: '',
+        confirmPassWord: ''
+      },
+      dialogTableVisible: false,
+      currentPage: 1,
+      pageSize: 5,
+      total: 20
+    }
+  },
+  created(){
+    
+  },
+  methods: {
+    addRole(){
+      this.dialogTableVisible = true
+      // console.log(this.dialogTableVisible)
+    },
+    // search(){},
+    // reset(){},
+    // changePassword(){},
+
+    handleSizeChange(val) {
+      console.log(`褰撳墠姣忛〉${val}鏉℃暟鎹甡)
+      this.pageSize = val
+    },
+    handleCurrentChange(val) {
+      console.log(`褰撳墠鏄${val}椤礰)
+      this.currentPage = val
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+.top-bar{
+    margin: -25px -15px;
+    background: #fff;
+    display: flex;
+    justify-content: space-between;
+    padding: 5px 24px 0px 24px;
+    .sermargin{
+      margin-right: 60px;
+    }
+  }
+.rightBtn{
+    margin-right: 50px
+}
+.library-table{
+      background-color: #fff;
+      flex: 1;
+      margin: 0px -15px;
+      margin-top: 40px;
+      display: flex;
+      flex-direction: column;
+      .table-box{
+          padding: 10px 20px;
+          margin-top: 0px;
+          flex: 1;
+          background: #fff;
+          /* padding: 20px 20px 10px 20px; */
+          display: flex;
+          flex-direction: column;
+          .el-table {
+            flex: 1;
+          }
+      }
+      .pagination{
+        display:flex;
+        justify-content:end;
+        margin-top: 20px
+      }
+    }
+
+</style>

--
Gitblit v1.9.3