yuyu
2023-08-24 19075f614d3dadc04456b8fd053a7e85f8f28307
src/views/inspectionManagement/commissionInspection/index.vue
@@ -1,6 +1,6 @@
<template>
  <div>
    <div v-if="!showDetail">
    <div>
      <div class="content-main">
          <div class="top-bar">
              <el-form ref="form" :inline="true" :model="searchData">
@@ -31,22 +31,27 @@
                </el-select>
              </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>
              <el-form>
                <el-button class="rightBtn" type="primary" @click="goToaddCommision">新增委托</el-button>
              <el-form class="rightForm">
                  <!-- 显示新增委托的网址链接 -->
                <div v-show="showlinkDiv === true">
                  <span style="font-size: 12px;">{{ textToCopy }}</span>
                  <el-button type="text" @click="copyText" style="margin-left: 30px;">{{ copied ===false?'复制':'已复制' }}</el-button>
                </div>
                <el-button class="rightBtn" type="primary" @click="showLink">新增委托</el-button>
              </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>
                <el-radio-group v-model="radioValue" @change="radioclick">
                <el-radio-button v-for="item in conditionsOptions" :key="item.value" :label="item.value">
                {{ item.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>
@@ -62,60 +67,72 @@
                style="width: 100%"
              >
                <el-table-column
                  type="selection"
                  min-width="10%"
                />
                <el-table-column
                  type="index"
                  label="序号"
                  min-width="10%"
                />
                <el-table-column
                  prop="commisioncode"
                  prop="entrust_coding"
                  label="委托编号"
                  min-width="8%"
                />
                <el-table-column
                  prop="department"
                  label="委托单位"
                  min-width="10%"
                />
                <el-table-column
                  prop="samplecode"
                  prop="entrusted"
                  label="委托单位"
                  min-width="12%"
                />
                <el-table-column
                  prop="samples_number"
                  label="样品编号"
                  min-width="8%"
                />
                <el-table-column
                  prop="samplename"
                  prop="sample_name"
                  label="样品名称"
                  min-width="8%"
                />
                <el-table-column
                  prop="modelandspecification"
                  prop="specifications_models"
                  label="规格型号"
                  min-width="10%"
                  min-width="12%"
                />
                <el-table-column
                  prop="arrivetime"
                  prop="dateSurvey"
                  label="送达时间"
                  min-width="8%"
                />
                <el-table-column
                  prop="deadline"
                  prop="completionDeadline"
                  label="完成期限"
                  min-width="8%"
                />
                <el-table-column
                  prop="person"
                  prop="contacts"
                  label="委托编制人"
                  min-width="8%"
                />
                <el-table-column
                  prop="checkdate"
                  prop="inspectionTime"
                  label="检验日期"
                  min-width="8%"
                />
                <el-table-column
                  prop="state"
                  prop="inspection_status"
                  label="状态"
                  min-width="8%"
                />
                  min-width="8%">
                  <template slot-scope="scope">
                    <div v-if="scope.row.inspection_status === 1">
                      <span style="color: green;">已检测</span>
                    </div>
                    <div v-else>
                      <span style="color: red;">待检测</span>
                    </div>
                  </template>
                </el-table-column>
                <el-table-column
                  label="操作"
                  min-width="8%"
@@ -131,23 +148,21 @@
                  @size-change="handleSizeChange"
                  @current-change="handleCurrentChange"
                  :current-page="currentPage"
                  :page-sizes="[100, 200, 300, 400]"
                  :page-size="100"
                  :page-sizes="[5, 10, 20]"
                  :page-size="pageSize"
                  layout="total, sizes, prev, pager, next, jumper"
                  :total="400">
                  :total="total">
                </el-pagination>
              </div>
            </div>
          </div>
      </div>
  </div>
    <div v-else>
      <router-view />
    </div>
  </div>
</template>
<script>
import { getCommisionList } from '@/api/inspection/commisioninspection'
export default {
  data() {
    return {
@@ -160,73 +175,153 @@
      options: [{
        value: '1',
        label: '部门1'
      }, {
        value: '2',
        label: '部门2'
      }, {
        value: '3',
        label: '部门3'
      }],
      radioValue: '',
      radioValue: 0,
      commisionTable: [{
        commisioncode: 'GW31478631',
        department: '国网山东省电力有限公司',
        samplecode: 'BP214274',
        samplename: '绝缘杆',
        modelandspecification: 'JLHA/G1A-185/30-26/7',
        arrivetime: '2023-08-01',
        deadline: '2023-08-05',
        person: '黄小明',
        checkdate: '2023-08-02',
        state: '已检测'
      }, {
        commisioncode: 'GW31478631',
        department: '国网山东省电力有限公司',
        samplecode: 'BP214274',
        samplename: '绝缘杆',
        modelandspecification: 'JLHA/G1A-185/30-26/7',
        arrivetime: '2023-08-01',
        deadline: '2023-08-05',
        person: '黄小明',
        checkdate: '2023-08-02',
        state: '已检测'
      }, {
        commisioncode: 'GW31478631',
        department: '国网山东省电力有限公司',
        samplecode: 'BP214274',
        samplename: '绝缘杆',
        modelandspecification: 'JLHA/G1A-185/30-26/7',
        arrivetime: '2023-08-01',
        deadline: '2023-08-05',
        person: '黄小zhi',
        checkdate: '2023-08-02',
        state: '已检测'
        specifications_models: "GGXH-AAAAA",
        inspectionTime: "2023-08-03",
        id: 2,
        samples_number: 0,
        dateSurvey: "2023-08-03",
        entrusted: "阿里巴巴",
        completionDeadline: "2023-08-03",
        contacts: "小黑",
        entrust_coding: "SL20230803000003",
        sample_name: "发动机",
        inspection_status: 1
      }],
      currentPage: 0,
      showDetail: false
      conditionsOptions: [
        {
          label: '全部',
          value: 0
        },
        {
          label: '已检验',
          value: 1
        },
        {
          label: '待检验',
          value: 2
        }
      ],
      currentPage: 1,
      pageSize: 5,
      total: 100,
      showlinkDiv: false,
      copied: false,
      textToCopy: 'http://localhost:8080/#/addCommision'
    }
  },
  updated() {
    if (this.$router.currentRoute.name === 'AddCommision') {
      // console.log(this.$router.currentRoute.name)
      this.showDetail = true
    }
  created() {
    this.getCommisionList()
  },
  // updated() {
  //   if (this.$router.currentRoute.name === 'AddCommision') {
  //     // console.log(this.$router.currentRoute.name)
  //     this.showDetail = true
  //   }
  // },
  methods: {
    copyText() {
      this.$copyText(this.textToCopy)
        .then(() => {
          this.copied = true;
          // setTimeout(() => {
          //   this.copied = false;
          // }, 2000);
        })
        .catch(error => {
          console.log('复制失败',error);
        });
    },
    async getCommisionList(){
      const res = await getCommisionList({pageNo:this.currentPage, pageSize:this.pageSize})
      this.commisionTable = res.data.row
      this.total = res.data.total
      // console.log(res)
       // 获取所有的委托单位名称
      const allDepartmentNames = [...new Set(this.commisionTable.map(item => item.entrusted))]
      // 将allDepartmentNames转换为options需要的格式
      this.options = allDepartmentNames.map(name => ({ value: name, label: name }))
    },
    // 查询方法
    async search() {
    // 将搜索条件作为参数传递给getCommisionList方法
    let res
    if(this.radioValue === 0){
      res = await getCommisionList({
        pageNo: this.currentPage,
        pageSize: this.pageSize,
        entrustCoding: this.searchData.code,
        sampleName: this.searchData.name,
        entrusted: this.searchData.department,
      })
    }else{
      res = await getCommisionList({
        pageNo: this.currentPage,
        pageSize: this.pageSize,
        entrustCoding: this.searchData.code,
        sampleName: this.searchData.name,
        entrusted: this.searchData.department,
        inspectionStatus: this.radioValue
      })
    }
      // console.log(res)
      this.commisionTable = res.data.row
      this.total = res.data.total
    },
    // 重置方法
    reset() {
      // 重置搜索条件
      this.searchData.code = ''
      this.searchData.name = ''
      this.searchData.department = ''
      this.radioValue = 0
      // 重新获取数据
      this.getCommisionList()
    },
    async radioclick(){
      // 处理点击radio的时间
      console.log('radioValue',this.radioValue)
      if(this.radioValue === 0){
        this.getCommisionList()
      }else{
        const res = await getCommisionList({pageNo:this.currentPage, pageSize:this.pageSize, inspectionStatus: this.radioValue})
        // console.log(res)
        this.commisionTable = res.data.row
        this.total = res.data.total
      }
    },
    // 每页条数改变时触发 选择一页显示多少行
    handleSizeChange(val) {
      console.log(`每页 ${val} 条`)
    async handleSizeChange(val) {
      // console.log(`每页 ${val} 条`)
      this.currentPage = 1
      this.pageSize = val
      if(this.radioValue === 0){
        this.getCommisionList()
      }else{
        const res = await getCommisionList({pageNo:this.currentPage, pageSize:this.pageSize, inspectionStatus: this.radioValue})
        this.commisionTable = res.data.row
        this.total = res.data.total
      }
    },
    // 当前页改变时触发 跳转其他页
    handleCurrentChange(val) {
      console.log(`当前页: ${val}`)
    async handleCurrentChange(val) {
      // console.log(`当前页: ${val}`)
      this.currentPage = val
      if(this.radioValue === 0){
        this.getCommisionList()
      }else{
        const res = await getCommisionList({pageNo:this.currentPage, pageSize:this.pageSize, inspectionStatus: this.radioValue})
        this.commisionTable = res.data.row
        this.total = res.data.total
      }
    },
    goToaddCommision() {
      this.$router.push('/inspectionManagement/commissionInspection/addCommision')
      this.showDetail = true
    showLink() {
      this.showlinkDiv = true
    }
  }
}
@@ -243,10 +338,26 @@
    .sermargin{
      margin-right: 60px;
    }
    .rightForm{
      display: flex;
      justify-content: space-between;
      /* background-color: #bfa; */
      height: 40px;
      line-height: 40px;
      >div{
        padding: 0px 10px;
        padding-bottom: 10px;
        border:1px solid rgb(8, 156, 230);
        margin-right: 10px;
        /* height: 40px;
        line-height: 40px; */
      }
      .rightBtn{
        background-color: rgb(1, 102, 226);
      }
    }
  }
.rightBtn{
    background-color: rgb(1, 102, 226);
}
.library-table{
      background-color: #fff;
      flex: 1;