licp
2024-03-22 3848bf666f63878b90411e3e33df9fabfb94a0a2
src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -1,10 +1,10 @@
<style scoped>
   .ins-order-plan-main .title {
   .title {
      height: 60px;
      line-height: 60px;
   }
   .ins-order-plan-main .search {
   .search {
      width: 100%;
      margin-bottom: 10px;
      height: 140px;
@@ -18,7 +18,7 @@
      padding-left: 50px;
   }
   .ins-order-plan-main .center {
   .center {
      width: calc(100% - 40px);
      height: calc(100% - 60px - 80px - 40px);
      background-color: #fff;
@@ -27,7 +27,7 @@
   }
</style>
<style>
   .ins-order-plan-main .el-form-item__label{
   .el-form-item__label{
      color: #000;
   }
  .el-drawer__header::before {
@@ -45,9 +45,9 @@
  }
</style>
<template>
   <div class="ins-order-plan-main">
   <div>
      <el-row class="title">
               <el-col :span="12" style="padding-left: 20px;">样品详情</el-col>
               <el-col :span="12" style="padding-left: 20px;">检验单详情</el-col>
               <el-col :span="12" style="text-align: right;">
                  <el-button size="small" type="primary" @click="sampleVisible=true">样品切换</el-button>
            <el-button size="small" type="primary" @click="taskVisible=true">任务切换</el-button>
@@ -55,7 +55,7 @@
               </el-col>
            </el-row>
      <div class="search">
         <el-form :inline="true" :model="searchForm" class="form-inline">
         <el-form :inline="true" :model="searchForm" class="form-inline" label-width="90px">
            <el-form-item label="委托编号:">
               <el-input clearable v-model="searchForm.sampleName" disabled size="small" placeholder="请输入"></el-input>
            </el-form-item>
@@ -94,42 +94,35 @@
            </el-table-column>
            <el-table-column prop="inspectionItemSubclass" label="样品编号" min-width="100"
               show-overflow-tooltip></el-table-column>
        <el-table-column prop="method" label="样品型号" min-min-width="100" show-overflow-tooltip></el-table-column>
            <el-table-column prop="sonLaboratory" label="检测状态" min-width="100" show-overflow-tooltip></el-table-column>
            <el-table-column prop="method" label="检测人" min-min-width="100" show-overflow-tooltip></el-table-column>
            <el-table-column prop="unit" label="是否留样" min-width="100" show-overflow-tooltip></el-table-column>
        <!-- 检验单会有一个是否有配套样品字段控制显示 -->
        <el-table-column prop="unit" label="配套样品型号" min-width="100" show-overflow-tooltip></el-table-column>
        <el-table-column prop="unit" label="配套样品名称" min-width="100" show-overflow-tooltip></el-table-column>
        <el-table-column prop="unit" label="配套样品数量" min-width="100" show-overflow-tooltip></el-table-column>
         </el-table>
    </el-drawer>
    <el-drawer
      title="任务切换"
      :visible.sync="taskVisible"
      :destroy-on-close="true"
      size="55%">
      <el-table class="el-table" ref="productTable" :data="productList" height="100%" tooltip-effect="dark" border highlight-current-row @row-click="handleChangeTask">
            <el-table-column prop="inspectionItemSubclass" label="委托编号" min-width="100"
               show-overflow-tooltip></el-table-column>
            <el-table-column prop="sonLaboratory" label="样品编号" min-width="100" show-overflow-tooltip></el-table-column>
            <el-table-column prop="method" label="样品名称" min-min-width="100" show-overflow-tooltip></el-table-column>
            <el-table-column prop="unit" label="紧急程度" min-width="100" show-overflow-tooltip>
          <template slot-scope="scope">
            <el-tag
              :type="scope.row.type" size="medium">{{scope.row.label}}</el-tag>
               </template>
        </el-table-column>
        <el-table-column prop="unit" label="状态" min-width="100" show-overflow-tooltip>
          <template slot-scope="scope">
            <el-tag
              :type="scope.row.type" size="medium">{{scope.row.label}}</el-tag>
               </template>
        </el-table-column>
        <el-table-column prop="method" label="约定时间" min-min-width="100" show-overflow-tooltip></el-table-column>
        <el-table-column prop="method" label="下发时间" min-min-width="100" show-overflow-tooltip></el-table-column>
         </el-table>
      size="55%"
      :append-to-body="true">
      <ValueTable class="value-table" ref="insOrderPlan"
               :url="$api.insOrderPlan.selectInsOrderPlanList" :componentData="componentData"
               :key="upIndex" v-if="taskVisible"/>
    </el-drawer>
   </div>
</template>
<script>
  import ValueTable from '../../tool/value-table.vue'
   export default {
      props: ['sonLaboratory'],
    components: {
         ValueTable,
      },
      data() {
         return {
        sampleVisible:false,
@@ -138,10 +131,42 @@
               sampleName: null,
               state: null
            },
        productList:[]
        productList:[],
            id: 0,
        componentData: {
               entity: {
                  sonLaboratory: null,
                  userId: 0
               },
               isIndex: true,
               showSelect: true,
               select: false,
          selectMethod:'handleChangeTask',
               sort: false,
               do: [],
          isPage:false,
               linkEvent: {},
               tagField: {
            type: {
                     select: []
                  },
                  insState: {
                     select: []
                  },
          },
               selectField: {},
               requiredAdd: [],
               requiredUp: []
            },
        upIndex: 0,
         }
      },
      created() {
      this.componentData.entity.sonLaboratory = this.sonLaboratory;
      },
      mounted() {
      this.getTypeDicts()
      this.getInsStateDicts()
      },
      methods: {
      handleChangeSample(row){
@@ -151,7 +176,42 @@
      handleChangeTask(row){
        console.log(222222222,row)
        this.taskVisible = false;
      }
      },
      getTypeDicts() {
            this.$axios.post(this.$api.enums.selectEnumByCategory, {
               category: "紧急程度"
            }).then(res => {
               let data = res.data
               data.forEach(ele => {
                  if (ele.value === '0') {
                     ele.type = 'success'
                  } else if (ele.value === '1') {
                     ele.type = 'warning'
                  } else if (ele.value === '2') {
                     ele.type = 'danger'
                  }
               })
               this.componentData.tagField.type.select = data
            })
         },
         getInsStateDicts() {
            this.$axios.post(this.$api.enums.selectEnumByCategory, {
               category: "检验任务状态"
            }).then(res => {
               let data = res.data
               data.forEach(ele => {
                  //0:待检验 1:检验中 2:已检验 3:待复核 4:复核未通过 5:复核通过
                  if (['2', '5'].includes(ele.value)) {
                     ele.type = 'success'
                  } else if (['1', '3'].includes(ele.value)) {
                     ele.type = 'warning'
                  } else if (['0', '4'].includes(ele.value)) {
                     ele.type = 'danger'
                  }
               })
               this.componentData.tagField.insState.select = data
            })
         },
      }
   }
</script>