Compare commits

...

153 Commits

Author SHA1 Message Date
wangxy 1ced9c4a5b feat:修改专题活动service
3 months ago
wangxy d7fa1e0a01 feat:修改专题活动service
3 months ago
wangxy ddc0dda586 feat:获取专题栏目
3 months ago
wangxy 8b5068c226 feat:获取专题栏目
3 months ago
wangxy 2271b61649 feat:添加专题活动,动态查询条件
3 months ago
dshclm 0a01c3b212 提交内容
3 months ago
dshclm 04b146126a 提交内容
3 months ago
dshclm 80b1c588a3 提交内容
3 months ago
wangxy 059aae2df4 feat:添加专题活动,动态查询条件
3 months ago
wangxy 315a07216a feat:添加专题活动,动态查询条件
3 months ago
wangxy 94126981b3 feat:添加专题活动,动态查询条件
3 months ago
dshclm b49c8a667a 提交内容
3 months ago
wangxy 7ca4edbafb feat:添加专题活动,动态查询条件
3 months ago
wangxy 9164acf7be feat:首页修改添加宣传图
3 months ago
wangxy 7cf4c63bcd feat:首页修改添加宣传图
3 months ago
wangxy cf00c8c060 feat:首页修改添加宣传图
3 months ago
wangxy 15cdb405c0 feat:首页修改添加宣传图
3 months ago
wangxy 484a33c14d feat:测试代码
4 months ago
20918 d88cf33cd6 Merge remote-tracking branch 'origin/new-v20240713' into new-v20240713
4 months ago
20918 a20fc91659 文档提交
4 months ago
wangxy 7e825b1f43 feat:测试代码
4 months ago
wangxy a34bde8d74 feat:测试代码
5 months ago
wangxy ea810fbf0f feat:测试代码
5 months ago
wangxy 74363900a7 feat:文档上传
5 months ago
wangxy b1bb4a320f feat:文档上传
5 months ago
wangxy 7a84933541 feat:文档上传
5 months ago
wangxy 1b063ddc93 feat:文档上传
5 months ago
wangxy ff73f1bff4 feat:文档上传
5 months ago
wangxy d4952245e5 feat:文档上传
5 months ago
wangxy 5727b5d3a9 feat:文档上传
5 months ago
20918 e5c6f1f4a0 文档提交
5 months ago
wangxy 67b954d39a feat:文档上传
5 months ago
wangxy 0bafe29176 feat:修改页面轮播图去掉必传
5 months ago
wangxy 05cce11e4b feat:材料提交
6 months ago
wangxy c5a9610982 feat:材料提交
9 months ago
wangxy 8e1fc13b4d feat:优化sql
11 months ago
dshclm 1b31e52c1a 提交修改
11 months ago
dshclm b7f9cf49cb 提交修改
11 months ago
dshclm 887b131027 提交修改
11 months ago
dshclm 0dcaa5cb47 提交修改
11 months ago
dshclm bd9fbe5d3c Merge remote-tracking branch 'origin/new-v20240713' into new-v20240713
11 months ago
dshclm f34f7d0ce0 提交修改
11 months ago
wangxy bd4952c23f feat:问题修改0731
11 months ago
dshclm 7545137dcd 提交修改
11 months ago
dshclm 0751315825 提交修改
11 months ago
dshclm 2c6c19721a 提交修改
11 months ago
wangxy 42644c56af feat:问题修改0730
11 months ago
wangxy 52db177a98 feat:用户信息导入
11 months ago
wangxy 60dca4343d feat:修改页面样式
11 months ago
wangxy b826a0dedd feat:修改页面样式
11 months ago
wangxy fdb4cc80de feat:修改页面样式
11 months ago
wangxy fd5108c903 feat:修改地图
11 months ago
wangxy 9b445d80e8 feat:修改配置
11 months ago
wangxy b9a11ff654 feat:ie报错问题
12 months ago
wangxy dd1e1a65c3 feat:操作手册更新
12 months ago
wangxy 810512b77c feat:图片增加亮度
12 months ago
dshclm 150eab8a5f 提交修改
12 months ago
dshclm 3dbcaab60a 提交修改
12 months ago
dshclm 62d21c5c9b 提交修改
12 months ago
dshclm b186ce0f77 提交修改
12 months ago
dshclm 7d7d27f1c3 提交修改
12 months ago
dshclm 577d88e8e7 提交修改
12 months ago
dshclm 38dafe08a1 提交修改
12 months ago
wangxy ae04bc4561 feat:图片增加亮度
12 months ago
dshclm 926c4f72e3 提交修改
12 months ago
wangxy 8aeba5b748 feat:图片增加亮度
12 months ago
wangxy 88d79650ff feat:轮播修改
12 months ago
wangxy ff25fb9e22 feat:轮播修改
12 months ago
wangxy a29a07a90f feat:轮播修改
12 months ago
dshclm d8d689c06f 提交修改
12 months ago
dshclm b9d2446ede 提交修改
12 months ago
dshclm d5c017e04c 提交修改
12 months ago
dshclm a4378e05fc 提交修改
12 months ago
wangxy e82a78753e feat:样式调整
12 months ago
dshclm 816b673e97 提交修改
12 months ago
dshclm 4f21b2460a 提交修改
12 months ago
wangxy 5987d75ca1 feat:样式调整
12 months ago
dshclm 4ca55f1449 提交修改
12 months ago
dshclm 463f412c75 提交修改
12 months ago
dshclm 8ef135d20f 提交修改
12 months ago
dshclm 71ba4a897e 提交修改
12 months ago
dshclm f287a39706 提交修改
12 months ago
dshclm a37b8f98c9 提交修改
12 months ago
dshclm 487ceb070f 提交修改
12 months ago
dshclm 39f002ce34 提交修改
12 months ago
dshclm 3e4b6565f9 提交修改
12 months ago
dshclm 9710f767f8 提交修改
12 months ago
dshclm 3979c599aa 头部背景
12 months ago
dshclm 1cfac82cfb 头部背景
12 months ago
dshclm 4096934411 滚动公告
12 months ago
dshclm d20d6e2b18 工作动态
12 months ago
dshclm e45118341f 工作动态
12 months ago
dshclm cea18f0cdc 公告滚动效果
12 months ago
wangxy 189ab65c85 feat:头部添加日期
12 months ago
wangxy 45998187fc feat:头部添加日期
1 year ago
dshclm 11ced4a284 提交修改
1 year ago
dshclm 66af6d571a 提交修改
1 year ago
dshclm 25be89616a 提交修改
1 year ago
dshclm d18ddba481 提交修改
1 year ago
wangxy d9473d5ce4 feat:样式修改
1 year ago
dshclm 31ada9600d 提交修改
1 year ago
wangxy 5026ae8220 feat:样式修改
1 year ago
wangxy b087bdf5fd feat:样式修改
1 year ago
wangxy 6b1de4f65f feat:样式修改
1 year ago
wangxy 25817c318b feat:样式修改
1 year ago
wangxy 05c33ee544 feat:样式修改
1 year ago
wangxy 73cdf76ca8 feat:样式修改
1 year ago
wangxy f9392c33c6 feat:样式修改
1 year ago
wangxy c7d1d46bb6 feat:头部图片修改
1 year ago
dshclm 40667869ba Merge remote-tracking branch 'origin/dev-captcha' into dev-captcha
1 year ago
dshclm 2bac738c7a 提交修改
1 year ago
wangxy 43e262c640 feat:头部图片修改
1 year ago
wangxy e458426a60 feat:头部图片修改
1 year ago
wangxy f0d0b1d76d feat:轮播图调整
1 year ago
wangxy f5906ba30b feat:轮播图调整
1 year ago
wangxy d26235d64a feat:轮播图调整
1 year ago
wangxy b0d20e3ed9 feat:轮播图调整
1 year ago
dshclm acabf1c611 提交修改
1 year ago
dshclm 61605dd42d 提交修改
1 year ago
dshclm edbbef13e0 提交修改
1 year ago
dshclm 3c9cb17ffa 提交修改
1 year ago
dshclm eb0f983674 提交修改
1 year ago
dshclm 10bf5f8704 提交修改
1 year ago
dshclm 20a6ebb2b2 提交修改
1 year ago
dshclm 118a76135f 提交修改
1 year ago
wangxy 88515ab8e0 feat:轮播图调整
1 year ago
dshclm 849a45b3f7 提交修改
1 year ago
wangxy abde706a2d feat:轮播图调整
1 year ago
wangxy c0a231a145 feat:添加排序
1 year ago
wangxy 58c1a1bf9b feat:添加排序
1 year ago
wangxy aa3a7d3368 feat:添加排序
1 year ago
wangxy 5ab0679421 feat:修改头部、友情链接
1 year ago
wangxy e0e6a9e169 feat:修改头部、友情链接
1 year ago
wangxy 7924f83ea2 feat:添加用户手册
1 year ago
wangxy 2a61e59e32 feat:添加长度校验
1 year ago
wangxy c8bd6c8cc1 feat:添加长度校验
1 year ago
wangxy 0533a0c300 feat:密码加密传输
1 year ago
wangxy f89a3458d8 验证码改为滑块
1 year ago
wangxy 301f903ef2 验证码改为滑块
1 year ago
wangxy a2df444072 验证码改为滑块
1 year ago
wangxy b3b0177027 代码提交
1 year ago
wangxy ff54f3a4c5 代码提交
1 year ago
dsh a97ef863e7 提交修改
1 year ago
dsh 8cf498098c Merge remote-tracking branch 'origin/hangao-new' into hangao-new
1 year ago
dsh b982dc33d0 提交修改
1 year ago
wangxy c56ffd6b9f Merge remote-tracking branch 'origin/hangao-new' into hangao-new
1 year ago
wangxy e67f70a178 代码提交
1 year ago
dsh c9a7591552 提交修改
1 year ago
dsh e4247ce823 提交修改
1 year ago
dsh 5ea8d534d9 提交修改
1 year ago
dsh 5e411d5a94 提交修改
1 year ago
dsh b8cc4a83b3 提交修改
1 year ago
wangxy 9fccb82632 代码提交
1 year ago

@ -0,0 +1,135 @@
package com.ruoyi.web.controller.home;
import cn.hutool.core.convert.Convert;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.github.pagehelper.PageInfo;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.system.domain.*;
import com.ruoyi.system.service.ISysColumnService;
import com.ruoyi.system.service.ISysSpecialService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
/**
* ClassName: ColumnController
* Package: com.ruoyi.web.controller.home
* Description:
*
* @Author wangxy
* @Create 2025/3/27 9:54
* @Version 1.0
*/
@Api("栏目树")
@RestController
@RequestMapping("/columnTree")
public class ColumnTreeController extends BaseController {
//专题活动类型
public static final String SPECIAL_COLUMN_TYPE = "2";
//栏目等级
public static final String COLUMN_GRADE = "2";
public static final String STATUS = "0";
@Autowired
private ISysColumnService columnService;
@Autowired
private ISysSpecialService specialService;
@ApiOperation("类别树")
@GetMapping("/getTree")
public R<List<SysColumnVO>> getTree(@RequestParam(required = false, defaultValue = "2") String columnType) {
LambdaQueryWrapper<SysColumn> tagWrapper = new LambdaQueryWrapper<>();
tagWrapper.eq(SysColumn::getColumnType, columnType)
.eq(SysColumn::getColumnGrade, COLUMN_GRADE)
.eq(SysColumn::getStatus,STATUS)
.orderByAsc(SysColumn::getOrderNum);
List<SysColumn> datas = columnService.list(tagWrapper);
List<SysColumnVO> tagTreeVOList = new ArrayList<>(Convert.toList(SysColumnVO.class, datas));
tagTreeVOList.forEach(this::buildChildren);
return R.ok(tagTreeVOList);
}
/**
*
*
* @param pNode
*/
private void buildChildren(SysColumnVO pNode) {
// 获取子节点
LambdaQueryWrapper<SysColumn> tagWrapper = new LambdaQueryWrapper<>();
tagWrapper.eq(SysColumn::getParentId, pNode.getColumnId()).orderByAsc(SysColumn::getOrderNum);
List<SysColumn> dataTags = columnService.list(tagWrapper);
List<SysColumnVO> children = Convert.toList(SysColumnVO.class, dataTags);
// 递归获取子节点
children.forEach(this::buildChildren);
pNode.setChildren(children);
}
@ApiOperation("获取专题栏目")
@GetMapping("/getColumn")
public R<List<SysColumn>> getColumn(@RequestParam(required = false, defaultValue = "2") String columnType) {
LambdaQueryWrapper<SysColumn> queryWrapper= new LambdaQueryWrapper<>();
queryWrapper.eq(SysColumn::getColumnType, columnType);
queryWrapper.eq(SysColumn::getColumnGrade, COLUMN_GRADE);
queryWrapper.eq(SysColumn::getStatus,STATUS);
queryWrapper.orderByAsc(SysColumn::getOrderNum);
List<SysColumn> specialColumns = columnService.list(queryWrapper);
return R.ok(specialColumns);
}
@ApiOperation("获取专题栏目")
@GetMapping("/getSpecial")
public R<PageInfo<SysSpecialVo>> getSpecial(@RequestParam(required = false) String id,
@RequestParam(required = false) String columnId) {
List<SysSpecialVo> sysSpecialVos = new ArrayList<>();
LambdaQueryWrapper<SysColumn> columnQueryWrapper = new LambdaQueryWrapper<>();
columnQueryWrapper.eq(SysColumn::getStatus, STATUS);
if(StringUtils.isNotEmpty(columnId)){
columnQueryWrapper.eq(SysColumn::getColumnId, columnId);
}else{
columnQueryWrapper.eq(SysColumn::getParentId, id);
}
columnQueryWrapper.orderByAsc(SysColumn::getOrderNum);
List<SysColumn> columns = columnService.list(columnQueryWrapper);
if (columns.isEmpty() && Objects.isNull(columnId)) {
columnQueryWrapper.clear();
columnQueryWrapper.eq(SysColumn::getColumnId, id)
.eq(SysColumn::getStatus, STATUS)
.orderByAsc(SysColumn::getOrderNum);
columns = columnService.list(columnQueryWrapper);
}
columns.forEach(column -> {
SysSpecialVo sysSpecialVo = new SysSpecialVo();
sysSpecialVo.setColumnId(column.getColumnId());
sysSpecialVo.setColumnName(column.getColumnName());
List<SysSpecial> specialList = specialService.lambdaQuery()
.eq(SysSpecial::getColumnId, column.getColumnId())
.eq(SysSpecial::getStatus, STATUS)
.orderByDesc(SysSpecial::getCreateTime)
.list();
sysSpecialVo.setSysSpecials(specialList);
sysSpecialVos.add(sysSpecialVo);
});
PageInfo<SysSpecialVo> page = PageInfo.of(sysSpecialVos);
return R.ok(page);
}
}

@ -10,6 +10,7 @@ import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.system.domain.*; import com.ruoyi.system.domain.*;
import com.ruoyi.system.service.*; import com.ruoyi.system.service.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -22,9 +23,10 @@ import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
* *
* @author wangxy * @author wangxy
*/ */
@Api("首页门户")
@Controller @Controller
public class HomeController { public class HomeController {
@ -65,6 +67,9 @@ public class HomeController {
//专题活动类型 //专题活动类型
public static final String WINDOW_COLUMN_TYPE = "3"; public static final String WINDOW_COLUMN_TYPE = "3";
//宣传活动类型
public static final String XCHD_COLUMN_TYPE = "4";
public static final String STATUS = "0"; public static final String STATUS = "0";
@ -73,7 +78,7 @@ public class HomeController {
@GetMapping("/home") @GetMapping("/home")
public String home(ModelMap mmap) { public String home(ModelMap mmap) {
//最新通知 //最新通知
List<SysNotice> urlList = noticeService.selectNoticeHomeUrl(new SysNotice()); List<SysWork> urlList = workService.selectWorkHomeUrl(new SysWork());
mmap.put("urlList", urlList); mmap.put("urlList", urlList);
List<SysNotice> list = noticeService.selectNoticeHomeList(new SysNotice()); List<SysNotice> list = noticeService.selectNoticeHomeList(new SysNotice());
mmap.put("noticeList", list); mmap.put("noticeList", list);
@ -87,6 +92,15 @@ public class HomeController {
List<SysContent> contentList = contentService.selectSysContentHomeList(new SysContent()); List<SysContent> contentList = contentService.selectSysContentHomeList(new SysContent());
mmap.put("contentList", contentList); mmap.put("contentList", contentList);
//宣传活动对应的栏目
LambdaQueryWrapper<SysColumn> qxWrapper= new LambdaQueryWrapper<>();
qxWrapper.eq(SysColumn::getColumnType, XCHD_COLUMN_TYPE);
qxWrapper.eq(SysColumn::getColumnGrade, COLUMN_GRADE);
qxWrapper.eq(SysColumn::getStatus,STATUS);
qxWrapper.last("limit 6");
qxWrapper.orderByAsc(SysColumn::getOrderNum);
List<SysColumn> xchdColumns = columnService.list(qxWrapper);
mmap.put("xchdColumns", xchdColumns);
//部门动态对应的栏目 //部门动态对应的栏目
LambdaQueryWrapper<SysColumn> query= new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysColumn> query= new LambdaQueryWrapper<>();
query.eq(SysColumn::getColumnType, DEPT_COLUMN_TYPE); query.eq(SysColumn::getColumnType, DEPT_COLUMN_TYPE);
@ -96,13 +110,12 @@ public class HomeController {
query.orderByAsc(SysColumn::getOrderNum); query.orderByAsc(SysColumn::getOrderNum);
List<SysColumn> deptColumns = columnService.list(query); List<SysColumn> deptColumns = columnService.list(query);
mmap.put("deptColumns", deptColumns); mmap.put("deptColumns", deptColumns);
//专题活动对应的栏目 //专题活动对应的栏目
LambdaQueryWrapper<SysColumn> queryWrapper= new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysColumn> queryWrapper= new LambdaQueryWrapper<>();
queryWrapper.eq(SysColumn::getColumnType, SPECIAL_COLUMN_TYPE); queryWrapper.eq(SysColumn::getColumnType, SPECIAL_COLUMN_TYPE);
queryWrapper.eq(SysColumn::getColumnGrade, COLUMN_GRADE); queryWrapper.eq(SysColumn::getColumnGrade, COLUMN_GRADE);
queryWrapper.eq(SysColumn::getStatus,STATUS); queryWrapper.eq(SysColumn::getStatus,STATUS);
queryWrapper.last("limit 6"); queryWrapper.last("limit 10");
queryWrapper.orderByAsc(SysColumn::getOrderNum); queryWrapper.orderByAsc(SysColumn::getOrderNum);
List<SysColumn> specialColumns = columnService.list(queryWrapper); List<SysColumn> specialColumns = columnService.list(queryWrapper);
mmap.put("specialColumns", specialColumns); mmap.put("specialColumns", specialColumns);
@ -111,7 +124,7 @@ public class HomeController {
windowWrapper.eq(SysColumn::getColumnType, WINDOW_COLUMN_TYPE); windowWrapper.eq(SysColumn::getColumnType, WINDOW_COLUMN_TYPE);
windowWrapper.eq(SysColumn::getColumnGrade, COLUMN_GRADE); windowWrapper.eq(SysColumn::getColumnGrade, COLUMN_GRADE);
windowWrapper.eq(SysColumn::getStatus,STATUS); windowWrapper.eq(SysColumn::getStatus,STATUS);
queryWrapper.orderByAsc(SysColumn::getOrderNum); windowWrapper.orderByAsc(SysColumn::getOrderNum);
List<SysColumn> windowColumns = columnService.list(windowWrapper); List<SysColumn> windowColumns = columnService.list(windowWrapper);
mmap.put("windowColumns", windowColumns); mmap.put("windowColumns", windowColumns);
//访问量 //访问量
@ -130,7 +143,7 @@ public class HomeController {
@GetMapping("/base.html") @GetMapping("/base.html")
public String base(ModelMap mmap) { public String base(ModelMap mmap) {
//最新通知 //最新通知
List<SysNotice> urlList = noticeService.selectNoticeHomeUrl(new SysNotice()); List<SysWork> urlList = workService.selectWorkHomeUrl(new SysWork());
mmap.put("urlList", urlList); mmap.put("urlList", urlList);
List<SysNotice> list = noticeService.selectNoticeHomeList(new SysNotice()); List<SysNotice> list = noticeService.selectNoticeHomeList(new SysNotice());
mmap.put("noticeList", list); mmap.put("noticeList", list);
@ -144,6 +157,15 @@ public class HomeController {
List<SysContent> contentList = contentService.selectSysContentHomeList(new SysContent()); List<SysContent> contentList = contentService.selectSysContentHomeList(new SysContent());
mmap.put("contentList", contentList); mmap.put("contentList", contentList);
//宣传活动对应的栏目
LambdaQueryWrapper<SysColumn> qxWrapper= new LambdaQueryWrapper<>();
qxWrapper.eq(SysColumn::getColumnType, XCHD_COLUMN_TYPE);
qxWrapper.eq(SysColumn::getColumnGrade, COLUMN_GRADE);
qxWrapper.eq(SysColumn::getStatus,STATUS);
qxWrapper.last("limit 6");
qxWrapper.orderByAsc(SysColumn::getOrderNum);
List<SysColumn> xchdColumns = columnService.list(qxWrapper);
mmap.put("xchdColumns", xchdColumns);
//部门动态对应的栏目 //部门动态对应的栏目
LambdaQueryWrapper<SysColumn> query= new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysColumn> query= new LambdaQueryWrapper<>();
query.eq(SysColumn::getColumnType, DEPT_COLUMN_TYPE); query.eq(SysColumn::getColumnType, DEPT_COLUMN_TYPE);
@ -159,7 +181,7 @@ public class HomeController {
queryWrapper.eq(SysColumn::getColumnType, SPECIAL_COLUMN_TYPE); queryWrapper.eq(SysColumn::getColumnType, SPECIAL_COLUMN_TYPE);
queryWrapper.eq(SysColumn::getColumnGrade, COLUMN_GRADE); queryWrapper.eq(SysColumn::getColumnGrade, COLUMN_GRADE);
queryWrapper.eq(SysColumn::getStatus,STATUS); queryWrapper.eq(SysColumn::getStatus,STATUS);
queryWrapper.last("limit 6"); queryWrapper.last("limit 10");
queryWrapper.orderByAsc(SysColumn::getOrderNum); queryWrapper.orderByAsc(SysColumn::getOrderNum);
List<SysColumn> specialColumns = columnService.list(queryWrapper); List<SysColumn> specialColumns = columnService.list(queryWrapper);
mmap.put("specialColumns", specialColumns); mmap.put("specialColumns", specialColumns);
@ -168,7 +190,7 @@ public class HomeController {
windowWrapper.eq(SysColumn::getColumnType, WINDOW_COLUMN_TYPE); windowWrapper.eq(SysColumn::getColumnType, WINDOW_COLUMN_TYPE);
windowWrapper.eq(SysColumn::getColumnGrade, COLUMN_GRADE); windowWrapper.eq(SysColumn::getColumnGrade, COLUMN_GRADE);
windowWrapper.eq(SysColumn::getStatus,STATUS); windowWrapper.eq(SysColumn::getStatus,STATUS);
queryWrapper.orderByAsc(SysColumn::getOrderNum); windowWrapper.orderByAsc(SysColumn::getOrderNum);
List<SysColumn> windowColumns = columnService.list(windowWrapper); List<SysColumn> windowColumns = columnService.list(windowWrapper);
mmap.put("windowColumns", windowColumns); mmap.put("windowColumns", windowColumns);
@ -225,37 +247,22 @@ public class HomeController {
@RequestParam(required = false ) String columnId) { @RequestParam(required = false ) String columnId) {
//部门动态对应的栏目 //部门动态对应的栏目
List<SysColumn> deptColumns = null; /*List<SysColumn> deptColumns = columnService.lambdaQuery()
if(StringUtils.isNotBlank(columnId)){ .eq(SysColumn::getColumnType, DEPT_COLUMN_TYPE)
deptColumns = columnService.lambdaQuery() .eq(SysColumn::getColumnGrade, COLUMN_GRADE)
.eq(SysColumn::getParentId,columnId) .eq(SysColumn::getStatus,STATUS)
.list(); .orderByAsc(SysColumn::getOrderNum)
} else{ .list();
deptColumns = columnService.lambdaQuery() mmap.put("deptColumns", deptColumns);*/
.eq(SysColumn::getColumnType, DEPT_COLUMN_TYPE)
.eq(SysColumn::getColumnGrade, "3")
.eq(SysColumn::getStatus,STATUS)
.list();
}
if(CollUtil.isEmpty(deptColumns)){
deptColumns = columnService.lambdaQuery()
.eq(SysColumn::getColumnId,columnId)
.eq(SysColumn::getStatus,STATUS)
.list();
}
mmap.put("deptColumns", deptColumns);
List<String> columnIdList = deptColumns.stream().map(SysColumn::getColumnId).collect(Collectors.toList());
PageMethod.startPage(pageNum,pageSize); PageMethod.startPage(pageNum,pageSize);
//部门动态 //部门动态
LambdaQueryWrapper<SysDeptTrends> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysDeptTrends> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SysDeptTrends::getStatus,STATUS); queryWrapper.eq(SysDeptTrends::getStatus,STATUS);
if(CollUtil.isNotEmpty(columnIdList)){ if(StringUtils.isNotBlank(columnId)){
queryWrapper.in(SysDeptTrends::getColumnId,columnIdList); queryWrapper.eq(SysDeptTrends::getColumnId, columnId);
}else{
queryWrapper.eq(SysDeptTrends::getColumnId, null);
} }
queryWrapper.orderByDesc(SysDeptTrends::getCreateTime);
List<SysDeptTrends> deptTrends = trendsService.list(queryWrapper); List<SysDeptTrends> deptTrends = trendsService.list(queryWrapper);
PageInfo<SysDeptTrends> page = new PageInfo<>(deptTrends, pageSize); PageInfo<SysDeptTrends> page = new PageInfo<>(deptTrends, pageSize);
mmap.put("page", page); mmap.put("page", page);
@ -307,12 +314,13 @@ public class HomeController {
/*Integer total = operLogService.selectOperToatl(Constants.WEBSITE_ACCESS); /*Integer total = operLogService.selectOperToatl(Constants.WEBSITE_ACCESS);
mmap.put("total", total);*/ mmap.put("total", total);*/
//专题活动对应的栏目 //专题活动对应的栏目
List<SysColumn> specialColumns = columnService.lambdaQuery() /*List<SysColumn> specialColumns = columnService.lambdaQuery()
.eq(SysColumn::getColumnType, SPECIAL_COLUMN_TYPE) .eq(SysColumn::getColumnType, SPECIAL_COLUMN_TYPE)
.eq(SysColumn::getColumnGrade, COLUMN_GRADE) .eq(SysColumn::getColumnGrade, COLUMN_GRADE)
.eq(SysColumn::getStatus,STATUS) .eq(SysColumn::getStatus,STATUS)
.orderByAsc(SysColumn::getOrderNum)
.list(); .list();
mmap.put("specialColumns", specialColumns); mmap.put("specialColumns", specialColumns);*/
mmap.put("columnId", columnId); mmap.put("columnId", columnId);

@ -2,6 +2,8 @@ package com.ruoyi.web.controller.system;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.ruoyi.common.utils.security.RsaUtils;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.authc.UsernamePasswordToken;
@ -56,14 +58,14 @@ public class SysLoginController extends BaseController
@ResponseBody @ResponseBody
public AjaxResult ajaxLogin(String username, String password, Boolean rememberMe) public AjaxResult ajaxLogin(String username, String password, Boolean rememberMe)
{ {
UsernamePasswordToken token = new UsernamePasswordToken(username, password, rememberMe);
Subject subject = SecurityUtils.getSubject();
try try
{ {
UsernamePasswordToken token = new UsernamePasswordToken(username, RsaUtils.decryptByPrivateKey(password), rememberMe);
Subject subject = SecurityUtils.getSubject();
subject.login(token); subject.login(token);
return success(); return success();
} }
catch (AuthenticationException e) catch (Exception e)
{ {
String msg = "用户或密码错误"; String msg = "用户或密码错误";
if (StringUtils.isNotEmpty(e.getMessage())) if (StringUtils.isNotEmpty(e.getMessage()))

@ -8,7 +8,7 @@ spring:
# 主库数据源 # 主库数据源
master: master:
#url: jdbc:postgresql://192.168.254.176:5432/work-portal?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 #url: jdbc:postgresql://192.168.254.176:5432/work-portal?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
url: jdbc:highgo://127.0.0.1:5866/work-portal?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 url: jdbc:highgo://192.168.110.12:5866/work-portal?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
#username: postgres highgo #username: postgres highgo
#password: Qwer@1234 Qwer@1234 #password: Qwer@1234 Qwer@1234
username: ENC(6lCfD2O9U7Q/OtDbbDJcsQ==) username: ENC(6lCfD2O9U7Q/OtDbbDJcsQ==)
@ -17,9 +17,9 @@ spring:
slave: slave:
# 从数据源开关/默认关闭 # 从数据源开关/默认关闭
enabled: false enabled: false
url: url:
username: username:
password: password:
# 初始连接数 # 初始连接数
initialSize: 5 initialSize: 5
# 最小连接池数量 # 最小连接池数量
@ -43,7 +43,7 @@ spring:
testWhileIdle: true testWhileIdle: true
testOnBorrow: false testOnBorrow: false
testOnReturn: false testOnReturn: false
webStatFilter: webStatFilter:
enabled: true enabled: true
statViewServlet: statViewServlet:
enabled: true enabled: true
@ -62,4 +62,4 @@ spring:
merge-sql: true merge-sql: true
wall: wall:
config: config:
multi-statement-allow: true multi-statement-allow: true

@ -125,7 +125,7 @@ shiro:
kickoutAfter: false kickoutAfter: false
rememberMe: rememberMe:
# 是否开启记住我 # 是否开启记住我
enabled: true enabled: false
#解析密钥 #解析密钥
jasypt: jasypt:
@ -137,7 +137,7 @@ xss:
# 过滤开关 # 过滤开关
enabled: true enabled: true
# 排除链接(多个用逗号分隔) # 排除链接(多个用逗号分隔)
excludes: /system/notice/* excludes: /system/notice/*,/system/trends/*,/system/work/*,/system/business/*,/system/special/*
# 匹配链接 # 匹配链接
urlPatterns: /system/*,/monitor/*,/tool/* urlPatterns: /system/*,/monitor/*,/tool/*
@ -145,3 +145,17 @@ xss:
swagger: swagger:
# 是否开启swagger # 是否开启swagger
enabled: false enabled: false
# 滑块验证码
aj:
captcha:
# blockPuzzle滑块 clickWord文字点选 default默认两者都实例化
type: blockPuzzle
# 右下角显示字
water-mark:
# 校验滑动拼图允许误差偏移量(默认5像素)
slip-offset: 5
# aes加密坐标开启或者禁用(true|false)
aes-status: true
# 滑动干扰项(0/1/2)
interference-options: 0

@ -0,0 +1,12 @@
// 加密数据函数 工具crypto.js 文件工具
/**
* @word 要加密的内容
* @keyWord String 服务器随机返回的关键字
* */
function aesEncrypt(word,keyWord){
// var keyWord = keyWord || "XwKsGlMcdPMEhR1B"
var key = CryptoJS.enc.Utf8.parse(keyWord);
var srcs = CryptoJS.enc.Utf8.parse(word);
var encrypted = CryptoJS.AES.encrypt(srcs, key, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});
return encrypted.toString();
}

@ -0,0 +1 @@
function aesEncrypt(d,e){var a=CryptoJS.enc.Utf8.parse(e);var c=CryptoJS.enc.Utf8.parse(d);var b=CryptoJS.AES.encrypt(c,a,{mode:CryptoJS.mode.ECB,padding:CryptoJS.pad.Pkcs7});return b.toString()};

File diff suppressed because one or more lines are too long

@ -0,0 +1,275 @@
.verify-code {
font-size: 20px;
text-align: center;
cursor: pointer;
margin-bottom: 5px;
border: 1px solid #ddd;
}
.cerify-code-panel {
height:100%;
overflow:hidden;
}
.verify-code-area {
float:left;
}
.verify-input-area {
float: left;
width: 60%;
padding-right: 10px;
}
.verify-change-area {
line-height: 30px;
float: left;
}
.varify-input-code {
display:inline-block;
width: 100%;
height: 25px;
}
.verify-change-code {
color: #337AB7;
cursor: pointer;
}
.verify-btn {
width: 200px;
height: 30px;
background-color: #337AB7;
color:#FFFFFF;
border:none;
margin-top: 10px;
}
.verifybox{
position: relative;
box-sizing: border-box;
border-radius: 2px;
border: 1px solid #e4e7eb;
background-color: #fff;
box-shadow: 0 0 10px rgba(0,0,0,.3);
left: 50%;
top:50%;
transform: translate(-50%,-50%);
}
.verifybox-top{
padding: 0 15px;
height: 40px;
line-height: 40px;
text-align: left;
font-size: 16px;
color: #45494c;
border-bottom: 1px solid #e4e7eb;
box-sizing: border-box;
}
.verifybox-bottom{
padding: 15px;
box-sizing: border-box;
}
.verifybox-close{
position: absolute;
top: 8px;
right: 9px;
width: 24px;
height: 24px;
line-height: 24px;
text-align: center;
cursor: pointer;
transition: transform 0.2s ease;
}
.verifybox-close .icon-close{
font-weight: bold;
}
.verifybox-close:hover {
transition: transform 0.2s ease;
transform:rotate(60deg);
-ms-transform:rotate(60deg);
-moz-transform:rotate(60deg);
-webkit-transform:rotate(60deg);
-o-transform:rotate(60deg);
}
.mask{
position: fixed;
top: 0;
left:0;
z-index: 1001;
width: 100%;
height: 100vh;
background: rgba(0,0,0,.3);
/* display: none; */
transition: all .5s;
display: none;
}
.verify-tips{
position: absolute;
display: none;
left: 0px;
bottom:-35px;
width: 100%;
height: 30px;
/* transition: all .5s; */
line-height:30px;
color: #fff;
/* animation:move 1.5s linear; */
}
@keyframes move {
0%{
bottom:-35px;
}
50%,80%{
bottom:0px;
}
100%{
bottom:-35px;
}
}
.suc-bg{
background-color:rgba(92, 184, 92,.5);
filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#7f5CB85C, endcolorstr=#7f5CB85C);
}
.err-bg{
background-color:rgba(217, 83, 79,.5);
filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#7fD9534F, endcolorstr=#7fD9534F);
}
/*滑动验证码*/
.verify-bar-area {
position: relative;
background: #FFFFFF;
text-align: center;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
border: 1px solid #ddd;
-webkit-border-radius: 4px;
}
.verify-bar-area .verify-move-block {
position: absolute;
top: 0px;
left: 0;
background: #fff;
cursor: move;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
box-shadow: 0 0 2px #888888;
-webkit-border-radius: 1px;
}
.verify-bar-area .verify-move-block:hover {
background-color: #337ab7;
color: #FFFFFF;
}
.verify-bar-area .verify-left-bar {
position: absolute;
top: -1px;
left: -1px;
background: #f0fff0;
cursor: pointer;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
border: 1px solid #ddd;
}
.verify-img-panel {
margin:0;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
border: 1px solid #ddd;
border-radius: 3px;
position: relative;
}
/*.verify-img-panel .verify-refresh {*/
/* width: 25px;*/
/* height: 25px;*/
/* text-align:center;*/
/* padding: 5px;*/
/* cursor: pointer;*/
/* position: absolute;*/
/* top: 0;*/
/* right: 0;*/
/* z-index: 2;*/
/*}*/
.verify-img-panel .verify-refresh img {
pointer-events: auto;
display: block;
width: 30px;
height: 30px;
position: absolute;
top: 10px;
right: 10px;
transition: 200ms;
cursor: pointer;
}
.verify-img-panel .icon-refresh {
font-size: 20px;
color: #fff;
}
.verify-img-panel .verify-gap {
background-color: #fff;
position: relative;
z-index: 2;
border:1px solid #fff;
}
.verify-bar-area .verify-move-block .verify-sub-block {
position: absolute;
text-align: center;
z-index: 3;
/* border: 1px solid #fff; */
}
.verify-bar-area .verify-move-block .verify-icon {
font-size: 18px;
}
.verify-bar-area .verify-msg {
z-index : 3;
font-weight: 700;
color: #40485b;
}
/*字体图标的css*/
@font-face {font-family: "iconfont";
src: url('../fonts/iconfont.eot?t=1508229193188'); /* IE9*/
src: url('../fonts/iconfont.eot?t=1508229193188#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAaAAAsAAAAACUwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADMAAABCsP6z7U9TLzIAAAE8AAAARAAAAFZW7kiSY21hcAAAAYAAAAB3AAABuM+qBlRnbHlmAAAB+AAAAnQAAALYnrUwT2hlYWQAAARsAAAALwAAADYPNwajaGhlYQAABJwAAAAcAAAAJAfeA4dobXR4AAAEuAAAABMAAAAYF+kAAGxvY2EAAATMAAAADgAAAA4CvAGsbWF4cAAABNwAAAAfAAAAIAEVAF1uYW1lAAAE/AAAAUUAAAJtPlT+fXBvc3QAAAZEAAAAPAAAAE3oPPXPeJxjYGRgYOBikGPQYWB0cfMJYeBgYGGAAJAMY05meiJQDMoDyrGAaQ4gZoOIAgCKIwNPAHicY2Bk/sM4gYGVgYOpk+kMAwNDP4RmfM1gxMjBwMDEwMrMgBUEpLmmMDgwVDxbwtzwv4EhhrmBoQEozAiSAwAw1A0UeJzFkcENgCAMRX8RjCGO4gTe9eQcnhzAfXC2rqG/hYsT8MmD9gdS0gJIAAaykAjIBYHppCvuD8juR6zMJ67A89Zdn/f1aNPikUn8RvYo8G20CjKim6Rf6b9m34+WWd/vBr+oW8V6q3vF5qKlYrPRp4L0Ad5nGL8AeJxFUc9rE0EYnTezu8lMsrvtbrqb3TRt0rS7bdOmdI0JbWmCtiItIv5oi14qevCk9SQVLFiQgqAF8Q9QLKIHLx48FkHo3ZNnFUXwD5C2B6dO6sFhmI83w7z3fe8RnZCjb2yX5YlLhskkmScXCIFRxYBFiyjH9Rqtoqes9/g5i8WVuJyqDNTYLPwBI+cljXrkGynDhoU+nCgnjbhGY5yst+gMEq8IBIXwsjPU67CnEPm4b0su0h309Fd67da4XBhr55KSm17POk7gOE/Shq6nKdVsC7d9j+tcGPKVboc9u/0jtB/ZIA7PXTVLBef6o/paccjnwOYm3ELJetPuDrvV3gg91wlSXWY6H5qVwRzWf2TybrYYfSdqoXOwh/Qa8RWIjBTiSI3h614/vKSNRhONOrsnQi6Xf4nQFQDTmJE1NKbhI6crHEJO/+S5QPxhYJRRyvBFBP+5T9EPpEAIVzzRQIrjmJ6jY1WTo+NXTMchuBsKuS8PRZATSMl9oTA4uNLkeIA0V1UeqOoGQh7IAxGo+7T83fn3T+voqCNPPAUazUYUI7LgKSV1Jk2oUeghYGhZ+cKOe2FjVu5ZKEY2VkE13AK1+jI4r1KLbPlZfrKiPhOXKPRj7q9sj9XJ7LFHNmrKJS3VCdhXGSdKrtmoQaWeMjQVt0KD6sGPOx0oH2fgtzoNROxtNq8F3tzYM/n+TjKSX5qf2jx941276TIr9FjXxKr8eX/6bK4yuopwo9py1sw8F9kdw4AmurRpLUM3tYx5ZnKpfHPi8dzz19vJ6MjyxYUrpqeb1uLs3eGV6vr21pSqpeWkqonAN9oUyIiXpv8XvlN5e3icY2BkYGAA4n0vN4fG89t8ZeBmYQCBa9wPPRH0/wcsDMwmQC4HAxNIFABAfAqaAHicY2BkYGBu+N/AEMPCAAJAkpEBFbABAEcMAm94nGNhYGBgfsnAwMKAigESnwEBAAAAAAAAdgCkANoBCAFsAAB4nGNgZGBgYGMIZGBlAAEmIOYCQgaG/2A+AwARSAFzAHicZY9NTsMwEIVf+gekEqqoYIfkBWIBKP0Rq25YVGr3XXTfpk6bKokjx63UA3AejsAJOALcgDvwSCebNpbH37x5Y08A3OAHHo7fLfeRPVwyO3INF7gXrlN/EG6QX4SbaONVuEX9TdjHM6bCbXRheYPXuGL2hHdhDx18CNdwjU/hOvUv4Qb5W7iJO/wKt9Dx6sI+5l5XuI1HL/bHVi+cXqnlQcWhySKTOb+CmV7vkoWt0uqca1vEJlODoF9JU51pW91T7NdD5yIVWZOqCas6SYzKrdnq0AUb5/JRrxeJHoQm5Vhj/rbGAo5xBYUlDowxQhhkiMro6DtVZvSvsUPCXntWPc3ndFsU1P9zhQEC9M9cU7qy0nk6T4E9XxtSdXQrbsuelDSRXs1JErJCXta2VELqATZlV44RelzRiT8oZ0j/AAlabsgAAAB4nGNgYoAALgbsgI2RiZGZkYWRlZGNkZ2BsYI1OSM1OZs1OSe/OJW1KDM9o4S9KDWtKLU4g4EBAJ79CeQ=') format('woff'),
url('../fonts/iconfont.ttf?t=1508229193188') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
url('../fonts/iconfont.svg?t=1508229193188#iconfont') format('svg'); /* iOS 4.1- */
}
.iconfont {
font-family:"iconfont" !important;
font-size:16px;
font-style:normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-check:before { content: "\e645"; }
.icon-close:before { content: "\e646"; }
.icon-right:before { content: "\e6a3"; }
.icon-refresh:before { content: "\e6a4"; }

File diff suppressed because one or more lines are too long

@ -0,0 +1,45 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<!--
2013-9-30: Created.
-->
<svg>
<metadata>
Created by iconfont
</metadata>
<defs>
<font id="iconfont" horiz-adv-x="1024" >
<font-face
font-family="iconfont"
font-weight="500"
font-stretch="normal"
units-per-em="1024"
ascent="896"
descent="-128"
/>
<missing-glyph />
<glyph glyph-name="x" unicode="x" horiz-adv-x="1001"
d="M281 543q-27 -1 -53 -1h-83q-18 0 -36.5 -6t-32.5 -18.5t-23 -32t-9 -45.5v-76h912v41q0 16 -0.5 30t-0.5 18q0 13 -5 29t-17 29.5t-31.5 22.5t-49.5 9h-133v-97h-438v97zM955 310v-52q0 -23 0.5 -52t0.5 -58t-10.5 -47.5t-26 -30t-33 -16t-31.5 -4.5q-14 -1 -29.5 -0.5
t-29.5 0.5h-32l-45 128h-439l-44 -128h-29h-34q-20 0 -45 1q-25 0 -41 9.5t-25.5 23t-13.5 29.5t-4 30v167h911zM163 247q-12 0 -21 -8.5t-9 -21.5t9 -21.5t21 -8.5q13 0 22 8.5t9 21.5t-9 21.5t-22 8.5zM316 123q-8 -26 -14 -48q-5 -19 -10.5 -37t-7.5 -25t-3 -15t1 -14.5
t9.5 -10.5t21.5 -4h37h67h81h80h64h36q23 0 34 12t2 38q-5 13 -9.5 30.5t-9.5 34.5q-5 19 -11 39h-368zM336 498v228q0 11 2.5 23t10 21.5t20.5 15.5t34 6h188q31 0 51.5 -14.5t20.5 -52.5v-227h-327z" />
<glyph glyph-name="check" unicode="&#58949;" d="M887.904 597.792c-12.864 12.064-33.152 11.488-45.216-1.408L415.936 142.016l-233.12 229.696C170.208 384.128 149.952 384 137.536 371.392c-12.416-12.576-12.256-32.864 0.352-45.248l256.48-252.672c0.096-0.096 0.224-0.128 0.32-0.224 0.096-0.096 0.128-0.224 0.224-0.32 2.016-1.92 4.448-3.008 6.784-4.288 1.152-0.672 2.144-1.664 3.36-2.144 3.776-1.472 7.776-2.24 11.744-2.24 4.192 0 8.384 0.832 12.288 2.496 1.312 0.544 2.336 1.664 3.552 2.368 2.4 1.408 4.896 2.592 6.944 4.672 0.096 0.096 0.128 0.256 0.224 0.352 0.064 0.096 0.192 0.128 0.288 0.224l449.184 478.208C901.44 565.408 900.768 585.664 887.904 597.792z" horiz-adv-x="1024" />
<glyph glyph-name="close" unicode="&#58950;" d="M557.312 382.752l265.28 263.904c12.544 12.48 12.608 32.704 0.128 45.248-12.512 12.576-32.704 12.608-45.248 0.128l-265.344-263.936-263.04 263.84C236.64 704.416 216.384 704.48 203.84 692 191.328 679.52 191.296 659.264 203.776 646.72l262.976-263.776L201.6 119.2c-12.544-12.48-12.608-32.704-0.128-45.248 6.24-6.272 14.464-9.44 22.688-9.44 8.16 0 16.32 3.104 22.56 9.312l265.216 263.808 265.44-266.24c6.24-6.272 14.432-9.408 22.656-9.408 8.192 0 16.352 3.136 22.592 9.344 12.512 12.48 12.544 32.704 0.064 45.248L557.312 382.752z" horiz-adv-x="1024" />
<glyph glyph-name="right" unicode="&#59043;" d="M761.056 363.872c0.512 0.992 1.344 1.824 1.792 2.848 8.8 18.304 5.92 40.704-9.664 55.424L399.936 756.256c-19.264 18.208-49.632 17.344-67.872-1.888-18.208-19.264-17.376-49.632 1.888-67.872l316.96-299.84-315.712-304.288c-19.072-18.4-19.648-48.768-1.248-67.872 9.408-9.792 21.984-14.688 34.56-14.688 12 0 24 4.48 33.312 13.44l350.048 337.376c0.672 0.672 0.928 1.6 1.6 2.304 0.512 0.48 1.056 0.832 1.568 1.344C757.76 357.12 759.2 360.608 761.056 363.872z" horiz-adv-x="1024" />
<glyph glyph-name="refresh" unicode="&#59044;" d="M939.456 639.776c-16.672 5.984-34.976-2.72-40.896-19.36l-24.768-69.344c-28.992 65.312-74.784 122.72-133.088 165.92C555.328 854.272 291.296 816.768 152.32 633.344c-67.264-88.768-95.616-198.176-79.84-308.032 15.84-110.304 74.208-207.776 164.352-274.496 75.424-55.808 163.808-82.752 251.456-82.752 128.032 0 254.56 57.44 336.992 166.272 36.48 48.128 61.472 102.08 74.208 160.416 3.776 17.248-7.136 34.304-24.416 38.08-17.216 3.712-34.304-7.104-38.08-24.416-10.784-49.184-31.872-94.752-62.72-135.456-117.888-155.52-341.92-187.232-499.392-70.72-76.288 56.48-125.664 138.912-139.072 232.16-13.344 92.8 10.656 185.248 67.488 260.288 117.856 155.584 341.792 187.424 499.328 70.848 57.024-42.24 99.84-100.608 122.976-166.624l-109.984 42.944c-16.416 6.368-35.008-1.696-41.44-18.176-6.432-16.48 1.728-35.008 18.176-41.44l161.856-63.2c3.808-1.472 7.744-2.208 11.616-2.208 0.544 0 1.024 0.192 1.568 0.224 1.216-0.128 2.432-0.64 3.648-0.64 13.12 0 25.472 8.16 30.112 21.248l57.632 161.184C964.768 615.52 956.096 633.856 939.456 639.776z" horiz-adv-x="1024" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 4.1 KiB

@ -0,0 +1,705 @@
/*! Verify&admin MIT License by anji-plus*/
;(function($, window, document,undefined) {
// 初始话 uuid
uuid()
function uuid() {
var s = [];
var hexDigits = "0123456789abcdef";
for (var i = 0; i < 36; i++) {
s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
}
s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
s[8] = s[13] = s[18] = s[23] = "-";
var slider = 'slider'+ '-'+s.join("");
var point = 'point'+ '-'+s.join("");
if(!localStorage.getItem('slider')) {
localStorage.setItem('slider', slider)
}
if(!localStorage.getItem('point')) {
localStorage.setItem("point",point);
}
}
var startX,startY;
document.addEventListener("touchstart",function(e){
startX = e.targetTouches[0].pageX;
startY = e.targetTouches[0].pageY;
});
document.addEventListener("touchmove",function(e){
var moveX = e.targetTouches[0].pageX;
var moveY = e.targetTouches[0].pageY;
if(Math.abs(moveX-startX)>Math.abs(moveY-startY)){
e.preventDefault();
}
},{passive:false});
//请求图片get事件
function getPictrue(data,baseUrl,resolve,reject){
$.ajax({
type : "post",
contentType: "application/json;charset=UTF-8",
url : baseUrl + "captcha/get",
data :JSON.stringify(data),
cache: false,
crossDomain: true == !(document.all),
success:function(res){
resolve(res)
},
fail: function(err) {
reject(err)
}
})
}
//验证图片check事件
function checkPictrue(data,baseUrl,resolve,reject){
$.ajax({
type : "post",
contentType: "application/json;charset=UTF-8",
url : baseUrl + "captcha/check",
data :JSON.stringify(data),
cache: false,
crossDomain: true == !(document.all),
success:function(res){
resolve(res)
},
fail: function(err) {
reject(err)
}
})
}
//定义Slide的构造函数
var Slide = function(ele, opt) {
this.$element = ele,
this.backToken = null,
this.moveLeftDistance = 0,
this.secretKey = '',
this.defaults = {
baseUrl:"https://captcha.anji-plus.com/captcha-api",
containerId:'',
captchaType:"blockPuzzle",
mode : 'fixed', //弹出式pop固定fixed
vOffset: 5,
vSpace : 5,
explain : '向右滑动完成验证',
imgSize : {
width: '360px',
height: '155px',
},
blockSize : {
width: '50px',
height: '50px',
},
circleRadius: '10px',
barSize : {
width : '360px',
height : '40px',
},
beforeCheck:function(){ return true},
ready : function(){},
success : function(){},
error : function(){}
},
this.options = $.extend({}, this.defaults, opt)
};
//定义Slide的方法
Slide.prototype = {
init: function() {
var _this = this;
//加载页面
this.loadDom();
_this.refresh();
this.options.ready();
this.$element[0].onselectstart = document.body.ondrag = function(){
return false;
};
if(this.options.mode == 'pop') {
_this.$element.find('.verifybox-close').on('click', function() {
_this.$element.find(".mask").css("display","none");
_this.refresh();
});
var clickBtn = document.getElementById(this.options.containerId);
clickBtn && (clickBtn.onclick = function(){
if (_this.options.beforeCheck()) {
_this.$element.find(".mask").css("display","block");
}
})
}
//按下
this.htmlDoms.move_block.on('touchstart', function(e) {
_this.start(e);
});
this.htmlDoms.move_block.on('mousedown', function(e) {
_this.start(e);
});
//拖动
window.addEventListener("touchmove", function(e) {
_this.move(e);
});
window.addEventListener("mousemove", function(e) {
_this.move(e);
});
//鼠标松开
window.addEventListener("touchend", function() {
_this.end();
});
window.addEventListener("mouseup", function() {
_this.end();
});
//刷新
_this.$element.find('.verify-refresh').on('click', function() {
_this.refresh();
});
},
//初始化加载
loadDom : function() {
this.status = false; //鼠标状态
this.isEnd = false; //是够验证完成
this.setSize = this.resetSize(this); //重新设置宽度高度
this.plusWidth = 0;
this.plusHeight = 0;
this.x = 0;
this.y = 0;
var panelHtml = '';
var wrapHtml = '';
this.lengthPercent = (parseInt(this.setSize.img_width)-parseInt(this.setSize.block_width)- parseInt(this.setSize.circle_radius) - parseInt(this.setSize.circle_radius) * 0.8)/(parseInt(this.setSize.img_width)-parseInt(this.setSize.bar_height));
wrapStartHtml = '<div class="mask">'+
'<div class="verifybox" style="width:'+(parseInt(this.setSize.img_width)+30)+'px">'+
'<div class="verifybox-top">'+
'请完成安全验证'+
'<span class="verifybox-close">'+
'<i class="iconfont icon-close"></i>'+
'</span>'+
'</div>'+
'<div class="verifybox-bottom" style="padding:10px 15px 15px 15px">'+
'<div style="position: relative;">';
if (this.options.mode == 'pop') {
panelHtml = wrapStartHtml
}
panelHtml += '<div class="verify-img-out">'+
'<div class="verify-img-panel">'+
'<div class="verify-refresh" style="z-index:3">'+
'<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAMAAABHPGVmAAAARVBMVEUAAAAFBQUAAAABAQFHcEwAAAAAAAAAAAAAAAAAAAABAQESEhL5+fn8/Pzl5eXY2NikpKS7u7vz8/N5eXns7OzHx8f///8m8Yz0AAAAFnRSTlMBJBYfAA4SBQkCGi3f8qGOVWPNQbV5nvGdEgAABohJREFUaN69mumWpCoMgKO1aBWKu+//qCN7EkBxpqf5c889Y/F1FpKQAM/CBalV+tvS7T+JVUqCEoLbtEGLgP4FgghNepVx4ByBAS1bnPMXEIdAgBddAXSFgQKE3f/NlgUVYCDHcAhDUJvWdf316/gfC7IciymGWDE8QgPUzg+0DElzLjFwJoYjmP0rtgzJcSwmSUlCvBgWYQDjINd57vq977pVDpPQIIsx0mQokGUYMSxiHOZ+52uWo+JojBUmrbI0xImhEFW1DN2eWb3iHOIQTESBjCCWcSCmdT9d8+SlyVEgLYhmKDGmbr9cBnNCiSFGEMNY1r1ozYsR5lCZo1xBjCCHroZ+L12DESZNyUCUIEu331haGK2ymJKF1N95v7cmpTJPwWbJQ6aUx3bzvK6rOpFJlWUoeYhkW3TrNgq/lk3G2pSMkoMcHmztLtmhE8KGrEoFGVEJMUou0Bqsj80CccHQGEkGJMQmTKAywff7sPFSiK2LZanNeUlAfJXjIO/K/Zn94EKhTiN6mcCvMMzNB0shCoNkTaJjymR+vi6WUNPEqBPAgWEHdjsoxiwMQuqqEOTH9YjpI04bJuOa/75d/BQbEWZUFKow8EER1z02zNc+17pEi9bLZYJDGGyZbnEKIxBcljQNzbo+l4caiH5Ta8rMXIwqDFy6jSqrUJ+gqqTBIrchH4g5VhiDuFSod2YgVF/RQtirVVOwxuaKKQxIuj1+8oqUTysrQL7oXITbZWOiQMhSSjuTTFsgyt0e4yko1vUCieI+1idDqffR7Vvt8jUpdhOJ26vAUiQ9kgRiM6HS7ff4rl9CIj2/H2CK9rGgsD5YBcCndGO/UXugjaQtvhik608c6g7KSHIL0hfOtpX5UyYfr6/vBKHsUKKsxME4xDAkNRuNpOeUSJRw7DXEW25kWaFN1B25etOKMmPTB6OAU1ZVdSRbh8BwTfGiBDfusL6AK8soLI6k1xTqYFrnxw4GYq02phLcTVHwWZmQvqAhnkUUVmr7oC907PF5BCvIwEoTESWFc9O3rTn2Pn/NeIc2HEOqsEKIPypv6l/OripuWEhcLY5IX2UnRUOCRhYUWjRkiMvBrjq8uMAo4aDUNBaPwUU1ZElVnTIqOi4hR4W0hKQivCgaki6txxIIi15CBPcSRpRjDwUZ0lV69y2CEG1FEC2KguTuIVPBQcHBXjEIxFkFWv/vQSD18eHCr6g8zx7F9jVl/tLuoECQlEBKA7GHfDP6GCzE2gy5uKAREgqCyntM3/JqDfGibMjFRVWYUdBRlCnI4iDW/caUixdCVFCpEgob9DYQ/G9BjlEe6tExiRU2PzzEZRwUQXVqbIsgKJ3IRAA0kJAMWAQ1ee1WOuni67A+Jyh5Bvea7qUTb9eJxVh34sFZBX8yiKockqiq2J0LtOUO71DSosTIrxiFomCFhUIBnkhftCi6LcqbFUWVqxHhifQVjDIjUcrrO6WwlSiLF5HHFwvV582iyHpYn6iqnlhfIXutN6IXkEbcRDwrqrmJC460tQAng5sPvnN9H2s4hsGogEJLTx2sRj0yuByt2Muwqhjklzdykudxl8Jbrslf5+IWw7ve9u5h7oRIDTgwoLpldJT27GKaaDG85eR76/4ahUPLhvsXVaDkrtjR7AaNV3wzEvgVY8YFsW+RtulmQRO2xZzWNRisQYBfMXBSmEXoKifaHg0e3vAeA55CAMuh6Mh6jdVnDZzQ5Ym++XjPipIC6ysJP1agXRfbivLDoTASoC2GJ4ck7lz9Jly/P9lUU91I1XyTY9xi8PdziIoOfiFaF4NJtgdVf8jot59Qe5u1MSCuNlnqUcII14bkjc4qNDr7Ckch0saAVCSt2LCBt2z1BC1q2Q4MEvfqSSMnouy9XFzz2a2o+by6qJsfN6GO8DfSmBZHbktoo4/byms5iVtcOQilJC8tfafnAemBwHQNIRTdwiif0Ng7UwHkiTtxumy9NUDplnDHPJszBoptkZaPm/qhItn2ZARIKTeEWRfSiLuAwAdPMg9htoLBVucHTZk6DZ5nFD3MnO9MGT/XEEIxwqjBr+zzY9mFz0sLBsysd22lqSYZy9PPckoMmAun2MCn8SZQTYOcO3UM9ZEcxoqOyps7o3IyhYiH/gJP/enQ/3Nj6E9fSIT05F4vqPlc5vkCFD9f+J2HGL/0pCT5OOb1049jfumZD63bm//1YCm6HyT2/4GnV7/1iOz0NVzpj/8AwGROkG+dyqIAAAAASUVORK5CYII=">'+
'</div>'+
'<span class="verify-tips" class="suc-bg"></span>'+
'<img src="" class="backImg" style="width:100%;height:100%;display:block">'+
'</div>'+
'</div>';
this.plusWidth = parseInt(this.setSize.block_width) + parseInt(this.setSize.circle_radius) * 2 - parseInt(this.setSize.circle_radius) * 0.2;
this.plusHeight = parseInt(this.setSize.block_height) + parseInt(this.setSize.circle_radius) * 2 - parseInt(this.setSize.circle_radius) * 0.2;
panelHtml +='<div class="verify-bar-area" style="width:'+this.setSize.img_width+',height:'+this.setSize.bar_height+',line-height:'+this.setSize.bar_height+'">'+
'<span class="verify-msg">'+this.options.explain+'</span>'+
'<div class="verify-left-bar">'+
'<span class="verify-msg"></span>'+
'<div class="verify-move-block">'+
'<i class="verify-icon iconfont icon-right"></i>'+
'<div class="verify-sub-block">'+
'<img src="" class="bock-backImg" alt="" style="width:100%;height:100%;display:block">'+
'</div>'+
'</div>'+
'</div>'+
'</div>';
wrapEndHtml = '</div></div></div></div>';
if (this.options.mode == 'pop') {
panelHtml += wrapEndHtml
}
this.$element.append(panelHtml);
this.htmlDoms = {
tips: this.$element.find('.verify-tips'),
sub_block : this.$element.find('.verify-sub-block'),
out_panel : this.$element.find('.verify-img-out'),
img_panel : this.$element.find('.verify-img-panel'),
img_canvas : this.$element.find('.verify-img-canvas'),
bar_area : this.$element.find('.verify-bar-area'),
move_block : this.$element.find('.verify-move-block'),
left_bar : this.$element.find('.verify-left-bar'),
msg : this.$element.find('.verify-msg'),
icon : this.$element.find('.verify-icon'),
refresh :this.$element.find('.verify-refresh')
};
this.$element.css('position', 'relative');
this.htmlDoms.sub_block.css({'height':this.setSize.img_height,'width':Math.floor(parseInt(this.setSize.img_width)*47/310)+ 'px',
'top':-(parseInt(this.setSize.img_height) + this.options.vSpace) + 'px'})
this.htmlDoms.out_panel.css('height', parseInt(this.setSize.img_height) + this.options.vSpace + 'px');
this.htmlDoms.img_panel.css({'width': this.setSize.img_width, 'height': this.setSize.img_height});
this.htmlDoms.bar_area.css({'width': this.setSize.img_width, 'height': this.setSize.bar_height, 'line-height':this.setSize.bar_height});
this.htmlDoms.move_block.css({'width': this.setSize.bar_height, 'height': this.setSize.bar_height});
this.htmlDoms.left_bar.css({'width': this.setSize.bar_height, 'height': this.setSize.bar_height});
},
//鼠标按下
start: function(e) {
if(!e.originalEvent.targetTouches) { //兼容移动端
var x = e.clientX;
}else { //兼容PC端
var x = e.originalEvent.targetTouches[0].pageX;
}
// if(!e.touches) { //兼容移动端
// var x = e.clientX;
// }else { //兼容PC端
// var x = e.touches[0].pageX;
// }
this.startLeft = Math.floor(x - this.htmlDoms.bar_area[0].getBoundingClientRect().left);
this.startMoveTime = new Date().getTime();
if(this.isEnd == false) {
this.htmlDoms.msg.text('');
this.htmlDoms.move_block.css('background-color', '#337ab7');
this.htmlDoms.left_bar.css('border-color', '#337AB7');
this.htmlDoms.icon.css('color', '#fff');
e.stopPropagation();
this.status = true;
}
},
//鼠标移动
move: function(e) {
if(this.status && this.isEnd == false) {
if(!e.touches) { //兼容移动端
var x = e.clientX;
}else { //兼容PC端
var x = e.touches[0].pageX;
}
var bar_area_left = this.htmlDoms.bar_area[0].getBoundingClientRect().left;
var move_block_left = x - bar_area_left; //小方块相对于父元素的left值
if(move_block_left >= (this.htmlDoms.bar_area[0].offsetWidth - parseInt(this.setSize.bar_height) + parseInt(parseInt(this.setSize.block_width)/2) - 2) ) {
move_block_left = (this.htmlDoms.bar_area[0].offsetWidth - parseInt(this.setSize.bar_height) + parseInt(parseInt(this.setSize.block_width)/2)- 2);
}
if(move_block_left <= parseInt(parseInt(this.setSize.block_width)/2)) {
move_block_left = parseInt(parseInt(this.setSize.block_width)/2);
}
//拖动后小方块的left值
this.htmlDoms.move_block.css('left', move_block_left-this.startLeft + "px");
this.htmlDoms.left_bar.css('width', move_block_left-this.startLeft + "px");
this.htmlDoms.sub_block.css('left', "0px");
this.moveLeftDistance = move_block_left - this.startLeft
}
},
//鼠标松开
end: function() {
this.endMovetime = new Date().getTime();
var _this = this;
//判断是否重合
if(this.status && this.isEnd == false) {
var vOffset = parseInt(this.options.vOffset);
this.moveLeftDistance = this.moveLeftDistance * 310/ parseInt(this.setSize.img_width)
//图片滑动
var data = {
captchaType:this.options.captchaType,
"pointJson": this.secretKey ? aesEncrypt(JSON.stringify({x:this.moveLeftDistance,y:5.0}),this.secretKey):JSON.stringify({x:this.moveLeftDistance,y:5.0}),
"token":this.backToken,
clientUid: localStorage.getItem('slider'),
ts: Date.now()
}
var captchaVerification = this.secretKey ? aesEncrypt(this.backToken+'---'+JSON.stringify({x:this.moveLeftDistance,y:5.0}),this.secretKey):this.backToken+'---'+JSON.stringify({x:this.moveLeftDistance,y:5.0})
checkPictrue(data,this.options.baseUrl,function(res){
// 请求反正成功的判断
if (res.repCode=="0000") {
_this.htmlDoms.move_block.css('background-color', '#5cb85c');
_this.htmlDoms.left_bar.css({'border-color': '#5cb85c', 'background-color': '#fff'});
_this.htmlDoms.icon.css('color', '#fff');
_this.htmlDoms.icon.removeClass('icon-right');
_this.htmlDoms.icon.addClass('icon-check');
//提示框
_this.htmlDoms.tips.addClass('suc-bg').removeClass('err-bg')
_this.htmlDoms.tips.css({"display":"block",animation:"move 1s cubic-bezier(0, 0, 0.39, 1.01)"});
_this.htmlDoms.tips.text(((_this.endMovetime-_this.startMoveTime)/1000).toFixed(2) + 's验证成功');
_this.isEnd = true;
setTimeout(function(){
_this.$element.find(".mask").css("display","none");
_this.htmlDoms.tips.css({"display":"none",animation:"none"});
_this.refresh();
}, 1000)
_this.options.success({'__captchaVerification':captchaVerification});
}else{
_this.htmlDoms.move_block.css('background-color', '#d9534f');
_this.htmlDoms.left_bar.css('border-color', '#d9534f');
_this.htmlDoms.icon.css('color', '#fff');
_this.htmlDoms.icon.removeClass('icon-right');
_this.htmlDoms.icon.addClass('icon-close');
_this.htmlDoms.tips.addClass('err-bg').removeClass('suc-bg')
_this.htmlDoms.tips.css({"display":"block",animation:"move 1.3s cubic-bezier(0, 0, 0.39, 1.01)"});
_this.htmlDoms.tips.text(res.repMsg)
setTimeout(function () {
_this.refresh();
}, 800);
setTimeout(function () {
_this.htmlDoms.tips.css({"display":"none",animation:"none"});
}, 1300)
_this.options.error(this);
}
})
this.status = false;
}
},
resetSize : function(obj) {
var img_width,img_height,bar_width,bar_height,block_width,block_height,circle_radius; //图片的宽度、高度,移动条的宽度、高度
var parentWidth = obj.$element.parent().width() || $(window).width();
var parentHeight = obj.$element.parent().height() || $(window).height();
if(obj.options.imgSize.width.indexOf('%')!= -1){
img_width = parseInt(obj.options.imgSize.width)/100 * parentWidth + 'px';
  }else {
img_width = obj.options.imgSize.width;
}
if(obj.options.imgSize.height.indexOf('%')!= -1){
img_height = parseInt(obj.options.imgSize.height)/100 * parentHeight + 'px';
  }else {
img_height = obj.options.imgSize.height;
}
if(obj.options.barSize.width.indexOf('%')!= -1){
bar_width = parseInt(obj.options.barSize.width)/100 * parentWidth + 'px';
  }else {
bar_width = obj.options.barSize.width;
}
if(obj.options.barSize.height.indexOf('%')!= -1){
bar_height = parseInt(obj.options.barSize.height)/100 * parentHeight + 'px';
  }else {
bar_height = obj.options.barSize.height;
}
if(obj.options.blockSize) {
if(obj.options.blockSize.width.indexOf('%')!= -1){
block_width = parseInt(obj.options.blockSize.width)/100 * parentWidth + 'px';
  }else {
block_width = obj.options.blockSize.width;
}
if(obj.options.blockSize.height.indexOf('%')!= -1){
block_height = parseInt(obj.options.blockSize.height)/100 * parentHeight + 'px';
  }else {
block_height = obj.options.blockSize.height;
}
}
if(obj.options.circleRadius) {
if(obj.options.circleRadius.indexOf('%')!= -1){
circle_radius = parseInt(obj.options.circleRadius)/100 * parentHeight + 'px';
  }else {
circle_radius = obj.options.circleRadius;
}
}
return {img_width : img_width, img_height : img_height, bar_width : bar_width, bar_height : bar_height, block_width : block_width, block_height : block_height, circle_radius : circle_radius};
},
//刷新
refresh: function() {
var _this = this;
this.htmlDoms.refresh.show();
this.$element.find('.verify-msg:eq(1)').text('');
this.$element.find('.verify-msg:eq(1)').css('color', '#000');
this.htmlDoms.move_block.animate({'left':'0px'}, 'fast');
this.htmlDoms.left_bar.animate({'width': parseInt(this.setSize.bar_height)}, 'fast');
this.htmlDoms.left_bar.css({'border-color': '#ddd'});
this.htmlDoms.move_block.css('background-color', '#fff');
this.htmlDoms.icon.css('color', '#000');
this.htmlDoms.icon.removeClass('icon-close');
this.htmlDoms.icon.addClass('icon-right');
this.$element.find('.verify-msg:eq(0)').text(this.options.explain);
this.isEnd = false;
getPictrue({captchaType:"blockPuzzle", clientUid: localStorage.getItem('slider'), ts: Date.now()},this.options.baseUrl,function (res) {
if (res.repCode=="0000") {
_this.$element.find(".backImg")[0].src = 'data:image/png;base64,'+res.repData.originalImageBase64
_this.$element.find(".bock-backImg")[0].src = 'data:image/png;base64,'+res.repData.jigsawImageBase64
_this.secretKey = res.repData.secretKey
_this.backToken = res.repData.token
} else {
_this.$element.find(".backImg")[0].src = 'images/default.jpg'
_this.$element.find(".bock-backImg")[0].src = ''
_this.htmlDoms.tips.addClass('err-bg').removeClass('suc-bg')
_this.htmlDoms.tips.animate({"bottom":"0px"});
_this.htmlDoms.tips.text(res.repMsg)
setTimeout(function () {
_this.htmlDoms.tips.animate({"bottom":"-35px"});
}, 1000);
}
});
this.htmlDoms.sub_block.css('left', "0px");
},
};
//定义Points的构造函数
var Points = function(ele, opt) {
this.$element = ele,
this.backToken = null,
this.secretKey = '',
this.defaults = {
baseUrl:"https://captcha.anji-plus.com/captcha-api",
captchaType:"clickWord",
containerId:'',
mode : 'fixed', //弹出式pop固定fixed
checkNum : 3, //校对的文字数量
vSpace : 5, //间隔
explain : '向右拖动滑块填充拼图',
imgSize : {
width: '310px',
height: '155px',
},
barSize : {
width : '310px',
height : '50px',
},
beforeCheck: function(){ return true},
ready : function(){},
success : function(){},
error : function(){}
},
this.options = $.extend({}, this.defaults, opt)
};
//定义Points的方法
Points.prototype = {
init : function() {
var _this = this;
//加载页面
_this.loadDom();
_this.refresh();
_this.options.ready();
this.$element[0].onselectstart = document.body.ondrag = function(){
return false;
};
if(this.options.mode == 'pop') {
_this.$element.find('.verifybox-close').on('click', function() {
_this.$element.find(".mask").css("display","none");
});
var clickBtn = document.getElementById(this.options.containerId);
clickBtn && (clickBtn.onclick = function(){
if (_this.options.beforeCheck()) {
_this.$element.find(".mask").css("display","block");
}
})
}
// 注册点击验证事件
_this.$element.find('.back-img').on('click', function(e) {
_this.checkPosArr.push(_this.getMousePos(this, e));
if(_this.num == _this.options.checkNum) {
_this.num = _this.createPoint(_this.getMousePos(this, e));
//按比例转换坐标值
_this.checkPosArr = _this.pointTransfrom(_this.checkPosArr,_this.setSize);
setTimeout(function(){
var data = {
captchaType:_this.options.captchaType,
"pointJson":_this.secretKey ? aesEncrypt(JSON.stringify(_this.checkPosArr),_this.secretKey):JSON.stringify(_this.checkPosArr),
"token":_this.backToken,
clientUid: localStorage.getItem('point'),
ts: Date.now()
}
var captchaVerification = _this.secretKey ? aesEncrypt(_this.backToken+'---'+JSON.stringify(_this.checkPosArr),_this.secretKey):_this.backToken+'---'+JSON.stringify(_this.checkPosArr)
checkPictrue(data, _this.options.baseUrl,function(res){
if (res.repCode=="0000") {
_this.$element.find('.verify-bar-area').css({'color': '#4cae4c', 'border-color': '#5cb85c'});
_this.$element.find('.verify-msg').text('验证成功');
// _this.$element.find('.verify-refresh').hide();
_this.$element.find('.verify-img-panel').unbind('click');
setTimeout(function(){
_this.$element.find(".mask").css("display","none");
_this.refresh();
},1000)
_this.options.success({'captchaVerification':captchaVerification});
}else{
_this.options.error(_this);
_this.$element.find('.verify-bar-area').css({'color': '#d9534f', 'border-color': '#d9534f'});
_this.$element.find('.verify-msg').text('验证失败');
setTimeout(function () {
_this.$element.find('.verify-bar-area').css({'color': '#000','border-color': '#ddd'});
_this.refresh();
}, 400);
}
})
}, 400);
}
if(_this.num < _this.options.checkNum) {
_this.num = _this.createPoint(_this.getMousePos(this, e));
}
});
//刷新
_this.$element.find('.verify-refresh').on('click', function() {
_this.refresh();
});
},
//加载页面
loadDom : function() {
this.fontPos = []; //选中的坐标信息
this.checkPosArr = []; //用户点击的坐标
this.num = 1; //点击的记数
var panelHtml = '';
var wrapStartHtml = '';
this.setSize = Slide.prototype.resetSize(this); //重新设置宽度高度
wrapStartHtml = '<div class="mask">'+
'<div class="verifybox" style="width:'+(parseInt(this.setSize.img_width)+30)+'px">'+
'<div class="verifybox-top">'+
'请完成安全验证'+
'<span class="verifybox-close">'+
'<i class="iconfont icon-close"></i>'+
'</span>'+
'</div>'+
'<div class="verifybox-bottom" style="padding:15px">'+
'<div style="position: relative;">';
if (this.options.mode == 'pop') {
panelHtml = wrapStartHtml
}
panelHtml += '<div class="verify-img-out">'+
'<div class="verify-img-panel">'+
'<div class="verify-refresh" style="z-index:3">'+
'<i class="iconfont icon-refresh"></i>'+
'</div>'+
'<img src="" class="back-img" width="'+this.setSize.img_width+'" height="'+this.setSize.img_height+'">'+
'</div>'+
'</div>'+
'<div class="verify-bar-area" style="width:'+this.setSize.img_width+',height:'+this.setSize.bar_height+',line-height:'+this.setSize.bar_height+'">'+
'<span class="verify-msg"></span>'+
'</div>';
wrapEndHtml = '</div></div></div></div>';
if (this.options.mode == 'pop') {
panelHtml += wrapEndHtml
}
this.$element.append(panelHtml);
this.htmlDoms = {
back_img : this.$element.find('.back-img'),
out_panel : this.$element.find('.verify-img-out'),
img_panel : this.$element.find('.verify-img-panel'),
bar_area : this.$element.find('.verify-bar-area'),
msg : this.$element.find('.verify-msg'),
};
this.$element.css('position', 'relative');
this.htmlDoms.out_panel.css('height', parseInt(this.setSize.img_height) + this.options.vSpace + 'px');
this.htmlDoms.img_panel.css({'width': this.setSize.img_width, 'height': this.setSize.img_height, 'background-size' : this.setSize.img_width + ' '+ this.setSize.img_height, 'margin-bottom': this.options.vSpace + 'px'});
this.htmlDoms.bar_area.css({'width': this.setSize.img_width, 'height': this.setSize.bar_height, 'line-height':this.setSize.bar_height});
},
//获取坐标
getMousePos :function(obj, event) {
var e = event || window.event;
var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
var x = e.clientX - ($(obj).offset().left - $(window).scrollLeft());
var y = e.clientY - ($(obj).offset().top - $(window).scrollTop());
return {'x': x, 'y': y};
},
//创建坐标点
createPoint : function (pos) {
this.htmlDoms.img_panel.append('<div class="point-area" style="background-color:#1abd6c;color:#fff;z-index:9999;width:20px;height:20px;text-align:center;line-height:20px;border-radius: 50%;position:absolute;'
+'top:'+parseInt(pos.y-10)+'px;left:'+parseInt(pos.x-10)+'px;">'+this.num+'</div>');
return ++this.num;
},
//刷新
refresh: function() {
var _this = this;
this.$element.find('.point-area').remove();
this.fontPos = [];
this.checkPosArr = [];
this.num = 1;
getPictrue({captchaType:"clickWord", clientUid: localStorage.getItem('point'), ts: Date.now()},_this.options.baseUrl,function(res){
if (res.repCode=="0000") {
_this.htmlDoms.back_img[0].src ='data:image/png;base64,'+ res.repData.originalImageBase64;
_this.backToken = res.repData.token;
_this.secretKey = res.repData.secretKey;
var text = '请依次点击【' + res.repData.wordList.join(",") + '】';
_this.$element.find('.verify-msg').text(text);
} else {
_this.htmlDoms.back_img[0].src = 'images/default.jpg';
_this.$element.find('.verify-msg').text(res.repMsg);
}
})
},
pointTransfrom:function(pointArr,imgSize){
var newPointArr = pointArr.map(function(p){
var x = Math.round(310 * p.x/parseInt(imgSize.img_width))
var y =Math.round(155 * p.y/parseInt(imgSize.img_height))
return {'x':x,'y':y}
})
return newPointArr
}
};
//在插件中使用slideVerify对象
$.fn.slideVerify = function(options, callbacks) {
var slide = new Slide(this, options);
if (slide.options.mode=="pop" && slide.options.beforeCheck()) {
slide.init();
}else if (slide.options.mode=="fixed") {
slide.init();
}
};
//在插件中使用clickVerify对象
$.fn.pointsVerify = function(options, callbacks) {
var points = new Points(this, options);
if (points.options.mode=="pop" && points.options.beforeCheck()) {
points.init();
}else if (points.options.mode=="fixed") {
points.init();
}
};
})(jQuery, window, document);

File diff suppressed because one or more lines are too long

@ -0,0 +1,542 @@
/* 页面整体布局 */
html, body {
height: 100%;
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
}
.layui-nav-item {
position: relative;
margin: 0 10px;
padding: 0 5px;
}
/* 设置内容区域自动填充剩余高度 */
#content {
flex-grow: 1;
padding-bottom: 5px;
}
.time {
position: absolute;
right: 0;
}
.newslist li a{
line-height: 35px;
font-size: 15px;
cursor: pointer;
}
.newslist-to li a{
line-height: 35px;
font-size: 15px;
cursor: pointer;
margin-left: 15px;
width: 70%;
display: inline-block;
overflow: hidden;
height: 25px;
white-space: nowrap;
text-overflow: ellipsis;
}
.newslist-to-l li:before {
content: '';
position: absolute;
left: 0;
top: 50%;
margin-top: -3px;
width: 6px;
height: 6px;
background: #0558b0;
}
.newslist-to li {
position: relative;
overflow: hidden;
vertical-align: top;
line-height: 40px;
font-size: 16px;
}
.zhuanti{
display: flex;
flex-wrap: wrap;
align-items: center;
height: 400px;
justify-content: center;
}
.zhuanti li{
overflow:hidden;
display: flex;
flex-direction: column;
text-align: center;
white-space: nowrap; /* 防止文本换行 */
text-overflow: ellipsis; /* 显示省略号 */
position: relative;
width: 320px;
border-radius: 5px;
}.zhuanti li span{
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
display: inline-block;
width: 100%;
position: absolute;
bottom: 20px;
height: 25px;
line-height: 25px;
background-color: rgb(0 0 0 / 0.5);
color: white;
border-radius: 5px;
}
.zhuanti li img{
transition: all 0.3s;
width: 100%;
border-radius: 5px;
}
.zhuanti li:hover img{
transform:scale(1.1)
}
.zhuanti li span{
transition: all 0.3s;
}
.zhuanti li:hover span{
color: #ffbb3f;
transform:scale(1.1) translateY(7px);
}
.more a {
display: inline-block;
width: 58px;
height: 24px;
border-radius: 5px;
line-height: 24px;
color: #0b61d3;
font-size: 14px;
text-align: center;
position: absolute;
right: 6px;
top: 10px;
}
.zhuantidept{
display: flex;
flex-wrap: wrap;
height: 400px;
overflow: auto;
box-sizing:border-box;
padding-left:30px;
padding-top:20px;
}
.zhuantidept li{
transition: all 0.3s;
max-width: 189px;
max-height: 85px;
background-image: url(../home/base/bumen1.jpg);
background-size: 100% 100%;
box-shadow: 5px 5px 5px 0 rgba(0,0,0,0.5);
margin: 0 10px 10px 10px;
position: relative;
}
.zhuantidept li:hover{
transform: translateY(-5%);
}
.zhuantidept li a{
width: 169px;
height: 84px;
display: inline-block;
box-sizing: border-box;
padding-left: 10px;
font-size: 17px;
filter: brightness(1.1);
line-height: 85px;
text-align: center;
letter-spacing: 2px;
}
a {
text-decoration: none;
color: #000;
}
a:hover{
color: #006fc4;
}
.customNavigation .prev, .customNavigation .next {
position: absolute;
width: 16px;
height: 25px;
top: 41%;
z-index: 22;
background-image: url(../home/base/i122.png);
cursor: pointer;
}
.customNavigation .prev{
left: 0;
}
.customNavigation .next {
right: 0;
background-position: right;
}
.item{
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.ztgg {
height: 60px;
margin: 25px auto 0px auto;
display: flex;
justify-content: space-between;
align-item:center;
flex-wrap: nowrap;
position: relative;
padding: 0 8px 0 8px;
}
.ztgg .ztgg_box{
width: 100%;
height: 100%;
display: flex;
justify-content: space-between;
align-items: center;
padding-left: 6px;
overflow:hidden;
}
.ztgg .ztgg_box .images{
transition: transform 0.5s ease-in-out;
}
.ztgg .arrow-left{
left: -20px;
}
.ztgg .arrow-left, .ztgg .arrow-right {
position: absolute;
width: 16px;
height: 25px;
top: 50%;
z-index: 22;
background-image: url(../home/base/i122.png);
cursor: pointer;
transform: translateY(-50%);
}
.ztgg .arrow-right {
right: -20px;
background-position: right top;
}
.ariaskiptheme{
margin:0;
margin-right:30px;
}
.ariaskiptheme img{
width: 300px;
height: 70px;
box-shadow: 0 0 10px 4px #ddd;
transition: all 0.3s;
}
#back-to-top {
display: none;
position: fixed;
bottom: 12%;
right: 2%;
cursor: pointer;
transition: opacity 0.3s;
width: 50px;
height: 50px;
z-index: 100;
}
#back-to-top img {
width: 100%;
height: 100%
}
#back-to-top:hover {
opacity: 0.7;
}
.lantieContent{
width:100%;
display:flex;
justify-content: space-between;
}
.lantieContent .right{
width:100%;
display:flex;
flex-wrap:wrap;
justify-content: space-around;
overflow:auto;
}
.lantieContent .right li{
position: relative;
}
.lantieContent .right li span{
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
width: 100%;
display: inline-block;
height: 25px;
line-height: 25px;
margin-top: -8px;
background-color: rgb(0 0 0 / 0.7);
color: white;
}
.lantieContent .right li:hover span{
color: #ffbb3f;
}
.lianjieBox{
width:100%;
display:flex;
justify-content: space-between;
height: 340px;
}
.lianjieList li span {
position: absolute;
right: 0;
top: 0;
width: 40px;
height: 39px;
color: #454545;
}
.lianjieList li {
position: relative;
float: left;
width: 315px;
height: 39px;
line-height: 39px;
margin-bottom: 17px;
margin-right: 13px;
font-size: 16px;
text-align: center;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
background-color: #e9f4ff;
}
.lianjieList li a{
width: 100%;
height: 100%;
display: inline-block;
}
.lianjieList li:hover{
background-color: #c2dffd
}
.lianjieList{
width:30%;
height:100%;
}
.map{
width:59%;
max-height: 340px;
overflow: hidden;
}
.map li{
width:100%;
height:100%;
position: relative;
}
.map li a{
width: 33px;
height: 28px;
position: absolute; /* 设置定位元素为绝对定位 */
top: 50%; /* 垂直居中 */
left: 50%; /* 水平居中 */
transform: translate(-50%, -50%); /* 移动元素到中心点 */
font-size: 16px; /* 设置文本大小 */
color: #593f2f; /* 设置文本颜色 */
font-weight: bold;
}
.map li a img{
transition: all 0.3s;
}
.map li a img:hover{
transform: translateY(-5%);
}
.map .font1{
top: 58%;
left: 52%;
}
.map .font2{
top: 37%;
left: 49%;
}
.map .font3{
top: 53%;
left: 44%;
}
.map .font4{
top: 36%;
left: 61%;
}
.map .lantie{
width:30px;
height:28px;
}
.map .wutie{
width:30px;
height:28px;
}
.map .xitie{
width:30px;
height:28px;
}
.map .yintie{
width:30px;
height:28px;
}
.sliderA{
position: absolute;
bottom: 0;
left: 0;
padding: 10px;
width: 100%;
height: 42px;
box-sizing: border-box;
background-color: rgba(0, 61, 131,0.9);
line-height: 25px;
font-size: 18px;
color: white;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.sliderA:hover{
color: #ffbb3f;
}
.notice{
width: 100%;
height: 40px;
margin: 54px auto 22px;
overflow: hidden;
font-weight: bold;
text-align: center;
}
.notice a{
width: 100%;
display: inline-block;
}
.notice__inner{
animation: roll 36s linear infinite;
margin-top: 0
}
.notice__item{
font-size: 38px;
height: 40px;
line-height: 40px;
padding: 0 12px;
margin-bottom: 15px;
}
.xuanchuanImage {
position: relative;
width: 100%;
height: 100px;
overflow: hidden;
}
.xuanchuanImage .slide {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
transition: opacity 2s ease-in-out;
opacity: 0;
pointer-events: none;
}
.xuanchuanImage .active {
opacity: 1;
pointer-events: auto;
}
.xuanchuanImage img {
width: 100%;
height: 100%;
object-fit: cover;
}
.first {
/* 第一个元素的样式 */
background-color: #0558b0 !important;
height: 48px !important;
line-height: 48px !important;
}
.second {
/* 第二个元素的样式 */
background-color: #0558b0 !important;
}
.third {
/* 第三个元素的样式 */
background-color: #0558b0 !important;
}
.firstLi a{
font-size: 24px !important;
height: 30px !important;
vertical-align: -7px !important;
font-weight: 700;
}
.secondLi a{
font-size: 21px !important;
height: 30px !important;
vertical-align: -7px !important;
font-weight: 400;
}
.thirdLi a{
font-size: 16px !important;
height: 30px !important;
vertical-align: -7px !important;
}
#ad {
font-weight: bold;
position: fixed;
display: flex;
width: 250px;
justify-content: center;
align-items: center;
z-index: 9999;
}
#ad span{
position: absolute;
bottom: 0;
right: 0;
width: 32px;
color: white;
cursor:pointer;
}
#ad {
-webkit-animation: rotate 5s linear infinite;
-moz-animation: rotate 5s linear infinite;
-o-animation: rotate 5s linear infinite;
animation: rotate 5s linear infinite;
}
.systemBg{
background: url(/home/base/down.png) no-repeat;
display: inline-block;
width: 100%;
background-position-y: bottom;
background-position-x: center;
text-align: center;
font-size: 21px;
font-weight: bold;
color: #0b61d3;
font-family: layui-icon!important;
}
.layui-carousel-ind {
/* 轮播的样式 */
top: -31px;
text-align: right;
}
.layui-carousel-ind ul {
background-color: rgba(0, 0, 0, 0);
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 473 KiB

After

Width:  |  Height:  |  Size: 320 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 474 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 438 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

@ -10,7 +10,7 @@
<style type="text/css"> <style type="text/css">
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{border:0;font-size:100%;font:inherit;vertical-align:baseline;margin:0;padding:0}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:none}table{border-collapse:collapse;border-spacing:0} html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{border:0;font-size:100%;font:inherit;vertical-align:baseline;margin:0;padding:0}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:none}table{border-collapse:collapse;border-spacing:0}
a{text-decoration:none;color:#0072c6;}a:hover{text-decoration:none;color:#004d8c;} a{text-decoration:none;color:#0072c6;}a:hover{text-decoration:none;color:#004d8c;}
body{width:960px;margin:0 auto;padding:10px;font-size:14px;line-height:24px;color:#454545;font-family:'Microsoft YaHei UI','Microsoft YaHei',DengXian,SimSun,'Segoe UI',Tahoma,Helvetica,sans-serif;overflow-y:scroll} body{width:960px;margin:0 auto;padding:10px;font-size:15px;line-height:24px;color:#454545;font-family:'Microsoft YaHei UI','Microsoft YaHei',DengXian,SimSun,'Segoe UI',Tahoma,Helvetica,sans-serif;overflow-y:scroll}
h1{font-size:40px;line-height:80px;font-weight:100;margin-bottom:10px;} h1{font-size:40px;line-height:80px;font-weight:100;margin-bottom:10px;}
h2{font-size:20px;line-height:25px;font-weight:100;margin:10px 0;} h2{font-size:20px;line-height:25px;font-weight:100;margin:10px 0;}
em{color:red} em{color:red}
@ -43,4 +43,4 @@
</ul> </ul>
<hr> <hr>
</body> </body>
</html> </html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

File diff suppressed because it is too large Load Diff

@ -0,0 +1,421 @@
/* Owl Carousel Bootstrap Custom CSS */
/* Header Navigation */
#top-nav{
border-bottom: 1px solid #e1e6dd;
background: #FFF;
-webkit-transform: translateZ(0)
}
#top-nav.navbar{
margin-bottom: 0px;
}
#top-nav.navbar .nav{
margin: 8px 0px;
}
#top-nav.navbar .nav > li > a {
padding: 6px 12px;
margin: 0px;
text-transform: uppercase;
font-weight: 400;
-webkit-transition: background-color 200ms ease;
-moz-transition: background-color 200ms ease;
-o-transition: background-color 200ms ease;
transition: background-color 200ms ease;
}
#top-nav.navbar .nav > li > a.download{
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
}
#top-nav.navbar .nav > li > a.download-on{
background-color: #ff8a3c;
color: #ffffff;
}
#top-nav.navbar .nav > li > a.download-on:hover{
color: #ffffff;
background-color: #ff7920;
}
.btn-navbar span.icon-bar{
margin-top: 0px;
}
/* Header */
#header{
background: #f1f1f1;
padding: 100px 0 100px;
}
#header h1{
color: #7fc242;
margin-bottom: 10px;
margin-top: 40px;
}
#header h3{
margin-bottom: 30px;
width: 400px;
}
#header .btn-success {
padding: 15px 30px;
margin-bottom: 5px;
}
#header .logo{
display: block;
margin-top:60px;
float: right
}
img.arrow-down{
margin: 0 auto;
display: block;
}
h1{
margin-top: 80px;
}
pre.pre-show{
margin: 40px 0px;
}
.tab-content pre.pre-show{
margin: 0px 0px 0px 0px;
}
.nav-tabs{
margin-top: 20px;
margin-bottom: 0px;
}
.tab-content{
border-left: 1px solid #ddd;
border-right: 1px solid #ddd;
border-bottom: 1px solid #ddd;
-webkit-border-radius: 0px 0px 4px 4px;
-moz-border-radius: 0px 0px 4px 4px;
border-radius: 0px 0px 4px 4px;
}
/* Content */
.table th, .table td {
padding: 8px 12px;
}
/* Footer */
#footer{
padding: 20px 0px;
background: #f3f3f3;
text-align: center
}
.twitter-share-button{
top: 4px;
position: relative;
}
/* Demo Slides */
#owl-example .item{
padding: 30px 0px;
margin: 10px;
color: #FFF;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
text-align: center;
}
#owl-example .item img{
width: auto;
margin: 0 auto;
display: block;
}
#owl-example .item h3{
font-size: 28px;
font-weight: 300;
margin: 25px 0 0;
}
#owl-example .item h4{
margin: 5px 0 0;
font-size: 18px;
}
.item h1{
margin: inherit;
}
.orange{
background: #ff8a3c;
}
.darkCyan{
background: #42bdc2;
}
.forestGreen{
background: #7fc242;
}
.yellow {
background: #ffd800;
}
.dodgerBlue {
background: #388bd1;
}
.skyBlue {
background: #a1def8;
}
.zombieGreen {
background: #3fbf79;
}
.violet {
background: #db6ac5;
}
.yellowLight {
background: #fee664;
}
.steelGray {
background: #cad3d0;
}
/* More Demo Box */
#example-info h1,
#more h1{
margin-top: 40px;
}
.demos-row{
margin-top: 30px;
margin-bottom: 30px;
}
.demo-page{
margin-top: 0px;
margin-bottom: 100px;
}
.demo-box{
display: block;
background: #f3f3f3;
text-align: center;
font-size: 18px;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
}
.demo-box h3{
padding-bottom:20px;
margin: 0px;
color: #869690;
}
.demo-box:hover{
text-decoration: none;
}
.demo-wrapper{
padding: 30px 0px 20px 0px;
padding-left: 30px;
padding-right: 30px;
}
.demo-slide {
float: left;
}
.demo-slide .bg{
background: #aebab6;
margin-right: 1px;
height: 100%;
}
.demo-box:hover .demo-slide .bg{
background: #7fc242;
}
/* Images */
.demo-images .demo-slide{
height: 40px;
width: 33.3333333%;
}
/* Full */
.demo-full {
padding-left: 0px;
padding-right: 0px;
}
.demo-full .demo-slide{
height: 40px;
width: 25%;
}
/* Custom */
.demo-custom .demo-slide{
height: 40px;
width: 10%;
}
/* One */
.demo-one .demo-slide{
height: 40px;
width: 100%;
}
/* json */
.demo-Json .demo-slide {
height: 40px;
width: 20%;
}
.demo-Json-custom .demo-slide{
height: 40px;
width: 33.3333333%;
}
/* loading icon */
.demo-lazy .demo-slide{
height: 40px;
width: 33.3333333%;
}
.demo-lazy .demo-slide .bg{
background: url('../img/AjaxLoader.gif') no-repeat center center #aebab6;
}
/* Auto Height */
.demo-height .demo-slide{
height: 40px;
width: 100%;
}
/* Changelog */
#changelog{
margin-bottom: 40px;
}
#changelog .label{
margin-bottom:10px;
}
#changelog .log{
margin-bottom: 30px;
padding-bottom: 30px;
border-bottom: 1px solid #e1e6dd;
}
/* Faq */
#faq dt {
line-height: 26px;
}
#faq dd{
line-height: 22px;
margin-bottom: 20px;
}
/* Responsive Stuff */
@media (max-width: 979px) {
.navbar-fixed-top .navbar-inner, .navbar-fixed-bottom .navbar-inner {
padding: 0px;
}
.navbar-fixed-top, .navbar-fixed-bottom {
position: fixed;
}
}
@media (max-width: 768px) {
.navbar.navbar-fixed-top{
position: static;
}
.btn.btn-navbar{
margin: 9px 20px 9px 8px;
padding: 10px 10px;
}
.nav-collapse .nav > li{
border-top: 1px solid #e1e6dd;
text-align: center
}
#header .logo{
margin-top:40px;
margin: 20px auto 0px;
float: none;
height: 150px;
}
#header {
text-align: center;
padding: 60px 0px 30px;
}
#header h1{
margin: 10px 0;
}
#header h3{
margin-bottom: 10px;
width: auto;
padding: 0px 20px;
}
h1 {
font-size: 38px;
margin: 20px 0;
}
h2 {
font-size: 24px;
}
h3 {
font-size: 20px;
}
h4 {
font-size: 16px;
}
h5 {
font-size: 13px;
}
h6 {
font-size: 12px;
}
}
@media (max-width: 480px) {
.navbar-fixed-top, .navbar-fixed-bottom {
position: static;
}
#header {
text-align: center;
padding: 20px 0px 20px;
}
#header .logo{
margin-top:0px;
}
}
/*
NO MORE TABLES!! ;)
*/
@media (max-width: 767px) {
.hp-table table, .hp-table thead, .hp-table .hp-table tbody, .hp-table th, .hp-table td, .hp-table tr {
display: block;
}
.hp-table thead tr {
display: none;
}
.hp-table tr { border: 0px solid #ccc; margin-bottom: 10px; }
.hp-table td:before {
top: 6px;
left: 6px;
width: 45%;
padding-right: 10px;
white-space: nowrap;
}
.hp-table td:nth-of-type(2):before {
content: "Default:";
font-weight: bold;
}
.hp-table td:nth-of-type(3):before {
content: "Type:";
font-weight: bold;
}
.hp-table td:nth-of-type(4):before {
content: "Description:";
font-weight: bold;
}
}

@ -0,0 +1,26 @@
$(function(){
window.prettyPrint && prettyPrint();
}(window.jQuery));
jQuery(document).ready(function($) {
//Download Link Highlight
if($("body").data("page")==="frontpage"){
$(window).scroll(function(){
var scrolled = $(window).scrollTop();
var downloadLink = $("#top-nav").find(".download")
if(scrolled >= 420){
downloadLink.addClass("download-on");
} else if (scrolled < 420){
downloadLink.removeClass("download-on");
}
})
}
$('#myTab a').click(function (e) {
e.preventDefault();
$(this).tab('show');
})
});

@ -0,0 +1,167 @@
/* =============================================================
* bootstrap-collapse.js v2.3.2
* http://twitter.github.com/bootstrap/javascript.html#collapse
* =============================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ============================================================ */
!function ($) {
"use strict"; // jshint ;_;
/* COLLAPSE PUBLIC CLASS DEFINITION
* ================================ */
var Collapse = function (element, options) {
this.$element = $(element)
this.options = $.extend({}, $.fn.collapse.defaults, options)
if (this.options.parent) {
this.$parent = $(this.options.parent)
}
this.options.toggle && this.toggle()
}
Collapse.prototype = {
constructor: Collapse
, dimension: function () {
var hasWidth = this.$element.hasClass('width')
return hasWidth ? 'width' : 'height'
}
, show: function () {
var dimension
, scroll
, actives
, hasData
if (this.transitioning || this.$element.hasClass('in')) return
dimension = this.dimension()
scroll = $.camelCase(['scroll', dimension].join('-'))
actives = this.$parent && this.$parent.find('> .accordion-group > .in')
if (actives && actives.length) {
hasData = actives.data('collapse')
if (hasData && hasData.transitioning) return
actives.collapse('hide')
hasData || actives.data('collapse', null)
}
this.$element[dimension](0)
this.transition('addClass', $.Event('show'), 'shown')
$.support.transition && this.$element[dimension](this.$element[0][scroll])
}
, hide: function () {
var dimension
if (this.transitioning || !this.$element.hasClass('in')) return
dimension = this.dimension()
this.reset(this.$element[dimension]())
this.transition('removeClass', $.Event('hide'), 'hidden')
this.$element[dimension](0)
}
, reset: function (size) {
var dimension = this.dimension()
this.$element
.removeClass('collapse')
[dimension](size || 'auto')
[0].offsetWidth
this.$element[size !== null ? 'addClass' : 'removeClass']('collapse')
return this
}
, transition: function (method, startEvent, completeEvent) {
var that = this
, complete = function () {
if (startEvent.type == 'show') that.reset()
that.transitioning = 0
that.$element.trigger(completeEvent)
}
this.$element.trigger(startEvent)
if (startEvent.isDefaultPrevented()) return
this.transitioning = 1
this.$element[method]('in')
$.support.transition && this.$element.hasClass('collapse') ?
this.$element.one($.support.transition.end, complete) :
complete()
}
, toggle: function () {
this[this.$element.hasClass('in') ? 'hide' : 'show']()
}
}
/* COLLAPSE PLUGIN DEFINITION
* ========================== */
var old = $.fn.collapse
$.fn.collapse = function (option) {
return this.each(function () {
var $this = $(this)
, data = $this.data('collapse')
, options = $.extend({}, $.fn.collapse.defaults, $this.data(), typeof option == 'object' && option)
if (!data) $this.data('collapse', (data = new Collapse(this, options)))
if (typeof option == 'string') data[option]()
})
}
$.fn.collapse.defaults = {
toggle: true
}
$.fn.collapse.Constructor = Collapse
/* COLLAPSE NO CONFLICT
* ==================== */
$.fn.collapse.noConflict = function () {
$.fn.collapse = old
return this
}
/* COLLAPSE DATA-API
* ================= */
$(document).on('click.collapse.data-api', '[data-toggle=collapse]', function (e) {
var $this = $(this), href
, target = $this.attr('data-target')
|| e.preventDefault()
|| (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
, option = $(target).data('collapse') ? 'toggle' : $this.data()
$this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
$(target).collapse(option)
})
}(window.jQuery);

@ -0,0 +1,144 @@
/* ========================================================
* bootstrap-tab.js v2.3.2
* http://twitter.github.com/bootstrap/javascript.html#tabs
* ========================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ======================================================== */
!function ($) {
"use strict"; // jshint ;_;
/* TAB CLASS DEFINITION
* ==================== */
var Tab = function (element) {
this.element = $(element)
}
Tab.prototype = {
constructor: Tab
, show: function () {
var $this = this.element
, $ul = $this.closest('ul:not(.dropdown-menu)')
, selector = $this.attr('data-target')
, previous
, $target
, e
if (!selector) {
selector = $this.attr('href')
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
}
if ( $this.parent('li').hasClass('active') ) return
previous = $ul.find('.active:last a')[0]
e = $.Event('show', {
relatedTarget: previous
})
$this.trigger(e)
if (e.isDefaultPrevented()) return
$target = $(selector)
this.activate($this.parent('li'), $ul)
this.activate($target, $target.parent(), function () {
$this.trigger({
type: 'shown'
, relatedTarget: previous
})
})
}
, activate: function ( element, container, callback) {
var $active = container.find('> .active')
, transition = callback
&& $.support.transition
&& $active.hasClass('fade')
function next() {
$active
.removeClass('active')
.find('> .dropdown-menu > .active')
.removeClass('active')
element.addClass('active')
if (transition) {
element[0].offsetWidth // reflow for transition
element.addClass('in')
} else {
element.removeClass('fade')
}
if ( element.parent('.dropdown-menu') ) {
element.closest('li.dropdown').addClass('active')
}
callback && callback()
}
transition ?
$active.one($.support.transition.end, next) :
next()
$active.removeClass('in')
}
}
/* TAB PLUGIN DEFINITION
* ===================== */
var old = $.fn.tab
$.fn.tab = function ( option ) {
return this.each(function () {
var $this = $(this)
, data = $this.data('tab')
if (!data) $this.data('tab', (data = new Tab(this)))
if (typeof option == 'string') data[option]()
})
}
$.fn.tab.Constructor = Tab
/* TAB NO CONFLICT
* =============== */
$.fn.tab.noConflict = function () {
$.fn.tab = old
return this
}
/* TAB DATA-API
* ============ */
$(document).on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
e.preventDefault()
$(this).tab('show')
})
}(window.jQuery);

@ -0,0 +1,60 @@
/* ===================================================
* bootstrap-transition.js v2.3.2
* http://twitter.github.com/bootstrap/javascript.html#transitions
* ===================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ========================================================== */
!function ($) {
"use strict"; // jshint ;_;
/* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
* ======================================================= */
$(function () {
$.support.transition = (function () {
var transitionEnd = (function () {
var el = document.createElement('bootstrap')
, transEndEventNames = {
'WebkitTransition' : 'webkitTransitionEnd'
, 'MozTransition' : 'transitionend'
, 'OTransition' : 'oTransitionEnd otransitionend'
, 'transition' : 'transitionend'
}
, name
for (name in transEndEventNames){
if (el.style[name] !== undefined) {
return transEndEventNames[name]
}
}
}())
return transitionEnd && {
end: transitionEnd
}
})()
})
}(window.jQuery);

@ -0,0 +1,26 @@
.com { color: #93a1a1; }
.lit { color: #195f91; }
.pun, .opn, .clo { color: #93a1a1; }
.fun { color: #dc322f; }
.str, .atv { color: #ff8a3c; }
.kwd, .prettyprint .tag { color: #195f91; }
.typ, .atn, .dec, .var { color: #3fbf79; }
.pln { color: #48484c; }
.pun{ color:#48484c; }
pre.prettyprint {
padding: 20px;
background-color: #f3f3f3;
border: 0px solid #e1e1e8;
}
/* Specify class=linenums on a pre to get line numbering */
ol.linenums {
margin: 0 0 0 40px; /* IE indents via margin-left */
}
ol.linenums li {
padding-left: 12px;
color: #bebec5;
line-height: 20px;
text-shadow: 0 1px 0 #fff;
}

@ -0,0 +1,28 @@
var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;
(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a=
[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c<i;++c){var j=f[c];if(/\\[bdsw]/i.test(j))a.push(j);else{var j=m(j),d;c+2<i&&"-"===f[c+1]?(d=m(f[c+2]),c+=2):d=j;b.push([j,d]);d<65||j>122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;c<b.length;++c)i=b[c],i[0]<=j[1]+1?j[1]=Math.max(j[1],i[1]):f.push(j=i);b=["["];o&&b.push("^");b.push.apply(b,a);for(c=0;c<
f.length;++c)i=f[c],b.push(e(i[0])),i[1]>i[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c<b;++c){var j=f[c];j==="("?++i:"\\"===j.charAt(0)&&(j=+j.substring(1))&&j<=i&&(d[j]=-1)}for(c=1;c<d.length;++c)-1===d[c]&&(d[c]=++t);for(i=c=0;c<b;++c)j=f[c],j==="("?(++i,d[i]===void 0&&(f[c]="(?:")):"\\"===j.charAt(0)&&
(j=+j.substring(1))&&j<=i&&(f[c]="\\"+d[i]);for(i=c=0;c<b;++c)"^"===f[c]&&"^"!==f[c+1]&&(f[c]="");if(a.ignoreCase&&s)for(c=0;c<b;++c)j=f[c],a=j.charAt(0),j.length>=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p<d;++p){var g=a[p];if(g.ignoreCase)l=!0;else if(/[a-z]/i.test(g.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){s=!0;l=!1;break}}for(var r=
{b:8,t:9,n:10,v:11,f:12,r:13},n=[],p=0,d=a.length;p<d;++p){g=a[p];if(g.global||g.multiline)throw Error(""+g);n.push("(?:"+y(g)+")")}return RegExp(n.join("|"),l?"gi":"g")}function M(a){function m(a){switch(a.nodeType){case 1:if(e.test(a.className))break;for(var g=a.firstChild;g;g=g.nextSibling)m(g);g=a.nodeName;if("BR"===g||"LI"===g)h[s]="\n",t[s<<1]=y++,t[s++<<1|1]=a;break;case 3:case 4:g=a.nodeValue,g.length&&(g=p?g.replace(/\r\n?/g,"\n"):g.replace(/[\t\n\r ]+/g," "),h[s]=g,t[s<<1]=y,y+=g.length,
t[s++<<1|1]=a)}}var e=/(?:^|\s)nocode(?:\s|$)/,h=[],y=0,t=[],s=0,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=document.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);m(a);return{a:h.join("").replace(/\n$/,""),c:t}}function B(a,m,e,h){m&&(a={a:m,d:a},e(a),h.push.apply(h,a.e))}function x(a,m){function e(a){for(var l=a.d,p=[l,"pln"],d=0,g=a.a.match(y)||[],r={},n=0,z=g.length;n<z;++n){var f=g[n],b=r[f],o=void 0,c;if(typeof b===
"string")c=!1;else{var i=h[f.charAt(0)];if(i)o=f.match(i[1]),b=i[0];else{for(c=0;c<t;++c)if(i=m[c],o=f.match(i[1])){b=i[0];break}o||(b="pln")}if((c=b.length>=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m),
l=[],p={},d=0,g=e.length;d<g;++d){var r=e[d],n=r[3];if(n)for(var k=n.length;--k>=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,
q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/,
q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g,
"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a),
a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e}
for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g<d.length;++g)e(d[g]);m===(m|0)&&d[0].setAttribute("value",
m);var r=s.createElement("OL");r.className="linenums";for(var n=Math.max(0,m-1|0)||0,g=0,z=d.length;g<z;++g)l=d[g],l.className="L"+(g+n)%10,l.firstChild||l.appendChild(s.createTextNode("\xa0")),r.appendChild(l);a.appendChild(r)}function k(a,m){for(var e=m.length;--e>=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*</.test(m)?"default-markup":"default-code";return A[a]}function E(a){var m=
a.g;try{var e=M(a.h),h=e.a;a.a=h;a.c=e.c;a.d=0;C(m,h)(a);var k=/\bMSIE\b/.test(navigator.userAgent),m=/\n/g,t=a.a,s=t.length,e=0,l=a.c,p=l.length,h=0,d=a.e,g=d.length,a=0;d[g]=s;var r,n;for(n=r=0;n<g;)d[n]!==d[n+2]?(d[r++]=d[n++],d[r++]=d[n++]):n+=2;g=r;for(n=r=0;n<g;){for(var z=d[n],f=d[n+1],b=n+2;b+2<=g&&d[b+1]===f;)b+=2;d[r++]=z;d[r++]=f;n=b}for(d.length=r;h<p;){var o=l[h+2]||s,c=d[a+2]||s,b=Math.min(o,c),i=l[h+1],j;if(i.nodeType!==1&&(j=t.substring(e,b))){k&&(j=j.replace(m,"\r"));i.nodeValue=
j;var u=i.ownerDocument,v=u.createElement("SPAN");v.className=d[a+1];var x=i.parentNode;x.replaceChild(v,i);v.appendChild(i);e<o&&(l[h+1]=i=u.createTextNode(t.substring(b,o)),x.insertBefore(i,v.nextSibling))}e=b;e>=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],
"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],
H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+
I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),
["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",
/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),
["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes",
hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p<h.length&&l.now()<e;p++){var n=h[p],k=n.className;if(k.indexOf("prettyprint")>=0){var k=k.match(g),f,b;if(b=
!k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p<h.length?setTimeout(m,
250):a&&a()}for(var e=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],h=[],k=0;k<e.length;++k)for(var t=0,s=e[k].length;t<s;++t)h.push(e[k][t]);var e=q,l=Date;l.now||(l={now:function(){return+new Date}});var p=0,d,g=/\blang(?:uage)?-([\w.]+)(?!\S)/;m()};window.PR={createSimpleLexer:x,registerLangHandler:k,sourceDecorator:u,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",
PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ"}})();

@ -0,0 +1,34 @@
!function(){var r=null;
(function(){function X(e){function j(){try{J.doScroll("left")}catch(e){P(j,50);return}w("poll")}function w(j){if(!(j.type=="readystatechange"&&x.readyState!="complete")&&((j.type=="load"?n:x)[z](i+j.type,w,!1),!m&&(m=!0)))e.call(n,j.type||j)}var Y=x.addEventListener,m=!1,C=!0,t=Y?"addEventListener":"attachEvent",z=Y?"removeEventListener":"detachEvent",i=Y?"":"on";if(x.readyState=="complete")e.call(n,"lazy");else{if(x.createEventObject&&J.doScroll){try{C=!n.frameElement}catch(A){}C&&j()}x[t](i+"DOMContentLoaded",
w,!1);x[t](i+"readystatechange",w,!1);n[t](i+"load",w,!1)}}function Q(){S&&X(function(){var e=K.length;$(e?function(){for(var j=0;j<e;++j)(function(e){P(function(){n.exports[K[e]].apply(n,arguments)},0)})(j)}:void 0)})}for(var n=window,P=n.setTimeout,x=document,J=x.documentElement,L=x.head||x.getElementsByTagName("head")[0]||J,z="",A=x.scripts,m=A.length;--m>=0;){var M=A[m],T=M.src.match(/^[^#?]*\/run_prettify\.js(\?[^#]*)?(?:#.*)?$/);if(T){z=T[1]||"";M.parentNode.removeChild(M);break}}var S=!0,D=
[],N=[],K=[];z.replace(/[&?]([^&=]+)=([^&]+)/g,function(e,j,w){w=decodeURIComponent(w);j=decodeURIComponent(j);j=="autorun"?S=!/^[0fn]/i.test(w):j=="lang"?D.push(w):j=="skin"?N.push(w):j=="callback"&&K.push(w)});m=0;for(z=D.length;m<z;++m)(function(){var e=x.createElement("script");e.onload=e.onerror=e.onreadystatechange=function(){if(e&&(!e.readyState||/loaded|complete/.test(e.readyState)))e.onerror=e.onload=e.onreadystatechange=r,--R,R||P(Q,0),e.parentNode&&e.parentNode.removeChild(e),e=r};e.type=
"text/javascript";e.src="https://google-code-prettify.googlecode.com/svn/loader/lang-"+encodeURIComponent(D[m])+".js";L.insertBefore(e,L.firstChild)})(D[m]);for(var R=D.length,A=[],m=0,z=N.length;m<z;++m)A.push("https://google-code-prettify.googlecode.com/svn/loader/skins/"+encodeURIComponent(N[m])+".css");A.push("https://google-code-prettify.googlecode.com/svn/loader/prettify.css");(function(e){function j(m){if(m!==w){var n=x.createElement("link");n.rel="stylesheet";n.type="text/css";if(m+1<w)n.error=
n.onerror=function(){j(m+1)};n.href=e[m];L.appendChild(n)}}var w=e.length;j(0)})(A);var $=function(){window.PR_SHOULD_USE_CONTINUATION=!0;var e;(function(){function j(a){function d(f){var b=f.charCodeAt(0);if(b!==92)return b;var a=f.charAt(1);return(b=i[a])?b:"0"<=a&&a<="7"?parseInt(f.substring(1),8):a==="u"||a==="x"?parseInt(f.substring(2),16):f.charCodeAt(1)}function h(f){if(f<32)return(f<16?"\\x0":"\\x")+f.toString(16);f=String.fromCharCode(f);return f==="\\"||f==="-"||f==="]"||f==="^"?"\\"+f:
f}function b(f){var b=f.substring(1,f.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),f=[],a=b[0]==="^",c=["["];a&&c.push("^");for(var a=a?1:0,g=b.length;a<g;++a){var k=b[a];if(/\\[bdsw]/i.test(k))c.push(k);else{var k=d(k),o;a+2<g&&"-"===b[a+1]?(o=d(b[a+2]),a+=2):o=k;f.push([k,o]);o<65||k>122||(o<65||k>90||f.push([Math.max(65,k)|32,Math.min(o,90)|32]),o<97||k>122||f.push([Math.max(97,k)&-33,Math.min(o,122)&-33]))}}f.sort(function(f,a){return f[0]-
a[0]||a[1]-f[1]});b=[];g=[];for(a=0;a<f.length;++a)k=f[a],k[0]<=g[1]+1?g[1]=Math.max(g[1],k[1]):b.push(g=k);for(a=0;a<b.length;++a)k=b[a],c.push(h(k[0])),k[1]>k[0]&&(k[1]+1>k[0]&&c.push("-"),c.push(h(k[1])));c.push("]");return c.join("")}function e(f){for(var a=f.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),c=a.length,d=[],g=0,k=0;g<c;++g){var o=a[g];o==="("?++k:"\\"===o.charAt(0)&&(o=+o.substring(1))&&(o<=k?d[o]=-1:a[g]=h(o))}for(g=
1;g<d.length;++g)-1===d[g]&&(d[g]=++j);for(k=g=0;g<c;++g)o=a[g],o==="("?(++k,d[k]||(a[g]="(?:")):"\\"===o.charAt(0)&&(o=+o.substring(1))&&o<=k&&(a[g]="\\"+d[o]);for(g=0;g<c;++g)"^"===a[g]&&"^"!==a[g+1]&&(a[g]="");if(f.ignoreCase&&F)for(g=0;g<c;++g)o=a[g],f=o.charAt(0),o.length>=2&&f==="["?a[g]=b(o):f!=="\\"&&(a[g]=o.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return a.join("")}for(var j=0,F=!1,l=!1,I=0,c=a.length;I<c;++I){var p=a[I];if(p.ignoreCase)l=
!0;else if(/[a-z]/i.test(p.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){F=!0;l=!1;break}}for(var i={b:8,t:9,n:10,v:11,f:12,r:13},q=[],I=0,c=a.length;I<c;++I){p=a[I];if(p.global||p.multiline)throw Error(""+p);q.push("(?:"+e(p)+")")}return RegExp(q.join("|"),l?"gi":"g")}function m(a,d){function h(a){var c=a.nodeType;if(c==1){if(!b.test(a.className)){for(c=a.firstChild;c;c=c.nextSibling)h(c);c=a.nodeName.toLowerCase();if("br"===c||"li"===c)e[l]="\n",F[l<<1]=j++,F[l++<<1|1]=a}}else if(c==
3||c==4)c=a.nodeValue,c.length&&(c=d?c.replace(/\r\n?/g,"\n"):c.replace(/[\t\n\r ]+/g," "),e[l]=c,F[l<<1]=j,j+=c.length,F[l++<<1|1]=a)}var b=/(?:^|\s)nocode(?:\s|$)/,e=[],j=0,F=[],l=0;h(a);return{a:e.join("").replace(/\n$/,""),d:F}}function n(a,d,h,b){d&&(a={a:d,e:a},h(a),b.push.apply(b,a.g))}function x(a){for(var d=void 0,h=a.firstChild;h;h=h.nextSibling)var b=h.nodeType,d=b===1?d?a:h:b===3?S.test(h.nodeValue)?a:d:d;return d===a?void 0:d}function C(a,d){function h(a){for(var l=a.e,j=[l,"pln"],c=
0,p=a.a.match(e)||[],m={},q=0,f=p.length;q<f;++q){var B=p[q],y=m[B],u=void 0,g;if(typeof y==="string")g=!1;else{var k=b[B.charAt(0)];if(k)u=B.match(k[1]),y=k[0];else{for(g=0;g<i;++g)if(k=d[g],u=B.match(k[1])){y=k[0];break}u||(y="pln")}if((g=y.length>=5&&"lang-"===y.substring(0,5))&&!(u&&typeof u[1]==="string"))g=!1,y="src";g||(m[B]=y)}k=c;c+=B.length;if(g){g=u[1];var o=B.indexOf(g),H=o+g.length;u[2]&&(H=B.length-u[2].length,o=H-g.length);y=y.substring(5);n(l+k,B.substring(0,o),h,j);n(l+k+o,g,A(y,
g),j);n(l+k+H,B.substring(H),h,j)}else j.push(l+k,y)}a.g=j}var b={},e;(function(){for(var h=a.concat(d),l=[],i={},c=0,p=h.length;c<p;++c){var m=h[c],q=m[3];if(q)for(var f=q.length;--f>=0;)b[q.charAt(f)]=m;m=m[1];q=""+m;i.hasOwnProperty(q)||(l.push(m),i[q]=r)}l.push(/[\S\s]/);e=j(l)})();var i=d.length;return h}function t(a){var d=[],h=[];a.tripleQuotedStrings?d.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,
r,"'\""]):a.multiLineStrings?d.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,r,"'\"`"]):d.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,r,"\"'"]);a.verbatimStrings&&h.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,r]);var b=a.hashComments;b&&(a.cStyleComments?(b>1?d.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,r,"#"]):d.push(["com",/^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\n\r]*)/,
r,"#"]),h.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,r])):d.push(["com",/^#[^\n\r]*/,r,"#"]));a.cStyleComments&&(h.push(["com",/^\/\/[^\n\r]*/,r]),h.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,r]));if(b=a.regexLiterals){var e=(b=b>1?"":"\n\r")?".":"[\\S\\s]";h.push(["lang-regex",RegExp("^(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<<?=?|>>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*("+
("/(?=[^/*"+b+"])(?:[^/\\x5B\\x5C"+b+"]|\\x5C"+e+"|\\x5B(?:[^\\x5C\\x5D"+b+"]|\\x5C"+e+")*(?:\\x5D|$))+/")+")")])}(b=a.types)&&h.push(["typ",b]);b=(""+a.keywords).replace(/^ | $/g,"");b.length&&h.push(["kwd",RegExp("^(?:"+b.replace(/[\s,]+/g,"|")+")\\b"),r]);d.push(["pln",/^\s+/,r," \r\n\t\u00a0"]);b="^.[^\\s\\w.$@'\"`/\\\\]*";a.regexLiterals&&(b+="(?!s*/)");h.push(["lit",/^@[$_a-z][\w$@]*/i,r],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,r],["pln",/^[$_a-z][\w$@]*/i,r],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,
r,"0123456789"],["pln",/^\\[\S\s]?/,r],["pun",RegExp(b),r]);return C(d,h)}function z(a,d,h){function b(a){var c=a.nodeType;if(c==1&&!j.test(a.className))if("br"===a.nodeName)e(a),a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)b(a);else if((c==3||c==4)&&h){var d=a.nodeValue,i=d.match(m);if(i)c=d.substring(0,i.index),a.nodeValue=c,(d=d.substring(i.index+i[0].length))&&a.parentNode.insertBefore(l.createTextNode(d),a.nextSibling),e(a),c||a.parentNode.removeChild(a)}}
function e(a){function b(a,c){var d=c?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),h=a.nextSibling;f.appendChild(d);for(var e=h;e;e=h)h=e.nextSibling,f.appendChild(e)}return d}for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),d;(d=a.parentNode)&&d.nodeType===1;)a=d;c.push(a)}for(var j=/(?:^|\s)nocode(?:\s|$)/,m=/\r\n?|\n/,l=a.ownerDocument,i=l.createElement("li");a.firstChild;)i.appendChild(a.firstChild);for(var c=[i],p=0;p<c.length;++p)b(c[p]);d===(d|0)&&c[0].setAttribute("value",
d);var n=l.createElement("ol");n.className="linenums";for(var d=Math.max(0,d-1|0)||0,p=0,q=c.length;p<q;++p)i=c[p],i.className="L"+(p+d)%10,i.firstChild||i.appendChild(l.createTextNode("\u00a0")),n.appendChild(i);a.appendChild(n)}function i(a,d){for(var h=d.length;--h>=0;){var b=d[h];U.hasOwnProperty(b)?V.console&&console.warn("cannot override language handler %s",b):U[b]=a}}function A(a,d){if(!a||!U.hasOwnProperty(a))a=/^\s*</.test(d)?"default-markup":"default-code";return U[a]}function D(a){var d=
a.h;try{var h=m(a.c,a.i),b=h.a;a.a=b;a.d=h.d;a.e=0;A(d,b)(a);var e=/\bMSIE\s(\d+)/.exec(navigator.userAgent),e=e&&+e[1]<=8,d=/\n/g,i=a.a,j=i.length,h=0,l=a.d,n=l.length,b=0,c=a.g,p=c.length,t=0;c[p]=j;var q,f;for(f=q=0;f<p;)c[f]!==c[f+2]?(c[q++]=c[f++],c[q++]=c[f++]):f+=2;p=q;for(f=q=0;f<p;){for(var x=c[f],y=c[f+1],u=f+2;u+2<=p&&c[u+1]===y;)u+=2;c[q++]=x;c[q++]=y;f=u}c.length=q;var g=a.c,k;if(g)k=g.style.display,g.style.display="none";try{for(;b<n;){var o=l[b+2]||j,H=c[t+2]||j,u=Math.min(o,H),E=l[b+
1],W;if(E.nodeType!==1&&(W=i.substring(h,u))){e&&(W=W.replace(d,"\r"));E.nodeValue=W;var Z=E.ownerDocument,s=Z.createElement("span");s.className=c[t+1];var z=E.parentNode;z.replaceChild(s,E);s.appendChild(E);h<o&&(l[b+1]=E=Z.createTextNode(i.substring(u,o)),z.insertBefore(E,s.nextSibling))}h=u;h>=o&&(b+=2);h>=H&&(t+=2)}}finally{if(g)g.style.display=k}}catch(v){V.console&&console.log(v&&v.stack||v)}}var V=window,G=["break,continue,do,else,for,if,return,while"],O=[[G,"auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],
"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],J=[O,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],K=[O,"abstract,assert,boolean,byte,extends,final,finally,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient"],
L=[K,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"],O=[O,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],M=[G,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
N=[G,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],R=[G,"as,assert,const,copy,drop,enum,extern,fail,false,fn,impl,let,log,loop,match,mod,move,mut,priv,pub,pure,ref,self,static,struct,true,trait,type,unsafe,use"],G=[G,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],Q=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/,
S=/\S/,T=t({keywords:[J,L,O,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",M,N,G],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),U={};i(T,["default-code"]);i(C([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",
/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);i(C([["pln",/^\s+/,r," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,r,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],
["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);i(C([],[["atv",/^[\S\s]+/]]),["uq.val"]);i(t({keywords:J,hashComments:!0,cStyleComments:!0,types:Q}),["c","cc","cpp","cxx","cyc","m"]);i(t({keywords:"null,true,false"}),["json"]);i(t({keywords:L,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:Q}),
["cs"]);i(t({keywords:K,cStyleComments:!0}),["java"]);i(t({keywords:G,hashComments:!0,multiLineStrings:!0}),["bash","bsh","csh","sh"]);i(t({keywords:M,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py","python"]);i(t({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:2}),["perl","pl","pm"]);i(t({keywords:N,
hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb","ruby"]);i(t({keywords:O,cStyleComments:!0,regexLiterals:!0}),["javascript","js"]);i(t({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes",hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);i(t({keywords:R,cStyleComments:!0,multilineStrings:!0}),["rc","rs","rust"]);
i(C([],[["str",/^[\S\s]+/]]),["regex"]);var X=V.PR={createSimpleLexer:C,registerLangHandler:i,sourceDecorator:t,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ",prettyPrintOne:function(a,d,e){var b=document.createElement("div");b.innerHTML="<pre>"+a+"</pre>";b=b.firstChild;e&&z(b,e,!0);D({h:d,j:e,c:b,i:1});return b.innerHTML},
prettyPrint:e=e=function(a,d){function e(){for(var b=V.PR_SHOULD_USE_CONTINUATION?c.now()+250:Infinity;p<j.length&&c.now()<b;p++){for(var d=j[p],m=k,l=d;l=l.previousSibling;){var n=l.nodeType,s=(n===7||n===8)&&l.nodeValue;if(s?!/^\??prettify\b/.test(s):n!==3||/\S/.test(l.nodeValue))break;if(s){m={};s.replace(/\b(\w+)=([\w%+\-.:]+)/g,function(a,b,c){m[b]=c});break}}l=d.className;if((m!==k||f.test(l))&&!w.test(l)){n=!1;for(s=d.parentNode;s;s=s.parentNode)if(g.test(s.tagName)&&s.className&&f.test(s.className)){n=
!0;break}if(!n){d.className+=" prettyprinted";n=m.lang;if(!n){var n=l.match(q),A;if(!n&&(A=x(d))&&u.test(A.tagName))n=A.className.match(q);n&&(n=n[1])}if(y.test(d.tagName))s=1;else var s=d.currentStyle,v=i.defaultView,s=(s=s?s.whiteSpace:v&&v.getComputedStyle?v.getComputedStyle(d,r).getPropertyValue("white-space"):0)&&"pre"===s.substring(0,3);v=m.linenums;if(!(v=v==="true"||+v))v=(v=l.match(/\blinenums\b(?::(\d+))?/))?v[1]&&v[1].length?+v[1]:!0:!1;v&&z(d,v,s);t={h:n,c:d,j:v,i:s};D(t)}}}p<j.length?
P(e,250):"function"===typeof a&&a()}for(var b=d||document.body,i=b.ownerDocument||document,b=[b.getElementsByTagName("pre"),b.getElementsByTagName("code"),b.getElementsByTagName("xmp")],j=[],m=0;m<b.length;++m)for(var l=0,n=b[m].length;l<n;++l)j.push(b[m][l]);var b=r,c=Date;c.now||(c={now:function(){return+new Date}});var p=0,t,q=/\blang(?:uage)?-([\w.]+)(?!\S)/,f=/\bprettyprint\b/,w=/\bprettyprinted\b/,y=/pre|xmp/i,u=/^code$/i,g=/^(?:pre|code|xmp)$/i,k={};e()}};typeof define==="function"&&define.amd&&
define("google-code-prettify",[],function(){return X})})();return e}();R||P(Q,0)})();}()

File diff suppressed because one or more lines are too long

@ -0,0 +1,231 @@
/*
* Core Owl Carousel CSS File
* v1.24
*/
/* clearfix */
.owl-carousel .owl-wrapper:after {
content: ".";
display: block;
clear: both;
visibility: hidden;
line-height: 0;
height: 0;
}
/* display none until init */
.owl-carousel{
display: none;
position: relative;
width: 100%;
-ms-touch-action: pan-y;
}
.owl-carousel .owl-wrapper{
display: none;
position: relative;
-webkit-transform: translate3d(0px, 0px, 0px);
}
.owl-carousel .owl-wrapper-outer{
overflow: hidden;
position: relative;
width: 100%;
}
.owl-carousel .owl-wrapper-outer.autoHeight{
-webkit-transition: height 500ms ease-in-out;
-moz-transition: height 500ms ease-in-out;
-ms-transition: height 500ms ease-in-out;
-o-transition: height 500ms ease-in-out;
transition: height 500ms ease-in-out;
}
.owl-carousel .owl-item{
float: left;
}
.owl-controls .owl-page,
.owl-controls .owl-buttons div{
cursor: pointer;
}
.owl-controls {
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
/* mouse grab icon */
.grabbing {
cursor:url(grabbing.png) 8 8, move;
}
/* fix */
.owl-carousel .owl-wrapper,
.owl-carousel .owl-item{
-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
-ms-backface-visibility: hidden;
-webkit-transform: translate3d(0,0,0);
-moz-transform: translate3d(0,0,0);
-ms-transform: translate3d(0,0,0);
}
/* CSS3 Transitions */
.owl-origin {
-webkit-perspective: 1200px;
-webkit-perspective-origin-x : 50%;
-webkit-perspective-origin-y : 50%;
-moz-perspective : 1200px;
-moz-perspective-origin-x : 50%;
-moz-perspective-origin-y : 50%;
perspective : 1200px;
}
/* fade */
.owl-fade-out {
z-index: 10;
-webkit-animation: fadeOut .7s both ease;
-moz-animation: fadeOut .7s both ease;
animation: fadeOut .7s both ease;
}
.owl-fade-in {
-webkit-animation: fadeIn .7s both ease;
-moz-animation: fadeIn .7s both ease;
animation: fadeIn .7s both ease;
}
/* backSlide */
.owl-backSlide-out {
-webkit-animation: backSlideOut 1s both ease;
-moz-animation: backSlideOut 1s both ease;
animation: backSlideOut 1s both ease;
}
.owl-backSlide-in {
-webkit-animation: backSlideIn 1s both ease;
-moz-animation: backSlideIn 1s both ease;
animation: backSlideIn 1s both ease;
}
/* goDown */
.owl-goDown-out {
-webkit-animation: scaleToFade .7s ease both;
-moz-animation: scaleToFade .7s ease both;
animation: scaleToFade .7s ease both;
}
.owl-goDown-in {
-webkit-animation: goDown .6s ease both;
-moz-animation: goDown .6s ease both;
animation: goDown .6s ease both;
}
/* scaleUp */
.owl-fadeUp-in {
-webkit-animation: scaleUpFrom .5s ease both;
-moz-animation: scaleUpFrom .5s ease both;
animation: scaleUpFrom .5s ease both;
}
.owl-fadeUp-out {
-webkit-animation: scaleUpTo .5s ease both;
-moz-animation: scaleUpTo .5s ease both;
animation: scaleUpTo .5s ease both;
}
/* Keyframes */
/*empty*/
@-webkit-keyframes empty {
0% {opacity: 1}
}
@-moz-keyframes empty {
0% {opacity: 1}
}
@keyframes empty {
0% {opacity: 1}
}
@-webkit-keyframes fadeIn {
0% { opacity:0; }
100% { opacity:1; }
}
@-moz-keyframes fadeIn {
0% { opacity:0; }
100% { opacity:1; }
}
@keyframes fadeIn {
0% { opacity:0; }
100% { opacity:1; }
}
@-webkit-keyframes fadeOut {
0% { opacity:1; }
100% { opacity:0; }
}
@-moz-keyframes fadeOut {
0% { opacity:1; }
100% { opacity:0; }
}
@keyframes fadeOut {
0% { opacity:1; }
100% { opacity:0; }
}
@-webkit-keyframes backSlideOut {
25% { opacity: .5; -webkit-transform: translateZ(-500px); }
75% { opacity: .5; -webkit-transform: translateZ(-500px) translateX(-200%); }
100% { opacity: .5; -webkit-transform: translateZ(-500px) translateX(-200%); }
}
@-moz-keyframes backSlideOut {
25% { opacity: .5; -moz-transform: translateZ(-500px); }
75% { opacity: .5; -moz-transform: translateZ(-500px) translateX(-200%); }
100% { opacity: .5; -moz-transform: translateZ(-500px) translateX(-200%); }
}
@keyframes backSlideOut {
25% { opacity: .5; transform: translateZ(-500px); }
75% { opacity: .5; transform: translateZ(-500px) translateX(-200%); }
100% { opacity: .5; transform: translateZ(-500px) translateX(-200%); }
}
@-webkit-keyframes backSlideIn {
0%, 25% { opacity: .5; -webkit-transform: translateZ(-500px) translateX(200%); }
75% { opacity: .5; -webkit-transform: translateZ(-500px); }
100% { opacity: 1; -webkit-transform: translateZ(0) translateX(0); }
}
@-moz-keyframes backSlideIn {
0%, 25% { opacity: .5; -moz-transform: translateZ(-500px) translateX(200%); }
75% { opacity: .5; -moz-transform: translateZ(-500px); }
100% { opacity: 1; -moz-transform: translateZ(0) translateX(0); }
}
@keyframes backSlideIn {
0%, 25% { opacity: .5; transform: translateZ(-500px) translateX(200%); }
75% { opacity: .5; transform: translateZ(-500px); }
100% { opacity: 1; transform: translateZ(0) translateX(0); }
}
@-webkit-keyframes scaleToFade {
to { opacity: 0; -webkit-transform: scale(.8); }
}
@-moz-keyframes scaleToFade {
to { opacity: 0; -moz-transform: scale(.8); }
}
@keyframes scaleToFade {
to { opacity: 0; transform: scale(.8); }
}
@-webkit-keyframes goDown {
from { -webkit-transform: translateY(-100%); }
}
@-moz-keyframes goDown {
from { -moz-transform: translateY(-100%); }
}
@keyframes goDown {
from { transform: translateY(-100%); }
}
@-webkit-keyframes scaleUpFrom {
from { opacity: 0; -webkit-transform: scale(1.5); }
}
@-moz-keyframes scaleUpFrom {
from { opacity: 0; -moz-transform: scale(1.5); }
}
@keyframes scaleUpFrom {
from { opacity: 0; transform: scale(1.5); }
}
@-webkit-keyframes scaleUpTo {
to { opacity: 0; -webkit-transform: scale(1.5); }
}
@-moz-keyframes scaleUpTo {
to { opacity: 0; -moz-transform: scale(1.5); }
}
@keyframes scaleUpTo {
to { opacity: 0; transform: scale(1.5); }
}

File diff suppressed because one or more lines are too long

@ -0,0 +1,79 @@
/*
* Owl Carousel Owl Demo Theme
* v1.24
*/
/*.owl-theme .owl-controls{*/
/* margin-top: 10px;*/
/* text-align: center;*/
/*}*/
/* Styling Next and Prev buttons */
/*.owl-theme .owl-controls .owl-buttons div{*/
/* color: #FFF;*/
/* display: inline-block;*/
/* zoom: 1;*/
/* *display: inline;!*IE7 life-saver *!*/
/* margin: 5px;*/
/* padding: 3px 10px;*/
/* font-size: 12px;*/
/* -webkit-border-radius: 30px;*/
/* -moz-border-radius: 30px;*/
/* border-radius: 30px;*/
/* background: #869791;*/
/* filter: Alpha(Opacity=50);!*IE7 fix*!*/
/* opacity: 0.5;*/
/*}*/
/* Clickable class fix problem with hover on touch devices */
/* Use it for non-touch hover action */
/*.owl-theme .owl-controls.clickable .owl-buttons div:hover{*/
/* filter: Alpha(Opacity=100);!*IE7 fix*!*/
/* opacity: 1;*/
/* text-decoration: none;*/
/*}*/
/* Styling Pagination*/
/*.owl-theme .owl-controls .owl-page{*/
/* display: inline-block;*/
/* zoom: 1;*/
/* *display: inline;!*IE7 life-saver *!*/
/*}*/
/*.owl-theme .owl-controls .owl-page span{*/
/* display: block;*/
/* width: 12px;*/
/* height: 12px;*/
/* margin: 5px 7px;*/
/* filter: Alpha(Opacity=50);!*IE7 fix*!*/
/* opacity: 0.5;*/
/* -webkit-border-radius: 20px;*/
/* -moz-border-radius: 20px;*/
/* border-radius: 20px;*/
/* background: #869791;*/
/*}*/
/*.owl-theme .owl-controls .owl-page.active span,*/
/*.owl-theme .owl-controls.clickable .owl-page:hover span{*/
/* filter: Alpha(Opacity=100);!*IE7 fix*!*/
/* opacity: 1;*/
/*}*/
/* If PaginationNumbers is true */
/*.owl-theme .owl-controls .owl-page span.owl-numbers{*/
/* height: auto;*/
/* width: auto;*/
/* color: #FFF;*/
/* padding: 2px 10px;*/
/* font-size: 12px;*/
/* -webkit-border-radius: 30px;*/
/* -moz-border-radius: 30px;*/
/* border-radius: 30px;*/
/*}*/
/* preloading images */
.owl-item.loading{
min-height: 150px;
background: url(AjaxLoader.gif) no-repeat center center
}

File diff suppressed because one or more lines are too long

@ -1,40 +1,40 @@
const publicKey = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdH\n' +
'nzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ=='
// 加密
function encrypt(txt) {
const encryptor = new JSEncrypt()
encryptor.setPublicKey(publicKey) // 设置公钥
return encryptor.encrypt(txt) // 对数据进行加密
}
$(function() { $(function() {
validateKickout(); validateKickout();
validateRule(); validateRule();
$('.imgcode').click(function() { refreshCode();
var url = ctx + "captcha/captchaImage?type=" + captchaType + "&s=" + Math.random();
$(".imgcode").attr("src", url);
});
}); });
$.validator.setDefaults({ $.validator.setDefaults({
submitHandler: function() { submitHandler: function() {
login(); showVerfyImage();
} }
}); });
function login() { function showVerfyImage() {
$("#verfyImg").find(".mask").css("display", "block");
}
function postLogin(data){
$.modal.loading($("#btnSubmit").data("loading")); $.modal.loading($("#btnSubmit").data("loading"));
var username = $.common.trim($("input[name='username']").val());
var password = $.common.trim($("input[name='password']").val());
var validateCode = $("input[name='validateCode']").val();
var rememberMe = $("input[name='rememberme']").is(':checked');
$.ajax({ $.ajax({
type: "post", type: "post",
url: ctx + "login", url: ctx + "login",
data: { data: data,
"username": username,
"password": password,
"validateCode": validateCode,
"rememberMe": rememberMe
},
success: function(r) { success: function(r) {
if (r.code == web_status.SUCCESS) { if (r.code == web_status.SUCCESS) {
location.href = ctx + 'index'; location.href = ctx + 'index';
} else { } else {
$('.imgcode').click();
$(".code").val("");
$.modal.msg(r.msg); $.modal.msg(r.msg);
} }
$.modal.closeLoading(); $.modal.closeLoading();
@ -42,6 +42,28 @@ function login() {
}); });
} }
/* 刷新验证码 */
function refreshCode() {
/** 初始化验证码 弹出式 */
$('#verfyImg').slideVerify({
baseUrl: ctx,
mode: 'pop',
success : function(params) {
var username = $.common.trim($("input[name='username']").val());
var password = $.common.trim($("input[name='password']").val());
var rememberMe = $("input[name='rememberme']").is(':checked');
var data = {
"username": username,
"password": encrypt(password),
"rememberMe": rememberMe
};
data = $.extend(data, params);
postLogin(data);
},
error : function() {}
});
}
function validateRule() { function validateRule() {
var icon = "<i class='fa fa-times-circle'></i> "; var icon = "<i class='fa fa-times-circle'></i> ";
$("#signupForm").validate({ $("#signupForm").validate({

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save