diff --git a/ZR.Vue/src/components/DateRangePicker/index.vue b/ZR.Vue/src/components/DateRangePicker/index.vue deleted file mode 100644 index eef79bd..0000000 --- a/ZR.Vue/src/components/DateRangePicker/index.vue +++ /dev/null @@ -1,45 +0,0 @@ - diff --git a/ZR.Vue/src/utils/datetime.js b/ZR.Vue/src/utils/datetime.js deleted file mode 100644 index 67f808a..0000000 --- a/ZR.Vue/src/utils/datetime.js +++ /dev/null @@ -1,216 +0,0 @@ -/* eslint-disable */ - -/** - * Date对象的补充函数,包括类似Python中的strftime() - * 阿债 https://gitee.com/azhai/datetime.js - */ - -Date.prototype.toMidnight = function() { - this.setHours(0) - this.setMinutes(0) - this.setSeconds(0) - this.setMilliseconds(0) - return this -} - -Date.prototype.daysAgo = function(days, midnight) { - days = days ? days - 0 : 0 - const date = new Date(this.getTime() - days * 8.64E7) - return midnight ? date.toMidnight() : date -} - -Date.prototype.monthBegin = function(offset) { - offset = offset ? offset - 0 : 0 - const days = this.getDate() - 1 - offset - return this.daysAgo(days, true) -} - -Date.prototype.quarterBegin = function() { - const month = this.getMonth() - this.getMonth() % 3 - return new Date(this.getFullYear(), month, 1).toMidnight() -} - -Date.prototype.yearBegin = function() { - return new Date(this.getFullYear(), 0, 1).toMidnight() -} - -Date.prototype.strftime = function(format, local) { - if (!format) { - const str = new Date(this.getTime() + 2.88E7).toISOString() - return str.substr(0, 16).replace('T', ' ') - } - local = local && local.startsWith('zh') ? 'zh' : 'en' - const padZero = function(str, len) { - const pads = len - str.toString().length - return (pads && pads > 0 ? '0'.repeat(pads) : '') + str - } - format = format.replace('%F', '%Y-%m-%d') - format = format.replace(/%D|%x/, '%m/%d/%y') - format = format.replace(/%T|%X/, '%H:%M:%S') - format = format.replace('%R', '%H:%M') - format = format.replace('%r', '%H:%M:%S %p') - format = format.replace('%c', '%a %b %e %H:%M:%S %Y') - const _this = this - return format.replace(/%[A-Za-z%]/g, function(f) { - let ans = f - switch (f) { - case '%%': - ans = '%' - break - - case '%Y': - case '%G': - ans = _this.getFullYear() - break - - case '%y': - ans = _this.getFullYear() % 100 - break - - case '%C': - ans = _this.getFullYear() / 100 - break - - case '%m': - case '%n': - ans = _this.getMonth() + 1 - break - - case '%B': - local = local.startsWith('en') ? 'english' : local - - case '%b': - const m = _this.getMonth() - ans = local_labels.monthes[local][m] - break - - case '%d': - case '%e': - ans = _this.getDate() - break - - case '%j': - ans = _this.getDaysOfYear() - break - - case '%U': - case '%W': - const ws = _this.getWeeksOfYear(f === '%W') - ans = padZero(ws, 2) - break - - case '%w': - ans = _this.getDay() - - case '%u': - ans = ans === 0 ? 7 : ans - break - - case '%A': - local = local.startsWith('en') ? 'english' : local - - case '%a': - const d = _this.getDay() - ans = local_labels.weekdays[local][d] - break - - case '%H': - case '%k': - ans = _this.getHours() - break - - case '%I': - case '%l': - ans = _this.getHours() - ans = ans % 12 - break - - case '%M': - ans = _this.getMinutes() - break - - case '%S': - ans = _this.getSeconds() - break - - case '%s': - ans = parseInt(_this.getTime() / 1E3) - break - - case '%f': - const ms = _this.getMilliseconds() - ans = padZero(ms * 1E3, 6) - break - - case '%P': - local = local.startsWith('en') ? 'english' : local - - case '%p': - const h = _this.getHours() - ans = local_labels.meridians[local][h < 12 ? 0 : 1] - break - - case '%z': - let tzo = _this.getTimezoneOffset() - const sign = tzo < 0 ? '-' : '+' - tzo = Math.abs(tzo) - const ho = padZero(tzo / 60, 2) - const mo = padZero(tzo % 60, 2) - ans = sign + ho + mo - break - - default: - break - } - if (f === '%C' || f === '%y' || f === '%m' || f === '%d' || f === '%H' || f === '%M' || f === '%S') { - ans = padZero(ans, 2) - } - return ans.toString() - }) -} - -Date.prototype.humanize = function(local) { - local = local && local.startsWith('zh') ? 'zh' : 'en' - const result = this.strftime('', local) - const days = (Date.today() - this.toMidnight().getTime()) / 8.64E7 - if (days <= -10 || days >= 10) { - return result - } - const labels = local_labels.dayagos[local] - let lbl = '' - if (days === 0 || days === 1) { - lbl = labels[days] - } else if (days === -1) { - lbl = labels[2] - } else if (days >= 2) { - lbl = days + labels[3] - } else { - lbl = days + labels[4] - } - return lbl + result.substr(10, 6) -} - -const local_labels = { - monthes: { - english: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], - en: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], - zh: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'] - }, - weekdays: { - english: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], - en: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], - zh: ['日', '一', '二', '三', '四', '五', '六'] - }, - meridians: { - english: ['a.m.', 'p.m.'], - en: ['AM', 'PM'], - zh: ['上午', '下午'] - }, - dayagos: { - english: ['Today', 'Yesterday', 'Tomorrow', ' days ago', ' days late'], - en: ['Today', 'Yesterday', 'Tomorrow', ' days ago', ' days late'], - zh: ['今天', '昨天', '明天', '天前', '天后'] - } -} - -export default Date diff --git a/ZR.Vue/src/utils/shortcuts.js b/ZR.Vue/src/utils/shortcuts.js deleted file mode 100644 index eff6686..0000000 --- a/ZR.Vue/src/utils/shortcuts.js +++ /dev/null @@ -1,108 +0,0 @@ -import Date from './datetime.js' - -export const calendarBaseShortcuts = [{ - text: '今天', - onClick(picker) { - const startTime = new Date(new Date().setHours(0, 0, 0)) - const endTime = new Date(new Date().setHours(23, 59, 59)) - picker.$emit('pick', [startTime, endTime]) - } -}, { - text: '昨天', - onClick(picker) { - const startTime = new Date(new Date().daysAgo(1).setHours(0, 0, 0)) - const endTime = new Date(new Date().daysAgo(1).setHours(23, 59, 59)) - picker.$emit('pick', [startTime, endTime]) - } -}, { - text: '最近一周', - onClick(picker) { - const startTime = new Date(new Date().daysAgo(7).setHours(0, 0, 0)) - const endTime = new Date(new Date().setHours(23, 59, 59)) - picker.$emit('pick', [startTime, endTime]) - } -}, { - text: '最近30天', - onClick(picker) { - const startTime = new Date(new Date().daysAgo(30).setHours(0, 0, 0)) - const endTime = new Date(new Date().setHours(23, 59, 59)) - picker.$emit('pick', [startTime, endTime]) - } -}, { - text: '这个月', - onClick(picker) { - const startTime = new Date(new Date().monthBegin().setHours(0, 0, 0)) - const endTime = new Date(new Date().setHours(23, 59, 59)) - picker.$emit('pick', [startTime, endTime]) - } -}, { - text: '本季度', - onClick(picker) { - const startTime = new Date(new Date().quarterBegin().setHours(0, 0, 0)) - const endTime = new Date(new Date().setHours(23, 59, 59)) - picker.$emit('pick', [startTime, endTime]) - } -}] - -export const calendarMoveShortcuts = [{ - text: '‹ 往前一天 ', - onClick(picker) { - let startTime = new Date(new Date().daysAgo(1).setHours(0, 0, 0)) - let endTime = new Date(new Date().daysAgo(1).setHours(23, 59, 59)) - if (!picker.value) { - picker.value = [startTime, endTime] - } - startTime = picker.value[0].daysAgo(1) - endTime = picker.value[1].daysAgo(1) - picker.$emit('pick', [startTime, picker]) - } -}, { - text: ' 往后一天 ›', - onClick(picker) { - let startTime = new Date(new Date().setHours(0, 0, 0)) - let endTime = new Date(new Date().setHours(23, 59, 59)) - if (!picker.value) { - picker.value = [startTime, endTime] - } - startTime = picker.value[0].daysAgo(-1) - endTime = picker.value[1].daysAgo(-1) - picker.$emit('pick', [startTime, endTime]) - } -}, { - text: '« 往前一周 ', - onClick(picker) { - let startTime = new Date(new Date().setHours(0, 0, 0)) - let endTime = new Date(new Date().setHours(23, 59, 59)) - if (!picker.value) { - picker.value = [startTime.daysAgo(new Date().getDay()), - endTime.daysAgo(new Date().getDay() + 1)] - } else { - picker.value = [picker.value[0].daysAgo(picker.value[0].getDay()), - picker.value[1].daysAgo(picker.value[1].getDay() + 1)] - } - startTime = picker.value[0].daysAgo(7) - endTime = picker.value[1] - picker.$emit('pick', [startTime, endTime]) - } -}, { - text: ' 往后一周 »', - onClick(picker) { - let startTime = new Date(new Date().setHours(0, 0, 0)) - let endTime = new Date(new Date().setHours(23, 59, 59)) - if (!picker.value) { - picker.value = [startTime.daysAgo(new Date().getDay() - 7), - endTime.daysAgo(new Date().getDay() - 6)] - } else { - picker.value = [picker.value[0].daysAgo(picker.value[0].getDay() - 7), - picker.value[1].daysAgo(picker.value[1].getDay() - 6)] - } - startTime = picker.value[0] - endTime = picker.value[1].daysAgo(-7) - picker.$emit('pick', [startTime, endTime]) - } -}] - -export const calendarShortcuts = [ - ...calendarBaseShortcuts, - ...calendarMoveShortcuts -]