2021-06-10拖拽和按按箱号预配前端计算空重箱和冷箱以及危险箱的数量

查询显示空重箱冷箱以及危险箱:

//预配池

 preData: {

      handler (newVal, oldVal) {

        let allData = newVal

        let boxAmount = {

          E20: 0,

          E40: 0,

          E45: 0,

          F20: 0,

          F40: 0,

          F45: 0,

          lc20: 0,

          lc40: 0,

          wxp20: 0,

          wxp40: 0

        }



        allData.forEach(item => {

          boxAmount.E20 += Number(item.E20)

          boxAmount.E40 += Number(item.E40)

          boxAmount.E45 += Number(item.E45)

          boxAmount.F20 += Number(item.F20)

          boxAmount.F40 += Number(item.F40)

          boxAmount.F45 += Number(item.F45)

          boxAmount.lc20 += Number(item.lc20)

          boxAmount.lc40 += Number(item.lc40)

          boxAmount.wxp20 += Number(item.wxp20)

          boxAmount.wxp40 += Number(item.wxp40)

        })

        // 20的箱子数量算1, 40、45的箱子数量算2 (只计算: 空、重箱)

        let TueCount = (boxAmount.E20 * 1 + boxAmount.E40 * 2 + boxAmount.E45 * 2) + (boxAmount.F20 * 1 + boxAmount.F40 * 2 + boxAmount.F45 * 2)

        let FULL_TEU = ''

        let EMPTY_TEU = ''

        let DANGER_TEU = ''

        let COLD_TEU = ''

        for (let key in boxAmount) {

          if (boxAmount[key] > 0) {

            switch (key) {

              case 'E20':

                EMPTY_TEU = EMPTY_TEU + boxAmount[key] + 'x20;'

                break

              case 'E40':

                EMPTY_TEU = EMPTY_TEU + boxAmount[key] + 'x40;'

                break

              case 'E45':

                EMPTY_TEU = EMPTY_TEU + boxAmount[key] + 'x45;'

                break

              case 'F20':

                FULL_TEU = FULL_TEU + boxAmount[key] + 'x20;'

                break

              case 'F40':

                FULL_TEU = FULL_TEU + boxAmount[key] + 'x40;'

                break

              case 'F45':

                FULL_TEU = FULL_TEU + boxAmount[key] + 'x45;'

                break

              case 'lc20':

                COLD_TEU = COLD_TEU + boxAmount[key] + 'x20;'

                break

              case 'lc40':

                COLD_TEU = COLD_TEU + boxAmount[key] + 'x40;'

                break

              case 'wxp20':

                DANGER_TEU = DANGER_TEU + boxAmount[key] + 'x20;'

                break

              case 'wxp40':

                DANGER_TEU = DANGER_TEU + boxAmount[key] + 'x40;'

                break

            }

          }

        }

        this.Exsum.FULL_TEU = FULL_TEU

        this.Exsum.EMPTY_TEU = EMPTY_TEU

        this.Exsum.COLD_TEU = COLD_TEU

        this.Exsum.DANGER_TEU = DANGER_TEU

        this.Exsum.TueCount = TueCount

        console.log(this.Exsum.TueCount,'1');

      },

      deep: true

    }

//全选

 selectArr: {

      handler (newVal, oldVal) {

        // 监听 tableData 时的逻辑部分

        // let start = this.currentPage * this.pageDataNum

        // let end = this.tableDataBack.length

        // let allData = []

        // if (start >= end) {

        //   allData = this.tableData

        // } else {

        //   allData = this.tableData.concat(this.tableDataBack.slice(start, end))

        // }

        let boxAmount = {

          E20: 0,

          E40: 0,

          E45: 0,

          F20: 0,

          F40: 0,

          F45: 0,

          lc20: 0,

          lc40: 0,

          wxp20: 0,

          wxp40: 0

        }

        newVal.forEach(item => {

          boxAmount.E20 += Number(item.E20)

          boxAmount.E40 += Number(item.E40)

          boxAmount.E45 += Number(item.E45)

          boxAmount.F20 += Number(item.F20)

          boxAmount.F40 += Number(item.F40)

          boxAmount.F45 += Number(item.F45)

          boxAmount.lc20 += Number(item.lc20)

          boxAmount.lc40 += Number(item.lc40)

          boxAmount.wxp20 += Number(item.wxp20)

          boxAmount.wxp40 += Number(item.wxp40)

        })

        let FULL_TEU = ''

        let EMPTY_TEU = ''

        let DANGER_TEU = ''

        let COLD_TEU = ''

        for (let key in boxAmount) {

          if (boxAmount[key] > 0) {

            switch (key) {

              case 'E20':

                EMPTY_TEU = EMPTY_TEU + boxAmount[key] + 'x20;'

                break

              case 'E40':

                EMPTY_TEU = EMPTY_TEU + boxAmount[key] + 'x40;'

                break

              case 'E45':

                EMPTY_TEU = EMPTY_TEU + boxAmount[key] + 'x45;'

                break

              case 'F20':

                FULL_TEU = FULL_TEU + boxAmount[key] + 'x20;'

                break

              case 'F40':

                FULL_TEU = FULL_TEU + boxAmount[key] + 'x40;'

                break

              case 'F45':

                FULL_TEU = FULL_TEU + boxAmount[key] + 'x45;'

                break

              case 'lc20':

                COLD_TEU = COLD_TEU + boxAmount[key] + 'x20;'

                break

              case 'lc40':

                COLD_TEU = COLD_TEU + boxAmount[key] + 'x40;'

                break

              case 'wxp20':

                DANGER_TEU = DANGER_TEU + boxAmount[key] + 'x20;'

                break

              case 'wxp40':

                DANGER_TEU = DANGER_TEU + boxAmount[key] + 'x40;'

                break

            }

          }

        }

        this.sum.FULL_TEU = FULL_TEU

        this.sum.EMPTY_TEU = EMPTY_TEU

        this.sum.COLD_TEU = COLD_TEU

        this.sum.DANGER_TEU = DANGER_TEU

      },

      deep: true

    },

//预配池去除按钮

  async deleteList () {

      if (this.select.length <= 0) {

        this.$message.info('请选择数据!')

        return

      }

      let idArr = []

      let BOOKIDs = []

      this.select.forEach((item) => {

        if (!item.isDaiPei && item.isreal) {

          BOOKIDs.push(item.BOOKID)

        }

      })

      if (BOOKIDs.length > 0) {

        let res = await Api.GetImStowageIds({ ids: BOOKIDs })

        if (res.data) {

          res.data.forEach((item) => {

            idArr.push(...item.m)

          })

        }

        let params = {

          Ids: idArr.map(el => el.id),

          ProjectId: this.PCTID

        }

        let result = await Api.CancelContainer(params)

        if (result.data.code === 0) {

          this.$message.success('已保存提单取消预配成功!')

        }

      }


      // 对选中返回待配池的数据 做处理

      this.select.forEach((item, index)=>{

        for (let i = this.tableData.length - 1; i >= 0 ; i--) {

          if (this.tableData[i].BOOKNO === item.BOOKNO) {

            let boxAmount = {

              E20: Number(this.tableData[i].E20) + Number(this.select[index].E20),

              E40: Number(this.tableData[i].E40) + Number(this.select[index].E40),

              E45: Number(this.tableData[i].E45) + Number(this.select[index].E45),

              F20: Number(this.tableData[i].F20) + Number(this.select[index].F20),

              F40: Number(this.tableData[i].F40) + Number(this.select[index].F40),

              F45: Number(this.tableData[i].F45) + Number(this.select[index].F45),

              lc20: Number(this.tableData[i].lc20) + Number(this.select[index].lc20),

              lc40: Number(this.tableData[i].lc40) + Number(this.select[index].lc40),

              wxp20: Number(this.tableData[i].wxp20) + Number(this.select[index].wxp20),

              wxp40: Number(this.tableData[i].wxp40) + Number(this.select[index].wxp40)

            }

            item.DOC_COUNT = this.getBoxAmountText(boxAmount)

            item = Object.assign(item, boxAmount)

            this.tableData.splice(i, 1)

          }

        }

        this.preData.forEach((items,index)=>{

          if(item.BILLID===items.BILLID){

            item.checkedList = null

            item.isreal = false

            this.tableData.unshift(item)

            this.preData.splice(index,1)

          }

        })

      })

      this.$refs.table2.clearSelection()

    },

待配池拖拽到预配池

initSorttable1 () {

      var that = this;

      var el = document.querySelector(".advance .el-table__body tbody");

      Sortable.create(el, {

        sort: false,

        handle: ".el-table__row", //拖动

        animation: 100, //定义排序动画的时间

        group: { name: "name", pull: true, put: true },

        onAdd: function (evt) {

            if(that.PCTID===''){

            that.preData.forEach((item,index)=>{

              if(item.isDaiPei===false && item.isreal===true){

                // 根据preData的索引去删除原本存在preData里的数据

                that.preData.splice(index, 1)

              }

            })

          }

          if (that.selectArr.length === 0) {

            // 截取到订舱号得id作为唯一表示去进行拖拽

            var evtTtem = evt.item.cells[2].innerHTML

            var ss = evtTtem.split(">")[2];

            var bb = ss.split("<")[0].trim()

            let preSameIndex = that.preData.findIndex(el => el.BOOKNO === bb)

            that.tableData.forEach((item, indexs) => {

              if (item.BOOKNO === bb) {

                if (preSameIndex > -1) {

                  let boxAmount = {

                    E20: Number(item.E20) + Number(that.preData[preSameIndex].E20),

                    E40: Number(item.E40) + Number(that.preData[preSameIndex].E40),

                    E45: Number(item.E45) + Number(that.preData[preSameIndex].E45),

                    F20: Number(item.F20) + Number(that.preData[preSameIndex].F20),

                    F40: Number(item.F40) + Number(that.preData[preSameIndex].F40),

                    F45: Number(item.F45) + Number(that.preData[preSameIndex].F45),

                    lc20: Number(item.lc20) + Number(that.preData[preSameIndex].lc20),

                    lc40: Number(item.lc40) + Number(that.preData[preSameIndex].lc40),

                    wxp20: Number(item.wxp20) + Number(that.preData[preSameIndex].wxp20),

                    wxp40: Number(item.wxp40) + Number(that.preData[preSameIndex].wxp40)

                  }

                  item.DOC_PRETEU = that.getBoxAmountText(boxAmount)

                  that.tableData[indexs] = Object.assign(that.tableData[indexs], boxAmount)

                  that.preData.splice(preSameIndex, 1)

                }

                that.tableData[indexs].isreal = true

                that.preData.unshift(that.tableData[indexs]);

                that.tableData.splice(indexs, 1);

              }

            });

          } else {

            if (that.selectArr.length === that.tableData.length) {

              that.tableData = [];

            } else {

              that.selectArr.forEach((item) => {

                var indexs = that.tableData.findIndex((res) => {

                  return item.BOOKID === res.BOOKID;

                });

                that.tableData.splice(indexs, 1);

              })

            }

            that.selectArr.forEach((item, index)=>{

              item.isreal = true

              for (let i = that.preData.length - 1; i >= 0; i--) {

                if (item.BOOKNO === that.preData[i].BOOKNO) {

                  let boxAmount = {

                    E20: Number(item.E20) + Number(that.preData[i].E20),

                    E40: Number(item.E40) + Number(that.preData[i].E40),

                    E45: Number(item.E45) + Number(that.preData[i].E45),

                    F20: Number(item.F20) + Number(that.preData[i].F20),

                    F40: Number(item.F40) + Number(that.preData[i].F40),

                    F45: Number(item.F45) + Number(that.preData[i].F45),

                    lc20: Number(item.lc20) + Number(that.preData[i].lc20),

                    lc40: Number(item.lc40) + Number(that.preData[i].lc40),

                    wxp20: Number(item.wxp20) + Number(that.preData[i].wxp20),

                    wxp45: Number(item.wxp45) + Number(that.preData[i].wxp45)

                  }

                  item.DOC_PRETEU = that.getBoxAmountText(boxAmount)

                  that.selectArr[index] = Object.assign(that.selectArr[index], boxAmount)

                  that.preData.splice(i, 1)

                }

              }

            })

            that.preData = [...that.selectArr, ...that.preData];

            that.$forceUpdate();

            that.$refs.table1.clearSelection();

            that.selectArr = []

          }

        },

      });

    },

预配池拖拽到待配池

 initSorttable () {

      var that = this;

      var el = document.querySelector(".WithPool .el-table__body tbody");

      Sortable.create(el, {

        sort: false,

        handle: ".el-table__row",

        animation: 100,

        group: { name: "name", pull: true, put: true },

        //从另外一个列表移动到本列表时触发

        onAdd: function (evt) {

          if (that.select.length === 0) {

            //evt.newIndex 移入到新数组的下标

            // 截取到订舱号得id作为唯一表示去进行拖拽

            var evtTtem = evt.item.cells[2].innerHTML

            var ss = evtTtem.split(">")[2];

            var bb = ss.split("<")[0].trim()

            let tableSameIndex = that.tableData.findIndex(item => item.BOOKNO === bb)

            that.preData.forEach((item, indexs) => {

              if (item.BOOKNO === bb) {

                if (tableSameIndex > -1) {

                  let boxAmount = {

                    E20: Number(that.tableData[tableSameIndex].E20) + Number(item.E20),

                    E40: Number(that.tableData[tableSameIndex].E40) + Number(item.E40),

                    E45: Number(that.tableData[tableSameIndex].E45) + Number(item.E45),

                    F20: Number(that.tableData[tableSameIndex].F20) + Number(item.F20),

                    F40: Number(that.tableData[tableSameIndex].F40) + Number(item.F40),

                    F45: Number(that.tableData[tableSameIndex].F45) + Number(item.F45),

                    lc20: Number(that.tableData[tableSameIndex].lc20) + Number(item.lc20),

                    lc40: Number(that.tableData[tableSameIndex].lc40) + Number(item.lc40),

                    wxp20: Number(that.tableData[tableSameIndex].wxp20) + Number(item.wxp20),

                    wxp40: Number(that.tableData[tableSameIndex].wxp40) + Number(item.wxp40)

                  }

                  that.preData[indexs].DOC_COUNT = that.getBoxAmountText(boxAmount)

                  that.preData[indexs] = Object.assign(that.preData[indexs], boxAmount)

                  that.tableData.splice(tableSameIndex, 1)

                }

                that.preData[indexs].isreal = false

                that.preData[indexs].checkedList = null

                that.tableData.splice(0, 0, that.preData[indexs]);

                that.preData.splice(indexs, 1);

              }

            });

          } else {

            if (that.select.length === that.preData.length) {

              that.preData = [];

            } else {

              that.select.forEach((item) => {

                var indexs = that.preData.findIndex((res) => {

                  return item.BOOKID === res.BOOKID;

                });

                that.preData.splice(indexs, 1);

              });

            }

            that.select.forEach((item, index)=>{

              item.isreal = false

              item.checkedList = null

              for (let i = that.tableData.length - 1; i >= 0; i--) {

                if (that.tableData[i].BOOKNO === item.BOOKNO) {

                  let boxAmount = {

                    E20: Number(that.tableData[i].E20) + Number(item.E20),

                    E40: Number(that.tableData[i].E40) + Number(item.E40),

                    E45: Number(that.tableData[i].E45) + Number(item.E45),

                    F20: Number(that.tableData[i].F20) + Number(item.F20),

                    F40: Number(that.tableData[i].F40) + Number(item.F40),

                    F45: Number(that.tableData[i].F45) + Number(item.F45),

                    lc20: Number(that.tableData[i].lc20) + Number(item.lc20),

                    lc40: Number(that.tableData[i].lc40) + Number(item.lc40),

                    wxp20: Number(that.tableData[i].wxp20) + Number(item.wxp20),

                    wxp40: Number(that.tableData[i].wxp40) + Number(item.wxp40)

                  }

                  item.DOC_COUNT = that.getBoxAmountText(boxAmount)

                  item = Object.assign(item, boxAmount)

                  that.tableData.splice(i, 1)

                }

              }

            })

            that.tableData = [...that.select, ...that.tableData];

            that.$forceUpdate();

            that.$refs.table2.clearSelection();

            that.select = []

          }

        },

      });

    },

展示效果图:


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容