js写入剪切板(复制粘贴),文件下载,毫秒数转换日期时间,运单号正则匹配

370 阅读1分钟

复制粘贴

// 写入剪切板
      copyMailNo (mailNo) {
        let str = ''
        var save = function (e) {
          console.log(e)
          e.clipboardData.setData('text/plain', mailNo)
          str = e.clipboardData.getData('Text')
          console.log(str)
          e.preventDefault() // 阻止默认行为
        }
        document.addEventListener('copy', save)
        document.execCommand('copy') // 使文档处于可编辑状态,否则无效
        document.removeEventListener('copy', save) // 移除复制时间避免影响正常的复制
        this.$message.success("已复制运单号")
        return str
      }

文件下载

export function download(res, name) {
	console.log(res, name)
  if (!res) {
	    return
  }
  const filename = 'aaa.xlsx'
  const url = window.URL.createObjectURL(new Blob([res]))
  const link = document.createElement('a')
  link.style.display = 'none'
  link.href = url
  link.setAttribute('download', filename)
  document.body.appendChild(link)
  link.click()
}

毫秒数转换日期时间

export function getMyDate(str) {
  var oDate = new Date(str),
    oYear = oDate.getFullYear(),
    oMonth = oDate.getMonth() + 1,
    oDay = oDate.getDate(),
    oHour = oDate.getHours(),
    oMin = oDate.getMinutes(),
    oSen = oDate.getSeconds(),
    oTime = oYear + '-' + addZero(oMonth) + '-' + addZero(oDay) + ' ' + addZero(oHour) + ':' +
      addZero(oMin) + ':' + addZero(oSen);
  return oTime;
}

//补零操作
function addZero(num) {
  if (parseInt(num) < 10) {
    num = '0' + num;
  }
  return num;
}

elementui dateTimePicker 时间范围限制

// js
// 下单时间起始
        startTime: '',
        startPickerOptions: {
          disabledDate: time => {
            let timeslot = new Date(this.endTime).setHours(0,0,0,0) - time.getTime()
            if (timeslot >= 0 && (timeslot <= 7776000000)) {
              return false
            }
            return true
          }
        },
        // 下单时间截止
        endTime: '',
        endPickerOptions: {
           disabledDate: time => {
            let timeslot = new Date(this.startTime).setHours(0,0,0,0) + 7776000000
            if (time.getTime() <= timeslot && (time.getTime() >= new Date(this.startTime).setHours(0,0,0,0))) {
              return false
            }
            return true
           }
        }
// html
<el-form-item label="下单时间截止" label-position='left'>
    <!-- datetimerange -->
    <el-date-picker v-model="endTime" default-time="08:00:00"
    :picker-options="endPickerOptions" 
    :clearable="false" class="input-width" @change='handleOrderTime'
                    type="datetime" placeholder="请选择下单截止时间">
    </el-date-picker>
  </el-form-item> 
<el-form-item label="下单时间起始" label-position='left' >
    <!-- datetimerange -->
    <el-date-picker v-model="startTime" default-time="08:00:00"
    :picker-options="startPickerOptions"
    :clearable="false" class="input-width" @change='handleOrderTime'
                    type="datetime" placeholder="请选择下单起始时间">
    </el-date-picker>
  </el-form-item>

运单号正则匹配

// 12位纯数字跟15位sf开头
 // 纯数字正则
numberReg: /^\d{12}$/,
// SF+纯数字正则
sfNumberReg:/^[(sf)|(SF)|(Sf)|(sF)]+\d{13}$/,