export function formateDate(val) {
const date = new Date(val);
const year = date.getFullYear();
const month = date.getMonth() + 1 >= 10 ? date.getMonth() + 1 : '0' + (date.getMonth() + 1);
const day = date.getDate() >= 10 ? date.getDate().toString() : '0' + date.getDate().toString();
const hour = date.getHours() >= 10 ? date.getHours().toString() : '0' + date.getHours().toString();
const minute = date.getMinutes() >= 10 ? date.getMinutes().toString() : '0' + date.getMinutes().toString();
const second = date.getSeconds() >= 10 ? date.getSeconds().toString() : '0' + date.getSeconds().toString();
return `${year}-${month}-${day} ${hour}:${minute}:${second}`
}
export const identify = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X|x)$/;
export function getQueryObject(url) {
url = url == null ? window.location.href : url
const search = url.substring(url.lastIndexOf('?') + 1)
const obj = {}
const reg = /([^?&=]+)=([^?&=]*)/g
search.replace(reg, (rs, $1, $2) => {
const name = decodeURIComponent($1)
let val = decodeURIComponent($2)
val = String(val)
obj[name] = val
return rs
})
return obj
}
export function getUnixTime(dateStr) {
const newDate = new Date(dateStr.slice(0, 10))
const weekDay = ["星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]
const lastTime = dateStr + " " + weekDay[newDate.getDay()]
return lastTime
}
export function downloadFile(blob,fileName){
const newBlob = new Blob([blob], {type: "application/vnd.ms-excel"});
let url = window.URL.createObjectURL(newBlob);
let link = document.createElement('a');
link.href = url;
link.style.display = 'none';
link.setAttribute('download',fileName);
link.click()
window.URL.revokeObjectURL(url)
link.remove()
}
export function XHRLoadLoadFile(url,params,method){
let apiUrl = `${process.env.VUE_APP_EHOSPITAL_API}`
let getParamsList = [];
if(params){
for(let key of Object.keys(params)){
if(params.hasOwnProperty(key)){
getParamsList.push(`${key}=${params[key]}`);
}
}
}
let getUrl = url;
if(getParamsList.length > 0){
getUrl += '?' + getParamsList.join('&');
}
let xhr = new XMLHttpRequest();
if(method && method=='post'){
xhr.open('post',apiUrl+url);
} else {
xhr.open('get',apiUrl+getUrl);
}
const header = getSign(params);
delete header['param'];
for(let key of Object.keys(header)){
xhr.setRequestHeader(key,header[key]);
}
xhr.responseType = 'blob';
if(method && method=='post'){
xhr.send(JSON.stringify(params));
} else {
xhr.send();
}
xhr.timeout = 3*60*1000;
let loadingInstance = Loading.service({
text: '正在导出中...',
lock: true
});
xhr.onreadystatechange = function(){
if(xhr.readyState ===4){
loadingInstance.close();
if(xhr.status === 200){
if(xhr.response['type'] == 'application/json'){
ScMessage.error('导出失败');
return;
}
ScMessage.success('导出成功');
const blob = new Blob([xhr.response])
let url = window.URL.createObjectURL(blob)
let link = document.createElement('a')
link.href = url
link.style.display = 'none'
const disposition = xhr.getResponseHeader('Content-disposition');
let fileName= new Date().getTime() + '.xls';
if(disposition){
fileName = disposition.split(";")[1].split("filename=")[1];
}
link.setAttribute('download',decodeURI(fileName));
link.click()
window.URL.revokeObjectURL(url)
link.remove()
} else {
ScMessage.error('网络错误');
}
}
}
}
export const deepCopy = function(obj) {
if (!typeof obj == 'object') return obj;
if (obj == null) return null;
const myObj = Array.isArray(obj) ? [] : {};
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
if (typeof(obj[key]) == 'object') {
myObj[key] = deepCopy(obj[key]);
} else {
myObj[key] = obj[key];
}
}
}
return myObj;
}
export function deteleRepeatObject(arr) {
var stepArr = [];
var str = {};
for (var i = 0; i < arr.length; i++) {
var keys = Object.keys(arr[i]);
keys.sort(function(a, b) {
return (Number(a) - Number(b));
});
var str = '';
for (var j = 0; j < keys.length; j++) {
str += JSON.stringify(keys[j]);
str += JSON.stringify(arr[i][keys[j]]);
}
if (!str.hasOwnProperty(str)) {
stepArr.push(arr[i]);
str[str] = true;
}
}
stepArr = stepArr;
return stepArr;
}