| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- //格式化日期
- export function getDate(type) {
- const date = new Date();
- let year = date.getFullYear();
- let month = date.getMonth() + 1;
- let day = date.getDate();
- if (type === 'end') {
- day = day + 1;
- }
- month = month > 9 ? month : '0' + month;
- day = day > 9 ? day : '0' + day;
- return `${year}-${month}-${day}`;
- }
- export function stopScroll(){
- var box=function(e)
- {passive: false ;};
- document.body.style.overflow='hidden';
- document.addEventListener("touchmove",box,false);
- }
- export function startScroll(){
- var box=function(e){passive: false };
- document.body.style.overflow='';//出现滚动条
- document.removeEventListener("touchmove",box,false);
- }
- // 生成随机数
- export const getRuleNo = (suffix = 'R') => {
- const randomNum = Math.floor(Math.random() * 1000000)
-
- return `${suffix}${parseTime(new Date(), '{y}{m}{d}')}${randomNum}`
- }
- export function parseTime (time, cFormat) {
- if (arguments.length === 0 || !time) {
- return null
- }
- const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
- let date
- if (typeof time === 'object') {
- date = time
- } else {
- if (typeof time === 'string') {
- if (/^[0-9]+$/.test(time)) {
- // support "1548221490638"
- time = parseInt(time)
- } else {
- // support safari
- // https://stackoverflow.com/questions/4310953/invalid-date-in-safari
- time = time.replace(new RegExp(/-/gm), '/')
- }
- }
-
- if (typeof time === 'number' && time.toString().length === 10) {
- time = time * 1000
- }
- date = new Date(time)
- }
- const formatObj = {
- y: date.getFullYear(),
- m: date.getMonth() + 1,
- d: date.getDate(),
- h: date.getHours(),
- i: date.getMinutes(),
- s: date.getSeconds(),
- a: date.getDay()
- }
- const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => {
- const value = formatObj[key]
- // Note: getDay() returns 0 on Sunday
- if (key === 'a') {
- return ['日', '一', '二', '三', '四', '五', '六'][value]
- }
- return value.toString().padStart(2, '0')
- })
- return time_str
- }
-
- /**
- * 将毫秒,转换成时间字符串。例如说,xx 分钟
- *
- * @param ms 毫秒
- * @returns {string} 字符串
- */
- export function getDates(ms) {
- const day = Math.floor(ms / (24 * 60 * 60 * 1000));
- const hour = Math.floor((ms / (60 * 60 * 1000) - day * 24));
- const minute = Math.floor(((ms / (60 * 1000)) - day * 24 * 60 - hour * 60));
- const second = Math.floor((ms / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - minute * 60));
- if (day > 0) {
- return day + "天" + hour + "小时" + minute + "分钟";
- }
- if (hour > 0) {
- return hour + "小时" + minute + "分钟";
- }
- if (minute > 0) {
- return minute + "分钟";
- }
- if (second > 0) {
- return second + "秒";
- } else {
- return 0 + "秒";
- }
- }
- //机构一维数组转树形结构
- export function toTreeData(option) {
- var _a, _b;
- if (Array.isArray(option)) {
- option = {
- data: arguments[0],
- idField: arguments[1],
- parentIdField: arguments[2],
- childrenField: arguments[3],
- parentId: arguments[4],
- addParentIds: arguments[5],
- parentIdsField: arguments[6],
- parentIds: arguments[7]
- };
- }
- const data = option.data;
- const idField = option.idField || option.idKey || "id";
- const parentIdField = option.parentIdField || option.pidKey || "parentId";
- const childrenField = option.childrenField || option.childKey || "children";
- const parentIdIsNull = typeof option.parentId === "undefined" && typeof option.pid === "undefined";
- const parentId = parentIdIsNull ? [] : (_a = option.parentId) != null ? _a : option.pid;
- const addParentIds = (_b = option.addParentIds) != null ? _b : option.addPIds;
- const parentIdsField = option.parentIdsField || option.parentsKey || "parentIds";
- const parentIds = option.parentIds;
- if (parentIdIsNull) {
- data.forEach((d) => {
- let flag = true;
- for (let i = 0; i < data.length; i++) {
- if (d[parentIdField] == data[i][idField]) {
- flag = false;
- break;
- }
- }
- if (flag) {
- parentId.push(d[parentIdField]);
- }
- });
- }
- const result = [];
- data.forEach((d) => {
- if (d[idField] == d[parentIdField]) {
- throw new Error(
- [
- "data error: {",
- idField + ": ",
- JSON.stringify(d[idField]),
- parentIdField + ": ",
- JSON.stringify(d[parentIdField]),
- "}"
- ].join("")
- );
- }
- const isArr = Array.isArray(parentId);
- const isParent = isArr ? parentId.includes(d[parentIdField]) : d[parentIdField] == parentId;
- if (isParent) {
- const r = { ...d };
- const children = toTreeData({
- data,
- idField,
- parentIdField,
- childrenField,
- parentId: d[idField],
- addParentIds,
- parentIdsField,
- parentIds: (parentIds != null ? parentIds : []).concat([d[idField]])
- });
- if (children.length > 0) {
- r[childrenField] = children;
- }
- if (addParentIds) {
- r[parentIdsField] = parentIds != null ? parentIds : [];
- }
- result.push(r);
- }
- });
- return result;
- }
|