|
|
@@ -0,0 +1,1041 @@
|
|
|
+<style>
|
|
|
+ .input-with-select .el-select .el-input {
|
|
|
+ width: 110px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .input-with-select .el-input-group__append {
|
|
|
+ background-color: #fff;
|
|
|
+ }
|
|
|
+
|
|
|
+</style>
|
|
|
+
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <el-card style="min-height: calc(100vh - 92px);">
|
|
|
+ <div slot="header" style="height: 20px;">
|
|
|
+ <span style="float: left;">
|
|
|
+ <i class="icon icon-table2"></i>
|
|
|
+ </span>
|
|
|
+ <el-breadcrumb class="heading" style="float: left; margin-left: 5px">
|
|
|
+ <el-breadcrumb-item :to="{ path: '/' }">平台首页</el-breadcrumb-item>
|
|
|
+ <el-breadcrumb-item :to="{ path: '/equipment' }">容器管理</el-breadcrumb-item>
|
|
|
+ <el-breadcrumb-item>容器设置 【{{ename}}】</el-breadcrumb-item>
|
|
|
+ </el-breadcrumb>
|
|
|
+ <span style="float: right;">
|
|
|
+ <el-button size="mini" type="primary" class="el-button--small" style="margin-left: 5px"
|
|
|
+ @click="opforequip(0)">冻存架添加</el-button>
|
|
|
+ <el-button size="mini" type="primary" class="el-button--small" style="margin-left: 5px"
|
|
|
+ @click="opforequip(2)">修改</el-button>
|
|
|
+ <el-button size="mini" type="primary" class="el-button--small" style="margin-left: 5px"
|
|
|
+ @click="deletedata(0)">删除</el-button>
|
|
|
+ <el-button size="mini" type="primary" class="el-button--small" style="margin-left: 5px"
|
|
|
+ @click="moveforequip(0)">移动</el-button>
|
|
|
+ <el-button size="mini" type="primary" class="el-button--small" style="margin-left: 5px"
|
|
|
+ @click="copyforequip(0)">复制到</el-button>
|
|
|
+ <el-button size="mini" type="primary" class="el-button--small" style="margin-left: 15px"
|
|
|
+ @click="opforequip(1)">冻存盒添加</el-button>
|
|
|
+ <el-button size="mini" type="primary" class="el-button--small" style="margin-left: 5px"
|
|
|
+ @click="opforequip(3)">修改</el-button>
|
|
|
+ <el-button size="mini" type="primary" class="el-button--small" style="margin-left: 5px"
|
|
|
+ @click="deletedata(1)">删除</el-button>
|
|
|
+ <el-button size="mini" type="primary" class="el-button--small" style="margin-left: 5px"
|
|
|
+ @click="moveforequip(1)">移动</el-button>
|
|
|
+ <el-button size="mini" type="primary" class="el-button--small" style="margin-left: 5px"
|
|
|
+ @click="copyforequip(1)">复制到</el-button>
|
|
|
+ <el-button size="mini" type="primary" class="el-button--small" style="margin-left: 8px" @click="goback">返回
|
|
|
+ </el-button>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div style="text-align:center;margin-top:-10px">
|
|
|
+ <i class="icon icon-stop2" style="color:#EAEAEA"></i>无冻存盒
|
|
|
+ <i class="icon icon-stop2" style="color:#13CE66"></i>空冻存盒
|
|
|
+ <i class="icon icon-stop2" style="color:#FF4949"></i>选中
|
|
|
+ <i class="icon icon-stop2" style="color:#D1EEEE"></i>容量(0-25%)
|
|
|
+ <i class="icon icon-stop2" style="color:#20A0FF"></i>容量(25%-50%)
|
|
|
+ <i class="icon icon-stop2" style="color:#836FFF"></i>容量(50%-75%)
|
|
|
+ <i class="icon icon-stop2" style="color:#000080"></i>容量(75%-100%)
|
|
|
+ </div>
|
|
|
+ <!--冰箱-->
|
|
|
+ <el-row v-loading="downloading" element-loading-text="数据拼命读取中,请稍候。。。">
|
|
|
+ <el-col :span="12">
|
|
|
+ <div>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="20">
|
|
|
+ <table cellspacing="0" cellpadding="0">
|
|
|
+ <thead>
|
|
|
+ <th></th>
|
|
|
+ <th v-for="ind in colorTableWidth" :key="ind">{{ind}}</th>
|
|
|
+ </thead>
|
|
|
+ <tbody>
|
|
|
+ <tr v-for=" (xcolorTable,k1) in colorTableHeight" :key="xcolorTable">
|
|
|
+ <td style="text-align:center;font-size:20px;">{{numtoengs[xcolorTable-1]}}</td>
|
|
|
+ <td v-for="(ycolorTable,k2) in colorTableWidth" :key="ycolorTable"
|
|
|
+ v-bind:class="{ 'tdborder': true, 'tdleftborder': k2 === 0, 'tdtopborder': k1 === 0, 'tdrightborder': k2 === colorTableWidth-1 }"
|
|
|
+ @click="shelfclk(k2+1, k1+1)">
|
|
|
+ <div class="ulbgcolor"
|
|
|
+ v-bind:style="{ width: unitwidth/colorTableWidth + 'px', height: unitheight/colorTableHeight + 'px' }">
|
|
|
+ <div v-for="(shelfitem, index) in samplelist" :key="index">
|
|
|
+ <div v-if="samplelist[index].XStation === k2+1 && samplelist[index].YStation === k1+1">
|
|
|
+ <div class="hoverdiv" v-for="rowindex in samplelist[index].RowNum" :key="rowindex">
|
|
|
+ <div
|
|
|
+ v-bind:style="{
|
|
|
+ width: (unitwidth/colorTableWidth-2.5) + 'px',
|
|
|
+ height: (unitheight/colorTableHeight/samplelist[index].RowNum-2.5) + 'px',
|
|
|
+ backgroundColor: ycolor == rowindex && xidx == k1+1 && yidx == k2+1 ? COLORARR[7] : COLORARR[0]}"
|
|
|
+ style="margin: 1px" @click="getEquipPosition(rowindex-1, k1+1, k2+1)">
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ </tbody>
|
|
|
+ </table>
|
|
|
+ <div>
|
|
|
+ <img :src="fridgebottomimg" class="fridge">
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="4" style="margin-top: 20px">
|
|
|
+ <div class="ulbgcolor" v-for="g in shelfs.ColumnNum" :key="g"
|
|
|
+ style="width:150px;float:left;margin-left:1px">
|
|
|
+ <div class="hoverdiv" v-bind:style="{
|
|
|
+ backgroundColor: xcolor == g && ycolor == ycolor &&
|
|
|
+ xidx == shelfs.YStation && yidx == shelfs.XStation ? COLORARR[2] :
|
|
|
+ (shelfs[numtoengs[ycolor-1]+g] == -2 ? COLORARR[0] :
|
|
|
+ (shelfs[numtoengs[ycolor-1]+g] == -1 ? COLORARR[1] :
|
|
|
+ (shelfs[numtoengs[ycolor-1]+g] > 0 &&
|
|
|
+ shelfs[numtoengs[ycolor-1]+g] <= 25 ? COLORARR[3] :
|
|
|
+ (shelfs[numtoengs[ycolor-1]+g] > 25 &&
|
|
|
+ shelfs[numtoengs[ycolor-1]+g] <= 50 ? COLORARR[4] :
|
|
|
+ (shelfs[numtoengs[ycolor-1]+g] > 50 &&
|
|
|
+ shelfs[numtoengs[ycolor-1]+g] <= 75 ? COLORARR[5] :
|
|
|
+ (shelfs[numtoengs[ycolor-1]+g] > 75 ? COLORARR[6] :
|
|
|
+ COLORARR[7])))))) }" @click="handleclk(g-1, ycolor-1, shelfs.YStation, shelfs.XStation)"
|
|
|
+ style="margin: 1px;width:50px; height:20px;">
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="12">
|
|
|
+ <div class="tablebox">
|
|
|
+ <table class="sampletable" v-bind:style="{ width: 10*TableWidth + '%', height: 10*TableHeight + '%' }">
|
|
|
+ <thead>
|
|
|
+ <th></th>
|
|
|
+ <th v-for="ind in TableWidth" :key="ind">{{ind}}</th>
|
|
|
+ </thead>
|
|
|
+ <tbody>
|
|
|
+ <tr class="index" v-for=" yindex in TableHeight" :key="yindex">
|
|
|
+ <td style="width:3px;text-align:center;font-size:20px;">{{numtoengs[yindex-1]}}</td>
|
|
|
+ <td v-for="xindex in TableWidth" :key="xindex" class="visibletd">
|
|
|
+ <div v-for="(sdata, sindex) in boxSample" :key="sindex">
|
|
|
+ <span v-if="sdata.Position.split(';')[0]==xindex && sdata.Position.split(';')[1]==yindex">
|
|
|
+ <div v-if="sdata.IState === 5">
|
|
|
+ <img :src="imghost + '/static/img/sampletypeimg/zhanwei.png'" class="image">
|
|
|
+ </div>
|
|
|
+ <span v-for="(type, tindex) in option" :key="tindex" v-else>
|
|
|
+ <div v-if="sdata.SampleType == type.value">
|
|
|
+ <img :src="imghost + type.photo" class="image">
|
|
|
+ </div>
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ </tbody>
|
|
|
+ </table>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-card>
|
|
|
+
|
|
|
+ <!--添加冻存盒用的对话框-->
|
|
|
+ <el-dialog :title="dialogtitle" :visible.sync="boxVisible">
|
|
|
+ <el-form>
|
|
|
+ <el-form-item label="冻存盒位置" :label-width="labelWidth">
|
|
|
+ <el-col :span="10">
|
|
|
+ <el-input-number v-model="operationform.xshelf" :min="1" disabled style="width: 100%"></el-input-number>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="2" class="positionblk" style="text-align:center;">层</el-col>
|
|
|
+ <el-col :span="10">
|
|
|
+ <el-input-number v-model="operationform.yshelf" :min="1" disabled style="width: 100%"></el-input-number>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="2" class="positionblk" style="text-align:center;">列</el-col>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="条形码" required :label-width="labelWidth">
|
|
|
+ <el-input v-model="operationform.barcode"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="冻存盒大小" required :label-width="labelWidth">
|
|
|
+ <el-col :span="10">
|
|
|
+ <el-input-number v-model="operationform.boxxvalue" :min="1" :disabled="disableop2" style="width: 100%">
|
|
|
+ </el-input-number>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="2" class="positionblk" style="text-align:center;">行</el-col>
|
|
|
+ <el-col :span="10">
|
|
|
+ <el-input-number v-model="operationform.boxyvalue" :min="1" :disabled="disableop2" style="width: 100%">
|
|
|
+ </el-input-number>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="2" class="positionblk" style="text-align:center;">列</el-col>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="样本类型" :label-width="labelWidth">
|
|
|
+ <div class="deviceaddsamptype">
|
|
|
+ <el-checkbox-group v-model="checkedsampetype" @change="handlecheckedsampetypeChange">
|
|
|
+ <el-checkbox v-for="v in option" :label="v.value" :key="v.label">{{v.label}}</el-checkbox>
|
|
|
+ </el-checkbox-group>
|
|
|
+ </div>
|
|
|
+ <el-checkbox :indeterminate="issampetypecheckedall" v-model="boxCheckAll" @change="handleCheckAllChange">全选
|
|
|
+ </el-checkbox>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer">
|
|
|
+ <el-button type="primary" @click="savedata()">确定</el-button>
|
|
|
+ <el-button @click="boxVisible = false">取消</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!--添加冻存架用的对话框-->
|
|
|
+ <el-dialog :title="dialogtitle" :visible.sync="shelfVisible">
|
|
|
+ <el-form>
|
|
|
+ <el-form-item label="冻存架位置" :label-width="labelWidth">
|
|
|
+ <el-col :span="10">
|
|
|
+ <el-input-number v-model="operationform.yshelf" :min="1" disabled style="width: 100%"></el-input-number>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="2" class="positionblk" style="text-align:center;">层</el-col>
|
|
|
+ <el-col :span="10">
|
|
|
+ <el-input-number v-model="operationform.xshelf" :min="1" disabled style="width: 100%"></el-input-number>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="2" class="positionblk" style="text-align:center;">列</el-col>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="条形码" required :label-width="labelWidth">
|
|
|
+ <el-input v-model="operationform.barcode"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="冻存架大小" :label-width="labelWidth">
|
|
|
+ <el-col :span="10">
|
|
|
+ <el-input-number v-model="operationform.ybox" :min="1" :disabled="disableop" style="width: 100%">
|
|
|
+ </el-input-number>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="2" class="positionblk" style="text-align:center;">层</el-col>
|
|
|
+ <el-col :span="10">
|
|
|
+ <el-input-number v-model="operationform.xbox" :min="1" :disabled="disableop" style="width: 100%">
|
|
|
+ </el-input-number>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="2" class="positionblk" style="text-align:center;">列</el-col>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="样本类型" :label-width="labelWidth">
|
|
|
+ <div class="deviceaddsamptype">
|
|
|
+ <el-checkbox-group v-model="checkedsampetype" @change="handlecheckedsampetypeChange">
|
|
|
+ <el-checkbox v-for="stype in option" :label="stype.value" :key="stype.label">{{stype.label}}</el-checkbox>
|
|
|
+ </el-checkbox-group>
|
|
|
+ </div>
|
|
|
+ <el-checkbox :indeterminate="issampetypecheckedall" v-model="shelfCheckAll" @change="handleCheckAllChange">全选
|
|
|
+ </el-checkbox>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer">
|
|
|
+ <el-button type="primary" @click="savedata()">确定</el-button>
|
|
|
+ <el-button @click="shelfVisible = false">取消</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!--复制对话框-->
|
|
|
+ <el-dialog :title="copydialogtitle" :visible.sync="copyVisible">
|
|
|
+ <div class="deviceaddsamptype">
|
|
|
+ <el-checkbox-group v-model="selectedsb" @change="handlecheckedsampetypeChange">
|
|
|
+ <el-checkbox v-for="stype in sblist" :label="stype.id" :key="stype.id">第{{stype.y}}行, 第{{stype.x}}列
|
|
|
+ </el-checkbox>
|
|
|
+ </el-checkbox-group>
|
|
|
+ </div>
|
|
|
+ <el-checkbox :indeterminate="issbcheckall" v-model="sbCheckAll" @change="handleCheckAllChange">全选</el-checkbox>
|
|
|
+ <el-checkbox v-model="iscopybox" v-if="copydialogtitle == '复制冻存架'">同步复制冻存盒</el-checkbox>
|
|
|
+ <div slot="footer">
|
|
|
+ <el-button type="primary" @click="savecopy()">确定</el-button>
|
|
|
+ <el-button @click="copyVisible = false">取消</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+ export default {
|
|
|
+ name: 'shelfset',
|
|
|
+ components: {},
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ downloading: true,
|
|
|
+ imghost: '',
|
|
|
+ fridgebottomimg: '',
|
|
|
+ ename: '',
|
|
|
+ option: [], // 样本类型列表
|
|
|
+ option2: [], // 辅助全选框样本类型
|
|
|
+ tableColumnWidth: '200',
|
|
|
+ dialogFormVisible: false,
|
|
|
+ // 冰箱面板
|
|
|
+ unitwidth: 400, // 整个冰箱的尺寸
|
|
|
+ unitheight: 378,
|
|
|
+ dchxtable: -1, // 对勾所在位置
|
|
|
+ dchytable: -1,
|
|
|
+ xidx: -1, // 选中的冻存盒的位置
|
|
|
+ yidx: -1,
|
|
|
+ xcolor: -1, // 选中的冻存架的位置
|
|
|
+ ycolor: -1,
|
|
|
+ xtable: 4, // 样本所在冻存盒内位置
|
|
|
+ ytable: 4,
|
|
|
+ xcolorTable: 4,
|
|
|
+ ycolorTable: 4,
|
|
|
+ xshelf: -1, // 点击空冻存架
|
|
|
+ yshelf: -1,
|
|
|
+ shelfs: [], //选中冻存架
|
|
|
+ colorTableWidth: 0, // 冰箱的相对尺寸
|
|
|
+ colorTableHeight: 0,
|
|
|
+ TableWidth: 0, // 每个冻存盒的尺寸
|
|
|
+ TableHeight: 0,
|
|
|
+ // 冻存架/盒
|
|
|
+ dialogtitle: '',
|
|
|
+ shelfVisible: false,
|
|
|
+ copyShelfVisible: false,
|
|
|
+ boxVisible: false,
|
|
|
+ copyBoxVisible: false,
|
|
|
+ boxCheckAll: false, // 添加冻存盒
|
|
|
+ checkedsampetype: [],
|
|
|
+ operationform: {
|
|
|
+ xshelf: '',
|
|
|
+ yshelf: '',
|
|
|
+ xbox: '', // 为box的位置或尺寸
|
|
|
+ ybox: '',
|
|
|
+ boxxvalue: 1,
|
|
|
+ boxyvalue: 1,
|
|
|
+ barcode: '',
|
|
|
+ sampletype: '',
|
|
|
+ eid: ''
|
|
|
+ },
|
|
|
+ shelfCheckAll: false, // 添加冻存架
|
|
|
+ labelWidth: '100px',
|
|
|
+ numtoengs: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
|
|
|
+ 'U', 'V', 'W', 'X', 'Y', 'Z'
|
|
|
+ ],
|
|
|
+ samplelist: [], // 新增,新的冰箱list和冻存盒/架list以及冻存盒样本list
|
|
|
+ selectedBox: {},
|
|
|
+ selectedShelf: {},
|
|
|
+ disableop: false,
|
|
|
+ disableop2: false,
|
|
|
+ boxSample: [],
|
|
|
+ equipid: 0, // 新增,设备id
|
|
|
+ COLORARR: ['#EAEAEA', '#13CE66', '#FF4949', '#D1EEEE', '#20A0FF', '#836FFF', '#000080', '#FF7777'],
|
|
|
+ ishavedch: true,
|
|
|
+ issampetypecheckedall: true, // 全选框
|
|
|
+ copyVisible: false, // 复制
|
|
|
+ copydialogtitle: '',
|
|
|
+ sblist: [],
|
|
|
+ selectedsb: [],
|
|
|
+ sbCheckAll: false, // 复制全选框
|
|
|
+ issbcheckall: false,
|
|
|
+ sbcheckalllist: [],
|
|
|
+ iscopybox: true // 复制冻存架是是否同步复制冻存盒
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.imghost = process.env.imgserverhost
|
|
|
+ let eid = this.$route.params.opera
|
|
|
+ this.operationform.eid = eid + ''
|
|
|
+ this.equipid = eid
|
|
|
+ this.initData(eid)
|
|
|
+ this.getfridgeimg(eid)
|
|
|
+ this.getType()
|
|
|
+ },
|
|
|
+ watch: {},
|
|
|
+ methods: {
|
|
|
+ initData(eid) {
|
|
|
+ let _this = this
|
|
|
+ // 获取冻存架信息
|
|
|
+ _this.$axios.get('/shelfset/equipmentdraw/' + eid, {})
|
|
|
+ .then(res => {
|
|
|
+ _this.samplelist = res.data.items
|
|
|
+ _this.colorTableHeight = res.data.dimension[1]
|
|
|
+ _this.colorTableWidth = res.data.dimension[0]
|
|
|
+ _this.downloading = false
|
|
|
+ })
|
|
|
+ .catch(err => {
|
|
|
+ _this.downloading = false
|
|
|
+ console.error(err)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getfridgeimg(eid) {
|
|
|
+ let _this = this
|
|
|
+ // 获取容器信息
|
|
|
+ _this.$axios.get('/equipment/getmodel/' + eid, {})
|
|
|
+ .then(res => {
|
|
|
+ _this.ename = res.data.Name
|
|
|
+ if (res.data && (res.data.DItem === 4)) {
|
|
|
+ _this.fridgebottomimg = _this.imghost + '/static/img/sampletypeimg/bottomydg.png'
|
|
|
+ } else {
|
|
|
+ _this.fridgebottomimg = _this.imghost + '/static/img/sampletypeimg/bottombx.png'
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch({})
|
|
|
+ },
|
|
|
+ getType() {
|
|
|
+ let _this = this
|
|
|
+ _this.$axios.get('/sampleinput/slist/' + this.equipid, {})
|
|
|
+ .then(res => {
|
|
|
+ _this.option = []
|
|
|
+ _this.option2 = []
|
|
|
+ for (var i = 0; i < res.data.currentItemCount; i++) {
|
|
|
+ _this.option.push({
|
|
|
+ label: res.data.items[i].Name,
|
|
|
+ code: res.data.items[i].Code,
|
|
|
+ photo: res.data.items[i].Photo,
|
|
|
+ value: res.data.items[i].Id + ''
|
|
|
+ })
|
|
|
+ _this.option2.push(res.data.items[i].Id + '')
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ handleclk(xindex, yindex, xcolorTable, ycolorTable) {
|
|
|
+ let _this = this
|
|
|
+ var inputstr = _this.equipid + ',' + ycolorTable + ',' + xcolorTable + ',' + (xindex + 1) + ',' + (yindex + 1)
|
|
|
+ _this.$axios.get('/shelfset/boxdraw/' + inputstr, {})
|
|
|
+ .then(res => {
|
|
|
+ _this.selectedShelf = res.data.Shelfbox
|
|
|
+ _this.selectedBox = res.data.Boxshelf
|
|
|
+ _this.boxSample = res.data.Boxsample
|
|
|
+ _this.TableHeight = _this.selectedBox.RowNum
|
|
|
+ _this.TableWidth = _this.selectedBox.ColumnNum
|
|
|
+ if (_this.TableWidth === 0) {
|
|
|
+ _this.ishavedch = false
|
|
|
+ } else {
|
|
|
+ _this.ishavedch = true
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(err => {
|
|
|
+ console.error(err)
|
|
|
+ })
|
|
|
+ // 修改坐标
|
|
|
+ this.xidx = xcolorTable
|
|
|
+ this.yidx = ycolorTable
|
|
|
+ this.xcolor = xindex + 1
|
|
|
+ this.ycolor = yindex + 1
|
|
|
+ this.dchxtable = -1
|
|
|
+ this.dchytable = -1
|
|
|
+ },
|
|
|
+ shelfclk(x, y) {
|
|
|
+ for (var i = 0; i < this.samplelist.length; i++) {
|
|
|
+ if (x === this.samplelist[i].XStation && y === this.samplelist[i].YStation) {
|
|
|
+ this.yshelf = -1
|
|
|
+ this.xshelf = -1
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.yshelf = y
|
|
|
+ this.xshelf = x
|
|
|
+ this.xidx = -1
|
|
|
+ this.yidx = -1
|
|
|
+ this.xcolor = -1
|
|
|
+ this.ycolor = -1
|
|
|
+ this.shelfs = []
|
|
|
+ },
|
|
|
+ // 获取冰箱冻存架点击坐标
|
|
|
+ getEquipPosition(ycolor, xidx, yidx) {
|
|
|
+ let index = (xidx - 1) * this.colorTableWidth + yidx - 1
|
|
|
+ this.shelfs = this.samplelist[index]
|
|
|
+ this.xidx = xidx
|
|
|
+ this.yidx = yidx
|
|
|
+ this.ycolor = ycolor + 1
|
|
|
+ this.xcolor = -1
|
|
|
+ },
|
|
|
+
|
|
|
+ opforequip(seed) {
|
|
|
+ // seed----1:添加冻存盒;0:添加冻存架;2:编辑冻存架;3:编辑冻存盒
|
|
|
+ if (seed === 1) {
|
|
|
+ if (this.xidx === -1 && this.yidx === -1) {
|
|
|
+ this.$message({
|
|
|
+ type: 'warning',
|
|
|
+ message: '请先添加冻存架!'
|
|
|
+ })
|
|
|
+ } else if (this.TableHeight === 0 && this.TableWidth === 0) {
|
|
|
+ this.dialogtitle = '添加冻存盒'
|
|
|
+ this.boxCheckAll = true
|
|
|
+ this.boxVisible = true
|
|
|
+ this.disableop = false
|
|
|
+ this.operationform.xshelf = this.yidx
|
|
|
+ this.operationform.yshelf = this.xidx
|
|
|
+ this.operationform.xbox = this.xcolor
|
|
|
+ this.operationform.ybox = this.ycolor
|
|
|
+ this.operationform.eid = this.equipid + '_' + seed
|
|
|
+ this.checkedsampetype = this.option2
|
|
|
+ this.operationform.barcode = 'FF201710271533'
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ type: 'warning',
|
|
|
+ message: '所选位置已存在冻存盒!'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else if (seed === 0) {
|
|
|
+ if (this.xshelf !== -1 && this.yshelf !== -1) {
|
|
|
+ this.dialogtitle = '添加冻存架'
|
|
|
+ this.shelfCheckAll = true
|
|
|
+ this.shelfVisible = true
|
|
|
+ this.disableop = false
|
|
|
+ this.operationform.xshelf = this.xshelf //列
|
|
|
+ this.operationform.yshelf = this.yshelf //层
|
|
|
+ this.operationform.eid = this.equipid + '_' + seed
|
|
|
+ this.checkedsampetype = this.option2
|
|
|
+ this.operationform.barcode = 'FF201710271534'
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ type: 'warning',
|
|
|
+ message: '请选择合适位置!'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else if (seed === 2) {
|
|
|
+ if (this.xidx !== -1 && this.yidx !== -1) {
|
|
|
+ this.dialogtitle = '编辑冻存架'
|
|
|
+ this.shelfVisible = true
|
|
|
+ this.disableop = true
|
|
|
+ this.operationform.xshelf = this.selectedShelf.XStation
|
|
|
+ this.operationform.yshelf = this.selectedShelf.YStation
|
|
|
+ this.operationform.xbox = this.selectedShelf.ColumnNum
|
|
|
+ this.operationform.ybox = this.selectedShelf.RowNum
|
|
|
+ this.operationform.barcode = this.selectedShelf.BarCode
|
|
|
+ this.operationform.eid = this.equipid + '_' + seed
|
|
|
+ this.checkedsampetype = this.selectedShelf.SampleType.split(',')
|
|
|
+ this.shelfCheckAll = this.checkedsampetype.length === this.option.length
|
|
|
+ this.issampetypecheckedall = !this.shelfCheckAll
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ type: 'warning',
|
|
|
+ message: '请选择合适位置!'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (this.ishavedch) {
|
|
|
+ this.dialogtitle = '编辑冻存盒'
|
|
|
+ this.boxVisible = true
|
|
|
+ this.disableop = true
|
|
|
+ this.disableop2 = this.boxSample.length !== 0
|
|
|
+ this.operationform.xshelf = this.yidx
|
|
|
+ this.operationform.yshelf = this.xidx
|
|
|
+ this.operationform.xbox = this.xcolor
|
|
|
+ this.operationform.ybox = this.ycolor
|
|
|
+ this.operationform.boxxvalue = this.selectedBox.RowNum
|
|
|
+ this.operationform.boxyvalue = this.selectedBox.ColumnNum
|
|
|
+ this.operationform.barcode = this.selectedBox.BarCode
|
|
|
+ this.operationform.eid = this.equipid + '_' + seed + '_' + this.selectedBox.ShelfId + '_' + this
|
|
|
+ .selectedShelf
|
|
|
+ .XStation + '_' + this.selectedShelf.YStation
|
|
|
+ this.checkedsampetype = this.selectedBox.SampleType.split(',')
|
|
|
+ this.boxCheckAll = this.checkedsampetype.length === this.option.length
|
|
|
+ this.issampetypecheckedall = !this.boxCheckAll
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ type: 'warning',
|
|
|
+ message: '请先选择冻存盒!'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ savedata() {
|
|
|
+ let _this = this
|
|
|
+ if (this.disableop) { // 根据是否disable某些选项来判断为编辑或添加
|
|
|
+ _this.operationform.sampletype = _this.checkedsampetype.join(',')
|
|
|
+ _this.$axios.put('/shelfset/editforequip', _this.operationform)
|
|
|
+ .then(res => {
|
|
|
+ if (res.data.code === 0) {
|
|
|
+ this.$message({
|
|
|
+ type: 'success',
|
|
|
+ message: res.data.message
|
|
|
+ })
|
|
|
+ _this.boxVisible = false
|
|
|
+ _this.shelfVisible = false
|
|
|
+ _this.handleclk(this.xcolor - 1, this.ycolor - 1, this.xidx, this.yidx)
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ type: 'warning',
|
|
|
+ message: res.data.message
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(err => {
|
|
|
+ console.error(err)
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ if (this.operationform.barcode !== '' && this.operationform.xbox !== '' && this.operationform.ybox !== '') {
|
|
|
+ _this.operationform.sampletype = _this.checkedsampetype.join(',')
|
|
|
+ _this.$axios.post('/shelfset', _this.operationform)
|
|
|
+ .then(res => {
|
|
|
+ if (res.data.code === 0) {
|
|
|
+ this.$message({
|
|
|
+ type: 'success',
|
|
|
+ message: res.data.message
|
|
|
+ })
|
|
|
+ _this.boxVisible = false
|
|
|
+ _this.shelfVisible = false
|
|
|
+ _this.yshelf = -1
|
|
|
+ _this.xshelf = -1
|
|
|
+ _this.initData(_this.equipid)
|
|
|
+ _this.handleclk(this.xcolor - 1, this.ycolor - 1, this.xidx, this.yidx)
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ type: 'warning',
|
|
|
+ message: res.data.message
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(err => {
|
|
|
+ console.error(err)
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ type: 'warning',
|
|
|
+ message: '请输入必填项!'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ havesample(val) {
|
|
|
+ for (var i = 0; i < this.samplelist.length; i++) {
|
|
|
+ if (this.selectedShelf.Id === this.samplelist[i].ShelfId) {
|
|
|
+ if (val) { // 删除冻存盒
|
|
|
+ if (this.samplelist[i][this.numtoengs[this.ycolor - 1] + this.xcolor] !== -1 &&
|
|
|
+ this.samplelist[i][this.numtoengs[this.ycolor - 1] + this.xcolor] !== -2 &&
|
|
|
+ this.xcolor !== -1 && this.ycolor !== -1) {
|
|
|
+ return true
|
|
|
+ } else {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ } else { // 删除冻存架
|
|
|
+ // 检查每个方格的颜色值
|
|
|
+ for (var j = 0; j < this.selectedShelf.RowNum; j++) {
|
|
|
+ for (var k = 1; k <= this.selectedShelf.ColumnNum; k++) {
|
|
|
+ if (this.samplelist[i][this.numtoengs[j] + k] !== -1 &&
|
|
|
+ this.samplelist[i][this.numtoengs[j] + k] !== -2 && this.xcolor !== -1 && this.ycolor !== -1) {
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ moveforequip(seed) {
|
|
|
+ // seed: 0---冻存架; 1---冻存盒
|
|
|
+ if (!seed) {
|
|
|
+ if (this.xidx !== -1 && this.yidx !== -1) {
|
|
|
+ window.location.href = '/equipment/devicemove?id=' + this.equipid + '&x=' + this.yidx + '&y=' + this.xidx +
|
|
|
+ '&type=' + seed
|
|
|
+ } else if (this.xshelf !== -1 && this.yshelf !== -1) {
|
|
|
+ this.$message({
|
|
|
+ type: 'warning',
|
|
|
+ message: '冻存架为空!'
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ type: 'warning',
|
|
|
+ message: '请选择冻存架!'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (this.xcolor === -1 && this.ycolor === -1) {
|
|
|
+ this.$message({
|
|
|
+ type: 'warning',
|
|
|
+ message: '请先添加冻存架!'
|
|
|
+ })
|
|
|
+ } else if (this.selectedBox.RowNum === 0 && this.selectedBox.ColumnNum === 0) {
|
|
|
+ this.$message({
|
|
|
+ type: 'warning',
|
|
|
+ message: '无法移动空冻存盒!'
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ window.location.href = '/equipment/devicemove?id=' + this.equipid + '&x=' + this.xcolor + '&y=' + this
|
|
|
+ .ycolor +
|
|
|
+ '&type=' + seed + '&xshelf=' + this.yidx + '&yshelf=' + this.xidx
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ copyforequip(seed) {
|
|
|
+ // seed: 0---冻存架; 1---冻存盒
|
|
|
+ if (!seed) {
|
|
|
+ if (this.yidx === -1 && this.xidx === -1) {
|
|
|
+ this.$message({
|
|
|
+ type: 'warning',
|
|
|
+ message: '请选择冻存架!'
|
|
|
+ })
|
|
|
+ } else if (this.xshelf !== -1 && this.yshelf !== -1) {
|
|
|
+ this.$message({
|
|
|
+ type: 'warning',
|
|
|
+ message: '请先添加冻存架!'
|
|
|
+ })
|
|
|
+ } else if (this.samplelist.length === this.colorTableHeight * this.colorTableWidth) {
|
|
|
+ this.$message({
|
|
|
+ type: 'warning',
|
|
|
+ message: '冰箱已满!'
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ this.copyVisible = true
|
|
|
+ this.copydialogtitle = '复制冻存架'
|
|
|
+ var empty;
|
|
|
+ this.sblist = [];
|
|
|
+ this.sbcheckalllist = []
|
|
|
+ for (var i = 1; i <= this.colorTableHeight; i++) {
|
|
|
+ for (var j = 1; j <= this.colorTableWidth; j++) {
|
|
|
+ empty = true
|
|
|
+ for (var k = 0; k < this.samplelist.length; k++) {
|
|
|
+ if (j === this.samplelist[k].XStation && i === this.samplelist[k].YStation) {
|
|
|
+ empty = false
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (empty) {
|
|
|
+ this.sblist.push({
|
|
|
+ id: this.sblist.length,
|
|
|
+ x: j,
|
|
|
+ y: i
|
|
|
+ })
|
|
|
+ this.sbcheckalllist.push(this.sbcheckalllist.length)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (this.xshelf !== -1 && this.yshelf !== -1) {
|
|
|
+ this.$message({
|
|
|
+ type: 'warning',
|
|
|
+ message: '请先添加冻存架!'
|
|
|
+ })
|
|
|
+ } else if (this.xcolor === -1 && this.ycolor === -1) {
|
|
|
+ this.$message({
|
|
|
+ type: 'warning',
|
|
|
+ message: '请选择冻存盒!'
|
|
|
+ })
|
|
|
+ } else if (this.selectedBox.RowNum === 0 && this.selectedBox.ColumnNum === 0) {
|
|
|
+ this.$message({
|
|
|
+ type: 'warning',
|
|
|
+ message: '请先添加冻存盒!'
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ var num = 0;
|
|
|
+ this.sblist = [];
|
|
|
+ this.sbcheckalllist = []
|
|
|
+ for (var l = 0; l < this.samplelist.length; l++) {
|
|
|
+ if (this.selectedShelf.Id === this.samplelist[l].ShelfId) {
|
|
|
+ for (var m = 0; m < this.samplelist[l].RowNum; m++) {
|
|
|
+ for (var n = 1; n <= this.samplelist[l].ColumnNum; n++) {
|
|
|
+ if (this.samplelist[l][this.numtoengs[m] + n] !== -2) {
|
|
|
+ num++
|
|
|
+ } else {
|
|
|
+ this.sblist.push({
|
|
|
+ id: this.sblist.length,
|
|
|
+ x: n,
|
|
|
+ y: m + 1
|
|
|
+ })
|
|
|
+ this.sbcheckalllist.push(this.sbcheckalllist.length)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (num === this.selectedShelf.RowNum * this.selectedShelf.ColumnNum) {
|
|
|
+ this.$message({
|
|
|
+ type: 'warning',
|
|
|
+ message: '冻存架已满!'
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ this.copyVisible = true
|
|
|
+ this.copydialogtitle = '复制冻存盒'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ savecopy() {
|
|
|
+ if (this.copydialogtitle === '复制冻存架') {
|
|
|
+ if (this.selectedsb.length === 0) {
|
|
|
+ this.$message({
|
|
|
+ type: 'warning',
|
|
|
+ message: '请选择冻存架!'
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ var copytostr = ''
|
|
|
+ for (var i = 0; i < this.selectedsb.length; i++) {
|
|
|
+ copytostr += this.sblist[this.selectedsb[i]].x + ';' + this.sblist[this.selectedsb[i]].y + ','
|
|
|
+ }
|
|
|
+ copytostr = copytostr.substring(0, copytostr.length - 1)
|
|
|
+ let _this = this
|
|
|
+ _this.$axios.put('/shelfset/shelfcopy/' + this.equipid + '_' + copytostr + '_' + this.iscopybox + '_' +
|
|
|
+ this.yidx + '_' + this.xidx, {})
|
|
|
+ .then(res => {
|
|
|
+ if (res.data.code === 0) {
|
|
|
+ this.$message({
|
|
|
+ type: 'success',
|
|
|
+ message: res.data.message
|
|
|
+ })
|
|
|
+ _this.initData(_this.equipid)
|
|
|
+ _this.selectedsb = []
|
|
|
+ _this.copyVisible = false
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ type: 'warning',
|
|
|
+ message: res.data.message
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(err => {
|
|
|
+ console.error(err)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (this.selectedsb.length === 0) {
|
|
|
+ this.$message({
|
|
|
+ type: 'warning',
|
|
|
+ message: '请选择冻存盒!'
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ var copytostr2 = ''
|
|
|
+ for (var j = 0; j < this.selectedsb.length; j++) {
|
|
|
+ copytostr2 += this.sblist[this.selectedsb[j]].x + ';' + this.sblist[this.selectedsb[j]].y + ','
|
|
|
+ }
|
|
|
+ copytostr2 = copytostr2.substring(0, copytostr2.length - 1)
|
|
|
+ let _this = this
|
|
|
+ _this.$axios.put('/shelfset/boxcopy/' + this.equipid + '_' + this.yidx + '_' + this.xidx + '_' + this
|
|
|
+ .xcolor +
|
|
|
+ '_' + this.ycolor + '_' + copytostr2, {})
|
|
|
+ .then(res => {
|
|
|
+ if (res.data.code === 0) {
|
|
|
+ this.$message({
|
|
|
+ type: 'success',
|
|
|
+ message: res.data.message
|
|
|
+ })
|
|
|
+ _this.initData(_this.equipid)
|
|
|
+ _this.selectedsb = []
|
|
|
+ _this.copyVisible = false
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ type: 'warning',
|
|
|
+ message: res.data.message
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(err => {
|
|
|
+ console.error(err)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ deletedata(val) {
|
|
|
+ // val--- 0: 删除冻存架;1:删除冻存盒
|
|
|
+ let _this = this
|
|
|
+ if (this.havesample(val)) {
|
|
|
+ this.$message({
|
|
|
+ type: 'warning',
|
|
|
+ message: '含有样本不能删除!'
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (val === 0) {
|
|
|
+ if (this.xidx !== -1 && this.yidx !== -1) {
|
|
|
+ _this.$confirm('此操作将永久删除该冻存架, 是否继续?', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ }).then(() => {
|
|
|
+ _this.$axios.delete('shelfset/deleteforequip/' + val + '_' + _this.selectedShelf.XStation + '_' +
|
|
|
+ _this.selectedShelf.YStation + '_' + _this.equipid, {})
|
|
|
+ .then(res => {
|
|
|
+ if (res.data.code === 0) {
|
|
|
+ this.$message({
|
|
|
+ type: 'success',
|
|
|
+ message: res.data.message
|
|
|
+ })
|
|
|
+ _this.initData(_this.equipid)
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ type: 'warning',
|
|
|
+ message: res.data.message
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(err => {
|
|
|
+ console.error(err)
|
|
|
+ })
|
|
|
+ }).catch(() => {})
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ type: 'warning',
|
|
|
+ message: '空冻存架不能删除!'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (this.TableHeight !== 0 && this.TableWidth !== 0) {
|
|
|
+ _this.$confirm('此操作将永久删除该冻存盒, 是否继续?', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ }).then(() => {
|
|
|
+ _this.$axios.delete('shelfset/deleteforequip/' + val + '_' + _this.xcolor + '_' + _this.ycolor + '_' +
|
|
|
+ _this.equipid + '_' + _this.yidx + '_' + _this.xidx, {})
|
|
|
+ .then(res => {
|
|
|
+ if (res.data.code === 0) {
|
|
|
+ this.$message({
|
|
|
+ type: 'success',
|
|
|
+ message: res.data.message
|
|
|
+ })
|
|
|
+ _this.initData(_this.equipid)
|
|
|
+ _this.handleclk(this.xcolor - 1, this.ycolor - 1, this.xidx, this.yidx)
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ type: 'warning',
|
|
|
+ message: res.data.message
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(err => {
|
|
|
+ console.error(err)
|
|
|
+ })
|
|
|
+ }).catch(() => {})
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ type: 'warning',
|
|
|
+ message: '空冻存盒不能删除!'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 全选框控制
|
|
|
+ handleCheckAllChange(val) {
|
|
|
+ this.checkedsampetype = val ? this.option2 : []
|
|
|
+ this.selectedsb = val ? this.sbcheckalllist : []
|
|
|
+ this.issampetypecheckedall = false
|
|
|
+ this.issbcheckall = false
|
|
|
+ },
|
|
|
+ handlecheckedsampetypeChange(value) {
|
|
|
+ let checkedCount = value.length
|
|
|
+ this.shelfCheckAll = checkedCount === this.option2.length
|
|
|
+ this.boxCheckAll = checkedCount === this.option2.length
|
|
|
+ this.sbCheckAll = checkedCount === this.sblist.length
|
|
|
+ this.issampetypecheckedall = checkedCount > 0 && checkedCount < this.option2.length
|
|
|
+ this.issbcheckall = checkedCount > 0 && checkedCount < this.sblist.length
|
|
|
+ },
|
|
|
+ goback() {
|
|
|
+ if (this.$route.query.size) {
|
|
|
+ this.$router.push({
|
|
|
+ name: this.$route.query.pname,
|
|
|
+ query: {
|
|
|
+ size: this.$route.query.size,
|
|
|
+ currentPage: this.$route.query.currentPage
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.$router.go(-1)
|
|
|
+ } else {
|
|
|
+ this.$router.go(-1)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+ .ulbgcolor div {
|
|
|
+ float: left;
|
|
|
+ }
|
|
|
+
|
|
|
+ .hoverdiv:hover {
|
|
|
+ box-shadow: 0 0 4px rgba(0, 0, 0, .4);
|
|
|
+ transform: scale(1.15);
|
|
|
+ }
|
|
|
+
|
|
|
+ .tablebox {
|
|
|
+ .sampletable {
|
|
|
+ border-collapse: collapse;
|
|
|
+
|
|
|
+ td {
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+ }
|
|
|
+
|
|
|
+ td:hover {
|
|
|
+ box-shadow: 0 0 5px rgba(0, 0, 0, .4);
|
|
|
+ transform: scale(1.15);
|
|
|
+ }
|
|
|
+
|
|
|
+ .visibletd {
|
|
|
+ border: 2px solid black;
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+ text-align: center;
|
|
|
+ background: url(/assets/img/yuan.png);
|
|
|
+ background-size: 100% 100%;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ width: 530px;
|
|
|
+ height: 440px;
|
|
|
+ position: relative;
|
|
|
+ display: inline-block;
|
|
|
+ float: left;
|
|
|
+ padding-left: 50px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .image {
|
|
|
+ width: 32px;
|
|
|
+ height: 32px;
|
|
|
+ display: block;
|
|
|
+ position: absolute;
|
|
|
+ padding-left: 8px;
|
|
|
+ margin-top: -17px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .fridge {
|
|
|
+ width: 425px;
|
|
|
+ height: 110px;
|
|
|
+ margin-left: 13px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .worklisticolist {
|
|
|
+ font-size: 14px;
|
|
|
+ margin-bottom: 12px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .worklisticolist i:not(:first-child) {
|
|
|
+ margin-left: 4px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .worklisticolist i {
|
|
|
+ margin-right: 3px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .tdborder {
|
|
|
+ border: 1px solid #B4CDCD;
|
|
|
+ }
|
|
|
+
|
|
|
+ .tdtopborder {
|
|
|
+ border-top: 5px solid #A3A3A3;
|
|
|
+ }
|
|
|
+
|
|
|
+ .tdleftborder {
|
|
|
+ border-left: 5px solid #A3A3A3;
|
|
|
+ }
|
|
|
+
|
|
|
+ .tdrightborder {
|
|
|
+ border-right: 5px solid #A3A3A3;
|
|
|
+ }
|
|
|
+
|
|
|
+ .deviceaddsamptype {
|
|
|
+ margin-top: 2px;
|
|
|
+ margin-left: 1px;
|
|
|
+ border: 1px #CCCCCC solid;
|
|
|
+ overflow: auto;
|
|
|
+ height: 110px;
|
|
|
+ padding: 1px;
|
|
|
+
|
|
|
+ .el-checkbox {
|
|
|
+ margin-left: 4px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-form-item__content .deviceaddsamptype {
|
|
|
+ line-height: 15px;
|
|
|
+ }
|
|
|
+
|
|
|
+</style>
|