zhgdyun/src/assets/js/util.js

276 lines
10 KiB
JavaScript
Raw Normal View History

2022-06-08 14:51:11 +08:00
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
})
}