淘宝直通车表格拖动时间段选择插件,纯手写80%还原

默认显示这样
在这里插入图片描述
选择后不同时间显示不同颜色
在这里插入图片描述
这是获得的时间段数据

00:00-24:00:100;00:00-01:30:100,01:30-04:30:150,04:30-06:30:100,06:30-23:30:250,23:30-24:00:100;00:00-01:30:100,01:30-04:30:150,04:30-06:30:100,06:30-09:00:250,09:00-19:30:30,19:30-23:30:250,23:30-24:00:100;00:00-01:30:100,01:30-04:30:150,04:30-06:30:100,06:30-09:00:250,09:00-19:30:30,19:30-23:30:250,23:30-24:00:100;00:00-01:30:100,01:30-04:30:150,04:30-06:30:100,06:30-09:00:250,09:00-19:30:30,19:30-23:30:250,23:30-24:00:100;00:00-01:30:100,01:30-04:30:150,04:30-06:30:100,06:30-23:30:250,23:30-24:00:100;
/**
 *
 * TODO: 数据回显
 */
const EchoData = async () => {
  if (!propsData || propsData == 'all') {
    return
  }
  propsDataAyy = propsData.split(';')
  propsDataAyy.forEach((item, i) => {
    propsDataAyy[i] = item.split(',')
  })
  let rowData = {}
  let emptyData = ''
  propsDataAyy.forEach((item, i) => {
    item.forEach((items, index) => {
      if (items == 0) {
        for (let o = i * splitLen; o < i * splitLen + splitLen; o++) {
          datas.rowUnit[o].discount = 0
        }
        return
      } else {
        if (item[index - 1]) {
          let s =
            item[index - 1].split('-')[1].split(':')[0] +
            ':' +
            item[index - 1].split('-')[1].split(':')[1]
          let w = items.split('-')[0]
          if (s != w) {
            rowData = conptCoverGezi(i, s + '-' + w + ':0')
            setTableDiscont(index, rowData)
          }
        }
        rowData = conptCoverGezi(i, items)
        setTableDiscont(index, rowData)
      }
    })
  })
}
/**
 *
 * TODO: 组装数据
 */
let submitParams = []
const SpellParms = () => {
  submitParams = [[], [], [], [], [], [], []]
  let objBefore = {} // 记录变化开始的对象
  let changeIndex = 0 // 记录变化开始的下标
  datas.rowUnitend.forEach((item, i) => {
    item.forEach((items, index) => {
      if (index === 0) {
        objBefore = items
      }
      // 如果数据发生变化
      if (objBefore.discount != items.discount) {
        // 判断是否到了最后一个
        if (index === item.length - 1) {
          if (objBefore.discount != 0) {
            submitParams[i].push(
              objBefore.data + '-' + items.data + ':' + objBefore.discount
            )
            submitParams[i].push(
              items.data + '-' + '24:00' + ':' + items.discount
            )
          }
        } else {
          if (objBefore.discount != 0) {
            submitParams[i].push(
              objBefore.data + '-' + item[index].data + ':' + objBefore.discount
            )
          }
        }

        changeIndex = index
        objBefore = items
      }
      // 到最后一条数据的时候判断前面数据发生变化时的下标是否是最后一条 如果不是 拼接最后一组数据
      if (index === item.length - 1) {
        if (changeIndex != index) {
          if (objBefore.discount == items.discount) {
            if (objBefore.discount === 0) {
              submitParams[i].push(0)
            } else {
              submitParams[i].push(
                objBefore.data + '-' + '24:00' + ':' + items.discount
              )
            }
          }
        }
      }
    })
  })
  submitParams.forEach((item, index) => {
    submitParams[index] = item.join(',')
  })
  console.log(submitParams.join(';'))
}

上述是主要的代码。有需要的留言。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值