ASkyBig/knowledge_point

代码片段

ASkyBig opened this issue · 0 comments

css 旋转裁剪图片

<View style='padding-bottom: 18px; width: 88px; height: 93px; transform: rotate(10deg); overflow: hidden;'>
	<Image style='width: 88px;height: 93px;border-radius: 20px; padding-top: 19px; padding-left: 137px;margin-left: -129px; transform: rotate(-10deg);'
	          src={banner3}
	 />
</View>
<View style="position: absolute;margin-left: 97px;padding-right: 112px;padding-top: 14px;overflow: hidden;padding-bottom: 18px;height: 93px;width: 88px;transform: rotate(10deg);">
	<Image style='transform: rotate(-10deg);width: 88px;height: 93px;border-radius: 20px; padding-bottom: 15px;margin-left: -149px;padding-left: 138px;padding-top: 19px;'
	     src={banner2}
	 />
</View>

image


function DateFormate (time, fmt) {
  var o = {
    "M+" : time.getMonth()+1,                 //月份
    "d+" : time.getDate(),                    //日
    "h+" : time.getHours(),                   //小时
    "m+" : time.getMinutes(),                 //分
    "s+" : time.getSeconds(),                 //秒
    "q+" : Math.floor((time.getMonth()+3)/3), //季度
    "S"  : time.getMilliseconds()             //毫秒
  };

  if(/(y+)/.test(fmt)){
    fmt=fmt.replace(RegExp.$1, (time.getFullYear()+"").substr(4 - RegExp.$1.length));
  }
        
  for(var k in o){
    if(new RegExp("("+ k +")").test(fmt)){
      fmt = fmt.replace(
        RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));  
    }       
  }

  return fmt;
}
DateFormate(new Date(), "yyyy-MM-dd hh:ss") // "2019-10-30 19:21"

图片大小尺寸前端验证

 handlePreview (file) {
      if (!file) {
        return
      }
      const img = new Image()
      img.src = URL.createObjectURL(file.raw)
      img.onload = (e) => {
        if (e.target.width !== 1000 || e.target.height !== 280) {
            this.$message.error('图片尺寸或大小错误,请重新上传');
            return;
        }
        if (file.size > 150 * 1024) {
            this.$message.error('图片尺寸或大小错误,请重新上传');
            return;
        }
        uploadImg(file.raw, '/upload/image').then((result) => {
          console.log('result', result)
          this.imageUrl = result.data.data.url;
        })
      }
    }

转义字符

const escapeHTML = str =>
  str.replace(
    /[&<>'"]/g,
    tag =>({'&': '&amp;', '<': '&lt;', '>': '&gt;', "'": '&#39;', '"': '&quot;' }[tag] || tag)
  );

全角转半角

        let newStr = ''
	for (let i = 0; i < strTelNum.length; i++) {
		let code = strTelNum.charCodeAt(i)
		if (code >= 65281 && code <= 65373) {
			newStr += String.fromCharCode(strTelNum.charCodeAt(i) - 65248)
		} else if (code == 12288) {
			newStr += String.fromCharCode(strTelNum.charCodeAt(i) - 12288 + 32)
		} else {
			newStr += strTelNum.charAt(i)
		}
	}

字符串数字相加

由于精度限制,两个数字相加会有问题。比如我们公司的 BookId 就很长,超过了 2^53 - 1。

var bigAdd = function(str1, str2) {
    let arr1 = str1.length > str2.length ? str1.split('').map(Number) : str2.split('').map(Number)
    let arr2 = str1.length > str2.length ? str2.split('').map(Number) : str1.split('').map(Number)

    let len = arr1.length
    let temp_arr = Array(len - arr2.length).fill(0).concat(arr2)
    let res = []
    let flag = false // 标记是否有进位
    for(let i = len - 1; i >= 0; i--) {
        let val = arr1[i] + temp_arr[i]
        if (flag) {
            if (i === 0) {
                if ( val + 1 >= 10) {
                    res.unshift(val + 1 - 10)
                    res.unshift(1)
                } else {
                    res.unshift(val + 1)
                }
            } else {
                if ( val + 1 >= 10) {
                    res.unshift(val + 1 - 10)
                    flag = true
                } else {
                    res.unshift(val + 1)
                    flag = false
                }
            }
            
        } else {
            if (i === 0) {
                if (val >= 10) {
                    res.unshift(val - 10)
                    res.unshift(1)
                } else {
                    res.unshift(val)
                }
            } else {
                if (val >= 10) {
                    res.unshift(val - 10)
                    flag = true
                } else {
                    res.unshift(val)
                    flag = false
                }
            } 
        }
    }
    return res.join('')
};

bigAdd('9007199254740992', '9') // '9007199254741001'

readme 目录结构代码方式

├── README.md                  
├── dist/             
├── package.json
├── src
│   ├── app.js
│   ├── assets                        // 全局资源
│   ├── components/             // 全局通用组件
│   ├── global.less                  // 全局样式     
│   ├── layouts/                      // 全局模版
│   ├── pages                         // 页面
│   ├── styles
│   │   └── _var.less                 
│   └── utils
│       └── request.js              // 请求的简易封装
│       └── tools.js                  // 工具类方法
└── webpack.config.js

设置当天的cookie

function setCurDayCookie(name, value) {
        var curDate = new Date(); // Sat Sep 18 2021 13:55:02 GMT+0800 (**标准时间)
	var curTime = curDate.getTime(); // 1631944649281
	var curDay = curDate.toLocaleDateString(); // 2021/9/18

	var curNearNextDayTime = new Date(curDay).getTime() - 1; // 当天零点开始的时间戳,-1 是防止 00:00:00
	var todayPassedTime = curTime - curNearNextDayTime; // 今天已经过去的时间
	var leftTimestamp = 24 * 60 * 60 * 1000 - todayPassedTime; // 今天剩下的时间
	var timeSet = curTime + leftTimestamp; // 可以缓存的时间的时间戳

	document.cookie = name + "=" + value + ";expires=" + new Date(timeSet).toUTCString() + ";path=/";
}

或者

 // 获取用户本地剩余时间(时间戳)
  var leftTime = ((new Date()).getTime()) % (86400000);
  // 计算用户今天还剩下多少时间(时间戳)
  var cookieTime = 86400000 - leftTime;