spring
7 天以前 c4b9151c96c1275ada3c5f05814a82cd99a1356e
src/components/view/b1-sample.vue
@@ -178,7 +178,7 @@
          <div class="search_label">仓库名称:</div>
          <div class="search_input">
            <el-select v-model="entity.warehouseId" placeholder="选择仓库" size="small" @change="warehouseChange">
              <el-option v-for="item in warehouse" :key="item.id" :label="item.name" :value="item.id">
              <el-option v-for="item in warehouseAll" :key="item.id" :label="item.name" :value="item.id">
              </el-option>
            </el-select>
          </div>
@@ -196,9 +196,13 @@
          <div class="search_label">样品编号:</div>
          <div class="search_input">
            <el-input placeholder="请输入样品编号" v-model="searchSampleCode" size="small" autocomplete="off" ref="organization" readonly="readonly" @focus="remove('organization')" @blur="setType('organization')">
              <el-button slot="append" icon="el-icon-search" @click="handleSearch"></el-button>
              <!-- <el-button slot="append" icon="el-icon-search" @click="handleSearch"></el-button> -->
            </el-input>
          </div>
        </div>
        <div class="search_thing">
          <el-button size="small" @click="handleShelf(entity.shelfId,''),searchSampleCode=''">重置</el-button>
          <el-button size="small" type="primary" @click="handleShelf(entity.shelfId,searchSampleCode)">查询</el-button>
        </div>
        <!-- <div class="search_thing" style="padding-left: 30px;">
               <el-button size="small" @click="refresh()">重 置</el-button>
@@ -262,6 +266,13 @@
            </el-input>
          </div>
        </el-col>
        <el-col class="search_thing" :span="24">
          <div class="search_label" style="width: 90px"><span class="required-span">* </span>订单编号:</div>
          <div class="search_input">
            <el-input v-model="entrustCode" size="small" clearable :disabled="sampleCodeBtnDisabled">
            </el-input>
          </div>
        </el-col>
      </el-row>
      <el-tree :data="storageList" ref="tree" :props="{ children: 'warehouseShelfList', label: 'name' }" node-key="id"
        :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current @node-expand="nodeOpen"
@@ -298,6 +309,13 @@
            </el-input>
          </div>
        </el-col>
        <el-col class="search_thing" :span="24">
          <div class="search_label" style="width: 90px"><span class="required-span">* </span>委托编号:</div>
          <div class="search_input">
            <el-input v-model="entrustCode" size="small" clearable :disabled="sampleCodeBtnDisabled">
            </el-input>
          </div>
        </el-col>
      </el-row>
      <span slot="footer" class="dialog-footer">
        <el-button @click="exportVisible = false">取 消</el-button>
@@ -305,7 +323,7 @@
      </span>
    </el-dialog>
    <el-dialog title="库位维护" :visible.sync="keepVisible" width="350px" :append-to-body="true">
      <el-tree :data="warehouse" ref="tree" :props="{ children: 'warehouseShelfList', label: 'name' }" node-key="id"
      <el-tree :data="warehouseAll" ref="tree" :props="{ children: 'warehouseShelfList', label: 'name' }" node-key="id"
        :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current @node-expand="nodeOpen"
        @node-collapse="nodeClose" :default-expanded-keys="expandedKeys" v-if="keepVisible"
        empty-text="暂无数据">
@@ -392,6 +410,7 @@
        },
        sampleCodeBtnDisabled:true,
        warehouse: [],
        warehouseAll: [],
        startTime: null,
        shelf: [],
        storageList:[],
@@ -416,6 +435,7 @@
        currentEdit:null,//当前要维护的信息
        tableLoading:false,
        sampleCode:'',
        entrustCode:'',
        currentId:null,
        searchSampleCode:null,
        codeInfo:null,
@@ -424,7 +444,9 @@
    watch:{
      storageVisible(newVal){
        if(newVal){
            this.selectList()
            this.sampleCode = null
            this.entrustCode = null
            // this.$message.success('扫码:打开')
            let input = document.getElementById('ScanCodeInfo0');
            input.focus();
@@ -441,6 +463,7 @@
        if(newVal){
            // this.$message.success('扫码:打开')
            this.sampleCode = null
            this.entrustCode = null
            let input = document.getElementById('ScanCodeInfo0');
            input.focus();
            this.startTime = setInterval(()=>{
@@ -456,7 +479,6 @@
        if(!val){
          this.startTime&&clearInterval(this.startTime)
        }else if(this.exportVisible||this.storageVisible){
          this.sampleCode = null
          let input = document.getElementById('ScanCodeInfo');
          input.focus();
          this.startTime = setInterval(()=>{
@@ -475,14 +497,15 @@
    },
    methods: {
      keyup(e){
        var code = ''
        var codeInfo = null
        try{
            console.log(2222,this.codeInfo)
            code = this.codeInfo.substring()
            if(code==null||code==undefined||code==''){
            codeInfo = JSON.parse(this.codeInfo)
            if(!codeInfo||codeInfo.sampleCode==undefined||codeInfo.entrustCode==undefined){
                this.$message.error('该二维码有误')
            }else{
                this.sampleCode = code
                this.sampleCode = codeInfo.sampleCode
                this.entrustCode = codeInfo.entrustCode
            }
        }catch(e){
            this.$message.error('请调至英文键盘')
@@ -500,43 +523,67 @@
          this.storageList = this.HaveJson(res.data).map(item=>{
            item.warehouseShelfList&&item.warehouseShelfList.length>0&&item.warehouseShelfList.map(m=>{
              let warehouseShelfList = [];
              for (let i=1;i<m.row+1;i++){
                let warehouseShelfList0 = []
                for (let j=1;j<m.col+1;j++){
              let warehouseShelfList0 = []
              let warehouseCellList = m.warehouseCellList?m.warehouseCellList:[]
              warehouseCellList.forEach(a=>{
                if(warehouseShelfList.find(n=>n.id==a.row)){
                  warehouseShelfList0.push({
                    name:j+' 列',
                    id:j,
                    name:a.col+'列',
                    id:a.col
                  })
                }else if(warehouseShelfList.length==0){
                  warehouseShelfList.push({
                    name:a.row+'层',
                    id:a.row
                  })
                  warehouseShelfList0.push({
                    name:a.col+'列',
                    id:a.col
                  })
                }else if(!warehouseShelfList.find(n=>n.id==a.row)){
                  warehouseShelfList[warehouseShelfList.length-1].warehouseShelfList = JSON.parse(JSON.stringify(warehouseShelfList0))
                  warehouseShelfList0 = []
                  warehouseShelfList.push({
                    name:a.row+'层',
                    id:a.row
                  })
                  warehouseShelfList0.push({
                    name:a.col+'列',
                    id:a.col
                  })
                }
                warehouseShelfList.push({
                  name:i+' 层',
                  id:i,
                  warehouseShelfList:warehouseShelfList0
                })
              }
              })
              warehouseShelfList[warehouseShelfList.length-1].warehouseShelfList = JSON.parse(JSON.stringify(warehouseShelfList0))
              m.warehouseShelfList = warehouseShelfList;
              return m;
            })
            return item;
          })
          if(!this.entity.warehouseId&&this.warehouse.length>0){
            this.entity.warehouseId = this.warehouse[0].id
            this.warehouseChange(this.entity.warehouseId)
            if(this.shelf.length>0){
              this.entity.shelfId = this.shelf[0].id
              this.handleShelf(this.entity.shelfId)
            }else{
              this.tableList = []
          this.selectWarehouseAllList().then(() => {
            if(!this.entity.warehouseId&&this.warehouseAll.length>0){
              this.entity.warehouseId = this.warehouseAll[0].id
              this.warehouseChange(this.entity.warehouseId)
              if(this.shelf.length>0){
                this.entity.shelfId = this.shelf[0].id
                this.handleShelf(this.entity.shelfId)
              }else{
                this.tableList = []
              }
            }else if(this.warehouseAll.length>0){
              this.warehouseChange(this.entity.warehouseId)
              if(this.shelf.length>0){
                this.entity.shelfId = this.shelf[0].id
                this.handleShelf(this.entity.shelfId)
              }else{
                this.tableList = []
              }
            }
          }else if(this.warehouse.length>0){
            this.warehouseChange(this.entity.warehouseId)
            if(this.shelf.length>0){
              this.entity.shelfId = this.shelf[0].id
              this.handleShelf(this.entity.shelfId)
            }else{
              this.tableList = []
            }
          }
          })
        })
      },
      selectWarehouseAllList() {
        return this.$axios.get('/warehouse/selectWarehouseAll').then(res => {
          this.warehouseAll = res.data || []
        })
      },
      selectStandardTreeList() {
@@ -555,6 +602,10 @@
          this.$message.error('请填写样品编号')
          return
        }
        if (!this.entrustCode) {
          this.$message.error('请填写订单编号')
          return
        }
        if (this.selectTree.length < 4) {
          this.$message.error('请选择样品入库位置')
          return
@@ -562,11 +613,13 @@
        this.upLoadStorage = true;
        this.$axios.post(this.$api.warehouse.inWarehouse, {
            trees: this.selectTree.join('-'),
            sampleCode:this.sampleCode
            sampleCode:this.sampleCode,
            entrustCode:this.entrustCode
          }).then(res => {
            this.upLoadStorage = false;
            this.storageVisible = false
            this.sampleCode = '';
            this.entrustCode = '';
            this.selectTree = []
            if (res.code == 201) {
              this.$message.error('入库失败')
@@ -582,13 +635,19 @@
          this.$message.error('请填写样品编号')
          return
        }
        if (!this.entrustCode) {
          this.$message.error('请填写订单编号')
          return
        }
        this.upLoadExport = true;
        this.$axios.post(this.$api.warehouse.outWarehouse, {
            sampleCode:this.sampleCode
            sampleCode:this.sampleCode,
            entrustCode:this.entrustCode,
          }).then(res => {
            this.upLoadExport = false;
            this.exportVisible = false
            this.sampleCode = '';
            this.entrustCode = '';
            if (res.code == 201) {
              this.$message.error('出库失败')
              return
@@ -777,16 +836,16 @@
      },
      warehouseChange(val) {
        this.tableList = []
        let map = this.warehouse.find(a => {
        let map = this.warehouseAll.find(a => {
          return a.id === val ? a : null
        })
        this.shelf = map.warehouseShelfList;
        this.shelf = map && map.warehouseShelfList ? map.warehouseShelfList : [];
        this.entity.shelfId = '';
      },
      handleShelf(e){
      handleShelf(e,sampleCode=''){
        if(e){
          this.tableLoading = true;
          this.$axios.get(this.$api.warehouse.getWarehouse+'?shelfId='+e).then(res => {
          this.$axios.get(this.$api.warehouse.getWarehouse+'?shelfId='+e+'&sampleCode='+(sampleCode?sampleCode:'')).then(res => {
            this.tableLoading = false;
            let data = res.data;
            let set =new Set()