143 lines
4.4 KiB
TypeScript
143 lines
4.4 KiB
TypeScript
/**
|
|
* Parse the time to string
|
|
* @param {(Object|string|number)} time
|
|
* @param {string} cFormat {y}-{m}-{d} {h}:{i}:{s}
|
|
* @returns {string | null}
|
|
*/
|
|
export function parseTime(time: any, cFormat: string) {
|
|
if (arguments.length === 0 || !time) {
|
|
return null
|
|
}
|
|
const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
|
|
let date
|
|
if (typeof time === 'object') {
|
|
date = time
|
|
} else {
|
|
if ((typeof time === 'string')) {
|
|
if ((/^[0-9]+$/.test(time))) {
|
|
// support "1548221490638"
|
|
time = parseInt(time)
|
|
} else {
|
|
// support safari
|
|
// https://stackoverflow.com/questions/4310953/invalid-date-in-safari
|
|
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(/{([ymdhisa])+}/g, (_result, key) => {
|
|
// @ts-ignore
|
|
const value = formatObj[key]
|
|
// Note: getDay() returns 0 on Sunday
|
|
if (key === 'a') {
|
|
return ['日', '一', '二', '三', '四', '五', '六'][value]
|
|
}
|
|
return value.toString().padStart(2, '0')
|
|
})
|
|
return time_str
|
|
}
|
|
|
|
export function optionsFilter(value: string, options = [], emptyFill = '', valueKey = 'value', returnKey = 'label') {
|
|
const item = options.find(it => it[valueKey] === value)
|
|
if (item) {
|
|
return item[returnKey]
|
|
} else {
|
|
return emptyFill
|
|
}
|
|
}
|
|
|
|
export function splitDates(dateStr: string) {
|
|
return (dateStr.split(',').length > 1
|
|
? (dateStr.split(',')[1] == 'undefined'
|
|
? parseTime(dateStr.split(',')[0], '{y}-{m}-{d}')
|
|
: parseTime(dateStr.split(',')[0], '{y}-{m}-{d}') + '~' + dateStr.split(',')[1])
|
|
: parseTime(dateStr.split(',')[0], '{y}-{m}-{d}'))
|
|
}
|
|
|
|
export function toarrary(value: string) {
|
|
return (value || '').split(',')
|
|
}
|
|
|
|
export function nationList() {
|
|
return [
|
|
{ id: "01", name: "汉族" },
|
|
{ id: "02", name: "蒙古族" },
|
|
{ id: "03", name: "回族" },
|
|
{ id: "04", name: "藏族" },
|
|
{ id: "05", name: "维吾尔族" },
|
|
{ id: "06", name: "苗族" },
|
|
{ id: "07", name: "彝族" },
|
|
{ id: "08", name: "壮族" },
|
|
{ id: "09", name: "布依族" },
|
|
{ id: "10", name: "朝鲜族" },
|
|
{ id: "11", name: "满族" },
|
|
{ id: "12", name: "侗族" },
|
|
{ id: "13", name: "瑶族" },
|
|
{ id: "14", name: "白族" },
|
|
{ id: "15", name: "土家族" },
|
|
{ id: "16", name: "哈尼族" },
|
|
{ id: "17", name: "哈萨克族" },
|
|
{ id: "18", name: "傣族" },
|
|
{ id: "19", name: "黎族" },
|
|
{ id: "20", name: "傈僳族" },
|
|
{ id: "21", name: "佤族" },
|
|
{ id: "22", name: "畲族" },
|
|
{ id: "23", name: "高山族" },
|
|
{ id: "24", name: "拉祜族" },
|
|
{ id: "25", name: "水族" },
|
|
{ id: "26", name: "东乡族" },
|
|
{ id: "27", name: "纳西族" },
|
|
{ id: "28", name: "景颇族" },
|
|
{ id: "29", name: "柯尔克孜族" },
|
|
{ id: "30", name: "土族" },
|
|
{ id: "31", name: "达斡尔族" },
|
|
{ id: "32", name: "仫佬族" },
|
|
{ id: "33", name: "羌族" },
|
|
{ id: "34", name: "布朗族" },
|
|
{ id: "35", name: "撒拉族" },
|
|
{ id: "36", name: "毛难族" },
|
|
{ id: "37", name: "仡佬族" },
|
|
{ id: "38", name: "锡伯族" },
|
|
{ id: "39", name: "阿昌族" },
|
|
{ id: "40", name: "普米族" },
|
|
{ id: "41", name: "塔吉克族" },
|
|
{ id: "42", name: "怒族" },
|
|
{ id: "43", name: "乌孜别克族" },
|
|
{ id: "44", name: "俄罗斯族" },
|
|
{ id: "45", name: "鄂温克族" },
|
|
{ id: "46", name: "崩龙族" },
|
|
{ id: "47", name: "保安族" },
|
|
{ id: "48", name: "裕固族" },
|
|
{ id: "49", name: "京族" },
|
|
{ id: "50", name: "塔塔尔族" },
|
|
{ id: "51", name: "独龙族" },
|
|
{ id: "52", name: "鄂伦春族" },
|
|
{ id: "53", name: "赫哲族" },
|
|
{ id: "54", name: "门巴族" },
|
|
{ id: "55", name: "珞巴族" },
|
|
{ id: "56", name: "基诺族" }
|
|
];
|
|
}
|
|
|
|
export function hideInformation(value: string, start: number, length: number|undefined) {
|
|
const prefix = value.substring(0, start)
|
|
let suffixLen = value.length - start
|
|
if (length) {
|
|
suffixLen = length - start
|
|
}
|
|
const suffix = new Array(suffixLen).fill('*').join('')
|
|
return prefix + suffix
|
|
} |