skyouc
2025-06-22 fee38f39e36bcda9924f5b26dca609dda6b331e0
construction-data/src/components/datav/index.vue
@@ -45,25 +45,7 @@
                  <el-table :data="orders" v-if="orders.length > 0" class="order-table">
                    <el-table-column v-for="(item, dex) in Object.keys(orderStatus)" :prop="item" :label="orderStatus[item]" :key="dex" >
                      <template slot-scope="scope">
                        <el-popover
                          placement="right"
                          trigger="manual"
                          class="popover-order"
                          v-model="visible"
                          v-if="item === 'action'" >
                          <template>
                            <div>
                              <span>选择目标发货区</span>
                              <el-divider/>
                              <el-row :gutter="15">
                                <el-col v-for="(palt, index) in platforms" :key="index" :span="7" @click.native="bindShipping(palt, scope)">
                                  <div class="platform" >{{palt.platformNo}}</div>
                                </el-col>
                              </el-row>
                            </div>
                          </template>
                          <el-button slot="reference" type="text" @click.native.prevent="print(scope.$index, orders)" class="btnPrint">打印明细</el-button>
                        </el-popover>
                        <el-button slot="reference" type="text" @click.native.prevent="print(scope.$index, orders)" class="btnPrint" v-if="item === 'action'" >打印明细</el-button>
                        <div v-else class="ship-order-list">
                          {{scope.row[item]}}
                        </div>
@@ -71,20 +53,37 @@
                    </el-table-column>
                  </el-table>
                  <el-empty description="暂无投放订单" class="empty-padding" v-else></el-empty>
                  <el-popover
                    placement="right"
                    trigger="manual"
                    class="popover-order"
                    v-model="visible">
                    <template>
                      <div>
                        <span>选择目标发货区</span>
                        <el-divider/>
                        <el-row :gutter="15">
                          <el-col v-for="(palt, index) in platforms" :key="index" :span="7" @click.native="bindShipping(palt)">
                            <div class="platform" >{{palt.platformNo}}</div>
                          </el-col>
                        </el-row>
                      </div>
                    </template>
                  </el-popover>
                </dv-border-box-11>
              </el-row>
              <el-row type="flex" align="center" id="datav">
                <dv-border-box-11  title="播种墙" class="pick-wall" >
                  <el-row type="flex" align="center" justify="center" class="pick-wall-circle" >
                    <el-col :span="1">
                      <p class="pick-wall-tip"></p>
                    </el-col>
                    <el-col :span="22">
                      <p>绿色:任务已完成  黄色:等待中  红色:播种中</p>
                    </el-col>
                  </el-row>
<!--                  <el-row type="flex" align="center" justify="center" class="pick-wall-circle" >-->
<!--                    <el-col :span="1">-->
<!--                      <p class="pick-wall-tip"></p>-->
<!--                    </el-col>-->
<!--                    <el-col :span="22">-->
<!--                      <p>绿色:任务已完成  黄色:等待中  红色:播种中</p>-->
<!--                    </el-col>-->
<!--                  </el-row>-->
                  <div class="pick-wall-box">
                    <el-col :span="6" v-for="(item, index) in seedBracket" :key="index" @click.native="lightClick(item)">
                    <el-col :span="6" v-for="(item, index) in seedBracket" :key="index">
                      <div class="seed-bracket" :style="getLightStatus(item)" />
                    </el-col>
                  </div>
@@ -189,13 +188,12 @@
    }
  },
  created () {
    //获取当前执行任务
    this.getWaves()
    //获取当前播种墙库位信息
    this.getSeedLoc()
    //获取所有发货暂存区
    this.getAllPlatforms()
    let that = this
    setInterval(() => {
        that.refreshData()
    }, 10000)
  },
  computed: {
    getLightStatus() {
      return (item)=> {
@@ -208,6 +206,14 @@
    }
  },
  methods: {
    refreshData() {
      //获取当前执行任务
      this.getWaves()
      //获取当前播种墙库位信息
      this.getSeedLoc()
      //获取所有发货暂存区
      this.getAllPlatforms()
    },
    printPage() {
      // let element = document.querySelector('#datav');
      // let el = this.$refs.datav
@@ -228,12 +234,16 @@
    },
    //拍灯容器流动
    lightClick(item) {
      if (item.platformId == null || item.platformId == undefined || item.platformId == '') {
        this.$message.error('请打印订单明细,并选择目标集货区!!')
        return
      }
      this.slapLight(item)
    },
    //订单入库集货区,并打印单据
    bindShipping(plat, item) {
    bindShipping(plat) {
      this.visible = false
      let order = item.row
      let order = this.selectOrder
      if (order == null) {
        this.$message.error("当前订单信息不存在,请联系管理员!!")
        return
@@ -242,6 +252,7 @@
      // eslint-disable-next-line no-undef
      $ajax.post('/api/bind/shipping/platform', {orderId: order.id, waveId: order.waveId, platformId: plat.id}).then(response => {
        if (response.code === 200) {
          that.refreshData()
          //隐藏发货区,执行打印
        } else {
          this.$message.error(response.msg)
@@ -408,8 +419,6 @@
</script>
<style lang="less">
  @media screen and (max-width: 1920px){
    #data-view {
      width: 100%;
@@ -429,14 +438,10 @@
        margin: 5px 0;
      }
      .pick-order-detl {
        padding: 0 15px;
        .detl-box-border {
          height: 59vh;
          height: 55vh;
          .detl-box-padding {
            height: 65px
          }
@@ -447,10 +452,8 @@
        text-align: center;
        color: white;
        margin: 20vh;
        .container {
          padding: 45px 60px;
          .btn {
            width: 30vh;height: 7vh;font-size: 23px;
          }
@@ -480,7 +483,7 @@
      .pick-wall {
        padding: 60px 10px 10px 10px;
        height: 68vh;
        height: 47vh;
        .pick-wall-box {
          .seed-bracket {
@@ -500,6 +503,10 @@
            width: 1px;
            background: #03d3ec;
            border-left: 5px solid #50bfff
          }
          span {
            margin: 2px;
          }
        }
      }
@@ -543,7 +550,7 @@
      .order-box-row {
        width: 84vh;
        height: 38vh;
        height: 33vh;
        .order-box {
          padding:0px 30px;
@@ -567,16 +574,16 @@
              }
            }
            .ship-order-list {
              font-size: 18px; color: white;
            }
          }
        }
        .empty-padding {
          padding-top: 65px;
          padding-top: 105px;
          .el-empty__image {
            height: 100px;
          }
        }
      }
      .order-detl-list {