From 2260184afb85c80eabce02da190f9f07ee660ab3 Mon Sep 17 00:00:00 2001
From: yuyu <1981343953@qq.com>
Date: 星期二, 08 八月 2023 14:35:57 +0800
Subject: [PATCH] 委托检验、原材料报检和检验申请页面

---
 src/views/experiment/inspectionApplication/index.vue |  527 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 525 insertions(+), 2 deletions(-)

diff --git a/src/views/experiment/inspectionApplication/index.vue b/src/views/experiment/inspectionApplication/index.vue
index e3a2d0e..7303bda 100644
--- a/src/views/experiment/inspectionApplication/index.vue
+++ b/src/views/experiment/inspectionApplication/index.vue
@@ -1,5 +1,528 @@
 <template>
     <div>
-        妫�楠岀敵璇�
+      <template v-if="!showDetail">
+        <div class="content-main">
+          <div class="top-bar">
+            <el-form ref="form" :inline="true" :model="searchData">
+              <el-form-item>
+                <el-input
+                  v-model="searchData.keyword"
+                  class="input-form"
+                  placeholder="璇疯緭鍏ョ敵璇峰崟鍙�/妫�楠屽璞�/瀵硅薄浣嶇疆/瀵硅薄鍚嶇О"
+                >
+                  <i slot="prefix" class="el-input__icon el-icon-search" />
+                </el-input>
+              </el-form-item>
+              <el-form-item>
+                <el-button type="primary">鏌ヨ</el-button>
+                <el-button type="primary" plain>閲嶇疆</el-button>
+              </el-form-item>
+            </el-form>
+            <el-form class="rightBtn">
+              <el-form-item class="createBtn">
+                <el-button type="primary" icon="el-icon-document-add" @click="checkTypeVisible = true" style="background-color: rgb(1, 102, 226);">鏂板妫�楠屽崟</el-button>
+              </el-form-item>
+              <el-form-item class="getDataBtn">
+                <el-button type="primary" icon="el-icon-download" style="background-color: rgb(1, 102, 226);">瀵煎嚭妫�楠屽崟</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-button label="宸蹭綔搴�" />
+                </el-radio-group>
+              </div>
+            </div>
+            <div class="table-box">
+              <el-table
+                ref="inspectionTable"
+                :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="inspectionTable"
+                style="width: 100%"
+              >
+                <el-table-column
+                  type="selection"
+                  min-width="30px"
+                />
+                <el-table-column
+                  prop="applicationnum"
+                  label="鐢宠鍗曞彿"
+                  min-width="100px"
+                />
+                <el-table-column
+                  prop="checktype"
+                  label="妫�楠岀被鍨�"
+                  min-width="80px"
+                />
+                <el-table-column
+                  prop="checkstate"
+                  label="妫�楠岀姸鎬�"
+                  min-width="70px">
+                  <template slot-scope="scope">
+                    <div v-if="scope.row.checkstate === '1'">
+                        <span style="color: green;">宸叉娴�</span>
+                    </div>
+                    <div v-else>
+                        <span style="color: red;">鏈娴�</span>
+                    </div>
+                    
+                  </template>
+                </el-table-column>
+                <el-table-column
+                  prop="deliverydate"
+                  label="鏉ユ枡鏃ユ湡"
+                  min-width="100px"
+                />
+                <el-table-column
+                  prop="provider"
+                  label="渚涘簲鍟嗗悕绉�"
+                  min-width="150px"
+                />
+                <el-table-column
+                  prop="rawcode"
+                  label="鍘熸潗鏂欑紪鐮�"
+                  min-width="120px"
+                />
+                <el-table-column
+                  prop="rawname"
+                  label="鍘熸潗鏂欏悕绉�"
+                  min-width="80px"
+                />
+                <el-table-column
+                  prop="modelandspecification"
+                  label="瑙勬牸鍨嬪彿"
+                  min-width="160px"
+                />
+                <el-table-column
+                  prop="unit"
+                  label="鍗曚綅"
+                  min-width="50px"
+                />
+                <el-table-column
+                  prop="amount"
+                  label="鏁伴噺"
+                  min-width="50px"
+                />
+                <el-table-column
+                  prop="registrationdate"
+                  label="鐧昏鏃ユ湡"
+                  min-width="80px"
+                />
+                <el-table-column
+                  prop="registrator"
+                  label="鐧昏浜�"
+                  min-width="80px"
+                />
+                <el-table-column
+                  prop="qualified"
+                  label="妫�楠岀姸鎬�"
+                  min-width="80px">
+                  <template slot-scope="scope">
+                    <div v-if="scope.row.qualified === null">
+                        <span></span>
+                    </div>
+                    <div v-else>
+                    <el-tag :type="scope.row.qualified === '0' ? 'success' : 'danger'"
+                    disable-transitions
+                  >{{ scope.row.qualified === '0' ? '鍚堟牸' : '涓嶅悎鏍�' }}</el-tag>
+                    </div>
+                  </template>
+                </el-table-column>
+                <el-table-column
+                  prop="applier"
+                  label="鐢宠浜�"
+                  min-width="80px"
+                />
+                <el-table-column
+                  prop="checker"
+                  label="妫�楠屼汉"
+                  min-width="80px"
+                />
+                <el-table-column
+                  prop="checktime"
+                  label="妫�楠屾棩鏈�"
+                  min-width="80px"
+                />
+                <el-table-column
+                  label="鎿嶄綔"
+                  min-width="150"
+                  fixed="right"
+                >
+                  <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" >浣滃簾</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+              <!-- 鍒嗛〉鍣� -->
+              <div>
+                <el-pagination
+                  class="pagination"
+                  :current-page="currentPage"
+                  :page-sizes="[100, 200, 300, 400]"
+                  :page-size="pageSize"
+                  layout="total, sizes, prev, pager, next, jumper"
+                  :total="total"
+                  @size-change="handleSizeChange"
+                  @current-change="handleCurrentChange"
+                />
+              </div>
+            </div>
+          </div>
+          <div class="checkType">
+            <el-dialog
+              title="鏂板妫�楠屽崟"
+              :visible.sync="checkTypeVisible"
+              width="50%"
+            >
+              <div class="check-box">
+                <el-radio-group v-model="type">
+                  <el-radio :label="0" border>鍘熸潗鏂欐楠�</el-radio>
+                  <el-radio :label="1" border>鍗婃垚鍝佹楠�</el-radio>
+                  <el-radio :label="2" border>鎴愬搧妫�楠�</el-radio>
+                </el-radio-group>
+              </div>
+              <el-form :model="infoForm" ref="infoForm" class="infoForm" 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="infoForm.deliverydate" placeholder="璇疯緭鍏ユ潵鏂欐棩鏈�" autocomplete="off" />  
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="10">
+                        <el-form-item label="渚涘簲鍟嗗悕绉帮細">
+                            <el-input style="width: 300px" type="text" :value="infoForm.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="infoForm.code" placeholder="璇疯緭鍏ュ師鏉愭枡缂栫爜" autocomplete="off" />  
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="10">
+                        <el-form-item label="鍘熸潗鏂欏悕绉帮細">
+                            <el-input style="width: 300px" type="text" :value="infoForm.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="infoForm.modelandspecification" placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�" autocomplete="off" />  
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="10">
+                        <el-form-item label="鍗曚綅锛�">
+                            <el-input style="width: 300px" type="text" :value="infoForm.unit" 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="infoForm.amount" placeholder="璇疯緭鍏ユ暟閲�" autocomplete="off" />  
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="10">
+                        <el-form-item label="妫�楠屾椂闂达細">
+                            <el-date-picker
+                                v-model="infoForm.checkdate"
+                                type="daterange"
+                                range-separator="鑷�"
+                                start-placeholder="寮�濮嬫棩鏈�"
+                                end-placeholder="缁撴潫鏃ユ湡"
+                                style="width: 300px;">
+                            </el-date-picker>
+                        </el-form-item>
+                    </el-col>
+                    </el-row>
+              </el-form>
+              <span slot="footer" class="dialog-footer">
+                <el-button @click="checkTypeVisible = false">鍙� 娑�</el-button>
+                <el-button type="primary" @click="goToForInspectionDetail">纭� 瀹�</el-button>
+              </span>
+            </el-dialog>
+          </div>
+        </div>
+      </template>
+      <template v-else>
+        <router-view />
+      </template>
     </div>
-</template>
+  </template>
+  
+  <script>
+  import { getInspectionList } from '@/api/rawMaterials/reportForInspection'
+  export default {
+    data() {
+      return {
+        showDetail: false,
+        searchData: {
+          keyword: ''
+        },
+        inspectionTable: [{
+            applicationnum: 'QC22-09155',
+            checktype: '鍘熸潗鏂欐楠�',
+            checkstate: '1',
+            deliverydate: '2023-07-31',
+            provider: '鍥界綉灞变笢鐪佺數鍔涙湁闄愬叕鍙�',
+            rawcode: '1010010090124',
+            rawname: '閾濆寘閽㈢粸绾�',
+            modelandspecification: 'JLHA1/G1A-185/30-27/7',
+            unit: 'ml/kg',
+            amount: '1999',
+            registrationdate: '2022-09-23',
+            registrator: '鏉庡皬榫�',
+            qualified: '0',
+            applier: '鏉庡皬榫�',
+            checker: '鏉庡皬榫�',
+            checktime: '2023-12-09'
+        },{
+            applicationnum: 'QC22-09155',
+            checktype: '鍘熸潗鏂欐楠�',
+            checkstate: '1',
+            deliverydate: '2023-07-31',
+            provider: '鍥界綉灞变笢鐪佺數鍔涙湁闄愬叕鍙�',
+            rawcode: '1010010090124',
+            rawname: '閾濆寘閽㈢粸绾�',
+            modelandspecification: 'JLHA1/G1A-185/30-27/7',
+            unit: 'ml/kg',
+            amount: '1999',
+            registrationdate: '2022-09-23',
+            registrator: '鏉庡皬榫�',
+            qualified: '0',
+            applier: '鏉庡皬榫�',
+            checker: '鏉庡皬榫�',
+            checktime: '2023-12-09'
+        },{
+            applicationnum: 'QC22-09155',
+            checktype: '鍘熸潗鏂欐楠�',
+            checkstate: '0',
+            deliverydate: '2023-07-31',
+            provider: '鍥界綉灞变笢鐪佺數鍔涙湁闄愬叕鍙�',
+            rawcode: '1010010090124',
+            rawname: '閾濆寘閽㈢粸绾�',
+            modelandspecification: 'JLHA1/G1A-185/30-27/7',
+            unit: 'ml/kg',
+            amount: '1999',
+            registrationdate: '2022-09-23',
+            registrator: '鏉庡皬榫�',
+            qualified: null,
+            applier: '鏉庡皬榫�',
+            checker: '鏉庡皬榫�',
+            checktime: '2023-12-09'
+        },{
+            applicationnum: 'QC22-09155',
+            checktype: '鍘熸潗鏂欐楠�',
+            checkstate: '1',
+            deliverydate: '2023-07-31',
+            provider: '鍥界綉灞变笢鐪佺數鍔涙湁闄愬叕鍙�',
+            rawcode: '1010010090124',
+            rawname: '閾濆寘閽㈢粸绾�',
+            modelandspecification: 'JLHA1/G1A-185/30-27/7',
+            unit: 'ml/kg',
+            amount: '1999',
+            registrationdate: '2022-09-23',
+            registrator: '鏉庡皬榫�',
+            qualified: '1',
+            applier: '鏉庡皬榫�',
+            checker: '鏉庡皬榫�',
+            checktime: '2023-12-09'
+        }],
+        infoForm:{
+          deliverydate: '',
+          provider: '',
+          code: '',
+          name: '',
+          modelandspecification: '',
+          unit: '',
+          amount: '',
+          checkdate: ''
+        },
+        currentPage: 1,
+        total: 20, // 鎬绘潯鏁�
+        pageSize: 10, // 姣忛〉鐨勬暟鎹潯鏁�
+        radioValue: '鍏ㄩ儴',
+        checkTypeVisible: false,
+        type: 0
+      }
+    },
+    watch: {
+      $route: {
+        handler(val, oldval) {
+          console.log(val)// 鏂拌矾鐢变俊鎭�
+          console.log(oldval)// 鑰佽矾鐢变俊鎭�
+        },
+        // 娣卞害瑙傚療鐩戝惉
+        deep: true
+      }
+    },
+    // beforeRouteEnter(to, from, next) {
+    //   console.log(to, from)
+    //   next()
+    //   // 鍦ㄦ覆鏌撹缁勪欢鐨勫搴旇矾鐢辫 confirm 鍓嶈皟鐢�
+    //   // 涓嶏紒鑳斤紒鑾峰彇缁勪欢瀹炰緥 `this`
+    //   // 鍥犱负褰撻挬瀛愭墽琛屽墠锛岀粍浠跺疄渚嬭繕娌¤鍒涘缓
+    // },
+    // beforeRouteUpdate(to, from, next) {
+    //   console.log(to, from)
+    //   if (to.name === 'ForInspectionDetail') this.showDetail = true
+    //   this.$nextTick(() => {
+    //     console.log(1)
+    //     this.showDetail = true
+    //   })
+    //   next()
+    //   // 鍦ㄥ綋鍓嶈矾鐢辨敼鍙橈紝浣嗘槸璇ョ粍浠惰澶嶇敤鏃惰皟鐢�
+    //   // 涓句緥鏉ヨ锛屽浜庝竴涓甫鏈夊姩鎬佸弬鏁扮殑璺緞 /foo/:id锛屽湪 /foo/1 鍜� /foo/2 涔嬮棿璺宠浆鐨勬椂鍊欙紝
+    //   // 鐢变簬浼氭覆鏌撳悓鏍风殑 Foo 缁勪欢锛屽洜姝ょ粍浠跺疄渚嬩細琚鐢ㄣ�傝�岃繖涓挬瀛愬氨浼氬湪杩欎釜鎯呭喌涓嬭璋冪敤銆�
+    //   // 鍙互璁块棶缁勪欢瀹炰緥 `this`
+    // },
+    created() {
+      this.getInspectionTableData()
+    },
+    updated() {
+      if (this.$route.name === 'ForInspectionDetail') this.showDetail = true
+    },
+    methods: {
+      async getInspectionTableData() {
+        const res = await getInspectionList({ pageSize: this.currentPage, countSize: this.pageSize })
+        // this.inspectionTable = data
+        console.log(res)
+      },
+      goToForInspectionDetail() {
+        this.$router.push('/rawMaterials/reportForInspection/forInspectionDetail')
+      },
+      handleClick(row) {
+        console.log(row)
+      },
+      // 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣
+      handleSizeChange(val) {
+        console.log(`姣忛〉 ${val} 鏉)
+        this.currentPage = 1
+        this.pageSize = val
+      },
+      // 褰撳墠椤垫敼鍙樻椂瑙﹀彂 璺宠浆鍏朵粬椤�
+      handleCurrentChange(val) {
+        console.log(`褰撳墠椤�: ${val}`)
+        this.currentPage = val
+      }
+    }
+  }
+  </script>
+  
+  <style lang="scss" scoped>
+  .checkType{
+    .check-box{
+      .el-radio-group{
+        display: flex;
+        justify-content: space-around;
+        .el-radio{
+          // display: flex;
+          // align-items: center;
+          &.is-checked{
+            background: #ecf5ff;
+            border-color: #b3d8ff;
+           ::v-deep  .el-radio__label{
+              color: #333 !important;
+  
+            }
+          }
+          height: auto;
+          font-size: 22px !important;
+          padding: 20px 40px !important;
+          ::v-deep  .el-radio__label{
+            font-size: 22px !important;
+            padding-left: 0px !important;
+          }
+          ::v-deep  .el-radio__input{
+          display: none !important;
+        }
+      }
+   }
+    }
+  }
+   .content-main{
+      width: 100%;
+      height: 100%;
+      display: flex;
+      flex-direction: column;
+    }
+    .top-bar{
+      margin: -25px -15px;
+      background: #fff;
+      display: flex;
+      justify-content: space-between;
+      padding: 5px 24px 0px 24px;
+    }
+    .input-form{
+      width: 500px;
+    }
+    .retrieval{
+    float: right;
+    font-size: 14px;
+    color: rgb(0, 120, 255);
+    line-height: 40px;
+   }
+   .rightBtn {
+    display: flex;
+    justify-content: flex-end;
+  }
+  
+  .getDataBtn, .createBtn {
+    margin-left: 10px; /* Optional: Add some space between the buttons */
+  }
+  .library-table{
+        background-color: #fff;
+        flex: 1;
+        max-width: 100%;
+        margin-left: -15px;
+        margin-right: -15px;
+        margin-top: 50px;
+        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;
+            // padding: 20px 20px 10px 20px;
+            display: flex;
+            flex-direction: column;
+            .el-table {
+              flex: 1;
+            }
+            >div:nth-child(2){
+              display: flex;
+              justify-content: end;
+              margin: 20px 0;
+              margin-top: 30px;
+            }
+        }
+      }
+.infoForm{
+    margin-top: 30px;
+    margin-left: 50px;
+    .el-row{
+        margin-bottom: 10px;
+    }
+}
+  </style>
+  
\ No newline at end of file

--
Gitblit v1.9.3