xiaochan 2 年之前
父节点
当前提交
20bdb55581
共有 2 个文件被更改,包括 21 次插入15 次删除
  1. 3 3
      src/utils/clone.js
  2. 18 12
      src/utils/date.ts

+ 3 - 3
src/utils/clone.js

@@ -1,15 +1,15 @@
 export function clone(obj) {
-  var buf
+  let buf;
   if (obj instanceof Array) {
     buf = []
-    var i = obj.length
+    let i = obj.length;
     while (i--) {
       buf[i] = clone(obj[i])
     }
     return buf
   } else if (obj instanceof Object) {
     buf = {}
-    for (var k in obj) {
+    for (const k in obj) {
       buf[k] = clone(obj[k])
     }
     return buf

+ 18 - 12
src/utils/date.ts

@@ -1,12 +1,14 @@
-import {stringIsBlank} from '@/utils/blank-utils'
+//@ts-ignore
 import moment from 'moment'
+//@ts-ignore
 import {getServerDateApi} from "@/api/public-api";
 import XEUtils from 'xe-utils'
 
-export const DATEFORMAT = {
-    DATE: 'YYYY-MM-DD',
-    DATE_TIME: 'YYYY-MM-DD HH:mm:ss',
-    TIME: 'HH:mm:ss',
+export enum DATEFORMAT {
+    DATE = 'YYYY-MM-DD',
+    DATE_TIME = 'YYYY-MM-DD HH:mm:ss',
+    TIME = 'HH:mm:ss',
+    DATE_HOUR_CHINE = 'YYYY年MM月DD日HH点'
 }
 
 export function getDate() {
@@ -121,11 +123,11 @@ export function getDateRangeFormatDate(data) {
     //用户手动输入了日期 并且没有按下大键盘上面的回车
     if (data === null || data.length === 0) return {startTime, endTime}
     if (typeof data[0].$d !== 'undefined') {
-        startTime = getFormatDatetime(data[0].$d, 'YYYY-MM-DD') + ' 00:00:00'
-        endTime = getFormatDatetime(data[1].$d, 'YYYY-MM-DD') + ' 23:59:59'
+        startTime = getFormatDatetime(data[0].$d, DATEFORMAT.DATE) + ' 00:00:00'
+        endTime = getFormatDatetime(data[1].$d, DATEFORMAT.DATE) + ' 23:59:59'
     } else {
-        startTime = getFormatDatetime(data[0], 'YYYY-MM-DD') + ' 00:00:00'
-        endTime = getFormatDatetime(data[1], 'YYYY-MM-DD') + ' 23:59:59'
+        startTime = getFormatDatetime(data[0], DATEFORMAT.DATE) + ' 00:00:00'
+        endTime = getFormatDatetime(data[1], DATEFORMAT.DATE) + ' 23:59:59'
     }
     return {startTime, endTime}
 }
@@ -168,8 +170,8 @@ export function formatMonth(date) {
  * @param pattern 格式
  * @returns {string} 返回格式好的日期
  */
-export function getFormatDatetime(date, pattern = 'YYYY-MM-DD HH:mm:ss') {
-    if (stringIsBlank(date)) {
+export function getFormatDatetime(date: any, pattern: DATEFORMAT | string = DATEFORMAT.DATE_TIME): string {
+    if (XEUtils.isEmpty(date)) {
         return ''
     }
     return moment(date).format(pattern)
@@ -249,7 +251,7 @@ function doHandleMonth(month) {
     return m;
 }
 
-export const currentAndAFewDaysAgo = async (day = 7, format = 'YYYY-MM-DD') => {
+export const currentAndAFewDaysAgo = async (day = 7, format: string = 'YYYY-MM-DD') => {
     let date = await getServerDateApi();
     let now = moment(new Date(date)).format(format)
     let start = moment(new Date(date)).subtract(day, 'day')
@@ -282,6 +284,10 @@ export const getDateRange = (val) => {
     if (XEUtils.isEmpty(val)) {
         return {start: '', end: ''}
     }
+    if (!XEUtils.isArray(val)) {
+        return {start: '', end: ''}
+    }
+
     if (val.length === 2) {
         let start = moment(val[0]).format(DATEFORMAT.DATE)
         let end = moment(val[1]).format(DATEFORMAT.DATE)