ruoyi.js 3.3 KB
Newer Older
RuoYi's avatar
RuoYi committed
1 2 3 4 5
/**
 * 通用js方法封装处理
 * Copyright (c) 2019 ruoyi
 */

RuoYi's avatar
RuoYi committed
6 7
const baseURL = process.env.VUE_APP_BASE_API

RuoYi's avatar
RuoYi committed
8
// 日期格式化
9
export function parseTime(time, pattern) {
10
	if (arguments.length === 0 || !time) {
11
		return null
RuoYi's avatar
RuoYi committed
12 13 14 15
	}
	const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}'
	let date
	if (typeof time === 'object') {
16
		date = time
RuoYi's avatar
RuoYi committed
17
	} else {
18
		if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
RuoYi's avatar
RuoYi committed
19
			time = parseInt(time)
20 21
		}
		if ((typeof time === 'number') && (time.toString().length === 10)) {
RuoYi's avatar
RuoYi committed
22
			time = time * 1000
23 24
		}
		date = new Date(time)
RuoYi's avatar
RuoYi committed
25 26
	}
	const formatObj = {
27 28 29 30 31 32 33
		y: date.getFullYear(),
		m: date.getMonth() + 1,
		d: date.getDate(),
		h: date.getHours(),
		i: date.getMinutes(),
		s: date.getSeconds(),
		a: date.getDay()
RuoYi's avatar
RuoYi committed
34 35
	}
	const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
36 37
		let value = formatObj[key]
		// Note: getDay() returns 0 on Sunday
RuoYi's avatar
RuoYi committed
38
		if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] }
39
		if (result.length > 0 && value < 10) {
RuoYi's avatar
RuoYi committed
40
			value = '0' + value
41 42
		}
		return value || 0
RuoYi's avatar
RuoYi committed
43 44
	})
	return time_str
RuoYi's avatar
RuoYi committed
45 46 47 48
}

// 表单重置
export function resetForm(refName) {
RuoYi's avatar
RuoYi committed
49
	if (this.$refs[refName]) {
RuoYi's avatar
RuoYi committed
50 51 52 53 54 55 56
		this.$refs[refName].resetFields();
	}
}

// 添加日期范围
export function addDateRange(params, dateRange) {
	var search = params;
RuoYi's avatar
RuoYi committed
57 58 59 60 61
	search.beginTime = "";
	search.endTime = "";
	if (null != dateRange && '' != dateRange) {
		search.beginTime = this.dateRange[0];
		search.endTime = this.dateRange[1];
RuoYi's avatar
RuoYi committed
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
	}
	return search;
}

// 回显数据字典
export function selectDictLabel(datas, value) {
	var actions = [];
	Object.keys(datas).map((key) => {
		if (datas[key].dictValue == ('' + value)) {
			actions.push(datas[key].dictLabel);
			return false;
		}
	})
	return actions.join('');
}

RuoYi's avatar
RuoYi committed
78 79 80 81 82
// 通用下载方法
export function download(fileName) {
	window.location.href = baseURL + "/common/download?fileName=" + encodeURI(fileName) + "&delete=" + true;
}

RuoYi's avatar
RuoYi committed
83 84 85 86 87 88 89 90 91 92 93 94
// 字符串格式化(%s )
export function sprintf(str) {
	var args = arguments, flag = true, i = 1;
	str = str.replace(/%s/g, function () {
		var arg = args[i++];
		if (typeof arg === 'undefined') {
			flag = false;
			return '';
		}
		return arg;
	});
	return flag ? str : '';
RuoYi's avatar
RuoYi committed
95 96 97 98 99 100 101 102
}

// 转换字符串,undefined,null等转化为""
export function praseStrEmpty(str) {
    if (!str || str == "undefined" || str == "null") {
        return "";
    }
    return str;
RuoYi's avatar
RuoYi committed
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
}

/**
 * 构造树型结构数据
 * @param {*} data 数据源
 * @param {*} id id字段 默认 'id'
 * @param {*} parentId 父节点字段 默认 'parentId'
 * @param {*} children 孩子节点字段 默认 'children'
 * @param {*} rootId 根Id 默认 0
 */
export function handleTree(data, id, parentId, children, rootId) {
	id = id || 'id'
	parentId = parentId || 'parentId'
	children = children || 'children'
	rootId = rootId || 0
	//对源数据深度克隆
	const cloneData = JSON.parse(JSON.stringify(data))
	//循环所有项
	const treeData =  cloneData.filter(father => {
	  let branchArr = cloneData.filter(child => {
		//返回每一项的子级数组
		return father[id] === child[parentId]
	  });
	  branchArr.length > 0 ? father.children = branchArr : '';
	  //返回第一层
	  return father[parentId] === rootId;
	});
	return treeData != '' ? treeData : data;
  }