zhongping-miniprogram/miniprogram/utils/index.ts

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
}