ruoyi.js 3.4 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
		} else if (typeof time === 'string') {
			time = time.replace(new RegExp(/-/gm), '/');
22 23
		}
		if ((typeof time === 'number') && (time.toString().length === 10)) {
RuoYi's avatar
RuoYi committed
24
			time = time * 1000
25 26
		}
		date = new Date(time)
RuoYi's avatar
RuoYi committed
27 28
	}
	const formatObj = {
29 30 31 32 33 34 35
		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
36 37
	}
	const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
38 39
		let value = formatObj[key]
		// Note: getDay() returns 0 on Sunday
RuoYi's avatar
RuoYi committed
40
		if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] }
41
		if (result.length > 0 && value < 10) {
RuoYi's avatar
RuoYi committed
42
			value = '0' + value
43 44
		}
		return value || 0
RuoYi's avatar
RuoYi committed
45 46
	})
	return time_str
RuoYi's avatar
RuoYi committed
47 48 49 50
}

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

// 添加日期范围
export function addDateRange(params, dateRange) {
	var search = params;
RuoYi's avatar
RuoYi committed
59 60 61 62 63
	search.beginTime = "";
	search.endTime = "";
	if (null != dateRange && '' != dateRange) {
		search.beginTime = this.dateRange[0];
		search.endTime = this.dateRange[1];
RuoYi's avatar
RuoYi committed
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
	}
	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
80 81 82 83 84
// 通用下载方法
export function download(fileName) {
	window.location.href = baseURL + "/common/download?fileName=" + encodeURI(fileName) + "&delete=" + true;
}

RuoYi's avatar
RuoYi committed
85 86 87 88 89 90 91 92 93 94 95 96
// 字符串格式化(%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
97 98 99 100 101 102 103 104
}

// 转换字符串,undefined,null等转化为""
export function praseStrEmpty(str) {
    if (!str || str == "undefined" || str == "null") {
        return "";
    }
    return str;
RuoYi's avatar
RuoYi committed
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 133 134
}

/**
 * 构造树型结构数据
 * @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;
  }