123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- import md5 from 'js-md5'
- import dayjs from 'dayjs'
- import * as qiniu from 'qiniu-js'
- /**
- * md5 加密
- * @param val string
- * @returns strng
- */
- export const fnMd5 = (val: string) => md5(val)
- /**
- * 判断对象是否为空
- * @param obj Object
- * @returns boolean
- */
- export const isEmptyObject = (obj: object) => Object.keys(obj).length > 0
- /**
- * 时间的处理
- * @param date new Date
- * @returns string
- */
- export const dayJs = (date: Date | string) => dayjs(date)
- /**
- *
- * @param menuList 菜单列表
- * @param result 输出得结果
- * @param parent 子菜单
- * @returns object
- */
- export const getAllBreadcrumbList = (menuList: any, result: { [key: string]: any } = {}, parent = []) => {
- for (const item of menuList) {
- result[item.T_permission.trim()] = [...parent, item]
- if (item.Children) getAllBreadcrumbList(item.Children, result, result[item.T_permission])
- }
- return result
- }
- const path = {
- account: ['/roles', '/users'],
- salary: ['/salaryCount', '/salaryMy', '/salary'],
- workAttendance: ['/leave', '/myLeave', '/myOvertime', '/overtime', '/recordsFinance', '/records']
- }
- const permissionPath = (permission: string): string => {
- if (path.account.includes(permission)) {
- return '/account'
- } else if (path.salary.includes(permission)) {
- return '/salary'
- } else if (path.workAttendance.includes(permission)) {
- return '/workAttendance'
- }
- return ''
- }
- const get_name = (name: string): string => {
- if (/\//.test(name)) {
- return name.split('/')[1]
- }
- return name
- }
- const functionucFirst = (str: string) => str[0].toUpperCase() + str.slice(1)
- /**
- * 将扁平化的数组转换成带有meta component字段的新数组
- * @param menuList []
- */
- export const AddRouterMeta = (menuList: any) => {
- let reg = /^[a-zA-Z]+$/
- menuList.forEach((menu: any) => {
- if (menu?.Children) {
- AddRouterMeta(menu?.Children)
- }
- menu.path = menu.T_permission
- menu.name = get_name(menu.T_permission)
- menu.meta = {
- icon: reg.test(menu.T_icon) ? menu.T_icon : menu.T_icon.slice(1),
- title: menu.T_name,
- isKeepAlive: true
- }
- menu.component = permissionPath(menu.T_permission) + '/' + functionucFirst(menu.name)
- })
- return menuList
- }
- /**
- * tree to flat
- * @param menuList []
- */
- export const flatMenuListGet = (menuList: any) => {
- const result = []
- for (let menu of menuList) {
- if (menu.Children) {
- let res: any = flatMenuListGet(menu.Children)
- result.push(...res)
- } else {
- result.push({ ...menu })
- }
- }
- return result
- }
- /**
- * 分钟转小时
- * @param time
- */
- export const getFormatDuration = (time: number) => {
- let hour = 0
- let minute = 0
- let result = ''
- if (time >= 60) {
- hour = time / 60
- minute = time % 60
- } else {
- result = '' + time + '分'
- }
- if (minute > 0) {
- result = '' + parseInt(minute + '') + '分' + result
- }
- if (hour > 0) {
- result = '' + parseInt(hour + '') + '小时' + result
- }
- return result
- }
- /**
- *
- * @param {*} file 上传的文件
- * @param {*} token 上传需要的token
- */
- export const qiniuUpLoadFun = (file: any, token: any) => {
- //七牛上传方法
- return new Promise(function (resolve) {
- let timestamp = new Date().valueOf()
- let params = {
- file: file, //要上传的文件
- key: 'paper_file/' + timestamp + file.name, //自定义文件地址
- token: token,
- config: {
- useCdnDomain: false,
- // region: undefined,
- region: qiniu.region.z2,
- domin: 'https://qiniu.region.z2',
- chunkSize: 1000
- },
- putExtra: {
- fname: file.name,
- params: {},
- mimeType: [] || null
- }
- }
- console.log('domin')
- resolve(params)
- })
- }
- export function upLoadQiniu(params: any) {
- let observable = qiniu.upload(params.file, params.key, params.token, params.putExtra, params.config)
- let observer = {
- next(res: any) {
- // console.log(res);
- console.log('上传中', res)
- },
- error(err: any) {
- console.log(err)
- },
- complete(res: any) {
- // let url = 'http://xxxxxx.cn/' + res.key
- // layer.close(loading) //关闭loading效果
- console.log(res)
- // resolve(url)
- }
- }
- observable.subscribe(observer)
- }
- interface iconsType {
- [propName: string]: string | number
- }
- export const icons: iconsType = {
- ue7d1: '\ue7d1',
- ue63e: '\ue63e',
- ue603: '\ue603',
- ue636: '\ue636',
- ue661: '\ue661',
- ue648: '\ue648',
- ue6a1: '\ue6a1',
- ue645: '\ue645',
- ue619: '\ue619',
- ue627: '\ue627',
- ue64c: '\ue64c',
- ue6aa: '\ue6aa',
- ue690: '\ue690',
- ue663: '\ue663',
- ue7cd: '\ue7cd',
- ue831: '\ue831'
- }
|