licp
2024-03-22 0b89c49a1e3ab87368b689d985e28a977a9bb84e
src/components/view/b1-inspect-order-plan.vue
@@ -4,6 +4,29 @@
      color: #3A7BFA
   }
   .search {
      background-color: #fff;
      height: 80px;
      display: flex;
      align-items: center;
   }
   .search_thing {
      display: flex;
      align-items: center;
      height: 50px;
   }
   .search_label {
      width: 120px;
      font-size: 14px;
      text-align: right;
   }
   .search_input {
      width: calc(100% - 120px);
   }
   .ins-order-plan-main .search {
      width: 100%;
      margin-bottom: 10px;
@@ -60,9 +83,9 @@
   .center .center-options .center-title {
      width: 100%;
      text-align: right;
      display: flex;
      align-items: center;
      justify-content: right;
   }
   .center .center-options .center-title span:last-child {
@@ -82,52 +105,55 @@
</style>
<template>
   <div class="ins-order-plan-main">
      <p style="font-size: 16px;padding:19.5px 0px" v-show="state==0">检验任务</p>
      <div class="search" v-show="state==0">
         <el-form :inline="true" :model="searchForm" class="form-inline">
            <el-form-item label="样品名称:">
               <el-input clearable v-model="searchForm.sampleName" size="small" placeholder="请输入"></el-input>
            </el-form-item>
            <el-form-item label="状态:">
               <el-select clearable size="small" v-model="searchForm.state" placeholder="请选择">
                  <el-option v-for="(item,index) in insStateList" :key="index" :label="item.label"
                     :value="item.value"></el-option>
               </el-select>
            </el-form-item>
            <el-form-item>
               <el-button size="small" @click="onReset">重置</el-button>
               <el-button size="small" type="primary" @click="onSubmit">查询</el-button>
            </el-form-item>
         </el-form>
      </div>
      <div class="center" v-show="state==0">
         <div class="center-options">
            <el-row>
               <el-col :span="21">
                  <div style="display: flex;align-items: center;margin-bottom: 10px;">
                     <ul class="tab">
                        <li v-for="(m,i) in tabList" :key="i" :class="{active:i==tabIndex}" @click="handleTab(m,i)">{{m.label}}
                        </li>
                     </ul>
                     <div>
                        <el-checkbox @change="changeCheckBox" class="view-self-checkbox"
                           v-model="viewSelf"><span>我的任务</span></el-checkbox>
                     </div>
                  </div>
               </el-col>
               <el-col :span="3">
                  <div class="center-title">
                     <span>总计任务数量:</span>
                     <span v-if="$refs.insOrderPlan != undefined">{{$refs.insOrderPlan.total}}</span>
                  </div>
               </el-col>
            </el-row>
      <div v-show="activeFace == 0&&state==0" style="height: 100%;">
         <p style="font-size: 16px;padding:19.5px 0px">检验任务</p>
         <div class="search">
            <div class="search_thing">
               <div class="search_label">委托编号:</div>
               <div class="search_input"><el-input size="small" placeholder="请输入" clearable
                     v-model="componentData.entity.entrustCode" @keyup.enter.native="refreshTable()"></el-input></div>
            </div>
            <div class="search_thing">
               <div class="search_label">检验状态:</div>
               <div class="search_input">
                  <el-select size="small" v-model="componentData.entity.insState" style="width: 100%;" @change="refreshTable()">
                     <el-option v-for="(a, i) in insStateList" :key="i" :label="a.label" :value="a.value"></el-option>
                  </el-select>
               </div>
            </div>
            <div class="search_thing" style="padding-left: 30px;">
               <el-button size="small" @click="refresh()">重 置</el-button>
               <el-button size="small" type="primary" @click="refreshTable()">查 询</el-button>
            </div>
         </div>
         <ValueTable :tableRowClassName="changeRowClass" class="value-table" ref="insOrderPlan"
            :url="$api.insOrderPlan.selectInsOrderPlanList" :upUrl="$api.user.updateUser" :componentData="componentData"
            :key="upIndex" @upUser="upUser" />
         <div class="center">
            <div class="center-options">
               <el-row>
                  <el-col :span="21">
                     <div style="display: flex;align-items: center;margin-bottom: 10px;">
                        <ul class="tab">
                           <li v-for="(m,i) in tabList" :key="i" :class="{active:i==tabIndex}" @click="handleTab(m,i)">{{m.label}}
                           </li>
                        </ul>
                        <div>
                           <el-checkbox @change="changeCheckBox" class="view-self-checkbox"
                              v-model="alone"><span>我的任务</span></el-checkbox>
                        </div>
                     </div>
                  </el-col>
                  <el-col :span="3">
                     <div class="center-title">
                        <span>总计任务数量:</span>
                        <span v-if="$refs.insOrderPlan != undefined">{{$refs.insOrderPlan.total}}</span>
                     </div>
                  </el-col>
               </el-row>
            </div>
            <ValueTable :tableRowClassName="changeRowClass" class="value-table" ref="insOrderPlan"
               :url="$api.insOrderPlan.selectInsOrderPlanList" :upUrl="$api.user.updateUser" :componentData="componentData" @handleInspection="handleInspection"
               :key="upIndex"/>
         </div>
      </div>
    <Inspection v-if="state==1" @goback="state=0"/>
      <el-dialog title="提示" :visible.sync="claimVisible" width="400px">
         是否认领委托编号<span style="color:#33C130">{{sampleUserForm.entrustCode}}</span>的任务
         <span slot="footer" class="dialog-footer">
@@ -135,6 +161,10 @@
            <el-button type="primary" @click="confirmClaim">确 定</el-button>
         </span>
      </el-dialog>
      <div style="width: 100%;height: 100%;" v-if="activeFace >0">
         <Add :active="activeFace" :currentId="currentId"/>
      </div>
    <Inspection v-if="state==1" @goback="state=0"/>
   </div>
</template>
@@ -144,38 +174,31 @@
   import {
      getYearAndMonthAndDays
   } from '../../util/date'
   import Add from '../do/b1-ins-order/add.vue'
import { number } from 'echarts'
   export default {
      components: {
         ValueTable,
      Inspection
      Inspection,
         Add
      },
      data() {
         return {
            viewSelf: false,
            alone: false,
            sampleUserForm: {
               entrustCode: null,
               insSampleId: null,
               userId: null
            },
            claimVisible: false,
            searchForm: {
               sampleName: null,
               state: null
            },
            tabList: [],
            active: 1,
            tabIndex: 0,
            componentData: {
               entity: {
                  viewSelf: false,
                  state: 1,
                  sonLaboratory: null,
                  insState: null,
                  sampleName: null,
                  orderBy: {
                     field: 'type',
                     order: 'desc'
                  }
                  userId: null
               },
               isIndex: true,
               showSelect: false,
@@ -185,8 +208,7 @@
                     id: '',
                     font: '检验',
                     type: 'text',
                     method: '',
                     field: []
                     method: 'handleInspection'
                  }, {
                     id: '',
                     font: '交接',
@@ -204,10 +226,15 @@
                     type: 'text',
                     method: 'claimFun',
                     disabFun: (row, index) => {
                        return row.sampleUserId != null
                        return row.userId != null
                     }
                  }
               ],
               linkEvent: {
                  entrustCode: {
                     method: 'selectAllByOne'
                  }
               },
               tagField: {
                  type: {
                     select: []
@@ -223,29 +250,22 @@
            upIndex: 0,
            planTotal: 0,
            insStateList: [],
        state:0//0:台账页,1:检验页面,默认为0
        state:0,//0:台账页,1:检验页面,默认为0
            activeFace: 0, //1:下单,2:查看,3:审核
            currentId: null,
         }
      },
      created() {
         this.getLaboratoryDicts()
         this.getTypeDicts()
         this.getInsStateDicts()
         this.getLaboratoryDicts()
         this.$nextTick(() => {
            this.refreshTable()
         })
      },
      methods: {
         upUser() {
         },
         changeCheckBox(val) {
            this.componentData.entity.viewSelf = val
            this.$nextTick(() => {
               this.refreshTable()
            })
            this.componentData.entity.userId = val?0:null
            this.refreshTable()
         },
         claimFun(row) {
            console.log(row)
            if (row) {
               this.sampleUserForm = {
                  entrustCode: row.entrustCode,
@@ -253,7 +273,6 @@
               }
               this.claimVisible = true
            }
         },
         confirmClaim() {
            this.$axios.post(this.$api.insOrderPlan.claimInsOrderPlan, this.sampleUserForm, {
@@ -278,9 +297,9 @@
            rowIndex
         }) {
            let currentTime = getYearAndMonthAndDays()
            if (row.sendTime && currentTime === row.sendTime) {
            if (currentTime === row.appointed) {
               return 'highlight-warning-row-border'
            } else if (row.sendTime && currentTime > row.sendTime) {
            } else if (currentTime > row.appointed) {
               return 'highlight-danger-row-border'
            }
            return ''
@@ -352,8 +371,22 @@
                     value: ele.value
                  }
               })
               if(this.tabList.length>0){
                  this.componentData.entity.sonLaboratory = this.tabList[0].value
               }
               this.refreshTable()
            })
         }
         },
         selectAllByOne(row) {
            this.activeFace = 2;
            this.currentId = parseInt(row.id)
         },
         playOrder(num) {
            this.activeFace = num
         },
      handleInspection(row){
        this.state = 1;
      }
      }
   }
</script>