19 files modified
4 files added
| | |
| | | import com.xcong.excoin.common.entity.QueryRequest; |
| | | import com.xcong.excoin.modules.member.dto.MemberDataInfoDto; |
| | | import com.xcong.excoin.modules.member.dto.MemberDetailConfirmDto; |
| | | import com.xcong.excoin.modules.member.entity.AgentFriendRelationEntity; |
| | | import com.xcong.excoin.modules.member.entity.MemberCoinChargeEntity; |
| | | import com.xcong.excoin.modules.member.entity.MemberCoinWithdrawEntity; |
| | | import com.xcong.excoin.modules.member.entity.MemberEntity; |
| | |
| | | public class MemberController extends BaseController { |
| | | |
| | | private final IMemberService memberService; |
| | | |
| | | /** |
| | | * 代理关系---列表 |
| | | * @return |
| | | */ |
| | | @GetMapping("agentInfoList") |
| | | public FebsResponse agentInfoList(AgentFriendRelationEntity agentFriendRelationEntity, QueryRequest request) { |
| | | Map<String, Object> data = getDataTable(memberService.findAgentInfoListInPage(agentFriendRelationEntity, request)); |
| | | return new FebsResponse().success().data(data); |
| | | } |
| | | |
| | | @GetMapping("getList") |
| | | public FebsResponse getList(MemberEntity member, QueryRequest request) { |
| | |
| | | private final IMemberService memberService; |
| | | |
| | | /** |
| | | * 代理关系 |
| | | * @return |
| | | */ |
| | | @GetMapping("agentInfo") |
| | | @RequiresPermissions("agentInfo:view") |
| | | public String agentInfo() { |
| | | return FebsUtil.view("modules/member/agentInfo"); |
| | | } |
| | | |
| | | /** |
| | | * 个人信息 |
| | | * @return |
| | | */ |
New file |
| | |
| | | package com.xcong.excoin.modules.member.entity;
|
| | |
|
| | | import java.math.BigDecimal;
|
| | |
|
| | | import com.baomidou.mybatisplus.annotation.TableField;
|
| | | import com.baomidou.mybatisplus.annotation.TableName;
|
| | | import com.xcong.excoin.common.entity.BaseEntity;
|
| | |
|
| | | import lombok.Data;
|
| | |
|
| | | @Data
|
| | | @TableName("agent_friend_relation")
|
| | | public class AgentFriendRelationEntity extends BaseEntity {/**
|
| | | * |
| | | */
|
| | | private static final long serialVersionUID = 1L;
|
| | | |
| | | /**
|
| | | * 后台用户ID
|
| | | */
|
| | | private Long userId;
|
| | | /**
|
| | | * 会员ID
|
| | | */
|
| | | private Long memberId;
|
| | | /**
|
| | | * 会员邀请码
|
| | | */
|
| | | private String inviteId;
|
| | | /**
|
| | | * 上级会员ID
|
| | | */
|
| | | private Long refererMemberId;
|
| | | /**
|
| | | * 上级邀请码
|
| | | */
|
| | | private String refererId;
|
| | | /**
|
| | | * 上级链
|
| | | */
|
| | | private String refererIds;
|
| | | /**
|
| | | * 返佣比例
|
| | | */
|
| | | private BigDecimal returnRatio;
|
| | | /**
|
| | | * 代理等级
|
| | | */
|
| | | private int levelId;
|
| | | /**
|
| | | * 手续费是否设置自己 1是2否
|
| | | */
|
| | | private int feeIsSelf;
|
| | | |
| | | /**
|
| | | * 查询条件:第一查询条件
|
| | | */
|
| | | @TableField(exist = false)
|
| | | private String account;
|
| | | /**
|
| | | * 手机号(包含国际手机号)
|
| | | */
|
| | | @TableField(exist = false)
|
| | | private String phone;
|
| | | /**
|
| | | * 邮箱
|
| | | */
|
| | | @TableField(exist = false)
|
| | | private String email;
|
| | | /**
|
| | | * 推广人数
|
| | | */
|
| | | @TableField(exist = false)
|
| | | private int promotionNumber;
|
| | | /**
|
| | | * 总充值
|
| | | */
|
| | | @TableField(exist = false)
|
| | | private String totalRecharge;
|
| | | /**
|
| | | * 总提现
|
| | | */
|
| | | @TableField(exist = false)
|
| | | private String totalWithdrawal;
|
| | | /**
|
| | | * 总业绩
|
| | | */
|
| | | @TableField(exist = false)
|
| | | private String totalPerformance;
|
| | |
|
| | | }
|
New file |
| | |
| | | package com.xcong.excoin.modules.member.mapper;
|
| | |
|
| | | import java.util.List;
|
| | |
|
| | | import org.apache.ibatis.annotations.Param;
|
| | |
|
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
| | | import com.baomidou.mybatisplus.core.metadata.IPage;
|
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
| | | import com.xcong.excoin.modules.member.entity.AgentFriendRelationEntity;
|
| | |
|
| | | public interface AgentFriendRelationMapper extends BaseMapper<AgentFriendRelationEntity> {
|
| | |
|
| | | IPage<AgentFriendRelationEntity> findAgentFriendRelationListInPage(Page<AgentFriendRelationEntity> page,
|
| | | @Param("record")AgentFriendRelationEntity agentFriendRelationEntity);
|
| | |
|
| | | List<AgentFriendRelationEntity> selectAgentFriendRelationByMap(@Param("inviteId")String inviteId);
|
| | |
|
| | | }
|
| | |
| | | IPage<MemberCoinChargeVo> findMemberApplyCoinListInPage(Page<MemberCoinChargeEntity> page,
|
| | | @Param("record")MemberCoinChargeEntity memberCoinChargeEntity);
|
| | |
|
| | | String selectCBByMemberId(String memberId);
|
| | |
|
| | | }
|
| | |
| | | IPage<MemberCoinWithdrawVo> findmemberWithdrawCoinListInPage(Page<MemberCoinWithdrawEntity> page,
|
| | | @Param("record")MemberCoinWithdrawEntity memberCoinWithdrawEntity);
|
| | |
|
| | | String selectTBByMemberId(@Param("memberId")String memberId);
|
| | |
|
| | | }
|
| | |
| | | import com.xcong.excoin.modules.member.vo.MemberDataInfoVo; |
| | | import com.xcong.excoin.modules.trademanage.vo.MemberAccountInfoVo; |
| | | |
| | | import java.util.List; |
| | | |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | /** |
| | |
| | | String selectHYZCForBasicRealData(); |
| | | |
| | | String selectDLZCForBasicRealData(); |
| | | |
| | | List<String> selectMemberBylowLevelInviteId(String lowLevelInviteId); |
| | | |
| | | } |
| | |
| | | IPage<MemberQuickSaleVo> findmemberQuickSaleListInPage(Page<MemberQuickBuySaleEntity> page,
|
| | | @Param("record")MemberQuickBuySaleEntity memberQuickBuySaleEntity);
|
| | |
|
| | | String selectCZByMemberId(@Param("memberId")String memberId);
|
| | |
|
| | | String selectTXByMemberId(@Param("memberId")String memberId);
|
| | |
|
| | | }
|
| | |
| | | import com.xcong.excoin.common.entity.FebsResponse; |
| | | import com.xcong.excoin.common.entity.QueryRequest; |
| | | import com.xcong.excoin.modules.member.dto.MemberDetailConfirmDto; |
| | | import com.xcong.excoin.modules.member.entity.AgentFriendRelationEntity; |
| | | import com.xcong.excoin.modules.member.entity.MemberCoinChargeEntity; |
| | | import com.xcong.excoin.modules.member.entity.MemberCoinWithdrawEntity; |
| | | import com.xcong.excoin.modules.member.entity.MemberEntity; |
| | |
| | | |
| | | FebsResponse memberDataInfoList(@NotNull(message = "{required}") long id); |
| | | |
| | | IPage<AgentFriendRelationEntity> findAgentInfoListInPage(AgentFriendRelationEntity agentFriendRelationEntity, QueryRequest request); |
| | | |
| | | } |
| | |
| | | import com.xcong.excoin.common.entity.FebsResponse; |
| | | import com.xcong.excoin.common.entity.QueryRequest; |
| | | import com.xcong.excoin.modules.member.dto.MemberDetailConfirmDto; |
| | | import com.xcong.excoin.modules.member.entity.AgentFriendRelationEntity; |
| | | import com.xcong.excoin.modules.member.entity.MemberAccountMoneyChangeEntity; |
| | | import com.xcong.excoin.modules.member.entity.MemberCoinAddressEntity; |
| | | import com.xcong.excoin.modules.member.entity.MemberCoinChargeEntity; |
| | |
| | | import com.xcong.excoin.modules.member.entity.MemberEntity; |
| | | import com.xcong.excoin.modules.member.entity.MemberQuickBuySaleEntity; |
| | | import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity; |
| | | import com.xcong.excoin.modules.member.mapper.AgentFriendRelationMapper; |
| | | import com.xcong.excoin.modules.member.mapper.MemberAccountMoneyChangeMapper; |
| | | import com.xcong.excoin.modules.member.mapper.MemberAuthenticationMapper; |
| | | import com.xcong.excoin.modules.member.mapper.MemberCoinAddressMapper; |
| | |
| | | |
| | | import lombok.RequiredArgsConstructor; |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.HashSet; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Set; |
| | | |
| | | import javax.validation.Valid; |
| | | import javax.validation.constraints.NotNull; |
| | |
| | | |
| | | private final MemberAuthenticationMapper memberAuthenticationMapper; |
| | | |
| | | private final AgentFriendRelationMapper agentFriendRelationMapper; |
| | | |
| | | @Override |
| | | public IPage<AgentFriendRelationEntity> findAgentInfoListInPage(AgentFriendRelationEntity agentFriendRelationEntity, |
| | | QueryRequest request) { |
| | | Page<AgentFriendRelationEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | IPage<AgentFriendRelationEntity> findmemberQuickBuySaleListInPage = agentFriendRelationMapper.findAgentFriendRelationListInPage(page, agentFriendRelationEntity); |
| | | List<AgentFriendRelationEntity> records = findmemberQuickBuySaleListInPage.getRecords(); |
| | | |
| | | if(records != null && records.size() > 0) { |
| | | for(AgentFriendRelationEntity agentFriendRelation : records) { |
| | | List<String> arrayList = new ArrayList<>(); |
| | | String inviteId = agentFriendRelation.getInviteId(); |
| | | String inviteIdCZ = null; |
| | | String inviteIdTX = null; |
| | | String inviteIdSY = null; |
| | | // 当前邀请码下的所有代理MemberID |
| | | List<AgentFriendRelationEntity> lowLevelList = agentFriendRelationMapper.selectAgentFriendRelationByMap(inviteId); |
| | | |
| | | List<String> memberLevel = memberMapper.selectMemberBylowLevelInviteId(inviteId); |
| | | arrayList.addAll(memberLevel); |
| | | if(lowLevelList != null && lowLevelList.size() > 0) { |
| | | for(AgentFriendRelationEntity lowLevelMemberId : lowLevelList) { |
| | | Long memberId = lowLevelMemberId.getMemberId(); |
| | | arrayList.add(memberId.toString()); |
| | | List<String> memberlowLevel = memberMapper.selectMemberBylowLevelInviteId(lowLevelMemberId.getInviteId()); |
| | | arrayList.addAll(memberlowLevel); |
| | | } |
| | | Set<String> set = new HashSet<>(); |
| | | List<String> newList = new ArrayList<>(); |
| | | set.addAll(arrayList); |
| | | newList.addAll(set); |
| | | //获取对应的充值提现 |
| | | double czNumber = 0; |
| | | double txNumber = 0; |
| | | if(newList != null && newList.size() > 0) { |
| | | agentFriendRelation.setPromotionNumber(newList.size()); |
| | | for(String memberId : newList) { |
| | | //充币 |
| | | String selectCBByMemberId = memberCoinChargeMapper.selectCBByMemberId(memberId); |
| | | //充值 |
| | | String selectCZByMemberI = memberQuickBuySaleMapper.selectCZByMemberId(memberId); |
| | | //提币 |
| | | String selectTBByMemberId = memberCoinWithdrawMapper.selectTBByMemberId(memberId); |
| | | //提现 |
| | | String selectTXByMemberId = memberQuickBuySaleMapper.selectTXByMemberId(memberId); |
| | | |
| | | czNumber = czNumber + (selectCBByMemberId == null ? 0 : Double.parseDouble(selectCBByMemberId)); |
| | | czNumber = czNumber + (selectCZByMemberI == null ? 0 : Double.parseDouble(selectCZByMemberI)); |
| | | txNumber = txNumber + (selectTBByMemberId == null ? 0 : Double.parseDouble(selectTBByMemberId)); |
| | | txNumber = txNumber + (selectTXByMemberId == null ? 0 : Double.parseDouble(selectTXByMemberId)); |
| | | } |
| | | } |
| | | inviteIdCZ = czNumber+""; |
| | | inviteIdTX = txNumber+""; |
| | | inviteIdSY = (czNumber-txNumber)+""; |
| | | } |
| | | agentFriendRelation.setTotalRecharge(inviteIdCZ == null ? "0.0" : inviteIdCZ); |
| | | agentFriendRelation.setTotalWithdrawal(inviteIdTX == null ? "0.0" : inviteIdTX); |
| | | agentFriendRelation.setTotalPerformance(inviteIdSY == null ? "0.0" : inviteIdSY); |
| | | } |
| | | } |
| | | return findmemberQuickBuySaleListInPage; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public IPage<MemberEntity> findMemberListInPage(MemberEntity memberEntity, QueryRequest request) { |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?>
|
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
| | | <mapper namespace="com.xcong.excoin.modules.member.mapper.AgentFriendRelationMapper">
|
| | |
|
| | | <select id="findAgentFriendRelationListInPage" resultType="com.xcong.excoin.modules.member.entity.AgentFriendRelationEntity">
|
| | | select * from agent_friend_relation s left join member m on m.id = s.member_id
|
| | | <where>
|
| | | <if test="record != null" >
|
| | | <if test="record.account!=null and record.account!=''">
|
| | | and (m.phone = #{record.account} or m.email = #{record.account} or m.invite_id=#{record.account})
|
| | | </if>
|
| | | </if>
|
| | | </where>
|
| | | </select>
|
| | | |
| | | <select id="selectAgentFriendRelationByMap" resultType="com.xcong.excoin.modules.member.entity.AgentFriendRelationEntity">
|
| | | SELECT
|
| | | *
|
| | | FROM
|
| | | agent_friend_relation
|
| | | WHERE
|
| | | FIND_IN_SET(#{inviteId}, referer_ids)
|
| | | </select>
|
| | |
|
| | | </mapper> |
| | |
| | | </where>
|
| | | order by s.create_time desc
|
| | | </select>
|
| | | |
| | | <select id="selectCBByMemberId" resultType="java.lang.String">
|
| | | select IFNULL(sum(amount),'0') from member_coin_charge where member_id = #{memberId} |
| | | </select>
|
| | |
|
| | | </mapper> |
| | |
| | | </where>
|
| | | order by s.create_time desc
|
| | | </select>
|
| | | |
| | | <select id="selectTBByMemberId" resultType="java.lang.String">
|
| | | select IFNULL(sum(amount),'0') from member_coin_withdraw where member_id = #{memberId} and status = 2
|
| | | </select>
|
| | |
|
| | | </mapper> |
| | |
| | | ) |
| | | </select> |
| | | |
| | | <select id="selectMemberBylowLevelInviteId" resultType="java.lang.String"> |
| | | select id from member where FIND_IN_SET(#{inviteId},referer_ids) |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
| | | <mapper namespace="com.xcong.excoin.modules.member.mapper.MemberQuickBuySaleMapper">
|
| | |
|
| | | <select id="selectCZByMemberId" resultType="java.lang.String">
|
| | | select IFNULL(sum(amount_usdt),'0') from member_quick_buy_sale s |
| | | where s.order_type = 'B' |
| | | and s.member_id = #{memberId}
|
| | | and s.order_status = 3
|
| | | </select>
|
| | | |
| | | <select id="selectTXByMemberId" resultType="java.lang.String">
|
| | | select IFNULL(sum(amount_usdt),'0') from member_quick_buy_sale s |
| | | where s.order_type = 'S' |
| | | and s.member_id = #{memberId}
|
| | | and s.order_status = 3
|
| | | </select>
|
| | |
|
| | | <select id="findmemberQuickBuySaleListInPage" resultType="com.xcong.excoin.modules.member.vo.MemberQuickBuySaleVo">
|
| | | select * from member_quick_buy_sale s left join member m on m.id = s.member_id
|
| | |
| | | <!DOCTYPE html> |
| | | <html xmlns:th="http://www.thymeleaf.org"> |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <title>FEBS 权限系统</title> |
| | | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> |
| | | <meta name="renderer" content="webkit"> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| | | <meta name="viewport" |
| | | content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0"> |
| | | <link rel="stylesheet" th:href="@{layui/css/layui.css}" media="all"> |
| | | <link rel="stylesheet" th:href="@{febs/css/febs.css}" media="all"> |
| | | <link rel="icon" th:href="@{febs/images/favicon.ico}" type="image/x-icon"/> |
| | | </head> |
| | | <body> |
| | | <div class="layui-fluid" id="febs-error-403" lay-title="403"> |
| | | <div class="layui-row layui-col-space10" style="margin-top:100px"> |
| | | <div class="layui-col-xs3 layui-col-xs-offset2"> |
| | | <img data-th-src="@{febs/images/error/403.svg}" alt="" width="85%"/> |
| | | </div> |
| | | <div class="layui-col-xs7"> |
| | | <h1 style="font-size: 60px">403</h1> |
| | | <h2 class="febs-mar-b20 febs-c-gray">抱歉,你无权访问该页面</h2> |
| | | <button class="layui-btn layui-btn-normal" id="home">返回首页</button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script th:src="@{layui/layui.js}"></script> |
| | | <script data-th-inline="javascript" type="text/javascript"> |
| | | layui.use(['jquery'], function () { |
| | | var $ = layui.jquery, |
| | | ctx = [[@{/}]], |
| | | $view = $('#febs-error-403'); |
| | | $view.on('click', 'button', function () { |
| | | window.location.href = ctx + 'index'; |
| | | }); |
| | | }); |
| | | </script> |
| | | </body> |
| | | <!DOCTYPE html>
|
| | | <html xmlns:th="http://www.thymeleaf.org">
|
| | | <head>
|
| | | <meta charset="utf-8">
|
| | | <title>Biue 后台系统</title>
|
| | | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
| | | <meta name="renderer" content="webkit">
|
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
| | | <meta name="viewport"
|
| | | content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
|
| | | <link rel="stylesheet" th:href="@{layui/css/layui.css}" media="all">
|
| | | <link rel="stylesheet" th:href="@{febs/css/febs.css}" media="all">
|
| | | <link rel="icon" th:href="@{febs/images/favicon.ico}" type="image/x-icon"/>
|
| | | </head>
|
| | | <body>
|
| | | <div class="layui-fluid" id="febs-error-403" lay-title="403">
|
| | | <div class="layui-row layui-col-space10" style="margin-top:100px">
|
| | | <div class="layui-col-xs3 layui-col-xs-offset2">
|
| | | <img data-th-src="@{febs/images/error/403.svg}" alt="" width="85%"/>
|
| | | </div>
|
| | | <div class="layui-col-xs7">
|
| | | <h1 style="font-size: 60px">403</h1>
|
| | | <h2 class="febs-mar-b20 febs-c-gray">抱歉,你无权访问该页面</h2>
|
| | | <button class="layui-btn layui-btn-normal" id="home">返回首页</button>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | <script th:src="@{layui/layui.js}"></script>
|
| | | <script data-th-inline="javascript" type="text/javascript">
|
| | | layui.use(['jquery'], function () {
|
| | | var $ = layui.jquery,
|
| | | ctx = [[@{/}]],
|
| | | $view = $('#febs-error-403');
|
| | | $view.on('click', 'button', function () {
|
| | | window.location.href = ctx + 'index';
|
| | | });
|
| | | });
|
| | | </script>
|
| | | </body>
|
| | | </html> |
| | |
| | | <!DOCTYPE html> |
| | | <html xmlns:th="http://www.thymeleaf.org"> |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <title>FEBS 权限系统</title> |
| | | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> |
| | | <meta name="renderer" content="webkit"> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| | | <meta name="viewport" |
| | | content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0"> |
| | | <link rel="stylesheet" th:href="@{layui/css/layui.css}" media="all"> |
| | | <link rel="stylesheet" th:href="@{febs/css/febs.css}" media="all"> |
| | | <link rel="icon" th:href="@{febs/images/favicon.ico}" type="image/x-icon"/> |
| | | </head> |
| | | <body> |
| | | <div class="layui-fluid" id="febs-error-404" lay-title="页面不存在"> |
| | | <div class="layui-row layui-col-space10" style="margin-top:100px"> |
| | | <div class="layui-col-xs3 layui-col-xs-offset2"> |
| | | <img data-th-src="@{febs/images/error/404.svg}" alt="" width="85%"/> |
| | | </div> |
| | | <div class="layui-col-xs7"> |
| | | <h1 style="font-size: 60px">404</h1> |
| | | <h2 class="febs-mar-b20 febs-c-gray">抱歉,你访问的页面不存在</h2> |
| | | <button class="layui-btn layui-btn-normal"> |
| | | 返回首页 |
| | | </button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script th:src="@{layui/layui.js}"></script> |
| | | <script data-th-inline="javascript" type="text/javascript"> |
| | | layui.use(['jquery'], function () { |
| | | var $ = layui.jquery, |
| | | ctx = [[@{/}]], |
| | | $view = $('#febs-error-404'); |
| | | $view.on('click', 'button', function () { |
| | | window.location.href = ctx + 'index'; |
| | | }); |
| | | }); |
| | | </script> |
| | | </body> |
| | | <!DOCTYPE html>
|
| | | <html xmlns:th="http://www.thymeleaf.org">
|
| | | <head>
|
| | | <meta charset="utf-8">
|
| | | <title>Biue 后台系统</title>
|
| | | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
| | | <meta name="renderer" content="webkit">
|
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
| | | <meta name="viewport"
|
| | | content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
|
| | | <link rel="stylesheet" th:href="@{layui/css/layui.css}" media="all">
|
| | | <link rel="stylesheet" th:href="@{febs/css/febs.css}" media="all">
|
| | | <link rel="icon" th:href="@{febs/images/favicon.ico}" type="image/x-icon"/>
|
| | | </head>
|
| | | <body>
|
| | | <div class="layui-fluid" id="febs-error-404" lay-title="页面不存在">
|
| | | <div class="layui-row layui-col-space10" style="margin-top:100px">
|
| | | <div class="layui-col-xs3 layui-col-xs-offset2">
|
| | | <img data-th-src="@{febs/images/error/404.svg}" alt="" width="85%"/>
|
| | | </div>
|
| | | <div class="layui-col-xs7">
|
| | | <h1 style="font-size: 60px">404</h1>
|
| | | <h2 class="febs-mar-b20 febs-c-gray">抱歉,你访问的页面不存在</h2>
|
| | | <button class="layui-btn layui-btn-normal">
|
| | | 返回首页
|
| | | </button>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | <script th:src="@{layui/layui.js}"></script>
|
| | | <script data-th-inline="javascript" type="text/javascript">
|
| | | layui.use(['jquery'], function () {
|
| | | var $ = layui.jquery,
|
| | | ctx = [[@{/}]],
|
| | | $view = $('#febs-error-404');
|
| | | $view.on('click', 'button', function () {
|
| | | window.location.href = ctx + 'index';
|
| | | });
|
| | | });
|
| | | </script>
|
| | | </body>
|
| | | </html> |
| | |
| | | <!DOCTYPE html> |
| | | <html xmlns:th="http://www.thymeleaf.org"> |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <title>FEBS 权限系统</title> |
| | | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> |
| | | <meta name="renderer" content="webkit"> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| | | <meta name="viewport" |
| | | content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0"> |
| | | <link rel="stylesheet" th:href="@{layui/css/layui.css}" media="all"> |
| | | <link rel="stylesheet" th:href="@{febs/css/febs.css}" media="all"> |
| | | <link rel="icon" th:href="@{febs/images/favicon.ico}" type="image/x-icon"/> |
| | | </head> |
| | | <body> |
| | | <div class="layui-fluid" id="febs-error-500" lay-title="500"> |
| | | <div class="layui-row layui-col-space10" style="margin-top:100px"> |
| | | <div class="layui-col-xs4 layui-col-xs-offset2"> |
| | | <img data-th-src="@{febs/images/error/500.svg}" alt="" width="85%"/> |
| | | </div> |
| | | <div class="layui-col-xs6"> |
| | | <h1 style="font-size: 60px">500</h1> |
| | | <h2 class="febs-mar-b20 febs-c-gray">抱歉,服务器出错了</h2> |
| | | <button class="layui-btn layui-btn-normal"> |
| | | 返回首页 |
| | | </button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script th:src="@{layui/layui.js}"></script> |
| | | <script data-th-inline="javascript" type="text/javascript"> |
| | | layui.use(['jquery'], function () { |
| | | var $ = layui.jquery, |
| | | ctx = [[@{/}]], |
| | | $view = $('#febs-error-500'); |
| | | $view.on('click', 'button', function () { |
| | | window.location.href = ctx + 'index'; |
| | | }); |
| | | }); |
| | | </script> |
| | | </body> |
| | | <!DOCTYPE html>
|
| | | <html xmlns:th="http://www.thymeleaf.org">
|
| | | <head>
|
| | | <meta charset="utf-8">
|
| | | <title>Biue 后台系统</title>
|
| | | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
| | | <meta name="renderer" content="webkit">
|
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
| | | <meta name="viewport"
|
| | | content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
|
| | | <link rel="stylesheet" th:href="@{layui/css/layui.css}" media="all">
|
| | | <link rel="stylesheet" th:href="@{febs/css/febs.css}" media="all">
|
| | | <link rel="icon" th:href="@{febs/images/favicon.ico}" type="image/x-icon"/>
|
| | | </head>
|
| | | <body>
|
| | | <div class="layui-fluid" id="febs-error-500" lay-title="500">
|
| | | <div class="layui-row layui-col-space10" style="margin-top:100px">
|
| | | <div class="layui-col-xs4 layui-col-xs-offset2">
|
| | | <img data-th-src="@{febs/images/error/500.svg}" alt="" width="85%"/>
|
| | | </div>
|
| | | <div class="layui-col-xs6">
|
| | | <h1 style="font-size: 60px">500</h1>
|
| | | <h2 class="febs-mar-b20 febs-c-gray">抱歉,服务器出错了</h2>
|
| | | <button class="layui-btn layui-btn-normal">
|
| | | 返回首页
|
| | | </button>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | <script th:src="@{layui/layui.js}"></script>
|
| | | <script data-th-inline="javascript" type="text/javascript">
|
| | | layui.use(['jquery'], function () {
|
| | | var $ = layui.jquery,
|
| | | ctx = [[@{/}]],
|
| | | $view = $('#febs-error-500');
|
| | | $view.on('click', 'button', function () {
|
| | | window.location.href = ctx + 'index';
|
| | | });
|
| | | });
|
| | | </script>
|
| | | </body>
|
| | | </html> |
| | |
| | | <style> |
| | | #febs-index .welcome-info { |
| | | border: 1px solid #f1f1f1; |
| | | margin-bottom: .5rem; |
| | | padding: .5rem; |
| | | } |
| | | |
| | | #febs-index .welcome-info-wrapper { |
| | | padding: .2rem; |
| | | display: inline-block |
| | | } |
| | | |
| | | #febs-index .welcome-info-wrapper .user-header { |
| | | display: inline-block; |
| | | vertical-align: middle |
| | | } |
| | | |
| | | #febs-index .welcome-info-wrapper .user-header img { |
| | | width: 5rem; |
| | | margin: .5rem 1rem; |
| | | border-radius: 50% |
| | | } |
| | | |
| | | #febs-index .welcome-info-wrapper .user-info { |
| | | display: inline-block; |
| | | vertical-align: middle |
| | | } |
| | | |
| | | #febs-index .welcome-info-wrapper .user-info .random-message { |
| | | font-size: 1rem; |
| | | margin-bottom: .2rem; |
| | | max-width: 21rem |
| | | } |
| | | |
| | | #febs-index .welcome-info-wrapper .user-info .user-dept, #febs-index .welcome-info-wrapper .user-info .user-login-info { |
| | | color: rgba(0, 0, 0, 0.45); |
| | | } |
| | | |
| | | #febs-index .login-count-table { |
| | | width: 100%; |
| | | margin: 1rem; |
| | | } |
| | | |
| | | #febs-index .login-count-table .count { |
| | | padding-top: .8rem; |
| | | font-size: 1rem; |
| | | font-weight: 600; |
| | | color: #1890ff |
| | | } |
| | | |
| | | #febs-index .project-table { |
| | | padding: .5rem; |
| | | border: 1px solid #f1f1f1; |
| | | width: 100% |
| | | } |
| | | |
| | | #febs-index .project-table-td { |
| | | padding: .5rem 0.7rem; |
| | | border: 1px solid #f1f1f1; |
| | | } |
| | | |
| | | #febs-index .project-table-td a { |
| | | color: #42b983; |
| | | font-size: .9rem; |
| | | font-weight: 600; |
| | | } |
| | | |
| | | #febs-index .project-desc { |
| | | color: rgba(0, 0, 0, 0.45); |
| | | } |
| | | </style> |
| | | <div class="layui-fluid layui-anim febs-anim-up" id="febs-index" lay-title="系统首页"> |
| | | <div class="layui-row layui-col-space8 febs-container"> |
| | | <div class="layui-col-md12 layui-col-sm12 layui-col-xs12"> |
| | | <div class="layui-card"> |
| | | <div class="layui-card-body layui-anim layui-anim-fadein"> |
| | | <div class="layui-row welcome-info"> |
| | | <div class="layui-col-md6 layui-col-sm12 layui-col-xs12"> |
| | | <div class="layui-row welcome-info-wrapper"> |
| | | <div class="user-header"> |
| | | <img alt="头像" id="user-avatar" data-th-src="@{febs/images/avatar/empty.jpg}"> |
| | | </div> |
| | | <div class="user-info"> |
| | | <div class="layui-row"> |
| | | <div class="random-message"> |
| | | <span id="welcome-message"></span> |
| | | </div> |
| | | <div class="user-dept"> |
| | | <span id="user-dept"></span> | <span id="user-role"></span> |
| | | </div> |
| | | <div class="user-login-info"> |
| | | 上次登录时间:<span id="last-login-time">2019-05-23 18:45:12</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-col-md6 layui-col-sm12 layui-col-xs12"> |
| | | <div class="layui-col-md-offset5"> |
| | | <table class="login-count-table"> |
| | | <tr> |
| | | <td>注册用户数量</td> |
| | | <td>持仓用户数量</td> |
| | | <td>当前平台总金额</td> |
| | | </tr> |
| | | <tr> |
| | | <td class="count" id="today-ip"> |
| | | 0 |
| | | </td> |
| | | <td class="count" id="today-visit-count"> |
| | | 0 |
| | | </td> |
| | | <td class="count" id="total-visit-count"> |
| | | 0 |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-col-md6 layui-col-sm6 layui-col-xs12"> |
| | | <div class="layui-card"> |
| | | <div class="layui-card-body"> |
| | | <div id="chart" style="height: 350px"></div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-col-md6 layui-col-sm6 layui-col-xs12"> |
| | | <div class="layui-card"> |
| | | <div class="layui-card-body"> |
| | | <table class="project-table"> |
| | | <tr> |
| | | <td style="padding: .8rem;">进行中的项目</td> |
| | | <td style="padding: .8rem;text-align: right"> |
| | | <a target="_blank" href="https://github.com/wuyouzhuguli?tab=repositories">所有项目</a> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="project-table-td"> |
| | | <div class="layui-row"> |
| | | <div class="layui-col-md12 layui-col-xs12"> |
| | | <div class="layui-row"> |
| | | <div class="layui-col-md12"> |
| | | <a target="_blank" href="https://github.com/wuyouzhuguli/FEBS-Cloud">FEBS |
| | | Cloud</a> |
| | | </div> |
| | | <div class="project-desc"> |
| | | Spring Cloud 微服务权限管理系统。 |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </td> |
| | | <td class="project-table-td"> |
| | | <div class="layui-row"> |
| | | <div class="layui-col-md12 layui-col-xs12"> |
| | | <div class="layui-row"> |
| | | <div class="layui-col-md12"> |
| | | <a target="_blank" href="https://github.com/wuyouzhuguli/FEBS-Cloud-Web">FEBS |
| | | Cloud Web</a> |
| | | </div> |
| | | <div class="project-desc"> |
| | | FEBS-Cloud前端,使用 vue-element-admin 构建。 |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="project-table-td"> |
| | | <div class="layui-row"> |
| | | <div class="layui-col-md12 layui-col-xs12"> |
| | | <div class="layui-row"> |
| | | <div class="layui-col-md12"> |
| | | <a target="_blank" href="https://github.com/wuyouzhuguli/FEBS-Shiro">FEBS |
| | | Shiro</a> |
| | | </div> |
| | | <div class="project-desc"> |
| | | Spring Boot 2.0.4 & Shiro1.4.0 权限管理系统。 |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </td> |
| | | <td class="project-table-td"> |
| | | <div class="layui-row"> |
| | | <div class="layui-col-md12 layui-col-xs12"> |
| | | <div class="layui-row"> |
| | | <div class="layui-col-md12"> |
| | | <a target="_blank" href="https://github.com/wuyouzhuguli/FEBS-Security">FEBS |
| | | Security</a> |
| | | </div> |
| | | <div class="project-desc"> |
| | | Spring Boot 2.0.4 & Spring Security 5.0.7 权限管理系统。 |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="project-table-td"> |
| | | <div class="layui-row"> |
| | | <div class="layui-col-md12 layui-col-xs12"> |
| | | <div class="layui-row"> |
| | | <div class="layui-col-md12"> |
| | | <a target="_blank" href="https://github.com/wuyouzhuguli/FEBS-Actuator">FEBS |
| | | Cloud K8S</a> |
| | | </div> |
| | | <div class="project-desc"> |
| | | FEBS Cloud K8S集群部署脚本。 |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </td> |
| | | <td class="project-table-td"> |
| | | <div class="layui-row"> |
| | | <div class="layui-col-md12 layui-col-xs12"> |
| | | <div class="layui-row"> |
| | | <div class="layui-col-md12"> |
| | | <a target="_blank" href="https://github.com/wuyouzhuguli/SpringAll">SpringAll</a> |
| | | </div> |
| | | <div class="project-desc"> |
| | | 循序渐进学习Spring Boot、Spring Cloud与Spring Security。 |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="project-table-td"> |
| | | <div class="layui-row"> |
| | | <div class="layui-col-md12 layui-col-xs12"> |
| | | <div class="layui-row"> |
| | | <div class="layui-col-md12"> |
| | | <a target="_blank" href="https://github.com/wuyouzhuguli/FEBS-Vue">FEBS |
| | | Vue</a> |
| | | </div> |
| | | <div class="project-desc"> |
| | | FEBS-Shiro前后端分离版本,前端架构采用Vue全家桶。 |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </td> |
| | | <td class="project-table-td"> |
| | | <div class="layui-row"> |
| | | <div class="layui-col-md12 layui-col-xs12"> |
| | | <div class="layui-row"> |
| | | <div class="layui-col-md12"> |
| | | <a target="_blank" href="https://github.com/wuyouzhuguli/FEBS-Actuator">FEBS Actuator</a> |
| | | </div> |
| | | <div class="project-desc"> |
| | | 使用Spring Boot Admin 2.0.2构建,用于监控FEBS。 |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script data-th-inline="javascript" type="text/javascript"> |
| | | layui.use(['apexcharts', 'febs', 'jquery', 'util'], function () { |
| | | var $ = layui.jquery, |
| | | util = layui.util, |
| | | $view = $('#febs-index'), |
| | | febs = layui.febs; |
| | | |
| | | febs.get(ctx + 'index/' + currentUser.username, null, function (r) { |
| | | handleSuccess(r.data); |
| | | }); |
| | | |
| | | function handleSuccess(data) { |
| | | var hour = new Date().getHours(); |
| | | var time = hour < 6 ? '早上好' : (hour <= 11 ? '上午好' : (hour <= 13 ? '中午好' : (hour <= 18 ? '下午好' : '晚上好'))); |
| | | var welcomeArr = [ |
| | | '喝杯咖啡休息下吧☕', |
| | | '要不要和朋友打局LOL', |
| | | '今天又写了几个Bug呢', |
| | | '今天在群里吹水了吗', |
| | | '今天吃了什么好吃的呢', |
| | | '今天您微笑了吗😊', |
| | | '今天帮助别人了吗', |
| | | '准备吃些什么呢', |
| | | '周末要不要去看电影?' |
| | | ]; |
| | | var index = Math.floor((Math.random() * welcomeArr.length)); |
| | | var welcomeMessage = time + ',<a id="febs-index-user">' + currentUser.username + '</a>,' + welcomeArr[index]; |
| | | $view.find('#today-ip').text(data.todayIp).end() |
| | | .find('#today-visit-count').text(data.todayVisitCount).end() |
| | | .find('#total-visit-count').text(data.totalVisitCount).end() |
| | | .find('#user-dept').text(currentUser.deptName ? currentUser.deptName : '暂无所属部门').end() |
| | | .find('#user-role').text(currentUser.roleName ? currentUser.roleName : '暂无角色').end() |
| | | .find('#last-login-time').text(currentUser.lastLoginTime ? currentUser.lastLoginTime : '第一次访问系统').end() |
| | | .find('#welcome-message').html(welcomeMessage).end() |
| | | .find('#user-avatar').attr('src', ctx + "febs/images/avatar/" + currentUser.avatar); |
| | | |
| | | var currentTime = new Date().getTime(); |
| | | var yourVisitCount = []; |
| | | var totalVisitCount = []; |
| | | var lastTenDays = [ |
| | | util.toDateString(new Date(currentTime - 1000 * 9 * 86400), 'MM-dd'), |
| | | util.toDateString(new Date(currentTime - 1000 * 8 * 86400), 'MM-dd'), |
| | | util.toDateString(new Date(currentTime - 1000 * 7 * 86400), 'MM-dd'), |
| | | util.toDateString(new Date(currentTime - 1000 * 6 * 86400), 'MM-dd'), |
| | | util.toDateString(new Date(currentTime - 1000 * 5 * 86400), 'MM-dd'), |
| | | util.toDateString(new Date(currentTime - 1000 * 4 * 86400), 'MM-dd'), |
| | | util.toDateString(new Date(currentTime - 1000 * 3 * 86400), 'MM-dd'), |
| | | util.toDateString(new Date(currentTime - 1000 * 2 * 86400), 'MM-dd'), |
| | | util.toDateString(new Date(currentTime - 1000 * 86400), 'MM-dd'), |
| | | util.toDateString(new Date(currentTime), 'MM-dd') |
| | | ]; |
| | | |
| | | |
| | | layui.each(lastTenDays, function (k, i) { |
| | | var contain = false; |
| | | layui.each(data.lastSevenUserVisitCount, function (key, item) { |
| | | if (i === item.days) { |
| | | yourVisitCount.push(item.count); |
| | | contain = true; |
| | | } |
| | | }); |
| | | if (!contain) yourVisitCount.push(0); |
| | | contain = false; |
| | | layui.each(data.lastSevenVisitCount, function (key, item) { |
| | | if (i === item.days) { |
| | | totalVisitCount.push(item.count); |
| | | contain = true; |
| | | } |
| | | }); |
| | | if (!contain) totalVisitCount.push(0); |
| | | }); |
| | | |
| | | var options = { |
| | | chart: { |
| | | height: 350, |
| | | type: 'area', |
| | | toolbar: { |
| | | show: false |
| | | } |
| | | }, |
| | | colors: ['#1890ff', '#0acf97'], |
| | | plotOptions: { |
| | | bar: { |
| | | horizontal: false, |
| | | columnWidth: '32rem' |
| | | } |
| | | }, |
| | | dataLabels: { |
| | | enabled: false |
| | | }, |
| | | stroke: { |
| | | width: [3, 3], |
| | | curve: 'smooth' |
| | | }, |
| | | series: [{ |
| | | name: '总数', |
| | | data: totalVisitCount |
| | | }, { |
| | | name: '您', |
| | | data: yourVisitCount |
| | | }], |
| | | xaxis: { |
| | | categories: lastTenDays, |
| | | axisTicks: { |
| | | show: true |
| | | }, |
| | | axisBorder: { |
| | | show: true, |
| | | color: '#f1f1f1' |
| | | } |
| | | }, |
| | | fill: { |
| | | type: 'gradient', |
| | | gradient: { |
| | | shadeIntensity: 1, |
| | | inverseColors: false, |
| | | opacityFrom: 0.5, |
| | | opacityTo: 0, |
| | | stops: [0, 90, 100] |
| | | } |
| | | }, |
| | | title: { |
| | | text: '近10天系统访问记录', |
| | | align: 'left', |
| | | style: { |
| | | color: 'rgba(0, 0, 0, .65)' |
| | | } |
| | | }, |
| | | tooltip: { |
| | | y: { |
| | | formatter: function (val) { |
| | | return "访问次数 " + val + " 次" |
| | | } |
| | | } |
| | | }, |
| | | grid: { |
| | | row: { |
| | | colors: ['transparent', 'transparent'], |
| | | opacity: 0.2 |
| | | }, |
| | | borderColor: '#f1f1f1' |
| | | } |
| | | }; |
| | | |
| | | new ApexCharts( |
| | | document.querySelector("#chart"), |
| | | options |
| | | ).render(); |
| | | } |
| | | |
| | | $view.on('click', '#febs-index-user',function () { |
| | | febs.navigate("/user/profile"); |
| | | }) |
| | | |
| | | }); |
| | | </script> |
| | | <style>
|
| | | #febs-index .welcome-info {
|
| | | border: 1px solid #f1f1f1;
|
| | | margin-bottom: .5rem;
|
| | | padding: .5rem;
|
| | | }
|
| | |
|
| | | #febs-index .welcome-info-wrapper {
|
| | | padding: .2rem;
|
| | | display: inline-block
|
| | | }
|
| | |
|
| | | #febs-index .welcome-info-wrapper .user-header {
|
| | | display: inline-block;
|
| | | vertical-align: middle
|
| | | }
|
| | |
|
| | | #febs-index .welcome-info-wrapper .user-header img {
|
| | | width: 5rem;
|
| | | margin: .5rem 1rem;
|
| | | border-radius: 50%
|
| | | }
|
| | |
|
| | | #febs-index .welcome-info-wrapper .user-info {
|
| | | display: inline-block;
|
| | | vertical-align: middle
|
| | | }
|
| | |
|
| | | #febs-index .welcome-info-wrapper .user-info .random-message {
|
| | | font-size: 1rem;
|
| | | margin-bottom: .2rem;
|
| | | max-width: 21rem
|
| | | }
|
| | |
|
| | | #febs-index .welcome-info-wrapper .user-info .user-dept, #febs-index .welcome-info-wrapper .user-info .user-login-info {
|
| | | color: rgba(0, 0, 0, 0.45);
|
| | | }
|
| | |
|
| | | #febs-index .login-count-table {
|
| | | width: 100%;
|
| | | margin: 1rem;
|
| | | }
|
| | |
|
| | | #febs-index .login-count-table .count {
|
| | | padding-top: .8rem;
|
| | | font-size: 1rem;
|
| | | font-weight: 600;
|
| | | color: #1890ff
|
| | | }
|
| | |
|
| | | #febs-index .project-table {
|
| | | padding: .5rem;
|
| | | border: 1px solid #f1f1f1;
|
| | | width: 100%
|
| | | }
|
| | |
|
| | | #febs-index .project-table-td {
|
| | | padding: .5rem 0.7rem;
|
| | | border: 1px solid #f1f1f1;
|
| | | }
|
| | |
|
| | | #febs-index .project-table-td a {
|
| | | color: #42b983;
|
| | | font-size: .9rem;
|
| | | font-weight: 600;
|
| | | }
|
| | |
|
| | | #febs-index .project-desc {
|
| | | color: rgba(0, 0, 0, 0.45);
|
| | | }
|
| | | </style>
|
| | | <div class="layui-fluid layui-anim febs-anim-up" id="febs-index" lay-title="系统首页">
|
| | | <div class="layui-row layui-col-space8 febs-container">
|
| | | <div class="layui-col-md12 layui-col-sm12 layui-col-xs12">
|
| | | <div class="layui-card">
|
| | | <div class="layui-card-body layui-anim layui-anim-fadein">
|
| | | <div class="layui-row welcome-info">
|
| | | <div class="layui-col-md6 layui-col-sm12 layui-col-xs12">
|
| | | <div class="layui-row welcome-info-wrapper">
|
| | | <div class="user-header">
|
| | | <img alt="头像" id="user-avatar" data-th-src="@{febs/images/avatar/empty.jpg}">
|
| | | </div>
|
| | | <div class="user-info">
|
| | | <div class="layui-row">
|
| | | <div class="random-message">
|
| | | <span id="welcome-message"></span>
|
| | | </div>
|
| | | <div class="user-dept">
|
| | | <span id="user-dept"></span> | <span id="user-role"></span>
|
| | | </div>
|
| | | <div class="user-login-info">
|
| | | 上次登录时间:<span id="last-login-time">2019-05-23 18:45:12</span>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | <div class="layui-col-md6 layui-col-sm12 layui-col-xs12">
|
| | | <div class="layui-col-md-offset5">
|
| | | <table class="login-count-table">
|
| | | <tr>
|
| | | <td>注册用户数量</td>
|
| | | </tr>
|
| | | <tr>
|
| | | <td class="count" id="today-ip">
|
| | | 0
|
| | | </td>
|
| | | </tr>
|
| | | </table>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | <div class="layui-col-md6 layui-col-sm6 layui-col-xs12">
|
| | | <div class="layui-card">
|
| | | <div class="layui-card-body">
|
| | | <div id="chart" style="height: 350px"></div>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | <script data-th-inline="javascript" type="text/javascript">
|
| | | layui.use(['apexcharts', 'febs', 'jquery', 'util'], function () {
|
| | | var $ = layui.jquery,
|
| | | util = layui.util,
|
| | | $view = $('#febs-index'),
|
| | | febs = layui.febs;
|
| | |
|
| | | febs.get(ctx + 'index/' + currentUser.username, null, function (r) {
|
| | | handleSuccess(r.data);
|
| | | });
|
| | |
|
| | | function handleSuccess(data) {
|
| | | var hour = new Date().getHours();
|
| | | var time = hour < 6 ? '早上好' : (hour <= 11 ? '上午好' : (hour <= 13 ? '中午好' : (hour <= 18 ? '下午好' : '晚上好')));
|
| | | var welcomeArr = [
|
| | | '喝杯咖啡休息下吧☕',
|
| | | '要不要和朋友打局LOL',
|
| | | '今天又写了几个Bug呢',
|
| | | '今天在群里吹水了吗',
|
| | | '今天吃了什么好吃的呢',
|
| | | '今天您微笑了吗😊',
|
| | | '今天帮助别人了吗',
|
| | | '准备吃些什么呢',
|
| | | '周末要不要去看电影?'
|
| | | ];
|
| | | var index = Math.floor((Math.random() * welcomeArr.length));
|
| | | var welcomeMessage = time + ',<a id="febs-index-user">' + currentUser.username + '</a>,' + welcomeArr[index];
|
| | | $view.find('#today-ip').text(data.todayIp).end()
|
| | | .find('#today-visit-count').text(data.todayVisitCount).end()
|
| | | .find('#total-visit-count').text(data.totalVisitCount).end()
|
| | | .find('#user-dept').text(currentUser.deptName ? currentUser.deptName : '暂无所属部门').end()
|
| | | .find('#user-role').text(currentUser.roleName ? currentUser.roleName : '暂无角色').end()
|
| | | .find('#last-login-time').text(currentUser.lastLoginTime ? currentUser.lastLoginTime : '第一次访问系统').end()
|
| | | .find('#welcome-message').html(welcomeMessage).end()
|
| | | .find('#user-avatar').attr('src', ctx + "febs/images/avatar/" + currentUser.avatar);
|
| | |
|
| | | var currentTime = new Date().getTime();
|
| | | var yourVisitCount = [];
|
| | | var totalVisitCount = [];
|
| | | var lastTenDays = [
|
| | | util.toDateString(new Date(currentTime - 1000 * 9 * 86400), 'MM-dd'),
|
| | | util.toDateString(new Date(currentTime - 1000 * 8 * 86400), 'MM-dd'),
|
| | | util.toDateString(new Date(currentTime - 1000 * 7 * 86400), 'MM-dd'),
|
| | | util.toDateString(new Date(currentTime - 1000 * 6 * 86400), 'MM-dd'),
|
| | | util.toDateString(new Date(currentTime - 1000 * 5 * 86400), 'MM-dd'),
|
| | | util.toDateString(new Date(currentTime - 1000 * 4 * 86400), 'MM-dd'),
|
| | | util.toDateString(new Date(currentTime - 1000 * 3 * 86400), 'MM-dd'),
|
| | | util.toDateString(new Date(currentTime - 1000 * 2 * 86400), 'MM-dd'),
|
| | | util.toDateString(new Date(currentTime - 1000 * 86400), 'MM-dd'),
|
| | | util.toDateString(new Date(currentTime), 'MM-dd')
|
| | | ];
|
| | |
|
| | |
|
| | | layui.each(lastTenDays, function (k, i) {
|
| | | var contain = false;
|
| | | layui.each(data.lastSevenUserVisitCount, function (key, item) {
|
| | | if (i === item.days) {
|
| | | yourVisitCount.push(item.count);
|
| | | contain = true;
|
| | | }
|
| | | });
|
| | | if (!contain) yourVisitCount.push(0);
|
| | | contain = false;
|
| | | layui.each(data.lastSevenVisitCount, function (key, item) {
|
| | | if (i === item.days) {
|
| | | totalVisitCount.push(item.count);
|
| | | contain = true;
|
| | | }
|
| | | });
|
| | | if (!contain) totalVisitCount.push(0);
|
| | | });
|
| | |
|
| | | var options = {
|
| | | chart: {
|
| | | height: 350,
|
| | | type: 'area',
|
| | | toolbar: {
|
| | | show: false
|
| | | }
|
| | | },
|
| | | colors: ['#1890ff', '#0acf97'],
|
| | | plotOptions: {
|
| | | bar: {
|
| | | horizontal: false,
|
| | | columnWidth: '32rem'
|
| | | }
|
| | | },
|
| | | dataLabels: {
|
| | | enabled: false
|
| | | },
|
| | | stroke: {
|
| | | width: [3, 3],
|
| | | curve: 'smooth'
|
| | | },
|
| | | series: [{
|
| | | name: '总数',
|
| | | data: totalVisitCount
|
| | | }, {
|
| | | name: '您',
|
| | | data: yourVisitCount
|
| | | }],
|
| | | xaxis: {
|
| | | categories: lastTenDays,
|
| | | axisTicks: {
|
| | | show: true
|
| | | },
|
| | | axisBorder: {
|
| | | show: true,
|
| | | color: '#f1f1f1'
|
| | | }
|
| | | },
|
| | | fill: {
|
| | | type: 'gradient',
|
| | | gradient: {
|
| | | shadeIntensity: 1,
|
| | | inverseColors: false,
|
| | | opacityFrom: 0.5,
|
| | | opacityTo: 0,
|
| | | stops: [0, 90, 100]
|
| | | }
|
| | | },
|
| | | title: {
|
| | | text: '近10天系统访问记录',
|
| | | align: 'left',
|
| | | style: {
|
| | | color: 'rgba(0, 0, 0, .65)'
|
| | | }
|
| | | },
|
| | | tooltip: {
|
| | | y: {
|
| | | formatter: function (val) {
|
| | | return "访问次数 " + val + " 次"
|
| | | }
|
| | | }
|
| | | },
|
| | | grid: {
|
| | | row: {
|
| | | colors: ['transparent', 'transparent'],
|
| | | opacity: 0.2
|
| | | },
|
| | | borderColor: '#f1f1f1'
|
| | | }
|
| | | };
|
| | |
|
| | | new ApexCharts(
|
| | | document.querySelector("#chart"),
|
| | | options
|
| | | ).render();
|
| | | }
|
| | |
|
| | | $view.on('click', '#febs-index-user',function () {
|
| | | febs.navigate("/user/profile");
|
| | | })
|
| | |
|
| | | });
|
| | | </script>
|
| | |
| | | <div class="layui-layout layui-layout-admin" id="febs-layout"> |
| | | <div class="layui-header layui-anim febs-anim-down" id="app-header"> |
| | | <script type="text/html" |
| | | template |
| | | lay-done="layui.element.render('nav','febs-header')"> |
| | | <ul class="layui-nav layui-layout-left" lay-filter="febs-header"> |
| | | <li class="layui-nav-item" lay-unselect> |
| | | <a febs-event="flexible" title="侧边伸缩"> |
| | | <i class="layui-icon layui-icon-shrink-right"></i> |
| | | </a> |
| | | </li> |
| | | <span class="febs-breadcrumb"></span> |
| | | </ul> |
| | | <ul class="layui-nav layui-layout-right" lay-filter="febs-header"> |
| | | <li class="layui-nav-item layui-hide-xs" id="fullscreen" lay-unselect> |
| | | <a title="切换全屏"> |
| | | <i class="layui-icon layui-icon-screen-full"></i> |
| | | </a> |
| | | </li> |
| | | <li class="layui-nav-item layui-user" lay-unselect> |
| | | <a> |
| | | <img style="width: 1.9rem;margin-right:.5rem;border-radius: 50%" |
| | | src="{{= ctx + 'febs/images/avatar/' + currentUser.avatar }}" title="头像"> |
| | | {{ currentUser.username }} |
| | | </a> |
| | | <dl class="layui-nav-child"> |
| | | <dd><a class="layui-nav-child-href" id="user-profile">个人中心</a></dd> |
| | | <dd><a class="layui-nav-child-href" id="password-update">密码修改</a></dd> |
| | | <dd><a class="layui-nav-child-href" data-th-href="@{logout}">退出登录</a></dd> |
| | | </dl> |
| | | </li> |
| | | </ul> |
| | | </script> |
| | | </div> |
| | | |
| | | <div class="febs-tabs-hidden"> |
| | | <script type="text/html" id="TPL-app-tabsmenu" template> |
| | | {{# if(layui.conf.viewTabs){ }} |
| | | <div class="febs-tabs-wrap"> |
| | | <span class="febs-tabs-btn febs-tabs-action febs-tabs-prev" data-type="prev"> |
| | | <i class="layui-icon layui-icon-left"></i> |
| | | </span> |
| | | <span class="febs-tabs-btn febs-tabs-action febs-tabs-next" data-type="next"> |
| | | <i class="layui-icon layui-icon-right"></i> |
| | | </span> |
| | | <span class="febs-tabs-btn febs-tabs-action febs-tabs-down" data-type="down"> |
| | | <i class="layui-icon layui-icon-close"></i> |
| | | </span> |
| | | <ul class="febs-tabs-menu"> |
| | | {{# layui.each(layui.view.tab.data,function(i, item){ }} |
| | | <li data-type="page" class="febs-tabs-btn" lay-url="{{item.fileurl}}"> |
| | | <i class="febs-tabs-ball"></i>{{ item.title }}<b class="layui-icon layui-icon-close febs-tabs-close"></b> |
| | | </li> |
| | | {{# }) }} |
| | | </ul> |
| | | </div> |
| | | {{# } }} |
| | | </script> |
| | | </div> |
| | | |
| | | <!-- 侧边菜单 --> |
| | | <div class="layui-side" id="app-sidebar"> |
| | | <div class="layui-side-scroll"> |
| | | <div class="layui-logo" style="cursor: pointer"> |
| | | <img data-th-src="@{febs/images/logo.png}"> |
| | | <span>ExCoin 管理系统</span> |
| | | </div> |
| | | <script |
| | | type="text/html" |
| | | template |
| | | lay-api="getMenus" |
| | | lay-done="layui.element.render('nav','febs-sidebar');layui.febs.sidebarFocus()"> |
| | | <ul class="layui-nav layui-nav-tree" lay-filter="febs-sidebar" lay-shrink="all"> |
| | | {{# |
| | | function __createSlidebar(data,index){ |
| | | if(!data || data.length == 0) return ''; |
| | | var html = ' |
| | | <dl class="layui-nav-child">'; |
| | | layui.each(data, function(i, child) { |
| | | var left = index == 0 ? 50 : 50 + index * 20; |
| | | var title = child.title; |
| | | if (child.icon) { |
| | | title = '<i class="layui-icon '+child.icon+'"></i>' + child.title |
| | | } |
| | | html += ' |
| | | <dd><a style="padding-left:' + left + 'px" target="'+(child.target||'')+'" |
| | | lay-href="'+ (child.href||'') +'">' + title + '</a>'; |
| | | if(child.childs) html += __createSlidebar(child.childs,index+1); |
| | | html += '</dd>'; |
| | | }); |
| | | html = html +'</dl>'; |
| | | return html; |
| | | } |
| | | layui.each(d.childs, function(i,child){ |
| | | }} |
| | | <li class="layui-nav-item"> |
| | | <a lay-href="{{child.href||''}}" target="{{child.target||''}}" title="{{child.title}}"><i |
| | | class="layui-icon {{child.icon}}"></i>{{child.title}} {{# if(child.notice){ }}<span |
| | | class="layui-badge">{{ child.notice }}</span>{{# } }}</a> |
| | | {{ __createSlidebar(child.childs,0) }} |
| | | </li> |
| | | {{# }) }} |
| | | </ul> |
| | | </script> |
| | | </div> |
| | | </div> |
| | | <!-- 主体内容 --> |
| | | <div class="layui-body" id="febs-body"></div> |
| | | </div> |
| | | <script data-th-inline="javascript" type="text/javascript"> |
| | | layui.use(['jquery', 'febs', 'element'], function () { |
| | | var $ = layui.jquery, |
| | | $view = $('#febs-layout'), |
| | | febs = layui.febs; |
| | | |
| | | var element = layui.element; |
| | | |
| | | initTheme(); |
| | | |
| | | $view.find('#user-avatar').attr('src', ctx + "febs/images/avatar/" + currentUser.avatar); |
| | | |
| | | $view.on('click', '.layui-logo', function () { |
| | | febs.navigate("/index"); |
| | | }); |
| | | |
| | | $view.on('click', '#fullscreen', function () { |
| | | var $this = $(this); |
| | | var normalCls = 'layui-icon-screen-full'; |
| | | var activeCls = 'layui-icon-screen-restore'; |
| | | var ico = $this.find('.layui-icon'); |
| | | |
| | | if (ico.hasClass(normalCls)) { |
| | | var a = document.body; |
| | | a.webkitRequestFullScreen |
| | | ? a.webkitRequestFullScreen() |
| | | : a.mozRequestFullScreen |
| | | ? a.mozRequestFullScreen() |
| | | : a.requestFullScreen && a.requestFullscreen(); |
| | | ico.removeClass(normalCls).addClass(activeCls) |
| | | } else { |
| | | var b = document; |
| | | b.webkitCancelFullScreen |
| | | ? b.webkitCancelFullScreen() |
| | | : b.mozCancelFullScreen |
| | | ? b.mozCancelFullScreen() |
| | | : b.cancelFullScreen |
| | | ? b.cancelFullScreen() |
| | | : b.exitFullscreen && b.exitFullscreen(); |
| | | ico.removeClass(activeCls).addClass(normalCls) |
| | | } |
| | | }); |
| | | |
| | | $view.on('click', '#password-update', function () { |
| | | febs.modal.view('密码修改', 'password/update', { |
| | | area: $(window).width() <= 750 ? '90%' : '500px', |
| | | btn: ['确定'], |
| | | yes: function () { |
| | | $('#user-password-update').find('#submit').trigger('click'); |
| | | } |
| | | }); |
| | | }); |
| | | |
| | | $view.on('click', '#user-profile', function () { |
| | | febs.navigate("/user/profile"); |
| | | }); |
| | | |
| | | function initTheme() { |
| | | var theme = currentUser.theme; |
| | | var $sidebar = $('#app-sidebar'); |
| | | if (theme === 'black') { |
| | | $sidebar.removeClass('febs-theme-white'); |
| | | } |
| | | if (theme === 'white') { |
| | | $sidebar.addClass('febs-theme-white'); |
| | | } |
| | | } |
| | | }); |
| | | <div class="layui-layout layui-layout-admin" id="febs-layout">
|
| | | <div class="layui-header layui-anim febs-anim-down" id="app-header">
|
| | | <script type="text/html"
|
| | | template
|
| | | lay-done="layui.element.render('nav','febs-header')">
|
| | | <ul class="layui-nav layui-layout-left" lay-filter="febs-header">
|
| | | <li class="layui-nav-item" lay-unselect>
|
| | | <a febs-event="flexible" title="侧边伸缩">
|
| | | <i class="layui-icon layui-icon-shrink-right"></i>
|
| | | </a>
|
| | | </li>
|
| | | <span class="febs-breadcrumb"></span>
|
| | | </ul>
|
| | | <ul class="layui-nav layui-layout-right" lay-filter="febs-header">
|
| | | <li class="layui-nav-item layui-hide-xs" id="fullscreen" lay-unselect>
|
| | | <a title="切换全屏">
|
| | | <i class="layui-icon layui-icon-screen-full"></i>
|
| | | </a>
|
| | | </li>
|
| | | <li class="layui-nav-item layui-user" lay-unselect>
|
| | | <a>
|
| | | <img style="width: 1.9rem;margin-right:.5rem;border-radius: 50%"
|
| | | src="{{= ctx + 'febs/images/avatar/' + currentUser.avatar }}" title="头像">
|
| | | {{ currentUser.username }}
|
| | | </a>
|
| | | <dl class="layui-nav-child">
|
| | | <dd><a class="layui-nav-child-href" id="user-profile">个人中心</a></dd>
|
| | | <dd><a class="layui-nav-child-href" id="password-update">密码修改</a></dd>
|
| | | <dd><a class="layui-nav-child-href" data-th-href="@{logout}">退出登录</a></dd>
|
| | | </dl>
|
| | | </li>
|
| | | </ul>
|
| | | </script>
|
| | | </div>
|
| | |
|
| | | <div class="febs-tabs-hidden">
|
| | | <script type="text/html" id="TPL-app-tabsmenu" template>
|
| | | {{# if(layui.conf.viewTabs){ }}
|
| | | <div class="febs-tabs-wrap">
|
| | | <span class="febs-tabs-btn febs-tabs-action febs-tabs-prev" data-type="prev">
|
| | | <i class="layui-icon layui-icon-left"></i>
|
| | | </span>
|
| | | <span class="febs-tabs-btn febs-tabs-action febs-tabs-next" data-type="next">
|
| | | <i class="layui-icon layui-icon-right"></i>
|
| | | </span>
|
| | | <span class="febs-tabs-btn febs-tabs-action febs-tabs-down" data-type="down">
|
| | | <i class="layui-icon layui-icon-close"></i>
|
| | | </span>
|
| | | <ul class="febs-tabs-menu">
|
| | | {{# layui.each(layui.view.tab.data,function(i, item){ }}
|
| | | <li data-type="page" class="febs-tabs-btn" lay-url="{{item.fileurl}}">
|
| | | <i class="febs-tabs-ball"></i>{{ item.title }}<b class="layui-icon layui-icon-close febs-tabs-close"></b>
|
| | | </li>
|
| | | {{# }) }}
|
| | | </ul>
|
| | | </div>
|
| | | {{# } }}
|
| | | </script>
|
| | | </div>
|
| | |
|
| | | <!-- 侧边菜单 -->
|
| | | <div class="layui-side" id="app-sidebar">
|
| | | <div class="layui-side-scroll">
|
| | | <div class="layui-logo" style="cursor: pointer">
|
| | | <img data-th-src="@{febs/images/logo.png}">
|
| | | <span>Biue 管理系统</span>
|
| | | </div>
|
| | | <script
|
| | | type="text/html"
|
| | | template
|
| | | lay-api="getMenus"
|
| | | lay-done="layui.element.render('nav','febs-sidebar');layui.febs.sidebarFocus()">
|
| | | <ul class="layui-nav layui-nav-tree" lay-filter="febs-sidebar" lay-shrink="all">
|
| | | {{#
|
| | | function __createSlidebar(data,index){
|
| | | if(!data || data.length == 0) return '';
|
| | | var html = '
|
| | | <dl class="layui-nav-child">';
|
| | | layui.each(data, function(i, child) {
|
| | | var left = index == 0 ? 50 : 50 + index * 20;
|
| | | var title = child.title;
|
| | | if (child.icon) {
|
| | | title = '<i class="layui-icon '+child.icon+'"></i>' + child.title
|
| | | }
|
| | | html += '
|
| | | <dd><a style="padding-left:' + left + 'px" target="'+(child.target||'')+'"
|
| | | lay-href="'+ (child.href||'') +'">' + title + '</a>';
|
| | | if(child.childs) html += __createSlidebar(child.childs,index+1);
|
| | | html += '</dd>';
|
| | | });
|
| | | html = html +'</dl>';
|
| | | return html;
|
| | | }
|
| | | layui.each(d.childs, function(i,child){
|
| | | }}
|
| | | <li class="layui-nav-item">
|
| | | <a lay-href="{{child.href||''}}" target="{{child.target||''}}" title="{{child.title}}"><i
|
| | | class="layui-icon {{child.icon}}"></i>{{child.title}} {{# if(child.notice){ }}<span
|
| | | class="layui-badge">{{ child.notice }}</span>{{# } }}</a>
|
| | | {{ __createSlidebar(child.childs,0) }}
|
| | | </li>
|
| | | {{# }) }}
|
| | | </ul>
|
| | | </script>
|
| | | </div>
|
| | | </div>
|
| | | <!-- 主体内容 -->
|
| | | <div class="layui-body" id="febs-body"></div>
|
| | | </div>
|
| | | <script data-th-inline="javascript" type="text/javascript">
|
| | | layui.use(['jquery', 'febs', 'element'], function () {
|
| | | var $ = layui.jquery,
|
| | | $view = $('#febs-layout'),
|
| | | febs = layui.febs;
|
| | |
|
| | | var element = layui.element;
|
| | |
|
| | | initTheme();
|
| | |
|
| | | $view.find('#user-avatar').attr('src', ctx + "febs/images/avatar/" + currentUser.avatar);
|
| | |
|
| | | $view.on('click', '.layui-logo', function () {
|
| | | febs.navigate("/index");
|
| | | });
|
| | |
|
| | | $view.on('click', '#fullscreen', function () {
|
| | | var $this = $(this);
|
| | | var normalCls = 'layui-icon-screen-full';
|
| | | var activeCls = 'layui-icon-screen-restore';
|
| | | var ico = $this.find('.layui-icon');
|
| | |
|
| | | if (ico.hasClass(normalCls)) {
|
| | | var a = document.body;
|
| | | a.webkitRequestFullScreen
|
| | | ? a.webkitRequestFullScreen()
|
| | | : a.mozRequestFullScreen
|
| | | ? a.mozRequestFullScreen()
|
| | | : a.requestFullScreen && a.requestFullscreen();
|
| | | ico.removeClass(normalCls).addClass(activeCls)
|
| | | } else {
|
| | | var b = document;
|
| | | b.webkitCancelFullScreen
|
| | | ? b.webkitCancelFullScreen()
|
| | | : b.mozCancelFullScreen
|
| | | ? b.mozCancelFullScreen()
|
| | | : b.cancelFullScreen
|
| | | ? b.cancelFullScreen()
|
| | | : b.exitFullscreen && b.exitFullscreen();
|
| | | ico.removeClass(activeCls).addClass(normalCls)
|
| | | }
|
| | | });
|
| | |
|
| | | $view.on('click', '#password-update', function () {
|
| | | febs.modal.view('密码修改', 'password/update', {
|
| | | area: $(window).width() <= 750 ? '90%' : '500px',
|
| | | btn: ['确定'],
|
| | | yes: function () {
|
| | | $('#user-password-update').find('#submit').trigger('click');
|
| | | }
|
| | | });
|
| | | });
|
| | |
|
| | | $view.on('click', '#user-profile', function () {
|
| | | febs.navigate("/user/profile");
|
| | | });
|
| | |
|
| | | function initTheme() {
|
| | | var theme = currentUser.theme;
|
| | | var $sidebar = $('#app-sidebar');
|
| | | if (theme === 'black') {
|
| | | $sidebar.removeClass('febs-theme-white');
|
| | | }
|
| | | if (theme === 'white') {
|
| | | $sidebar.addClass('febs-theme-white');
|
| | | }
|
| | | }
|
| | | });
|
| | | </script> |
| | |
| | | <div class="layui-container"> |
| | | <div class="layui-row"> |
| | | <div class="layui-col-xs12 layui-col-lg4 layui-col-lg-offset4 febs-tc"> |
| | | <div class="layui-logo"><span><b>ExCoin</b> 后台系统</span></div> |
| | | <div class="layui-logo"><span><b>Biue</b> 后台系统</span></div> |
| | | </div> |
| | | <div class="layui-col-xs12 layui-col-lg4 layui-col-lg-offset4" id="login-div"> |
| | | <div class="layui-form" lay-filter="login-form"> |
New file |
| | |
| | | <div class="layui-fluid layui-anim febs-anim" id="febs-user" lay-title="充币审核管理">
|
| | | <div class="layui-row febs-container">
|
| | | <div class="layui-col-md12">
|
| | | <div class="layui-card">
|
| | | <div class="layui-card-body febs-table-full">
|
| | | <form class="layui-form layui-table-form" lay-filter="user-table-form">
|
| | | <div class="layui-row">
|
| | | <div class="layui-col-md10">
|
| | | <div class="layui-form-item">
|
| | | <div class="layui-inline">
|
| | | <div class="layui-input-inline">
|
| | | <input type="text" placeholder="手机号/邮箱/邀请码" name="account" autocomplete="off" class="layui-input">
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area">
|
| | | <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain table-action" id="query">
|
| | | <i class="layui-icon"></i>
|
| | | </div>
|
| | | <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset">
|
| | | <i class="layui-icon"></i>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | </form>
|
| | | <table lay-filter="userTable" lay-data="{id: 'userTable'}"></table>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | <!-- 表格操作栏 end -->
|
| | | <script data-th-inline="none" type="text/javascript">
|
| | | // 引入组件并初始化
|
| | | layui.use(['dropdown', 'jquery', 'laydate', 'form', 'table', 'febs'], function () {
|
| | | var $ = layui.jquery,
|
| | | laydate = layui.laydate,
|
| | | febs = layui.febs,
|
| | | form = layui.form,
|
| | | table = layui.table,
|
| | | dropdown = layui.dropdown,
|
| | | $view = $('#febs-user'),
|
| | | $query = $view.find('#query'),
|
| | | $reset = $view.find('#reset'),
|
| | | $searchForm = $view.find('form'),
|
| | | sortObject = {field: 'createTime', type: null},
|
| | | tableIns;
|
| | |
|
| | | form.render();
|
| | |
|
| | | // 表格初始化
|
| | | initTable();
|
| | |
|
| | | // 查询按钮
|
| | | $query.on('click', function () {
|
| | | var params = $.extend(getQueryParams(), {field: sortObject.field, order: sortObject.type});
|
| | | tableIns.reload({where: params, page: {curr: 1}});
|
| | | });
|
| | |
|
| | | // 刷新按钮
|
| | | $reset.on('click', function () {
|
| | | $searchForm[0].reset();
|
| | | sortObject.type = 'null';
|
| | | tableIns.reload({where: getQueryParams(), page: {curr: 1}, initSort: sortObject});
|
| | | });
|
| | |
|
| | | function initTable() {
|
| | | tableIns = febs.table.init({
|
| | | elem: $view.find('table'),
|
| | | id: 'userTable',
|
| | | url: ctx + 'member/agentInfoList',
|
| | | totalRow: true,
|
| | | cols: [[
|
| | | {field: 'phone', title: '手机号码', minWidth: 120,align:'left',totalRowText: '合计'},
|
| | | {field: 'email', title: '邮箱', minWidth: 200,align:'left'},
|
| | | {field: 'inviteId', title: '邀请码UID', minWidth: 80,align:'center'},
|
| | | {field: 'returnRatio', title: '返佣比例', minWidth: 200,align:'center'},
|
| | | |
| | | {field: 'promotionNumber', title: '推广人数', minWidth: 200,align:'center'},
|
| | | {field: 'totalRecharge', title: '总充值', minWidth: 200,align:'center'},
|
| | | {field: 'totalWithdrawal', title: '总提现', minWidth: 200,align:'center'},
|
| | | {field: 'totalPerformance', title: '总业绩', minWidth: 200,align:'center'},
|
| | | |
| | | {field: 'levelId', title: '代理等级',
|
| | | templet: function (d) {
|
| | | return '<span style="color:green;">第'+d.levelId+'级</span>'
|
| | | }, minWidth: 200,align:'center'},
|
| | | {field: 'feeIsSelf', title: '手续费是否设置自己',
|
| | | templet: function (d) {
|
| | | if(d.feeIsSelf === 1){
|
| | | return '<span style="color:green;">是</span>'
|
| | | }else{
|
| | | return '<span style="color:red;">否</span>'
|
| | | }
|
| | | }, minWidth: 200,align:'center'},
|
| | | ]]
|
| | | });
|
| | | }
|
| | |
|
| | | // 获取查询参数
|
| | | function getQueryParams() {
|
| | | return {
|
| | | account: $searchForm.find('input[name="account"]').val().trim(),
|
| | | };
|
| | | }
|
| | | |
| | | })
|
| | | </script> |
| | |
| | | xmlns:shiro="http://www.pollix.at/thymeleaf/shiro"> |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <title>ExCoin 后台系统</title> |
| | | <title>Biue 后台系统</title> |
| | | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> |
| | | <meta name="renderer" content="webkit"> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |