From 441da7ecd798f8b51cdefc7d0f5cde54399a4ca3 Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: 星期三, 01 四月 2020 12:21:48 +0800
Subject: [PATCH] 添加handle控制允许拖动的元素

---
 ruoyi-ui/src/utils/ruoyi.js |  114 +++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 86 insertions(+), 28 deletions(-)

diff --git a/ruoyi-ui/src/utils/ruoyi.js b/ruoyi-ui/src/utils/ruoyi.js
index acef7f9..dc18b91 100644
--- a/ruoyi-ui/src/utils/ruoyi.js
+++ b/ruoyi-ui/src/utils/ruoyi.js
@@ -3,18 +3,52 @@
  * Copyright (c) 2019 ruoyi
  */
 
+const baseURL = process.env.VUE_APP_BASE_API
+
 // 日期格式化
-export function dateFormat(date, pattern) {
-	var d = new Date(date).Format("yyyy-MM-dd hh:mm:ss");
-	if (pattern) {
-		d = new Date(date).Format(pattern);
+export function parseTime(time, pattern) {
+	if (arguments.length === 0 || !time) {
+		return null
 	}
-	return d.toLocaleString();
+	const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}'
+	let date
+	if (typeof time === 'object') {
+		date = time
+	} else {
+		if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
+			time = parseInt(time)
+		} else if (typeof time === 'string') {
+			time = time.replace(new RegExp(/-/gm), '/');
+		}
+		if ((typeof time === 'number') && (time.toString().length === 10)) {
+			time = time * 1000
+		}
+		date = new Date(time)
+	}
+	const formatObj = {
+		y: date.getFullYear(),
+		m: date.getMonth() + 1,
+		d: date.getDate(),
+		h: date.getHours(),
+		i: date.getMinutes(),
+		s: date.getSeconds(),
+		a: date.getDay()
+	}
+	const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
+		let value = formatObj[key]
+		// Note: getDay() returns 0 on Sunday
+		if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] }
+		if (result.length > 0 && value < 10) {
+			value = '0' + value
+		}
+		return value || 0
+	})
+	return time_str
 }
 
 // 表单重置
 export function resetForm(refName) {
-	if (this.$refs[refName] !== undefined) {
+	if (this.$refs[refName]) {
 		this.$refs[refName].resetFields();
 	}
 }
@@ -22,11 +56,11 @@
 // 添加日期范围
 export function addDateRange(params, dateRange) {
 	var search = params;
-	if (null != dateRange) {
-		search.params = {
-			beginTime: this.dateRange[0],
-			endTime: this.dateRange[1]
-		};
+	search.beginTime = "";
+	search.endTime = "";
+	if (null != dateRange && '' != dateRange) {
+		search.beginTime = this.dateRange[0];
+		search.endTime = this.dateRange[1];
 	}
 	return search;
 }
@@ -43,6 +77,11 @@
 	return actions.join('');
 }
 
+// 通用下载方法
+export function download(fileName) {
+	window.location.href = baseURL + "/common/download?fileName=" + encodeURI(fileName) + "&delete=" + true;
+}
+
 // 字符串格式化(%s )
 export function sprintf(str) {
 	var args = arguments, flag = true, i = 1;
@@ -57,20 +96,39 @@
 	return flag ? str : '';
 }
 
-Date.prototype.Format = function (fmt) {
-	var o = {
-		"M+": this.getMonth() + 1,                   // 月份
-		"d+": this.getDate(),                        // 日
-		"h+": this.getHours(),                       // 小时
-		"m+": this.getMinutes(),                     // 分
-		"s+": this.getSeconds(),                     // 秒
-		"q+": Math.floor((this.getMonth() + 3) / 3), // 季度
-		"S": this.getMilliseconds()                  // 毫秒
-	};
-	if (/(y+)/.test(fmt))
-		fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
-	for (var k in o)
-		if (new RegExp("(" + k + ")").test(fmt))
-			fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
-	return fmt;
-}  
\ No newline at end of file
+// 转换字符串,undefined,null等转化为""
+export function praseStrEmpty(str) {
+    if (!str || str == "undefined" || str == "null") {
+        return "";
+    }
+    return str;
+}
+
+/**
+ * 构造树型结构数据
+ * @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;
+  }
+  
\ No newline at end of file

--
Gitblit v1.9.2