ktianc ff56a184ca 版本升级:
1. 修复(kinit-admin):页面缓存问题修复
2. 更新(kinit-api,kinit-admin):菜单管理新增是否缓存字段
3. 更新(kinit-admin):将缓存默认存储在localStorage中
4. 更新(kinit-api):将python-jose库更换为pyjwt库
5. 优化(kinit-admin,kinit-uni):退出登录方法优化
6. 优化(kinit-admin,kinit-uni):response拦截优化
7. 新增(kinit-api,kinit-admin,kinit-uni):jwt到期时间缩短,加入刷新token功能
8. (kinit-uni)切换到 vscode 开发 uniapp 项目
2023-03-13 14:34:26 +08:00

195 lines
6.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 通用js方法封装处理
* Copyright (c) 2019 ruoyi
*/
/**
* 获取任意日期
* date: 时间戳
* AddDayCount: 在时间戳的基础上加减天数
* 示例
* getDate(new Date(),-3).fullDate # 三天前的日期
* getDate(new Date()).fullDate # 今天的日期
* getDate(new Date(), 3).fullDate # 三天后的日期
*/
export function getDate(date, AddDayCount = 0) {
if (!date) {
date = new Date()
}
if (typeof date !== 'object') {
date = date.replace(/-/g, '/')
}
const dd = new Date(date)
dd.setDate(dd.getDate() + AddDayCount) // 获取AddDayCount天后的日期
const y = dd.getFullYear()
const m = dd.getMonth() + 1 < 10 ? '0' + (dd.getMonth() + 1) : dd.getMonth() + 1 // 获取当前月份的日期不足10补0
const d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate() // 获取当前几号不足10补0
return {
fullDate: y + '-' + m + '-' + d,
year: y,
month: m,
date: d,
day: dd.getDay()
}
}
// 日期格式化
export function parseTime(time, pattern) {
if (arguments.length === 0 || !time) {
return null
}
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]) {
this.$refs[refName].resetFields()
}
}
// 添加日期范围
export function addDateRange(params, dateRange, propName) {
const search = JSON.parse(JSON.stringify(params))
if (dateRange != null && dateRange !== '' && dateRange.length !== 0) {
search.as = JSON.stringify({ create_datetime__range: dateRange })
}
return search
}
// 回显数据字典
export function selectDictLabel(datas, value) {
var actions = []
Object.keys(datas).some((key) => {
if (String(datas[key].value) === '' + String(value)) {
actions.push(datas[key].label)
return true
}
})
return actions.join('')
}
// 获取字典默认值
export function selectDictDefault(datas) {
var actions = []
Object.keys(datas).some((key) => {
if (datas[key].is_default === true) {
actions.push(datas[key].dictValue)
return true
}
})
if (!actions[0] && datas[0]) {
actions.push(datas[0].dictValue)
}
return actions.join('')
}
// 回显数据字典字符串数组
export function selectDictLabels(datas, value, separator) {
var actions = []
var currentSeparator = undefined === separator ? ',' : separator
var temp = value.split(currentSeparator)
Object.keys(value.split(currentSeparator)).some((val) => {
Object.keys(datas).some((key) => {
if (datas[key].dictValue == '' + temp[val]) {
actions.push(datas[key].dictLabel + currentSeparator)
}
})
})
return actions.join('').substring(0, actions.join('').length - 1)
}
// 转换字符串undefined,null等转化为""
export function praseStrEmpty(str) {
if (!str || str == 'undefined' || str == 'null') {
return ''
}
return str
}
// js模仿微信朋友圈计算时间显示几天/几小时/几分钟/刚刚
//datetime 格式为2019-11-22 12:23:59样式
export function timeConversion(datetime) {
//dateTimeStamp是一个时间毫秒注意时间戳是秒的形式在这个毫秒的基础上除以1000就是十位数的时间戳13位数的都是时间毫秒
// var dateTimeStamp = new Date(datetime.replace(/ /, 'T')).getTime()-8 * 60 * 60 * 1000;//这里要减去中国的时区8小时
var dateTimeStamp = new Date(datetime.replace(/ /, 'T')).getTime() //这里不减去中国的时区8小时
var minute = 1000 * 60 //把分半个月一个月用毫秒表示
var hour = minute * 60
var day = hour * 24
var week = day * 7
var month = day * 30
var now = new Date().getTime() //获取当前时间毫秒
var diffValue = now - dateTimeStamp //时间差
if (diffValue < 0) {
return '刚刚'
}
var minC = diffValue / minute //计算时间差的分
var hourC = diffValue / hour
var dayC = diffValue / day
var weekC = diffValue / week
var monthC = diffValue / month
var result = '2'
if (monthC >= 1 && monthC <= 3) {
result = ' ' + parseInt(monthC) + '月前'
} else if (weekC >= 1 && weekC <= 3) {
result = ' ' + parseInt(weekC) + '周前'
} else if (dayC >= 1 && dayC <= 6) {
result = ' ' + parseInt(dayC) + '天前'
} else if (hourC >= 1 && hourC <= 23) {
result = ' ' + parseInt(hourC) + '小时前'
} else if (minC >= 1 && minC <= 59) {
result = ' ' + parseInt(minC) + '分钟前'
} else if (diffValue >= 0 && diffValue <= minute) {
result = '刚刚'
} else {
let datetime = new Date()
datetime.setTime(dateTimeStamp)
let Nyear = datetime.getFullYear()
var Nmonth =
datetime.getMonth() + 1 < 10 ? '0' + (datetime.getMonth() + 1) : datetime.getMonth() + 1
var Ndate = datetime.getDate() < 10 ? '0' + datetime.getDate() : datetime.getDate()
var Nhour = datetime.getHours() < 10 ? '0' + datetime.getHours() : datetime.getHours()
var Nminute = datetime.getMinutes() < 10 ? '0' + datetime.getMinutes() : datetime.getMinutes()
var Nsecond = datetime.getSeconds() < 10 ? '0' + datetime.getSeconds() : datetime.getSeconds()
result = Nyear + '-' + Nmonth + '-' + Ndate
}
return result
}