12 files added
2 files renamed
1 files deleted
49 files modified
| | |
| | | * @createTime 2014.08.30 |
| | | */ |
| | | public class DateUtil { |
| | | private final static int[] dayArr = new int[] { 20, 19, 21, 20, 21, 22, 23, |
| | | 23, 23, 24, 23, 22 }; |
| | | private final static String[] constellationArr = new String[] { "摩羯座", |
| | | "水瓶座", "双鱼座", "白羊座", "金牛座", "双子座", "巨蟹座", "狮子座", "处女座", "天秤座", |
| | | "天蝎座", "射手座", "摩羯座" }; |
| | | |
| | | public static final String DATE_FORMAT_STS = "yyyy-MM-dd'T'HH:mm:ss"; |
| | | |
| | | public static final String DATE_FORMAT_ST = "yyyy-MM-dd'T'HH:mm"; |
| | | |
| | | public static final String HH_mm = "HH:mm"; |
| | | |
| | | public static final String HHmm = "HHmm"; |
| | | |
| | | public static final String MONTH = "yyyy-MM"; |
| | | |
| | |
| | | |
| | | public static final String DATE_FORMAT_MONGO = "yyyy-MM-dd'T'HH:mm:ss.SSS"; |
| | | |
| | | public static final String DATE_FORMAT_STS = "yyyy-MM-dd'T'HH:mm:ss"; |
| | | |
| | | |
| | | public static final String DATE_FORMAT_MM = "yyyy-MM-dd HH:mm"; |
| | | |
| | | public static final String DATE_FORMAT_HH = "yyyy-MM-dd HH"; |
| | | |
| | | |
| | | public static final String DATE_FORMAT_DD = "yyyy-MM-dd"; |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * Java通过生日计算星座 |
| | | * |
| | | * @param month |
| | | * @param day |
| | | * @return |
| | | */ |
| | | public static String getConstellation(int month, int day) { |
| | | return day < dayArr[month - 1] ? constellationArr[month - 1] |
| | | : constellationArr[month]; |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * |
| | | * @Title: getNextNMinute 获取date之后N分钟的时间 |
| | | * @Description: TODO |
| | | * @author:罗凯 |
| | | * @param date |
| | | * @return |
| | | * Date 返回类型 |
| | | * @date 2016年8月3日 下午2:48:51 |
| | | * @throws |
| | | */ |
| | | public static Date getNextNMinute(Date date,int n){ |
| | | return new Date(date.getTime()+(n*60*1000)); |
| | | } |
| | | /** |
| | | * 返回月份 |
| | | * |
| | | * @param date |
| | |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取一个编码 |
| | | * 获取一个当前时间并且加入了四位的随机字母 |
| | | * @return |
| | | */ |
| | | public static String getTimeCode() { |
| | | return dateToString(new Date(), "yyyyMMddssSSS")+StringUtils.getRandomString(4); |
| | | } |
| | | |
| | | /** |
| | | * 判断给定的日期是一周中的第几天,注意:按照中国的习惯,周日是第七天 |
| | |
| | | } |
| | | return currentDate.after(referenceDate); |
| | | } |
| | | public static long getDifTimeMin(Date beginTime,Date endTime){ |
| | | return (endTime.getTime()-beginTime.getTime())/1000/ 60; |
| | | } |
| | | public static List<Date> getFutureDay(Date date, int start,int end){ |
| | | List<Date> dates=new ArrayList<Date>(); |
| | | for (int i = 0; i < end-start; i++) { |
| | | dates.add(DateUtil.nextNDate(date,i)); |
| | | } |
| | | return dates; |
| | | } |
| | | /** |
| | | * 字符串转日期 如果转换失败就返回一个当前时间date |
| | | * |
| | | * @param dateStr |
| | | * @param format |
| | | * @return |
| | | */ |
| | | public static Date stringToDateNew(String dateStr, String format) { |
| | | |
| | | if (StringUtils.isBlank(dateStr) || StringUtils.isBlank(format)) { |
| | | return new Date(); |
| | | } |
| | | DateFormat fmt = new SimpleDateFormat(format); |
| | | try { |
| | | return fmt.parse(dateStr); |
| | | } catch (ParseException e) { |
| | | |
| | | } |
| | | return new Date(); |
| | | } |
| | | /** |
| | | * 判断currentDate是否在startDate和endDate之间,不包括startDate和endDate |
| | | * |
| | |
| | | |
| | | import com.matrix.core.anotations.Extend; |
| | | import com.matrix.core.pojo.EntityDTO; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | import java.util.Date; |
| | |
| | | /** |
| | | * 生日 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_DD) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD) |
| | | private Date suBirthday; |
| | | |
| | | /** |
| | |
| | | /** |
| | | * 入职时间 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_DD) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD) |
| | | private Date entryDate; |
| | | /** |
| | | * 紧急联系电话 |
| | |
| | | import com.matrix.system.hive.bean.SysShopInfo; |
| | | import com.matrix.system.hive.dao.SysShopInfoDao; |
| | | import com.matrix.system.hive.plugin.util.CollectionUtils; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import org.apache.commons.lang.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | |
| | | sysProjServices.setStartTime(sysProjServices.getStartTime()); |
| | | sysProjServices |
| | | .setEndTime(DateUtils.getNextNMinute(sysProjServices.getStartTime(), sysProjServices.getTotalTime())); |
| | | .setEndTime(DateUtil.getNextNMinute(sysProjServices.getStartTime(), sysProjServices.getTotalTime())); |
| | | return sysUsersDao.findByCodeBeaStateShopCount(shopId, sysProjServices, panBanCodes); |
| | | } |
| | | |
| | |
| | | |
| | | import com.matrix.core.constance.MatrixConstance; |
| | | import com.matrix.system.common.dao.UtilDao; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | |
| | | int s=Integer.parseInt(max); |
| | | s=s+1; |
| | | if(s>=1000){ |
| | | return DateUtils.getTimeCode(); |
| | | return DateUtil.getTimeCode(); |
| | | } |
| | | return s>=10?(s>=100?s+"":"00"+s):"000"+s; // 计算 转型 |
| | | }catch(Exception e){ |
| | | return DateUtils.getTimeCode(); |
| | | return DateUtil.getTimeCode(); |
| | | } |
| | | |
| | | |
| | |
| | | import com.matrix.system.hive.bean.SysAllotDetail; |
| | | import com.matrix.system.hive.bean.SysAllottedInfo; |
| | | import com.matrix.system.hive.dao.SysAllotDetailDao; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.hive.service.SysAllottedInfoService; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.ui.ModelMap; |
| | |
| | | temp.add(item.getAllottedOutstoreName()); |
| | | temp.add(item.getAllottedInstoreName()); |
| | | temp.add(item.getCheckStatus()); |
| | | temp.add(DateUtils.dateToString(item.getAllottedDate(), DateUtils.DATE_FORMAT_MM)); |
| | | temp.add(DateUtil.dateToString(item.getAllottedDate(), DateUtil.DATE_FORMAT_MM)); |
| | | temp.add(item.getMakingManName()); |
| | | temp.add(item.getAppManName()); |
| | | temp.add(item.getAllottedRemark()); |
| | |
| | | import com.matrix.system.hive.bean.SysBeauticianState; |
| | | import com.matrix.system.hive.bean.SysWorkBeatuistaff; |
| | | import com.matrix.system.hive.bean.SysWorktime; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.hive.pojo.BeautiWorkForm; |
| | | import com.matrix.system.hive.service.SysWorkBeatuistaffService; |
| | | import com.matrix.system.hive.service.SysWorktimeService; |
| | |
| | | if (strDate == null || strDate.equals("")) { |
| | | date = new Date(); |
| | | } else { |
| | | date = DateUtils.stringToDate(strDate.toString(), "yyyy-MM-dd"); |
| | | date = DateUtil.stringToDate(strDate.toString(), "yyyy-MM-dd"); |
| | | } |
| | | result.putInMap("dateTime", date); |
| | | |
| | |
| | | if (strDate == null || strDate.equals("")) { |
| | | date = new Date(); |
| | | } else { |
| | | date = DateUtils.stringToDate(strDate, "yyyy-MM-dd"); |
| | | date = DateUtil.stringToDate(strDate, "yyyy-MM-dd"); |
| | | } |
| | | WebUtil.getRequest().setAttribute("dateTime", date); |
| | | |
| | |
| | | |
| | | |
| | | int dateForm = Integer.parseInt(strDate); |
| | | int curTime = Integer.parseInt(DateUtils.dateToString(new Date(), "yyyyMMdd")); |
| | | int curTime = Integer.parseInt(DateUtil.dateToString(new Date(), "yyyyMMdd")); |
| | | if (curTime > dateForm) { |
| | | |
| | | return new AjaxResult(AjaxResult.STATUS_FAIL, "请选择大于当前时间下排班!"); |
| | |
| | | |
| | | |
| | | int dateForm = Integer.parseInt(strDate); |
| | | int curTime = Integer.parseInt(DateUtils.dateToString(new Date(), "yyyyMMdd")); |
| | | int curTime = Integer.parseInt(DateUtil.dateToString(new Date(), "yyyyMMdd")); |
| | | if (curTime > dateForm) { |
| | | |
| | | return new AjaxResult(AjaxResult.STATUS_FAIL, "请选择大于当前时间下排班!"); |
| | |
| | | AjaxResult getCurrentWorks() { |
| | | return new AjaxResult(AjaxResult.STATUS_SUCCESS, |
| | | sysWorkBeatuistaffService.findByDateStr( |
| | | DateUtils.dateToString(new Date(), "yyyyMMdd"), getMe().getShopId()), 0); |
| | | DateUtil.dateToString(new Date(), "yyyyMMdd"), getMe().getShopId()), 0); |
| | | } |
| | | |
| | | |
| | |
| | | public @ResponseBody |
| | | AjaxResult getPaiBanBeauticianList(@RequestBody SysBeauticianState sysBeauticianState) { |
| | | // 根据时间获取一段排班码 |
| | | String panBanCodes = DateUtils.dateToString(sysBeauticianState.getBeginTime(),DateUtils.DATE_FORMAT_NO_SPLITE_DD); |
| | | String panBanCodes = DateUtil.dateToString(sysBeauticianState.getBeginTime(),DateUtil.DATE_FORMAT_NO_SPLITE_DD); |
| | | // 获取登陆的用户 |
| | | SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); |
| | | List<SysUsers> staffs=new ArrayList<>(); |
| | |
| | | import com.matrix.system.common.tools.ResponseHeadUtil; |
| | | import com.matrix.system.hive.action.util.QueryUtil; |
| | | import com.matrix.system.hive.bean.SysCheckInfo; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.hive.service.CodeService; |
| | | import com.matrix.system.hive.service.SysCheckDetailService; |
| | | import com.matrix.system.hive.service.SysCheckInfoService; |
| | |
| | | temp.add(item.getCheckType()); |
| | | temp.add(item.getCheckNo()); |
| | | //时间转为字符串 |
| | | String strDate = DateUtils.dateToString(item.getCheckDate(), DateUtils.DATE_FORMAT_DD); |
| | | String strDate = DateUtil.dateToString(item.getCheckDate(), DateUtil.DATE_FORMAT_DD); |
| | | temp.add(strDate); |
| | | temp.add(item.getMakingManName()); |
| | | temp.add(item.getAppManName()); |
| | |
| | | |
| | | import com.matrix.core.pojo.AjaxResult; |
| | | import com.matrix.core.pojo.PaginationVO; |
| | | |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.hive.bean.SysCheckDetail; |
| | | import com.matrix.system.hive.bean.SysCheckInfo; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.system.hive.plugin.util.ExcelUtil; |
| | | import com.matrix.system.hive.service.CodeService; |
| | | import com.matrix.system.hive.service.SysCheckDetailService; |
| | |
| | | temp1.add(checkInfo.getCheckType()); |
| | | temp1.add(checkInfo.getCheckNo()); |
| | | // 时间转为字符串 |
| | | String strDate = DateUtils.dateToString(checkInfo.getCheckDate(), DateUtils.DATE_FORMAT_DD); |
| | | String strDate = DateUtil.dateToString(checkInfo.getCheckDate(), DateUtil.DATE_FORMAT_DD); |
| | | temp1.add(strDate); |
| | | temp1.add(checkInfo.getMakingManName()); |
| | | temp1.add(checkInfo.getAppManName()); |
| | |
| | | import com.matrix.system.hive.bean.SysInstoreDetail; |
| | | import com.matrix.system.hive.bean.SysInstoreInfo; |
| | | import com.matrix.system.hive.dao.SysInstoreDetailDao; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.hive.plugin.util.MoneyUtil; |
| | | import com.matrix.system.hive.service.CodeService; |
| | | import com.matrix.system.hive.service.SysInstoreInfoService; |
| | |
| | | for (SysInstoreInfo item : dataList) { |
| | | List<Object> temp = new ArrayList<>(); |
| | | temp.add(item.getInstoreId()); |
| | | temp.add(DateUtils.dateToString(item.getInstoreDate(), DateUtils.DATE_FORMAT_MM)); |
| | | temp.add(DateUtil.dateToString(item.getInstoreDate(), DateUtil.DATE_FORMAT_MM)); |
| | | temp.add(item.getSumall()); |
| | | temp.add(item.getMakingmanName()); |
| | | temp.add(item.getAppmanName()); |
| | |
| | | import com.matrix.system.hive.bean.*; |
| | | import com.matrix.system.hive.dao.MoneyCardUseDao; |
| | | import com.matrix.system.hive.dao.MoneyCardUseFlowDao; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.hive.pojo.CzXkVo; |
| | | import com.matrix.system.hive.service.*; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | case Dictionary.TAOCAN_STATUS_DJ: |
| | | MoneyCardUseFreeze freeze = new MoneyCardUseFreeze(); |
| | | freeze = moneyCardUseFreezeService.findByMoneyCardUseId(proj.getId()); |
| | | proj.setFailTime(DateUtils.nextNDate(failTime, freeze.getGapDays())); |
| | | proj.setFailTime(DateUtil.nextNDate(failTime, freeze.getGapDays())); |
| | | break; |
| | | default: |
| | | return new AjaxResult(AjaxResult.STATUS_FAIL, "请选择无效或者冻结的充值卡"); |
| | |
| | | import com.matrix.system.hive.bean.SysWorkBeatuistaff; |
| | | import com.matrix.system.hive.dao.SysBeauticianStateDao; |
| | | import com.matrix.system.hive.plugin.util.CollectionUtils; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.hive.service.SysWorkBeatuistaffService; |
| | | import com.matrix.system.hive.service.SysWorktimeService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | public @ResponseBody |
| | | AjaxResult showCwzyList(String timeStr) { |
| | | if (timeStr == null || timeStr.equals("")) { |
| | | timeStr = DateUtils.dateToString(new Date(), "yyyy-MM-dd"); |
| | | timeStr = DateUtil.dateToString(new Date(), "yyyy-MM-dd"); |
| | | } |
| | | // 查询上班下班的最大时间段 |
| | | Date currentDate = DateUtils.stringToDate(timeStr, DateUtils.DATE_FORMAT_DD); |
| | | Date currentDate = DateUtil.stringToDate(timeStr, DateUtil.DATE_FORMAT_DD); |
| | | // 把日期调整为当前查询日期 |
| | | Long shopId = 16L; //getMe().getShopId(); |
| | | |
| | |
| | | import com.matrix.system.hive.bean.SysShopInfo; |
| | | import com.matrix.system.hive.dao.OnlinebookingDao; |
| | | import com.matrix.system.hive.dao.SysShopInfoDao; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.hive.plugin.util.ExcelUtil; |
| | | import com.matrix.system.hive.service.OnlinebookingService; |
| | | import com.matrix.system.shopXcx.bean.ShopProduct; |
| | |
| | | for(Onlinebooking obj:dataList){ |
| | | List<Object> temp = new ArrayList<>(); |
| | | temp.add(obj.getVipInfo().getVipName()); |
| | | String strDate= DateUtils.dateToString(obj.getTime(), DateUtils.DATE_FORMAT_SS); |
| | | String strDate= DateUtil.dateToString(obj.getTime(), DateUtil.DATE_FORMAT_SS); |
| | | temp.add(strDate); |
| | | temp.add(obj.getStatus()); |
| | | //时间转为字符串 |
| | | temp.add(obj.getReason()); |
| | | temp.add(obj.getRemark()); |
| | | temp.add(obj.getShopName()); |
| | | String crtDate=DateUtils.dateToString(obj.getCreateTime(), DateUtils.DATE_FORMAT_SS); |
| | | String crtDate=DateUtil.dateToString(obj.getCreateTime(), DateUtil.DATE_FORMAT_SS); |
| | | temp.add(crtDate); |
| | | list.add(temp); |
| | | } |
| | |
| | | import com.matrix.system.hive.dao.SysOrderDao; |
| | | import com.matrix.system.hive.dao.SysOrderItemDao; |
| | | import com.matrix.system.hive.dao.SysShopInfoDao; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.hive.pojo.ShoppingCarItem; |
| | | import com.matrix.system.hive.pojo.ShoppingCarItemsVo; |
| | | import com.matrix.system.hive.service.AchieveNewService; |
| | |
| | | temp.add(item.getOrderNo()); |
| | | temp.add(item.getVipName()); |
| | | temp.add(item.getVipPhone()); |
| | | temp.add(DateUtils.dateToString(item.getOrderTime(), DateUtils.DATE_FORMAT_MM)); |
| | | temp.add(DateUtil.dateToString(item.getOrderTime(), DateUtil.DATE_FORMAT_MM)); |
| | | temp.add(item.getTotal()); |
| | | temp.add(item.getZkTotal()); |
| | | temp.add(item.getCashPay()); |
| | |
| | | import com.matrix.system.constance.Dictionary; |
| | | import com.matrix.system.hive.bean.*; |
| | | import com.matrix.system.hive.dao.*; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.hive.pojo.TaoCanVo; |
| | | import com.matrix.system.hive.service.*; |
| | | import org.apache.commons.collections.CollectionUtils; |
| | |
| | | SysBedState sysBedState = sysBedStateDao.selectBySerIdAndBedId(projServices.getBedId(), projServices.getId()); |
| | | |
| | | if (sysBedState != null && sysBedState.getStartTime() != null) { |
| | | dateTime = DateUtils.dateToString(sysBedState.getStartTime(), DateUtils.DATE_FORMAT_DD); |
| | | dateTime = DateUtil.dateToString(sysBedState.getStartTime(), DateUtil.DATE_FORMAT_DD); |
| | | } else { |
| | | dateTime = DateUtils.dateToString(projServices.getYyTime(), DateUtils.DATE_FORMAT_DD); |
| | | dateTime = DateUtil.dateToString(projServices.getYyTime(), DateUtil.DATE_FORMAT_DD); |
| | | } |
| | | } |
| | | WebUtil.getRequest().setAttribute("dateTime", dateTime); |
| | |
| | | // 根据id查到对应的订单信息 |
| | | SysProjServices sysProjServices = new SysProjServices(); |
| | | sysProjServices.setState(Dictionary.SERVICE_STATU_FWWC); |
| | | sysProjServices.setBeginTime(DateUtils.stringToDate("2019-03-01", DateUtils.DATE_FORMAT_DD)); |
| | | sysProjServices.setBeginTime(DateUtil.stringToDate("2019-03-01", DateUtil.DATE_FORMAT_DD)); |
| | | List<SysProjServices> serviceOrders = sysProjServicesService.findByModel(sysProjServices); |
| | | System.out.println("共找到服务单" + serviceOrders.size()); |
| | | for (SysProjServices itemService : serviceOrders) { |
| | |
| | | import com.matrix.system.hive.action.util.QueryUtil; |
| | | import com.matrix.system.hive.bean.SysCheckInfo; |
| | | import com.matrix.system.hive.dao.SysStoreInfoDao; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.hive.pojo.StoreInOutRecordVO; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Controller; |
| | |
| | | if (dataList.size() > 0) { |
| | | for (StoreInOutRecordVO item : dataList) { |
| | | List<Object> temp = new ArrayList<>(); |
| | | String strDate = DateUtils.dateToString(item.getCreateTime(), DateUtils.DATE_FORMAT_MM); |
| | | String strDate = DateUtil.dateToString(item.getCreateTime(), DateUtil.DATE_FORMAT_MM); |
| | | temp.add(strDate); |
| | | temp.add(item.getCode()); |
| | | temp.add(item.getName()); |
| | |
| | | import com.matrix.system.hive.bean.*; |
| | | import com.matrix.system.hive.dao.MoneyCardUseDao; |
| | | import com.matrix.system.hive.dao.VipAnswerDao; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.hive.pojo.RegisterInfo; |
| | | import com.matrix.system.hive.service.*; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | public @ResponseBody |
| | | AjaxResult register(RegisterInfo vipInfo) { |
| | | |
| | | vipInfo.setBirthday1(DateUtils.stringToDate(vipInfo.getVoBirthday(), "yyyy-MM-dd")); |
| | | vipInfo.setBirthday1(DateUtil.stringToDate(vipInfo.getVoBirthday(), "yyyy-MM-dd")); |
| | | vipInfo.setVipState(Dictionary.VIP_STATE_HY); |
| | | vipInfo.setStaffId(getMe().getSuId()); |
| | | vipInfo.setShopId(getMe().getShopId()); |
| | |
| | | int month = c.get(Calendar.MONTH) + 1; |
| | | //获取日 |
| | | int day = c.get(Calendar.DATE); |
| | | //生肖 |
| | | String sx = DateUtils.getYear(year); |
| | | |
| | | //星座 |
| | | String xz = DateUtils.getConstellation(month, day); |
| | | String xz = DateUtil.getConstellation(month, day); |
| | | |
| | | |
| | | SysVipInfo vip = new SysVipInfo(); |
| | | vip.setConstell(xz); |
| | | vip.setAnimalSign(sx); |
| | | List<SysVipInfo> vipList = new ArrayList<SysVipInfo>(); |
| | | vipList.add(vip); |
| | | return new AjaxResult(AjaxResult.STATUS_SUCCESS, vipList, 0); |
| | |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import com.matrix.core.anotations.Extend; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | import java.io.Serializable; |
| | |
| | | /** |
| | | * 开始时间 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM) |
| | | private Date beginTime; |
| | | |
| | | |
| | | /** |
| | | * 结束时间 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM) |
| | | private Date endTime; |
| | | |
| | | |
| | |
| | | package com.matrix.system.hive.bean; |
| | | |
| | | import com.matrix.core.anotations.Extend; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.hive.plugin.util.MoneyUtil; |
| | | import com.matrix.system.hive.pojo.MoneyCardUserVo; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | |
| | | /** |
| | | * 失效时间 |
| | | */ |
| | | @DateTimeFormat(pattern= DateUtils.DATE_FORMAT_DD) |
| | | @DateTimeFormat(pattern= DateUtil.DATE_FORMAT_DD) |
| | | private Date failTime; |
| | | |
| | | |
| | |
| | | import com.matrix.system.common.bean.EntityDTOExt; |
| | | import com.matrix.system.common.bean.SysUsers; |
| | | import com.matrix.system.constance.Dictionary; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.shopXcx.bean.ShopProduct; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | |
| | | /** |
| | | * 预约时间 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_ST) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_ST) |
| | | private Date time; |
| | | /** |
| | | * 客户备注 |
| | |
| | | package com.matrix.system.hive.bean; |
| | | |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | import java.io.Serializable; |
| | |
| | | /** |
| | | * 创建时间 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_DD) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD) |
| | | private Date createTime; |
| | | /** |
| | | * 下次跟进时间 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_DD) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD) |
| | | private Date followTime; |
| | | /** |
| | | * 内容 |
| | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | /** |
| | |
| | | /** |
| | | * 起始时间 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM) |
| | | private Date beginTime; |
| | | /** |
| | | * 结束时间 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM) |
| | | private Date endTime; |
| | | |
| | | |
| | |
| | | package com.matrix.system.hive.bean; |
| | | |
| | | import com.matrix.core.anotations.Extend; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | import java.io.Serializable; |
| | |
| | | /** |
| | | * 下架时间 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_DD) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD) |
| | | private Date saleOffTime; |
| | | |
| | | /** |
| | |
| | | /** |
| | | * 扩展字段 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_DD) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD) |
| | | private Date startTime; |
| | | |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_DD) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD) |
| | | private Date endTime; |
| | | |
| | | |
| | |
| | | package com.matrix.system.hive.bean; |
| | | |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | import java.io.Serializable; |
| | |
| | | /** |
| | | * 调拨日期 |
| | | */ |
| | | @DateTimeFormat(pattern= DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern= DateUtil.DATE_FORMAT_MM) |
| | | private Date allottedDate; |
| | | |
| | | |
| | |
| | | * 审核人 |
| | | */ |
| | | private String appManName; |
| | | @DateTimeFormat(pattern=DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern=DateUtil.DATE_FORMAT_MM) |
| | | private Date startTime; |
| | | @DateTimeFormat(pattern=DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern=DateUtil.DATE_FORMAT_MM) |
| | | private Date endTime; |
| | | |
| | | public Long getId() { |
| | |
| | | |
| | | import com.matrix.core.anotations.Extend; |
| | | import com.matrix.system.common.bean.SysUsers; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | import java.io.Serializable; |
| | |
| | | /** |
| | | * 服务开始时间 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM) |
| | | private Date beginTime; |
| | | |
| | | |
| | | /** |
| | | * 服务结束时间 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM) |
| | | private Date endTime; |
| | | |
| | | |
| | |
| | | * 表单服务开始时间 |
| | | */ |
| | | @Extend |
| | | @DateTimeFormat(pattern = DateUtils.HH_mm) |
| | | @DateTimeFormat(pattern = DateUtil.HH_mm) |
| | | private Date beginTimeForm; |
| | | /** |
| | | * 服务结束时间 |
| | | */ |
| | | @Extend |
| | | @DateTimeFormat(pattern = DateUtils.HH_mm) |
| | | @DateTimeFormat(pattern = DateUtil.HH_mm) |
| | | private Date endTimeForm; |
| | | |
| | | |
| | |
| | | |
| | | |
| | | @Extend |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_SS) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_SS) |
| | | private Date createTime; |
| | | |
| | | /** |
| | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | /** |
| | |
| | | /** |
| | | * 开始时间 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM) |
| | | private Date startTime; |
| | | |
| | | |
| | | /** |
| | | * 结束时间 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM) |
| | | private Date endTime; |
| | | |
| | | |
| | |
| | | /** |
| | | * 开始时间 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.HH_mm) |
| | | @DateTimeFormat(pattern = DateUtil.HH_mm) |
| | | private Date startTimeForm; |
| | | |
| | | |
| | |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import com.matrix.core.pojo.EntityDTO; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | import java.io.Serializable; |
| | |
| | | /** |
| | | * 入库日期 |
| | | */ |
| | | @DateTimeFormat(pattern= DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern= DateUtil.DATE_FORMAT_MM) |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8") |
| | | private Date instoreDate; |
| | | |
| | |
| | | * 开始时间 |
| | | */ |
| | | |
| | | @DateTimeFormat(pattern=DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern=DateUtil.DATE_FORMAT_MM) |
| | | private Date startTime; |
| | | |
| | | /** |
| | | * 结束时间 |
| | | */ |
| | | @DateTimeFormat(pattern=DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern=DateUtil.DATE_FORMAT_MM) |
| | | private Date endTime; |
| | | |
| | | private Long shopId; |
| | |
| | | package com.matrix.system.hive.bean; |
| | | |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | import java.io.Serializable; |
| | |
| | | /** |
| | | * 表单搜索条件(开始时间结束时间) |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM) |
| | | private Date beginTimeVo; |
| | | |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM) |
| | | private Date endTimeVo; |
| | | |
| | | |
| | |
| | | package com.matrix.system.hive.bean; |
| | | |
| | | import com.matrix.core.pojo.EntityDTO; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | import java.io.Serializable; |
| | |
| | | /** |
| | | * 出库时间 |
| | | */ |
| | | @DateTimeFormat(pattern= DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern= DateUtil.DATE_FORMAT_MM) |
| | | private Date time; |
| | | |
| | | /** |
| | |
| | | package com.matrix.system.hive.bean; |
| | | |
| | | import com.matrix.core.anotations.Extend; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | import java.io.Serializable; |
| | |
| | | /** |
| | | * 预约时间 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM) |
| | | private Date yyTime; |
| | | |
| | | /** |
| | |
| | | /** |
| | | * 开始时间 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM) |
| | | private Date startTime; |
| | | /** |
| | | * 结束时间 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM) |
| | | private Date endTime; |
| | | /** |
| | | * 超时时间 |
| | |
| | | /** |
| | | * 扩展属性-预约查询开始时间 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM) |
| | | private Date beginTime; |
| | | |
| | | /** |
| | | * 扩展属性-预约查询结束时间 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM) |
| | | private Date closureTime; |
| | | |
| | | /** |
| | |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import com.matrix.core.anotations.Extend; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | import java.io.Serializable; |
| | |
| | | /** |
| | | * 有效期 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_DD) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD) |
| | | private Date failTime; |
| | | /** |
| | | * 套餐id |
| | |
| | | package com.matrix.system.hive.bean; |
| | | |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.hive.plugin.util.ExcelAnnotation; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | |
| | | /** |
| | | * 生日 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_DD) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD) |
| | | private Date birthday1; |
| | | |
| | | /** |
| | |
| | | /** |
| | | * 入会时间 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_DD) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD) |
| | | private Date inDate; |
| | | /** |
| | | * 注册时间 |
| | |
| | | /** |
| | | * 起始时间 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_DD) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD) |
| | | private Date startTime; |
| | | /** |
| | | * 结束时间 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_DD) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD) |
| | | private Date endTime; |
| | | /** |
| | | * 排名方式(会员消费统计条件) |
| | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | /** |
| | |
| | | private String name; |
| | | |
| | | |
| | | @DateTimeFormat(pattern = DateUtils.HH_mm) |
| | | @DateTimeFormat(pattern = DateUtil.HH_mm) |
| | | private Date startTime; |
| | | |
| | | @DateTimeFormat(pattern = DateUtils.HH_mm) |
| | | @DateTimeFormat(pattern = DateUtil.HH_mm) |
| | | private Date endTime; |
| | | |
| | | |
| | |
| | | package com.matrix.system.hive.plugin.util; |
| | | |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.core.tools.StringUtils; |
| | | |
| | | import java.text.SimpleDateFormat; |
| | |
| | | Calendar c = Calendar.getInstance(); |
| | | try { |
| | | int dataInt = StringUtils.stringToInt(data); |
| | | int month = DateUtils.getMonth(createTime); |
| | | int year = DateUtils.getYear(createTime); |
| | | int month = DateUtil.getMonth(createTime); |
| | | int year = DateUtil.getYear(createTime); |
| | | if (dataInt > 12 - month && dataInt < 12) { |
| | | month += dataInt; |
| | | year += 1; |
| | |
| | | String checkrule = "1"; |
| | | |
| | | Date resultDate = TimeUtils.getEndYearTime(data, checkrule); |
| | | String time = DateUtils.dateToString(resultDate, DateUtils.DATE_FORMAT_SS); |
| | | String time = DateUtil.dateToString(resultDate, DateUtil.DATE_FORMAT_SS); |
| | | System.out.println(time); |
| | | } |
| | | } |
| | |
| | | |
| | | import java.util.Date; |
| | | |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | |
| | |
| | | /** |
| | | * 开始时间 |
| | | */ |
| | | @DateTimeFormat(pattern= DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern= DateUtil.DATE_FORMAT_MM) |
| | | private Date startTime; |
| | | /** |
| | | * 结束时间 |
| | | */ |
| | | @DateTimeFormat(pattern=DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern=DateUtil.DATE_FORMAT_MM) |
| | | private Date endTime; |
| | | |
| | | |
| | |
| | | |
| | | import java.util.Date; |
| | | |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | |
| | |
| | | /** |
| | | * 开始时间 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM) |
| | | private Date startTime =new Date(); |
| | | /** |
| | | * 结束时间 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM) |
| | | private Date endTime; |
| | | |
| | | /** |
| | |
| | | |
| | | import java.util.Date; |
| | | |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | |
| | |
| | | /** |
| | | * 开始时间 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM) |
| | | private Date beginTime; |
| | | |
| | | /** |
| | | * 结束时间 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM) |
| | | private Date endTime; |
| | | |
| | | /** |
| | |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import com.matrix.core.pojo.EntityDTO; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | import java.util.Date; |
| | |
| | | /** |
| | | * 用于对查询的参数 |
| | | */ |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM) |
| | | private Date beginTime; |
| | | |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_MM) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_MM) |
| | | private Date endTime; |
| | | |
| | | private Long shopId; |
| | |
| | | import com.matrix.system.constance.Dictionary; |
| | | import com.matrix.system.hive.bean.*; |
| | | import com.matrix.system.hive.dao.*; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.hive.plugin.util.MoneyUtil; |
| | | import com.matrix.system.hive.service.MoneyCardUseService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | content.append("获取会员" + getObj.getVipInfo().getVipName() + "的" + getObj.getCardName()) |
| | | .append(",余次:" + getObj.getLastCountName()) |
| | | .append(",本金余额:" + getObj.getRealMoney()) |
| | | .append(",有效期:" + DateUtils.dateToString(getObj.getFailTime(), DateUtils.DATE_FORMAT_MM)) |
| | | .append(",有效期:" + DateUtil.dateToString(getObj.getFailTime(), DateUtil.DATE_FORMAT_MM)) |
| | | .append(",是否赠送:" + getObj.getSourceName()); |
| | | } |
| | | } |
| | |
| | | .append(vipCard.getCardName()) |
| | | .append(",余次:" + vipCard.getLastCountName()) |
| | | .append(",本金余额:" + vipCard.getRealMoney()) |
| | | .append(",有效期:" + DateUtils.dateToString(vipCard.getFailTime(), DateUtils.DATE_FORMAT_MM)) |
| | | .append(",有效期:" + DateUtil.dateToString(vipCard.getFailTime(), DateUtil.DATE_FORMAT_MM)) |
| | | .append(",是否赠送:" + vipCard.getSourceName()); |
| | | } else { |
| | | content.append(realObj.getCardName() + "退款现金¥" + moneyCardUse.getReturnMonery() + ""); |
| | |
| | | @Override |
| | | public int add(ServiceRecord serviceRecord){ |
| | | // Date now=new Date(); |
| | | // if(DateUtils.isAffterDate( serviceRecord.getCreateTime(),now)){ |
| | | // if(DateUtil.isAffterDate( serviceRecord.getCreateTime(),now)){ |
| | | // throw new GlobleException("跟进时间必须大于当前时间"); |
| | | // } |
| | | |
| | |
| | | import com.matrix.system.hive.bean.SysBedInfo; |
| | | import com.matrix.system.hive.bean.SysProjServices; |
| | | import com.matrix.system.hive.dao.SysBedInfoDao; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.hive.service.SysBedInfoService; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | @Override |
| | | public int findFreeBedCount(SysProjServices sysProjServices) { |
| | | |
| | | sysProjServices.setEndTime(DateUtils.getNextNMinute(sysProjServices.getStartTime(), sysProjServices.getTotalTime())); |
| | | sysProjServices.setEndTime(DateUtil.getNextNMinute(sysProjServices.getStartTime(), sysProjServices.getTotalTime())); |
| | | |
| | | return sysBedInfoDao.findFreeBedCount(sysProjServices); |
| | | } |
| | | //查询空闲的床位 |
| | | @Override |
| | | public List<SysBedInfo> findFreeBed(SysProjServices sysProjServices) { |
| | | sysProjServices.setEndTime(DateUtils.getNextNMinute(sysProjServices.getStartTime(), sysProjServices.getTotalTime())); |
| | | sysProjServices.setEndTime(DateUtil.getNextNMinute(sysProjServices.getStartTime(), sysProjServices.getTotalTime())); |
| | | return sysBedInfoDao.findFreeBed(sysProjServices); |
| | | } |
| | | |
| | |
| | | import com.matrix.system.hive.bean.*; |
| | | import com.matrix.system.hive.dao.*; |
| | | import com.matrix.system.hive.plugin.util.CollectionUtils; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.hive.plugin.util.MoneyUtil; |
| | | import com.matrix.system.hive.service.CodeService; |
| | | import com.matrix.system.hive.service.SysCheckInfoService; |
| | |
| | | @Override |
| | | public List<SysCheckInfo> findInPage(SysCheckInfo sysCheckInfo, PaginationVO pageVo) { |
| | | // 设置开始开始时间 |
| | | Date startDate = DateUtils.getStartDate(sysCheckInfo.getStartTime()); |
| | | Date startDate = DateUtil.getStartDate(sysCheckInfo.getStartTime()); |
| | | sysCheckInfo.setStartTime(startDate); |
| | | // 设置结束时间 |
| | | Date endDate = DateUtils.getEndDate(sysCheckInfo.getEndTime()); |
| | | Date endDate = DateUtil.getEndDate(sysCheckInfo.getEndTime()); |
| | | sysCheckInfo.setEndTime(endDate); |
| | | return sysCheckInfoDao.selectInPage(sysCheckInfo, pageVo); |
| | | } |
| | |
| | | import com.matrix.system.hive.dao.*; |
| | | import com.matrix.system.hive.hievEnum.PayMethodEnum; |
| | | import com.matrix.system.hive.plugin.util.CollectionUtils; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.hive.plugin.util.MoneyUtil; |
| | | import com.matrix.system.hive.pojo.CzXkVo; |
| | | import com.matrix.system.hive.pojo.ShoppingCarItem; |
| | |
| | | cal.set(2200, 1, 1); |
| | | moneyCardUse.setFailTime(cal.getTime()); |
| | | } else { |
| | | moneyCardUse.setFailTime(DateUtils.nextNDate(new Date(), 30 * moneyCar.getValidity())); |
| | | moneyCardUse.setFailTime(DateUtil.nextNDate(new Date(), 30 * moneyCar.getValidity())); |
| | | } |
| | | moneyCardUseDao.insert(moneyCardUse); |
| | | } |
| | |
| | | order.setVipId(czVo.getVipId()); |
| | | Date orderTime = new Date(); |
| | | if (StringUtils.isNotBlank(czVo.getDateTime())) { |
| | | orderTime = DateUtils.stringToDateNew(czVo.getDateTime(), DateUtils.DATE_FORMAT_DD); |
| | | orderTime = DateUtil.stringToDateNew(czVo.getDateTime(), DateUtil.DATE_FORMAT_DD); |
| | | } |
| | | order.setOrderTime(orderTime); |
| | | order.setPayTime(orderTime); |
| | |
| | | import com.matrix.system.constance.Dictionary; |
| | | import com.matrix.system.hive.bean.*; |
| | | import com.matrix.system.hive.dao.*; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.hive.plugin.util.MoneyUtil; |
| | | import com.matrix.system.hive.pojo.MyBeauticianCount; |
| | | import com.matrix.system.hive.service.*; |
| | |
| | | // 验证床位排班时间是否正确 |
| | | |
| | | SysBedState sysBedState = projServices.getBedState(); |
| | | sysBedState.setEndTime(DateUtils.getNextNMinute(sysBedState.getStartTime(), projServices.getTotalTime())); |
| | | sysBedState.setEndTime(DateUtil.getNextNMinute(sysBedState.getStartTime(), projServices.getTotalTime())); |
| | | sysBedState.setBedId(projServices.getBedId()); |
| | | sysBedState.setServiceId((projServices.getId())); |
| | | sysBedState.setBedState(Dictionary.BED_STATE_SYZ); |
| | | |
| | | for (SysBeauticianState beauticianState : projServices.getServiceItems()) { |
| | | if (DateUtils.isAffterDate(beauticianState.getEndTime(), beauticianState.getBeginTime())) { |
| | | if (DateUtil.isAffterDate(beauticianState.getEndTime(), beauticianState.getBeginTime())) { |
| | | throw new GlobleException("美疗师的排班结束时间不能晚于美疗师排班的开始时间!"); |
| | | } |
| | | } |
| | |
| | | } |
| | | checkprojServices.setEndTime(new Date()); |
| | | // 计算时差 |
| | | long minspace = DateUtils.getDifTimeMin(checkprojServices.getStartTime(), checkprojServices.getEndTime()) |
| | | long minspace = DateUtil.getDifTimeMin(checkprojServices.getStartTime(), checkprojServices.getEndTime()) |
| | | - checkprojServices.getTotalTime(); |
| | | // 判断是服务超时还是服务提前结束,如果minspace大于0则是超时服务,小于0则是提前结束服务 |
| | | checkprojServices.setIsOverTime(minspace + ""); |
| | |
| | | import com.matrix.system.hive.bean.*; |
| | | import com.matrix.system.hive.dao.*; |
| | | import com.matrix.system.hive.plugin.util.CollectionUtils; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.hive.plugin.util.MoneyUtil; |
| | | import com.matrix.system.hive.service.SysProjUseService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | contentZr.append("获取会员" + vipInfo.getVipName() + "的") |
| | | .append(",余额:" + projuse.getBalance()) |
| | | .append(",余次:") |
| | | .append(",有效期:" + DateUtils.dateToString(projuse.getFailTime(), DateUtils.DATE_FORMAT_MM)) |
| | | .append(",有效期:" + DateUtil.dateToString(projuse.getFailTime(), DateUtil.DATE_FORMAT_MM)) |
| | | .append(",是否赠送:"); |
| | | |
| | | |
| | |
| | | .append(",余次:" + cardUse.getLastCountName()) |
| | | .append(",本金余额:" + MoneyUtil.add(cardUse.getRealMoney(), money)) |
| | | .append(",赠送余额:" + cardUse.getGiftMoney()) |
| | | .append(",有效期:" + DateUtils.dateToString(cardUse.getFailTime(), DateUtils.DATE_FORMAT_MM)) |
| | | .append(",有效期:" + DateUtil.dateToString(cardUse.getFailTime(), DateUtil.DATE_FORMAT_MM)) |
| | | .append(",是否赠送:" + cardUse.getSourceName()); |
| | | content += contentBuild.toString(); |
| | | |
| | |
| | | contentZr.append("获取会员" + vipInfo.getVipName() + "的" + shoppingGoods.getName()) |
| | | .append(",余额:" + sysProjUse.getBalance()) |
| | | .append(",余次:" + sysProjUse.getSurplusCount()) |
| | | .append(",有效期:" + DateUtils.dateToString(sysProjUse.getFailTime(), DateUtils.DATE_FORMAT_MM)) |
| | | .append(",有效期:" + DateUtil.dateToString(sysProjUse.getFailTime(), DateUtil.DATE_FORMAT_MM)) |
| | | .append(",是否赠送:"); |
| | | |
| | | |
| | |
| | | content.append("到会籍卡(" + upCard.getCardName() + ")" + sysProjUse.getBalance() + "元") |
| | | .append(",余次:" + upCard.getLastCountName()) |
| | | .append(",本金余额:" + upCard.getRealMoney()) |
| | | .append(",有效期:" + DateUtils.dateToString(upCard.getFailTime(), DateUtils.DATE_FORMAT_MM)) |
| | | .append(",有效期:" + DateUtil.dateToString(upCard.getFailTime(), DateUtil.DATE_FORMAT_MM)) |
| | | .append(",是否赠送:" + upCard.getSourceName()); |
| | | } else { |
| | | content.append("现金" + sysProjUse.getBalance() + "元"); |
| | |
| | | StringBuilder content = new StringBuilder(); |
| | | ShoppingGoods shoppingGoods = shoppingGoodsDao.selectById(proj.getProjId()); |
| | | content.append(shoppingGoods.getName() + "设置为有效") |
| | | .append(",有效期:" + DateUtils.dateToString(proj.getFailTime(), DateUtils.DATE_FORMAT_MM)); |
| | | .append(",有效期:" + DateUtil.dateToString(proj.getFailTime(), DateUtil.DATE_FORMAT_MM)); |
| | | |
| | | |
| | | return new AjaxResult(AjaxResult.STATUS_SUCCESS, "操作成功"); |
| | |
| | | import com.matrix.system.hive.bean.SysWorkBeatuistaff; |
| | | import com.matrix.system.hive.bean.SysWorktime; |
| | | import com.matrix.system.hive.dao.SysWorkBeatuistaffDao; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.hive.pojo.BeautiWorkForm; |
| | | import com.matrix.system.hive.service.SysWorkBeatuistaffService; |
| | | import com.matrix.system.hive.service.SysWorktimeService; |
| | |
| | | |
| | | |
| | | // 根据分页获取未来7天的日期 |
| | | List<Date> dates = DateUtils.getFutureDay(date, 0 * page, 7 * page); |
| | | List<Date> dates = DateUtil.getFutureDay(date, 0 * page, 7 * page); |
| | | SysUsers users = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); |
| | | List<SysWorktime> worktimes = sysWorkTimeService.findWorkTimeByshopId(users.getShopId()); |
| | | |
| | |
| | | List<List<SysWorkBeatuistaff>> staffs = new ArrayList<List<SysWorkBeatuistaff>>(); |
| | | for (SysWorktime sysWorktime : worktimes) { |
| | | staffs.add(sysWorkBeatuistaffDao |
| | | .selectByCode(DateUtils.dateToString(dtime, "yyyyMMdd") , sysWorktime.getId())); |
| | | .selectByCode(DateUtil.dateToString(dtime, "yyyyMMdd") , sysWorktime.getId())); |
| | | } |
| | | beautiWorkForm.setQueryListWorks(staffs); |
| | | workForms.add(beautiWorkForm); |
| | |
| | | package com.matrix.system.hive.statistics; |
| | | |
| | | import com.matrix.core.anotations.Extend; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | import java.util.Date; |
| | |
| | | * 查询条件 |
| | | */ |
| | | @Extend |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_DD) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD) |
| | | |
| | | private Date beginTime; |
| | | |
| | | @Extend |
| | | @DateTimeFormat(pattern = DateUtils.DATE_FORMAT_DD) |
| | | @DateTimeFormat(pattern = DateUtil.DATE_FORMAT_DD) |
| | | private Date endTime; |
| | | |
| | | public Date getBeginTime() { |
File was renamed from zq-erp/src/main/java/com/matrix/system/hive/pojo/StatisticsParamVo.java |
| | |
| | | package com.matrix.system.hive.pojo; |
| | | package com.matrix.system.hiveErp.Vo; |
| | | |
| | | /** |
| | | * 统计查询条件 |
File was renamed from zq-erp/src/main/java/com/matrix/system/hive/pojo/StatisticsTimeDaoParam.java |
| | |
| | | package com.matrix.system.hive.pojo; |
| | | package com.matrix.system.hiveErp.Vo; |
| | | |
| | | import java.util.Date; |
| | | |
New file |
| | |
| | | package com.matrix.system.hiveErp.action; |
| | | |
| | | import com.matrix.core.pojo.AjaxResult; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.hiveErp.Vo.StatisticsParamVo; |
| | | import com.matrix.system.hiveErp.Vo.StatisticsTimeDaoParam; |
| | | import com.matrix.system.hiveErp.dao.TjVipSumDao; |
| | | import com.matrix.system.hiveErp.util.StatisticsTimeUtil; |
| | | import org.apache.commons.collections.MapUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | |
| | | import java.util.*; |
| | | |
| | | @Controller |
| | | @RequestMapping(value = "admin/analysis") |
| | | public class CustomerAnalysis { |
| | | |
| | | @Autowired |
| | | TjVipSumDao tjVipSumDao; |
| | | /** |
| | | * 到店次数趋势统计 |
| | | * |
| | | * @return |
| | | */ |
| | | @RequestMapping(value = "/vipVisitTendency ") |
| | | public @ResponseBody |
| | | AjaxResult vipVisit(StatisticsParamVo statisticsParam) { |
| | | AjaxResult result = new AjaxResult(); |
| | | //计算横坐标 |
| | | List<Date> xAxis = StatisticsTimeUtil.getTimeSpace(statisticsParam.getBeginTime(), statisticsParam.getEndTime(), statisticsParam.getStatisticsUnit()); |
| | | Map<String, Integer> yAxisMap = tjVipSumDao.countVisitByTime(buidParam(xAxis),null); |
| | | Integer[] series= getSeries(yAxisMap); |
| | | |
| | | //构造返回对象 |
| | | Map<Object,Object> data=new HashMap<>(); |
| | | data.put("series",series); |
| | | data.put("xAxis", getFormartDateList(xAxis,statisticsParam)); |
| | | result.setMapInfo(data); |
| | | result.setStatus(AjaxResult.STATUS_SUCCESS); |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | | * 获取map中的值为数组 |
| | | * @param yAxisMap |
| | | * @return |
| | | */ |
| | | private Integer[] getSeries(Map<String, Integer> yAxisMap) { |
| | | if (MapUtils.isNotEmpty(yAxisMap)) { |
| | | Integer[] seroes = new Integer[yAxisMap.size()-1]; |
| | | for (int index=0; index<yAxisMap.size()-1 ; index++) { |
| | | if(index<seroes.length){ |
| | | seroes[index]=Integer.parseInt(yAxisMap.get("t"+index)+""); |
| | | } |
| | | } |
| | | return seroes; |
| | | } else { |
| | | return new Integer[0]; |
| | | } |
| | | } |
| | | |
| | | |
| | | private String[] getFormartDateList(List<Date> xAxis,StatisticsParamVo statisticsParam) { |
| | | String[] dates=new String[xAxis.size()]; |
| | | String dataFmt=""; |
| | | switch (statisticsParam.getStatisticsUnit()){ |
| | | case "时": |
| | | dataFmt= DateUtil.DATE_FORMAT_HH; |
| | | break; |
| | | case "日": |
| | | dataFmt=DateUtil.DATE_FORMAT_DD; |
| | | break; |
| | | case "月": |
| | | dataFmt=DateUtil.MONTH; |
| | | break; |
| | | case "年": |
| | | dataFmt=DateUtil.YEAR; |
| | | break; |
| | | |
| | | } |
| | | for(int i=0 ; i<dates.length; i++ ){ |
| | | dates[i]= DateUtil.dateToString(xAxis.get(i),dataFmt); |
| | | } |
| | | return dates; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 构建查询参数,带时间范围 |
| | | * @param xAxis |
| | | * @return |
| | | */ |
| | | private List<StatisticsTimeDaoParam> buidParam(List<Date> xAxis) { |
| | | List<StatisticsTimeDaoParam> daoParams = new ArrayList<>(); |
| | | for(int i=0 ;i<xAxis.size(); i++){ |
| | | StatisticsTimeDaoParam param= new StatisticsTimeDaoParam(); |
| | | param.setBeginTime(xAxis.get(i)); |
| | | if(i+1<xAxis.size()){ |
| | | param.setEndTime(xAxis.get(i+1)); |
| | | } |
| | | daoParams.add(param); |
| | | } |
| | | return daoParams; |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | import com.matrix.system.hive.bean.SysOrderItem; |
| | | import com.matrix.system.hive.dao.SysOrderDao; |
| | | import com.matrix.system.hive.dao.SysOrderItemDao; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.hive.service.AchieveNewService; |
| | | import com.matrix.system.hive.service.MoneyCardUseService; |
| | | import com.matrix.system.hive.service.SysOrderItemService; |
| | |
| | | temp.add(item.getOrderNo()); |
| | | temp.add(item.getVipName()); |
| | | temp.add(item.getVipPhone()); |
| | | temp.add(DateUtils.dateToString(item.getOrderTime(), DateUtils.DATE_FORMAT_MM)); |
| | | temp.add(DateUtil.dateToString(item.getOrderTime(), DateUtil.DATE_FORMAT_MM)); |
| | | temp.add(item.getTotal()); |
| | | temp.add(item.getZkTotal()); |
| | | temp.add(item.getCashPay()); |
| | |
| | | import com.matrix.system.hive.bean.*; |
| | | import com.matrix.system.hive.dao.MoneyCardUseDao; |
| | | import com.matrix.system.hive.dao.VipAnswerDao; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.hive.pojo.RegisterInfo; |
| | | import com.matrix.system.hive.service.*; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | public @ResponseBody |
| | | AjaxResult register(RegisterInfo vipInfo) { |
| | | |
| | | vipInfo.setBirthday1(DateUtils.stringToDate(vipInfo.getVoBirthday(), "yyyy-MM-dd")); |
| | | vipInfo.setBirthday1(DateUtil.stringToDate(vipInfo.getVoBirthday(), "yyyy-MM-dd")); |
| | | vipInfo.setVipState(Dictionary.VIP_STATE_HY); |
| | | vipInfo.setStaffId(getMe().getSuId()); |
| | | vipInfo.setShopId(getMe().getShopId()); |
| | |
| | | int month = c.get(Calendar.MONTH) + 1; |
| | | //获取日 |
| | | int day = c.get(Calendar.DATE); |
| | | //生肖 |
| | | String sx = DateUtils.getYear(year); |
| | | //星座 |
| | | String xz = DateUtils.getConstellation(month, day); |
| | | String xz = DateUtil.getConstellation(month, day); |
| | | |
| | | |
| | | SysVipInfo vip = new SysVipInfo(); |
| | | vip.setConstell(xz); |
| | | vip.setAnimalSign(sx); |
| | | List<SysVipInfo> vipList = new ArrayList<SysVipInfo>(); |
| | | vipList.add(vip); |
| | | return new AjaxResult(AjaxResult.STATUS_SUCCESS, vipList, 0); |
New file |
| | |
| | | package com.matrix.system.hiveErp.dao; |
| | | |
| | | |
| | | import com.matrix.system.hiveErp.Vo.StatisticsTimeDaoParam; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | |
| | | |
| | | public interface TjVipSumDao { |
| | | |
| | | Map<String,Integer> countVisitByTime(@Param("list") List<StatisticsTimeDaoParam> daoParams, @Param("shopId") Long shopId); |
| | | |
| | | } |
New file |
| | |
| | | package com.matrix.system.hiveErp.util; |
| | | |
| | | import com.matrix.core.tools.DateUtil; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | public class StatisticsTimeUtil { |
| | | |
| | | /** |
| | | * 通过统计单位获取时间段中,有多小段 |
| | | * @param beginTime |
| | | * @param endTime |
| | | * @param statisticsUnit |
| | | * @return |
| | | */ |
| | | public static List<Date> getTimeSpace(String beginTime, String endTime, String statisticsUnit) { |
| | | |
| | | |
| | | List<Date> result=new ArrayList<>(); |
| | | switch (statisticsUnit){ |
| | | case "时": |
| | | return getTimeSpaceByHours(beginTime,endTime); |
| | | case "日": |
| | | return getTimeSpaceByDay(beginTime,endTime); |
| | | case "月": |
| | | return getTimeSpaceByMonth(beginTime,endTime); |
| | | |
| | | case "年": |
| | | return getTimeSpaceByYear(beginTime,endTime); |
| | | |
| | | default: |
| | | return result; |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | private static List<Date> getTimeSpaceByYear(String beginTime, String endTime){ |
| | | List<Date> tims=new ArrayList(); |
| | | Date begin= DateUtil.stringToDate(beginTime,DateUtil.YEAR); |
| | | Date end= DateUtil.stringToDate(endTime,DateUtil.YEAR); |
| | | tims.add(begin); |
| | | while(DateUtil.isAffterDate(begin,end)){ |
| | | |
| | | begin=DateUtil.getDateAfterYear(begin,1); |
| | | tims.add(begin); |
| | | } |
| | | return tims; |
| | | } |
| | | |
| | | |
| | | private static List<Date> getTimeSpaceByMonth(String beginTime, String endTime){ |
| | | List<Date> tims=new ArrayList(); |
| | | Date begin= DateUtil.stringToDate(beginTime,DateUtil.MONTH); |
| | | Date end= DateUtil.stringToDate(endTime,DateUtil.MONTH); |
| | | tims.add(begin); |
| | | while(DateUtil.isAffterDate(begin,end)){ |
| | | |
| | | begin=DateUtil.getDateAfterMonth(begin,1); |
| | | tims.add(begin); |
| | | } |
| | | return tims; |
| | | } |
| | | |
| | | |
| | | private static List<Date> getTimeSpaceByDay(String beginTime, String endTime){ |
| | | List<Date> tims=new ArrayList(); |
| | | Date begin= DateUtil.stringToDate(beginTime,DateUtil.DATE_FORMAT_DD); |
| | | Date end= DateUtil.stringToDate(endTime,DateUtil.DATE_FORMAT_DD); |
| | | tims.add(begin); |
| | | while(DateUtil.isAffterDate(begin,end)){ |
| | | begin=DateUtil.getDateAfter(begin,1); |
| | | tims.add(begin); |
| | | } |
| | | return tims; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | private static List<Date> getTimeSpaceByHours(String beginTime, String endTime){ |
| | | List<Date> tims=new ArrayList(); |
| | | Date begin= DateUtil.stringToDate(beginTime,DateUtil.DATE_FORMAT_HH); |
| | | Date end= DateUtil.stringToDate(endTime,DateUtil.DATE_FORMAT_HH); |
| | | tims.add(begin); |
| | | while(DateUtil.isAffterDate(begin,end)){ |
| | | begin=DateUtil.getDateAfterHours(begin,1); |
| | | tims.add(begin); |
| | | } |
| | | return tims; |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | List<Date> tims= getTimeSpaceByYear("2014","2019"); |
| | | for (Date time: tims) { |
| | | System.out.println(time.toLocaleString()); |
| | | } |
| | | } |
| | | } |
| | |
| | | import com.matrix.system.hive.dao.*; |
| | | import com.matrix.system.hive.plugin.message.StringUtil; |
| | | import com.matrix.system.hive.plugin.util.CollectionUtils; |
| | | import com.matrix.system.hive.plugin.util.DateUtils; |
| | | import com.matrix.core.tools.DateUtil; |
| | | import com.matrix.system.hive.service.CodeService; |
| | | import com.matrix.system.hive.service.SysProjUseService; |
| | | import com.matrix.system.hive.service.SysWorkBeatuistaffService; |
| | |
| | | |
| | | |
| | | private int dateToCodeInt(Date date) { |
| | | return Integer.parseInt(DateUtils.dateToString(date, DateUtils.HHmm)); |
| | | return Integer.parseInt(DateUtil.dateToString(date, DateUtil.HHmm)); |
| | | } |
| | | |
| | | |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
| | | "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | |
| | | <mapper namespace="com.matrix.system.hiveErp.dao.TjVipSumDao"> |
| | | |
| | | |
| | | |
| | | <!-- 人头数统计 --> |
| | | <select id="countVisitByTime" resultType="java.util.TreeMap"> |
| | | |
| | | select |
| | | |
| | | <foreach collection="list" index="index" item="item" separator="," > |
| | | |
| | | SELECT count(*) from (SELECT DISTINCT vip_id from achieve_new |
| | | where |
| | | <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]> |
| | | <if test="shopId !=null and shopId !=0 " > |
| | | and SHOP_ID = #{shopId} |
| | | </if> |
| | | ) t |
| | | |
| | | </foreach> |
| | | from area where id=1 |
| | | </select> |
| | | |
| | | |
| | | |
| | | |
| | | </mapper> |
| | | |
New file |
| | |
| | | /** |
| | | * Crm数据图表 |
| | | * Created by jiangyouyao on 2019/4/20. |
| | | */ |
| | | function ChartsUtils(loadChartData) { |
| | | |
| | | //赋值加载数据方法 |
| | | this.loadChartData = loadChartData; |
| | | this.$beginTime = $("#beginTime"); |
| | | this.$endTime = $("#endTime"); |
| | | this.$unitSelect = $("#unitSelect"); |
| | | //记录当前视图的格式化字符串 |
| | | this.dateFmt = ""; |
| | | |
| | | //绑定搜索事件 |
| | | $('#serach').on("click",{charts:this},this.updateChartsDate); |
| | | //时间单位选择变化 |
| | | this.$unitSelect.on("change",{charts:this},this.unitChange); |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 设置时间控件格式 |
| | | */ |
| | | ChartsUtils.prototype.setDataPackTimeValue = function () { |
| | | |
| | | console.log("设置时间"); |
| | | var unit = this.$unitSelect.val(); |
| | | var startView, minView; |
| | | //控件赋值 |
| | | var time = new Date(); |
| | | if (unit == '时') { |
| | | startView = 1; |
| | | minView = "day"; |
| | | this.dateFmt = "yyyy-MM-dd hh"; |
| | | //时间视图默认显示当天 |
| | | this.$endTime.val(DateFormat.format(DateFormat.getDateEnd(time), this.dateFmt)); |
| | | this.$beginTime.val(DateFormat.format(DateFormat.getDateStart(time), this.dateFmt)); |
| | | } else if (unit == '日') { |
| | | console.log(time.getDate()); |
| | | startView = 2; |
| | | minView = "month"; |
| | | this.dateFmt = "yyyy-MM-dd"; |
| | | //日视图默认显示当月 |
| | | this.$endTime.val(DateFormat.format(time, this.dateFmt)); |
| | | this.$beginTime.val(DateFormat.format(DateFormat.addDay(time, -(time.getDate() - 1)), this.dateFmt)); |
| | | |
| | | } else if (unit == '月') { |
| | | startView = 3; |
| | | minView = "year"; |
| | | this.dateFmt = "yyyy-MM"; |
| | | //月视图默认显示当年 |
| | | this.$endTime.val(DateFormat.format(time, this.dateFmt)); |
| | | this.$beginTime.val(DateFormat.format(DateFormat.addMonth(time, -time.getMonth()), this.dateFmt)); |
| | | } else if (unit == '年') { |
| | | startView = 4; |
| | | minView = "decade"; |
| | | this.dateFmt = "yyyy"; |
| | | //年视图默认显示5年 |
| | | this.$endTime.val(DateFormat.format(time, this.dateFmt)); |
| | | this.$beginTime.val(DateFormat.format(DateFormat.addYear(time, -5), this.dateFmt)); |
| | | } |
| | | console.log("startView", startView); |
| | | //时间 |
| | | var _initParam = { |
| | | format: this.dateFmt.toLowerCase(), |
| | | todayBtn: false, |
| | | autoclose: true, |
| | | startView: startView, |
| | | maxView: 4, |
| | | minView: minView |
| | | }; |
| | | MTools.ininDatetimepicker(_initParam); |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 校验时间范围 |
| | | */ |
| | | ChartsUtils.prototype.checkTime = function () { |
| | | var beginTimeStr = this.$beginTime.val(); |
| | | var endTimeStr = this.$endTime.val(); |
| | | if (StringUtils.isNotEmpty(beginTimeStr) && StringUtils.isNotBlank(endTimeStr)) { |
| | | //字符串不为空 |
| | | var beginTime = moment(beginTimeStr); |
| | | var endTime = moment(endTimeStr); |
| | | console.log(beginTime.unix(), endTime.unix()); |
| | | if (beginTime.unix() <= endTime.unix()) { |
| | | return true; |
| | | } else { |
| | | layer.msg("最小日期不能大于最大日期", {icon: 2}); |
| | | return false; |
| | | } |
| | | } else { |
| | | layer.msg("请选择日期范围", {icon: 2}); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | ChartsUtils.prototype.unitChange = function (event) { |
| | | //移除时间控件上的绑定时间 |
| | | $("#beginTime").datetimepicker('remove'); |
| | | $("#endTime").datetimepicker('remove'); |
| | | //根据单位重设定查询条件,新绑定时间控件, |
| | | event.data.charts.setDataPackTimeValue(); |
| | | event.data.charts.loadChartData(); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 更新图表中的数据 |
| | | */ |
| | | ChartsUtils.prototype.updateChartsDate=function(event){ |
| | | if(event.data.charts.checkTime()){ |
| | | event.data.charts.loadChartData(); |
| | | } |
| | | } |
New file |
| | |
| | | |
| | | StringUtils = { |
| | | isEmpty: function(input) { |
| | | return input == null || input == ''; |
| | | }, |
| | | isNotEmpty: function(input) { |
| | | return !this.isEmpty(input); |
| | | }, |
| | | isBlank: function(input) { |
| | | return input == null || /^\s*$/.test(input); |
| | | }, |
| | | isNotBlank: function(input) { |
| | | return !this.isBlank(input); |
| | | }, |
| | | trim: function(input) { |
| | | return input.replace(/^\s+|\s+$/, ''); |
| | | }, |
| | | trimToEmpty: function(input) { |
| | | return input == null ? "" : this.trim(input); |
| | | }, |
| | | startsWith: function(input, prefix) { |
| | | return input.indexOf(prefix) === 0; |
| | | }, |
| | | endsWith: function(input, suffix) { |
| | | return input.lastIndexOf(suffix) === 0; |
| | | }, |
| | | contains: function(input, searchSeq) { |
| | | return input.indexOf(searchSeq) >= 0; |
| | | }, |
| | | equals: function(input1, input2) { |
| | | return input1 == input2; |
| | | }, |
| | | equalsIgnoreCase: function(input1, input2) { |
| | | return input1.toLocaleLowerCase() == input2.toLocaleLowerCase(); |
| | | }, |
| | | containsWhitespace: function(input) { |
| | | return this.contains(input, ' '); |
| | | }, |
| | | //生成指定个数的字符 |
| | | repeat: function(ch, repeatTimes) { |
| | | var result = ""; |
| | | for(var i = 0; i < repeatTimes; i++) { |
| | | result += ch; |
| | | } |
| | | return result; |
| | | }, |
| | | deleteWhitespace: function(input) { |
| | | return input.replace(/\s+/g, ''); |
| | | }, |
| | | rightPad: function(input, size, padStr) { |
| | | return input + this.repeat(padStr, size); |
| | | }, |
| | | leftPad: function(input, size, padStr) { |
| | | return this.repeat(padStr, size) + input; |
| | | }, |
| | | //首小写字母转大写 |
| | | capitalize: function(input) { |
| | | var strLen = 0; |
| | | if(input == null || (strLen = input.length) == 0) { |
| | | return input; |
| | | } |
| | | return input.replace(/^[a-z]/, function(matchStr) { |
| | | return matchStr.toLocaleUpperCase(); |
| | | }); |
| | | }, |
| | | //首大写字母转小写 |
| | | uncapitalize: function(input) { |
| | | var strLen = 0; |
| | | if(input == null || (strLen = input.length) == 0) { |
| | | return input; |
| | | } |
| | | return input.replace(/^[A-Z]/, function(matchStr) { |
| | | return matchStr.toLocaleLowerCase(); |
| | | }); |
| | | }, |
| | | //大写转小写,小写转大写 |
| | | swapCase: function(input) { |
| | | return input.replace(/[a-z]/ig, function(matchStr) { |
| | | if(matchStr >= 'A' && matchStr <= 'Z') { |
| | | return matchStr.toLocaleLowerCase(); |
| | | } else if(matchStr >= 'a' && matchStr <= 'z') { |
| | | return matchStr.toLocaleUpperCase(); |
| | | } |
| | | }); |
| | | }, |
| | | //统计含有的子字符串的个数 |
| | | countMatches: function(input, sub) { |
| | | if(this.isEmpty(input) || this.isEmpty(sub)) { |
| | | return 0; |
| | | } |
| | | var count = 0; |
| | | var index = 0; |
| | | while((index = input.indexOf(sub, index)) != -1) { |
| | | index += sub.length; |
| | | count++; |
| | | } |
| | | return count; |
| | | }, |
| | | //只包含字母 |
| | | isAlpha: function(input) { |
| | | return /^[a-z]+$/i.test(input); |
| | | }, |
| | | //只包含字母、空格 |
| | | isAlphaSpace: function(input) { |
| | | return /^[a-z\s]*$/i.test(input); |
| | | }, |
| | | //只包含字母、数字 |
| | | isAlphanumeric: function(input) { |
| | | return /^[a-z0-9]+$/i.test(input); |
| | | }, |
| | | //只包含字母、数字和空格 |
| | | isAlphanumericSpace: function(input) { |
| | | return /^[a-z0-9\s]*$/i.test(input); |
| | | }, |
| | | //数字 |
| | | isNumeric: function(input) { |
| | | return /^(?:[1-9]\d*|0)(?:\.\d+)?$/.test(input); |
| | | }, |
| | | //小数 |
| | | isDecimal: function(input) { |
| | | return /^[-+]?(?:0|[1-9]\d*)\.\d+$/.test(input); |
| | | }, |
| | | //负小数 |
| | | isNegativeDecimal: function(input) { |
| | | return /^\-?(?:0|[1-9]\d*)\.\d+$/.test(input); |
| | | }, |
| | | //正小数 |
| | | isPositiveDecimal: function(input) { |
| | | return /^\+?(?:0|[1-9]\d*)\.\d+$/.test(input); |
| | | }, |
| | | //整数 |
| | | isInteger: function(input) { |
| | | return /^[-+]?(?:0|[1-9]\d*)$/.test(input); |
| | | }, |
| | | //正整数 |
| | | isPositiveInteger: function(input) { |
| | | return /^\+?(?:0|[1-9]\d*)$/.test(input); |
| | | }, |
| | | //负整数 |
| | | isNegativeInteger: function(input) { |
| | | return /^\-?(?:0|[1-9]\d*)$/.test(input); |
| | | }, |
| | | //只包含数字和空格 |
| | | isNumericSpace: function(input) { |
| | | return /^[\d\s]*$/.test(input); |
| | | }, |
| | | isWhitespace: function(input) { |
| | | return /^\s*$/.test(input); |
| | | }, |
| | | isAllLowerCase: function(input) { |
| | | return /^[a-z]+$/.test(input); |
| | | }, |
| | | isAllUpperCase: function(input) { |
| | | return /^[A-Z]+$/.test(input); |
| | | }, |
| | | defaultString: function(input, defaultStr) { |
| | | return input == null ? defaultStr : input; |
| | | }, |
| | | defaultIfBlank: function(input, defaultStr) { |
| | | return this.isBlank(input) ? defaultStr : input; |
| | | }, |
| | | defaultIfEmpty: function(input, defaultStr) { |
| | | return this.isEmpty(input) ? defaultStr : input; |
| | | }, |
| | | //字符串反转 |
| | | reverse: function(input) { |
| | | if(this.isBlank(input)) { |
| | | input; |
| | | } |
| | | return input.split("").reverse().join(""); |
| | | }, |
| | | //删掉特殊字符(英文状态下) |
| | | removeSpecialCharacter: function(input) { |
| | | return input.replace(/[!-/:-@\[-`{-~]/g, ""); |
| | | }, |
| | | //只包含特殊字符、数字和字母(不包括空格,若想包括空格,改为[ -~]) |
| | | isSpecialCharacterAlphanumeric: function(input) { |
| | | return /^[!-~]+$/.test(input); |
| | | }, |
| | | /** |
| | | * 校验时排除某些字符串,即不能包含某些字符串 |
| | | * @param {Object} conditions:里面有多个属性,如下: |
| | | * |
| | | * @param {String} matcherFlag 匹配标识 |
| | | * 0:数字;1:字母;2:小写字母;3:大写字母;4:特殊字符,指英文状态下的标点符号及括号等;5:中文; |
| | | * 6:数字和字母;7:数字和小写字母;8:数字和大写字母;9:数字、字母和特殊字符;10:数字和中文; |
| | | * 11:小写字母和特殊字符;12:大写字母和特殊字符;13:字母和特殊字符;14:小写字母和中文;15:大写字母和中文; |
| | | * 16:字母和中文;17:特殊字符、和中文;18:特殊字符、字母和中文;19:特殊字符、小写字母和中文;20:特殊字符、大写字母和中文; |
| | | * 100:所有字符; |
| | | * @param {Array} excludeStrArr 排除的字符串,数组格式 |
| | | * @param {String} length 长度,可为空。1,2表示长度1到2之间;10,表示10个以上字符;5表示长度为5 |
| | | * @param {Boolean} ignoreCase 是否忽略大小写 |
| | | * conditions={matcherFlag:"0",excludeStrArr:[],length:"",ignoreCase:true} |
| | | */ |
| | | isPatternMustExcludeSomeStr: function(input, conditions) { |
| | | //参数 |
| | | var matcherFlag = conditions.matcherFlag; |
| | | var excludeStrArr = conditions.excludeStrArr; |
| | | var length = conditions.length; |
| | | var ignoreCase = conditions.ignoreCase; |
| | | //拼正则 |
| | | var size = excludeStrArr.length; |
| | | var regex = (size == 0) ? "^" : "^(?!.*(?:{0}))"; |
| | | var subPattern = ""; |
| | | for(var i = 0; i < size; i++) { |
| | | excludeStrArr[i] = Bee.StringUtils.escapeMetacharacterOfStr(excludeStrArr[i]); |
| | | subPattern += excludeStrArr[i]; |
| | | if(i != size - 1) { |
| | | subPattern += "|"; |
| | | } |
| | | } |
| | | regex = this.format(regex, [subPattern]); |
| | | switch(matcherFlag) { |
| | | case '0': |
| | | regex += "\\d"; |
| | | break; |
| | | case '1': |
| | | regex += "[a-zA-Z]"; |
| | | break; |
| | | case '2': |
| | | regex += "[a-z]"; |
| | | break; |
| | | case '3': |
| | | regex += "[A-Z]"; |
| | | break; |
| | | case '4': |
| | | regex += "[!-/:-@\[-`{-~]"; |
| | | break; |
| | | case '5': |
| | | regex += "[\u4E00-\u9FA5]"; |
| | | break; |
| | | case '6': |
| | | regex += "[a-zA-Z0-9]"; |
| | | break; |
| | | case '7': |
| | | regex += "[a-z0-9]"; |
| | | break; |
| | | case '8': |
| | | regex += "[A-Z0-9]"; |
| | | break; |
| | | case '9': |
| | | regex += "[!-~]"; |
| | | break; |
| | | case '10': |
| | | regex += "[0-9\u4E00-\u9FA5]"; |
| | | break; |
| | | case '11': |
| | | regex += "[a-z!-/:-@\[-`{-~]"; |
| | | break; |
| | | case '12': |
| | | regex += "[A-Z!-/:-@\[-`{-~]"; |
| | | break; |
| | | case '13': |
| | | regex += "[a-zA-Z!-/:-@\[-`{-~]"; |
| | | break; |
| | | case '14': |
| | | regex += "[a-z\u4E00-\u9FA5]"; |
| | | break; |
| | | case '15': |
| | | regex += "[A-Z\u4E00-\u9FA5]"; |
| | | break; |
| | | case '16': |
| | | regex += "[a-zA-Z\u4E00-\u9FA5]"; |
| | | break; |
| | | case '17': |
| | | regex += "[\u4E00-\u9FA5!-/:-@\[-`{-~]"; |
| | | break; |
| | | case '18': |
| | | regex += "[\u4E00-\u9FA5!-~]"; |
| | | break; |
| | | case '19': |
| | | regex += "[a-z\u4E00-\u9FA5!-/:-@\[-`{-~]"; |
| | | break; |
| | | case '20': |
| | | regex += "[A-Z\u4E00-\u9FA5!-/:-@\[-`{-~]"; |
| | | break; |
| | | case '100': |
| | | regex += "[\s\S]"; |
| | | break; |
| | | default: |
| | | alert(matcherFlag + ":This type is not supported!"); |
| | | } |
| | | regex += this.isNotBlank(length) ? "{" + length + "}" : "+"; |
| | | regex += "$"; |
| | | var pattern = new RegExp(regex, ignoreCase ? "i" : ""); |
| | | return pattern.test(input); |
| | | }, |
| | | /** |
| | | * @param {String} message |
| | | * @param {Array} arr |
| | | * 消息格式化 |
| | | */ |
| | | format: function(message, arr) { |
| | | return message.replace(/{(\d+)}/g, function(matchStr, group1) { |
| | | return arr[group1]; |
| | | }); |
| | | }, |
| | | /** |
| | | * 把连续出现多次的字母字符串进行压缩。如输入:aaabbbbcccccd 输出:3a4b5cd |
| | | * @param {String} input |
| | | * @param {Boolean} ignoreCase : true or false |
| | | */ |
| | | compressRepeatedStr: function(input, ignoreCase) { |
| | | var pattern = new RegExp("([a-z])\\1+", ignoreCase ? "ig" : "g"); |
| | | return result = input.replace(pattern, function(matchStr, group1) { |
| | | return matchStr.length + group1; |
| | | }); |
| | | }, |
| | | /** |
| | | * 校验必须同时包含某些字符串 |
| | | * @param {String} input |
| | | * @param {Object} conditions:里面有多个属性,如下: |
| | | * |
| | | * @param {String} matcherFlag 匹配标识 |
| | | * 0:数字;1:字母;2:小写字母;3:大写字母;4:特殊字符,指英文状态下的标点符号及括号等;5:中文; |
| | | * 6:数字和字母;7:数字和小写字母;8:数字和大写字母;9:数字、字母和特殊字符;10:数字和中文; |
| | | * 11:小写字母和特殊字符;12:大写字母和特殊字符;13:字母和特殊字符;14:小写字母和中文;15:大写字母和中文; |
| | | * 16:字母和中文;17:特殊字符、和中文;18:特殊字符、字母和中文;19:特殊字符、小写字母和中文;20:特殊字符、大写字母和中文; |
| | | * 100:所有字符; |
| | | * @param {Array} excludeStrArr 排除的字符串,数组格式 |
| | | * @param {String} length 长度,可为空。1,2表示长度1到2之间;10,表示10个以上字符;5表示长度为5 |
| | | * @param {Boolean} ignoreCase 是否忽略大小写 |
| | | * conditions={matcherFlag:"0",containStrArr:[],length:"",ignoreCase:true} |
| | | * |
| | | */ |
| | | isPatternMustContainSomeStr: function(input, conditions) { |
| | | //参数 |
| | | var matcherFlag = conditions.matcherFlag; |
| | | var containStrArr = conditions.containStrArr; |
| | | var length = conditions.length; |
| | | var ignoreCase = conditions.ignoreCase; |
| | | //创建正则 |
| | | var size = containStrArr.length; |
| | | var regex = "^"; |
| | | var subPattern = ""; |
| | | for(var i = 0; i < size; i++) { |
| | | containStrArr[i] = Bee.StringUtils.escapeMetacharacterOfStr(containStrArr[i]); |
| | | subPattern += "(?=.*" + containStrArr[i] + ")"; |
| | | } |
| | | regex += subPattern; |
| | | switch(matcherFlag) { |
| | | case '0': |
| | | regex += "\\d"; |
| | | break; |
| | | case '1': |
| | | regex += "[a-zA-Z]"; |
| | | break; |
| | | case '2': |
| | | regex += "[a-z]"; |
| | | break; |
| | | case '3': |
| | | regex += "[A-Z]"; |
| | | break; |
| | | case '4': |
| | | regex += "[!-/:-@\[-`{-~]"; |
| | | break; |
| | | case '5': |
| | | regex += "[\u4E00-\u9FA5]"; |
| | | break; |
| | | case '6': |
| | | regex += "[a-zA-Z0-9]"; |
| | | break; |
| | | case '7': |
| | | regex += "[a-z0-9]"; |
| | | break; |
| | | case '8': |
| | | regex += "[A-Z0-9]"; |
| | | break; |
| | | case '9': |
| | | regex += "[!-~]"; |
| | | break; |
| | | case '10': |
| | | regex += "[0-9\u4E00-\u9FA5]"; |
| | | break; |
| | | case '11': |
| | | regex += "[a-z!-/:-@\[-`{-~]"; |
| | | break; |
| | | case '12': |
| | | regex += "[A-Z!-/:-@\[-`{-~]"; |
| | | break; |
| | | case '13': |
| | | regex += "[a-zA-Z!-/:-@\[-`{-~]"; |
| | | break; |
| | | case '14': |
| | | regex += "[a-z\u4E00-\u9FA5]"; |
| | | break; |
| | | case '15': |
| | | regex += "[A-Z\u4E00-\u9FA5]"; |
| | | break; |
| | | case '16': |
| | | regex += "[a-zA-Z\u4E00-\u9FA5]"; |
| | | break; |
| | | case '17': |
| | | regex += "[\u4E00-\u9FA5!-/:-@\[-`{-~]"; |
| | | break; |
| | | case '18': |
| | | regex += "[\u4E00-\u9FA5!-~]"; |
| | | break; |
| | | case '19': |
| | | regex += "[a-z\u4E00-\u9FA5!-/:-@\[-`{-~]"; |
| | | break; |
| | | case '20': |
| | | regex += "[A-Z\u4E00-\u9FA5!-/:-@\[-`{-~]"; |
| | | break; |
| | | case '100': |
| | | regex += "[\s\S]"; |
| | | break; |
| | | default: |
| | | alert(matcherFlag + ":This type is not supported!"); |
| | | } |
| | | regex += this.isNotBlank(length) ? "{" + length + "}" : "+"; |
| | | regex += "$"; |
| | | var pattern = new RegExp(regex, ignoreCase ? "i" : ""); |
| | | return pattern.test(input); |
| | | }, |
| | | //中文校验 |
| | | isChinese: function(input) { |
| | | return /^[\u4E00-\u9FA5]+$/.test(input); |
| | | }, |
| | | //去掉中文字符 |
| | | removeChinese: function(input) { |
| | | return input.replace(/[\u4E00-\u9FA5]+/gm, ""); |
| | | }, |
| | | //转义元字符 |
| | | escapeMetacharacter: function(input) { |
| | | var metacharacter = "^$()*+.[]|\\-?{}|"; |
| | | if(metacharacter.indexOf(input) >= 0) { |
| | | input = "\\" + input; |
| | | } |
| | | return input; |
| | | }, |
| | | //转义字符串中的元字符 |
| | | escapeMetacharacterOfStr: function(input) { |
| | | return input.replace(/[\^\$\*\+\.\|\\\-\?\{\}\|]/gm, "\\$&"); |
| | | } |
| | | |
| | | }; |
New file |
| | |
| | | /** |
| | | * autor: xuxiao , zubaoshan |
| | | */ |
| | | (function () { |
| | | //定义一些默认参数 |
| | | var _options = { |
| | | ZH: { |
| | | dayNames: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'], |
| | | shortDayNames: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'], |
| | | monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'], |
| | | shortMonthNames: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'] |
| | | }, |
| | | US: { |
| | | dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], |
| | | shortDayNames: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], |
| | | monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], |
| | | shortMonthNames: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] |
| | | } |
| | | } |
| | | |
| | | //定义一些api |
| | | var _date_format_api = { |
| | | |
| | | /** |
| | | * 格式化时间 |
| | | * @param date |
| | | * @param fmt |
| | | * @returns {*} |
| | | */ |
| | | format: function (date, fmt) { |
| | | var o = { |
| | | 'M+': date.getMonth() + 1, //月份 |
| | | 'd+': date.getDate(), //日 |
| | | 'h+': date.getHours(), //小时 |
| | | 'm+': date.getMinutes(), //分 |
| | | 's+': date.getSeconds(), //秒 |
| | | 'q+': Math.floor((date.getMonth() + 3) / 3), //季度 |
| | | 'S': date.getMilliseconds() //毫秒 |
| | | }; |
| | | if(!this.isNotEmpty(fmt)){ |
| | | fmt = 'yyyy-MM-dd hh:mm:ss'; |
| | | } |
| | | if (/(y+)/.test(fmt)) { |
| | | fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)); |
| | | } |
| | | for (var k in o) { |
| | | if (new RegExp('(' + k + ')').test(fmt)) { |
| | | fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length))); |
| | | } |
| | | } |
| | | return fmt; |
| | | }, |
| | | |
| | | formatToDate: function (dateStr) { |
| | | if(this.isNotEmpty(dateStr) ){ |
| | | return new Date(Date.parse(dateStr.replace(/-/g, "/"))); |
| | | } |
| | | return ''; |
| | | }, |
| | | |
| | | /** |
| | | * 得到一天的开始 date类型 |
| | | * @param date |
| | | */ |
| | | getDateStart: function (date) { |
| | | var fmt = 'yyyy-MM-dd'; |
| | | var dateStartStr = this.getDateStartStr(date, fmt); |
| | | var startTime = new Date(Date.parse(dateStartStr)); |
| | | return startTime; |
| | | }, |
| | | |
| | | /** |
| | | * 得到一天的开始 str 类型 |
| | | * @param date |
| | | */ |
| | | getDateStartStr: function (date, fmt) { |
| | | if (typeof fmt == 'undefined') { |
| | | fmt = 'yyyy-MM-dd'; |
| | | } |
| | | var dateStr = this.format(date, fmt); |
| | | dateStr += ' 00:00:00'; |
| | | return dateStr; |
| | | }, |
| | | |
| | | /** |
| | | * 得到一天的结束 date类型 |
| | | * @param date |
| | | */ |
| | | getDateEnd: function (date) { |
| | | var fmt = 'yyyy-MM-dd'; |
| | | var dateEndStr = this.getDateEndStr(date, fmt); |
| | | var endTime = new Date(Date.parse(dateEndStr)); |
| | | return endTime; |
| | | }, |
| | | |
| | | /** |
| | | * 得到一天的结束 str 类型 |
| | | * @param date |
| | | */ |
| | | getDateEndStr: function (date, fmt) { |
| | | if (typeof fmt == 'undefined') { |
| | | fmt = 'yyyy-MM-dd'; |
| | | } |
| | | var endStr = this.format(date, fmt); |
| | | endStr += ' 23:59:59'; |
| | | return endStr; |
| | | }, |
| | | |
| | | /** |
| | | * 两个时间比较大小 |
| | | * @param d1 |
| | | * @param d2 |
| | | */ |
| | | compareDate: function (d1, d2) { |
| | | if (d1 && d2) { |
| | | if (d1.getTime() > d2.getTime()) { |
| | | return 1; |
| | | } else if (d1.getTime() == d2.getTime()) { |
| | | return 0; |
| | | } else if (d1.getTime() < d2.getTime()) { |
| | | return -1; |
| | | } |
| | | } |
| | | }, |
| | | |
| | | /** |
| | | * 得到星期几, 支持中英 |
| | | * @param date |
| | | * @param type |
| | | * @returns {string} |
| | | */ |
| | | getWeek: function (date, type) { |
| | | if (date) { |
| | | if (!this.isNotEmpty(type)) { |
| | | type = 0; |
| | | } |
| | | var index = date.getDay(); |
| | | var dateStr = ''; |
| | | switch (type) { |
| | | case this.WEEKTYPE.ZH_DAYNAME: |
| | | dateStr = _options.ZH.dayNames[index]; |
| | | break; |
| | | case this.WEEKTYPE.ZH_SDAYNAME: |
| | | dateStr = _options.ZH.shortDayNames[index]; |
| | | break; |
| | | case this.WEEKTYPE.US_DAYNAME: |
| | | dateStr = _options.US.dayNames[index]; |
| | | break; |
| | | case this.WEEKTYPE.US_SDAYNAME: |
| | | dateStr = _options.US.shortDayNames[index]; |
| | | break; |
| | | } |
| | | return dateStr; |
| | | } |
| | | }, |
| | | |
| | | /** |
| | | * 是否为闰年 |
| | | * @param date |
| | | * @returns {boolean} |
| | | */ |
| | | isLeapYear: function (date) { |
| | | if (date instanceof Date) { |
| | | return (0 == date.getYear() % 4 && (( date.getYear() % 100 != 0) || (date.getYear() % 400 == 0))); |
| | | } |
| | | console.warn('argument format is wrong'); |
| | | return false; |
| | | }, |
| | | |
| | | /** |
| | | * 字符串是否为正确的时间格式,支持 - / |
| | | * @param dateStr |
| | | * @returns {boolean} |
| | | */ |
| | | isValidDate: function (dateStr) { |
| | | if (this.isNotEmpty(dateStr)) { |
| | | var r= dateStr.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); |
| | | if(r==null){ |
| | | return false; |
| | | } |
| | | var d=new Date(r[1],r[3]-1,r[4]); |
| | | var num = (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]); |
| | | return (num!=0); |
| | | } |
| | | }, |
| | | |
| | | /** |
| | | * 增加天数 |
| | | * @param date |
| | | * @param dayNum |
| | | */ |
| | | addDay: function (date, dayNum) { |
| | | if(this.isNotEmpty(date) && this.isNotEmpty(dayNum) && date instanceof Date && typeof dayNum == 'number'){ |
| | | date.setDate(date.getDate() + dayNum); |
| | | }else{ |
| | | console.warn('date or dayNum format wrong'); |
| | | } |
| | | return date; |
| | | }, |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | addDayStr: function (dateStr, dayNum) { |
| | | var date =''; |
| | | if(this.isNotEmpty(dateStr) && this.isNotEmpty(dayNum) && typeof dayNum == 'number'){ |
| | | date = this.formatToDate(dateStr); |
| | | date.setDate(date.getDate() + dayNum); |
| | | }else{ |
| | | console.warn('dateStr or dayNum format wrong'); |
| | | } |
| | | return date; |
| | | }, |
| | | |
| | | /** |
| | | * 增加月份 |
| | | * @param date |
| | | * @param dayNum |
| | | */ |
| | | addMonth: function (date, monthNum) { |
| | | if(this.isNotEmpty(date) && this.isNotEmpty(monthNum) && date instanceof Date && typeof monthNum == 'number'){ |
| | | date.setMonth(date.getMonth() + monthNum); |
| | | }else{ |
| | | console.warn('date or monthNum format wrong'); |
| | | } |
| | | return date; |
| | | }, |
| | | |
| | | addMonthStr: function (dateStr, monthNum) { |
| | | var date =''; |
| | | if(this.isNotEmpty(dateStr) && this.isNotEmpty(monthNum) && typeof monthNum == 'number'){ |
| | | date = this.formatToDate(dateStr); |
| | | date.setMonth(date.getMonth() + monthNum); |
| | | }else{ |
| | | console.warn('date or monthNum format wrong'); |
| | | } |
| | | return date; |
| | | }, |
| | | |
| | | /** |
| | | * 增加年份 |
| | | * @param date |
| | | * @param dayNum |
| | | */ |
| | | addYear: function (date, yearNum) { |
| | | if(this.isNotEmpty(date) && this.isNotEmpty(yearNum) && date instanceof Date && typeof yearNum == 'number'){ |
| | | date.setYear(date.getFullYear() + yearNum); |
| | | }else{ |
| | | console.warn('date or yearNum format wrong'); |
| | | } |
| | | return date; |
| | | }, |
| | | |
| | | addYearStr: function (dateStr, yearNum) { |
| | | var date = ''; |
| | | if(this.isNotEmpty(dateStr) && this.isNotEmpty(yearNum) && typeof yearNum == 'number'){ |
| | | date = this.formatToDate(dateStr); |
| | | date.setYear(date.getFullYear() + yearNum); |
| | | }else{ |
| | | console.warn('date or yearNum format wrong'); |
| | | } |
| | | return date; |
| | | }, |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 是否为空 |
| | | * @param str |
| | | * @returns {boolean} |
| | | */ |
| | | isNotEmpty: function (str) { |
| | | if (str != '' && str != null && typeof str != 'undefined') { |
| | | return true; |
| | | } |
| | | console.warn('argument format is wrong'); |
| | | return false; |
| | | }, |
| | | |
| | | //定义内部常量 |
| | | WEEKTYPE: { |
| | | ZH_DAYNAME: 0, |
| | | ZH_SDAYNAME: 1, |
| | | US_DAYNAME: 2, |
| | | US_SDAYNAME: 3, |
| | | } |
| | | |
| | | |
| | | } |
| | | //这里确定了插件的名称 |
| | | this.DateFormat = _date_format_api; |
| | | })(); |
New file |
| | |
| | | |
| | | (function (root, factory) { |
| | | if (typeof define === 'function' && define.amd) { |
| | | // AMD. Register as an anonymous module. |
| | | define(['exports', 'echarts'], factory); |
| | | } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') { |
| | | // CommonJS |
| | | factory(exports, require('echarts')); |
| | | } else { |
| | | // Browser globals |
| | | factory({}, root.echarts); |
| | | } |
| | | }(this, function (exports, echarts) { |
| | | var log = function (msg) { |
| | | if (typeof console !== 'undefined') { |
| | | console && console.error && console.error(msg); |
| | | } |
| | | }; |
| | | if (!echarts) { |
| | | log('ECharts is not Loaded'); |
| | | return; |
| | | } |
| | | echarts.registerTheme('essos', { |
| | | "color": [ |
| | | "#893448", |
| | | "#d95850", |
| | | "#eb8146", |
| | | "#ffb248", |
| | | "#f2d643", |
| | | "#ebdba4" |
| | | ], |
| | | "backgroundColor": "rgba(242,234,191,0.15)", |
| | | "textStyle": {}, |
| | | "title": { |
| | | "textStyle": { |
| | | "color": "#893448" |
| | | }, |
| | | "subtextStyle": { |
| | | "color": "#d95850" |
| | | } |
| | | }, |
| | | "line": { |
| | | "itemStyle": { |
| | | "normal": { |
| | | "borderWidth": "2" |
| | | } |
| | | }, |
| | | "lineStyle": { |
| | | "normal": { |
| | | "width": "2" |
| | | } |
| | | }, |
| | | "symbolSize": "6", |
| | | "symbol": "emptyCircle", |
| | | "smooth": true |
| | | }, |
| | | "radar": { |
| | | "itemStyle": { |
| | | "normal": { |
| | | "borderWidth": "2" |
| | | } |
| | | }, |
| | | "lineStyle": { |
| | | "normal": { |
| | | "width": "2" |
| | | } |
| | | }, |
| | | "symbolSize": "6", |
| | | "symbol": "emptyCircle", |
| | | "smooth": true |
| | | }, |
| | | "bar": { |
| | | "itemStyle": { |
| | | "normal": { |
| | | "barBorderWidth": 0, |
| | | "barBorderColor": "#ccc" |
| | | }, |
| | | "emphasis": { |
| | | "barBorderWidth": 0, |
| | | "barBorderColor": "#ccc" |
| | | } |
| | | } |
| | | }, |
| | | "pie": { |
| | | "itemStyle": { |
| | | "normal": { |
| | | "borderWidth": 0, |
| | | "borderColor": "#ccc" |
| | | }, |
| | | "emphasis": { |
| | | "borderWidth": 0, |
| | | "borderColor": "#ccc" |
| | | } |
| | | } |
| | | }, |
| | | "scatter": { |
| | | "itemStyle": { |
| | | "normal": { |
| | | "borderWidth": 0, |
| | | "borderColor": "#ccc" |
| | | }, |
| | | "emphasis": { |
| | | "borderWidth": 0, |
| | | "borderColor": "#ccc" |
| | | } |
| | | } |
| | | }, |
| | | "boxplot": { |
| | | "itemStyle": { |
| | | "normal": { |
| | | "borderWidth": 0, |
| | | "borderColor": "#ccc" |
| | | }, |
| | | "emphasis": { |
| | | "borderWidth": 0, |
| | | "borderColor": "#ccc" |
| | | } |
| | | } |
| | | }, |
| | | "parallel": { |
| | | "itemStyle": { |
| | | "normal": { |
| | | "borderWidth": 0, |
| | | "borderColor": "#ccc" |
| | | }, |
| | | "emphasis": { |
| | | "borderWidth": 0, |
| | | "borderColor": "#ccc" |
| | | } |
| | | } |
| | | }, |
| | | "sankey": { |
| | | "itemStyle": { |
| | | "normal": { |
| | | "borderWidth": 0, |
| | | "borderColor": "#ccc" |
| | | }, |
| | | "emphasis": { |
| | | "borderWidth": 0, |
| | | "borderColor": "#ccc" |
| | | } |
| | | } |
| | | }, |
| | | "funnel": { |
| | | "itemStyle": { |
| | | "normal": { |
| | | "borderWidth": 0, |
| | | "borderColor": "#ccc" |
| | | }, |
| | | "emphasis": { |
| | | "borderWidth": 0, |
| | | "borderColor": "#ccc" |
| | | } |
| | | } |
| | | }, |
| | | "gauge": { |
| | | "itemStyle": { |
| | | "normal": { |
| | | "borderWidth": 0, |
| | | "borderColor": "#ccc" |
| | | }, |
| | | "emphasis": { |
| | | "borderWidth": 0, |
| | | "borderColor": "#ccc" |
| | | } |
| | | } |
| | | }, |
| | | "candlestick": { |
| | | "itemStyle": { |
| | | "normal": { |
| | | "color": "#eb8146", |
| | | "color0": "transparent", |
| | | "borderColor": "#d95850", |
| | | "borderColor0": "#58c470", |
| | | "borderWidth": "2" |
| | | } |
| | | } |
| | | }, |
| | | "graph": { |
| | | "itemStyle": { |
| | | "normal": { |
| | | "borderWidth": 0, |
| | | "borderColor": "#ccc" |
| | | } |
| | | }, |
| | | "lineStyle": { |
| | | "normal": { |
| | | "width": 1, |
| | | "color": "#aaaaaa" |
| | | } |
| | | }, |
| | | "symbolSize": "6", |
| | | "symbol": "emptyCircle", |
| | | "smooth": true, |
| | | "color": [ |
| | | "#893448", |
| | | "#d95850", |
| | | "#eb8146", |
| | | "#ffb248", |
| | | "#f2d643", |
| | | "#ebdba4" |
| | | ], |
| | | "label": { |
| | | "normal": { |
| | | "textStyle": { |
| | | "color": "#ffffff" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "map": { |
| | | "itemStyle": { |
| | | "normal": { |
| | | "areaColor": "#f3f3f3", |
| | | "borderColor": "#999999", |
| | | "borderWidth": 0.5 |
| | | }, |
| | | "emphasis": { |
| | | "areaColor": "rgba(255,178,72,1)", |
| | | "borderColor": "#eb8146", |
| | | "borderWidth": 1 |
| | | } |
| | | }, |
| | | "label": { |
| | | "normal": { |
| | | "textStyle": { |
| | | "color": "#893448" |
| | | } |
| | | }, |
| | | "emphasis": { |
| | | "textStyle": { |
| | | "color": "rgb(137,52,72)" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "geo": { |
| | | "itemStyle": { |
| | | "normal": { |
| | | "areaColor": "#f3f3f3", |
| | | "borderColor": "#999999", |
| | | "borderWidth": 0.5 |
| | | }, |
| | | "emphasis": { |
| | | "areaColor": "rgba(255,178,72,1)", |
| | | "borderColor": "#eb8146", |
| | | "borderWidth": 1 |
| | | } |
| | | }, |
| | | "label": { |
| | | "normal": { |
| | | "textStyle": { |
| | | "color": "#893448" |
| | | } |
| | | }, |
| | | "emphasis": { |
| | | "textStyle": { |
| | | "color": "rgb(137,52,72)" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "categoryAxis": { |
| | | "axisLine": { |
| | | "show": true, |
| | | "lineStyle": { |
| | | "color": "#aaaaaa" |
| | | } |
| | | }, |
| | | "axisTick": { |
| | | "show": false, |
| | | "lineStyle": { |
| | | "color": "#333" |
| | | } |
| | | }, |
| | | "axisLabel": { |
| | | "show": true, |
| | | "textStyle": { |
| | | "color": "#999999" |
| | | } |
| | | }, |
| | | "splitLine": { |
| | | "show": true, |
| | | "lineStyle": { |
| | | "color": [ |
| | | "#e6e6e6" |
| | | ] |
| | | } |
| | | }, |
| | | "splitArea": { |
| | | "show": false, |
| | | "areaStyle": { |
| | | "color": [ |
| | | "rgba(250,250,250,0.05)", |
| | | "rgba(200,200,200,0.02)" |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | "valueAxis": { |
| | | "axisLine": { |
| | | "show": true, |
| | | "lineStyle": { |
| | | "color": "#aaaaaa" |
| | | } |
| | | }, |
| | | "axisTick": { |
| | | "show": false, |
| | | "lineStyle": { |
| | | "color": "#333" |
| | | } |
| | | }, |
| | | "axisLabel": { |
| | | "show": true, |
| | | "textStyle": { |
| | | "color": "#999999" |
| | | } |
| | | }, |
| | | "splitLine": { |
| | | "show": true, |
| | | "lineStyle": { |
| | | "color": [ |
| | | "#e6e6e6" |
| | | ] |
| | | } |
| | | }, |
| | | "splitArea": { |
| | | "show": false, |
| | | "areaStyle": { |
| | | "color": [ |
| | | "rgba(250,250,250,0.05)", |
| | | "rgba(200,200,200,0.02)" |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | "logAxis": { |
| | | "axisLine": { |
| | | "show": true, |
| | | "lineStyle": { |
| | | "color": "#aaaaaa" |
| | | } |
| | | }, |
| | | "axisTick": { |
| | | "show": false, |
| | | "lineStyle": { |
| | | "color": "#333" |
| | | } |
| | | }, |
| | | "axisLabel": { |
| | | "show": true, |
| | | "textStyle": { |
| | | "color": "#999999" |
| | | } |
| | | }, |
| | | "splitLine": { |
| | | "show": true, |
| | | "lineStyle": { |
| | | "color": [ |
| | | "#e6e6e6" |
| | | ] |
| | | } |
| | | }, |
| | | "splitArea": { |
| | | "show": false, |
| | | "areaStyle": { |
| | | "color": [ |
| | | "rgba(250,250,250,0.05)", |
| | | "rgba(200,200,200,0.02)" |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | "timeAxis": { |
| | | "axisLine": { |
| | | "show": true, |
| | | "lineStyle": { |
| | | "color": "#aaaaaa" |
| | | } |
| | | }, |
| | | "axisTick": { |
| | | "show": false, |
| | | "lineStyle": { |
| | | "color": "#333" |
| | | } |
| | | }, |
| | | "axisLabel": { |
| | | "show": true, |
| | | "textStyle": { |
| | | "color": "#999999" |
| | | } |
| | | }, |
| | | "splitLine": { |
| | | "show": true, |
| | | "lineStyle": { |
| | | "color": [ |
| | | "#e6e6e6" |
| | | ] |
| | | } |
| | | }, |
| | | "splitArea": { |
| | | "show": false, |
| | | "areaStyle": { |
| | | "color": [ |
| | | "rgba(250,250,250,0.05)", |
| | | "rgba(200,200,200,0.02)" |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | "toolbox": { |
| | | "iconStyle": { |
| | | "normal": { |
| | | "borderColor": "#999999" |
| | | }, |
| | | "emphasis": { |
| | | "borderColor": "#666666" |
| | | } |
| | | } |
| | | }, |
| | | "legend": { |
| | | "textStyle": { |
| | | "color": "#999999" |
| | | } |
| | | }, |
| | | "tooltip": { |
| | | "axisPointer": { |
| | | "lineStyle": { |
| | | "color": "#cccccc", |
| | | "width": 1 |
| | | }, |
| | | "crossStyle": { |
| | | "color": "#cccccc", |
| | | "width": 1 |
| | | } |
| | | } |
| | | }, |
| | | "timeline": { |
| | | "lineStyle": { |
| | | "color": "#893448", |
| | | "width": 1 |
| | | }, |
| | | "itemStyle": { |
| | | "normal": { |
| | | "color": "#893448", |
| | | "borderWidth": 1 |
| | | }, |
| | | "emphasis": { |
| | | "color": "#ffb248" |
| | | } |
| | | }, |
| | | "controlStyle": { |
| | | "normal": { |
| | | "color": "#893448", |
| | | "borderColor": "#893448", |
| | | "borderWidth": 0.5 |
| | | }, |
| | | "emphasis": { |
| | | "color": "#893448", |
| | | "borderColor": "#893448", |
| | | "borderWidth": 0.5 |
| | | } |
| | | }, |
| | | "checkpointStyle": { |
| | | "color": "#eb8146", |
| | | "borderColor": "rgba(255,178,72,0.41)" |
| | | }, |
| | | "label": { |
| | | "normal": { |
| | | "textStyle": { |
| | | "color": "#893448" |
| | | } |
| | | }, |
| | | "emphasis": { |
| | | "textStyle": { |
| | | "color": "#893448" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "visualMap": { |
| | | "color": [ |
| | | "#893448", |
| | | "#d95850", |
| | | "#eb8146", |
| | | "#ffb248", |
| | | "#f2d643", |
| | | "rgb(247,238,173)" |
| | | ] |
| | | }, |
| | | "dataZoom": { |
| | | "backgroundColor": "rgba(255,255,255,0)", |
| | | "dataBackgroundColor": "rgba(255,178,72,0.5)", |
| | | "fillerColor": "rgba(255,178,72,0.15)", |
| | | "handleColor": "#ffb248", |
| | | "handleSize": "100%", |
| | | "textStyle": { |
| | | "color": "#333333" |
| | | } |
| | | }, |
| | | "markPoint": { |
| | | "label": { |
| | | "normal": { |
| | | "textStyle": { |
| | | "color": "#ffffff" |
| | | } |
| | | }, |
| | | "emphasis": { |
| | | "textStyle": { |
| | | "color": "#ffffff" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | })); |
New file |
| | |
| | | (function (root, factory) { |
| | | if (typeof define === 'function' && define.amd) { |
| | | // AMD. Register as an anonymous module. |
| | | define(['exports', 'echarts'], factory); |
| | | } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') { |
| | | // CommonJS |
| | | factory(exports, require('echarts')); |
| | | } else { |
| | | // Browser globals |
| | | factory({}, root.echarts); |
| | | } |
| | | }(this, function (exports, echarts) { |
| | | var log = function (msg) { |
| | | if (typeof console !== 'undefined') { |
| | | console && console.error && console.error(msg); |
| | | } |
| | | }; |
| | | if (!echarts) { |
| | | log('ECharts is not Loaded'); |
| | | return; |
| | | } |
| | | |
| | | var colorPalette = [ |
| | | '#2ec7c9','#b6a2de','#5ab1ef','#ffb980','#d87a80', |
| | | '#8d98b3','#e5cf0d','#97b552','#95706d','#dc69aa', |
| | | '#07a2a4','#9a7fd1','#588dd5','#f5994e','#c05050', |
| | | '#59678c','#c9ab00','#7eb00a','#6f5553','#c14089' |
| | | ]; |
| | | |
| | | |
| | | var theme = { |
| | | color: colorPalette, |
| | | |
| | | title: { |
| | | textStyle: { |
| | | fontWeight: 'normal', |
| | | color: '#008acd' |
| | | } |
| | | }, |
| | | |
| | | visualMap: { |
| | | itemWidth: 15, |
| | | color: ['#5ab1ef','#e0ffff'] |
| | | }, |
| | | |
| | | toolbox: { |
| | | iconStyle: { |
| | | normal: { |
| | | borderColor: colorPalette[0] |
| | | } |
| | | } |
| | | }, |
| | | |
| | | tooltip: { |
| | | backgroundColor: 'rgba(50,50,50,0.5)', |
| | | axisPointer : { |
| | | type : 'line', |
| | | lineStyle : { |
| | | color: '#008acd' |
| | | }, |
| | | crossStyle: { |
| | | color: '#008acd' |
| | | }, |
| | | shadowStyle : { |
| | | color: 'rgba(200,200,200,0.2)' |
| | | } |
| | | } |
| | | }, |
| | | |
| | | dataZoom: { |
| | | dataBackgroundColor: '#efefff', |
| | | fillerColor: 'rgba(182,162,222,0.2)', |
| | | handleColor: '#008acd' |
| | | }, |
| | | |
| | | grid: { |
| | | borderColor: '#eee' |
| | | }, |
| | | |
| | | categoryAxis: { |
| | | axisLine: { |
| | | lineStyle: { |
| | | color: '#008acd' |
| | | } |
| | | }, |
| | | splitLine: { |
| | | lineStyle: { |
| | | color: ['#eee'] |
| | | } |
| | | } |
| | | }, |
| | | |
| | | valueAxis: { |
| | | axisLine: { |
| | | lineStyle: { |
| | | color: '#008acd' |
| | | } |
| | | }, |
| | | splitArea : { |
| | | show : true, |
| | | areaStyle : { |
| | | color: ['rgba(250,250,250,0.1)','rgba(200,200,200,0.1)'] |
| | | } |
| | | }, |
| | | splitLine: { |
| | | lineStyle: { |
| | | color: ['#eee'] |
| | | } |
| | | } |
| | | }, |
| | | |
| | | timeline : { |
| | | lineStyle : { |
| | | color : '#008acd' |
| | | }, |
| | | controlStyle : { |
| | | normal : { color : '#008acd'}, |
| | | emphasis : { color : '#008acd'} |
| | | }, |
| | | symbol : 'emptyCircle', |
| | | symbolSize : 3 |
| | | }, |
| | | |
| | | line: { |
| | | smooth : true, |
| | | symbol: 'emptyCircle', |
| | | symbolSize: 3 |
| | | }, |
| | | |
| | | candlestick: { |
| | | itemStyle: { |
| | | normal: { |
| | | color: '#d87a80', |
| | | color0: '#2ec7c9', |
| | | lineStyle: { |
| | | color: '#d87a80', |
| | | color0: '#2ec7c9' |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | |
| | | scatter: { |
| | | symbol: 'circle', |
| | | symbolSize: 4 |
| | | }, |
| | | |
| | | map: { |
| | | label: { |
| | | normal: { |
| | | textStyle: { |
| | | color: '#d87a80' |
| | | } |
| | | } |
| | | }, |
| | | itemStyle: { |
| | | normal: { |
| | | borderColor: '#eee', |
| | | areaColor: '#ddd' |
| | | }, |
| | | emphasis: { |
| | | areaColor: '#fe994e' |
| | | } |
| | | } |
| | | }, |
| | | |
| | | graph: { |
| | | color: colorPalette |
| | | }, |
| | | |
| | | gauge : { |
| | | axisLine: { |
| | | lineStyle: { |
| | | color: [[0.2, '#2ec7c9'],[0.8, '#5ab1ef'],[1, '#d87a80']], |
| | | width: 10 |
| | | } |
| | | }, |
| | | axisTick: { |
| | | splitNumber: 10, |
| | | length :15, |
| | | lineStyle: { |
| | | color: 'auto' |
| | | } |
| | | }, |
| | | splitLine: { |
| | | length :22, |
| | | lineStyle: { |
| | | color: 'auto' |
| | | } |
| | | }, |
| | | pointer : { |
| | | width : 5 |
| | | } |
| | | } |
| | | }; |
| | | |
| | | echarts.registerTheme('macarons', theme); |
| | | })); |
New file |
| | |
| | | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.moment=t()}(this,function(){"use strict";var e,i;function c(){return e.apply(null,arguments)}function o(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function u(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function l(e){return void 0===e}function h(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function d(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function f(e,t){var n,s=[];for(n=0;n<e.length;++n)s.push(t(e[n],n));return s}function m(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function _(e,t){for(var n in t)m(t,n)&&(e[n]=t[n]);return m(t,"toString")&&(e.toString=t.toString),m(t,"valueOf")&&(e.valueOf=t.valueOf),e}function y(e,t,n,s){return Tt(e,t,n,s,!0).utc()}function g(e){return null==e._pf&&(e._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),e._pf}function v(e){if(null==e._isValid){var t=g(e),n=i.call(t.parsedDateParts,function(e){return null!=e}),s=!isNaN(e._d.getTime())&&t.overflow<0&&!t.empty&&!t.invalidMonth&&!t.invalidWeekday&&!t.weekdayMismatch&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&n);if(e._strict&&(s=s&&0===t.charsLeftOver&&0===t.unusedTokens.length&&void 0===t.bigHour),null!=Object.isFrozen&&Object.isFrozen(e))return s;e._isValid=s}return e._isValid}function p(e){var t=y(NaN);return null!=e?_(g(t),e):g(t).userInvalidated=!0,t}i=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),n=t.length>>>0,s=0;s<n;s++)if(s in t&&e.call(this,t[s],s,t))return!0;return!1};var r=c.momentProperties=[];function w(e,t){var n,s,i;if(l(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),l(t._i)||(e._i=t._i),l(t._f)||(e._f=t._f),l(t._l)||(e._l=t._l),l(t._strict)||(e._strict=t._strict),l(t._tzm)||(e._tzm=t._tzm),l(t._isUTC)||(e._isUTC=t._isUTC),l(t._offset)||(e._offset=t._offset),l(t._pf)||(e._pf=g(t)),l(t._locale)||(e._locale=t._locale),0<r.length)for(n=0;n<r.length;n++)l(i=t[s=r[n]])||(e[s]=i);return e}var t=!1;function M(e){w(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===t&&(t=!0,c.updateOffset(this),t=!1)}function k(e){return e instanceof M||null!=e&&null!=e._isAMomentObject}function S(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function D(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=S(t)),n}function a(e,t,n){var s,i=Math.min(e.length,t.length),r=Math.abs(e.length-t.length),a=0;for(s=0;s<i;s++)(n&&e[s]!==t[s]||!n&&D(e[s])!==D(t[s]))&&a++;return a+r}function Y(e){!1===c.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function n(i,r){var a=!0;return _(function(){if(null!=c.deprecationHandler&&c.deprecationHandler(null,i),a){for(var e,t=[],n=0;n<arguments.length;n++){if(e="","object"==typeof arguments[n]){for(var s in e+="\n["+n+"] ",arguments[0])e+=s+": "+arguments[0][s]+", ";e=e.slice(0,-2)}else e=arguments[n];t.push(e)}Y(i+"\nArguments: "+Array.prototype.slice.call(t).join("")+"\n"+(new Error).stack),a=!1}return r.apply(this,arguments)},r)}var s,O={};function T(e,t){null!=c.deprecationHandler&&c.deprecationHandler(e,t),O[e]||(Y(t),O[e]=!0)}function b(e){return e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function x(e,t){var n,s=_({},e);for(n in t)m(t,n)&&(u(e[n])&&u(t[n])?(s[n]={},_(s[n],e[n]),_(s[n],t[n])):null!=t[n]?s[n]=t[n]:delete s[n]);for(n in e)m(e,n)&&!m(t,n)&&u(e[n])&&(s[n]=_({},s[n]));return s}function P(e){null!=e&&this.set(e)}c.suppressDeprecationWarnings=!1,c.deprecationHandler=null,s=Object.keys?Object.keys:function(e){var t,n=[];for(t in e)m(e,t)&&n.push(t);return n};var W={};function C(e,t){var n=e.toLowerCase();W[n]=W[n+"s"]=W[t]=e}function H(e){return"string"==typeof e?W[e]||W[e.toLowerCase()]:void 0}function R(e){var t,n,s={};for(n in e)m(e,n)&&(t=H(n))&&(s[t]=e[n]);return s}var U={};function F(e,t){U[e]=t}function L(e,t,n){var s=""+Math.abs(e),i=t-s.length;return(0<=e?n?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+s}var N=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,G=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,V={},E={};function I(e,t,n,s){var i=s;"string"==typeof s&&(i=function(){return this[s]()}),e&&(E[e]=i),t&&(E[t[0]]=function(){return L(i.apply(this,arguments),t[1],t[2])}),n&&(E[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function A(e,t){return e.isValid()?(t=j(t,e.localeData()),V[t]=V[t]||function(s){var e,i,t,r=s.match(N);for(e=0,i=r.length;e<i;e++)E[r[e]]?r[e]=E[r[e]]:r[e]=(t=r[e]).match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"");return function(e){var t,n="";for(t=0;t<i;t++)n+=b(r[t])?r[t].call(e,s):r[t];return n}}(t),V[t](e)):e.localeData().invalidDate()}function j(e,t){var n=5;function s(e){return t.longDateFormat(e)||e}for(G.lastIndex=0;0<=n&&G.test(e);)e=e.replace(G,s),G.lastIndex=0,n-=1;return e}var Z=/\d/,z=/\d\d/,$=/\d{3}/,q=/\d{4}/,J=/[+-]?\d{6}/,B=/\d\d?/,Q=/\d\d\d\d?/,X=/\d\d\d\d\d\d?/,K=/\d{1,3}/,ee=/\d{1,4}/,te=/[+-]?\d{1,6}/,ne=/\d+/,se=/[+-]?\d+/,ie=/Z|[+-]\d\d:?\d\d/gi,re=/Z|[+-]\d\d(?::?\d\d)?/gi,ae=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,oe={};function ue(e,n,s){oe[e]=b(n)?n:function(e,t){return e&&s?s:n}}function le(e,t){return m(oe,e)?oe[e](t._strict,t._locale):new RegExp(he(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,s,i){return t||n||s||i})))}function he(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var de={};function ce(e,n){var t,s=n;for("string"==typeof e&&(e=[e]),h(n)&&(s=function(e,t){t[n]=D(e)}),t=0;t<e.length;t++)de[e[t]]=s}function fe(e,i){ce(e,function(e,t,n,s){n._w=n._w||{},i(e,n._w,n,s)})}var me=0,_e=1,ye=2,ge=3,ve=4,pe=5,we=6,Me=7,ke=8;function Se(e){return De(e)?366:365}function De(e){return e%4==0&&e%100!=0||e%400==0}I("Y",0,0,function(){var e=this.year();return e<=9999?""+e:"+"+e}),I(0,["YY",2],0,function(){return this.year()%100}),I(0,["YYYY",4],0,"year"),I(0,["YYYYY",5],0,"year"),I(0,["YYYYYY",6,!0],0,"year"),C("year","y"),F("year",1),ue("Y",se),ue("YY",B,z),ue("YYYY",ee,q),ue("YYYYY",te,J),ue("YYYYYY",te,J),ce(["YYYYY","YYYYYY"],me),ce("YYYY",function(e,t){t[me]=2===e.length?c.parseTwoDigitYear(e):D(e)}),ce("YY",function(e,t){t[me]=c.parseTwoDigitYear(e)}),ce("Y",function(e,t){t[me]=parseInt(e,10)}),c.parseTwoDigitYear=function(e){return D(e)+(68<D(e)?1900:2e3)};var Ye,Oe=Te("FullYear",!0);function Te(t,n){return function(e){return null!=e?(xe(this,t,e),c.updateOffset(this,n),this):be(this,t)}}function be(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function xe(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&De(e.year())&&1===e.month()&&29===e.date()?e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),Pe(n,e.month())):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function Pe(e,t){if(isNaN(e)||isNaN(t))return NaN;var n,s=(t%(n=12)+n)%n;return e+=(t-s)/12,1===s?De(e)?29:28:31-s%7%2}Ye=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t<this.length;++t)if(this[t]===e)return t;return-1},I("M",["MM",2],"Mo",function(){return this.month()+1}),I("MMM",0,0,function(e){return this.localeData().monthsShort(this,e)}),I("MMMM",0,0,function(e){return this.localeData().months(this,e)}),C("month","M"),F("month",8),ue("M",B),ue("MM",B,z),ue("MMM",function(e,t){return t.monthsShortRegex(e)}),ue("MMMM",function(e,t){return t.monthsRegex(e)}),ce(["M","MM"],function(e,t){t[_e]=D(e)-1}),ce(["MMM","MMMM"],function(e,t,n,s){var i=n._locale.monthsParse(e,s,n._strict);null!=i?t[_e]=i:g(n).invalidMonth=e});var We=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,Ce="January_February_March_April_May_June_July_August_September_October_November_December".split("_");var He="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_");function Re(e,t){var n;if(!e.isValid())return e;if("string"==typeof t)if(/^\d+$/.test(t))t=D(t);else if(!h(t=e.localeData().monthsParse(t)))return e;return n=Math.min(e.date(),Pe(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,n),e}function Ue(e){return null!=e?(Re(this,e),c.updateOffset(this,!0),this):be(this,"Month")}var Fe=ae;var Le=ae;function Ne(){function e(e,t){return t.length-e.length}var t,n,s=[],i=[],r=[];for(t=0;t<12;t++)n=y([2e3,t]),s.push(this.monthsShort(n,"")),i.push(this.months(n,"")),r.push(this.months(n,"")),r.push(this.monthsShort(n,""));for(s.sort(e),i.sort(e),r.sort(e),t=0;t<12;t++)s[t]=he(s[t]),i[t]=he(i[t]);for(t=0;t<24;t++)r[t]=he(r[t]);this._monthsRegex=new RegExp("^("+r.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+s.join("|")+")","i")}function Ge(e){var t;if(e<100&&0<=e){var n=Array.prototype.slice.call(arguments);n[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)}else t=new Date(Date.UTC.apply(null,arguments));return t}function Ve(e,t,n){var s=7+t-n;return-((7+Ge(e,0,s).getUTCDay()-t)%7)+s-1}function Ee(e,t,n,s,i){var r,a,o=1+7*(t-1)+(7+n-s)%7+Ve(e,s,i);return a=o<=0?Se(r=e-1)+o:o>Se(e)?(r=e+1,o-Se(e)):(r=e,o),{year:r,dayOfYear:a}}function Ie(e,t,n){var s,i,r=Ve(e.year(),t,n),a=Math.floor((e.dayOfYear()-r-1)/7)+1;return a<1?s=a+Ae(i=e.year()-1,t,n):a>Ae(e.year(),t,n)?(s=a-Ae(e.year(),t,n),i=e.year()+1):(i=e.year(),s=a),{week:s,year:i}}function Ae(e,t,n){var s=Ve(e,t,n),i=Ve(e+1,t,n);return(Se(e)-s+i)/7}I("w",["ww",2],"wo","week"),I("W",["WW",2],"Wo","isoWeek"),C("week","w"),C("isoWeek","W"),F("week",5),F("isoWeek",5),ue("w",B),ue("ww",B,z),ue("W",B),ue("WW",B,z),fe(["w","ww","W","WW"],function(e,t,n,s){t[s.substr(0,1)]=D(e)});function je(e,t){return e.slice(t,7).concat(e.slice(0,t))}I("d",0,"do","day"),I("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),I("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),I("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),I("e",0,0,"weekday"),I("E",0,0,"isoWeekday"),C("day","d"),C("weekday","e"),C("isoWeekday","E"),F("day",11),F("weekday",11),F("isoWeekday",11),ue("d",B),ue("e",B),ue("E",B),ue("dd",function(e,t){return t.weekdaysMinRegex(e)}),ue("ddd",function(e,t){return t.weekdaysShortRegex(e)}),ue("dddd",function(e,t){return t.weekdaysRegex(e)}),fe(["dd","ddd","dddd"],function(e,t,n,s){var i=n._locale.weekdaysParse(e,s,n._strict);null!=i?t.d=i:g(n).invalidWeekday=e}),fe(["d","e","E"],function(e,t,n,s){t[s]=D(e)});var Ze="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_");var ze="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_");var $e="Su_Mo_Tu_We_Th_Fr_Sa".split("_");var qe=ae;var Je=ae;var Be=ae;function Qe(){function e(e,t){return t.length-e.length}var t,n,s,i,r,a=[],o=[],u=[],l=[];for(t=0;t<7;t++)n=y([2e3,1]).day(t),s=this.weekdaysMin(n,""),i=this.weekdaysShort(n,""),r=this.weekdays(n,""),a.push(s),o.push(i),u.push(r),l.push(s),l.push(i),l.push(r);for(a.sort(e),o.sort(e),u.sort(e),l.sort(e),t=0;t<7;t++)o[t]=he(o[t]),u[t]=he(u[t]),l[t]=he(l[t]);this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+a.join("|")+")","i")}function Xe(){return this.hours()%12||12}function Ke(e,t){I(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function et(e,t){return t._meridiemParse}I("H",["HH",2],0,"hour"),I("h",["hh",2],0,Xe),I("k",["kk",2],0,function(){return this.hours()||24}),I("hmm",0,0,function(){return""+Xe.apply(this)+L(this.minutes(),2)}),I("hmmss",0,0,function(){return""+Xe.apply(this)+L(this.minutes(),2)+L(this.seconds(),2)}),I("Hmm",0,0,function(){return""+this.hours()+L(this.minutes(),2)}),I("Hmmss",0,0,function(){return""+this.hours()+L(this.minutes(),2)+L(this.seconds(),2)}),Ke("a",!0),Ke("A",!1),C("hour","h"),F("hour",13),ue("a",et),ue("A",et),ue("H",B),ue("h",B),ue("k",B),ue("HH",B,z),ue("hh",B,z),ue("kk",B,z),ue("hmm",Q),ue("hmmss",X),ue("Hmm",Q),ue("Hmmss",X),ce(["H","HH"],ge),ce(["k","kk"],function(e,t,n){var s=D(e);t[ge]=24===s?0:s}),ce(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),ce(["h","hh"],function(e,t,n){t[ge]=D(e),g(n).bigHour=!0}),ce("hmm",function(e,t,n){var s=e.length-2;t[ge]=D(e.substr(0,s)),t[ve]=D(e.substr(s)),g(n).bigHour=!0}),ce("hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[ge]=D(e.substr(0,s)),t[ve]=D(e.substr(s,2)),t[pe]=D(e.substr(i)),g(n).bigHour=!0}),ce("Hmm",function(e,t,n){var s=e.length-2;t[ge]=D(e.substr(0,s)),t[ve]=D(e.substr(s))}),ce("Hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[ge]=D(e.substr(0,s)),t[ve]=D(e.substr(s,2)),t[pe]=D(e.substr(i))});var tt,nt=Te("Hours",!0),st={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Ce,monthsShort:He,week:{dow:0,doy:6},weekdays:Ze,weekdaysMin:$e,weekdaysShort:ze,meridiemParse:/[ap]\.?m?\.?/i},it={},rt={};function at(e){return e?e.toLowerCase().replace("_","-"):e}function ot(e){var t=null;if(!it[e]&&"undefined"!=typeof module&&module&&module.exports)try{t=tt._abbr,require("./locale/"+e),ut(t)}catch(e){}return it[e]}function ut(e,t){var n;return e&&((n=l(t)?ht(e):lt(e,t))?tt=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),tt._abbr}function lt(e,t){if(null===t)return delete it[e],null;var n,s=st;if(t.abbr=e,null!=it[e])T("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=it[e]._config;else if(null!=t.parentLocale)if(null!=it[t.parentLocale])s=it[t.parentLocale]._config;else{if(null==(n=ot(t.parentLocale)))return rt[t.parentLocale]||(rt[t.parentLocale]=[]),rt[t.parentLocale].push({name:e,config:t}),null;s=n._config}return it[e]=new P(x(s,t)),rt[e]&&rt[e].forEach(function(e){lt(e.name,e.config)}),ut(e),it[e]}function ht(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return tt;if(!o(e)){if(t=ot(e))return t;e=[e]}return function(e){for(var t,n,s,i,r=0;r<e.length;){for(t=(i=at(e[r]).split("-")).length,n=(n=at(e[r+1]))?n.split("-"):null;0<t;){if(s=ot(i.slice(0,t).join("-")))return s;if(n&&n.length>=t&&a(i,n,!0)>=t-1)break;t--}r++}return tt}(e)}function dt(e){var t,n=e._a;return n&&-2===g(e).overflow&&(t=n[_e]<0||11<n[_e]?_e:n[ye]<1||n[ye]>Pe(n[me],n[_e])?ye:n[ge]<0||24<n[ge]||24===n[ge]&&(0!==n[ve]||0!==n[pe]||0!==n[we])?ge:n[ve]<0||59<n[ve]?ve:n[pe]<0||59<n[pe]?pe:n[we]<0||999<n[we]?we:-1,g(e)._overflowDayOfYear&&(t<me||ye<t)&&(t=ye),g(e)._overflowWeeks&&-1===t&&(t=Me),g(e)._overflowWeekday&&-1===t&&(t=ke),g(e).overflow=t),e}function ct(e,t,n){return null!=e?e:null!=t?t:n}function ft(e){var t,n,s,i,r,a=[];if(!e._d){var o,u;for(o=e,u=new Date(c.now()),s=o._useUTC?[u.getUTCFullYear(),u.getUTCMonth(),u.getUTCDate()]:[u.getFullYear(),u.getMonth(),u.getDate()],e._w&&null==e._a[ye]&&null==e._a[_e]&&function(e){var t,n,s,i,r,a,o,u;if(null!=(t=e._w).GG||null!=t.W||null!=t.E)r=1,a=4,n=ct(t.GG,e._a[me],Ie(bt(),1,4).year),s=ct(t.W,1),((i=ct(t.E,1))<1||7<i)&&(u=!0);else{r=e._locale._week.dow,a=e._locale._week.doy;var l=Ie(bt(),r,a);n=ct(t.gg,e._a[me],l.year),s=ct(t.w,l.week),null!=t.d?((i=t.d)<0||6<i)&&(u=!0):null!=t.e?(i=t.e+r,(t.e<0||6<t.e)&&(u=!0)):i=r}s<1||s>Ae(n,r,a)?g(e)._overflowWeeks=!0:null!=u?g(e)._overflowWeekday=!0:(o=Ee(n,s,i,r,a),e._a[me]=o.year,e._dayOfYear=o.dayOfYear)}(e),null!=e._dayOfYear&&(r=ct(e._a[me],s[me]),(e._dayOfYear>Se(r)||0===e._dayOfYear)&&(g(e)._overflowDayOfYear=!0),n=Ge(r,0,e._dayOfYear),e._a[_e]=n.getUTCMonth(),e._a[ye]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=a[t]=s[t];for(;t<7;t++)e._a[t]=a[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[ge]&&0===e._a[ve]&&0===e._a[pe]&&0===e._a[we]&&(e._nextDay=!0,e._a[ge]=0),e._d=(e._useUTC?Ge:function(e,t,n,s,i,r,a){var o;return e<100&&0<=e?(o=new Date(e+400,t,n,s,i,r,a),isFinite(o.getFullYear())&&o.setFullYear(e)):o=new Date(e,t,n,s,i,r,a),o}).apply(null,a),i=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[ge]=24),e._w&&void 0!==e._w.d&&e._w.d!==i&&(g(e).weekdayMismatch=!0)}}var mt=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,_t=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,yt=/Z|[+-]\d\d(?::?\d\d)?/,gt=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],vt=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],pt=/^\/?Date\((\-?\d+)/i;function wt(e){var t,n,s,i,r,a,o=e._i,u=mt.exec(o)||_t.exec(o);if(u){for(g(e).iso=!0,t=0,n=gt.length;t<n;t++)if(gt[t][1].exec(u[1])){i=gt[t][0],s=!1!==gt[t][2];break}if(null==i)return void(e._isValid=!1);if(u[3]){for(t=0,n=vt.length;t<n;t++)if(vt[t][1].exec(u[3])){r=(u[2]||" ")+vt[t][0];break}if(null==r)return void(e._isValid=!1)}if(!s&&null!=r)return void(e._isValid=!1);if(u[4]){if(!yt.exec(u[4]))return void(e._isValid=!1);a="Z"}e._f=i+(r||"")+(a||""),Yt(e)}else e._isValid=!1}var Mt=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;function kt(e,t,n,s,i,r){var a=[function(e){var t=parseInt(e,10);{if(t<=49)return 2e3+t;if(t<=999)return 1900+t}return t}(e),He.indexOf(t),parseInt(n,10),parseInt(s,10),parseInt(i,10)];return r&&a.push(parseInt(r,10)),a}var St={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Dt(e){var t,n,s,i=Mt.exec(e._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));if(i){var r=kt(i[4],i[3],i[2],i[5],i[6],i[7]);if(t=i[1],n=r,s=e,t&&ze.indexOf(t)!==new Date(n[0],n[1],n[2]).getDay()&&(g(s).weekdayMismatch=!0,!(s._isValid=!1)))return;e._a=r,e._tzm=function(e,t,n){if(e)return St[e];if(t)return 0;var s=parseInt(n,10),i=s%100;return(s-i)/100*60+i}(i[8],i[9],i[10]),e._d=Ge.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),g(e).rfc2822=!0}else e._isValid=!1}function Yt(e){if(e._f!==c.ISO_8601)if(e._f!==c.RFC_2822){e._a=[],g(e).empty=!0;var t,n,s,i,r,a,o,u,l=""+e._i,h=l.length,d=0;for(s=j(e._f,e._locale).match(N)||[],t=0;t<s.length;t++)i=s[t],(n=(l.match(le(i,e))||[])[0])&&(0<(r=l.substr(0,l.indexOf(n))).length&&g(e).unusedInput.push(r),l=l.slice(l.indexOf(n)+n.length),d+=n.length),E[i]?(n?g(e).empty=!1:g(e).unusedTokens.push(i),a=i,u=e,null!=(o=n)&&m(de,a)&&de[a](o,u._a,u,a)):e._strict&&!n&&g(e).unusedTokens.push(i);g(e).charsLeftOver=h-d,0<l.length&&g(e).unusedInput.push(l),e._a[ge]<=12&&!0===g(e).bigHour&&0<e._a[ge]&&(g(e).bigHour=void 0),g(e).parsedDateParts=e._a.slice(0),g(e).meridiem=e._meridiem,e._a[ge]=function(e,t,n){var s;if(null==n)return t;return null!=e.meridiemHour?e.meridiemHour(t,n):(null!=e.isPM&&((s=e.isPM(n))&&t<12&&(t+=12),s||12!==t||(t=0)),t)}(e._locale,e._a[ge],e._meridiem),ft(e),dt(e)}else Dt(e);else wt(e)}function Ot(e){var t,n,s,i,r=e._i,a=e._f;return e._locale=e._locale||ht(e._l),null===r||void 0===a&&""===r?p({nullInput:!0}):("string"==typeof r&&(e._i=r=e._locale.preparse(r)),k(r)?new M(dt(r)):(d(r)?e._d=r:o(a)?function(e){var t,n,s,i,r;if(0===e._f.length)return g(e).invalidFormat=!0,e._d=new Date(NaN);for(i=0;i<e._f.length;i++)r=0,t=w({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[i],Yt(t),v(t)&&(r+=g(t).charsLeftOver,r+=10*g(t).unusedTokens.length,g(t).score=r,(null==s||r<s)&&(s=r,n=t));_(e,n||t)}(e):a?Yt(e):l(n=(t=e)._i)?t._d=new Date(c.now()):d(n)?t._d=new Date(n.valueOf()):"string"==typeof n?(s=t,null===(i=pt.exec(s._i))?(wt(s),!1===s._isValid&&(delete s._isValid,Dt(s),!1===s._isValid&&(delete s._isValid,c.createFromInputFallback(s)))):s._d=new Date(+i[1])):o(n)?(t._a=f(n.slice(0),function(e){return parseInt(e,10)}),ft(t)):u(n)?function(e){if(!e._d){var t=R(e._i);e._a=f([t.year,t.month,t.day||t.date,t.hour,t.minute,t.second,t.millisecond],function(e){return e&&parseInt(e,10)}),ft(e)}}(t):h(n)?t._d=new Date(n):c.createFromInputFallback(t),v(e)||(e._d=null),e))}function Tt(e,t,n,s,i){var r,a={};return!0!==n&&!1!==n||(s=n,n=void 0),(u(e)&&function(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(e.hasOwnProperty(t))return!1;return!0}(e)||o(e)&&0===e.length)&&(e=void 0),a._isAMomentObject=!0,a._useUTC=a._isUTC=i,a._l=n,a._i=e,a._f=t,a._strict=s,(r=new M(dt(Ot(a))))._nextDay&&(r.add(1,"d"),r._nextDay=void 0),r}function bt(e,t,n,s){return Tt(e,t,n,s,!1)}c.createFromInputFallback=n("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))}),c.ISO_8601=function(){},c.RFC_2822=function(){};var xt=n("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=bt.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:p()}),Pt=n("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=bt.apply(null,arguments);return this.isValid()&&e.isValid()?this<e?this:e:p()});function Wt(e,t){var n,s;if(1===t.length&&o(t[0])&&(t=t[0]),!t.length)return bt();for(n=t[0],s=1;s<t.length;++s)t[s].isValid()&&!t[s][e](n)||(n=t[s]);return n}var Ct=["year","quarter","month","week","day","hour","minute","second","millisecond"];function Ht(e){var t=R(e),n=t.year||0,s=t.quarter||0,i=t.month||0,r=t.week||t.isoWeek||0,a=t.day||0,o=t.hour||0,u=t.minute||0,l=t.second||0,h=t.millisecond||0;this._isValid=function(e){for(var t in e)if(-1===Ye.call(Ct,t)||null!=e[t]&&isNaN(e[t]))return!1;for(var n=!1,s=0;s<Ct.length;++s)if(e[Ct[s]]){if(n)return!1;parseFloat(e[Ct[s]])!==D(e[Ct[s]])&&(n=!0)}return!0}(t),this._milliseconds=+h+1e3*l+6e4*u+1e3*o*60*60,this._days=+a+7*r,this._months=+i+3*s+12*n,this._data={},this._locale=ht(),this._bubble()}function Rt(e){return e instanceof Ht}function Ut(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function Ft(e,n){I(e,0,0,function(){var e=this.utcOffset(),t="+";return e<0&&(e=-e,t="-"),t+L(~~(e/60),2)+n+L(~~e%60,2)})}Ft("Z",":"),Ft("ZZ",""),ue("Z",re),ue("ZZ",re),ce(["Z","ZZ"],function(e,t,n){n._useUTC=!0,n._tzm=Nt(re,e)});var Lt=/([\+\-]|\d\d)/gi;function Nt(e,t){var n=(t||"").match(e);if(null===n)return null;var s=((n[n.length-1]||[])+"").match(Lt)||["-",0,0],i=60*s[1]+D(s[2]);return 0===i?0:"+"===s[0]?i:-i}function Gt(e,t){var n,s;return t._isUTC?(n=t.clone(),s=(k(e)||d(e)?e.valueOf():bt(e).valueOf())-n.valueOf(),n._d.setTime(n._d.valueOf()+s),c.updateOffset(n,!1),n):bt(e).local()}function Vt(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}function Et(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}c.updateOffset=function(){};var It=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,At=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function jt(e,t){var n,s,i,r=e,a=null;return Rt(e)?r={ms:e._milliseconds,d:e._days,M:e._months}:h(e)?(r={},t?r[t]=e:r.milliseconds=e):(a=It.exec(e))?(n="-"===a[1]?-1:1,r={y:0,d:D(a[ye])*n,h:D(a[ge])*n,m:D(a[ve])*n,s:D(a[pe])*n,ms:D(Ut(1e3*a[we]))*n}):(a=At.exec(e))?(n="-"===a[1]?-1:1,r={y:Zt(a[2],n),M:Zt(a[3],n),w:Zt(a[4],n),d:Zt(a[5],n),h:Zt(a[6],n),m:Zt(a[7],n),s:Zt(a[8],n)}):null==r?r={}:"object"==typeof r&&("from"in r||"to"in r)&&(i=function(e,t){var n;if(!e.isValid()||!t.isValid())return{milliseconds:0,months:0};t=Gt(t,e),e.isBefore(t)?n=zt(e,t):((n=zt(t,e)).milliseconds=-n.milliseconds,n.months=-n.months);return n}(bt(r.from),bt(r.to)),(r={}).ms=i.milliseconds,r.M=i.months),s=new Ht(r),Rt(e)&&m(e,"_locale")&&(s._locale=e._locale),s}function Zt(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function zt(e,t){var n={};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function $t(s,i){return function(e,t){var n;return null===t||isNaN(+t)||(T(i,"moment()."+i+"(period, number) is deprecated. Please use moment()."+i+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),n=e,e=t,t=n),qt(this,jt(e="string"==typeof e?+e:e,t),s),this}}function qt(e,t,n,s){var i=t._milliseconds,r=Ut(t._days),a=Ut(t._months);e.isValid()&&(s=null==s||s,a&&Re(e,be(e,"Month")+a*n),r&&xe(e,"Date",be(e,"Date")+r*n),i&&e._d.setTime(e._d.valueOf()+i*n),s&&c.updateOffset(e,r||a))}jt.fn=Ht.prototype,jt.invalid=function(){return jt(NaN)};var Jt=$t(1,"add"),Bt=$t(-1,"subtract");function Qt(e,t){var n=12*(t.year()-e.year())+(t.month()-e.month()),s=e.clone().add(n,"months");return-(n+(t-s<0?(t-s)/(s-e.clone().add(n-1,"months")):(t-s)/(e.clone().add(n+1,"months")-s)))||0}function Xt(e){var t;return void 0===e?this._locale._abbr:(null!=(t=ht(e))&&(this._locale=t),this)}c.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",c.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Kt=n("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});function en(){return this._locale}var tn=126227808e5;function nn(e,t){return(e%t+t)%t}function sn(e,t,n){return e<100&&0<=e?new Date(e+400,t,n)-tn:new Date(e,t,n).valueOf()}function rn(e,t,n){return e<100&&0<=e?Date.UTC(e+400,t,n)-tn:Date.UTC(e,t,n)}function an(e,t){I(0,[e,e.length],0,t)}function on(e,t,n,s,i){var r;return null==e?Ie(this,s,i).year:((r=Ae(e,s,i))<t&&(t=r),function(e,t,n,s,i){var r=Ee(e,t,n,s,i),a=Ge(r.year,0,r.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}.call(this,e,t,n,s,i))}I(0,["gg",2],0,function(){return this.weekYear()%100}),I(0,["GG",2],0,function(){return this.isoWeekYear()%100}),an("gggg","weekYear"),an("ggggg","weekYear"),an("GGGG","isoWeekYear"),an("GGGGG","isoWeekYear"),C("weekYear","gg"),C("isoWeekYear","GG"),F("weekYear",1),F("isoWeekYear",1),ue("G",se),ue("g",se),ue("GG",B,z),ue("gg",B,z),ue("GGGG",ee,q),ue("gggg",ee,q),ue("GGGGG",te,J),ue("ggggg",te,J),fe(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,s){t[s.substr(0,2)]=D(e)}),fe(["gg","GG"],function(e,t,n,s){t[s]=c.parseTwoDigitYear(e)}),I("Q",0,"Qo","quarter"),C("quarter","Q"),F("quarter",7),ue("Q",Z),ce("Q",function(e,t){t[_e]=3*(D(e)-1)}),I("D",["DD",2],"Do","date"),C("date","D"),F("date",9),ue("D",B),ue("DD",B,z),ue("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),ce(["D","DD"],ye),ce("Do",function(e,t){t[ye]=D(e.match(B)[0])});var un=Te("Date",!0);I("DDD",["DDDD",3],"DDDo","dayOfYear"),C("dayOfYear","DDD"),F("dayOfYear",4),ue("DDD",K),ue("DDDD",$),ce(["DDD","DDDD"],function(e,t,n){n._dayOfYear=D(e)}),I("m",["mm",2],0,"minute"),C("minute","m"),F("minute",14),ue("m",B),ue("mm",B,z),ce(["m","mm"],ve);var ln=Te("Minutes",!1);I("s",["ss",2],0,"second"),C("second","s"),F("second",15),ue("s",B),ue("ss",B,z),ce(["s","ss"],pe);var hn,dn=Te("Seconds",!1);for(I("S",0,0,function(){return~~(this.millisecond()/100)}),I(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),I(0,["SSS",3],0,"millisecond"),I(0,["SSSS",4],0,function(){return 10*this.millisecond()}),I(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),I(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),I(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),I(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),I(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),C("millisecond","ms"),F("millisecond",16),ue("S",K,Z),ue("SS",K,z),ue("SSS",K,$),hn="SSSS";hn.length<=9;hn+="S")ue(hn,ne);function cn(e,t){t[we]=D(1e3*("0."+e))}for(hn="S";hn.length<=9;hn+="S")ce(hn,cn);var fn=Te("Milliseconds",!1);I("z",0,0,"zoneAbbr"),I("zz",0,0,"zoneName");var mn=M.prototype;function _n(e){return e}mn.add=Jt,mn.calendar=function(e,t){var n=e||bt(),s=Gt(n,this).startOf("day"),i=c.calendarFormat(this,s)||"sameElse",r=t&&(b(t[i])?t[i].call(this,n):t[i]);return this.format(r||this.localeData().calendar(i,this,bt(n)))},mn.clone=function(){return new M(this)},mn.diff=function(e,t,n){var s,i,r;if(!this.isValid())return NaN;if(!(s=Gt(e,this)).isValid())return NaN;switch(i=6e4*(s.utcOffset()-this.utcOffset()),t=H(t)){case"year":r=Qt(this,s)/12;break;case"month":r=Qt(this,s);break;case"quarter":r=Qt(this,s)/3;break;case"second":r=(this-s)/1e3;break;case"minute":r=(this-s)/6e4;break;case"hour":r=(this-s)/36e5;break;case"day":r=(this-s-i)/864e5;break;case"week":r=(this-s-i)/6048e5;break;default:r=this-s}return n?r:S(r)},mn.endOf=function(e){var t;if(void 0===(e=H(e))||"millisecond"===e||!this.isValid())return this;var n=this._isUTC?rn:sn;switch(e){case"year":t=n(this.year()+1,0,1)-1;break;case"quarter":t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=n(this.year(),this.month()+1,1)-1;break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=36e5-nn(t+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":t=this._d.valueOf(),t+=6e4-nn(t,6e4)-1;break;case"second":t=this._d.valueOf(),t+=1e3-nn(t,1e3)-1;break}return this._d.setTime(t),c.updateOffset(this,!0),this},mn.format=function(e){e||(e=this.isUtc()?c.defaultFormatUtc:c.defaultFormat);var t=A(this,e);return this.localeData().postformat(t)},mn.from=function(e,t){return this.isValid()&&(k(e)&&e.isValid()||bt(e).isValid())?jt({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},mn.fromNow=function(e){return this.from(bt(),e)},mn.to=function(e,t){return this.isValid()&&(k(e)&&e.isValid()||bt(e).isValid())?jt({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},mn.toNow=function(e){return this.to(bt(),e)},mn.get=function(e){return b(this[e=H(e)])?this[e]():this},mn.invalidAt=function(){return g(this).overflow},mn.isAfter=function(e,t){var n=k(e)?e:bt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=H(t)||"millisecond")?this.valueOf()>n.valueOf():n.valueOf()<this.clone().startOf(t).valueOf())},mn.isBefore=function(e,t){var n=k(e)?e:bt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=H(t)||"millisecond")?this.valueOf()<n.valueOf():this.clone().endOf(t).valueOf()<n.valueOf())},mn.isBetween=function(e,t,n,s){var i=k(e)?e:bt(e),r=k(t)?t:bt(t);return!!(this.isValid()&&i.isValid()&&r.isValid())&&("("===(s=s||"()")[0]?this.isAfter(i,n):!this.isBefore(i,n))&&(")"===s[1]?this.isBefore(r,n):!this.isAfter(r,n))},mn.isSame=function(e,t){var n,s=k(e)?e:bt(e);return!(!this.isValid()||!s.isValid())&&("millisecond"===(t=H(t)||"millisecond")?this.valueOf()===s.valueOf():(n=s.valueOf(),this.clone().startOf(t).valueOf()<=n&&n<=this.clone().endOf(t).valueOf()))},mn.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)},mn.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)},mn.isValid=function(){return v(this)},mn.lang=Kt,mn.locale=Xt,mn.localeData=en,mn.max=Pt,mn.min=xt,mn.parsingFlags=function(){return _({},g(this))},mn.set=function(e,t){if("object"==typeof e)for(var n=function(e){var t=[];for(var n in e)t.push({unit:n,priority:U[n]});return t.sort(function(e,t){return e.priority-t.priority}),t}(e=R(e)),s=0;s<n.length;s++)this[n[s].unit](e[n[s].unit]);else if(b(this[e=H(e)]))return this[e](t);return this},mn.startOf=function(e){var t;if(void 0===(e=H(e))||"millisecond"===e||!this.isValid())return this;var n=this._isUTC?rn:sn;switch(e){case"year":t=n(this.year(),0,1);break;case"quarter":t=n(this.year(),this.month()-this.month()%3,1);break;case"month":t=n(this.year(),this.month(),1);break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=n(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=nn(t+(this._isUTC?0:6e4*this.utcOffset()),36e5);break;case"minute":t=this._d.valueOf(),t-=nn(t,6e4);break;case"second":t=this._d.valueOf(),t-=nn(t,1e3);break}return this._d.setTime(t),c.updateOffset(this,!0),this},mn.subtract=Bt,mn.toArray=function(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]},mn.toObject=function(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}},mn.toDate=function(){return new Date(this.valueOf())},mn.toISOString=function(e){if(!this.isValid())return null;var t=!0!==e,n=t?this.clone().utc():this;return n.year()<0||9999<n.year()?A(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):b(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",A(n,"Z")):A(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},mn.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var n="["+e+'("]',s=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",i=t+'[")]';return this.format(n+s+"-MM-DD[T]HH:mm:ss.SSS"+i)},mn.toJSON=function(){return this.isValid()?this.toISOString():null},mn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},mn.unix=function(){return Math.floor(this.valueOf()/1e3)},mn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},mn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},mn.year=Oe,mn.isLeapYear=function(){return De(this.year())},mn.weekYear=function(e){return on.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},mn.isoWeekYear=function(e){return on.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},mn.quarter=mn.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},mn.month=Ue,mn.daysInMonth=function(){return Pe(this.year(),this.month())},mn.week=mn.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")},mn.isoWeek=mn.isoWeeks=function(e){var t=Ie(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")},mn.weeksInYear=function(){var e=this.localeData()._week;return Ae(this.year(),e.dow,e.doy)},mn.isoWeeksInYear=function(){return Ae(this.year(),1,4)},mn.date=un,mn.day=mn.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t,n,s=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(t=e,n=this.localeData(),e="string"!=typeof t?t:isNaN(t)?"number"==typeof(t=n.weekdaysParse(t))?t:null:parseInt(t,10),this.add(e-s,"d")):s},mn.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")},mn.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null==e)return this.day()||7;var t,n,s=(t=e,n=this.localeData(),"string"==typeof t?n.weekdaysParse(t)%7||7:isNaN(t)?null:t);return this.day(this.day()%7?s:s-7)},mn.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")},mn.hour=mn.hours=nt,mn.minute=mn.minutes=ln,mn.second=mn.seconds=dn,mn.millisecond=mn.milliseconds=fn,mn.utcOffset=function(e,t,n){var s,i=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null==e)return this._isUTC?i:Vt(this);if("string"==typeof e){if(null===(e=Nt(re,e)))return this}else Math.abs(e)<16&&!n&&(e*=60);return!this._isUTC&&t&&(s=Vt(this)),this._offset=e,this._isUTC=!0,null!=s&&this.add(s,"m"),i!==e&&(!t||this._changeInProgress?qt(this,jt(e-i,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,c.updateOffset(this,!0),this._changeInProgress=null)),this},mn.utc=function(e){return this.utcOffset(0,e)},mn.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Vt(this),"m")),this},mn.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=Nt(ie,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},mn.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?bt(e).utcOffset():0,(this.utcOffset()-e)%60==0)},mn.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},mn.isLocal=function(){return!!this.isValid()&&!this._isUTC},mn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},mn.isUtc=Et,mn.isUTC=Et,mn.zoneAbbr=function(){return this._isUTC?"UTC":""},mn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},mn.dates=n("dates accessor is deprecated. Use date instead.",un),mn.months=n("months accessor is deprecated. Use month instead",Ue),mn.years=n("years accessor is deprecated. Use year instead",Oe),mn.zone=n("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}),mn.isDSTShifted=n("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!l(this._isDSTShifted))return this._isDSTShifted;var e={};if(w(e,this),(e=Ot(e))._a){var t=e._isUTC?y(e._a):bt(e._a);this._isDSTShifted=this.isValid()&&0<a(e._a,t.toArray())}else this._isDSTShifted=!1;return this._isDSTShifted});var yn=P.prototype;function gn(e,t,n,s){var i=ht(),r=y().set(s,t);return i[n](r,e)}function vn(e,t,n){if(h(e)&&(t=e,e=void 0),e=e||"",null!=t)return gn(e,t,n,"month");var s,i=[];for(s=0;s<12;s++)i[s]=gn(e,s,n,"month");return i}function pn(e,t,n,s){t=("boolean"==typeof e?h(t)&&(n=t,t=void 0):(t=e,e=!1,h(n=t)&&(n=t,t=void 0)),t||"");var i,r=ht(),a=e?r._week.dow:0;if(null!=n)return gn(t,(n+a)%7,s,"day");var o=[];for(i=0;i<7;i++)o[i]=gn(t,(i+a)%7,s,"day");return o}yn.calendar=function(e,t,n){var s=this._calendar[e]||this._calendar.sameElse;return b(s)?s.call(t,n):s},yn.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e])},yn.invalidDate=function(){return this._invalidDate},yn.ordinal=function(e){return this._ordinal.replace("%d",e)},yn.preparse=_n,yn.postformat=_n,yn.relativeTime=function(e,t,n,s){var i=this._relativeTime[n];return b(i)?i(e,t,n,s):i.replace(/%d/i,e)},yn.pastFuture=function(e,t){var n=this._relativeTime[0<e?"future":"past"];return b(n)?n(t):n.replace(/%s/i,t)},yn.set=function(e){var t,n;for(n in e)b(t=e[n])?this[n]=t:this["_"+n]=t;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},yn.months=function(e,t){return e?o(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||We).test(t)?"format":"standalone"][e.month()]:o(this._months)?this._months:this._months.standalone},yn.monthsShort=function(e,t){return e?o(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[We.test(t)?"format":"standalone"][e.month()]:o(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},yn.monthsParse=function(e,t,n){var s,i,r;if(this._monthsParseExact)return function(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],s=0;s<12;++s)r=y([2e3,s]),this._shortMonthsParse[s]=this.monthsShort(r,"").toLocaleLowerCase(),this._longMonthsParse[s]=this.months(r,"").toLocaleLowerCase();return n?"MMM"===t?-1!==(i=Ye.call(this._shortMonthsParse,a))?i:null:-1!==(i=Ye.call(this._longMonthsParse,a))?i:null:"MMM"===t?-1!==(i=Ye.call(this._shortMonthsParse,a))?i:-1!==(i=Ye.call(this._longMonthsParse,a))?i:null:-1!==(i=Ye.call(this._longMonthsParse,a))?i:-1!==(i=Ye.call(this._shortMonthsParse,a))?i:null}.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),s=0;s<12;s++){if(i=y([2e3,s]),n&&!this._longMonthsParse[s]&&(this._longMonthsParse[s]=new RegExp("^"+this.months(i,"").replace(".","")+"$","i"),this._shortMonthsParse[s]=new RegExp("^"+this.monthsShort(i,"").replace(".","")+"$","i")),n||this._monthsParse[s]||(r="^"+this.months(i,"")+"|^"+this.monthsShort(i,""),this._monthsParse[s]=new RegExp(r.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[s].test(e))return s;if(n&&"MMM"===t&&this._shortMonthsParse[s].test(e))return s;if(!n&&this._monthsParse[s].test(e))return s}},yn.monthsRegex=function(e){return this._monthsParseExact?(m(this,"_monthsRegex")||Ne.call(this),e?this._monthsStrictRegex:this._monthsRegex):(m(this,"_monthsRegex")||(this._monthsRegex=Le),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},yn.monthsShortRegex=function(e){return this._monthsParseExact?(m(this,"_monthsRegex")||Ne.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(m(this,"_monthsShortRegex")||(this._monthsShortRegex=Fe),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},yn.week=function(e){return Ie(e,this._week.dow,this._week.doy).week},yn.firstDayOfYear=function(){return this._week.doy},yn.firstDayOfWeek=function(){return this._week.dow},yn.weekdays=function(e,t){var n=o(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?je(n,this._week.dow):e?n[e.day()]:n},yn.weekdaysMin=function(e){return!0===e?je(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},yn.weekdaysShort=function(e){return!0===e?je(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},yn.weekdaysParse=function(e,t,n){var s,i,r;if(this._weekdaysParseExact)return function(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],s=0;s<7;++s)r=y([2e3,1]).day(s),this._minWeekdaysParse[s]=this.weekdaysMin(r,"").toLocaleLowerCase(),this._shortWeekdaysParse[s]=this.weekdaysShort(r,"").toLocaleLowerCase(),this._weekdaysParse[s]=this.weekdays(r,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(i=Ye.call(this._weekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Ye.call(this._shortWeekdaysParse,a))?i:null:-1!==(i=Ye.call(this._minWeekdaysParse,a))?i:null:"dddd"===t?-1!==(i=Ye.call(this._weekdaysParse,a))?i:-1!==(i=Ye.call(this._shortWeekdaysParse,a))?i:-1!==(i=Ye.call(this._minWeekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Ye.call(this._shortWeekdaysParse,a))?i:-1!==(i=Ye.call(this._weekdaysParse,a))?i:-1!==(i=Ye.call(this._minWeekdaysParse,a))?i:null:-1!==(i=Ye.call(this._minWeekdaysParse,a))?i:-1!==(i=Ye.call(this._weekdaysParse,a))?i:-1!==(i=Ye.call(this._shortWeekdaysParse,a))?i:null}.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),s=0;s<7;s++){if(i=y([2e3,1]).day(s),n&&!this._fullWeekdaysParse[s]&&(this._fullWeekdaysParse[s]=new RegExp("^"+this.weekdays(i,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[s]=new RegExp("^"+this.weekdaysShort(i,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[s]=new RegExp("^"+this.weekdaysMin(i,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[s]||(r="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[s]=new RegExp(r.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[s].test(e))return s;if(n&&"ddd"===t&&this._shortWeekdaysParse[s].test(e))return s;if(n&&"dd"===t&&this._minWeekdaysParse[s].test(e))return s;if(!n&&this._weekdaysParse[s].test(e))return s}},yn.weekdaysRegex=function(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Qe.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(m(this,"_weekdaysRegex")||(this._weekdaysRegex=qe),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},yn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Qe.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(m(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Je),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},yn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Qe.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(m(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Be),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},yn.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},yn.meridiem=function(e,t,n){return 11<e?n?"pm":"PM":n?"am":"AM"},ut("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===D(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),c.lang=n("moment.lang is deprecated. Use moment.locale instead.",ut),c.langData=n("moment.langData is deprecated. Use moment.localeData instead.",ht);var wn=Math.abs;function Mn(e,t,n,s){var i=jt(t,n);return e._milliseconds+=s*i._milliseconds,e._days+=s*i._days,e._months+=s*i._months,e._bubble()}function kn(e){return e<0?Math.floor(e):Math.ceil(e)}function Sn(e){return 4800*e/146097}function Dn(e){return 146097*e/4800}function Yn(e){return function(){return this.as(e)}}var On=Yn("ms"),Tn=Yn("s"),bn=Yn("m"),xn=Yn("h"),Pn=Yn("d"),Wn=Yn("w"),Cn=Yn("M"),Hn=Yn("Q"),Rn=Yn("y");function Un(e){return function(){return this.isValid()?this._data[e]:NaN}}var Fn=Un("milliseconds"),Ln=Un("seconds"),Nn=Un("minutes"),Gn=Un("hours"),Vn=Un("days"),En=Un("months"),In=Un("years");var An=Math.round,jn={ss:44,s:45,m:45,h:22,d:26,M:11};var Zn=Math.abs;function zn(e){return(0<e)-(e<0)||+e}function $n(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n=Zn(this._milliseconds)/1e3,s=Zn(this._days),i=Zn(this._months);t=S((e=S(n/60))/60),n%=60,e%=60;var r=S(i/12),a=i%=12,o=s,u=t,l=e,h=n?n.toFixed(3).replace(/\.?0+$/,""):"",d=this.asSeconds();if(!d)return"P0D";var c=d<0?"-":"",f=zn(this._months)!==zn(d)?"-":"",m=zn(this._days)!==zn(d)?"-":"",_=zn(this._milliseconds)!==zn(d)?"-":"";return c+"P"+(r?f+r+"Y":"")+(a?f+a+"M":"")+(o?m+o+"D":"")+(u||l||h?"T":"")+(u?_+u+"H":"")+(l?_+l+"M":"")+(h?_+h+"S":"")}var qn=Ht.prototype;return qn.isValid=function(){return this._isValid},qn.abs=function(){var e=this._data;return this._milliseconds=wn(this._milliseconds),this._days=wn(this._days),this._months=wn(this._months),e.milliseconds=wn(e.milliseconds),e.seconds=wn(e.seconds),e.minutes=wn(e.minutes),e.hours=wn(e.hours),e.months=wn(e.months),e.years=wn(e.years),this},qn.add=function(e,t){return Mn(this,e,t,1)},qn.subtract=function(e,t){return Mn(this,e,t,-1)},qn.as=function(e){if(!this.isValid())return NaN;var t,n,s=this._milliseconds;if("month"===(e=H(e))||"quarter"===e||"year"===e)switch(t=this._days+s/864e5,n=this._months+Sn(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(Dn(this._months)),e){case"week":return t/7+s/6048e5;case"day":return t+s/864e5;case"hour":return 24*t+s/36e5;case"minute":return 1440*t+s/6e4;case"second":return 86400*t+s/1e3;case"millisecond":return Math.floor(864e5*t)+s;default:throw new Error("Unknown unit "+e)}},qn.asMilliseconds=On,qn.asSeconds=Tn,qn.asMinutes=bn,qn.asHours=xn,qn.asDays=Pn,qn.asWeeks=Wn,qn.asMonths=Cn,qn.asQuarters=Hn,qn.asYears=Rn,qn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*D(this._months/12):NaN},qn._bubble=function(){var e,t,n,s,i,r=this._milliseconds,a=this._days,o=this._months,u=this._data;return 0<=r&&0<=a&&0<=o||r<=0&&a<=0&&o<=0||(r+=864e5*kn(Dn(o)+a),o=a=0),u.milliseconds=r%1e3,e=S(r/1e3),u.seconds=e%60,t=S(e/60),u.minutes=t%60,n=S(t/60),u.hours=n%24,o+=i=S(Sn(a+=S(n/24))),a-=kn(Dn(i)),s=S(o/12),o%=12,u.days=a,u.months=o,u.years=s,this},qn.clone=function(){return jt(this)},qn.get=function(e){return e=H(e),this.isValid()?this[e+"s"]():NaN},qn.milliseconds=Fn,qn.seconds=Ln,qn.minutes=Nn,qn.hours=Gn,qn.days=Vn,qn.weeks=function(){return S(this.days()/7)},qn.months=En,qn.years=In,qn.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var t,n,s,i,r,a,o,u,l,h,d,c=this.localeData(),f=(n=!e,s=c,i=jt(t=this).abs(),r=An(i.as("s")),a=An(i.as("m")),o=An(i.as("h")),u=An(i.as("d")),l=An(i.as("M")),h=An(i.as("y")),(d=r<=jn.ss&&["s",r]||r<jn.s&&["ss",r]||a<=1&&["m"]||a<jn.m&&["mm",a]||o<=1&&["h"]||o<jn.h&&["hh",o]||u<=1&&["d"]||u<jn.d&&["dd",u]||l<=1&&["M"]||l<jn.M&&["MM",l]||h<=1&&["y"]||["yy",h])[2]=n,d[3]=0<+t,d[4]=s,function(e,t,n,s,i){return i.relativeTime(t||1,!!n,e,s)}.apply(null,d));return e&&(f=c.pastFuture(+this,f)),c.postformat(f)},qn.toISOString=$n,qn.toString=$n,qn.toJSON=$n,qn.locale=Xt,qn.localeData=en,qn.toIsoString=n("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",$n),qn.lang=Kt,I("X",0,0,"unix"),I("x",0,0,"valueOf"),ue("x",se),ue("X",/[+-]?\d+(\.\d{1,3})?/),ce("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))}),ce("x",function(e,t,n){n._d=new Date(D(e))}),c.version="2.24.0",e=bt,c.fn=mn,c.min=function(){return Wt("isBefore",[].slice.call(arguments,0))},c.max=function(){return Wt("isAfter",[].slice.call(arguments,0))},c.now=function(){return Date.now?Date.now():+new Date},c.utc=y,c.unix=function(e){return bt(1e3*e)},c.months=function(e,t){return vn(e,t,"months")},c.isDate=d,c.locale=ut,c.invalid=p,c.duration=jt,c.isMoment=k,c.weekdays=function(e,t,n){return pn(e,t,n,"weekdays")},c.parseZone=function(){return bt.apply(null,arguments).parseZone()},c.localeData=ht,c.isDuration=Rt,c.monthsShort=function(e,t){return vn(e,t,"monthsShort")},c.weekdaysMin=function(e,t,n){return pn(e,t,n,"weekdaysMin")},c.defineLocale=lt,c.updateLocale=function(e,t){if(null!=t){var n,s,i=st;null!=(s=ot(e))&&(i=s._config),(n=new P(t=x(i,t))).parentLocale=it[e],it[e]=n,ut(e)}else null!=it[e]&&(null!=it[e].parentLocale?it[e]=it[e].parentLocale:null!=it[e]&&delete it[e]);return it[e]},c.locales=function(){return s(it)},c.weekdaysShort=function(e,t,n){return pn(e,t,n,"weekdaysShort")},c.normalizeUnits=H,c.relativeTimeRounding=function(e){return void 0===e?An:"function"==typeof e&&(An=e,!0)},c.relativeTimeThreshold=function(e,t){return void 0!==jn[e]&&(void 0===t?jn[e]:(jn[e]=t,"s"===e&&(jn.ss=t-1),!0))},c.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},c.prototype=mn,c.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},c}); |
New file |
| | |
| | | <!DOCTYPE HTML> |
| | | <html xmlns:th="http://www.thymeleaf.org" xmlns:matrix="http://www.w3.org/1999/xhtml"> |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> |
| | | <meta name="renderer" content="webkit|ie-comp|ie-stand"> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| | | <meta name="viewport" |
| | | content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/> |
| | | <meta http-equiv="Cache-Control" content="no-siteapp"/> |
| | | <!-- 本框架基本脚本和样式 --> |
| | | <script type="text/javascript" |
| | | th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script> |
| | | <script type="text/javascript" th:src="@{/js/systools/MBase.js}"></script> |
| | | |
| | | </head> |
| | | <body class=" container-fluid"> |
| | | |
| | | <body class="gray-bg"> |
| | | |
| | | <div class="ibox-content"> |
| | | <!-- 搜索框部分start --> |
| | | <form class="form-inline" id="serchform"> |
| | | <div class="row mb-10"> |
| | | <div class="col-sm-8"> |
| | | <button id="serach" type="button" class="btn btn-info btn-sm"><i |
| | | class="fa fa-search"></i> 搜索 |
| | | </button> |
| | | <button onclick="myGrid.resetForm()" type="button" class="btn btn-info btn-sm"><i |
| | | class="fa fa-refresh "></i> 重置 |
| | | </button> |
| | | </div> |
| | | </div> |
| | | <div class="form-group mr-20" id="timeBox"> |
| | | <label>统计范围</label> |
| | | |
| | | <input name="beginTime" type="text" autocomplete="off" |
| | | class="form-control datetimepicker" id="beginTime">-<input |
| | | name="endTime" type="text" class="form-control datetimepicker" autocomplete="off" |
| | | id="endTime"> |
| | | </div> |
| | | <div class="form-group mr-20"> |
| | | <label>统计单位</label> |
| | | <select name="statisticsUnit" class=" form-control " id="unitSelect" |
| | | style="width: 80px"> |
| | | <option value="时">时</option> |
| | | <option selected="selected" value="日">日</option> |
| | | <option value="月">月</option> |
| | | <option value="年">年</option> |
| | | </select> |
| | | </div> |
| | | </form> |
| | | <!-- 搜索框部分en --> |
| | | |
| | | <div class="row chartsBox"> |
| | | <div class=" col-md-12"> |
| | | <div class="echarts" id="echarts-line-chart2"></div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | <script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script> |
| | | <script type="text/javascript" th:src="@{/plugin/echarts/echarts.all.js}"></script> |
| | | <script type="text/javascript" th:src="@{/plugin/echarts/macarons.js}"></script> |
| | | <script type="text/javascript" th:src="@{/plugin/dateformat.js}"></script> |
| | | <script type="text/javascript" th:src="@{/plugin/StringUtil.js}"></script> |
| | | <script type="text/javascript" th:src="@{/plugin/moment.min.js}"></script> |
| | | <script type="text/javascript" th:src="@{/js/systools/ChartsUtils.js}"></script> |
| | | |
| | | <script> |
| | | |
| | | |
| | | MTools.autoFullSelect(); |
| | | $(".select2").select2(); |
| | | |
| | | |
| | | // 基于准备好的dom,初始化echarts实例 |
| | | var myChart2 = echarts.init(document.getElementById('echarts-line-chart2'), 'macarons'); |
| | | |
| | | |
| | | // 指定图表的配置项和数据 |
| | | function getption(title) { |
| | | return { |
| | | title: { |
| | | text: title, |
| | | padding: 20 |
| | | }, |
| | | legend: {}, |
| | | toolbox: { |
| | | show: true, |
| | | feature: { |
| | | mark: {show: true}, |
| | | dataView: {show: true, readOnly: false}, |
| | | magicType: {show: true, type: ['line', 'bar']}, |
| | | restore: {show: true}, |
| | | saveAsImage: {show: true} |
| | | } |
| | | }, |
| | | tooltip: { |
| | | trigger: 'axis' |
| | | }, |
| | | xAxis: { |
| | | type: 'category', |
| | | boundaryGap: false, |
| | | axisLabel: { |
| | | rotate: 30 |
| | | }, |
| | | splitLine: { |
| | | show: false, |
| | | }, |
| | | data: [] |
| | | }, |
| | | yAxis: { |
| | | type: 'value' |
| | | }, |
| | | dataZoom: [ |
| | | { |
| | | id: 'dataZoomX', |
| | | type: 'slider', |
| | | xAxisIndex: [0], |
| | | filterMode: 'filter' |
| | | } |
| | | ], |
| | | series: [{ |
| | | name: '客流量', |
| | | type: 'line', |
| | | smooth: true, |
| | | data: [], |
| | | markLine: { |
| | | data: [ |
| | | {type: 'average', name: '平均值'} |
| | | ] |
| | | }, |
| | | markPoint: { |
| | | data: [ |
| | | {type: 'max', name: '最大值'}, |
| | | {type: 'min', name: '最小值'} |
| | | ] |
| | | }, |
| | | }], |
| | | animation: true, |
| | | animationDuration: 1000, |
| | | animationDurationUpdate: 1000, |
| | | animationEasing: 'linear', |
| | | animationEasingUpdate: 'linear', |
| | | } |
| | | |
| | | } |
| | | ; |
| | | |
| | | |
| | | //加载数据 |
| | | function loadData() { |
| | | |
| | | |
| | | |
| | | //加载门店客流对比 |
| | | myChart2.showLoading(); |
| | | $.AjaxProxy({ |
| | | p: MForm.toJson("#serchform"), |
| | | c: false, |
| | | }).invoke(basePath+"/admin/analysis/vipVisitTendency", |
| | | function (loj) { |
| | | var map = loj.getValue("mapInfo"); |
| | | var option = getption("门店客流趋势对比"); |
| | | option.series = map.series; |
| | | option.legend.data = map.legendData; |
| | | option.xAxis.data = map.xAxis; |
| | | console.log(option); |
| | | // 使用刚指定的配置项和数据显示图表。 |
| | | myChart2.setOption(option); |
| | | myChart2.hideLoading(); |
| | | |
| | | |
| | | |
| | | }); |
| | | |
| | | |
| | | } |
| | | |
| | | var ChartsUtils = new ChartsUtils(loadData); |
| | | ChartsUtils.setDataPackTimeValue(); |
| | | ChartsUtils.loadChartData(); |
| | | |
| | | |
| | | </script> |
| | | |
| | | </body> |
| | | |
| | | </html> |