|
@@ -0,0 +1,342 @@
|
|
|
+
|
|
|
+
|
|
|
+export const pickerOptions = [{
|
|
|
+ text: "今天",
|
|
|
+ onClick(picker) {
|
|
|
+ const end = new Date();
|
|
|
+ const start = new Date();
|
|
|
+ start.setTime(start.getTime());
|
|
|
+ picker.$emit('pick', [start, end]);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: "昨天",
|
|
|
+ onClick(picker) {
|
|
|
+ const end = new Date();
|
|
|
+ const start = new Date();
|
|
|
+ start.setDate(start.getDate() - 1);
|
|
|
+ end.setDate(end.getDate() - 1);
|
|
|
+ picker.$emit('pick', [start, end]);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: "最近七天",
|
|
|
+ onClick(picker) {
|
|
|
+ const end = new Date();
|
|
|
+ const start = new Date();
|
|
|
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
|
|
|
+ picker.$emit('pick', [start, end]);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: "最近30天",
|
|
|
+ onClick(picker) {
|
|
|
+ const end = new Date();
|
|
|
+ const start = new Date();
|
|
|
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
|
|
|
+ picker.$emit('pick', [start, end]);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: "本月",
|
|
|
+ onClick(picker) {
|
|
|
+ const start = new Date();
|
|
|
+ const end = new Date(start);
|
|
|
+ end.setMonth(start.getMonth() + 1);
|
|
|
+ end.setDate(0);
|
|
|
+ start.setDate(1);
|
|
|
+ picker.$emit('pick', [start, end]);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: "上个月",
|
|
|
+ onClick(picker) {
|
|
|
+ const start = new Date();
|
|
|
+ const end = new Date(start);
|
|
|
+ end.setMonth(start.getMonth());
|
|
|
+ start.setMonth(start.getMonth() - 1);
|
|
|
+ end.setDate(0);
|
|
|
+ start.setDate(1);
|
|
|
+ picker.$emit('pick', [start, end]);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: "去年",
|
|
|
+ onClick(picker) {
|
|
|
+ const endYear = new Date().getFullYear() - 1;
|
|
|
+ const startYear = new Date().getFullYear() - 1;
|
|
|
+ const start = new Date(startYear, 0, 1);
|
|
|
+ const end = new Date(endYear, 11, 31);
|
|
|
+ picker.$emit('pick', [start, end]);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: "今年",
|
|
|
+ onClick(picker) {
|
|
|
+ const endYear = new Date().getFullYear();
|
|
|
+ const startYear = new Date().getFullYear();
|
|
|
+ const start = new Date(startYear, 0, 1);
|
|
|
+ const end = new Date(endYear, 11, 31);
|
|
|
+ picker.$emit('pick', [start, end]);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: "最近一年",
|
|
|
+ onClick(picker) {
|
|
|
+ const end = new Date();
|
|
|
+ const start = new Date();
|
|
|
+ start.setFullYear(start.getFullYear() - 1);
|
|
|
+ picker.$emit('pick', [start, end]);
|
|
|
+ }
|
|
|
+ },
|
|
|
+];
|
|
|
+
|
|
|
+/**
|
|
|
+ * tree 形结构格式化
|
|
|
+ * @param {any} data
|
|
|
+ */
|
|
|
+export const initTree = {
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 判断是否是数组
|
|
|
+ * @param {Array} arr
|
|
|
+ */
|
|
|
+export const isArray = (arr) => {
|
|
|
+ return Object.prototype.toString.call(arr) == '[object Array]'
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 手机号屏蔽
|
|
|
+ */
|
|
|
+export const hidePhone = (num) => {
|
|
|
+ if (num) {
|
|
|
+ let newNum = String(num);
|
|
|
+ return newNum.replace(/^(\d{3})\d{4}(\d{4})$/, '$1****$2');
|
|
|
+ }
|
|
|
+}
|
|
|
+/**
|
|
|
+ * 时间格式转化
|
|
|
+ * @param {Array} arr
|
|
|
+ */
|
|
|
+export const dateReturn1 = (date1) => {
|
|
|
+ date1.toLocaleString("en-US", {
|
|
|
+ hour12: false
|
|
|
+ }).replace(/\b\d\b/g, '0><').replace(new RegExp('/', 'gm'), '-');
|
|
|
+}
|
|
|
+/**
|
|
|
+ * 十五分钟倒计时
|
|
|
+ * @param {Array}string
|
|
|
+ */
|
|
|
+export const fiftyDate = () => {
|
|
|
+ let now = new Date();
|
|
|
+ var hour = now.getHours();
|
|
|
+ var minu = now.getMinutes();
|
|
|
+ var sec = now.getSeconds();
|
|
|
+ if (hour < 10) hour = "0" + hour;
|
|
|
+
|
|
|
+ if (minu < 10) minu = "0" + minu;
|
|
|
+
|
|
|
+ if (sec < 10) sec = "0" + sec;
|
|
|
+ var time = "";
|
|
|
+ time = hour + ":" + minu + ":" + sec
|
|
|
+ console.info('倒计时--->', time);
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 输入框单字节计算
|
|
|
+ * @param string
|
|
|
+ */
|
|
|
+export const strSubleng = (str) => {
|
|
|
+ var len = 0;
|
|
|
+ for (var i = 0; i < str.length; i++) {
|
|
|
+ var c = str.charCodeAt(i);
|
|
|
+ if ((c >= 0x0001 && c <= 0x007e) || (0xff60 <= c && c <= 0xff9f)) { //单字节加1
|
|
|
+ len++;
|
|
|
+ } else {
|
|
|
+ len += 2;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return len;
|
|
|
+}
|
|
|
+/**
|
|
|
+ * 截取路由参数
|
|
|
+ * @param string
|
|
|
+ */
|
|
|
+export const subparams = (str) => {
|
|
|
+ //let search = location.search;
|
|
|
+ let params = {};
|
|
|
+ if (str != "") {
|
|
|
+ str.slice(1).split("&").forEach((v) => {
|
|
|
+ let arr = v.split("=");
|
|
|
+ params[arr[0]] = arr[1];
|
|
|
+ })
|
|
|
+ }
|
|
|
+ return params;
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * get url 对象序列化
|
|
|
+ * @param string
|
|
|
+ */
|
|
|
+export const http_builder_url = (url, data) => {
|
|
|
+ if (typeof (url) == 'undefined' || url == null) {
|
|
|
+ return '';
|
|
|
+ }
|
|
|
+ if (typeof (data) == 'undefined' || data == null || typeof (data) != 'object') {
|
|
|
+ return '';
|
|
|
+ }
|
|
|
+ url += (url.indexOf("?") != -1) ? "" : "?";
|
|
|
+ for (var k in data) {
|
|
|
+ url += ((url.indexOf("=") != -1) ? "&" : "") + k + "=" + encodeURI(data[k]);
|
|
|
+ console.log(url);
|
|
|
+ }
|
|
|
+ return url;
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 存储localStorage
|
|
|
+ * @param {any} data
|
|
|
+ */
|
|
|
+export const setStore = (name, content) => {
|
|
|
+ if (!name) return
|
|
|
+ if (typeof content !== 'string') {
|
|
|
+ content = JSON.stringify(content);
|
|
|
+ }
|
|
|
+ window.localStorage.setItem(name, content);
|
|
|
+}
|
|
|
+/**
|
|
|
+ * 获取localStorage
|
|
|
+ * @param {any} data
|
|
|
+ */
|
|
|
+export const getStore = name => {
|
|
|
+ if (!name) return;
|
|
|
+ return window.localStorage.getItem(name);
|
|
|
+}
|
|
|
+/**
|
|
|
+ *删除localStorage
|
|
|
+ * @param {any} data
|
|
|
+ */
|
|
|
+export const removeStore = name => {
|
|
|
+ if (!name) return;
|
|
|
+ window.localStorage.removeItem(name);
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ *去除字符串中逗号
|
|
|
+ * @param {any} data
|
|
|
+ */
|
|
|
+export const clear = str => {
|
|
|
+ str = str.replace(/,/g, '')
|
|
|
+ return str;
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 全屏显示
|
|
|
+ * @param {any} data
|
|
|
+ */
|
|
|
+export const requestFullScreen = () => {
|
|
|
+ let elem = document.documentElement;
|
|
|
+ if (elem.requestFullscreen) {
|
|
|
+ elem.requestFullscreen()
|
|
|
+ } else if (elem.mozRequestFullScreen) {
|
|
|
+ elem.mozRequestFullScreen()
|
|
|
+ } else if (elem.webkitRequestFullScreen) {
|
|
|
+ elem.webkitRequestFullScreen()
|
|
|
+ } else if (elem.msRequestFullscreen) {
|
|
|
+ document.body.msRequestFullscreen()
|
|
|
+ }
|
|
|
+}
|
|
|
+/**
|
|
|
+ * 退出全屏
|
|
|
+ * @param {any} data
|
|
|
+ */
|
|
|
+export const exitFullscreen = () => {
|
|
|
+ let doc = document
|
|
|
+ if (doc.exitFullscreen) {
|
|
|
+ doc.exitFullscreen()
|
|
|
+ } else if (doc.mozCancelFullScreen) {
|
|
|
+ doc.mozCancelFullScreen()
|
|
|
+ } else if (doc.webkitCancelFullScreen) {
|
|
|
+ doc.webkitCancelFullScreen()
|
|
|
+ } else if (doc.msExitFullscreen) {
|
|
|
+ document.msExitFullscreen()
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * 将简单数据格式转换成嵌套的数据格式
|
|
|
+ * @param {Object} setting
|
|
|
+ * @param {Array} sNodes
|
|
|
+ */
|
|
|
+export const transformTozTreeFormat = (sNodes, setting={}) => {
|
|
|
+ var i, l,
|
|
|
+ key = setting.idKey || 'id',
|
|
|
+ parentKey = setting.parentKey || 'parentId',
|
|
|
+ childKey = setting.childKey || 'children';
|
|
|
+ if (!key || key == "" || !sNodes) return [];
|
|
|
+
|
|
|
+ if (isArray(sNodes)) {
|
|
|
+ var r = [];
|
|
|
+ var tmpMap = {};
|
|
|
+ for (i = 0, l = sNodes.length; i < l; i++) {
|
|
|
+ tmpMap[sNodes[i][key]] = sNodes[i];
|
|
|
+ }
|
|
|
+ for (i = 0, l = sNodes.length; i < l; i++) {
|
|
|
+ if (tmpMap[sNodes[i][parentKey]] && sNodes[i][key] != sNodes[i][parentKey]) {
|
|
|
+ if (!tmpMap[sNodes[i][parentKey]][childKey])
|
|
|
+ tmpMap[sNodes[i][parentKey]][childKey] = [];
|
|
|
+ tmpMap[sNodes[i][parentKey]][childKey].push(sNodes[i]);
|
|
|
+ } else {
|
|
|
+ r.push(sNodes[i]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return r;
|
|
|
+ } else {
|
|
|
+ return [sNodes];
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 将嵌套的数据格式转换成简单数据格式
|
|
|
+ * @param {Object} setting
|
|
|
+ * @param {Array} nodes
|
|
|
+ */
|
|
|
+export const transformToArrayFormat = (nodes, setting={}) => {
|
|
|
+ if (!nodes) return [];
|
|
|
+ var childKey = setting.childKey || 'children',
|
|
|
+ r = [];
|
|
|
+ if (isArray(nodes)) {
|
|
|
+ for (var i = 0, l = nodes.length; i < l; i++) {
|
|
|
+ r.push(nodes[i]);
|
|
|
+ if (nodes[i][childKey])
|
|
|
+ r = r.concat(transformToArrayFormat(nodes[i][childKey], setting));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ r.push(nodes);
|
|
|
+ if (nodes[childKey])
|
|
|
+ r = r.concat(transformToArrayFormat(nodes[childKey], setting));
|
|
|
+ }
|
|
|
+ return r;
|
|
|
+}
|
|
|
+
|
|
|
+/**将对象转换成url查询格式
|
|
|
+ *
|
|
|
+ * @param {} url
|
|
|
+ * @param {*} data
|
|
|
+ */
|
|
|
+export const changeParam = (url, data) => {
|
|
|
+ if(typeof(url) == 'undefined' || url == null) {
|
|
|
+ return '';
|
|
|
+ }
|
|
|
+ if(typeof(data) == 'undefined' || data == null || typeof(data) != 'object') {
|
|
|
+ return '';
|
|
|
+ }
|
|
|
+ url += (url.indexOf("?") != -1) ? "" : "?";
|
|
|
+ for(var k in data) {
|
|
|
+ url += ((url.indexOf("=") != -1) ? "&" : "") + k + "=" + encodeURI(data[k]);
|
|
|
+ }
|
|
|
+ return url;
|
|
|
+}
|