@ -0,0 +1,13 @@ |
|||
## 开发环境 |
|||
|
|||
# 变量必须以 VITE_ 为前缀才能暴露给外部读取 |
|||
NODE_ENV='development' |
|||
|
|||
VITE_APP_TITLE = '数通智联化工云平台' |
|||
VITE_APP_PORT = 9998 |
|||
VITE_APP_BASE_API = '/dev-api' |
|||
VITE_APP_BASE_URL = 'http://myvuetest.net' |
|||
VITE_APP_TOKEN_KEY = 'offlineAccessSystemAppToken' |
|||
VITE_APP_SJZT_URL = 'http://172.20.5.86/prod-api' |
|||
VITE_APP_SYSTEM_APP = 'stzl' |
|||
VITE_APP_AGAIN = 1 |
|||
@ -0,0 +1,9 @@ |
|||
## 生产环境 |
|||
|
|||
VITE_APP_TITLE = '数通智联化工云平台' |
|||
VITE_APP_PORT = 17776 |
|||
VITE_APP_BASE_API = '' |
|||
VITE_APP_TOKEN_KEY = 'onlineAccessSystemAppToken' |
|||
VITE_APP_SJZT_URL = 'http://120.224.6.6:29911/prod-api' |
|||
VITE_APP_SYSTEM_APP = 'stzl' |
|||
VITE_APP_AGAIN = 1 |
|||
@ -0,0 +1,8 @@ |
|||
## 模拟环境 |
|||
NODE_ENV='staging' |
|||
|
|||
VITE_APP_TITLE = '数通智联化工云平台' |
|||
VITE_APP_PORT = 3001 |
|||
VITE_APP_BASE_API = '/prod--api' |
|||
VITE_APP_SYSTEM_APP = 'stzl' |
|||
VITE_APP_AGAIN = 1 |
|||
@ -0,0 +1,329 @@ |
|||
import constValue from '@/api/common/calendar/const'; |
|||
import constVal from '@/api/common/calendar/const'; |
|||
import DateClass from '@/api/common/calendar/DateClass'; |
|||
import { clockFactory } from '@/api/common/calendar/utils'; |
|||
|
|||
|
|||
export interface dateBase { |
|||
isCurrent: boolean; |
|||
title: number; |
|||
isHolidays: boolean; |
|||
isWorks: boolean; |
|||
date: string; |
|||
lunars: string; |
|||
lunarsChina: string; |
|||
isNow: boolean; |
|||
term: string | false; |
|||
lunarsChinese: string; |
|||
solarDay: string | false; |
|||
animal: string; |
|||
astro: string; |
|||
lunarDay: string | false; |
|||
isWeek?: boolean; |
|||
} |
|||
/** |
|||
* 获得节气 |
|||
* @param y 农历年度 |
|||
* @param m 公立月份 |
|||
* @param d 公立日期 |
|||
* @returns |
|||
*/ |
|||
export function getTerm(y: number, m: number, d: number) { |
|||
let firstNode = DateClass.getTerm(y, m * 2 - 1), |
|||
secondNode = DateClass.getTerm(y, m * 2); |
|||
|
|||
let term: false | string = false; |
|||
|
|||
if (Number(firstNode) === d) term = constVal.solarTerm[m * 2 - 2]; |
|||
if (Number(secondNode) == d) term = constVal.solarTerm[m * 2 - 1]; |
|||
|
|||
return term; |
|||
} |
|||
|
|||
class Calendar { |
|||
title() { |
|||
const title: string[] = []; |
|||
for (let i = 0; i <= 6; i++) { |
|||
title.push(constValue.nStr5[i % 7]); |
|||
} |
|||
return title; |
|||
} |
|||
validateDate(date: number[]) { |
|||
if (date.length === 3 && String(date[0]).length === 4) { |
|||
return date; |
|||
} else { |
|||
return DateClass.getCurrent(); |
|||
} |
|||
} |
|||
getDateParams(day: dateBase[], date: number[]) { |
|||
return day.map((el, index) => { |
|||
return { |
|||
title: el.title, |
|||
isCurrent: el.isCurrent, |
|||
value: 'tCalendar' + new Date().getTime(), |
|||
isWeek: new Date(el.date).getDay() === 6 || new Date(el.date).getDay() === 0, |
|||
isHolidays: el.isHolidays, |
|||
date: el.date, |
|||
lunars: el.lunars, |
|||
lunarsChinese: el.lunarsChinese, |
|||
lunarsChina: el.lunarDay || el.solarDay || el.term || el.lunarsChina, |
|||
isNow: el.isNow, |
|||
animal: el.animal, |
|||
astro: el.astro, |
|||
term: el.term, |
|||
solarDay: el.solarDay, |
|||
lunarDay: el.lunarDay |
|||
}; |
|||
}); |
|||
} |
|||
/** |
|||
* 获取当月前面需补齐的数组 |
|||
*/ |
|||
beforDays(date: number[], last: number) { |
|||
const y = date[1] === 1 ? date[0] - 1 : date[0]; |
|||
const m = date[1] === 1 ? 12 : date[1] - 1; |
|||
let w = DateClass.solarMonth(y, m); |
|||
console.log("获取当月前面需补齐的数组-->",y,m,w,last) |
|||
const arr: dateBase[] = []; |
|||
for (let i = 0; i < last; i++) { |
|||
const lun = DateClass.getLunars(y, m, w - i); |
|||
const l = lun.split('-'); |
|||
arr.push({ |
|||
title: w - i, |
|||
isCurrent: false, |
|||
isHolidays: DateClass.getHolidays([y, m, w - i]), |
|||
isWorks: DateClass.getWorks([y, m, w - i]), |
|||
date: `${y}-${clockFactory(m)}-${clockFactory(w - i)}`, |
|||
lunars: lun, |
|||
lunarsChinese: |
|||
DateClass.toChinaMonth(Number(l[1])) + DateClass.toChinaDay(Number(l[2])), |
|||
lunarsChina: DateClass.toChinaDay(Number(l[2])), |
|||
isNow: false, |
|||
solarDay: DateClass.getSolarDay(m, w - i), |
|||
lunarDay: DateClass.getlunarDay(Number(l[0]), Number(l[1]), Number(l[2])), |
|||
animal: DateClass.getAnimal(Number(l[0])), |
|||
astro: DateClass.toAstro(y, m, w - i), |
|||
term: getTerm(Number(l[0]), m, w - i), |
|||
|
|||
}); |
|||
} |
|||
return arr; |
|||
} |
|||
/** |
|||
* 获取当月后面需补齐的数组 |
|||
*/ |
|||
afterDays(day: dateBase[], date: number[]) { |
|||
const arr: dateBase[] = []; |
|||
const y = date[1] === 12 ? date[0] + 1 : date[0]; |
|||
const m = date[1] === 12 ? 1 : date[1] + 1; |
|||
for (let i = 1; i < 42 - day.length + 1; i++) { |
|||
const lun = DateClass.getLunars(y, m, i); |
|||
const l = lun.split('-'); |
|||
arr.push({ |
|||
title: i, |
|||
isCurrent: false, |
|||
isHolidays: DateClass.getHolidays([y, m, i]), |
|||
isWorks: DateClass.getWorks([y, m, i]), |
|||
date: `${y}-${clockFactory(m)}-${clockFactory(i)}`, |
|||
lunars: lun, |
|||
lunarsChinese: |
|||
DateClass.toChinaMonth(Number(l[1])) + DateClass.toChinaDay(Number(l[2])), |
|||
lunarsChina: DateClass.toChinaDay(Number(l[2])), |
|||
isNow: false, |
|||
solarDay: DateClass.getSolarDay(m, i), |
|||
lunarDay: DateClass.getlunarDay(Number(l[0]), Number(l[1]), Number(l[2])), |
|||
animal: DateClass.getAnimal(Number(l[0])), |
|||
astro: DateClass.toAstro(y, m, i), |
|||
term: getTerm(Number(l[0]), m, i) |
|||
}); |
|||
} |
|||
return [...day, ...arr]; |
|||
} |
|||
getDay(date: number[], beforDays: dateBase[]) { |
|||
const dateArray: dateBase[] = []; |
|||
const currentDayNumber = DateClass.solarMonth(date[0], date[1], date[2]); |
|||
for (let i = 1; i <= currentDayNumber; i++) { |
|||
const lun = DateClass.getLunars(date[0], date[1], i); |
|||
const l = lun.split('-'); |
|||
dateArray.push({ |
|||
title: i, |
|||
isCurrent: true, |
|||
isHolidays: DateClass.getHolidays([date[0], date[1], i]), |
|||
isWorks: DateClass.getWorks([date[0], date[1], i]), |
|||
date: `${date[0]}-${clockFactory(date[1])}-${clockFactory(i)}`, |
|||
lunars: lun, |
|||
lunarsChinese: |
|||
DateClass.toChinaMonth(Number(l[1])) + DateClass.toChinaDay(Number(l[2])), |
|||
lunarsChina: DateClass.toChinaDay(Number(l[2])), |
|||
isNow: i === date[2] ? true : false, |
|||
solarDay: DateClass.getSolarDay(date[1], i), |
|||
lunarDay: DateClass.getlunarDay(Number(l[0]), Number(l[1]), Number(l[2])), |
|||
animal: DateClass.getAnimal(Number(l[0])), |
|||
astro: DateClass.toAstro(date[0], date[1], i), |
|||
term: getTerm(Number(l[0]), date[1], i) |
|||
}); |
|||
} |
|||
return [...beforDays, ...dateArray]; |
|||
} |
|||
|
|||
table(date: number[]) { |
|||
const dateArray = []; |
|||
|
|||
const result = this.validateDate(date); |
|||
|
|||
const currentDay = DateClass.solarWeeks(result[0], result[1]); |
|||
console.log("获取当月的完整数据",currentDay,result) |
|||
// 获取当月的完整数据
|
|||
const beforDays = this.beforDays(date, currentDay).reverse(); |
|||
|
|||
const m = this.getDay(date, beforDays); |
|||
|
|||
console.log("获取当月的完整数据--->",m,date) |
|||
|
|||
const afterDays = this.afterDays(m, date); |
|||
|
|||
|
|||
// 转化成参数
|
|||
const params = this.getDateParams(afterDays, date); |
|||
|
|||
// return [];
|
|||
if (params.length !== 42) return []; |
|||
|
|||
for (let row = 0; row < 6; row++) { |
|||
dateArray.push(params.splice(0, 7)); |
|||
} |
|||
// console.log("日历数据",dateArray)
|
|||
return dateArray; |
|||
} |
|||
//获取单一日期格式
|
|||
gainOneDay(y: number, m: number, d: number){ |
|||
let dateStr = y + "-" + m + "-" + d; // 要转换的日期字符串
|
|||
let now = new Date(dateStr); //当前日期字符串转换成Date对象
|
|||
const lun = DateClass.getLunars(y, m, d); |
|||
const l = lun.split('-'); |
|||
let currentTime = DateClass.getCurrent() |
|||
return { |
|||
title: d, |
|||
isCurrent: true, |
|||
isHolidays: DateClass.getHolidays([y, m, d]), |
|||
isWorks: DateClass.getWorks([y, m, d]), |
|||
date: `${y}-${clockFactory(m)}-${clockFactory(d)}`, |
|||
lunars: lun, |
|||
lunarsChinese: |
|||
DateClass.toChinaMonth(Number(l[1])) + DateClass.toChinaDay(Number(l[2])), |
|||
lunarsChina: DateClass.toChinaDay(Number(l[2])), |
|||
isNow: currentTime[2] === d ? true : false, |
|||
solarDay: DateClass.getSolarDay(m, d ), |
|||
lunarDay: DateClass.getlunarDay(Number(l[0]), Number(l[1]), Number(l[2])), |
|||
animal: DateClass.getAnimal(Number(l[0])), |
|||
astro: DateClass.toAstro(y, m, d), |
|||
term: getTerm(Number(l[0]), m, d), |
|||
|
|||
} |
|||
} |
|||
|
|||
//获取指定日期所在周的时间
|
|||
gainDayOfWeek(year: number, month: number, taday: number){ |
|||
let dateStr = year + "-" + month + "-" + taday; // 要转换的日期字符串
|
|||
let now = new Date(dateStr); //当前日期字符串转换成Date对象
|
|||
let nowTime = now.getTime(); |
|||
let nowDayOfWeek = now.getDay()==0?7:now.getDay(); //今天本周的第几天
|
|||
let taDay = now.getDate() |
|||
let firstTime = now.setDate(taDay - nowDayOfWeek + 1) |
|||
let currentTime = DateClass.getCurrent() |
|||
const dateArray: dateBase[] = []; |
|||
for(let i=1; i<=7;i++){ |
|||
let nextWeekFirstDaty = new Date(firstTime + 86400000 * (i - 1)) |
|||
let y: any = nextWeekFirstDaty.getFullYear(); |
|||
let m: any = nextWeekFirstDaty.getMonth() + 1; |
|||
let d: any = nextWeekFirstDaty.getDate(); |
|||
const lun = DateClass.getLunars(y, m, d); |
|||
const l = lun.split('-'); |
|||
dateArray.push({ |
|||
title: d, |
|||
isCurrent: true, |
|||
isHolidays: DateClass.getHolidays([y, m, d]), |
|||
isWorks: DateClass.getWorks([y, m, d - i]), |
|||
date: `${y}-${clockFactory(m)}-${clockFactory(d)}`, |
|||
lunars: lun, |
|||
lunarsChinese: |
|||
DateClass.toChinaMonth(Number(l[1])) + DateClass.toChinaDay(Number(l[2])), |
|||
lunarsChina: DateClass.toChinaDay(Number(l[2])), |
|||
isNow: currentTime[2] === d ? true : false, |
|||
solarDay: DateClass.getSolarDay(m, d + i), |
|||
lunarDay: DateClass.getlunarDay(Number(l[0]), Number(l[1]), Number(l[2])), |
|||
animal: DateClass.getAnimal(Number(l[0])), |
|||
astro: DateClass.toAstro(y, m, d), |
|||
term: getTerm(Number(l[0]), m, d), |
|||
|
|||
}); |
|||
} |
|||
|
|||
|
|||
// console.log("dateStr=========>",dateStr)
|
|||
// console.log("now=========>",now)
|
|||
// console.log("nowTime=========>",nowTime)
|
|||
// console.log("nowDayOfWeek=========>",nowDayOfWeek)
|
|||
// console.log("taDay=========>",taDay)
|
|||
// console.log("kjsd=========>",firstTime)
|
|||
// console.log("dateArray=========>",dateArray)
|
|||
|
|||
return dateArray |
|||
} |
|||
|
|||
|
|||
//获得一周的所有日期
|
|||
getWeekNumber(year: number, month: number, taday: number) { |
|||
let dateStr = year + "-" + month + "-" + taday; // 要转换的日期字符串
|
|||
let now = new Date(dateStr); |
|||
let nowTime = now.getTime(); |
|||
let second = nowTime % 86400000; |
|||
let day = (now.getDay() + 6) % 7; |
|||
let endTime = nowTime - second + new Date().getTimezoneOffset() * 60000 - day * 86400000; |
|||
// var dataAry = new Array
|
|||
// for(let i = 0; i <7; i++) {
|
|||
let nextWeekFirstDatysss = new Date(endTime ); |
|||
// let y: any = nextWeekFirstDaty.getFullYear();
|
|||
// let m: any = nextWeekFirstDaty.getMonth() + 1;
|
|||
// let d: any = nextWeekFirstDaty.getDate();
|
|||
// dataAry.push([y,m,d])
|
|||
// }
|
|||
|
|||
console.log("获得一周的所有日期---------------->",dateStr,now.getDay(),day,nextWeekFirstDatysss,endTime) |
|||
|
|||
|
|||
let currentTime = DateClass.getCurrent() |
|||
const dateArray: dateBase[] = []; |
|||
for(let i = 0; i <7; i++) { |
|||
let nextWeekFirstDaty = new Date(endTime + 86400000*(i+1) ); |
|||
let y: any = nextWeekFirstDaty.getFullYear(); |
|||
let m: any = nextWeekFirstDaty.getMonth() + 1; |
|||
let d: any = nextWeekFirstDaty.getDate(); |
|||
const lun = DateClass.getLunars(y, m, d); |
|||
const l = lun.split('-'); |
|||
console.log("获得一周的所有日期",i,d,endTime + 86400000*(i+1)) |
|||
dateArray.push({ |
|||
title: d, |
|||
isCurrent: true, |
|||
isHolidays: DateClass.getHolidays([y, m, d + i]), |
|||
isWorks: DateClass.getWorks([y, m, d - i]), |
|||
date: `${y}-${clockFactory(m)}-${clockFactory(d + i)}`, |
|||
lunars: lun, |
|||
lunarsChinese: |
|||
DateClass.toChinaMonth(Number(l[1])) + DateClass.toChinaDay(Number(l[2])), |
|||
lunarsChina: DateClass.toChinaDay(Number(l[2])), |
|||
isNow: currentTime[2] === d ? true : false, |
|||
solarDay: DateClass.getSolarDay(m, d + i), |
|||
lunarDay: DateClass.getlunarDay(Number(l[0]), Number(l[1]), Number(l[2])), |
|||
animal: DateClass.getAnimal(Number(l[0])), |
|||
astro: DateClass.toAstro(y, m, d + i), |
|||
term: getTerm(Number(l[0]), m, d + i), |
|||
|
|||
}); |
|||
} |
|||
return dateArray |
|||
|
|||
} |
|||
} |
|||
|
|||
export default new Calendar(); |
|||
@ -0,0 +1,463 @@ |
|||
import constValue from '@/api/common/calendar/const'; |
|||
import { clockFactory } from '@/api/common/calendar/utils'; |
|||
import config from '@/api/common/calendar/config'; |
|||
export const dayArr = [ '一', '二', '三', '四', '五', '六','日']; |
|||
// export const dayArr = ['日', '一', '二', '三', '四', '五', '六'];
|
|||
|
|||
/** |
|||
* 日期信息的操作类 |
|||
*/ |
|||
class DateClass { |
|||
getWeek(week: number) { |
|||
return `星期${dayArr[week]}`; |
|||
} |
|||
getCurrent() { |
|||
const date = new Date(); |
|||
return [date.getFullYear(), date.getMonth() + 1, date.getDate()]; |
|||
} |
|||
changeTimeStr(time: string) { |
|||
return time.split('-').map((el) => Number(el)); |
|||
} |
|||
getCurrentStr(isZero: boolean = false) { |
|||
const date = new Date(); |
|||
return isZero |
|||
? date.getFullYear() + |
|||
'-' + |
|||
clockFactory(date.getMonth() + 1) + |
|||
'-' + |
|||
clockFactory(date.getDate()) |
|||
: date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate(); |
|||
} |
|||
getHolidays(date: number[]) { |
|||
return ( |
|||
config.Holidays.indexOf(`${date[0]}${clockFactory(date[1])}${clockFactory(date[2])}`) > |
|||
-1 |
|||
); |
|||
} |
|||
getWorks(date: number[]) { |
|||
// console.log("日清杀杀杀",`${date[0]}${clockFactory(date[1])}${clockFactory(date[2])}`)
|
|||
// console.log("日清杀杀杀--》",config.Works.indexOf(`${date[0]}${clockFactory(date[1])}${clockFactory(date[2])}`))
|
|||
// console.log("日清杀杀杀--》",(
|
|||
// config.Works.indexOf(`${date[0]}${clockFactory(date[1])}${clockFactory(date[2])}`) >
|
|||
// -1
|
|||
// ))
|
|||
return ( |
|||
config.Works.indexOf(`${date[0]}${clockFactory(date[1])}${clockFactory(date[2])}`) > |
|||
-1 |
|||
); |
|||
} |
|||
/** |
|||
* 获取公历月份天数 |
|||
* @param {number} y 年 |
|||
* @param {number} m 月 |
|||
* @returns {number} 返回输入月份天数 |
|||
*/ |
|||
solarMonth(y: number, m: number, d?: number) { |
|||
if (m == 2) return (y % 4 == 0 && y % 100 != 0) || y % 400 == 0 ? 29 : 28; |
|||
return constValue.solarMonth[m - 1]; |
|||
} |
|||
/** |
|||
* 获得当前月份第一天是星期几 |
|||
* @param {number} y 年 |
|||
* @param {number} m 月 |
|||
* @returns {number} 返回星期数字[0-6] |
|||
*/ |
|||
solarWeeks(y: number, m: number) { |
|||
return this.solarWeek(y, m, 1); |
|||
} |
|||
/** |
|||
* 获取公历某一天是星期几 |
|||
* @param {number} y 年 |
|||
* @param {number} m 月 |
|||
* @param {number} d 日 |
|||
* @returns {number} 返回星期数字[0-6] |
|||
*/ |
|||
solarWeek(y: number, m: number, d: number) { |
|||
let date = new Date(y, m - 1, d); |
|||
let week = date.getDay()-1; |
|||
if(week < 0){ |
|||
week = 6 |
|||
} |
|||
// console.log("获取公历某一天是星期几",y, m ,date,week,week < 0)
|
|||
return week; |
|||
} |
|||
/** |
|||
* 返回农历月份通俗表示法 |
|||
* @param {number} m 农历月 |
|||
* @returns {string} 返回农历月份通俗表示法:'正月' |
|||
*/ |
|||
toChinaMonth(m: number) { |
|||
let r = String(m).slice(0, 1) == '0'; |
|||
return r |
|||
? '\u95f0' + constValue.nStr3[m - 1] + '\u6708' |
|||
: constValue.nStr3[m - 1] + '\u6708'; // 加上"月"字
|
|||
} |
|||
/** |
|||
* 返回农历日期通俗表示法 |
|||
* @param {number} d 农历日 |
|||
* @returns {string} 返回农历日期通俗表示法:‘初一’ |
|||
*/ |
|||
toChinaDay(d: number) { |
|||
|
|||
let str = d == 10 ? constValue.nStr2[0] : constValue.nStr2[Math.floor(d / 10)]; |
|||
|
|||
// console.log('返回农历日期通俗表示法',d,str)
|
|||
return str + (d % 10 ? constValue.nStr1[d % 10] : constValue.nStr1[10]); |
|||
} |
|||
/** |
|||
* 农历年份转生肖 |
|||
* @param {number} y 农历年 |
|||
* @returns {string} 农历年份转生肖 |
|||
*/ |
|||
getAnimal(y: number) { |
|||
return constValue.Animals[(y - 4) % 12]; |
|||
} |
|||
/** |
|||
* 返回公历日期所属星座 |
|||
* @param {number} m 月 |
|||
* @param {number} d 日 |
|||
* @returns {string} 返回星座信息 |
|||
*/ |
|||
toAstro(y: number, m: number, d: number) { |
|||
let s = |
|||
'\u9b54\u7faf\u6c34\u74f6\u53cc\u9c7c\u767d\u7f8a\u91d1\u725b\u53cc\u5b50\u5de8\u87f9\u72ee\u5b50\u5904\u5973\u5929\u79e4\u5929\u874e\u5c04\u624b\u9b54\u7faf'; |
|||
let arr = [20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22, 22]; |
|||
let i = m * 2 - (d < arr[m - 1] ? 2 : 0); |
|||
return s.slice(i, i + 2) + '\u5ea7'; |
|||
} |
|||
/** |
|||
* 根据公历日期返回农历日期 |
|||
* @param {number} y 年 |
|||
* @param {number} m 月 |
|||
* @param {number} d 日 |
|||
* @returns {string} 返回农历日期,如果是闰月则月份前含0 |
|||
*/ |
|||
getLunars(y: number, m: number, d: number) { |
|||
let date = new Date(y, m - 1, d), |
|||
i, |
|||
leap = 0, |
|||
temp = 0; |
|||
let offset = (Date.UTC(y, m - 1, d) - Date.UTC(1900, 0, 31)) / 86400000; |
|||
for (i = 1900; i < 2101 && offset > 0; i++) { |
|||
temp = this.lYearDays(i); |
|||
offset -= temp; |
|||
} |
|||
if (offset < 0) { |
|||
offset += temp; |
|||
i--; |
|||
} |
|||
// 获取闰月
|
|||
let year = i; |
|||
leap = this.leapMonth(i); |
|||
let isLeap = false; |
|||
// 校验闰月
|
|||
for (i = 1; i < 13 && offset > 0; i++) { |
|||
if (leap > 0 && i == leap + 1 && !isLeap) { |
|||
--i; |
|||
isLeap = true; |
|||
temp = this.leapDays(year); // 闰月天数
|
|||
} else { |
|||
temp = this.monthDays(year, i); // 普通月天数
|
|||
} |
|||
if (isLeap && i == leap + 1) isLeap = false; |
|||
offset -= temp; |
|||
} |
|||
if (offset == 0 && leap > 0 && i == leap + 1) { |
|||
if (isLeap) { |
|||
isLeap = false; |
|||
} else { |
|||
isLeap = true; |
|||
--i; |
|||
} |
|||
} |
|||
if (offset < 0) { |
|||
offset += temp; |
|||
--i; |
|||
} |
|||
// 农历月
|
|||
let month = isLeap ? '0' + i : i; |
|||
// 农历日
|
|||
let day = ++offset; |
|||
return year + '-' + month + '-' + day; |
|||
} |
|||
/** |
|||
* 返回农历年闰月,没有闰月则返回0 |
|||
* @param {number} y 农历年 |
|||
* @returns {number} 农历年闰月月份数字,没有闰月则返回0 |
|||
*/ |
|||
leapMonth(y: number, m?: number, d?: number) { |
|||
return constValue.lunarInfo[y - 1900] & 0xf; |
|||
} |
|||
/** |
|||
* 返回农历年闰月的天数,没有闰月则返回0 |
|||
* @param {number} y 农历年 |
|||
* @returns {number} 闰月的天数,没有闰月则返回0 |
|||
*/ |
|||
leapDays(y: number, m?: number, d?: number) { |
|||
return this.leapMonth(y, m, d) ? (constValue.lunarInfo[y - 1900] & 0x10000 ? 30 : 29) : 0; |
|||
} |
|||
/** |
|||
* 查询公历日期节日 |
|||
* @param {number} m 月 |
|||
* @param {number} d 日 |
|||
* @returns {string | boolean} 返回节日信息,不是节日则返回false |
|||
*/ |
|||
getSolarDay(m: number, d: number) { |
|||
let solarDay: false | string = false; |
|||
for (let i = 0; i < constValue.sFtv.length; i++) { |
|||
if ( |
|||
parseInt(constValue.sFtv[i].slice(0, 2)) == m && |
|||
parseInt(constValue.sFtv[i].slice(2, 4)) == d |
|||
) { |
|||
solarDay = constValue.sFtv[i].slice(5); |
|||
} |
|||
} |
|||
return solarDay; |
|||
} |
|||
/** |
|||
* 通过农历日期获取农历节日 |
|||
* @param {number} y 农历年 |
|||
* @param {number|string} m 农历月,如果是闰月则为字符串‘07’ |
|||
* @param {number} d 农历日 |
|||
* @returns {string|false} 返回农历节日,没有节日则返回false |
|||
*/ |
|||
getlunarDay(y: number, m: number, d: number) { |
|||
if (String(m).slice(0, 1) == '0') return false; //如果是闰月则没有节日
|
|||
let lunarDay: false | string = false; |
|||
for (let i = 0; i < constValue.lFtv.length; i++) { |
|||
if ( |
|||
parseInt(constValue.lFtv[i].slice(0, 2)) == m && |
|||
parseInt(constValue.lFtv[i].slice(2, 4)) == d |
|||
) { |
|||
lunarDay = constValue.lFtv[i].slice(5); |
|||
} |
|||
} |
|||
// 判断是否为除夕
|
|||
if (m == 12 && this.monthDays(y, m, d) == d) lunarDay = '除夕'; |
|||
return lunarDay; |
|||
} |
|||
/** |
|||
* 返回农历一年的天数 |
|||
* @param {number} y 农历年份 |
|||
* @returns {number} 一年的天数 |
|||
*/ |
|||
lYearDays(y: number, m?: number, d?: number) { |
|||
let i, |
|||
sum = 348; |
|||
for (i = 0x8000; i > 0x8; i >>= 1) { |
|||
sum += constValue.lunarInfo[y - 1900] & i ? 1 : 0; |
|||
} |
|||
return sum + this.leapDays(y); |
|||
} |
|||
/** |
|||
* 获取农历非闰月的总天数 |
|||
* @param {number} y 农历年 |
|||
* @param {number} m 农历月 |
|||
* @returns {number} 返回农历非闰月的天数 |
|||
*/ |
|||
monthDays(y: number, m: number, d?: number) { |
|||
return constValue.lunarInfo[y - 1900] & (0x10000 >> m) ? 30 : 29; |
|||
} |
|||
/** |
|||
* 获取公历年第n个节气日期 |
|||
* @param {number} y 年 |
|||
* @param {number} n 第几个节气 |
|||
* @returns {string} 返回日期,0506 |
|||
*/ |
|||
getTerm(y: number, n: number) { |
|||
let _table = constValue.sTermInfo[y - 1900]; |
|||
let _info = [ |
|||
parseInt('0x' + _table.slice(0, 5)).toString(), |
|||
parseInt('0x' + _table.slice(5, 10)).toString(), |
|||
parseInt('0x' + _table.slice(10, 15)).toString(), |
|||
parseInt('0x' + _table.slice(15, 20)).toString(), |
|||
parseInt('0x' + _table.slice(20, 25)).toString(), |
|||
parseInt('0x' + _table.slice(25)).toString() |
|||
]; |
|||
let d = [ |
|||
_info[0].slice(0, 1), |
|||
_info[0].slice(1, 3), |
|||
_info[0].slice(3, 4), |
|||
_info[0].slice(4, 6), |
|||
|
|||
_info[1].slice(0, 1), |
|||
_info[1].slice(1, 3), |
|||
_info[1].slice(3, 4), |
|||
_info[1].slice(4, 6), |
|||
|
|||
_info[2].slice(0, 1), |
|||
_info[2].slice(1, 3), |
|||
_info[2].slice(3, 4), |
|||
_info[2].slice(4, 6), |
|||
|
|||
_info[3].slice(0, 1), |
|||
_info[3].slice(1, 3), |
|||
_info[3].slice(3, 4), |
|||
_info[3].slice(4, 6), |
|||
|
|||
_info[4].slice(0, 1), |
|||
_info[4].slice(1, 3), |
|||
_info[4].slice(3, 4), |
|||
_info[4].slice(4, 6), |
|||
|
|||
_info[5].slice(0, 1), |
|||
_info[5].slice(1, 3), |
|||
_info[5].slice(3, 4), |
|||
_info[5].slice(4, 6) |
|||
]; |
|||
return d[n - 1]; |
|||
} |
|||
/** |
|||
@ 作者: 秦东 |
|||
@ 时间: 2024-07-12 13:11:32 |
|||
@ 功能: 判断公立是不是闰年 |
|||
*/ |
|||
|
|||
isLeapYear(year: number): boolean { |
|||
return (year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0); |
|||
} |
|||
/** |
|||
@ 作者: 秦东 |
|||
@ 时间: 2024-07-15 09:00:20 |
|||
@ 功能: 前进时间 |
|||
@ 1: 月;2:周;3:天 |
|||
*/ |
|||
moveTime(y: number, m: number, d: number,t?:number){ |
|||
switch(t){ |
|||
case 2: |
|||
let startWeek = this.getMonday(y,m,d,'s',1) |
|||
let endWeek = this.getMonday(y,m,d,'e',1) |
|||
return { |
|||
start:startWeek, |
|||
end:endWeek |
|||
} |
|||
break; |
|||
case 3: |
|||
let dateStr = y + "-" + m + "-" + d; // 要转换的日期字符串
|
|||
let now = new Date(dateStr); //当前日期字符串转换成Date对象
|
|||
let nowTime = now.getTime(); |
|||
let nextWeekFirstDaty = new Date(nowTime + 86400000) |
|||
let yy: any = nextWeekFirstDaty.getFullYear(); |
|||
let mm: any = nextWeekFirstDaty.getMonth() + 1; |
|||
let dd: any = nextWeekFirstDaty.getDate(); |
|||
return [yy,mm,dd] |
|||
break; |
|||
default: |
|||
let month = m + 1 |
|||
if(month > 12){ |
|||
y = y + 1; |
|||
m = 1 |
|||
d = this.solarMonth(y,m) |
|||
}else{ |
|||
m = month |
|||
let day = this.solarMonth(y,month) |
|||
if(d > day){ |
|||
d = day |
|||
} |
|||
|
|||
} |
|||
return [y,m,d] |
|||
} |
|||
} |
|||
/** |
|||
@ 作者: 秦东 |
|||
@ 时间: 2024-07-12 11:50:37 |
|||
@ 功能: 处理年月日回退数据 |
|||
@ 1: 月;2:周;3:天 |
|||
*/ |
|||
gobackTime(y: number, m: number, d: number,t?:number, dt?:number){ |
|||
// console.log("计算时间--0--》",y,m,d,t)
|
|||
switch(t){ |
|||
case 2: |
|||
let startWeek = this.getMonday(y,m,d,'s',dt?dt:0) |
|||
let endWeek = this.getMonday(y,m,d,'e',dt?dt:0) |
|||
return { |
|||
start:startWeek, |
|||
end:endWeek |
|||
} |
|||
break; |
|||
case 3: |
|||
let dateStr = y + "-" + m + "-" + d; // 要转换的日期字符串
|
|||
let now = new Date(dateStr); //当前日期字符串转换成Date对象
|
|||
let nowTime = now.getTime(); |
|||
let nextWeekFirstDaty = new Date(nowTime - 86400000) |
|||
let yy: any = nextWeekFirstDaty.getFullYear(); |
|||
let mm: any = nextWeekFirstDaty.getMonth() + 1; |
|||
let dd: any = nextWeekFirstDaty.getDate(); |
|||
return [yy,mm,dd] |
|||
break; |
|||
default: |
|||
let month = m - 1 |
|||
if(month <= 0){ |
|||
y = y -1; |
|||
m = 12 |
|||
d = this.solarMonth(y,m) |
|||
// console.log("计算时间--1--》",y,m,d)
|
|||
}else{ |
|||
m = month |
|||
let day = this.solarMonth(y,month) |
|||
if(d > day){ |
|||
d = day |
|||
} |
|||
|
|||
} |
|||
return [y,m,d] |
|||
break; |
|||
|
|||
} |
|||
|
|||
} |
|||
/** |
|||
@ 作者: 秦东 |
|||
@ 时间: 2024-07-12 13:48:55 |
|||
@ 功能: 任意日期获取周 |
|||
*/ |
|||
getMonday = (year: number, month: number, taday: number,type: any, dates: any) => { |
|||
// let now = new Date();
|
|||
// let nowTime = now.getTime();
|
|||
|
|||
let dateStr = year + "-" + month + "-" + taday; // 要转换的日期字符串
|
|||
// let nowTime = Date.parse(dateStr);
|
|||
|
|||
let now = new Date(dateStr); |
|||
let nowTime = now.getTime(); |
|||
|
|||
let day = now.getDay(); |
|||
let longTime = 24 * 60 * 60 * 1000; |
|||
let n = longTime * 7 * (dates || 0); |
|||
let date: any = '' |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
if (type == "s") { |
|||
date = nowTime - (day - 1) * longTime + n; |
|||
}; |
|||
if (type == "e") { |
|||
date = nowTime + (7 - day) * longTime + n; |
|||
}; |
|||
date = new Date(date); |
|||
let y: any = date.getFullYear(); |
|||
let m: any = date.getMonth() + 1; |
|||
let d: any = date.getDate(); |
|||
// m = m < 10 ? "0" + m : m;
|
|||
// d = d < 10 ? "0" + d : d;
|
|||
|
|||
|
|||
// console.log("now--->",date)
|
|||
// console.log("nowTime--->",nowTime)
|
|||
// console.log("day--->",day)
|
|||
// console.log("longTime--->",longTime)
|
|||
// console.log("n--->",n)
|
|||
|
|||
let days = y + "-" + m + "-" + d; |
|||
return [y, m, d]; |
|||
} |
|||
|
|||
|
|||
} |
|||
|
|||
export default new DateClass(); |
|||
@ -0,0 +1,209 @@ |
|||
export default { |
|||
/** |
|||
* 假期日期 |
|||
*/ |
|||
Holidays: [ |
|||
'20181230', |
|||
'20181231', |
|||
'20190101', |
|||
'20190204', |
|||
'20190205', |
|||
'20190206', |
|||
'20190207', |
|||
'20190208', |
|||
'20190209', |
|||
'20190210', |
|||
'20190405', |
|||
'20190406', |
|||
'20190407', |
|||
'20190501', |
|||
'20190502', |
|||
'20190503', |
|||
'20190504', |
|||
'20190607', |
|||
'20190608', |
|||
'20190609', |
|||
'20190913', |
|||
'20190914', |
|||
'20190915', |
|||
'20191001', |
|||
'20191002', |
|||
'20191003', |
|||
'20191004', |
|||
'20191005', |
|||
'20191006', |
|||
'20191007', |
|||
'20200101', |
|||
'20200124', |
|||
'20200125', |
|||
'20200126', |
|||
'20200127', |
|||
'20200128', |
|||
'20200129', |
|||
'20200130', |
|||
'20200404', |
|||
'20200405', |
|||
'20200406', |
|||
'20200501', |
|||
'20200502', |
|||
'20200503', |
|||
'20200504', |
|||
'20200505', |
|||
'20200625', |
|||
'20200626', |
|||
'20200627', |
|||
'20201001', |
|||
'20201002', |
|||
'20201003', |
|||
'20201004', |
|||
'20201005', |
|||
'20201006', |
|||
'20201007', |
|||
'20201008', |
|||
'20210101', |
|||
'20210102', |
|||
'20210103', |
|||
'20210211', |
|||
'20210212', |
|||
'20210213', |
|||
'20210214', |
|||
'20210215', |
|||
'20210216', |
|||
'20210217', |
|||
'20210403', |
|||
'20210404', |
|||
'20210405', |
|||
'20210501', |
|||
'20210502', |
|||
'20210503', |
|||
'20210504', |
|||
'20210505', |
|||
'20210612', |
|||
'20210613', |
|||
'20210614', |
|||
'20210919', |
|||
'20210920', |
|||
'20210921', |
|||
'20211001', |
|||
'20211002', |
|||
'20211003', |
|||
'20211004', |
|||
'20211005', |
|||
'20211006', |
|||
'20211007', |
|||
'20220101', |
|||
'20220102', |
|||
'20220103', |
|||
'20220131', |
|||
'20220201', |
|||
'20220202', |
|||
'20220203', |
|||
'20220204', |
|||
'20220205', |
|||
'20220206', |
|||
'20220403', |
|||
'20220404', |
|||
'20220405', |
|||
'20220430', |
|||
'20220501', |
|||
'20220502', |
|||
'20220503', |
|||
'20220504', |
|||
'20220603', |
|||
'20220604', |
|||
'20220605', |
|||
'20220910', |
|||
'20220911', |
|||
'20220912', |
|||
'20221001', |
|||
'20221002', |
|||
'20221003', |
|||
'20221004', |
|||
'20221005', |
|||
'20221006', |
|||
'20221007', |
|||
'20221231', |
|||
'20230101', |
|||
'20230102', |
|||
'20230121', |
|||
'20230122', |
|||
'20230123', |
|||
'20230124', |
|||
'20230125', |
|||
'20230126', |
|||
'20230127', |
|||
'20231230', |
|||
'20240101', |
|||
'20240210', |
|||
'20240210', |
|||
'20240211', |
|||
'20240212', |
|||
'20240213', |
|||
'20240214', |
|||
'20240215', |
|||
'20240216', |
|||
'20240217', |
|||
'20240404', |
|||
'20240405', |
|||
'20240406', |
|||
'20240501', |
|||
'20240502', |
|||
'20240503', |
|||
'20240504', |
|||
'20240505', |
|||
'20240608', |
|||
'20240609', |
|||
'20240610', |
|||
'20240915', |
|||
'20240916', |
|||
'20240917', |
|||
'20241001', |
|||
'20241002', |
|||
'20241003', |
|||
'20241004', |
|||
'20241005', |
|||
'20241006', |
|||
'20241007', |
|||
], |
|||
/** |
|||
* 补休日期 |
|||
*/ |
|||
Works: [ |
|||
'20181229', |
|||
'20190202', |
|||
'20190203', |
|||
'20190428', |
|||
'20190505', |
|||
'20190929', |
|||
'20191012', |
|||
'20200119', |
|||
'20200201', |
|||
'20200426', |
|||
'20200509', |
|||
'20200628', |
|||
'20200927', |
|||
'20201010', |
|||
'20210207', |
|||
'20210220', |
|||
'20210425', |
|||
'20210508', |
|||
'20210918', |
|||
'20210926', |
|||
'20211009', |
|||
'20220129', |
|||
'20220130', |
|||
'20220402', |
|||
'20220424', |
|||
'20220507', |
|||
'20221008', |
|||
'20221009', |
|||
'20240204', |
|||
'20240218', |
|||
'20240407', |
|||
'20240428', |
|||
'20240511', |
|||
'20240914', |
|||
'20240929', |
|||
'20241012', |
|||
], |
|||
}; |
|||
@ -0,0 +1,609 @@ |
|||
export default { |
|||
/** |
|||
* 1900-2100各年的24节气日期速查表 |
|||
*/ |
|||
sTermInfo: [ |
|||
'9778397bd097c36b0b6fc9274c91aa', |
|||
'97b6b97bd19801ec9210c965cc920e', |
|||
'97bcf97c3598082c95f8c965cc920f', |
|||
'97bd0b06bdb0722c965ce1cfcc920f', |
|||
'b027097bd097c36b0b6fc9274c91aa', |
|||
'97b6b97bd19801ec9210c965cc920e', |
|||
'97bcf97c359801ec95f8c965cc920f', |
|||
'97bd0b06bdb0722c965ce1cfcc920f', |
|||
'b027097bd097c36b0b6fc9274c91aa', |
|||
'97b6b97bd19801ec9210c965cc920e', |
|||
'97bcf97c359801ec95f8c965cc920f', |
|||
'97bd0b06bdb0722c965ce1cfcc920f', |
|||
'b027097bd097c36b0b6fc9274c91aa', |
|||
'9778397bd19801ec9210c965cc920e', |
|||
'97b6b97bd19801ec95f8c965cc920f', |
|||
'97bd09801d98082c95f8e1cfcc920f', |
|||
'97bd097bd097c36b0b6fc9210c8dc2', |
|||
'9778397bd197c36c9210c9274c91aa', |
|||
'97b6b97bd19801ec95f8c965cc920e', |
|||
'97bd09801d98082c95f8e1cfcc920f', |
|||
'97bd097bd097c36b0b6fc9210c8dc2', |
|||
'9778397bd097c36c9210c9274c91aa', |
|||
'97b6b97bd19801ec95f8c965cc920e', |
|||
'97bcf97c3598082c95f8e1cfcc920f', |
|||
'97bd097bd097c36b0b6fc9210c8dc2', |
|||
'9778397bd097c36c9210c9274c91aa', |
|||
'97b6b97bd19801ec9210c965cc920e', |
|||
'97bcf97c3598082c95f8c965cc920f', |
|||
'97bd097bd097c35b0b6fc920fb0722', |
|||
'9778397bd097c36b0b6fc9274c91aa', |
|||
'97b6b97bd19801ec9210c965cc920e', |
|||
'97bcf97c3598082c95f8c965cc920f', |
|||
'97bd097bd097c35b0b6fc920fb0722', |
|||
'9778397bd097c36b0b6fc9274c91aa', |
|||
'97b6b97bd19801ec9210c965cc920e', |
|||
'97bcf97c359801ec95f8c965cc920f', |
|||
'97bd097bd097c35b0b6fc920fb0722', |
|||
'9778397bd097c36b0b6fc9274c91aa', |
|||
'97b6b97bd19801ec9210c965cc920e', |
|||
'97bcf97c359801ec95f8c965cc920f', |
|||
'97bd097bd097c35b0b6fc920fb0722', |
|||
'9778397bd097c36b0b6fc9274c91aa', |
|||
'97b6b97bd19801ec9210c965cc920e', |
|||
'97bcf97c359801ec95f8c965cc920f', |
|||
'97bd097bd07f595b0b6fc920fb0722', |
|||
'9778397bd097c36b0b6fc9210c8dc2', |
|||
'9778397bd19801ec9210c9274c920e', |
|||
'97b6b97bd19801ec95f8c965cc920f', |
|||
'97bd07f5307f595b0b0bc920fb0722', |
|||
'7f0e397bd097c36b0b6fc9210c8dc2', |
|||
'9778397bd097c36c9210c9274c920e', |
|||
'97b6b97bd19801ec95f8c965cc920f', |
|||
'97bd07f5307f595b0b0bc920fb0722', |
|||
'7f0e397bd097c36b0b6fc9210c8dc2', |
|||
'9778397bd097c36c9210c9274c91aa', |
|||
'97b6b97bd19801ec9210c965cc920e', |
|||
'97bd07f1487f595b0b0bc920fb0722', |
|||
'7f0e397bd097c36b0b6fc9210c8dc2', |
|||
'9778397bd097c36b0b6fc9274c91aa', |
|||
'97b6b97bd19801ec9210c965cc920e', |
|||
'97bcf7f1487f595b0b0bb0b6fb0722', |
|||
'7f0e397bd097c35b0b6fc920fb0722', |
|||
'9778397bd097c36b0b6fc9274c91aa', |
|||
'97b6b97bd19801ec9210c965cc920e', |
|||
'97bcf7f1487f595b0b0bb0b6fb0722', |
|||
'7f0e397bd097c35b0b6fc920fb0722', |
|||
'9778397bd097c36b0b6fc9274c91aa', |
|||
'97b6b97bd19801ec9210c965cc920e', |
|||
'97bcf7f1487f531b0b0bb0b6fb0722', |
|||
'7f0e397bd097c35b0b6fc920fb0722', |
|||
'9778397bd097c36b0b6fc9274c91aa', |
|||
'97b6b97bd19801ec9210c965cc920e', |
|||
'97bcf7f1487f531b0b0bb0b6fb0722', |
|||
'7f0e397bd07f595b0b6fc920fb0722', |
|||
'9778397bd097c36b0b6fc9274c91aa', |
|||
'97b6b97bd19801ec9210c9274c920e', |
|||
'97bcf7f0e47f531b0b0bb0b6fb0722', |
|||
'7f0e397bd07f595b0b0bc920fb0722', |
|||
'9778397bd097c36b0b6fc9210c91aa', |
|||
'97b6b97bd197c36c9210c9274c920e', |
|||
'97bcf7f0e47f531b0b0bb0b6fb0722', |
|||
'7f0e397bd07f595b0b0bc920fb0722', |
|||
'9778397bd097c36b0b6fc9210c8dc2', |
|||
'9778397bd097c36c9210c9274c920e', |
|||
'97b6b7f0e47f531b0723b0b6fb0722', |
|||
'7f0e37f5307f595b0b0bc920fb0722', |
|||
'7f0e397bd097c36b0b6fc9210c8dc2', |
|||
'9778397bd097c36b0b70c9274c91aa', |
|||
'97b6b7f0e47f531b0723b0b6fb0721', |
|||
'7f0e37f1487f595b0b0bb0b6fb0722', |
|||
'7f0e397bd097c35b0b6fc9210c8dc2', |
|||
'9778397bd097c36b0b6fc9274c91aa', |
|||
'97b6b7f0e47f531b0723b0b6fb0721', |
|||
'7f0e27f1487f595b0b0bb0b6fb0722', |
|||
'7f0e397bd097c35b0b6fc920fb0722', |
|||
'9778397bd097c36b0b6fc9274c91aa', |
|||
'97b6b7f0e47f531b0723b0b6fb0721', |
|||
'7f0e27f1487f531b0b0bb0b6fb0722', |
|||
'7f0e397bd097c35b0b6fc920fb0722', |
|||
'9778397bd097c36b0b6fc9274c91aa', |
|||
'97b6b7f0e47f531b0723b0b6fb0721', |
|||
'7f0e27f1487f531b0b0bb0b6fb0722', |
|||
'7f0e397bd097c35b0b6fc920fb0722', |
|||
'9778397bd097c36b0b6fc9274c91aa', |
|||
'97b6b7f0e47f531b0723b0b6fb0721', |
|||
'7f0e27f1487f531b0b0bb0b6fb0722', |
|||
'7f0e397bd07f595b0b0bc920fb0722', |
|||
'9778397bd097c36b0b6fc9274c91aa', |
|||
'97b6b7f0e47f531b0723b0787b0721', |
|||
'7f0e27f0e47f531b0b0bb0b6fb0722', |
|||
'7f0e397bd07f595b0b0bc920fb0722', |
|||
'9778397bd097c36b0b6fc9210c91aa', |
|||
'97b6b7f0e47f149b0723b0787b0721', |
|||
'7f0e27f0e47f531b0723b0b6fb0722', |
|||
'7f0e397bd07f595b0b0bc920fb0722', |
|||
'9778397bd097c36b0b6fc9210c8dc2', |
|||
'977837f0e37f149b0723b0787b0721', |
|||
'7f07e7f0e47f531b0723b0b6fb0722', |
|||
'7f0e37f5307f595b0b0bc920fb0722', |
|||
'7f0e397bd097c35b0b6fc9210c8dc2', |
|||
'977837f0e37f14998082b0787b0721', |
|||
'7f07e7f0e47f531b0723b0b6fb0721', |
|||
'7f0e37f1487f595b0b0bb0b6fb0722', |
|||
'7f0e397bd097c35b0b6fc9210c8dc2', |
|||
'977837f0e37f14998082b0787b06bd', |
|||
'7f07e7f0e47f531b0723b0b6fb0721', |
|||
'7f0e27f1487f531b0b0bb0b6fb0722', |
|||
'7f0e397bd097c35b0b6fc920fb0722', |
|||
'977837f0e37f14998082b0787b06bd', |
|||
'7f07e7f0e47f531b0723b0b6fb0721', |
|||
'7f0e27f1487f531b0b0bb0b6fb0722', |
|||
'7f0e397bd097c35b0b6fc920fb0722', |
|||
'977837f0e37f14998082b0787b06bd', |
|||
'7f07e7f0e47f531b0723b0b6fb0721', |
|||
'7f0e27f1487f531b0b0bb0b6fb0722', |
|||
'7f0e397bd07f595b0b0bc920fb0722', |
|||
'977837f0e37f14998082b0787b06bd', |
|||
'7f07e7f0e47f531b0723b0b6fb0721', |
|||
'7f0e27f1487f531b0b0bb0b6fb0722', |
|||
'7f0e397bd07f595b0b0bc920fb0722', |
|||
'977837f0e37f14998082b0787b06bd', |
|||
'7f07e7f0e47f149b0723b0787b0721', |
|||
'7f0e27f0e47f531b0b0bb0b6fb0722', |
|||
'7f0e397bd07f595b0b0bc920fb0722', |
|||
'977837f0e37f14998082b0723b06bd', |
|||
'7f07e7f0e37f149b0723b0787b0721', |
|||
'7f0e27f0e47f531b0723b0b6fb0722', |
|||
'7f0e397bd07f595b0b0bc920fb0722', |
|||
'977837f0e37f14898082b0723b02d5', |
|||
'7ec967f0e37f14998082b0787b0721', |
|||
'7f07e7f0e47f531b0723b0b6fb0722', |
|||
'7f0e37f1487f595b0b0bb0b6fb0722', |
|||
'7f0e37f0e37f14898082b0723b02d5', |
|||
'7ec967f0e37f14998082b0787b0721', |
|||
'7f07e7f0e47f531b0723b0b6fb0722', |
|||
'7f0e37f1487f531b0b0bb0b6fb0722', |
|||
'7f0e37f0e37f14898082b0723b02d5', |
|||
'7ec967f0e37f14998082b0787b06bd', |
|||
'7f07e7f0e47f531b0723b0b6fb0721', |
|||
'7f0e37f1487f531b0b0bb0b6fb0722', |
|||
'7f0e37f0e37f14898082b072297c35', |
|||
'7ec967f0e37f14998082b0787b06bd', |
|||
'7f07e7f0e47f531b0723b0b6fb0721', |
|||
'7f0e27f1487f531b0b0bb0b6fb0722', |
|||
'7f0e37f0e37f14898082b072297c35', |
|||
'7ec967f0e37f14998082b0787b06bd', |
|||
'7f07e7f0e47f531b0723b0b6fb0721', |
|||
'7f0e27f1487f531b0b0bb0b6fb0722', |
|||
'7f0e37f0e366aa89801eb072297c35', |
|||
'7ec967f0e37f14998082b0787b06bd', |
|||
'7f07e7f0e47f149b0723b0787b0721', |
|||
'7f0e27f1487f531b0b0bb0b6fb0722', |
|||
'7f0e37f0e366aa89801eb072297c35', |
|||
'7ec967f0e37f14998082b0723b06bd', |
|||
'7f07e7f0e47f149b0723b0787b0721', |
|||
'7f0e27f0e47f531b0723b0b6fb0722', |
|||
'7f0e37f0e366aa89801eb072297c35', |
|||
'7ec967f0e37f14998082b0723b06bd', |
|||
'7f07e7f0e37f14998083b0787b0721', |
|||
'7f0e27f0e47f531b0723b0b6fb0722', |
|||
'7f0e37f0e366aa89801eb072297c35', |
|||
'7ec967f0e37f14898082b0723b02d5', |
|||
'7f07e7f0e37f14998082b0787b0721', |
|||
'7f07e7f0e47f531b0723b0b6fb0722', |
|||
'7f0e36665b66aa89801e9808297c35', |
|||
'665f67f0e37f14898082b0723b02d5', |
|||
'7ec967f0e37f14998082b0787b0721', |
|||
'7f07e7f0e47f531b0723b0b6fb0722', |
|||
'7f0e36665b66a449801e9808297c35', |
|||
'665f67f0e37f14898082b0723b02d5', |
|||
'7ec967f0e37f14998082b0787b06bd', |
|||
'7f07e7f0e47f531b0723b0b6fb0721', |
|||
'7f0e36665b66a449801e9808297c35', |
|||
'665f67f0e37f14898082b072297c35', |
|||
'7ec967f0e37f14998082b0787b06bd', |
|||
'7f07e7f0e47f531b0723b0b6fb0721', |
|||
'7f0e26665b66a449801e9808297c35', |
|||
'665f67f0e37f1489801eb072297c35', |
|||
'7ec967f0e37f14998082b0787b06bd', |
|||
'7f07e7f0e47f531b0723b0b6fb0721', |
|||
'7f0e27f1487f531b0b0bb0b6fb0722' |
|||
], |
|||
/** |
|||
* 24节气速查表 |
|||
* @trans["小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"] |
|||
*/ |
|||
solarTerm: [ |
|||
'\u5c0f\u5bd2', |
|||
'\u5927\u5bd2', |
|||
'\u7acb\u6625', |
|||
'\u96e8\u6c34', |
|||
'\u60ca\u86f0', |
|||
'\u6625\u5206', |
|||
'\u6e05\u660e', |
|||
'\u8c37\u96e8', |
|||
'\u7acb\u590f', |
|||
'\u5c0f\u6ee1', |
|||
'\u8292\u79cd', |
|||
'\u590f\u81f3', |
|||
'\u5c0f\u6691', |
|||
'\u5927\u6691', |
|||
'\u7acb\u79cb', |
|||
'\u5904\u6691', |
|||
'\u767d\u9732', |
|||
'\u79cb\u5206', |
|||
'\u5bd2\u9732', |
|||
'\u971c\u964d', |
|||
'\u7acb\u51ac', |
|||
'\u5c0f\u96ea', |
|||
'\u5927\u96ea', |
|||
'\u51ac\u81f3' |
|||
], |
|||
/** |
|||
* 天干地支之地支速查表<=>生肖 |
|||
* @trans["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"] |
|||
*/ |
|||
Animals: [ |
|||
'\u9f20', |
|||
'\u725b', |
|||
'\u864e', |
|||
'\u5154', |
|||
'\u9f99', |
|||
'\u86c7', |
|||
'\u9a6c', |
|||
'\u7f8a', |
|||
'\u7334', |
|||
'\u9e21', |
|||
'\u72d7', |
|||
'\u732a' |
|||
], |
|||
/** |
|||
* 天干地支之天干速查表 |
|||
* @Array Of Property trans["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"] |
|||
*/ |
|||
Gan: [ |
|||
'\u7532', |
|||
'\u4e59', |
|||
'\u4e19', |
|||
'\u4e01', |
|||
'\u620a', |
|||
'\u5df1', |
|||
'\u5e9a', |
|||
'\u8f9b', |
|||
'\u58ec', |
|||
'\u7678' |
|||
], |
|||
/** |
|||
* 天干地支之地支速查表 |
|||
* @trans["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"] |
|||
*/ |
|||
Zhi: [ |
|||
'\u5b50', |
|||
'\u4e11', |
|||
'\u5bc5', |
|||
'\u536f', |
|||
'\u8fb0', |
|||
'\u5df3', |
|||
'\u5348', |
|||
'\u672a', |
|||
'\u7533', |
|||
'\u9149', |
|||
'\u620c', |
|||
'\u4ea5' |
|||
], |
|||
/** |
|||
* 数字转中文速查表 |
|||
* @trans ['日','一','二','三','四','五','六','七','八','九','十'] |
|||
*/ |
|||
nStr1: [ |
|||
'\u65e5', |
|||
'\u4e00', |
|||
'\u4e8c', |
|||
'\u4e09', |
|||
'\u56db', |
|||
'\u4e94', |
|||
'\u516d', |
|||
'\u4e03', |
|||
'\u516b', |
|||
'\u4e5d', |
|||
'\u5341' |
|||
], |
|||
nStr5: [ |
|||
'\u4e00', |
|||
'\u4e8c', |
|||
'\u4e09', |
|||
'\u56db', |
|||
'\u4e94', |
|||
'\u516d', |
|||
'\u65e5', |
|||
'\u4e03', |
|||
'\u516b', |
|||
'\u4e5d', |
|||
'\u5341' |
|||
], |
|||
/** |
|||
* 日期转农历称呼速查表 |
|||
* @trans ['初','十','廿','卅'] |
|||
*/ |
|||
nStr2: ['\u521d', '\u5341', '\u5eff', '\u5345'], |
|||
/** |
|||
* 月份转农历称呼速查表 |
|||
* @trans ['正','一','二','三','四','五','六','七','八','九','十','冬','腊'] |
|||
*/ |
|||
nStr3: [ |
|||
'\u6b63', |
|||
'\u4e8c', |
|||
'\u4e09', |
|||
'\u56db', |
|||
'\u4e94', |
|||
'\u516d', |
|||
'\u4e03', |
|||
'\u516b', |
|||
'\u4e5d', |
|||
'\u5341', |
|||
'\u51ac', |
|||
'\u814a' |
|||
], |
|||
/** |
|||
* 公历节日 |
|||
**/ |
|||
sFtv: [ |
|||
'0101 元旦', |
|||
'0214 情人节', |
|||
'0308 妇女节', |
|||
'0312 植树节', |
|||
'0315 消费者权益日', |
|||
'0401 愚人节', |
|||
'0501 劳动节', |
|||
'0504 青年节', |
|||
'0512 护士节', |
|||
'0601 儿童节', |
|||
'0701 建党节', |
|||
'0801 建军节', |
|||
'0910 教师节', |
|||
'0928 孔子诞辰', |
|||
'1001 国庆节', |
|||
'1006 老人节', |
|||
'1024 联合国日', |
|||
'1224 平安夜', |
|||
'1225 圣诞节', |
|||
'1101 万圣节', |
|||
'1213 国家公祭日' |
|||
], |
|||
/** |
|||
* 农历节日 |
|||
**/ |
|||
lFtv: [ |
|||
'0101 春节', |
|||
'0115 元宵节', |
|||
'0505 端午节', |
|||
'0707 七夕情人节', |
|||
'0715 中元节', |
|||
'0815 中秋节', |
|||
'0909 重阳节', |
|||
'1208 腊八节', |
|||
'1224 小年' |
|||
], |
|||
/** |
|||
* 公历月份中文表 |
|||
**/ |
|||
monthStr: ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二'], |
|||
/** |
|||
* 农历1900-2100的润大小信息表 |
|||
* @Array Of Property |
|||
* @return Hex |
|||
*/ |
|||
lunarInfo: [ |
|||
0x04bd8, |
|||
0x04ae0, |
|||
0x0a570, |
|||
0x054d5, |
|||
0x0d260, |
|||
0x0d950, |
|||
0x16554, |
|||
0x056a0, |
|||
0x09ad0, |
|||
0x055d2, //1900-1909
|
|||
0x04ae0, |
|||
0x0a5b6, |
|||
0x0a4d0, |
|||
0x0d250, |
|||
0x1d255, |
|||
0x0b540, |
|||
0x0d6a0, |
|||
0x0ada2, |
|||
0x095b0, |
|||
0x14977, //1910-1919
|
|||
0x04970, |
|||
0x0a4b0, |
|||
0x0b4b5, |
|||
0x06a50, |
|||
0x06d40, |
|||
0x1ab54, |
|||
0x02b60, |
|||
0x09570, |
|||
0x052f2, |
|||
0x04970, //1920-1929
|
|||
0x06566, |
|||
0x0d4a0, |
|||
0x0ea50, |
|||
0x06e95, |
|||
0x05ad0, |
|||
0x02b60, |
|||
0x186e3, |
|||
0x092e0, |
|||
0x1c8d7, |
|||
0x0c950, //1930-1939
|
|||
0x0d4a0, |
|||
0x1d8a6, |
|||
0x0b550, |
|||
0x056a0, |
|||
0x1a5b4, |
|||
0x025d0, |
|||
0x092d0, |
|||
0x0d2b2, |
|||
0x0a950, |
|||
0x0b557, //1940-1949
|
|||
0x06ca0, |
|||
0x0b550, |
|||
0x15355, |
|||
0x04da0, |
|||
0x0a5b0, |
|||
0x14573, |
|||
0x052b0, |
|||
0x0a9a8, |
|||
0x0e950, |
|||
0x06aa0, //1950-1959
|
|||
0x0aea6, |
|||
0x0ab50, |
|||
0x04b60, |
|||
0x0aae4, |
|||
0x0a570, |
|||
0x05260, |
|||
0x0f263, |
|||
0x0d950, |
|||
0x05b57, |
|||
0x056a0, //1960-1969
|
|||
0x096d0, |
|||
0x04dd5, |
|||
0x04ad0, |
|||
0x0a4d0, |
|||
0x0d4d4, |
|||
0x0d250, |
|||
0x0d558, |
|||
0x0b540, |
|||
0x0b6a0, |
|||
0x195a6, //1970-1979
|
|||
0x095b0, |
|||
0x049b0, |
|||
0x0a974, |
|||
0x0a4b0, |
|||
0x0b27a, |
|||
0x06a50, |
|||
0x06d40, |
|||
0x0af46, |
|||
0x0ab60, |
|||
0x09570, //1980-1989
|
|||
0x04af5, |
|||
0x04970, |
|||
0x064b0, |
|||
0x074a3, |
|||
0x0ea50, |
|||
0x06b58, |
|||
0x055c0, |
|||
0x0ab60, |
|||
0x096d5, |
|||
0x092e0, //1990-1999
|
|||
0x0c960, |
|||
0x0d954, |
|||
0x0d4a0, |
|||
0x0da50, |
|||
0x07552, |
|||
0x056a0, |
|||
0x0abb7, |
|||
0x025d0, |
|||
0x092d0, |
|||
0x0cab5, //2000-2009
|
|||
0x0a950, |
|||
0x0b4a0, |
|||
0x0baa4, |
|||
0x0ad50, |
|||
0x055d9, |
|||
0x04ba0, |
|||
0x0a5b0, |
|||
0x15176, |
|||
0x052b0, |
|||
0x0a930, //2010-2019
|
|||
0x07954, |
|||
0x06aa0, |
|||
0x0ad50, |
|||
0x05b52, |
|||
0x04b60, |
|||
0x0a6e6, |
|||
0x0a4e0, |
|||
0x0d260, |
|||
0x0ea65, |
|||
0x0d530, //2020-2029
|
|||
0x05aa0, |
|||
0x076a3, |
|||
0x096d0, |
|||
0x04afb, |
|||
0x04ad0, |
|||
0x0a4d0, |
|||
0x1d0b6, |
|||
0x0d250, |
|||
0x0d520, |
|||
0x0dd45, //2030-2039
|
|||
0x0b5a0, |
|||
0x056d0, |
|||
0x055b2, |
|||
0x049b0, |
|||
0x0a577, |
|||
0x0a4b0, |
|||
0x0aa50, |
|||
0x1b255, |
|||
0x06d20, |
|||
0x0ada0, //2040-2049
|
|||
/**Add By JJonline@JJonline.Cn**/ |
|||
0x14b63, |
|||
0x09370, |
|||
0x049f8, |
|||
0x04970, |
|||
0x064b0, |
|||
0x168a6, |
|||
0x0ea50, |
|||
0x06b20, |
|||
0x1a6c4, |
|||
0x0aae0, //2050-2059
|
|||
0x0a2e0, |
|||
0x0d2e3, |
|||
0x0c960, |
|||
0x0d557, |
|||
0x0d4a0, |
|||
0x0da50, |
|||
0x05d55, |
|||
0x056a0, |
|||
0x0a6d0, |
|||
0x055d4, //2060-2069
|
|||
0x052d0, |
|||
0x0a9b8, |
|||
0x0a950, |
|||
0x0b4a0, |
|||
0x0b6a6, |
|||
0x0ad50, |
|||
0x055a0, |
|||
0x0aba4, |
|||
0x0a5b0, |
|||
0x052b0, //2070-2079
|
|||
0x0b273, |
|||
0x06930, |
|||
0x07337, |
|||
0x06aa0, |
|||
0x0ad50, |
|||
0x14b55, |
|||
0x04b60, |
|||
0x0a570, |
|||
0x054e4, |
|||
0x0d160, //2080-2089
|
|||
0x0e968, |
|||
0x0d520, |
|||
0x0daa0, |
|||
0x16aa6, |
|||
0x056d0, |
|||
0x04ae0, |
|||
0x0a9d4, |
|||
0x0a2d0, |
|||
0x0d150, |
|||
0x0f252, //2090-2099
|
|||
0x0d520 |
|||
], //2100
|
|||
/** |
|||
* 按星期过的节日信息 |
|||
*/ |
|||
weekDays: { |
|||
'060300': '父亲节', |
|||
'050200': '母亲节' |
|||
}, |
|||
/** |
|||
* 公历每个月份的天数普通表 |
|||
* @Array Of Property |
|||
* @return Number |
|||
*/ |
|||
solarMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] |
|||
}; |
|||
@ -0,0 +1,7 @@ |
|||
/** |
|||
* 获得时间 |
|||
* @returns {String} 当前时间 |
|||
*/ |
|||
export function clockFactory(time: number): string { |
|||
return `${time >= 10 ? time : '0' + time}`; |
|||
} |
|||
@ -0,0 +1,590 @@ |
|||
export const AnalysisCss = (ele:any) =>{ |
|||
let styleObject:any = {} |
|||
if(ele['marginTop']){ |
|||
if(ele['marginTop'] != "auto"){ |
|||
styleObject['margin-top'] = ele['marginTop']+"px"; |
|||
}else{ |
|||
styleObject['margin-top'] = "0px"; |
|||
} |
|||
} |
|||
if(ele['marginLeft']){ |
|||
if(ele['marginLeft'] != "auto"){ |
|||
styleObject['margin-left'] = ele['marginLeft']+"px"; |
|||
}else{ |
|||
styleObject['margin-left'] = "0px"; |
|||
} |
|||
} |
|||
if(ele['marginRight']){ |
|||
if(ele['marginRight'] != "auto"){ |
|||
styleObject['margin-right'] = ele['marginRight']+"px"; |
|||
}else{ |
|||
styleObject['margin-right'] = "0px"; |
|||
} |
|||
} |
|||
if(ele['marginBot']){ |
|||
if(ele['marginBot'] != "auto"){ |
|||
styleObject['margin-bottom'] = ele['marginBot']+"px"; |
|||
}else{ |
|||
styleObject['margin-bottom'] = "0px"; |
|||
} |
|||
} |
|||
if(ele['paddingTop']){ |
|||
if(ele['paddingTop'] != "auto"){ |
|||
styleObject['padding-top'] = ele['paddingTop']+"px"; |
|||
}else{ |
|||
styleObject['padding-top'] = "0px"; |
|||
} |
|||
} |
|||
if(ele['paddingLeft']){ |
|||
if(ele['paddingLeft'] != "auto"){ |
|||
styleObject['padding-left'] = ele['paddingLeft']+"px"; |
|||
}else{ |
|||
styleObject['padding-left'] = "0px"; |
|||
} |
|||
} |
|||
if(ele['paddingRight']){ |
|||
if(ele['paddingRight'] != "auto"){ |
|||
styleObject['padding-right'] = ele['paddingRight']+"px"; |
|||
}else{ |
|||
styleObject['padding-right'] = "0px"; |
|||
} |
|||
} |
|||
if(ele['paddingBot']){ |
|||
if(ele['paddingBot'] != "auto"){ |
|||
styleObject['padding-bottom'] = ele['paddingBot']+"px"; |
|||
}else{ |
|||
styleObject['padding-bottom'] = "0px"; |
|||
} |
|||
} |
|||
if(ele['divbox']){ |
|||
if(ele['divbox'] == "gap"){ |
|||
Object.assign(styleObject, yuanJiaoAnalysis(ele,'gap')); |
|||
}else{ |
|||
// styleObject['border-radius'] = yuanJiaoAnalysis(ele,'gap');
|
|||
Object.assign(styleObject, yuanJiaoAnalysis(ele,'all')); |
|||
} |
|||
}else{ |
|||
Object.assign(styleObject, yuanJiaoAnalysis(ele,'all')); |
|||
} |
|||
|
|||
let borderLink = "" |
|||
|
|||
if(ele["boxWidth"]){ |
|||
borderLink+=ele["boxWidth"]+"px " |
|||
} |
|||
if(ele["contourProfile"]) { |
|||
borderLink+=" " +ele["contourProfile"] + " " |
|||
} |
|||
if(ele["lineColorVal"]) { |
|||
borderLink+=" " +ele["lineColorVal"] + " " |
|||
} |
|||
if(ele["border"] && borderLink != ""){ |
|||
switch(ele["border"]){ |
|||
case 1: |
|||
styleObject['border']=borderLink |
|||
break; |
|||
case 2: |
|||
styleObject['border-top']=borderLink |
|||
break; |
|||
case 3: |
|||
styleObject['border-left']=borderLink |
|||
break; |
|||
case 4: |
|||
styleObject['border-right']=borderLink |
|||
break; |
|||
case 5: |
|||
styleObject['border-bottom']=borderLink |
|||
break; |
|||
default: |
|||
styleObject['border']= "0px" |
|||
} |
|||
} |
|||
|
|||
if(ele["transparency"] || ele["transparency"] == 0) { |
|||
styleObject['opacity'] = ele['transparency']/100; |
|||
} |
|||
|
|||
if(ele["backgroundColor"]) { |
|||
styleObject['background-color'] = ele['backgroundColor'] |
|||
} |
|||
|
|||
if(ele['width']){ |
|||
if(ele['width'] != ""){ |
|||
styleObject['width'] = ele['width'].toString()+"px"; |
|||
} |
|||
} |
|||
if(ele['widthMax'] && ele['widthMax'] != ""){ |
|||
styleObject['max-width'] = ele['widthMax'].toString()+"px"; |
|||
} |
|||
if(ele['widthMin'] && ele['widthMin'] != ""){ |
|||
styleObject['min-width'] = ele['widthMin'].toString()+"px"; |
|||
} |
|||
if(ele['height'] && ele['height'] != ""){ |
|||
styleObject['height'] = ele['height'].toString()+"px"; |
|||
} |
|||
if(ele['heightMax'] && ele['heightMax'] != ""){ |
|||
styleObject['max-height'] = ele['heightMax'].toString()+"px"; |
|||
} |
|||
if(ele['heightMin'] && ele['heightMin'] != ""){ |
|||
styleObject['min-height'] = ele['heightMin'].toString()+"px"; |
|||
} |
|||
if(ele['objectFit'] && ele['objectFit'] != ""){ |
|||
switch(ele['objectFit']){ |
|||
case "fill": |
|||
styleObject['object-fit'] = "fill"; |
|||
break; |
|||
case "contain": |
|||
styleObject['object-fit'] = "contain"; |
|||
break; |
|||
case "vover": |
|||
styleObject['object-fit'] = "cover"; |
|||
break; |
|||
case "none": |
|||
styleObject['object-fit'] = "none"; |
|||
break; |
|||
case "scaleDown": |
|||
styleObject['object-fit'] = "scale-down"; |
|||
break; |
|||
default: |
|||
break; |
|||
} |
|||
|
|||
} |
|||
if(ele['textAlign'] && ele['textAlign'] != ""){ |
|||
styleObject['text-align'] = ele['textAlign']; |
|||
} |
|||
if(ele['fontStyle'] && ele['fontStyle'] != ""){ |
|||
styleObject['font-style'] = ele['fontStyle']; |
|||
} |
|||
if(ele['textecoration'] && ele['textecoration'] != ""){ |
|||
styleObject['text-decoration'] = ele['textecoration']; |
|||
} |
|||
if(ele['fontSize'] && ele['fontSize'] != ""){ |
|||
styleObject['font-size'] = ele['fontSize'].toString()+"px"; |
|||
} |
|||
if(ele['fontFamily'] && ele['fontFamily'] != ""){ |
|||
styleObject['font-family'] = ele['fontFamily']; |
|||
} |
|||
if(ele['fontHight'] && ele['fontHight'] != ""){ |
|||
styleObject['line-height'] = ele['fontHight'].toString()+"px"; |
|||
} |
|||
if(ele['fontWeight'] && ele['fontWeight'] != ""){ |
|||
styleObject['font-weight'] = ele['fontWeight']; |
|||
} |
|||
if(ele['fontColor'] && ele['fontColor'] != ""){ |
|||
styleObject['color'] = ele['fontColor']; |
|||
} |
|||
// console.log("分析css==>",styleObject);
|
|||
// console.log("=============start================");
|
|||
// console.log(ele);
|
|||
// // console.log(sty);
|
|||
// console.log(Object.keys(styleObject).length);
|
|||
// console.log("=============end================");
|
|||
// if(Object.keys(styleObject).length === 0){
|
|||
// styleObject['margin-top'] = "10px";
|
|||
// }
|
|||
return styleObject |
|||
} |
|||
|
|||
const yuanJiaoAnalysis = (ele:any,types:string) => { |
|||
if(types == "gap"){ |
|||
let borRad:any = {} |
|||
for(let k in ele){ |
|||
if(k == 'radiusLeftTop'){ |
|||
if(ele[k] != ""){ |
|||
borRad['border-top-left-radius'] = ele[k]+"px"; |
|||
}else{ |
|||
borRad['border-top-left-radius'] = "0px"; |
|||
} |
|||
} |
|||
if(k == 'radiusrightTop'){ |
|||
if(ele[k] != ""){ |
|||
borRad['border-top-right-radius'] = ele[k]+"px"; |
|||
}else{ |
|||
borRad['border-top-right-radius'] = "0px"; |
|||
} |
|||
} |
|||
if(k == 'radiusLeftBot'){ |
|||
if(ele[k] != ""){ |
|||
borRad['border-bottom-left-radius'] = ele[k]+"px"; |
|||
}else{ |
|||
borRad['border-bottom-left-radius'] = "0px"; |
|||
} |
|||
} |
|||
if(k == 'radiusrightBot'){ |
|||
if(ele[k] != ""){ |
|||
borRad['border-bottom-right-radius'] = ele[k]+"px"; |
|||
}else{ |
|||
borRad['border-bottom-right-radius'] = "0px"; |
|||
} |
|||
} |
|||
} |
|||
// console.log("borRad",borRad)
|
|||
return borRad; |
|||
}else{ |
|||
let borRad:any = {} |
|||
for(let k in ele){ |
|||
if(k == 'borderRadius'){ |
|||
if(ele[k] != ""){ |
|||
borRad['border-radius'] = ele[k]+"px"; |
|||
}else{ |
|||
borRad['border-radius'] = "0px"; |
|||
} |
|||
} |
|||
} |
|||
return borRad; |
|||
} |
|||
} |
|||
|
|||
export const AnalysisInputCss = (ele:any,sty:number) =>{ |
|||
let styleObject:any = {} |
|||
if(sty == 1 || sty == 2){ |
|||
if(ele['marginTop']){ |
|||
if(ele['marginTop'] != "auto"){ |
|||
styleObject['margin-top'] = ele['marginTop']+"px"; |
|||
}else{ |
|||
styleObject['margin-top'] = "0px"; |
|||
} |
|||
} |
|||
if(ele['marginLeft']){ |
|||
if(ele['marginLeft'] != "auto"){ |
|||
styleObject['margin-left'] = ele['marginLeft']+"px"; |
|||
}else{ |
|||
styleObject['margin-left'] = "0px"; |
|||
} |
|||
} |
|||
if(ele['marginRight']){ |
|||
if(ele['marginRight'] != "auto"){ |
|||
styleObject['margin-right'] = ele['marginRight']+"px"; |
|||
}else{ |
|||
styleObject['margin-right'] = "0px"; |
|||
} |
|||
} |
|||
if(ele['marginBot']){ |
|||
if(ele['marginBot'] != "auto"){ |
|||
styleObject['margin-bottom'] = ele['marginBot']+"px"; |
|||
}else{ |
|||
styleObject['margin-bottom'] = "0px"; |
|||
} |
|||
} |
|||
if(ele['divbox']){ |
|||
if(ele['divbox'] == "gap"){ |
|||
Object.assign(styleObject, yuanJiaoAnalysis(ele,'gap')); |
|||
}else{ |
|||
// styleObject['border-radius'] = yuanJiaoAnalysis(ele,'gap');
|
|||
Object.assign(styleObject, yuanJiaoAnalysis(ele,'all')); |
|||
} |
|||
}else{ |
|||
Object.assign(styleObject, yuanJiaoAnalysis(ele,'all')); |
|||
} |
|||
|
|||
let borderLink = "" |
|||
|
|||
if(ele["boxWidth"]){ |
|||
borderLink+=ele["boxWidth"]+"px " |
|||
} |
|||
if(ele["contourProfile"]) { |
|||
borderLink+=" " +ele["contourProfile"] + " " |
|||
} |
|||
if(ele["lineColorVal"]) { |
|||
borderLink+=" " +ele["lineColorVal"] + " " |
|||
} |
|||
if(ele["border"] && borderLink != ""){ |
|||
switch(ele["border"]){ |
|||
case 1: |
|||
styleObject['border']=borderLink |
|||
break; |
|||
case 2: |
|||
styleObject['border-top']=borderLink |
|||
break; |
|||
case 3: |
|||
styleObject['border-left']=borderLink |
|||
break; |
|||
case 4: |
|||
styleObject['border-right']=borderLink |
|||
break; |
|||
case 5: |
|||
styleObject['border-bottom']=borderLink |
|||
break; |
|||
default: |
|||
styleObject['border']= "0px" |
|||
} |
|||
} |
|||
if(ele['width']){ |
|||
if(ele['width'] != ""){ |
|||
styleObject['width'] = ele['width'].toString()+"px"; |
|||
} |
|||
} |
|||
if(ele['widthMax'] && ele['widthMax'] != ""){ |
|||
styleObject['max-width'] = ele['widthMax'].toString()+"px"; |
|||
} |
|||
if(ele['widthMin'] && ele['widthMin'] != ""){ |
|||
styleObject['min-width'] = ele['widthMin'].toString()+"px"; |
|||
} |
|||
if(ele['height'] && ele['height'] != ""){ |
|||
styleObject['height'] = ele['height'].toString()+"px"; |
|||
} |
|||
if(ele['heightMax'] && ele['heightMax'] != ""){ |
|||
styleObject['max-height'] = ele['heightMax'].toString()+"px"; |
|||
} |
|||
if(ele['heightMin'] && ele['heightMin'] != ""){ |
|||
styleObject['min-height'] = ele['heightMin'].toString()+"px"; |
|||
} |
|||
if(ele['objectFit'] && ele['objectFit'] != ""){ |
|||
switch(ele['objectFit']){ |
|||
case "fill": |
|||
styleObject['object-fit'] = "fill"; |
|||
break; |
|||
case "contain": |
|||
styleObject['object-fit'] = "contain"; |
|||
break; |
|||
case "vover": |
|||
styleObject['object-fit'] = "cover"; |
|||
break; |
|||
case "none": |
|||
styleObject['object-fit'] = "none"; |
|||
break; |
|||
case "scaleDown": |
|||
styleObject['object-fit'] = "scale-down"; |
|||
break; |
|||
default: |
|||
break; |
|||
} |
|||
|
|||
} |
|||
} |
|||
if(sty == 1 || sty == 3){ |
|||
if(ele['paddingTop']){ |
|||
if(ele['paddingTop'] != "auto"){ |
|||
styleObject['padding-top'] = ele['paddingTop']+"px"; |
|||
}else{ |
|||
styleObject['padding-top'] = "0px"; |
|||
} |
|||
} |
|||
if(ele['paddingLeft']){ |
|||
if(ele['paddingLeft'] != "auto"){ |
|||
styleObject['padding-left'] = ele['paddingLeft']+"px"; |
|||
}else{ |
|||
styleObject['padding-left'] = "0px"; |
|||
} |
|||
} |
|||
if(ele['paddingRight']){ |
|||
if(ele['paddingRight'] != "auto"){ |
|||
styleObject['padding-right'] = ele['paddingRight']+"px"; |
|||
}else{ |
|||
styleObject['padding-right'] = "0px"; |
|||
} |
|||
} |
|||
if(ele['paddingBot']){ |
|||
if(ele['paddingBot'] != "auto"){ |
|||
styleObject['padding-bottom'] = ele['paddingBot']+"px"; |
|||
}else{ |
|||
styleObject['padding-bottom'] = "0px"; |
|||
} |
|||
} |
|||
if(ele['textAlign'] && ele['textAlign'] != ""){ |
|||
styleObject['text-align'] = ele['textAlign']; |
|||
} |
|||
if(ele['fontStyle'] && ele['fontStyle'] != ""){ |
|||
styleObject['font-style'] = ele['fontStyle']; |
|||
} |
|||
if(ele['textecoration'] && ele['textecoration'] != ""){ |
|||
styleObject['text-decoration'] = ele['textecoration']; |
|||
} |
|||
if(ele['fontSize'] && ele['fontSize'] != ""){ |
|||
styleObject['font-size'] = ele['fontSize'].toString()+"px"; |
|||
} |
|||
if(ele['fontFamily'] && ele['fontFamily'] != ""){ |
|||
styleObject['font-family'] = ele['fontFamily']; |
|||
} |
|||
if(ele['fontHight'] && ele['fontHight'] != ""){ |
|||
styleObject['line-height'] = ele['fontHight'].toString()+"px"; |
|||
} |
|||
if(ele['fontWeight'] && ele['fontWeight'] != ""){ |
|||
styleObject['font-weight'] = ele['fontWeight']; |
|||
} |
|||
if(ele['fontColor'] && ele['fontColor'] != ""){ |
|||
styleObject['color'] = ele['fontColor']; |
|||
} |
|||
} |
|||
if(sty == 1 || sty == 4){ |
|||
if(ele['marginTop']){ |
|||
if(ele['marginTop'] != "auto"){ |
|||
styleObject['margin-top'] = ele['marginTop']+"px"; |
|||
}else{ |
|||
styleObject['margin-top'] = "0px"; |
|||
} |
|||
} |
|||
if(ele['marginLeft']){ |
|||
if(ele['marginLeft'] != "auto"){ |
|||
styleObject['margin-left'] = ele['marginLeft']+"px"; |
|||
}else{ |
|||
styleObject['margin-left'] = "0px"; |
|||
} |
|||
} |
|||
if(ele['marginRight']){ |
|||
if(ele['marginRight'] != "auto"){ |
|||
styleObject['margin-right'] = ele['marginRight']+"px"; |
|||
}else{ |
|||
styleObject['margin-right'] = "0px"; |
|||
} |
|||
} |
|||
if(ele['marginBot']){ |
|||
if(ele['marginBot'] != "auto"){ |
|||
styleObject['margin-bottom'] = ele['marginBot']+"px"; |
|||
}else{ |
|||
styleObject['margin-bottom'] = "0px"; |
|||
} |
|||
} |
|||
if(ele['divbox']){ |
|||
if(ele['divbox'] == "gap"){ |
|||
Object.assign(styleObject, yuanJiaoAnalysis(ele,'gap')); |
|||
}else{ |
|||
// styleObject['border-radius'] = yuanJiaoAnalysis(ele,'gap');
|
|||
Object.assign(styleObject, yuanJiaoAnalysis(ele,'all')); |
|||
} |
|||
}else{ |
|||
Object.assign(styleObject, yuanJiaoAnalysis(ele,'all')); |
|||
} |
|||
|
|||
let borderLink = "" |
|||
|
|||
if(ele["boxWidth"]){ |
|||
borderLink+=ele["boxWidth"]+"px " |
|||
} |
|||
if(ele["contourProfile"]) { |
|||
borderLink+=" " +ele["contourProfile"] + " " |
|||
} |
|||
if(ele["lineColorVal"]) { |
|||
borderLink+=" " +ele["lineColorVal"] + " " |
|||
} |
|||
if(ele["border"] && borderLink != ""){ |
|||
switch(ele["border"]){ |
|||
case 1: |
|||
styleObject['border']=borderLink |
|||
break; |
|||
case 2: |
|||
styleObject['border-top']=borderLink |
|||
break; |
|||
case 3: |
|||
styleObject['border-left']=borderLink |
|||
break; |
|||
case 4: |
|||
styleObject['border-right']=borderLink |
|||
break; |
|||
case 5: |
|||
styleObject['border-bottom']=borderLink |
|||
break; |
|||
default: |
|||
styleObject['border']= "0px" |
|||
} |
|||
} |
|||
if(ele['width']){ |
|||
if(ele['width'] != ""){ |
|||
styleObject['width'] = ele['width'].toString()+"px"; |
|||
} |
|||
} |
|||
if(ele['widthMax'] && ele['widthMax'] != ""){ |
|||
styleObject['max-width'] = ele['widthMax'].toString()+"px"; |
|||
} |
|||
if(ele['widthMin'] && ele['widthMin'] != ""){ |
|||
styleObject['min-width'] = ele['widthMin'].toString()+"px"; |
|||
} |
|||
if(ele['height'] && ele['height'] != ""){ |
|||
styleObject['height'] = ele['height'].toString()+"px"; |
|||
} |
|||
if(ele['heightMax'] && ele['heightMax'] != ""){ |
|||
styleObject['max-height'] = ele['heightMax'].toString()+"px"; |
|||
} |
|||
if(ele['heightMin'] && ele['heightMin'] != ""){ |
|||
styleObject['min-height'] = ele['heightMin'].toString()+"px"; |
|||
} |
|||
if(ele['objectFit'] && ele['objectFit'] != ""){ |
|||
switch(ele['objectFit']){ |
|||
case "fill": |
|||
styleObject['object-fit'] = "fill"; |
|||
break; |
|||
case "contain": |
|||
styleObject['object-fit'] = "contain"; |
|||
break; |
|||
case "vover": |
|||
styleObject['object-fit'] = "cover"; |
|||
break; |
|||
case "none": |
|||
styleObject['object-fit'] = "none"; |
|||
break; |
|||
case "scaleDown": |
|||
styleObject['object-fit'] = "scale-down"; |
|||
break; |
|||
default: |
|||
break; |
|||
} |
|||
|
|||
} |
|||
if(ele['textAlign'] && ele['textAlign'] != ""){ |
|||
styleObject['text-align'] = ele['textAlign']; |
|||
} |
|||
} |
|||
if(sty == 1 || sty == 5){ |
|||
if(ele['paddingTop']){ |
|||
if(ele['paddingTop'] != "auto"){ |
|||
styleObject['padding-top'] = ele['paddingTop']+"px"; |
|||
}else{ |
|||
styleObject['padding-top'] = "0px"; |
|||
} |
|||
} |
|||
if(ele['paddingLeft']){ |
|||
if(ele['paddingLeft'] != "auto"){ |
|||
styleObject['padding-left'] = ele['paddingLeft']+"px"; |
|||
}else{ |
|||
styleObject['padding-left'] = "0px"; |
|||
} |
|||
} |
|||
if(ele['paddingRight']){ |
|||
if(ele['paddingRight'] != "auto"){ |
|||
styleObject['padding-right'] = ele['paddingRight']+"px"; |
|||
}else{ |
|||
styleObject['padding-right'] = "0px"; |
|||
} |
|||
} |
|||
if(ele['paddingBot']){ |
|||
if(ele['paddingBot'] != "auto"){ |
|||
styleObject['padding-bottom'] = ele['paddingBot']+"px"; |
|||
}else{ |
|||
styleObject['padding-bottom'] = "0px"; |
|||
} |
|||
} |
|||
if(ele['fontStyle'] && ele['fontStyle'] != ""){ |
|||
styleObject['font-style'] = ele['fontStyle']; |
|||
} |
|||
if(ele['textecoration'] && ele['textecoration'] != ""){ |
|||
styleObject['text-decoration'] = ele['textecoration']; |
|||
} |
|||
if(ele['fontSize'] && ele['fontSize'] != ""){ |
|||
styleObject['font-size'] = ele['fontSize'].toString()+"px"; |
|||
} |
|||
if(ele['fontFamily'] && ele['fontFamily'] != ""){ |
|||
styleObject['font-family'] = ele['fontFamily']; |
|||
} |
|||
if(ele['fontHight'] && ele['fontHight'] != ""){ |
|||
styleObject['line-height'] = ele['fontHight'].toString()+"px"; |
|||
} |
|||
if(ele['fontWeight'] && ele['fontWeight'] != ""){ |
|||
styleObject['font-weight'] = ele['fontWeight']; |
|||
} |
|||
if(ele['fontColor'] && ele['fontColor'] != ""){ |
|||
styleObject['color'] = ele['fontColor']; |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
if(ele["backgroundColor"]) { |
|||
styleObject['background-color'] = ele['backgroundColor'] |
|||
} |
|||
if(ele["transparency"] || ele["transparency"] == 0) { |
|||
styleObject['opacity'] = ele['transparency']/100; |
|||
} |
|||
|
|||
return styleObject; |
|||
} |
|||
@ -0,0 +1,12 @@ |
|||
/** |
|||
@ 作者: 秦东 |
|||
@ 时间: 2024-10-24 15:23:29 |
|||
@ 功能: 获取时间戳 |
|||
*/ |
|||
function getTimeUnix(){ |
|||
return Date.now().toString(); |
|||
} |
|||
|
|||
export{ |
|||
getTimeUnix |
|||
} |
|||
@ -0,0 +1,25 @@ |
|||
|
|||
import request from '@/utils/axios/index' |
|||
import { AxiosPromise } from 'axios'; |
|||
import { FileContent } from '@/api/common/type' |
|||
export function uploadFiledTinymce(data:any, url:any) { |
|||
return request({ |
|||
url: url || '/api/upordown', |
|||
method: 'post', |
|||
data, |
|||
headers: { |
|||
'Content-Type': 'multipart/form-data' |
|||
} |
|||
}) |
|||
} |
|||
export function newUploadFileApi(params:FormData): AxiosPromise<FileContent> { |
|||
return request({ |
|||
// url: '/api/v1/files',
|
|||
url: '/api/upordown', |
|||
method: 'post', |
|||
data: params, |
|||
headers: { |
|||
'Content-Type': 'multipart/form-data' |
|||
} |
|||
}); |
|||
} |
|||
@ -0,0 +1,358 @@ |
|||
/** |
|||
* 统一返回格式 |
|||
*/ |
|||
export interface returnFormat{ |
|||
code?: number; |
|||
msg?: string; |
|||
data?: any; |
|||
} |
|||
/** |
|||
@ 作者: 秦东 |
|||
@ 时间: 2024-10-26 15:59:33 |
|||
@ 功能: 翻页参数 |
|||
*/ |
|||
export interface pageTurning{ |
|||
page?: number; |
|||
pagesize?: number; |
|||
} |
|||
/** |
|||
* 分页响应对象 |
|||
*/ |
|||
export interface PageResult<T> { |
|||
/** |
|||
* 数据列表 |
|||
*/ |
|||
list: T; |
|||
/** |
|||
* 数据总数 |
|||
*/ |
|||
total: number; |
|||
} |
|||
/** |
|||
@ 作者: 秦东 |
|||
@ 时间: 2024-10-30 15:02:35 |
|||
@ 功能: 获取ID |
|||
*/ |
|||
export interface pageId{ |
|||
id?: number|string; |
|||
} |
|||
/** |
|||
@ 作者: 秦东 |
|||
@ 时间: 2024-11-08 13:05:30 |
|||
@ 功能: 获取数量 |
|||
*/ |
|||
export interface pageNumber{ |
|||
number?: number|string; |
|||
} |
|||
//数据库类型
|
|||
export const dateTypes = [ |
|||
{ |
|||
value: '1', |
|||
label: '关系型数据库', |
|||
}, |
|||
{ |
|||
value: '2', |
|||
label: '时序数据库', |
|||
}, |
|||
{ |
|||
value: '3', |
|||
label: '非关系型数据库', |
|||
} |
|||
] |
|||
//数据库产品
|
|||
export const dataSourceTypes = [ |
|||
{ |
|||
value: '1', |
|||
label: 'mysql', |
|||
}, |
|||
{ |
|||
value: '2', |
|||
label: 'RTD', |
|||
}, |
|||
{ |
|||
value: '3', |
|||
label: 'TIDB', |
|||
}, |
|||
{ |
|||
value: '4', |
|||
label: 'sql server', |
|||
}, |
|||
{ |
|||
value: '5', |
|||
label: 'redis', |
|||
} |
|||
] |
|||
//接口方式
|
|||
export const interfaceTypes = [ |
|||
{ |
|||
value: '1', |
|||
label: 'SQL', |
|||
}, |
|||
{ |
|||
value: '2', |
|||
label: 'API', |
|||
} |
|||
] |
|||
|
|||
//数据源表单结构
|
|||
export interface dataBaseStruct { |
|||
databaseName?: string; |
|||
port?: number; |
|||
ipAddress?: string; |
|||
datasourceType?: number; |
|||
datasourceTypeName?: string; |
|||
dataType?: number; |
|||
dataTypeName?: string; |
|||
interfaceType?: number; |
|||
interfaceTypeName?: string; |
|||
author?: string; |
|||
account?: string; |
|||
password?: string; |
|||
id?: string; |
|||
redashDatasourceId?: number; |
|||
} |
|||
|
|||
/** |
|||
@ 作者: 秦东 |
|||
@ 时间: 2024-04-22 11:43:21 |
|||
@ 功能: 自建应用菜单树结构 |
|||
*/ |
|||
export interface appMenuTreeInfo { |
|||
id:string; //节点唯一识别符
|
|||
label:string; //节点名称
|
|||
type:number; //节点类型 1:目录;2:菜单;3:必定存在
|
|||
svg?:string; //图标
|
|||
pcIsShow:number; //pc端显示与隐藏
|
|||
wapIsShow:number; //移动端显示与隐藏
|
|||
parent:string; // 父级
|
|||
appkey:string; //app唯一识别符
|
|||
isLock:number; |
|||
sort:number; //排序
|
|||
children?:appMenuTreeInfo[]; //子级
|
|||
} |
|||
|
|||
/** |
|||
@ 作者: 秦东 |
|||
@ 时间: 2024-04-23 16:03:48 |
|||
@ 功能: appCont |
|||
*/ |
|||
export interface appSetInfo { |
|||
appKey:string; |
|||
appName:string; |
|||
appSvg:string; |
|||
state:number; |
|||
uuid:string; |
|||
} |
|||
/** |
|||
@ 作者: 秦东 |
|||
@ 时间: 2024-04-22 08:31:22 |
|||
@ 功能: 实验拖拽树 |
|||
*/ |
|||
export let threeShiyanData = [ |
|||
{ |
|||
id:"1", |
|||
svg:"chaoSongWoDe", |
|||
label:"Hr管理", |
|||
type:1, |
|||
children:[ |
|||
{ |
|||
id:"2", |
|||
svg:"chaoSongWoDe", |
|||
label:"Hr看板", |
|||
type:2, |
|||
children:[] |
|||
}, |
|||
{ |
|||
id:"3", |
|||
svg:"chaoSongWoDe", |
|||
label:"员工档案", |
|||
type:2, |
|||
children:[] |
|||
}, |
|||
{ |
|||
id:"4", |
|||
svg:"chaoSongWoDe", |
|||
label:"绩效考核", |
|||
type:1, |
|||
children:[ |
|||
{ |
|||
id:"5", |
|||
svg:"chaoSongWoDe", |
|||
label:"统计分析", |
|||
type:1, |
|||
children:[ |
|||
{ |
|||
id:"6", |
|||
svg:"chaoSongWoDe", |
|||
label:"综合成绩", |
|||
type:2, |
|||
children:[] |
|||
}, |
|||
{ |
|||
id:"7", |
|||
svg:"chaoSongWoDe", |
|||
label:"指标分析", |
|||
type:2, |
|||
children:[] |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
id:"8", |
|||
svg:"chaoSongWoDe", |
|||
label:"考核方案", |
|||
type:1, |
|||
children:[ |
|||
{ |
|||
id:"9", |
|||
svg:"chaoSongWoDe", |
|||
label:"方案生成", |
|||
type:2, |
|||
children:[] |
|||
} |
|||
] |
|||
} |
|||
] |
|||
}, |
|||
{ |
|||
id:"10", |
|||
svg:"chaoSongWoDe", |
|||
label:"考勤管理", |
|||
type:2, |
|||
children:[] |
|||
}, |
|||
] |
|||
}, |
|||
{ |
|||
id:"11", |
|||
svg:"chaoSongWoDe", |
|||
label:"应用管理", |
|||
type:1, |
|||
children:[ |
|||
{ |
|||
id:"", |
|||
svg:"chaoSongWoDe", |
|||
label:"应用中心", |
|||
type:2, |
|||
children:[] |
|||
}, |
|||
] |
|||
} |
|||
]; |
|||
|
|||
//初始化App表单数据查看
|
|||
export interface appPageDataInit { |
|||
appFlow:boolean; |
|||
appForm?:appFormInfo; |
|||
page:boolean; |
|||
pageList:boolean; |
|||
workFlow?:appWorkFlow; |
|||
} |
|||
//App表单结构
|
|||
export interface appFormInfo{ |
|||
authorizationRoles: string; |
|||
authorizedOrg: string; |
|||
authorizedPersonnel: string; |
|||
authorizedPosition: string; |
|||
cfid: number; |
|||
classify: number; |
|||
creater: number; |
|||
dict: string; |
|||
editTime: number; |
|||
flowIsOpen: number; |
|||
flowkey: number; |
|||
groupid: number; |
|||
icon: string; |
|||
id: number; |
|||
listPage: string; |
|||
listjson: string; |
|||
mastesform: string; |
|||
mastesformjson: string; |
|||
name: string; |
|||
permit: string; |
|||
permitstr: string; |
|||
postpermit: string; |
|||
powerstr: string; |
|||
signCode: number; |
|||
status: number; |
|||
table_structure: string; |
|||
tablekey: string; |
|||
time: number; |
|||
userpermit: string; |
|||
version: number; |
|||
visibility: number; |
|||
} |
|||
//app工作流结构
|
|||
export interface appWorkFlow{ |
|||
directorMaxLevel: number; |
|||
flowPermission: appFlowPermission[]; |
|||
nodeConfig: appNodeConfig; |
|||
tableId: string; |
|||
} |
|||
//节点操作人结构
|
|||
export interface appFlowPermission{ |
|||
icon: string; |
|||
iconToBase64: string; |
|||
name: string; |
|||
targetId: string; |
|||
type: number; |
|||
} |
|||
//app流程节点结构
|
|||
export interface appNodeConfig{ |
|||
attribute: number; |
|||
ccSelfSelectFlag: number; |
|||
childNode: appNodeConfig; |
|||
conditionList: string; |
|||
conditionNodes: string; |
|||
customNode: string; |
|||
directorLevel: number; |
|||
error: false |
|||
examineEndDirectorLevel: number; |
|||
examineMode: number; |
|||
executionaddress: string; |
|||
fromNode: string; |
|||
gotoNode: string[]; |
|||
matrix: appMatrix; |
|||
noHanderAction: number; |
|||
nodeName: string; |
|||
nodeNumber: string; |
|||
nodeUserList: string; |
|||
priorityLevel: number; |
|||
selectMode: number; |
|||
selectRange: number; |
|||
sendBackNode: string; |
|||
settype: number; |
|||
type: number; |
|||
orgList: number[]; |
|||
} |
|||
//app工作流附件
|
|||
export interface appMatrix{ |
|||
factorName: string; |
|||
factorid: number; |
|||
matrixName: string; |
|||
matrixid: number; |
|||
outcomeName: string; |
|||
outcomeid: number; |
|||
} |
|||
export interface FileInfo { |
|||
name: string; |
|||
url: string; |
|||
} |
|||
|
|||
/** |
|||
* 上传文件返回信息 |
|||
*/ |
|||
export interface FileContent { |
|||
id:string; |
|||
key:string; |
|||
name:string; |
|||
tag:string; |
|||
url:string; |
|||
physicspath:string; |
|||
CreatedAt:string; |
|||
UpdatedAt:string; |
|||
fileSize:number; |
|||
type:number; |
|||
size:string; |
|||
} |
|||
|
|||
@ -0,0 +1,391 @@ |
|||
import request from '@/utils/axios/index' |
|||
import { AxiosPromise } from 'axios'; |
|||
import { searchFormTitle,orgClassListCont,addOrgTypesCont,orgClassCont,editOrgTypeEditOrDel,searchOrgCont,orgInfo,addOrgInfo,editOrgDel,searchTeamList,orgTeamListCont,orgFormTree,archivesList,getContId,dimissionRateQuery,orgAndPeople,sendOrgCont,eduStruCont,outputOrgAndUser,orgId,targetCanShu,dlTargetTbHbfenxi,dlTargetTbHbfenxis,orgGardes,attributePage } from './type'; |
|||
|
|||
import { pageId } from "@/api/common/type" |
|||
|
|||
/** |
|||
* 获取组织类别 |
|||
*/ |
|||
export function getRolePage(data?: searchFormTitle): AxiosPromise<orgClassListCont> { |
|||
return request({ |
|||
url: '/hrapi/org/govclasslist', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
/** |
|||
* 获取所有组织类别 |
|||
*/ |
|||
export function getOrgClassAllPage(data?: addOrgTypesCont) { |
|||
return request({ |
|||
url: '/hrapi/org/govclassalllist', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
/** |
|||
* 添加组织分类 |
|||
*/ |
|||
export function addOrgClassInfo(data: addOrgTypesCont){ |
|||
return request({ |
|||
url: '/hrapi/org/addgovclass', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
/** |
|||
* 获取行政组织内容 |
|||
*/ |
|||
export function getgovcont(data: getContId){ |
|||
return request({ |
|||
url: '/hrapi/org/getgovcont', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
/** |
|||
* 编辑组织分类 |
|||
*/ |
|||
export function editOrgClassInfo(data: orgClassCont){ |
|||
return request({ |
|||
url: '/hrapi/org/eitegovclasscont', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
/** |
|||
* 编辑组织类别状态 |
|||
*/ |
|||
export function editOrgClassStatus(data: editOrgTypeEditOrDel){ |
|||
return request({ |
|||
url: '/hrapi/org/base_edit_orgclass_status', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
/** |
|||
* 获取行政组织树 |
|||
*/ |
|||
export function getOrgTreeList(data: searchOrgCont): AxiosPromise<orgInfo[]>{ |
|||
return request({ |
|||
url: '/hrapi/org/govnewthreeing', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
/** |
|||
* 新增行政组织内容 |
|||
*/ |
|||
export function addOrgInfoApi(data: addOrgInfo){ |
|||
return request({ |
|||
url: '/hrapi/org/newaddgovcont', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
/** |
|||
* 编辑行政组织内容 |
|||
*/ |
|||
export function editOrgInfoApi(data: addOrgInfo){ |
|||
return request({ |
|||
url: '/hrapi/org/neweitegovcont', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
/** |
|||
* 编辑行政组织内容 |
|||
*/ |
|||
export function editOrgStatusApi(data: editOrgDel){ |
|||
return request({ |
|||
url: '/hrapi/org/neweitegovstateordel', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
/** |
|||
* 获取班组列表 |
|||
*/ |
|||
export function getTeamListCont(data: searchTeamList): AxiosPromise<orgTeamListCont>{ |
|||
return request({ |
|||
url: '/hrapi/org/teamcontlist', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
|
|||
/** |
|||
* 获取自定义表单行政组织树 |
|||
*/ |
|||
export function getOrgFormTree(data?: editOrgDel): AxiosPromise<orgFormTree>{ |
|||
return request({ |
|||
url: '/hrapi/org/orgtreelist', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
/** |
|||
* 获取人员列表 |
|||
*/ |
|||
export function getOrgFormUserList(data:any): AxiosPromise<archivesList>{ |
|||
return request({ |
|||
url: '/hrapi/org/search_user_list', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
/** |
|||
* 获取人员列表 |
|||
*/ |
|||
export function searchUserCustomerFormList(data:any): AxiosPromise<archivesList[]>{ |
|||
return request({ |
|||
url: '/hrapi/org/search_userlist_customerform', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
/** |
|||
* 获取人员列表UploadUserTemplate |
|||
*/ |
|||
export function gainUserInfoDownTemplateList(data:any){ |
|||
return request({ |
|||
url: '/systemapi/user/gainUserInfoDownTemplateList', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
/** |
|||
* 获取人员列表 |
|||
*/ |
|||
export function uploadUserTemplate(data:any){ |
|||
return request({ |
|||
url: '/systemapi/user/uploadUserTemplate', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
/** |
|||
* 编辑人员模版列表状态 |
|||
*/ |
|||
export function editUserTempr(data:any){ |
|||
return request({ |
|||
url: '/systemapi/user/editUserTempr', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
/** |
|||
* 获取员工模版信息 |
|||
*/ |
|||
export function gainUserTemplateInfo(data:any){ |
|||
return request({ |
|||
url: '/systemapi/user/gainUserTemplateInfo', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
/** |
|||
* 编辑模版内容 |
|||
*/ |
|||
export function editUserTemplateInfo(data:any){ |
|||
return request({ |
|||
url: '/systemapi/user/editUserTemplateInfo', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
/** |
|||
* 获取现有模版归属那个组织 |
|||
*/ |
|||
export function gainTempleateOrgList(data:any){ |
|||
return request({ |
|||
url: '/systemapi/user/gainTempleateOrgList', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
|
|||
|
|||
|
|||
/** |
|||
* 获取离职率 |
|||
*/ |
|||
export function getDimissionRate(data?: dimissionRateQuery) { |
|||
return request({ |
|||
url: '/hrapi/staff/dimission_rate', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
/** |
|||
* 获取行政组织直接下属 |
|||
*/ |
|||
export function getOrgChiled(data?: pageId): AxiosPromise<sendOrgCont> { |
|||
return request({ |
|||
url: '/hrapi/org/getorgchiled', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
/** |
|||
* 获取单一行政组织离职率 |
|||
*/ |
|||
export function getOneOrgDimissionRate(data?: dimissionRateQuery){ |
|||
return request({ |
|||
url: '/hrapi/staff/oneorg_dimission_rate', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
/** |
|||
* 获取公司指定年月的离职率 |
|||
*/ |
|||
export function getOrgTimeRate(data?: dimissionRateQuery){ |
|||
return request({ |
|||
url: '/hrapi/staff/getorgtimerate', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
/** |
|||
* 获取学历结构 |
|||
*/ |
|||
export function getEdtuStru(data?: pageId): AxiosPromise<eduStruCont[]> { |
|||
return request({ |
|||
url: '/hrapi/staff/get_edu_stru', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
/** |
|||
* 根据行政组织编号获取组织及人员 |
|||
*/ |
|||
export function getBasisOrgChiled(data?: pageId): AxiosPromise<outputOrgAndUser>{ |
|||
return request({ |
|||
url: '/hrapi/org/basis_org_obtain_sonorg_and_man', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
|
|||
//获取组织及成员(新版)
|
|||
export const getOrgEveryonePeople = (data?: pageId): AxiosPromise<orgAndPeople[]> => { |
|||
return request({ |
|||
url: '/hrapi/org/get_org_everyone_people', |
|||
method: 'post', |
|||
data: data |
|||
}) |
|||
} |
|||
/** |
|||
* 获取当前行政组织的所有主行政部门 |
|||
*/ |
|||
export const getCompanyDeparment = (data?: orgId):any => { |
|||
return request({ |
|||
url: '/hrapi/org/getcompanydeparment', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
|
|||
|
|||
//搜索成员(新版)
|
|||
export const getEmployees = (data?: any) => { |
|||
return request({ |
|||
url: '/kpiapi/powerpc/search_people', |
|||
method: 'post', |
|||
data: data |
|||
}) |
|||
} |
|||
//搜索角色(新版)
|
|||
export const getRoles = (data?: any) => { |
|||
return request({ |
|||
url: '/kpiapi/powerpc/system_role_list_flow', |
|||
method: 'post', |
|||
data: data |
|||
}) |
|||
} |
|||
|
|||
//搜索角色(新版)
|
|||
export const SearchPositionUnify = (data?: any) => { |
|||
return request({ |
|||
url: '/kpiapi/powerpc/search_position_unify', |
|||
method: 'post', |
|||
data: data |
|||
}) |
|||
} |
|||
//获取统一岗位
|
|||
export const GetPositionUnify = (data?: any) => { |
|||
return request({ |
|||
url: '/kpiapi/powerpc/get_position_unify', |
|||
method: 'post', |
|||
data: data |
|||
}) |
|||
} |
|||
|
|||
//根据部门获取指标列表
|
|||
export const targetListForDepartment = (data?: targetCanShu):any => { |
|||
return request({ |
|||
url: '/kpiapi/department_web/target_list_for_department', |
|||
method: 'post', |
|||
data: data |
|||
}) |
|||
} |
|||
|
|||
//获取审批节点或条件节点
|
|||
export const gainNodeFactor = (data?: any) => { |
|||
return request({ |
|||
url: '/systemapi/task_flow/gain_node_factor', |
|||
method: 'post', |
|||
data: data |
|||
}) |
|||
} |
|||
//定量指标同比环比分析
|
|||
export const bdTtsyoy = (data: dlTargetTbHbfenxi):any => { |
|||
return request({ |
|||
url: '/kpiapi/department_web/bdttsyoy', |
|||
method: 'post', |
|||
data: data |
|||
}) |
|||
} |
|||
//定量指标同比环比分析
|
|||
export const bdBdtTs = (data: dlTargetTbHbfenxis):any => { |
|||
return request({ |
|||
url: '/kpiapi/department_web/bdtts', |
|||
method: 'post', |
|||
data: data |
|||
}) |
|||
} |
|||
//定性指标同比环比分析
|
|||
export const bDtTsatTryoy = (data: dlTargetTbHbfenxi):any => { |
|||
return request({ |
|||
url: '/kpiapi/department_web/bdttsattryoy', |
|||
method: 'post', |
|||
data: data |
|||
}) |
|||
} |
|||
//行政组织年度成绩单
|
|||
export const orgTargetAnnualStatistics = (data: orgGardes):any => { |
|||
return request({ |
|||
url: '/kpiapi/strtistics/org_target_annual_statistics', |
|||
method: 'post', |
|||
data: data |
|||
}) |
|||
} |
|||
//统计行政组织下人员年龄比例
|
|||
export const statisticalAgeRatio = (data: pageId):any => { |
|||
return request({ |
|||
url: '/systemapi/user/statisticalAgeRatio', |
|||
method: 'post', |
|||
data: data |
|||
}) |
|||
} |
|||
|
|||
//统计行政组织下人员年龄比例
|
|||
export const hotNews = (data: attributePage):any => { |
|||
return request({ |
|||
url: '/systemapi/news/hot_news', |
|||
method: 'post', |
|||
data: data |
|||
}) |
|||
} |
|||
@ -0,0 +1,291 @@ |
|||
import { PageResult,pageTurning,pageId } from '@/api/common/type' |
|||
/** |
|||
* 搜索名称 |
|||
*/ |
|||
export interface searchFormTitle extends pageTurning{ |
|||
name?: string; |
|||
level?: number; |
|||
} |
|||
/** |
|||
* 组织类别列表 |
|||
*/ |
|||
export type orgClassListCont = PageResult<orgClassCont[]> |
|||
/** |
|||
* 组织类别内容 |
|||
*/ |
|||
export interface orgClassCont { |
|||
id?: number; |
|||
kingdeeid?: string |
|||
level?: number; |
|||
name?: string |
|||
state?: number; |
|||
time?: number; |
|||
status?: boolean; |
|||
} |
|||
export interface orgClassInfor { |
|||
id: number; |
|||
kingdeeid?: string |
|||
level?: number; |
|||
name?: string |
|||
state?: number; |
|||
time?: number; |
|||
status?: boolean; |
|||
} |
|||
/** |
|||
* 添加组织类别 |
|||
*/ |
|||
export interface addOrgTypesCont{ |
|||
name?: string; |
|||
level?: number; |
|||
} |
|||
/** |
|||
* 编辑数据 |
|||
*/ |
|||
export interface editOrgTypeInfo{ |
|||
id: string; |
|||
name: string; |
|||
level?: number; |
|||
} |
|||
/** |
|||
* 删除或改变组织类别状态 |
|||
*/ |
|||
export interface editOrgTypeEditOrDel{ |
|||
id:string[]; |
|||
status?: number; |
|||
istrue?: number; |
|||
} |
|||
/** |
|||
* 搜索行政组织 |
|||
*/ |
|||
export interface searchOrgCont{ |
|||
orgid?:number; |
|||
keywords?: string; |
|||
class?: number; |
|||
} |
|||
/** |
|||
* 行政组织内容 |
|||
*/ |
|||
export interface orgInfo{ |
|||
id?:number; |
|||
number?: string, |
|||
name?: string, |
|||
superior?: number, |
|||
organizationtype?: number, |
|||
abbreviation?: string, |
|||
time?: number, |
|||
state?: number, |
|||
wechatorganizationid?: number, |
|||
superiorsun?: string, |
|||
schoole?: number, |
|||
kingdeeid?: string, |
|||
ispower?: number, |
|||
sort?: number, |
|||
typeName?: string, |
|||
level?: number, |
|||
status?: true, |
|||
child?:orgInfo[]; |
|||
} |
|||
/** |
|||
* 行政组织树格式 |
|||
*/ |
|||
export type sendOrgTreeList = PageResult<orgInfo[]> |
|||
/** |
|||
* 编辑行政组织参数 |
|||
*/ |
|||
export interface addOrgInfo{ |
|||
id?:number; |
|||
name?: string, //全称
|
|||
number?: string, //编号
|
|||
superior?: number|string, //上级
|
|||
govclass?: string, //分类
|
|||
abbreviation?: string, //简称
|
|||
wechatid?: string //企业微信对照吗
|
|||
kingdeeid?: string //金蝶对照码
|
|||
} |
|||
/** |
|||
* 删除行政组织 |
|||
*/ |
|||
export interface editOrgDel{ |
|||
id?:number; |
|||
status?: number; |
|||
istrue?: number; |
|||
} |
|||
/** |
|||
* 搜索班组 |
|||
*/ |
|||
export interface searchTeamList extends pageTurning{ |
|||
name?: string; |
|||
} |
|||
/** |
|||
* 班组返回列表 |
|||
*/ |
|||
export type orgTeamListCont = PageResult<teamInfo[]> |
|||
/** |
|||
* 班组内容 |
|||
*/ |
|||
export interface teamInfo{ |
|||
id:number; |
|||
name?: string; |
|||
time?:number; |
|||
state?:number; |
|||
} |
|||
/** |
|||
* 自定义表单行政组织列表 |
|||
*/ |
|||
export interface orgform{ |
|||
id: number; |
|||
parentId: number; |
|||
name: string; |
|||
sort: number; |
|||
status: number; |
|||
remark: string; |
|||
} |
|||
export interface orgFormTree{ |
|||
dict:any; |
|||
list:orgform[]; |
|||
pageInfo:any; |
|||
} |
|||
/** |
|||
* 自定义表单搜索用户 |
|||
*/ |
|||
export interface orgFormSeachUsers{ |
|||
page:number; |
|||
pagesize:number; |
|||
|
|||
} |
|||
|
|||
export interface searchCriteriaForPeople extends pageTurning{ |
|||
total:number; |
|||
current:number; |
|||
orgid?:number; |
|||
usercont?:string; |
|||
} |
|||
|
|||
export interface criteriaForPeopleList{ |
|||
id: number |
|||
userkey: string |
|||
number: string |
|||
name: string |
|||
icon: string |
|||
company: number |
|||
companyname: string |
|||
maindeparment: number |
|||
maindeparmentname: string |
|||
adminorg: number |
|||
adminorgname: string |
|||
} |
|||
export type archivesList = PageResult<criteriaForPeopleList[]> |
|||
|
|||
export interface msgAry { |
|||
msg:string[] |
|||
} |
|||
|
|||
export interface getContId{ |
|||
id: number; |
|||
idstr?: string; |
|||
} |
|||
//行政组织树及相关人员(新版) 结构体
|
|||
export interface orgAndPeople{ |
|||
id: string; |
|||
orgid: number; |
|||
number: string; |
|||
name: string; |
|||
superior: string; |
|||
icon: string; |
|||
icon_photo: string; |
|||
type: number; |
|||
key: string; |
|||
sort: number; |
|||
wechat: string; |
|||
departmentid: number; |
|||
departmentname: string; |
|||
postid: number; |
|||
postname: string; |
|||
tema: number; |
|||
temaname: string; |
|||
child:orgAndPeople[]; |
|||
} |
|||
export interface dimissionRateQuery{ |
|||
id?:number; |
|||
time?:string; |
|||
} |
|||
export interface sendOrgCont{ |
|||
current:number; |
|||
list:orgInfo[]; |
|||
tabval:any; |
|||
} |
|||
/** |
|||
* 学历结构 |
|||
*/ |
|||
export interface eduStruCont{ |
|||
education:string; |
|||
percentage:number; |
|||
} |
|||
/** |
|||
* 输出根据行政组织编号获取组织及人员 |
|||
*/ |
|||
export interface outputOrgAndUser{ |
|||
childDepartments:childDepartmentsCont[]; |
|||
employees:employeesCont[]; |
|||
titleDepartments:breadCrumbs[]; |
|||
} |
|||
|
|||
export interface childDepartmentsCont{ |
|||
id:string; //"103";
|
|||
departmentKey:string; //"GK0302";
|
|||
departmentName:string; //"IT";
|
|||
parentId:string; //"102";
|
|||
departmentNames:string; //"IT"
|
|||
isActiveItem:boolean; //
|
|||
} |
|||
export interface employeesCont{ |
|||
id:string //"95196156539179008";
|
|||
employeeName:string //"胡齐帅";
|
|||
isLeave:string //"0";
|
|||
open:boolean //"false";
|
|||
icon:string //"";
|
|||
iconToBase64:string //"";
|
|||
wechat:string //"";
|
|||
departmentid:number //102;
|
|||
departmentname:string //"企管部";
|
|||
postid:number //798;
|
|||
postname:string //"岗监员";
|
|||
tema:number //0;
|
|||
temaname:string //""
|
|||
ispick:boolean //
|
|||
} |
|||
/** |
|||
* 面包屑 |
|||
*/ |
|||
export interface breadCrumbs{ |
|||
departmentId:string // "309";
|
|||
id:string // "309";
|
|||
departmentKey:string // "GK00";
|
|||
departmentName:string // "山东恒信高科能源有限公司";
|
|||
parentId:string // "313";
|
|||
departmentNames:string // "山东恒信高科能源有限公司"
|
|||
} |
|||
export interface orgId{ |
|||
id?:number; |
|||
idstr?:string; |
|||
} |
|||
export interface targetCanShu extends pageId{ |
|||
attribute?:number; |
|||
} |
|||
export interface dlTargetTbHbfenxi{ |
|||
orgid:string; |
|||
targetid:string; |
|||
datetime:number[]; |
|||
} |
|||
export interface dlTargetTbHbfenxis{ |
|||
orgid:string; |
|||
targetid:string; |
|||
datetime:string; |
|||
} |
|||
export interface orgGardes{ |
|||
orgid:string; |
|||
years:string; |
|||
} |
|||
export interface attributePage extends pageTurning{ |
|||
type?:number |
|||
} |
|||
@ -0,0 +1,16 @@ |
|||
/** |
|||
@ 作者: 秦东 |
|||
@ 时间: 2024-10-26 13:43:35 |
|||
@ 功能: 登录用户信息 |
|||
@ 参数 |
|||
nickname 昵称 |
|||
avatar 头像 |
|||
roles 角色 |
|||
perms 权限按钮 |
|||
*/ |
|||
export interface UserInfo { |
|||
nickname: string; |
|||
avatar: string; |
|||
roles: string[]; |
|||
perms: string[]; |
|||
} |
|||
@ -0,0 +1,16 @@ |
|||
import request from '@/utils/axios/index' |
|||
import { AxiosPromise } from 'axios'; |
|||
import { UserInfo } from '@/api/hr/type' |
|||
|
|||
|
|||
/** |
|||
@ 作者: 秦东 |
|||
@ 时间: 2024-10-26 13:54:02 |
|||
@ 功能: 登录成功后获取用户信息(昵称、头像、权限集合和角色集合) |
|||
*/ |
|||
export function getUserInfoIng(): AxiosPromise<UserInfo> { |
|||
return request({ |
|||
url: '/systemapi/user/get_user_cont', |
|||
method: 'get' |
|||
}); |
|||
} |
|||
@ -0,0 +1,26 @@ |
|||
import request from '@/utils/axios/index' |
|||
|
|||
//获取人员信息
|
|||
export function getPeopleKey(data?: any) { |
|||
return request({ |
|||
url: '/hrapi/staff/getPeopleKey', |
|||
method: 'post', |
|||
data: data |
|||
}) |
|||
} |
|||
//获取人员信息
|
|||
export function getUserCont(data?: any) { |
|||
return request({ |
|||
url: '/systemapi/user/get_user_cont', |
|||
method: 'get', |
|||
data: data |
|||
}) |
|||
} |
|||
//获取人员信息
|
|||
export function getUserDISCTest(data?: any) { |
|||
return request({ |
|||
url: '/systemapi/rongxin/getUserDISCTest', |
|||
method: 'post', |
|||
data: data |
|||
}) |
|||
} |
|||
@ -0,0 +1,33 @@ |
|||
import request from '@/utils/axios/index' |
|||
import { loginStruct } from '@/api/login/type' |
|||
import { returnFormat } from '@/api/common/type' |
|||
import { AxiosPromise } from 'axios'; |
|||
|
|||
|
|||
/** |
|||
@ 作者: 秦东 |
|||
@ 时间: 2024-10-24 15:26:49 |
|||
@ 功能: 登录系统 |
|||
*/ |
|||
function loginApi(data: loginStruct):AxiosPromise<returnFormat>{ |
|||
return request({ |
|||
url: 'kpiapi/base/login', |
|||
method: 'post', |
|||
data: data |
|||
}) |
|||
} |
|||
/** |
|||
@ 作者: 秦东 |
|||
@ 时间: 2024-10-24 15:41:29 |
|||
@ 功能: 获取验证码 |
|||
*/ |
|||
function getVerifyCode():AxiosPromise<returnFormat>{ |
|||
return request({ |
|||
url: 'kpiapi/base/captcha', |
|||
method: 'post', |
|||
}) |
|||
} |
|||
export { |
|||
loginApi, |
|||
getVerifyCode |
|||
} |
|||
@ -0,0 +1,14 @@ |
|||
//登录结构体
|
|||
export interface loginStruct { |
|||
username: string; |
|||
password: string; |
|||
captcha?: string; |
|||
captchaId?:string; |
|||
verifyCodeKey?:string; |
|||
time?: string; |
|||
} |
|||
//验证码结构体
|
|||
export interface VerificationCode { |
|||
captchaid: string; |
|||
picPath: string; |
|||
} |
|||
@ -0,0 +1,20 @@ |
|||
export default { |
|||
designSave: 'design/save', // 保存设计的表单
|
|||
designEdit: 'design/edit', // 保存设计的表单
|
|||
designList: 'design/list', // 获取所有已设计的表单
|
|||
designChange: 'design/change', // 改变设计表单部分设置内容
|
|||
designDelete: 'design/delete', // 根据id删除已设计
|
|||
designById: 'design/id', // 根据id获取已设计的表单
|
|||
sourceList: 'dataSource/list', // 获取数据源列表
|
|||
sourceDelete: 'dataSource/delete', |
|||
sourceCreat: 'dataSource/creat', // 创建数据源
|
|||
sourceEdit: 'dataSource/edit', // 编辑数据源
|
|||
sourceById: 'dataSource/id', // 根据id获取数据源
|
|||
saveFormContent: 'content/save', // 往已设计好的表单里添加内容
|
|||
editFormContent: 'content/edit', // 往已设计好的表单里添加内容
|
|||
getContentList: 'content/list', // 获取表单内容列表
|
|||
delFormContent: 'content/delete', // 删除表单内容
|
|||
getFormContent: 'content/id', // 获取表单内容
|
|||
upload: 'upload/single' // 默认el-upload上传url,也可单独在设计时填写上传地址
|
|||
} |
|||
|
|||
@ -0,0 +1,7 @@ |
|||
export const inputUnit = ["input","varchar"] |
|||
export const timeUnit = ["time"] |
|||
export const orgUnit = ["org"] |
|||
export const choiceUnit = ["radio"] |
|||
export const switchUnit = ["switch"] |
|||
export const checkboxUnit = ["checkbox"] |
|||
export const uploadUrl = import.meta.env.VITE_APP_BASE_API+"/api/upordown" |
|||
@ -0,0 +1,56 @@ |
|||
import request from '@/utils/axios/index' |
|||
import { pageId } from '@/api/common/type' |
|||
// import { AxiosPromise } from 'axios';
|
|||
|
|||
|
|||
|
|||
//获取app页面综合信息
|
|||
export function gainAppPageInfo(data: pageId) { |
|||
return request({ |
|||
url: '/systemapi/app/gainAppPageInfo', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
//检测是否存在提交和返回按钮
|
|||
export function judgeSubmitCancel(data: any){ |
|||
return request({ |
|||
url: '/systemapi/customer_form/judge_submit_cancel', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
|
|||
//获取表单列表数据
|
|||
export function gainFormPageListCont(data: any) { |
|||
return request({ |
|||
url: '/systemapi/customer_form/gainFormPageListCont', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
|
|||
//多视图数据处理
|
|||
export function multiViewPage(data: any) { |
|||
return request({ |
|||
url: '/systemapi/customer_form/multiViewPage', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
|
|||
export function gainCalendarList(data?: any) { |
|||
return request({ |
|||
url: "/systemapi/customer_form/gainCalendarList", |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
//获取要修改的数据
|
|||
export function gainNumber(data?:any){ |
|||
return request({ |
|||
url: '/systemapi/public/gainNumber', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
@ -0,0 +1,174 @@ |
|||
//表单基本结构
|
|||
export interface FormList { |
|||
list?: any |
|||
name: string |
|||
type: string |
|||
control: any // 当前type表单控件所有props
|
|||
item?: FormItem|any // formItem组件所有props
|
|||
config: any // 其他配置信息
|
|||
customRules?: any // 自定义检验规则;这个规则会合并进item.rules
|
|||
columns?: any // 布局字段
|
|||
tableData?: any // 子表时
|
|||
options?: any[] // radio;checkbox;select选项
|
|||
styles:{ |
|||
divStyle:{}, |
|||
labelStyle:{}, |
|||
inputStyle:{} |
|||
} |
|||
} |
|||
|
|||
//表单组件基本结构
|
|||
export interface FormItem { |
|||
label?: string; |
|||
labelWidth?: string; |
|||
required?: boolean; |
|||
rules?: any; |
|||
error?: string; |
|||
showMessage?: boolean; |
|||
inlineMessage?: boolean; |
|||
size?: string; |
|||
showLabel?: boolean; |
|||
} |
|||
//选择类组件,选择值列表
|
|||
export interface Options { |
|||
label: string |
|||
value: string |
|||
disabled?: boolean |
|||
} |
|||
//表单列表
|
|||
export interface tableFormStruct { |
|||
tableData: { |
|||
// tableProps: {}, //表格所有参数
|
|||
columns: any[]; |
|||
config: Object; |
|||
controlBtn:any[]; |
|||
operateBtn:any[] |
|||
}, |
|||
searchData: any[]; |
|||
loading: boolean; |
|||
attrObj: Object; |
|||
config: { |
|||
pageSize:number, |
|||
searchIsShow:boolean, |
|||
searchFormIsShow:boolean, |
|||
openPageMode:string |
|||
}, |
|||
tagList: Object, |
|||
formId: string; |
|||
formList: any[], // 所有可选表单数据源
|
|||
name: string, |
|||
treeData: Object, // 左侧树相关
|
|||
previewVisible: boolean, |
|||
tabsName: string, |
|||
formFieldList: any[], // 表单数据源所有可选字段
|
|||
formApi:{ |
|||
type:string, |
|||
addApiUrl:string, |
|||
editApiUrl:string, |
|||
delApiUrl:string, |
|||
lookApiUrl:string |
|||
}, |
|||
dict: Object, |
|||
refreshTable: boolean, |
|||
view:{ |
|||
list:{ |
|||
status:boolean, |
|||
isClick:boolean, |
|||
form:{ |
|||
sortWord:string, |
|||
sortClass:1, |
|||
title:any[] |
|||
} |
|||
}, |
|||
date:{ |
|||
status:boolean, |
|||
isClick:boolean, |
|||
form:{ |
|||
startTime:string, |
|||
endTime:string, |
|||
dayType:number, |
|||
title:any[] |
|||
} |
|||
} |
|||
, |
|||
time:{ |
|||
status:boolean, |
|||
isClick:boolean, |
|||
form:{ |
|||
sortWord:string, |
|||
sort:number, |
|||
title:any[] |
|||
} |
|||
} |
|||
, |
|||
gantt:{ |
|||
status:boolean, |
|||
isClick:boolean, |
|||
form:{ |
|||
startTime:string, |
|||
endTime:string, |
|||
dayType:number, |
|||
sortWord:string; |
|||
sort:number; |
|||
title:any[] |
|||
} |
|||
} |
|||
, |
|||
map:{ |
|||
status:boolean; |
|||
isClick:boolean; |
|||
form:{ |
|||
mapWord:string; |
|||
sortWord:string; |
|||
sort:number; |
|||
title:any[] |
|||
} |
|||
}, |
|||
card:{ |
|||
status:boolean; |
|||
isClick:boolean; |
|||
form:{ |
|||
sort:number; |
|||
sortWord:string; |
|||
imgWork:string; |
|||
imgWidth:number; |
|||
imgHeight:number; |
|||
imgBorderRadius:number; |
|||
imgPadding:number; |
|||
titleWork:string; |
|||
describe:string; |
|||
ranks:number; |
|||
title:any[] |
|||
} |
|||
} |
|||
} |
|||
|
|||
} |
|||
|
|||
//渲染表单类型
|
|||
export interface FormData { |
|||
list: FormList[] |
|||
form: any // form所有props
|
|||
config: { |
|||
style?: string // 表单css样式,相当于scope
|
|||
hideField?: string[] // 使用v-if隐藏的字段,用于交互
|
|||
requestUrl?: string // 表单数据请求url
|
|||
addUrl?: string // 提交表单
|
|||
editUrl?: string // 编辑保存
|
|||
addLoad?: boolean |
|||
expand?: boolean // 用于设置筛选条件默认展开/收起状态
|
|||
|
|||
} |
|||
events?: { |
|||
beforeRequest?: Function |
|||
afterResponse?: Function | string |
|||
beforeSubmit?: Function |
|||
afterSubmit?: Function |
|||
change?: Function |
|||
} |
|||
styles:{ |
|||
divStyle:{}, |
|||
labelStyle:{}, |
|||
inputStyle:{} |
|||
} |
|||
} |
|||
@ -0,0 +1,96 @@ |
|||
// 快速添加 内置校验规则
|
|||
interface ValidateTypes { |
|||
type: string |
|||
label: string |
|||
regExp: RegExp |
|||
message: string |
|||
} |
|||
const validateConfig: ValidateTypes[] = [ |
|||
{ |
|||
type: 'required', |
|||
label: '必填', |
|||
regExp: /^\s*$/, |
|||
message: '必填项' |
|||
}, |
|||
{ |
|||
type: 'mobile', |
|||
label: '手机号码', |
|||
regExp: /^0{0,1}(13[0-9]|15[7-9]|153|156|18[7-9])[0-9]{8}$/, |
|||
message: '请输入手机号码' |
|||
}, |
|||
{ |
|||
type: 'tel', |
|||
label: '固话', |
|||
regExp: /^0\d{2,3}-\d{7,8}$/, |
|||
message: '请输入固定电话号码' |
|||
}, |
|||
{ |
|||
type: 'phone', |
|||
label: '固话或手机', |
|||
regExp: /^((0\d{2,3}(-?)\d{7,8})|(1[3456789]\d{9}))$/, |
|||
message: '请输入固定电话号码或手机号' |
|||
}, |
|||
{ |
|||
type: 'email', |
|||
label: '邮箱', |
|||
regExp: /^[a-z0-9A-Z._%-]+@([a-z0-9A-Z-]+\.)+[a-zA-Z]{2,4}$/, |
|||
message: '请输入邮箱地址' |
|||
}, |
|||
{ |
|||
type: 'int', |
|||
label: '正整数', |
|||
regExp: /^[0-9]*[1-9][0-9]*$/, |
|||
message: '请输入正整数' |
|||
}, |
|||
{ |
|||
type: 'number', |
|||
label: '数字', |
|||
regExp: /^\d+(\.\d+)?$/, |
|||
message: '请输入数字' |
|||
}, |
|||
{ |
|||
type: 'money', |
|||
label: '金额', |
|||
regExp: /^[0-9]+\.?[0-9]{0,2}$/, |
|||
message: '请输入正确的金额,最多两位小数' |
|||
}, |
|||
{ |
|||
type: 'card', |
|||
label: '身份证', |
|||
regExp: |
|||
/(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/, |
|||
message: '请输入身份证号' |
|||
}, |
|||
{ |
|||
type: 'cn', |
|||
label: '中文', |
|||
regExp: /[\u4e00-\u9fa5]+/, |
|||
message: '请输入中文' |
|||
}, |
|||
{ |
|||
type: 'numberLetter', |
|||
label: '数字字母', |
|||
regExp: /[0-9a-zA-Z]$/, |
|||
message: '请输入数字或字母' |
|||
}, |
|||
{ |
|||
type: 'url', |
|||
label: '网址', |
|||
regExp: /^https?:\/\/((.)+(\.)?)*(:\d+)?(\/((\.)?(\?)?=?&?.(\?)?)*)*$/, |
|||
message: '请输入网址' |
|||
}, |
|||
{ |
|||
type: 'longitude', |
|||
label: '经度', |
|||
regExp: /^[-+]?(0?\d{1,2}\.\d{1,10}|1[0-7]?\d\.\d{1,10}|180\.0{1,10})$/, |
|||
message: '请输入正确的经度' |
|||
}, |
|||
{ |
|||
type: 'latitude', |
|||
label: '纬度', |
|||
regExp: /^[-+]?([0-8]?\d{1}\.\d{1,10}|90\.0{1,10})$/, |
|||
message: '请输入正确的纬度' |
|||
} |
|||
] |
|||
export default validateConfig |
|||
|
|||
@ -0,0 +1,121 @@ |
|||
import request from '@/utils/axios/index' |
|||
import { pageId } from '@/api/common/type' |
|||
import { AxiosPromise } from 'axios'; |
|||
import { |
|||
appGroupPage, |
|||
appGroupPageCont, |
|||
appTablePage, |
|||
appTablePageCont, |
|||
appBasicInformation, |
|||
jwtPower, |
|||
appTableFormPage, |
|||
appTableInfoPage, |
|||
AppTaskInfo, |
|||
sendAppTaskCount, |
|||
gainAppTask |
|||
} from '@/api/lowCode/type' |
|||
/** |
|||
@ 作者: 秦东 |
|||
@ 时间: 2024-10-26 15:56:59 |
|||
@ 功能: 获取自定义表单与App分组 |
|||
*/ |
|||
export function customerFormGroupList(data: appGroupPage):AxiosPromise<appGroupPageCont>{ |
|||
return request({ |
|||
url: 'systemapi/customer_form/customerFormGroupList', |
|||
method: 'post', |
|||
data: data |
|||
}) |
|||
} |
|||
/** |
|||
@ 作者: 秦东 |
|||
@ 时间: 2024-10-26 16:24:45 |
|||
@ 功能: 获取分组应用 |
|||
*/ |
|||
export function customerFormList(data: appTablePage):AxiosPromise<appTablePageCont>{ |
|||
return request({ |
|||
url: 'systemapi/customer_form/customer_form_list', |
|||
method: 'post', |
|||
data: data |
|||
}) |
|||
} |
|||
/** |
|||
@ 作者: 秦东 |
|||
@ 时间: 2024-10-26 16:24:45 |
|||
@ 功能: 获取应用基本信息 |
|||
*/ |
|||
export function gainAppEditPsge(data: pageId):AxiosPromise<appBasicInformation>{ |
|||
return request({ |
|||
url: 'systemapi/app/gainAppEditPsge', |
|||
method: 'post', |
|||
data: data |
|||
}) |
|||
} |
|||
|
|||
//鉴定当权人员是否有权限使用
|
|||
export function appJwtPower(data: jwtPower):AxiosPromise { |
|||
return request({ |
|||
url: '/systemapi/app/appJwtPower', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
//获取此应用的所有表单
|
|||
export function getAllAppTableForm(data: appTableFormPage):AxiosPromise<appTableInfoPage> { |
|||
return request({ |
|||
url: '/systemapi/app/getAllAppTableForm', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
//获取此应用的所有表单
|
|||
export function calculateQuantityOption(data: AppTaskInfo):AxiosPromise<sendAppTaskCount> { |
|||
return request({ |
|||
url: '/systemapi/app/calculateQuantityOption', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
|
|||
//获取App任务
|
|||
export function gainAppAllTaskList(data: gainAppTask) { |
|||
return request({ |
|||
url: '/systemapi/task_flow/gainAppAllTaskList', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
|
|||
//获取App首页任务
|
|||
export function getAppList(data: pageId) { |
|||
return request({ |
|||
url: '/systemapi/app/getAppList', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
|
|||
export function getGroupAndApp() { |
|||
return request({ |
|||
url: '/systemapi/app/getGroupAndApp', |
|||
method: 'post', |
|||
// data: data
|
|||
}); |
|||
} |
|||
|
|||
//获取表单地图翻页数据
|
|||
export function gainFormPageMapCont(data: any) { |
|||
return request({ |
|||
url: '/systemapi/customer_form/gainFormPageMapCont', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
|
|||
|
|||
export function getAppTaskList(data: gainAppTask) { |
|||
return request({ |
|||
url: '/systemapi/task_flow/gainAppTaskList', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
@ -0,0 +1,294 @@ |
|||
import request from '@/utils/axios/index' |
|||
import { AxiosPromise } from 'axios'; |
|||
import { |
|||
TaskLogQuery, |
|||
taskLogPageResult, |
|||
gainTaskListQuery, |
|||
gainTaskListPageResult, |
|||
customerFormLogo, |
|||
customerFormVersionCont, |
|||
nodeFlow, |
|||
taskflowquery, |
|||
editFlowFormStatus |
|||
} from '@/api/lowCode/taskapi/types' |
|||
import { pageId } from '@/api/common/type' |
|||
|
|||
/** |
|||
* 非流程表单提交数据记录 |
|||
* |
|||
* @param TaskLogQuery |
|||
*/ |
|||
export function currencyFormApiSubmit(url:any,data:any){ |
|||
return request({ |
|||
url: url, |
|||
method: 'post', |
|||
data:data |
|||
}); |
|||
} |
|||
|
|||
/** |
|||
* 非流程表单提交数据记录 |
|||
* |
|||
* @param TaskLogQuery |
|||
*/ |
|||
export function appFormdataLog(data: TaskLogQuery): AxiosPromise<taskLogPageResult> { |
|||
return request({ |
|||
url: '/systemapi/task_management/app_formdata_log', |
|||
method: 'post', |
|||
data:data |
|||
}); |
|||
} |
|||
/** |
|||
* 获取可执行得任务列表 |
|||
* |
|||
* @param gainTaskListQuery |
|||
*/ |
|||
export function gainTaskList(data: gainTaskListQuery): AxiosPromise<gainTaskListPageResult> { |
|||
return request({ |
|||
url: '/systemapi/task_management/gain_task_list', |
|||
method: 'post', |
|||
data:data |
|||
}); |
|||
} |
|||
|
|||
//获取自定义表单版本列表
|
|||
export function haveCustomerFormVersion(data: customerFormLogo):AxiosPromise<customerFormVersionCont> { |
|||
return request({ |
|||
url: '/systemapi/task_management/gain_task_versioncont', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
//获取自定义表单版本列表
|
|||
export function delCustomerFormData(data: customerFormLogo) { |
|||
return request({ |
|||
url: '/systemapi/task_management/del_customer_formdata', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
|
|||
//获取工作流步进节点
|
|||
export function generateFlow(data: nodeFlow):any{ |
|||
return request({ |
|||
url: '/systemapi/task_flow/generateFlow', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
|
|||
|
|||
//获取任务表单内容
|
|||
export function gainTaskFormInfo(data: customerFormLogo):AxiosPromise<customerFormVersionCont> { |
|||
return request({ |
|||
url: '/systemapi/task_management/gainTaskFormInfo', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
|
|||
//获取工作流步进节点
|
|||
export function softDeletion(data: any):any{ |
|||
return request({ |
|||
url: '/systemapi/task_management/softDeletion', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
//获取修改记录
|
|||
export function gainEditDataLog(data: any):any{ |
|||
return request({ |
|||
// url: '/systemapi/task_management/gainEditDataLog',
|
|||
url: '/systemapi/task_management/gainEditDataNewLog', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
|
|||
//添加任务是回显表单数据,若有流程回显流程
|
|||
export function echoTableFormPage(data: any):any{ |
|||
return request({ |
|||
url: '/systemapi/task_management/echoTableFormPage', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
//根据表单数据实时更新流程
|
|||
export function realTimeUpdateFlow(data: any):any{ |
|||
return request({ |
|||
url: '/systemapi/task_management/realTimeUpdateFlow', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
//根据表单数据实时更新流程
|
|||
export function draftsInitiateApproval(data?:any){ |
|||
return request({ |
|||
url: '/systemapi/task_management/draftsInitiateApproval', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
//根据表单数据实时更新流程
|
|||
export function retractRunWorkFlow(data?:any){ |
|||
return request({ |
|||
url: '/systemapi/task_management/retractRunWorkFlow', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
//重新发起流程
|
|||
export function afreshRunWorkflow(data?:any){ |
|||
return request({ |
|||
url: '/systemapi/task_management/afreshRunWorkflow', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
//提交审批结果
|
|||
export function authorizeWorkflow(data?:any){ |
|||
return request({ |
|||
url: '/systemapi/task_management/authorizeWorkflow', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
|
|||
export function runTaskFlow(data?:any){ |
|||
return request({ |
|||
url: '/systemapi/task_management/runTaskFlow', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
//获取流程可见范围
|
|||
export function gainFlowLookSee(data?:any){ |
|||
return request({ |
|||
url: '/systemapi/task_flow/gainFlowLookSee', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
//编辑可见范围
|
|||
export function editLookPowerView(data?:any){ |
|||
return request({ |
|||
url: '/systemapi/task_flow/editLookPowerView', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
|
|||
//编辑消息提醒
|
|||
export function setUpMsg(data?:any){ |
|||
return request({ |
|||
url: '/systemapi/task_flow/setUpMsg', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
//获取消息设置
|
|||
export function gainSetUpMsg(data?:any){ |
|||
return request({ |
|||
url: '/systemapi/task_flow/gainSetUpMsg', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
|
|||
|
|||
//自定义App表单新增记录
|
|||
export function createAppTask(data?:any){ |
|||
return request({ |
|||
url: '/systemapi/task_management/createAppTask', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
|
|||
/** |
|||
@ 作者: 秦东 |
|||
@ 时间: 2024-11-19 09:42:34 |
|||
@ 功能: 工作流相关 |
|||
*/ |
|||
//发起工作流
|
|||
export function startRunFlow(data?:any){ |
|||
return request({ |
|||
url: '/systemapi/task_management/startRunWorkFlow', |
|||
// url: '/systemapi/task_flow/startRunFlow',
|
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
//流程任务
|
|||
export function taskFlowList(data?:taskflowquery){ |
|||
return request({ |
|||
url: '/systemapi/task_flow/taskFlowList', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
//获取正在执行得任务流程
|
|||
export function gainRunTaskFlow(data?:customerFormLogo){ |
|||
return request({ |
|||
// url: '/systemapi/task_flow/gainRunTaskFlow',
|
|||
url: '/systemapi/task_management/gainRunTaskWorkflow', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
//提交审批结果
|
|||
export function submitApprovalResults(data?:customerFormLogo){ |
|||
return request({ |
|||
url: '/systemapi/task_flow/submitApprovalResults', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
//改变工作流任务状态
|
|||
export function delRunFlow(data?:editFlowFormStatus){ |
|||
return request({ |
|||
url: '/systemapi/task_flow/delRunFlow', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
//重新发起流程
|
|||
export function afreshRunFlow(data?:pageId){ |
|||
return request({ |
|||
url: '/systemapi/task_flow/afreshRunFlow', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
//已有表单数据,只发布流程
|
|||
export function onlyPublishFlow(data?:any){ |
|||
return request({ |
|||
url: '/systemapi/task_flow/onlyPublishFlow', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
//撤回申请
|
|||
export function retractRunFlow(data?:pageId){ |
|||
return request({ |
|||
url: '/systemapi/task_flow/retractRunFlow', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
//获取执行流程
|
|||
export function gainRunFlowStart(data: any) { |
|||
return request({ |
|||
url: '/systemapi/task_management/gainRunFlowStart', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
//再次保存草稿箱内容
|
|||
export function saveDraftAgain(data: any) { |
|||
return request({ |
|||
url: '/systemapi/task_flow/saveDraftAgain', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
@ -0,0 +1,124 @@ |
|||
import { PageResult,pageTurning } from '@/api/common/type' |
|||
|
|||
//任务记录
|
|||
export interface TaskLogQuery extends pageTurning { |
|||
keywords?: string; |
|||
} |
|||
//任务记录列表
|
|||
export interface taskLonCont{ |
|||
id:number; |
|||
title:string; |
|||
creater:number; |
|||
creater_time:number; |
|||
edit_time:number; |
|||
types:number; |
|||
version_id:number; |
|||
status:number; |
|||
masters_key:string; |
|||
} |
|||
|
|||
/** |
|||
* 任务记录列表分页 |
|||
*/ |
|||
export type taskLogPageResult = PageResult<taskLonCont[]>; |
|||
|
|||
//获取可执行得任务列表
|
|||
export interface gainTaskListQuery extends pageTurning { |
|||
status?: number; |
|||
type?: number; |
|||
} |
|||
//执行得任务记录列表
|
|||
export interface taskListCont{ |
|||
id:string; |
|||
name:string; |
|||
createrName:string; |
|||
createrNumber:string; |
|||
createrTame:string; |
|||
} |
|||
/** |
|||
* 获取可执行得任务列表分页 |
|||
*/ |
|||
export type gainTaskListPageResult = PageResult<taskListCont[]>; |
|||
|
|||
//自定义表单标识符
|
|||
export interface customerFormLogo{ |
|||
id:string; |
|||
} |
|||
//自定义表单版本内容
|
|||
export interface customerFormVersionCont{ |
|||
id:number; |
|||
tablekey:string; |
|||
version:number; |
|||
status:number; |
|||
mastesform:string; |
|||
mastesformjson:string; |
|||
creater:number; |
|||
time:number; |
|||
editTime:number; |
|||
table_structure:string; |
|||
dict:string; |
|||
classify:number; |
|||
flowkeystr:string; |
|||
} |
|||
//获取工作流步进节点
|
|||
export interface nodeFlow extends customerFormLogo{ |
|||
conditionList?:conditionInfo[]; |
|||
nodelPeople?:nodelPeoples[] |
|||
} |
|||
export interface nodelPeoples { |
|||
factorid?:string; |
|||
userList?:string |
|||
} |
|||
export interface conditionInfo{ |
|||
factorid?:string; |
|||
type?:number; |
|||
isCheckbox?:boolean; |
|||
answers?:string[]; |
|||
oneanswer?:string; |
|||
customFields?:customFieldsInfo[]; |
|||
nodeUserList?:nodeUserInfo[]; |
|||
} |
|||
//自定义条件
|
|||
export interface customFieldsInfo{ |
|||
wordfield:string; |
|||
optType:string; |
|||
leftval:string; |
|||
leftoptType?:string; |
|||
rightoptType?:string; |
|||
rightval?:string; |
|||
} |
|||
//节点条件人员
|
|||
export interface nodeUserInfo{ |
|||
type:number; |
|||
targetId:string; |
|||
name?:string; |
|||
icon?:string; |
|||
iconToBase64?:string; |
|||
} |
|||
|
|||
//提醒设置表单
|
|||
export interface tipMsgInfo{ |
|||
types:number; //1:流程提醒;2:表单提醒
|
|||
tipClass:number; //1:只提醒一次;2:周期性提醒
|
|||
specifyTime?:number; //指定时间
|
|||
repetitionPeriod?:number; //重复周期
|
|||
tipMsg?:string; //提示语句
|
|||
} |
|||
//执行周期
|
|||
export interface runWeekInfo { |
|||
week:number; |
|||
day:number; |
|||
hour:number; |
|||
minute:number; |
|||
} |
|||
//流程任务
|
|||
export interface taskflowquery extends pageTurning{ |
|||
title?: string; //任务标题
|
|||
class?:number; //类型:1、我的请求;2、待办事宜;3、已办事宜;4:草稿箱
|
|||
state?:number; //状态:状态:1、草稿;2:驳回;3:审批中;4:归档;5:删除
|
|||
} |
|||
//编辑表单状态
|
|||
export interface editFlowFormStatus{ |
|||
id:string; |
|||
status:number; |
|||
} |
|||
@ -0,0 +1,146 @@ |
|||
import { pageTurning } from '@/api/common/type' |
|||
|
|||
//获取获取自定义表单与App分组参数
|
|||
export interface appGroupPage extends pageTurning{ |
|||
state?: number; |
|||
} |
|||
//返回自定义表单与App分组参数
|
|||
export interface appGroupPageCont { |
|||
icon?: string; |
|||
id?: number; |
|||
idStr?: string; |
|||
isTrue?: boolean; |
|||
ordid?: number; |
|||
sort?: number; |
|||
state?: number; |
|||
superior?: number; |
|||
time?: number; |
|||
title?: string; |
|||
versionId?: string; |
|||
} |
|||
//获取获取自定义表单与App分组应用参数
|
|||
export interface appTablePage extends pageTurning{ |
|||
groupId?: string; |
|||
keywords?: string; |
|||
} |
|||
//获取获取自定义表单与App应用列表参数
|
|||
export interface appTablePageCont { |
|||
appManager?: string; |
|||
appOrgMan?: string; |
|||
appRoleManager?: string; |
|||
classify?: number; |
|||
createrTime?: number; |
|||
creatername?: string; |
|||
creatertimeStr?: string; |
|||
describe?: string; |
|||
editTime?: number; |
|||
flowIsOpen?: number; |
|||
flowkey?: number; |
|||
flowkeyStr?: string; |
|||
groupid?: number; |
|||
icon?: string; |
|||
id?: number; |
|||
idStr?: string; |
|||
isOpen: true |
|||
isoften: false |
|||
listjson?: string; |
|||
name?: string; |
|||
orgpermit?: string; |
|||
permit?: string; |
|||
permitstr?: string; |
|||
postpermit?: string; |
|||
signCode?: number; |
|||
signCodeStr?: string; |
|||
states?: number; |
|||
tablename?: string; |
|||
userpermit?: number; |
|||
versionId?: string; |
|||
} |
|||
//获取应用基本信息
|
|||
export interface appBasicInformation{ |
|||
appKey?: string; |
|||
appName?: string; |
|||
appSvg?: string; |
|||
describe?: string; |
|||
state?: number; |
|||
uuid?: string; |
|||
menuTree?:menuTree[] |
|||
} |
|||
|
|||
//菜单结构
|
|||
export interface menuTree{ |
|||
appkey?: string; |
|||
children?: null |
|||
id?: string; |
|||
isLock?: number; |
|||
isMain?: number; |
|||
label?: string; |
|||
parent?: string; |
|||
pcIsShow?: number; |
|||
sortv?: number; |
|||
state?: number; |
|||
svg?: string; |
|||
type?: number; |
|||
wapIsShow?: number; |
|||
} |
|||
//鉴定是否有权限使用
|
|||
export interface jwtPower{ |
|||
id?:string; |
|||
types?:number; |
|||
} |
|||
//获取获取此应用的所有表单参数
|
|||
export interface appTableFormPage extends pageTurning{ |
|||
id?: string; |
|||
type?: number; |
|||
} |
|||
//获取获取此应用的所有表单返回值参数
|
|||
export interface appTableInfoPage{ |
|||
id?: number; |
|||
label?: string; |
|||
type?: number; |
|||
svg?: string; |
|||
pcIsShow?: number; |
|||
wapIsShow?: number; |
|||
parent?: number; |
|||
appkey?: number; |
|||
creater_time?: number; |
|||
edit_time?: number; |
|||
creater?: number; |
|||
isLock?: number; |
|||
sort?: number; |
|||
state?: number; |
|||
isMain?: number; |
|||
founder?: string; |
|||
createDate?: string; |
|||
versionId?: string; |
|||
icon?: string; |
|||
tableId?: string; |
|||
} |
|||
|
|||
//获取相应任务内容的统计数据
|
|||
export interface AppTaskInfo { |
|||
id?: string; |
|||
type?: number; |
|||
} |
|||
|
|||
//输出相关统计内容
|
|||
export interface sendAppTaskCount { |
|||
lable?:string; |
|||
icon?:string; |
|||
count?:number; |
|||
sort?:number; |
|||
} |
|||
//获取App任务
|
|||
export interface gainAppTask extends pageTurning{ |
|||
id?: string; |
|||
class?: number; |
|||
} |
|||
|
|||
//低代码轮播图单个属性对象
|
|||
export interface CarsuselConfig { |
|||
uploadFlag:boolean, |
|||
imgId:string, |
|||
imgSort:number, |
|||
imgUrl:string, |
|||
link:string |
|||
} |
|||
@ -0,0 +1,106 @@ |
|||
import { EDITTYPE } from '@/utils/lowCode/form' |
|||
export const aceEdit = (data: any, id?: string, type?: string | undefined) => { |
|||
id = id || 'editJson' |
|||
type = type || EDITTYPE |
|||
// @ts-ignore
|
|||
const editor = ace.edit(id) |
|||
editor.setOptions({ |
|||
enableBasicAutocompletion: true, |
|||
enableSnippets: true, |
|||
enableLiveAutocompletion: true |
|||
}) |
|||
editor.setFontSize(14) |
|||
editor.setShowPrintMargin(false) |
|||
editor.session.setMode('ace/mode/' + type) |
|||
editor.setTheme('ace/theme/tomorrow_night') |
|||
editor.setValue(data) |
|||
return editor |
|||
} |
|||
// 将字符类数字转为数值类
|
|||
export const formatNumber = (val: any) => { |
|||
// 将字符类数字转为数值类
|
|||
if (typeof val === 'string' && /^\d+(\.\d+)?$/.test(val.toString())) { |
|||
// 为数字
|
|||
return Number(val) |
|||
} else { |
|||
return val |
|||
} |
|||
} |
|||
// 转所有值转为字符串类型
|
|||
export const formatToString = (val: any) => { |
|||
if (val !== undefined) { |
|||
return val.toString() |
|||
} else { |
|||
return val |
|||
} |
|||
} |
|||
// 将{key:value}转[{label:'key',value:'value'}]
|
|||
export const objectToArray = (obj: any) => { |
|||
if (Object.prototype.toString.call(obj) === '[object Object]') { |
|||
const temp: any = [] |
|||
for (const key in obj) { |
|||
temp.push({ |
|||
label: obj[key], |
|||
value: key |
|||
}) |
|||
} |
|||
return temp |
|||
} |
|||
return obj |
|||
} |
|||
/**** |
|||
* 动态插入移除css |
|||
* @param id 标签id |
|||
* @param cssContent 要插入的css内容 |
|||
* @param append true插入false移除 |
|||
*/ |
|||
export const appendOrRemoveStyle = ( |
|||
id: string, |
|||
cssContent: string, |
|||
append?: boolean |
|||
) => { |
|||
const styleId: any = document.getElementById(id) |
|||
if (styleId && append) { |
|||
// 存在时直接修改,不用多次插入
|
|||
styleId.innerText = cssContent |
|||
return |
|||
} |
|||
if (cssContent && append) { |
|||
const styleEl = document.createElement('style') |
|||
styleEl.id = id |
|||
styleEl.type = 'text/css' |
|||
styleEl.appendChild(document.createTextNode(cssContent)) |
|||
document.head.appendChild(styleEl) |
|||
} |
|||
if (!append || !cssContent) { |
|||
// 移除
|
|||
styleId && styleId.parentNode.removeChild(styleId) |
|||
} |
|||
} |
|||
// 定义两个空方法,用于在编辑事件时作为默认值
|
|||
export const beforeRequest = |
|||
'opt=(data, route) => {\n' + |
|||
' // data经过处理后返回\n' + |
|||
" console.log('beforeRequest',data)\n" + |
|||
' return data\n' + |
|||
'}' |
|||
export const afterResponse = |
|||
'opt=(res) => {\n' + |
|||
' // res返回数据\n' + |
|||
" console.log('afterResponse',res)\n" + |
|||
' return res\n' + |
|||
'}' |
|||
|
|||
export const onChange = |
|||
'opt=(key,model) => {\n' + |
|||
' // name当前改变组件的值,model表单的值\n' + |
|||
" console.log('onChange',key)\n" + |
|||
' return model\n' + |
|||
'}' |
|||
// provide 方法定义的key
|
|||
const prefix = 'GK' |
|||
export const constControlChange = prefix + 'ControlChange' // 表单组件改变事件
|
|||
export const constSetFormOptions = prefix + 'SetFormOptions' // 使用setOptions设置下拉值
|
|||
export const constGetControlByName = prefix + 'GetControlByName' // 根据name从formData.list查找数据
|
|||
export const constFormBtnEvent = prefix + 'FormBtnEvent' // 按钮组件事件
|
|||
export const constFormProps = prefix + 'FormProps' // 按钮组件事件
|
|||
@ -0,0 +1,48 @@ |
|||
import request from '@/utils/axios/index' |
|||
import { AxiosPromise } from 'axios'; |
|||
import { pageNumber,pageId } from '@/api/common/type' |
|||
import { carouselImg,newHomeType,hostNews } from '@/api/news/type' |
|||
|
|||
|
|||
//获取文章缩略图
|
|||
export function gainAppAllTaskList(data: pageNumber):AxiosPromise<carouselImg> { |
|||
return request({ |
|||
url: '/systemapi/news/homeCarouselImage', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
|
|||
//按分类获取新闻信息
|
|||
export function getHomenNews(data: newHomeType){ |
|||
return request({ |
|||
url: '/systemapi/news/getHomenNews', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
//按分类获取新闻信息
|
|||
export function getNewType(data: pageId){ |
|||
return request({ |
|||
url: '/systemapi/news/getNewType', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
//获取新闻类型分类
|
|||
export function hotNews(data: hostNews){ |
|||
return request({ |
|||
url: '/systemapi/news/hot_news', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
|
|||
//属性文章
|
|||
export function newHotNews(data: hostNews){ |
|||
return request({ |
|||
url: '/systemapi/news/newHotNews', |
|||
method: 'post', |
|||
data: data |
|||
}); |
|||
} |
|||
@ -0,0 +1,19 @@ |
|||
import { pageId,pageTurning } from '@/api/common/type' |
|||
//输出轮播图
|
|||
export interface carouselImg extends pageId { |
|||
title?: string; |
|||
img?: string; |
|||
} |
|||
//按分类获取新闻信息
|
|||
export interface newHomeType { |
|||
groupId?: string; |
|||
sunGroupId?: string; |
|||
typestypes?:number; |
|||
limit?:number; |
|||
} |
|||
//获取新闻列表内容
|
|||
export interface hostNews extends pageTurning { |
|||
groupId?:string; |
|||
sunGroupId?:string; |
|||
type?:number; |
|||
} |
|||
@ -0,0 +1,95 @@ |
|||
//app工作流结构
|
|||
export interface appWorkFlow{ |
|||
directorMaxLevel: number; |
|||
flowPermission: appFlowPermission[]; |
|||
nodeConfig: appNodeConfig; |
|||
tableId: string; |
|||
} |
|||
//节点操作人结构
|
|||
export interface appFlowPermission{ |
|||
icon: string; |
|||
iconToBase64: string; |
|||
name: string; |
|||
targetId: string; |
|||
type: number; |
|||
} |
|||
//app流程节点结构
|
|||
export interface appNodeConfig{ |
|||
attribute: number; |
|||
ccSelfSelectFlag: number; |
|||
childNode: appNodeConfig; |
|||
conditionList: string; |
|||
conditionNodes: string; |
|||
customNode: string; |
|||
directorLevel: number; |
|||
error: false |
|||
examineEndDirectorLevel: number; |
|||
examineMode: number; |
|||
executionaddress: string; |
|||
fromNode: string; |
|||
gotoNode: string[]; |
|||
matrix: appMatrix; |
|||
noHanderAction: number; |
|||
nodeName: string; |
|||
nodeNumber: string; |
|||
nodeUserList: string; |
|||
priorityLevel: number; |
|||
selectMode: number; |
|||
selectRange: number; |
|||
sendBackNode: string; |
|||
settype: number; |
|||
type: number; |
|||
orgList: number[]; |
|||
} |
|||
//app工作流附件
|
|||
export interface appMatrix{ |
|||
factorName: string; |
|||
factorid: number; |
|||
matrixName: string; |
|||
matrixid: number; |
|||
outcomeName: string; |
|||
outcomeid: number; |
|||
} |
|||
|
|||
//初始化App表单数据查看
|
|||
export interface appPageDataInit { |
|||
appFlow:boolean; |
|||
appForm?:appFormInfo; |
|||
page:boolean; |
|||
pageList:boolean; |
|||
workFlow?:appWorkFlow; |
|||
} |
|||
//App表单结构
|
|||
export interface appFormInfo{ |
|||
authorizationRoles: string; |
|||
authorizedOrg: string; |
|||
authorizedPersonnel: string; |
|||
authorizedPosition: string; |
|||
cfid: number; |
|||
classify: number; |
|||
creater: number; |
|||
dict: string; |
|||
editTime: number; |
|||
flowIsOpen: number; |
|||
flowkey: number; |
|||
groupid: number; |
|||
icon: string; |
|||
id: number; |
|||
listPage: string; |
|||
listjson: string; |
|||
mastesform: string; |
|||
mastesformjson: string; |
|||
name: string; |
|||
permit: string; |
|||
permitstr: string; |
|||
postpermit: string; |
|||
powerstr: string; |
|||
signCode: number; |
|||
status: number; |
|||
table_structure: string; |
|||
tablekey: string; |
|||
time: number; |
|||
userpermit: string; |
|||
version: number; |
|||
visibility: number; |
|||
} |
|||
@ -0,0 +1,44 @@ |
|||
body{ |
|||
background-color: #F5F5F5 !important; |
|||
} |
|||
.appBodyBeiJing{ |
|||
background-image: url("../image/bj1.png") !important; |
|||
background-repeat: no-repeat; |
|||
background-size: 100% 100%; |
|||
background-color: #ECEFF5; |
|||
} |
|||
.appBody{ |
|||
width: 100%; |
|||
height: 100vh; |
|||
overflow: hidden; |
|||
} |
|||
.contentCenter{ |
|||
display: flex; |
|||
justify-content: center; |
|||
align-items: center; |
|||
} |
|||
.contentBetween{ |
|||
display: flex; |
|||
justify-content: space-between; |
|||
align-items: center; |
|||
} |
|||
.contentBetweens{ |
|||
display: flex; |
|||
justify-content: space-between; |
|||
} |
|||
.el-drawer{ |
|||
.el-drawer__header{ |
|||
padding: 10px 5px; |
|||
margin-bottom: 0px; |
|||
} |
|||
.el-drawer__body{ |
|||
padding: 0px; |
|||
} |
|||
} |
|||
.el-overlay .el-drawer__header{ |
|||
padding: 10px 5px; |
|||
margin-bottom: 0px; |
|||
} |
|||
.el-overlay .el-drawer__body{ |
|||
padding: 0px; |
|||
} |
|||
@ -0,0 +1 @@ |
|||
html{-webkit-text-size-adjust:100%}html:focus-within{scroll-behavior:smooth}body{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-height:100vh;position:relative;text-rendering:optimizeSpeed;width:100%}*,:after,:before{box-sizing:border-box}a:not([class]){-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{border:0;font-size:100%;font:inherit;margin:0;padding:0;vertical-align:baseline}:focus{outline:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section{display:block}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}input,input:required{box-shadow:none}input:-webkit-autofill,input:-webkit-autofill:active,input:-webkit-autofill:focus,input:-webkit-autofill:hover{-webkit-box-shadow:inset 0 0 0 30px #fff}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration{-webkit-appearance:none;-moz-appearance:none}input[type=search]{-webkit-appearance:none;-moz-appearance:none}input:focus{outline:none}audio,canvas,video{display:inline-block;max-width:100%}audio:not([controls]){display:none;height:0}[hidden]{display:none}a:active,a:hover{outline:none}img{height:auto;max-width:100%;vertical-align:middle}img,picture{display:inline-block}button,input{line-height:normal}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;background:transparent;border:0;cursor:pointer}button[disabled],html input[disabled]{cursor:default}[disabled]{pointer-events:none}input[type=checkbox],input[type=radio]{padding:0}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button{background:transparent;border:0}textarea{overflow:auto;resize:vertical;vertical-align:top}table{border-collapse:collapse;border-spacing:0;text-indent:0}hr{background:#000;border:0;box-sizing:content-box;height:1px;line-height:0;margin:0;overflow:visible;padding:0;page-break-after:always;width:100%}pre{font-family:monospace,monospace;font-size:100%}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:none}code,kbd,pre,samp{font-family:monospace,monospace}small,sub,sup{font-size:75%}sub,sup{line-height:0;position:relative;vertical-align:baseline}sub{bottom:-5px}sup{top:-5px}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1;margin:0;padding:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;outline:0;padding:0}legend{border:0;color:inherit;display:block;max-width:100%;white-space:normal;width:100%}fieldset{min-width:0}body:not(:-moz-handler-blocked) fieldset{display:block}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}template{display:none} |
|||
|
After Width: | Height: | Size: 259 KiB |
|
After Width: | Height: | Size: 571 B |
|
After Width: | Height: | Size: 371 B |
|
After Width: | Height: | Size: 404 B |
|
After Width: | Height: | Size: 579 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 517 B |
|
After Width: | Height: | Size: 397 B |
|
After Width: | Height: | Size: 513 B |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 1008 B |
|
After Width: | Height: | Size: 738 B |
|
After Width: | Height: | Size: 764 B |
|
After Width: | Height: | Size: 639 B |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 698 B |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 657 B |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 372 B |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 869 B |
|
After Width: | Height: | Size: 928 B |
|
After Width: | Height: | Size: 402 B |
|
After Width: | Height: | Size: 860 B |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 7.0 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 728 B |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 757 B |
|
After Width: | Height: | Size: 99 KiB |
|
After Width: | Height: | Size: 423 B |
|
After Width: | Height: | Size: 417 B |
|
After Width: | Height: | Size: 418 B |
|
After Width: | Height: | Size: 463 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 851 B |
|
After Width: | Height: | Size: 336 B |
|
After Width: | Height: | Size: 523 B |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 473 B |
|
After Width: | Height: | Size: 598 B |
|
After Width: | Height: | Size: 664 B |
|
After Width: | Height: | Size: 485 B |
|
After Width: | Height: | Size: 539 B |
|
After Width: | Height: | Size: 455 B |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 530 B |
|
After Width: | Height: | Size: 668 B |
|
After Width: | Height: | Size: 6.3 KiB |
|
After Width: | Height: | Size: 575 B |
|
After Width: | Height: | Size: 357 B |