导入过滤器
This commit is contained in:
		
							parent
							
								
									568f95dd5b
								
							
						
					
					
						commit
						40facf16f0
					
				
							
								
								
									
										399
									
								
								src/filters/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										399
									
								
								src/filters/index.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,399 @@
 | 
				
			|||||||
 | 
					// import parseTime, formatTime and set to filter
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Show plural label if time is plural number
 | 
				
			||||||
 | 
					 * @param {number} time
 | 
				
			||||||
 | 
					 * @param {string} label
 | 
				
			||||||
 | 
					 * @return {string}
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function pluralize(time, label) {
 | 
				
			||||||
 | 
					  if (time === 1) {
 | 
				
			||||||
 | 
					    return time + label
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  return time + label + 's'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @param {number} time
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export function timeAgo(time) {
 | 
				
			||||||
 | 
					  const between = Date.now() / 1000 - Number(time)
 | 
				
			||||||
 | 
					  if (between < 3600) {
 | 
				
			||||||
 | 
					    return pluralize(~~(between / 60), ' minute')
 | 
				
			||||||
 | 
					  } else if (between < 86400) {
 | 
				
			||||||
 | 
					    return pluralize(~~(between / 3600), ' hour')
 | 
				
			||||||
 | 
					  } else {
 | 
				
			||||||
 | 
					    return pluralize(~~(between / 86400), ' day')
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Number formatting
 | 
				
			||||||
 | 
					 * like 10000 => 10k
 | 
				
			||||||
 | 
					 * @param {number} num
 | 
				
			||||||
 | 
					 * @param {number} digits
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export function numberFormatter(num, digits) {
 | 
				
			||||||
 | 
					  const si = [
 | 
				
			||||||
 | 
					    { value: 1E18, symbol: 'E' },
 | 
				
			||||||
 | 
					    { value: 1E15, symbol: 'P' },
 | 
				
			||||||
 | 
					    { value: 1E12, symbol: 'T' },
 | 
				
			||||||
 | 
					    { value: 1E9, symbol: 'G' },
 | 
				
			||||||
 | 
					    { value: 1E6, symbol: 'M' },
 | 
				
			||||||
 | 
					    { value: 1E3, symbol: 'k' }
 | 
				
			||||||
 | 
					  ]
 | 
				
			||||||
 | 
					  for (let i = 0; i < si.length; i++) {
 | 
				
			||||||
 | 
					    if (num >= si[i].value) {
 | 
				
			||||||
 | 
					      return (num / si[i].value).toFixed(digits).replace(/\.0+$|(\.[0-9]*[1-9])0+$/, '$1') + si[i].symbol
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  return num.toString()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * 10000 => "10,000"
 | 
				
			||||||
 | 
					 * @param {number} num
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export function toThousandFilter(num) {
 | 
				
			||||||
 | 
					  return (+num || 0).toString().replace(/^-?\d+/g, m => m.replace(/(?=(?!\b)(\d{3})+$)/g, ','))
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Upper case first char
 | 
				
			||||||
 | 
					 * @param {String} string
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export function uppercaseFirst(string) {
 | 
				
			||||||
 | 
					  return string.charAt(0).toUpperCase() + string.slice(1)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export function parseTime(time, cFormat) {
 | 
				
			||||||
 | 
					  if (arguments.length === 0) {
 | 
				
			||||||
 | 
					    return null
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if ((time + '').length === 10) {
 | 
				
			||||||
 | 
					    time = +time * 1000
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
 | 
				
			||||||
 | 
					  let date
 | 
				
			||||||
 | 
					  if (typeof time === 'object') {
 | 
				
			||||||
 | 
					    date = time
 | 
				
			||||||
 | 
					  } else {
 | 
				
			||||||
 | 
					    date = new Date(parseInt(time))
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  const formatObj = {
 | 
				
			||||||
 | 
					    y: date.getFullYear(),
 | 
				
			||||||
 | 
					    m: date.getMonth() + 1,
 | 
				
			||||||
 | 
					    d: date.getDate(),
 | 
				
			||||||
 | 
					    h: date.getHours(),
 | 
				
			||||||
 | 
					    i: date.getMinutes(),
 | 
				
			||||||
 | 
					    s: date.getSeconds(),
 | 
				
			||||||
 | 
					    a: date.getDay()
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  const timeStr = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
 | 
				
			||||||
 | 
					    let value = formatObj[key]
 | 
				
			||||||
 | 
					    if (key === 'a') {
 | 
				
			||||||
 | 
					      return ['一', '二', '三', '四', '五', '六', '日'][value - 1]
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if (result.length > 0 && value < 10) {
 | 
				
			||||||
 | 
					      value = '0' + value
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return value || 0
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					  return timeStr
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export function formatTime(time, option) {
 | 
				
			||||||
 | 
					  time = +time * 1000
 | 
				
			||||||
 | 
					  const d = new Date(time)
 | 
				
			||||||
 | 
					  const now = Date.now()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const diff = (now - d) / 1000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (diff < 30) {
 | 
				
			||||||
 | 
					    return '刚刚'
 | 
				
			||||||
 | 
					  } else if (diff < 3600) {
 | 
				
			||||||
 | 
					    // less 1 hour
 | 
				
			||||||
 | 
					    return Math.ceil(diff / 60) + '分钟前'
 | 
				
			||||||
 | 
					  } else if (diff < 3600 * 24) {
 | 
				
			||||||
 | 
					    return Math.ceil(diff / 3600) + '小时前'
 | 
				
			||||||
 | 
					  } else if (diff < 3600 * 24 * 2) {
 | 
				
			||||||
 | 
					    return '1天前'
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  if (option) {
 | 
				
			||||||
 | 
					    return parseTime(time, option)
 | 
				
			||||||
 | 
					  } else {
 | 
				
			||||||
 | 
					    return (
 | 
				
			||||||
 | 
					      d.getMonth() +
 | 
				
			||||||
 | 
					      1 +
 | 
				
			||||||
 | 
					      '月' +
 | 
				
			||||||
 | 
					      d.getDate() +
 | 
				
			||||||
 | 
					      '日' +
 | 
				
			||||||
 | 
					      d.getHours() +
 | 
				
			||||||
 | 
					      '时' +
 | 
				
			||||||
 | 
					      d.getMinutes() +
 | 
				
			||||||
 | 
					      '分'
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					export function getNowFormatDate() {
 | 
				
			||||||
 | 
					  var date = new Date()
 | 
				
			||||||
 | 
					  var seperator1 = '-'
 | 
				
			||||||
 | 
					  var year = date.getFullYear()
 | 
				
			||||||
 | 
					  var month = date.getMonth() + 1
 | 
				
			||||||
 | 
					  var strDate = date.getDate()
 | 
				
			||||||
 | 
					  if (month >= 1 && month <= 9) {
 | 
				
			||||||
 | 
					    month = '0' + month
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  if (strDate >= 0 && strDate <= 9) {
 | 
				
			||||||
 | 
					    strDate = '0' + strDate
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  var currentdate = year + seperator1 + month + seperator1 + strDate
 | 
				
			||||||
 | 
					  return currentdate
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					/* 数字 格式化 */
 | 
				
			||||||
 | 
					export function nFormatter(num, digits) {
 | 
				
			||||||
 | 
					  const si = [{
 | 
				
			||||||
 | 
					    value: 1e18,
 | 
				
			||||||
 | 
					    symbol: 'E'
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    value: 1e15,
 | 
				
			||||||
 | 
					    symbol: 'P'
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    value: 1e12,
 | 
				
			||||||
 | 
					    symbol: 'T'
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    value: 1e9,
 | 
				
			||||||
 | 
					    symbol: 'G'
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    value: 1e6,
 | 
				
			||||||
 | 
					    symbol: 'M'
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    value: 1e3,
 | 
				
			||||||
 | 
					    symbol: 'k'
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  ]
 | 
				
			||||||
 | 
					  for (let i = 0; i < si.length; i++) {
 | 
				
			||||||
 | 
					    if (num >= si[i].value) {
 | 
				
			||||||
 | 
					      return (
 | 
				
			||||||
 | 
					        (num / si[i].value + 0.1)
 | 
				
			||||||
 | 
					          .toFixed(digits)
 | 
				
			||||||
 | 
					          .replace(/\.0+$|(\.[0-9]*[1-9])0+$/, '$1') + si[i].symbol
 | 
				
			||||||
 | 
					      )
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  return num.toString()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export function html2Text(val) {
 | 
				
			||||||
 | 
					  const div = document.createElement('div')
 | 
				
			||||||
 | 
					  div.innerHTML = val
 | 
				
			||||||
 | 
					  return div.textContent || div.innerText
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export function toThousandslsFilter(num) {
 | 
				
			||||||
 | 
					  return (+num || 0)
 | 
				
			||||||
 | 
					    .toString()
 | 
				
			||||||
 | 
					    .replace(/^-?\d+/g, m => m.replace(/(?=(?!\b)(\d{3})+$)/g, ','))
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					// 验证手机号
 | 
				
			||||||
 | 
					export function checkPhone(rule, value, callback) {
 | 
				
			||||||
 | 
					  if (!value) {
 | 
				
			||||||
 | 
					    return callback(new Error('手机号不能为空'))
 | 
				
			||||||
 | 
					  } else {
 | 
				
			||||||
 | 
					    const reg = /^1[3|4|5|7|8][0-9]\d{8}$/
 | 
				
			||||||
 | 
					    if (reg.test(value)) {
 | 
				
			||||||
 | 
					      callback()
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					      return callback(new Error('请输入正确的手机号'))
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					export function checkPassword(rule, value, callback) {
 | 
				
			||||||
 | 
					  if (!value) {
 | 
				
			||||||
 | 
					    return callback(new Error('密码不能为空'))
 | 
				
			||||||
 | 
					  } else if (value.length < 6) {
 | 
				
			||||||
 | 
					    callback(new Error('请至少输入 6 个字符。请不要使用容易被猜到的密码'))
 | 
				
			||||||
 | 
					  } else {
 | 
				
			||||||
 | 
					    callback()
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					// 手机号证验证
 | 
				
			||||||
 | 
					export function checkTel(value, callback) {
 | 
				
			||||||
 | 
					  var reg = /^1[3|4|5|7|8][0-9]\d{8}$/
 | 
				
			||||||
 | 
					  return reg.test(value)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					// 身份证验证
 | 
				
			||||||
 | 
					export function checkiDNumber(value, callback) {
 | 
				
			||||||
 | 
					  var reg = /\d{17}[\d|x]|\d{15}/
 | 
				
			||||||
 | 
					  return reg.test(value)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					// 身份证验证
 | 
				
			||||||
 | 
					export function checkEmails(value, callback) {
 | 
				
			||||||
 | 
					  var reg = /^[A-Za-zd]+([-_.][A-Za-zd]+)*@([A-Za-zd]+[-.])+[A-Za-zd]{2,5}$/
 | 
				
			||||||
 | 
					  return reg.test(value)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					// 邮箱验证
 | 
				
			||||||
 | 
					export function checkEmail(rule, value, callback) {
 | 
				
			||||||
 | 
					  if (!value) {
 | 
				
			||||||
 | 
					    return callback(new Error('邮箱不能为空'))
 | 
				
			||||||
 | 
					  } else {
 | 
				
			||||||
 | 
					    var reg = /^[A-Za-zd]+([-_.][A-Za-zd]+)*@([A-Za-zd]+[-.])+[A-Za-zd]{2,5}$/
 | 
				
			||||||
 | 
					    if (reg.test(value)) {
 | 
				
			||||||
 | 
					      callback()
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					      return callback(new Error('请输入正确的邮箱'))
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					// 英文验证
 | 
				
			||||||
 | 
					export function checkCode(value, callback) {
 | 
				
			||||||
 | 
					  var reg = /^[A-Za-z]+$/g
 | 
				
			||||||
 | 
					  return reg.test(value)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					// qq验证
 | 
				
			||||||
 | 
					export function checkQq(value, callback) {
 | 
				
			||||||
 | 
					  var reg = /^[0-9]+$/g
 | 
				
			||||||
 | 
					  return reg.test(value)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					// 银行卡号
 | 
				
			||||||
 | 
					export function formatBankNo(BankNo, callback) {
 | 
				
			||||||
 | 
					  var strBin = '10,18,30,35,37,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,58,60,62,65,68,69,84,87,88,94,95,98,99'
 | 
				
			||||||
 | 
					  return strBin
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					export function getStrleng(str, max) {
 | 
				
			||||||
 | 
					  var myLen = 0
 | 
				
			||||||
 | 
					  for (var i = 0; i < str.length && myLen <= max * 2; i++) {
 | 
				
			||||||
 | 
					    if (str.charCodeAt(i) > 0 && str.charCodeAt(i) < 128) {
 | 
				
			||||||
 | 
					      myLen++
 | 
				
			||||||
 | 
					    } else myLen += 2
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  return myLen
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					// 上传图片格式控制
 | 
				
			||||||
 | 
					export function updatedImg(file, obj, callback, func) {
 | 
				
			||||||
 | 
					  if (file.size < 10100000) {
 | 
				
			||||||
 | 
					    var fileName = file.name
 | 
				
			||||||
 | 
					    var suffix = fileName
 | 
				
			||||||
 | 
					      .substring(fileName.lastIndexOf('.') + 1)
 | 
				
			||||||
 | 
					      .toUpperCase()
 | 
				
			||||||
 | 
					    if (
 | 
				
			||||||
 | 
					      suffix === 'PDF' ||
 | 
				
			||||||
 | 
					      suffix === 'JPG' ||
 | 
				
			||||||
 | 
					      suffix === 'JPEG' ||
 | 
				
			||||||
 | 
					      suffix === 'PNG' ||
 | 
				
			||||||
 | 
					      suffix === 'GIF'
 | 
				
			||||||
 | 
					    ) {
 | 
				
			||||||
 | 
					      return true
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					      var tipType = '文件类型不正确,请重新上传'
 | 
				
			||||||
 | 
					      callback(tipType)
 | 
				
			||||||
 | 
					      return false
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  } else {
 | 
				
			||||||
 | 
					    var tipSize = '文件大小超过5M,请重新上传'
 | 
				
			||||||
 | 
					    callback(tipSize)
 | 
				
			||||||
 | 
					    return false
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					// 上传文档格式控制
 | 
				
			||||||
 | 
					export function updatedFile(file, obj, callback, func) {
 | 
				
			||||||
 | 
					  if (file.size < 10100000) {
 | 
				
			||||||
 | 
					    var fileName = file.name
 | 
				
			||||||
 | 
					    var suffix = fileName
 | 
				
			||||||
 | 
					      .substring(fileName.lastIndexOf('.') + 1)
 | 
				
			||||||
 | 
					      .toUpperCase()
 | 
				
			||||||
 | 
					    if (
 | 
				
			||||||
 | 
					      suffix === 'DOC' ||
 | 
				
			||||||
 | 
					      suffix === 'DOCX' ||
 | 
				
			||||||
 | 
					      suffix === 'XLS' ||
 | 
				
			||||||
 | 
					      suffix === 'XLSX' ||
 | 
				
			||||||
 | 
					      suffix === 'PDF' ||
 | 
				
			||||||
 | 
					      suffix === 'ZIP' ||
 | 
				
			||||||
 | 
					      suffix === 'RAR'
 | 
				
			||||||
 | 
					    ) {
 | 
				
			||||||
 | 
					      return true
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					      var tipType = '文件类型不正确,请重新上传'
 | 
				
			||||||
 | 
					      callback(tipType)
 | 
				
			||||||
 | 
					      return false
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  } else {
 | 
				
			||||||
 | 
					    var tipSize = '文件大小超过5M,请重新上传'
 | 
				
			||||||
 | 
					    callback(tipSize)
 | 
				
			||||||
 | 
					    return false
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					export function importFile(file, obj, callback, func) {
 | 
				
			||||||
 | 
					  if (file.size < 10100000) {
 | 
				
			||||||
 | 
					    var fileName = file.name
 | 
				
			||||||
 | 
					    var suffix = fileName
 | 
				
			||||||
 | 
					      .substring(fileName.lastIndexOf('.') + 1)
 | 
				
			||||||
 | 
					      .toUpperCase()
 | 
				
			||||||
 | 
					    if (
 | 
				
			||||||
 | 
					      suffix === 'XLS' ||
 | 
				
			||||||
 | 
					      suffix === 'XLSX'
 | 
				
			||||||
 | 
					    ) {
 | 
				
			||||||
 | 
					      return true
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					      var tipType = '文件类型不正确,请重新上传'
 | 
				
			||||||
 | 
					      callback(tipType)
 | 
				
			||||||
 | 
					      return false
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  } else {
 | 
				
			||||||
 | 
					    var tipSize = '文件大小超过10M,请重新上传'
 | 
				
			||||||
 | 
					    callback(tipSize)
 | 
				
			||||||
 | 
					    return false
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					export function minHeight(resfile) {
 | 
				
			||||||
 | 
					  return document.body.clientHeight - 180 + 'px'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export function formatDate(date, fmt = 'yyyy-MM-dd') {
 | 
				
			||||||
 | 
					  if (!(date instanceof Array)) {
 | 
				
			||||||
 | 
					    date = new Date(date)
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  if (/(y+)/.test(fmt)) {
 | 
				
			||||||
 | 
					    fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  const o = {
 | 
				
			||||||
 | 
					    'M+': date.getMonth() + 1,
 | 
				
			||||||
 | 
					    'd+': date.getDate(),
 | 
				
			||||||
 | 
					    'h+': date.getHours(),
 | 
				
			||||||
 | 
					    'm+': date.getMinutes(),
 | 
				
			||||||
 | 
					    's+': date.getSeconds()
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  for (const k in o) {
 | 
				
			||||||
 | 
					    if (new RegExp(`(${k})`).test(fmt)) {
 | 
				
			||||||
 | 
					      const str = o[k] + ''
 | 
				
			||||||
 | 
					      fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str))
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  return fmt
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function padLeftZero(str) {
 | 
				
			||||||
 | 
					  return ('00' + str).substr(str.length)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					export function getBlob(response) {
 | 
				
			||||||
 | 
					  const blob = new Blob([response.data], {
 | 
				
			||||||
 | 
					    type: 'application/vnd.ms-excel'
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					  const link = document.createElement('a')
 | 
				
			||||||
 | 
					  link.href = window.URL.createObjectURL(blob)
 | 
				
			||||||
 | 
					  var filename = decodeURI(response.headers.filename)
 | 
				
			||||||
 | 
					  // link.download = filename + '.xls'
 | 
				
			||||||
 | 
					  link.download = filename
 | 
				
			||||||
 | 
					  link.click()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					// 图片 blob 流转化为可用 src
 | 
				
			||||||
 | 
					export function imgHandle(obj) {
 | 
				
			||||||
 | 
					  return window.URL.createObjectURL(obj)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user