licp
2024-03-22 3848bf666f63878b90411e3e33df9fabfb94a0a2
完成y检验-任务切换接口对接
已修改3个文件
136 ■■■■ 文件已修改
src/components/do/b1-inspect-order-plan/Inspection.vue 110 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/tool/value-table.vue 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/b1-inspect-order-plan.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -47,7 +47,7 @@
<template>
    <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>
@@ -94,43 +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: ['orderId'],
        props: ['sonLaboratory'],
    components: {
            ValueTable,
        },
        data() {
            return {
        sampleVisible:false,
@@ -140,14 +132,41 @@
                    state: null
                },
        productList:[],
                id: 0
                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.id = this.orderId
      this.componentData.entity.sonLaboratory = this.sonLaboratory;
        },
        mounted() {
      this.getTypeDicts()
      this.getInsStateDicts()
        },
        methods: {
      handleChangeSample(row){
@@ -157,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>
src/components/tool/value-table.vue
@@ -73,8 +73,9 @@
<template>
    <div class="value-table">
        <div class="table">
            <el-table ref="eltable" :data="tableData" style="width: 100%;" height="100%" tooltip-effect="dark" border
        <div class="table" :style="data.isPage!=undefined&&data.isPage!=true?'height:100%':''">
            <el-table ref="eltable" :data="tableData" style="width: 100%;" height="100%"
      tooltip-effect="dark" border
                @selection-change="selectChange" @select="select" v-loading="loading" @sort-change="sortChange"
                @row-click="rowClick" :show-summary="data.countFleid!=undefined && data.countFleid.length > 0"
                :summary-method="getSummaries" :row-class-name="tableRowClassName">
@@ -112,10 +113,10 @@
                </el-table-column>
            </el-table>
        </div>
        <div class="page">
        <div class="page" v-if="data.isPage==undefined||data.isPage">
            <el-pagination @size-change="sizeChange" @current-change="currentChange" :current-page="page.current"
                :page-sizes="[10, 20, 30, 50, 100]" :page-size="page.size" layout="total, sizes, prev, pager, next, jumper"
                :total="total">
                :total="total" >
            </el-pagination>
        </div>
        <el-dialog title="编辑" :visible.sync="upDia" :width="data.row==1?'500px':500+data.row * 200 + 'px'">
@@ -231,6 +232,7 @@
    import {
        Page
    } from 'iview';
import { data } from 'jquery';
    export default {
        props: {
            tableRowClassName: {
@@ -311,6 +313,7 @@
                    showSelect: false,
                    select: true,
                    row: 1,
          isPage:true,//
                    do: [{
                        font: '删除',
                        type: 'text'
@@ -370,6 +373,13 @@
                } else {
                    this.multipleSelection = val[val.length - 1];
                }
        if(this.data.selectMethod!=undefined){
          if(this.$parent.$el.className.indexOf('el-')==0){
            this.$parent.$parent[this.data.selectMethod](val)
          }else{
            this.$parent[this.data.selectMethod](val)
          }
        }
            },
            select(val, row) {
                if (!this.data.select) {
@@ -395,6 +405,12 @@
            },
            selectList() {
                this.loading = true
        if(this.data.isPage!=undefined&&this.data.isPage!=true){
          this.page = {
            current: -1,
            size: -1,
          }
        }
                this.$axios.post(this.url, {
                    page: this.page,
                    entity: this.data.entity
src/components/view/b1-inspect-order-plan.vue
@@ -164,7 +164,7 @@
        <div style="width: 100%;height: 100%;" v-if="activeFace >0">
            <Add :active="activeFace" :currentId="currentId"/>
        </div>
    <Inspection v-if="state==1" @goback="state=0" :orderId="orderId"/>
    <Inspection v-if="state==1" @goback="state=0" :orderId="orderId" :sonLaboratory="componentData.entity.sonLaboratory"/>
    </div>
</template>