zhgdyun/src/assets/js/util.js
2022-06-08 14:51:11 +08:00

276 lines
10 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import axios from 'axios'
//获取前天-2昨天-1今天0明天1等时间 yyyy/MM/dd format,分隔符
export function GetDateStr(AddDayCount, format, from) {
var dd = !from ? new Date() : stringToDate(from,format);
dd.setDate(dd.getDate() + AddDayCount); //获取AddDayCount天后的日期
var year = dd.getFullYear();
var month = dd.getMonth() + 1 < 10 ? "0" + (dd.getMonth() + 1) : dd.getMonth() + 1;
var date = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate();
return year + format + month + format + date;
}
//计算时间间隔
export function GetTimeDiff(startTime, endTime) {
var startTime = new Date(Date.parse(startTime.replace(/-/g, "-"))).getTime();
var endTime = new Date(Date.parse(endTime.replace(/-/g, "-"))).getTime();
var hours = Math.abs((startTime - endTime)) / (1000 * 60 * 60);
return hours;
}
export function GetTimeStr(AddDayCount, format, from) {
var dd = !from ? new Date() : stringToDate(from, format);
dd.setDate(dd.getDate() + AddDayCount); //获取AddDayCount天后的日期
var year = dd.getFullYear();
var month = dd.getMonth() + 1 < 10 ? "0" + (dd.getMonth() + 1) : dd.getMonth() + 1;
var date = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate();
var hour = dd.getHours() < 10 ? "0" + dd.getHours() : dd.getHours();
var min = dd.getMinutes() < 10 ? "0" + dd.getMinutes() : dd.getMinutes();
var second = dd.getSeconds() < 10 ? "0" + dd.getSeconds() : dd.getSeconds();
return year + format + month + format + date + " " + hour + ":" + min + ":" + second;
}
//手机号码验证
export function checkPhone(phone){
if(!(/^1(3|4|5|6|7|8|9)\d{9}$/.test(phone))){
return false;
}else{
return true;
}
}
//获取随机颜色
export function getRandomColor(){
var r = Math.floor(Math.random() * 256);
var g = Math.floor(Math.random() * 256);
var b = Math.floor(Math.random() * 256);
return "rgba(" + r + "," + g + "," + b + ",0.6)";
}
//将时间戳转换成日期格式
export function timestampToTime(timestamp,type) {
if(timestamp.length<13){
timestamp=timestamp*1000
}
        var date = new Date(timestamp);//时间戳为10位需*1000时间戳为13位的话不需乘1000
        let Y = date.getFullYear() + '-';
        let M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';
        let D = date.getDate()<10?'0'+date.getDate():date.getDate();
        let h = ' '+date.getHours() + ':';
        let m = date.getMinutes() + ':';
        let s = date.getSeconds();
if(type=='date'){
return Y+M+D;
}else if(type=='time'){
return Y+M+D+h+m+s;
}
       
    }
//身份证号合法性验证
//支持15位和18位身份证号
//支持地址编码、出生日期、校验位验证
export function IdentityCodeValid(code) {
var city={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江 ",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北 ",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏 ",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外 "};
var tip = "";
var pass= true;
if(!code || !/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i.test(code)){
tip = "身份证号格式错误";
pass = false;
}
else if(!city[code.substr(0,2)]){
tip = "地址编码错误";
pass = false;
}
else{
//18位身份证需要验证最后一位校验位
if(code.length == 18){
code = code.split('');
//∑(ai×Wi)(mod 11)
//加权因子
var factor = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ];
//校验位
var parity = [ 1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2 ];
var sum = 0;
var ai = 0;
var wi = 0;
for (var i = 0; i < 17; i++)
{
ai = code[i];
wi = factor[i];
sum += ai * wi;
}
var last = parity[sum % 11];
if(parity[sum % 11] != code[17]){
tip = "校验位错误";
pass =false;
}
}
}
return pass;
}
//验证企业 社会统一信用代码
export function CheckSocialCreditCode(Code) {
// var Code = el.val()
var patrn = /^[0-9A-Z]+$/;
//18位校验及大写校验
if ((Code.length != 18) || (patrn.test(Code) == false)) {
// el.focus()
return false;
} else {
var Ancode;//统一社会信用代码的每一个值
var Ancodevalue;//统一社会信用代码每一个值的权重
var total = 0;
var weightedfactors = [1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28];//加权因子
var str = '0123456789ABCDEFGHJKLMNPQRTUWXY';
//不用I、O、S、V、Z
for (var i = 0; i < Code.length - 1; i++) {
Ancode = Code.substring(i, i + 1);
Ancodevalue = str.indexOf(Ancode);
total = total + Ancodevalue * weightedfactors[i];
//权重与加权因子相乘之和
}
var logiccheckcode = 31 - total % 31;
if (logiccheckcode == 31) {
logiccheckcode = 0;
}
var Str = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,T,U,W,X,Y";
var Array_Str = Str.split(',');
logiccheckcode = Array_Str[logiccheckcode];
var checkcode = Code.substring(17, 18);
if (logiccheckcode != checkcode) {
// showTipsDialog("不是有效的统一社会信用编码!");
// el.focus()
return false;
}
}
return true;
}
//获取天气
// export function loadWeather(type,cityCode,_this){
// var weatherJson = {
// 'key': 'a3217cf9335d333c307abee2fce600b5',
// 'city': cityCode,
// 'extensions': type,//可选值base/all base:返回实况天气 all:返回预报天气
// 'output': 'JSON'
// };
// axios.get('http://restapi.amap.com/v3/weather/weatherInfo',{params:weatherJson}).then((res)=>{
// console.log(res)
// if (res.data.status == "1") {
// //
// if(type=='base'){
// return res.data.lives[0]
// }else{
// var json = res.data.forecasts[0];
// var list = json.casts
// list.forEach(element => {
// element.date = element.date.substring(5,element.date.length)
// switch (element.week) {
// case "1":
// element.week='周一'
// break;
// case "2":
// element.week='周二'
// break;
// case "3":
// element.week='周三'
// break;
// case "4":
// element.week='周四'
// break;
// case "5":
// element.week='周五'
// break;
// case "6":
// element.week='周六'
// break;
// case "7":
// element.week='周日'
// break;
// }
// switch (element.dayweather) {
// case "小雨":
// element.url = require('@/assets/images/weather/rain_s.png')
// break;
// case "阵雨":
// element.url=require('@/assets/images/weather/rain_b.png')
// break;
// case "大雨":
// element.url=require('@/assets/images/weather/rain_b.png')
// break;
// case "雷阵雨":
// element.url=require('@/assets/images/weather/thunder_rain.png')
// break;
// case "多云":
// element.url=require('@/assets/images/weather/cloudy.png')
// break;
// case "少云":
// element.url=require('@/assets/images/weather/cloudy.png')
// break;
// case "晴":
// element.url=require('@/assets/images/weather/sunny.png')
// break;
// case "小雪":
// element.url=require('@/assets/images/weather/snow_s.png')
// break;
// case "大雪":
// element.url=require('@/assets/images/weather/snow_b.png')
// break;
// case "雨夹雪":
// element.url=require('@/assets/images/weather/rain_snow.png')
// break;
// case "雾":
// element.url=require('@/assets/images/weather/flog.png')
// break;
// case "霾":
// element.url=require('@/assets/images/weather/flog.png')
// break;
// }
// });
// json.casts = list
// // return json
// console.log(_this.weatherInfo)
// _this.weatherInfo=json
// console.log(_this.weatherInfo)
// }
// }
// })
// }
/**
* 根据日期字符串获取星期几
* @param dateString 日期字符串2020-05-02
* @returns {String}
*/
function getWeek(dateString) {
var dateArray = dateString.split("-");
var date = new Date(dateArray[0], parseInt(dateArray[1] - 1), dateArray[2]);
return "周" + "日一二三四五六".charAt(date.getDay());
};
export function loadWeather(_this){
// ?version=v1&appid=79112751&appsecret=EBqjU987&vue=1
axios.get('https://tianqiapi.com/api',
{params:{
version:'v1',
appid:'79112751',
appsecret:'EBqjU987',
vue:1
},headers: {'Authorization': ''}}).then((res)=>{
var json = res.data;
var list = json.data
list.forEach(element => {
element.week=getWeek(element.date)
element.date = element.date.substring(5,element.date.length)
element.url = require('@/assets/images/weather/'+element.wea_img+'.png')
});
json.data = list
_this.weatherInfo=json
})
}