1
This commit is contained in:
parent
cb97a10532
commit
d5842dafbf
449
web/pages/3rmodel.html
Normal file
449
web/pages/3rmodel.html
Normal file
@ -0,0 +1,449 @@
|
||||
<!-- 分析 -->
|
||||
<div class="analysis-zhanwei">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="analysis-navigation-bar-box">
|
||||
<div class="analysis-navigation-bar">
|
||||
<div class="analysis-navigation-bar-left">
|
||||
<span>3R模型</span><img src="./static/img/capytishi.png" title="分析某段时间内,某个事件或事件属性的整体趋势情况"/>
|
||||
<div class="analysis-navigation-bar-datetime">当前时区</div>
|
||||
</div>
|
||||
<div class="analysis-navigation-bar-right">
|
||||
<div class="analysis-navigation-bar-right-jisuan">
|
||||
<span>近似计算</span>
|
||||
<div class="layui-form" title="开启后,将近似计算触发用户数,人均次数,人均值和去重数,极大优化性能减少计算时间,结果偏差控制在千分之四内">
|
||||
<div class="layui-form-item modify-layui-form-item" style="margin-bottom: 0px !important;">
|
||||
<input type="checkbox" name="close" lay-skin="switch" lay-text="" class="sqsz">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="analysis-navigation-bar-right-img" title="最后更新时间:2021-04-29 14:44:39">
|
||||
<img src="./static/img/gengxin.png">
|
||||
</div>
|
||||
<div class="analysis-navigation-bar-right-img sqlquery" title="查看条件代码">
|
||||
<i class="iconfont" style="font-size: 18px; color: #67729d;"></i>
|
||||
</div>
|
||||
<div class="analysis-navigation-bar-right-img download-table" title="以页面格式下载全量数据">
|
||||
<img src="./static/img/xiazai.png">
|
||||
</div>
|
||||
<div class="analysis-navigation-bar-right-img analysis-navigation-bar-right-img-baobiao" title="报表">
|
||||
<img src="./static/img/baobiao2.png">
|
||||
</div>
|
||||
|
||||
<div class="analysis-navigation-bar-right-img analysis-fanhui" title="返回">
|
||||
<img src="./static/img/fanhui.png">
|
||||
<span>返回</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="analysis-bg">
|
||||
<!-- 左侧条件筛选区域 -->
|
||||
<div class="analysis-con-left">
|
||||
<!-- 伸缩按钮 -->
|
||||
<div class="analysis-con-left-shrink"></div>
|
||||
|
||||
<div class="root___2a4tb">
|
||||
|
||||
<div class="block___2n0We">
|
||||
<div class="analysis-con-left-title">3R</div>
|
||||
<div class="analysis-con-left-screen-box">
|
||||
<div class="analysis-zhibiao-list">
|
||||
<div class="analysis-zhibiao-list-type1 analysis-background" style="border: 0;">小r小于</div>
|
||||
<div class="analysis-overall-situation-input3">
|
||||
<input type="text" data-index="0">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="analysis-zhibiao-list" style="margin-top: 16px;">
|
||||
<div class="analysis-zhibiao-list-type1 analysis-background" style="border: 0;">中r小于</div>
|
||||
<div class="analysis-overall-situation-input3">
|
||||
<input type="text" data-index="1">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="block___2n0We">
|
||||
<div class="analysis-con-left-title">分析指标</div>
|
||||
<div class="analysis-con-left-screen-box">
|
||||
<div class="analysis-con-left-screen-list-box">
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="analysis-bottom-box">
|
||||
<div class="analysis-bottom-jia1">
|
||||
<span>+</span> 添加指标
|
||||
</div>
|
||||
<!-- <div class="analysis-bottom-jiagongshi">
|
||||
<span>
|
||||
<img src="./static/img/gongshi.png"/>
|
||||
</span> 添加公式
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="block___2n0We analysis-overall">
|
||||
<div class="analysis-con-left-title">全局筛选</div>
|
||||
|
||||
<div class="analysis-con-left-screen-box">
|
||||
|
||||
<div class="analysis-overall-situation-box">
|
||||
|
||||
<div class="analysis-overall-situation-left-box">
|
||||
<div class="analysis-overall-situation-left-xian"></div>
|
||||
<div class="analysis-overall-situation-left-guanxi">且</div>
|
||||
</div>
|
||||
|
||||
<div class="analysis-overall-situation-list-box">
|
||||
|
||||
<!-- <div class="analysis-overall-situation-list">
|
||||
<div class="analysis-overall-situation-attr">最后登录时间</div>
|
||||
<div class="analysis-overall-situation-fuhao">相对事件发生时刻</div>
|
||||
<div class="analysis-overall-situation-input"> <input type="text" placeholder="多个用,隔开"/> </div> -->
|
||||
<!-- <span class="analysis-overall-situation-section-box">
|
||||
在 <div> 区间 </div> <div> <input type="text" value="-1" /> </div> <span>到</span> <div> <input type="text" value="-1" /> </div>
|
||||
<div>天(相对)</div>
|
||||
<span>天</span>
|
||||
</span> -->
|
||||
<!-- <span class="analysis-overall-situation-time-box">
|
||||
<span class="layui-form">
|
||||
<input type="text" id="analysis-overall-situation-time1" placeholder=" - ">
|
||||
</span>
|
||||
</span> -->
|
||||
<!-- <p class="analysis-overall-situation-del"> <img src="./static/img/cha1.png"> </p>
|
||||
</div> -->
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="analysis-foot___P797w">
|
||||
<span class="analysis-overall-situation-add">
|
||||
<img src="./static/img/fenzu.png">
|
||||
添加条件
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="block___2n0We">
|
||||
<div class="analysis-con-left-title">
|
||||
<div>分组项</div>
|
||||
<!-- <div class="analysis-event-splitting"><img src="./static/img/chaifen.png"> 事件拆分</div> -->
|
||||
</div>
|
||||
|
||||
<div class="analysis-con-left-screen-box">
|
||||
|
||||
<div class="analysis-gpmain___3YGfw">
|
||||
|
||||
<!-- <div class="analysis-action-row">
|
||||
<div class="analysis-action-left">
|
||||
<div class="analysis-num bgcolor">1</div>
|
||||
<div class="analysis-ant-dropdown-trigger">
|
||||
<img src="./static/img/shaix2.png"/>
|
||||
<span>SDK类型</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="analysis-ta-property-range analysis-granularity"> <img src="./static/img/shezhi2.png"> </div>
|
||||
|
||||
<div class="analysis-ta-property-range analysis-section"> <img src="./static/img/shezhi2.png"> </div>
|
||||
<div class="analysis-action-right"> <img src="./static/img/cha1.png"/> </div>
|
||||
</div> -->
|
||||
|
||||
</div>
|
||||
|
||||
<div class="analysis-foot___P797w">
|
||||
<span class="analysis-footadd___2D4YB">
|
||||
<img src="./static/img/fenzu.png">
|
||||
添加分组项
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="analysis-but-box">
|
||||
<div class="analysis-savereport">保存报表</div>
|
||||
<div class="analysis-calculation">计 算</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<!-- 右边图表显示区域 -->
|
||||
<div class="analysis-con-right">
|
||||
<div class="analtsis-con-box">
|
||||
<div class="analtsis-con-right-box">
|
||||
<div class="analtsis-con-right-top-title">
|
||||
<!-- 玩法参与情况 -->
|
||||
</div>
|
||||
<div class="analtsis-condition-box">
|
||||
<div class="analtsis-time-box">
|
||||
<div class="analtsis-condition" > <input id="analtsis-condition-date" readonly="readonly"></input> </div>
|
||||
<div class="analtsis-condition analtsis-timeParticleSize">按天</div>
|
||||
</div>
|
||||
|
||||
<div class="analtsis-condition-right-box">
|
||||
<div class="analtsis-condition">指标</div>
|
||||
<div class="analtsis-condition">分组</div>
|
||||
<div class="analtsis-chart-switch-box">
|
||||
<div class="analtsis-chart-switch" title="趋势图"> <i class="iconfont" style="font-size: 18px; "></i> </div>
|
||||
<div class="analtsis-chart-switch select-chart" title="堆积图"> <i class="iconfont" style="font-size: 18px; "></i> </div>
|
||||
<!-- <div class="analtsis-chart-switch" title="累计图"> <i class="iconfont" style="font-size: 18px; "></i> </div> -->
|
||||
<div class="analtsis-chart-switch" title="分布图"> <i class="iconfont" style="font-size: 18px; "></i> </div>
|
||||
<!-- <div class="analtsis-chart-switch" title="饼状分布"> <i class="iconfont" style="font-size: 18px;"></i> </div> -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- 统计图 -->
|
||||
<div class="analysis-echarts" id="analysis-echarts"></div>
|
||||
|
||||
<div class="table-div-box">
|
||||
<table class="table-fenxi-box">
|
||||
<thead>
|
||||
<tr class="table-fenxi-th">
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-fenxi-td">
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script id="table-fenxi-th-dot" type="text/html">
|
||||
{{# layui.each(d, function(index, item){ }}
|
||||
<th>{{item}}</th>
|
||||
{{# }); }}
|
||||
</script>
|
||||
|
||||
<script id="table-fenxi-td-dot" type="text/html">
|
||||
{{# layui.each(d, function(index, item){ }}
|
||||
<tr>
|
||||
{{# layui.each(d[index], function(indexs, items){ }}
|
||||
<td>{{items}}</td>
|
||||
{{# }); }}
|
||||
</tr>
|
||||
{{# }); }}
|
||||
</script>
|
||||
|
||||
|
||||
<script id="analysis-con-left-screen-list-dot" type="text/html">
|
||||
{{# layui.each(d, function(index, item){ }}
|
||||
|
||||
<div class="analysis-con-left-screen-list">
|
||||
<!-- 指标选择 -->
|
||||
{{# if(item.customEvent != "" && item.customEvent != undefined){ }}
|
||||
<div class="analysis-con-left-screen-list-left-box" id="analysis-con-left-screen-list-left-box-{{index}}" style="display: none;">
|
||||
{{# } else { }}
|
||||
<div class="analysis-con-left-screen-list-left-box" id="analysis-con-left-screen-list-left-box-{{index}}">
|
||||
{{# } }}
|
||||
|
||||
{{# if(item.eventNameDisplay != "" && item.eventNameDisplay != undefined){ }}
|
||||
<div class="analysis-con-left-screen-list-left-zhibiaoname" id="analysis-con-left-screen-list-left-zhibiaoname-{{index}}" style="display: block;">
|
||||
<input type="text" placeholder="请输入指标名" value="{{item.eventNameDisplay}}" class="analysis-con-left-screen-list-left-zhibiaoname-txt" data-index="{{index}}"/>
|
||||
</div>
|
||||
{{# } else { }}
|
||||
<div class="analysis-con-left-screen-list-left-zhibiaoname" id="analysis-con-left-screen-list-left-zhibiaoname-{{index}}">
|
||||
<input type="text" placeholder="请输入指标名" class="analysis-con-left-screen-list-left-zhibiaoname-txt" data-index="{{index}}"/>
|
||||
</div>
|
||||
{{# } }}
|
||||
<div class="analysis-con-left-screen-list-left">
|
||||
<div class="analysis-num">{{index}}</div>
|
||||
<div class="analysis-zhibiao-list">
|
||||
<div class="ant-dropdown-trigger analysis-zhibiao-list-type1 analysis-background" data-index="{{index}}"> {{item.event_desc}} </div>
|
||||
<span style="margin-left: 6px;">的</span>
|
||||
<div id="analysis-zhibiao-list-type2-{{index}}" class="analysis-zhibiao-list-type2 analysis-background" data-index="{{index}}">{{item.event_attr}}</div>
|
||||
{{# if(item.event_attr_id != "*"){ }}
|
||||
<div id="analysis-zhibiao-list-type3-{{index}}" class="analysis-zhibiao-list-type3 analysis-background analysis-zhibiao-condition" data-index="{{index}}" data-type="{{item.event_attr_type}}">{{item.analysisname}}</div>
|
||||
{{# } else { }}
|
||||
<!-- <div id="analysis-zhibiao-list-type3-{{index}}" class="analysis-zhibiao-list-type3 analysis-background analysis-zhibiao-condition" data-index="{{index}}"></div> -->
|
||||
{{# } }}
|
||||
</div>
|
||||
</div>
|
||||
{{# if(item.filts.length > 0){ }}
|
||||
<div class="analysis-con-left-screen-list-right-screen-bg" id="analysis-con-left-screen-list-right-screen-bg-{{index}}">
|
||||
<div class="analysis-con-left-screen-list-right-screen-box">
|
||||
<div class="analysis-con-left-screen-list-right-screen-qh">
|
||||
<div class="analysis-con-left-screen-list-right-screen-qh-xian"></div>
|
||||
{{# if(item.filts.length > 1){ }}
|
||||
{{# if(item.condrelation === "and"){ }}
|
||||
<div class="analysis-con-left-screen-list-right-screen-qh-tit" data-index="{{index}}">且</div>
|
||||
{{# } else { }}
|
||||
<div class="analysis-con-left-screen-list-right-screen-qh-tit" data-index="{{index}}">或</div>
|
||||
{{# } }}
|
||||
{{# } }}
|
||||
</div>
|
||||
<div style="padding-bottom: 10px;" class="analysis-zhibiao-list2-box">
|
||||
{{# layui.each(item.filts, function(indexs, items){ }}
|
||||
<div class="analysis-zhibiao-list analysis-zhibiao-list-mar" id="analysis-zhibiao-list-mar-{{index}}-{{indexs}}">
|
||||
<div id="ta-property-select-{{index}}-{{indexs}}" class="ta-property-select analysis-zhibiao-list-type1 analysis-background" data-index="{{index}}" data-indexs="{{indexs}}"> {{items.columnDesc}}</div>
|
||||
<div class="analysis-zhibiao-list-type3 analysis-background analysis-choicetypename" data-index="{{index}}" data-indexs="{{indexs}}" data-type="{{items.data_type}}">{{items.comparator_name}}</div>
|
||||
<!-- {{# if(item.comparator_id != "is null" && item.comparator_id != "is not null" && item.comparator_id !="not null" && item.comparator_id != "range"){ }} -->
|
||||
<div class="analysis-zhibiao-list-type4" id="analysis-zhibiao-list-type4-{{index}}-{{indexs}}"> <input type="text" data-index="{{index}}" data-indexs="{{indexs}}" placeholder="多个条件用,隔开" value="{{items.strftv}}"> </div>
|
||||
<!-- {{# } }} -->
|
||||
<div class="analysis-zhibiao-list-del" data-index="{{index}}" data-twonum="{{indexs}}"></div>
|
||||
</div>
|
||||
{{# }); }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="analysis-zhibiao-updata-list-box">
|
||||
<span class="analysis-zhibiao-updata" data-index={{index}}> <img src="./static/img/shaix.png" /> 添加条件 </span>
|
||||
</div>
|
||||
</div>
|
||||
{{# } }}
|
||||
</div>
|
||||
<!-- 公式 -->
|
||||
{{# if(item.customEvent != "" && item.customEvent != undefined){ }}
|
||||
<div class="analysis-custom-box" id="analysis-custom-box-{{index}}" style="display: block;">
|
||||
{{# } else { }}
|
||||
<div class="analysis-custom-box" id="analysis-custom-box-{{index}}">
|
||||
{{# } }}
|
||||
<div class="analysis-custom-top">
|
||||
<div class="analysis-num">{{index}}</div>
|
||||
<div class="analysis-con-left-screen-list-left-zhibiaoname2"> <input data-index="{{index}}" type="text" value="{{item.eventNameDisplay}}" placeholder="请出入指标名"/></div>
|
||||
</div>
|
||||
|
||||
<div class="analysis-custom-event-box">
|
||||
<input class="analysis-custom-event-txt" data-index="{{index}}" type="text" value="{{item.customEvent}}" placeholder="直接输入运算符或点击选择事件"/>
|
||||
</div>
|
||||
<div class="analysis-custom-event-dis-box" id="analysis-custom-event-dis-box-{{index}}">
|
||||
<div class="analysis-custom-event-box analysis-custom-event-box-display">
|
||||
<div class="analysis-custom-event-type">用户登录</div>
|
||||
<div class="analysis-custom-event-img"></div>
|
||||
<div class="">.</div>
|
||||
<div class="analysis-custom-event-type">触发用户数</div>
|
||||
</div>
|
||||
</div>
|
||||
{{# if(item.filts.length > 0){ }}
|
||||
<div class="analysis-con-left-screen-list-right-screen-bg">
|
||||
<div class="analysis-con-left-screen-list-right-screen-box">
|
||||
<div class="analysis-con-left-screen-list-right-screen-qh">
|
||||
<div class="analysis-con-left-screen-list-right-screen-qh-xian"></div>
|
||||
{{# if(item.filts.length > 1){ }}
|
||||
{{# if(item.condrelation === "and"){ }}
|
||||
<div class="analysis-con-left-screen-list-right-screen-qh-tit" data-index="{{index}}">且</div>
|
||||
{{# } else { }}
|
||||
<div class="analysis-con-left-screen-list-right-screen-qh-tit" data-index="{{index}}">或</div>
|
||||
{{# } }}
|
||||
{{# } }}
|
||||
</div>
|
||||
<div style="padding-bottom: 10px;" class="analysis-zhibiao-list2-box">
|
||||
{{# layui.each(item.filts, function(indexs, items){ }}
|
||||
<div class="analysis-zhibiao-list analysis-zhibiao-list-mar" id="analysis-zhibiao-list-mar-{{index}}-{{indexs}}">
|
||||
<div id="ta-property-select-{{index}}-{{indexs}}" class="ta-property-select analysis-zhibiao-list-type1 analysis-background" data-index="{{index}}" data-indexs="{{indexs}}"> {{items.columnDesc}}</div>
|
||||
<div class="analysis-zhibiao-list-type3 analysis-background analysis-choicetypename" data-index="{{index}}" data-indexs="{{indexs}}">{{items.comparator_name}}</div>
|
||||
<!-- {{# if(item.comparator_id != "is null" && item.comparator_id != "is not null" && item.comparator_id !="not null" && item.comparator_id != "range"){ }} -->
|
||||
<div class="analysis-zhibiao-list-type4" id="analysis-zhibiao-list-type4-{{index}}-{{indexs}}"> <input type="text" data-index="{{index}}" data-indexs="{{indexs}}" placeholder="多个条件用,隔开" value="{{items.strftv}}"> </div>
|
||||
<!-- {{# } }} -->
|
||||
<div class="analysis-zhibiao-list-del" data-index="{{index}}" data-twonum="{{indexs}}"></div>
|
||||
</div>
|
||||
{{# }); }}
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="analysis-zhibiao-updata-list-box">
|
||||
<span class="analysis-zhibiao-updata" data-index={{index}}> <img src="./static/img/shaix.png" /> 添加条件 </span>
|
||||
</div> -->
|
||||
</div>
|
||||
{{# } }}
|
||||
|
||||
{{# if(item.formatname == undefined){ }}
|
||||
<div class="ant-select-selector" data-index="{{index}}">两位小数</div>
|
||||
{{# } else { }}
|
||||
<div class="ant-select-selector" data-index="{{index}}">{{item.formatname}}</div>
|
||||
{{# } }}
|
||||
|
||||
</div>
|
||||
<!-- 操作按钮 -->
|
||||
<div class="analysis-con-left-screen-list-right-box">
|
||||
<div class="analysis-con-left-screen-list-right" id="analysis-con-left-screen-list-right-{{index}}">
|
||||
<div class="analysis-chongmingming" data-index="{{index}}" title="重命名指标"></div>
|
||||
<div class="analysis-chongmingming-del" data-index="{{index}}" title="取消重命名"></div>
|
||||
<div class="analysis-shaix analysis-shaix-jinting" data-index="{{index}}" title="指标筛选"></div>
|
||||
<div class="analysis-gongshi analysis-zuhe" data-index="{{index}}" data-type="combination" title="组合"></div>
|
||||
<div class="analysis-gongshi" data-index="{{index}}" data-type="formula" title="切换为指标公式"></div>
|
||||
<div class="analysis-zhibiao" data-index="{{index}}" title="切换为指标选择"></div>
|
||||
<div class="analysis-jia1" data-index="{{index}}" title="添加指标"></div>
|
||||
<div class="analysis-fuzhi" title="复制指标" data-index="{{index}}"></div>
|
||||
<div class="analysis-del" data-index="{{index}}" title="删除指标"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{# }); }}
|
||||
</script>
|
||||
|
||||
<script id="analysis-gpmain___3YGfw-dot" type="text/html">
|
||||
{{# layui.each(d, function(index, item){ }}
|
||||
<div class="analysis-action-row">
|
||||
<div class="analysis-action-left">
|
||||
<div class="analysis-num bgcolor">{{index}}</div>
|
||||
<div class="analysis-ant-dropdown-trigger" data-index="{{index}}">
|
||||
<!-- <img src="./static/img/shaix2.png"/> -->
|
||||
<span>{{item.columnDesc}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="analysis-ta-property-range analysis-granularity" data-index="{{index}}" data-type="{{item.data_type}}"> <img src="./static/img/shezhi2.png"> </div> -->
|
||||
<!-- {{# if(item.data_type === "int"){ }}
|
||||
<div class="analysis-ta-property-range analysis-section"> <img src="./static/img/shezhi2.png"> </div>
|
||||
{{# } }} -->
|
||||
|
||||
{{# if(item.data_type === "datetime"){ }}
|
||||
<div class="analysis-ta-property-range analysis-granularity" data-index="{{index}}" data-type="{{item.data_type}}"> <img src="./static/img/shezhi2.png"> </div>
|
||||
{{# } }}
|
||||
{{# if(item.data_type === "array"){ }}
|
||||
<div class="analysis-ta-property-range analysis-granularity" data-index="{{index}}" data-type="{{item.data_type}}"> <img src="./static/img/shezhi2.png"> </div>
|
||||
{{# } }}
|
||||
<div class="analysis-action-right" data-index="{{index}}"> <img src="./static/img/cha1.png"/> </div>
|
||||
</div>
|
||||
{{# }); }}
|
||||
|
||||
</script>
|
||||
|
||||
<script id="analysis-overall-situation-list-box-dot" type="text/html">
|
||||
{{# layui.each(d, function(index, item){ }}
|
||||
<div class="analysis-overall-situation-list">
|
||||
<div class="analysis-overall-situation-attr" data-index="{{index}}">{{item.columnDesc}}</div>
|
||||
<div class="analysis-overall-situation-fuhao" id="analysis-overall-situation-fuhao-{{index}}" data-index="{{index}}" data-type="{{item.data_type}}" >{{item.comparator_name}}</div>
|
||||
{{# if(item.comparator_id != "is null" && item.comparator_id != "is not null" && item.comparator_id !="not null" && item.comparator_id != "range"){ }}
|
||||
<!-- <div class="analysis-overall-situation-input" > <input type="text" data-index="{{index}}" placeholder="多个用,隔开" value="{{item.strftv}}" /> </div> -->
|
||||
{{# if(item.data_type != "datetime"){ }}
|
||||
<div class="analysis-overall-situation-input" data-type="{{item.data_type}}">
|
||||
<input type="text" data-index="{{index}}" placeholder="多个用,隔开" value="{{item.strftv}}" data-type="{{item.data_type}}"/>
|
||||
</div>
|
||||
{{# } else { }}
|
||||
<div class="analysis-overall-situation-date" id="analysis-overall-situation-date{{index}}" data-type="{{item.data_type}}" data-index="{{index}}">
|
||||
{{item.ftv}}
|
||||
</div>
|
||||
{{# } }}
|
||||
{{# } }}
|
||||
|
||||
{{# if(item.comparator_id === "range"){ }}
|
||||
<div class="analysis-overall-situation-input2" > <input data-index="{{index}}" type="text" value="{{item.section[0]}}" name="start"/> <span>与</span> <input data-index="{{index}}" name="end" type="text" value="{{item.section[1]}}"/> <span>之间</span> </div>
|
||||
{{# } }}
|
||||
<p class="analysis-overall-situation-del" data-index="{{index}}"> <img src="./static/img/cha1.png"> </p>
|
||||
</div>
|
||||
{{# }); }}
|
||||
</script>
|
||||
|
||||
|
||||
|
@ -277,7 +277,11 @@
|
||||
<div id="ta-property-select-{{index}}-{{indexs}}" class="ta-property-select analysis-zhibiao-list-type1 analysis-background" data-index="{{index}}" data-indexs="{{indexs}}"> {{items.columnDesc}}</div>
|
||||
<div class="analysis-zhibiao-list-type3 analysis-background analysis-choicetypename" data-index="{{index}}" data-indexs="{{indexs}}" data-type="{{items.data_type}}">{{items.comparator_name}}</div>
|
||||
<!-- {{# if(item.comparator_id != "is null" && item.comparator_id != "is not null" && item.comparator_id !="not null" && item.comparator_id != "range"){ }} -->
|
||||
<div class="analysis-zhibiao-list-type4" id="analysis-zhibiao-list-type4-{{index}}-{{indexs}}"> <input type="text" data-index="{{index}}" data-indexs="{{indexs}}" placeholder="多个条件用,隔开" value="{{items.strftv}}"> </div>
|
||||
{{# if(items.tableType != "user_label"){ }}
|
||||
<div class="analysis-zhibiao-list-type4" id="analysis-zhibiao-list-type4-{{index}}-{{indexs}}">
|
||||
<input type="text" data-index="{{index}}" data-indexs="{{indexs}}" placeholder="多个条件用,隔开" value="{{items.strftv}}">
|
||||
</div>
|
||||
{{# } }}
|
||||
<!-- {{# } }} -->
|
||||
<div class="analysis-zhibiao-list-del" data-index="{{index}}" data-twonum="{{indexs}}"></div>
|
||||
</div>
|
||||
@ -404,10 +408,12 @@
|
||||
<div class="analysis-overall-situation-fuhao" id="analysis-overall-situation-fuhao-{{index}}" data-index="{{index}}" data-type="{{item.data_type}}" >{{item.comparator_name}}</div>
|
||||
{{# if(item.comparator_id != "is null" && item.comparator_id != "is not null" && item.comparator_id !="not null" && item.comparator_id != "range"){ }}
|
||||
<!-- <div class="analysis-overall-situation-input" > <input type="text" data-index="{{index}}" placeholder="多个用,隔开" value="{{item.strftv}}" /> </div> -->
|
||||
{{# if(item.data_type != "datetime"){ }}
|
||||
{{# if(item.data_type != "datetime" && item.data_type != "user_label"){ }}
|
||||
<div class="analysis-overall-situation-input" data-type="{{item.data_type}}">
|
||||
<input type="text" data-index="{{index}}" placeholder="多个用,隔开" value="{{item.strftv}}" data-type="{{item.data_type}}"/>
|
||||
</div>
|
||||
{{# } else if(item.data_type == "user_label"){ }}
|
||||
|
||||
{{# } else { }}
|
||||
<div class="analysis-overall-situation-date" id="analysis-overall-situation-date{{index}}" data-type="{{item.data_type}}" data-index="{{index}}">
|
||||
{{item.ftv}}
|
||||
|
@ -30,6 +30,7 @@
|
||||
<dd><a class="ajax-content" href="analysis" data-id="conetnt">事件分析</a></dd>
|
||||
<dd><a class="ajax-content" href="retained" data-id="conetnt">留存分析</a></dd>
|
||||
<dd><a class="ajax-content" href="ltvmodel" data-id="conetnt">LTV模型</a></dd>
|
||||
<!-- <dd><a class="ajax-content" href="3rmodel" data-id="conetnt">3R模型</a></dd> -->
|
||||
<dd><a class="ajax-content" href="funnelanalysis" data-id="conetnt">漏斗分析</a></dd>
|
||||
<dd><a class="ajax-content" href="distribution" data-id="conetnt">分布分析</a></dd>
|
||||
<dd><a class="ajax-content" href="routeanalysis" data-id="conetnt">路径分析</a></dd>
|
||||
@ -41,7 +42,7 @@
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a class="ajax-content" href="attribute" data-id="conetnt">属性分析</a></dd>
|
||||
<dd><a class="ajax-content" href="usergroup" data-id="conetnt">用户分群</a></dd>
|
||||
<dd><a href="javascript:void(0);">用户标签</a></dd>
|
||||
<dd><a class="ajax-content" href="userlabel" data-id="conetnt">用户标签</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li class="layui-nav-item">
|
||||
|
@ -32,8 +32,8 @@
|
||||
<div class="analysis-zhibiao-list analysis-zhibiao-list-mar" id="analysis-zhibiao-list-mar-{{indexs}}">
|
||||
<div id="ta-property-select-{{indexs}}" class="ta-property-select analysis-zhibiao-list-type1 analysis-background" data-index="0" data-indexs="{{indexs}}"> {{items.columnDesc}}</div>
|
||||
<div class="analysis-zhibiao-list-type3 analysis-background analysis-choicetypename" data-index="0" data-indexs="{{indexs}}">{{items.comparatorName}}</div>
|
||||
{{# if(items.comparator != "is null" && items.comparator != "is not null" && items.comparator !="not null" && items.comparator != "range"){ }}
|
||||
<div class="analysis-zhibiao-list-type4" >
|
||||
{{# if(items.comparator != "is null" && items.comparator != "is not null" && items.comparator !="not null" && items.comparator != "range" && items.data_type != "user_label"){ }}
|
||||
<div class="analysis-zhibiao-list-type4" data-type="{{items.data_type}}" >
|
||||
<input type="text" id="analysis-zhibiao-list-type4-{{indexs}}" data-index="0" data-indexs="{{indexs}}" placeholder="多个条件用,隔开" value="{{items.strftv}}">
|
||||
</div>
|
||||
{{# } }}
|
||||
|
@ -5,10 +5,12 @@
|
||||
<div class="analysis-overall-situation-attr" data-index="{{index}}">{{item.columnDesc}}</div>
|
||||
<div class="analysis-overall-situation-fuhao" data-index="{{index}}" data-type="{{item.data_type}}" >{{item.comparator_name}}</div>
|
||||
{{# if(item.comparator != "is null" && item.comparator != "is not null" && item.comparator !="not null" && item.comparator != "range"){ }}
|
||||
{{# if(item.data_type != "datetime"){ }}
|
||||
{{# if(item.data_type != "datetime" && item.data_type != "user_label"){ }}
|
||||
<div class="analysis-overall-situation-input" data-type="{{item.data_type}}">
|
||||
<input type="text" data-index="{{index}}" placeholder="多个用,隔开" value="{{item.strftv}}" data-type="{{item.data_type}}"/>
|
||||
</div>
|
||||
{{# } else if(item.data_type == "user_label"){ }}
|
||||
|
||||
{{# } else { }}
|
||||
<div class="analysis-overall-situation-date" id="analysis-overall-situation-date{{index}}" data-type="{{item.data_type}}" data-index="{{index}}">
|
||||
{{item.ftv}}
|
||||
|
@ -13,17 +13,17 @@
|
||||
|
||||
<div class="small-proportion">
|
||||
{{# if(d.wowtype != ''){ }}
|
||||
{{# if(d.wowtype == '-'){ }}
|
||||
<div class="proportion-data">较环比 <div class="sanjiao"></div><span>{{d.wow}}%</span></div>
|
||||
{{# if(d.wowtype == '+'){ }}
|
||||
<div class="proportion-data" title="对比前一天">较环比 <div class="sanjiao"></div><span>{{d.wow}}%</span></div>
|
||||
{{# } else { }}
|
||||
<div class="proportion-data">较环比 <div class="sanjiao fu"></div><span class="funum">{{d.wow}}%</span></div>
|
||||
<div class="proportion-data" title="对比前一天">较环比 <div class="sanjiao fu"></div><span class="funum">{{d.wow}}%</span></div>
|
||||
{{# } }}
|
||||
{{# } }}
|
||||
{{# if(d.chain_ratiotype != ''){ }}
|
||||
{{# if(d.chain_ratiotype == "+"){ }}
|
||||
<div class="proportion-data">较同比 <div class="sanjiao"></div><span>{{d.chain_ratio}}%</span></div>
|
||||
<div class="proportion-data" title="对比前七天">较同比 <div class="sanjiao"></div><span>{{d.chain_ratio}}%</span></div>
|
||||
{{# } else { }}
|
||||
<div class="proportion-data">较同比 <div class="sanjiao fu"></div><span class="funum">{{d.chain_ratio}}%</span></div>
|
||||
<div class="proportion-data" title="对比前七天">较同比 <div class="sanjiao fu"></div><span class="funum">{{d.chain_ratio}}%</span></div>
|
||||
{{# } }}
|
||||
{{# } }}
|
||||
</div>
|
||||
@ -107,7 +107,7 @@
|
||||
{{# } }}
|
||||
<div class="proportion">
|
||||
{{# if(d.wowtype != ''){ }}
|
||||
{{# if(d.wowtype == '-'){ }}
|
||||
{{# if(d.wowtype == '+'){ }}
|
||||
<div class="proportion-data">较环比 <div class="sanjiao"></div><span>{{d.wow}}%</span></div>
|
||||
{{# } else { }}
|
||||
<div class="proportion-data">较环比 <div class="sanjiao fu"></div><span class="funum">{{d.wow}}%</span></div>
|
||||
|
@ -30,7 +30,9 @@
|
||||
<div class="analysis-zhibiao-list analysis-zhibiao-list-mar" id="analysis-zhibiao-list-mar-{{indexs}}">
|
||||
<div id="ta-property-select-{{indexs}}" class="ta-property-select analysis-zhibiao-list-type1 analysis-background" data-index="1" data-indexs="{{indexs}}"> {{items.columnDesc}}</div>
|
||||
<div class="analysis-zhibiao-list-type3 analysis-background analysis-choicetypename" data-index="1" data-indexs="{{indexs}}">{{items.comparatorName}}</div>
|
||||
{{# if(items.comparator != "is null" && items.comparator != "is not null" && items.comparator !="not null" && items.comparator != "range" && items.data_type != "user_label"){ }}
|
||||
<div class="analysis-zhibiao-list-type4" id="analysis-zhibiao-list-type4-{{indexs}}"> <input type="text" data-index="1" data-indexs="{{indexs}}" placeholder="多个条件用,隔开" value="{{items.strftv}}"> </div>
|
||||
{{# } }}
|
||||
<div class="analysis-zhibiao-list-del analysis-zhibiao-list-del-return-event" data-twonum="{{indexs}}"></div>
|
||||
</div>
|
||||
{{# }); }}
|
||||
|
97
web/pages/userlabel.html
Normal file
97
web/pages/userlabel.html
Normal file
@ -0,0 +1,97 @@
|
||||
<div class="userlabel-box">
|
||||
<div class="userlabel-left-box">
|
||||
<div class="eventattradmin-top-box">
|
||||
<div class="eventattradmin-left___y490Q">用户标签 <i class="layui-icon" title="将有相似特征的用户组成用户标签,并按不同特征值汇总用户。方便在各种模型中使用用户标签进行细分分析"></i> </div>
|
||||
|
||||
<div class="eventattradmin-right___1TIt8">
|
||||
<div class="eventattradmin-search___23TMG">
|
||||
<i class="layui-icon"></i>
|
||||
<input type="text" placeholder="请输入搜索" />
|
||||
<img src="./static/img/cha1.png">
|
||||
</div>
|
||||
|
||||
<div class="eventattradmin-actions___141YT addlabeldata">
|
||||
<i class="layui-icon"></i>
|
||||
<span>新建标签</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="eventattradmin-table-box">
|
||||
<table class="layui-hide" id="userlabel-table" lay-filter="userlabeltest" ></table>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="userlabel-right-box">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<script id="userlabel-right-box-dot" type="text/html">
|
||||
<div class="userlabel-right">
|
||||
<div class="label-title-box">
|
||||
<div class="label-box-title">用户标签</div>
|
||||
<div class="lable-title-name">{{d.display_name}}</div>
|
||||
</div>
|
||||
<div class="label-info-box" style="border-bottom: 1px solid #e6e6e6;">
|
||||
<span> <i class="iconfont" style="font-size: 14px; position: relative; top: 2px;"></i> 标签详情</span>
|
||||
|
||||
<span><i class="iconfont" style="font-size: 14px; "></i></span>
|
||||
</div>
|
||||
<!-- <div class="label-info-box" style="border-bottom: 1px solid #e6e6e6;">
|
||||
<span> <i class="iconfont" style="font-size: 18px; ">;</i> 历史版本</span>
|
||||
<span><i class="iconfont" style="font-size: 18px; "></i></span>
|
||||
</div> -->
|
||||
<div class="label-info-box-ov">
|
||||
<div class="label-info-box-ov-title">自定义条件 <i class="layui-icon" title="筛选特定行为条件或用户属性的用户,并赋予标签值"></i></div>
|
||||
<div class="label-info-box-ov-del">
|
||||
{{d.remarks}}
|
||||
</div>
|
||||
<div class="label-info-box-con" style="padding-top: 8px;">
|
||||
<span>标签名</span>
|
||||
<span class="label-info-box-con-right">{{d.cluster_name}}</span>
|
||||
</div>
|
||||
<div style="border-bottom: 1px solid #e6e6e6;">
|
||||
<div class="label-info-box-con">
|
||||
<span>创建人</span>
|
||||
<span class="label-info-box-con-right">{{d.act_name}}</span>
|
||||
</div>
|
||||
<!-- <div class="label-info-box-con">
|
||||
<span>用户数</span>
|
||||
<span class="label-info-box-con-right">1526</span>
|
||||
</div> -->
|
||||
<!-- <div class="label-info-box-con" style="padding-bottom: 8px;">
|
||||
<span>数据更新时间</span>
|
||||
<span class="label-info-box-con-right">shafsdf</span>
|
||||
</div> -->
|
||||
</div>
|
||||
|
||||
<!-- <div class="labelval-box">
|
||||
<div class="labelval-title-box">标签值</div>
|
||||
<div class="labelval-list-box">
|
||||
|
||||
<div class="labelval-list">
|
||||
<div class="labelval-list-top">
|
||||
<span>小R</span>
|
||||
<span>1537</span>
|
||||
</div>
|
||||
<div class="labelval-list-slide-box">
|
||||
<div class="labelval-list-slide"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
</div>
|
||||
<div class="label-but-box">
|
||||
<div class="lable-dingyi" style="border-right: 1px solid #e6e6e6;"> <i class="iconfont" style="font-size: 14px; margin-right: 4px;"></i> 定义</div>
|
||||
<div class="lable-gengxin" style="border-right: 1px solid #e6e6e6;"> <i class="iconfont" style="font-size: 14px; margin-right: 4px;"></i> 更新</div>
|
||||
<div class="lable-del"> <i class="iconfont" style="font-size: 14px; margin-right: 4px;"></i> 删除</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</script>
|
221
web/pages/userlabel_dy.html
Normal file
221
web/pages/userlabel_dy.html
Normal file
@ -0,0 +1,221 @@
|
||||
<div class="userlabel-dy-box">
|
||||
<div class="userlabel-dy-head-box">
|
||||
<p> <span class="userlabel-dy-head-userlabel" style="">用户标签</span> / <span>编辑用户标签</span></p>
|
||||
</div>
|
||||
|
||||
<div class="userlabel-dy-content-box">
|
||||
<div class="userlabel-dy-content-box2">
|
||||
<div class="userlabel-dy-left-box">
|
||||
<div class="userlabel-dy-left-title">
|
||||
标签信息
|
||||
</div>
|
||||
<div class="userlabel-dy-left-item">
|
||||
<p>标签名</p>
|
||||
<input type="text" class="lablename"/>
|
||||
</div>
|
||||
<div class="userlabel-dy-left-item">
|
||||
<p>显示名</p>
|
||||
<input type="text" class="labledesc"/>
|
||||
</div>
|
||||
<div class="userlabel-dy-left-item">
|
||||
<p>备注(选填)</p>
|
||||
<textarea class="labeldes" >
|
||||
|
||||
</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="userlabel-dy-right-box">
|
||||
<div class="userlabel-dy-right-box-top">
|
||||
<div class="userlabel-dy-right-head-box">
|
||||
<div>自定义条件配置</div>
|
||||
<p>筛选特定行为条件或用户属性的用户,并赋予标签值;用户优先匹配至满足条件且顺序靠前的标签值中</p>
|
||||
</div>
|
||||
<!-- <div class="userlabel-dy-right-title-box">
|
||||
<div class="userlabel-dy-right-title-box2">
|
||||
<div class="userlabel-dy-right-title">xxxxx</div>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<!-- <div class="userlabel-dy-right-labelname-box">
|
||||
<div class="userlabel-dy-right-labelname-root">
|
||||
<div class="userlabel-dy-right-labelname-root-item">
|
||||
<div class="userlabel-dy-right-labelname-root-item-title">标签值名称</div>
|
||||
<div class="userlabel-dy-right-labelname-root-item-input">
|
||||
<input type="text">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="userlabel-dy-right-labelname-root-item" style="border-bottom: 1px dashed #f0f0f0;">
|
||||
<div class="userlabel-dy-right-labelname-root-item-title">标签值备注</div>
|
||||
<div class="userlabel-dy-right-labelname-root-item-input">
|
||||
<textarea ></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<div class="userlabel-dy-right-head-box">
|
||||
<div>标签值定义 <span class="choicelabel"> <i class="iconfont" style="font-size: 14px; margin-right: 4px;"></i> 添加标签值条件</span></div>
|
||||
</div>
|
||||
|
||||
<div class="userlabel-json-box">
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="userlabel-json-but-box">
|
||||
<div class="userlabel-dy-baocun">保存</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script id="userlabel-json-box-dot" type="text/html">
|
||||
|
||||
<div class="userlabel-json-relation-editor ">
|
||||
{{# if(d.filts.length != 0 && d.events.length != 0){ }}
|
||||
<div class="userlabel-json-relation-relation">
|
||||
<em class="userlabel-json-relation-relation-line"></em>
|
||||
<div class="userlabel-json-relation-relation-value">且</div>
|
||||
</div>
|
||||
{{# } }}
|
||||
|
||||
<div class="userlabel-json-relation-main">
|
||||
<div class="userlabel-json-relation-row">
|
||||
<div class="userlabel-json-relation-editor">
|
||||
{{# if(d.events.length > 1){ }}
|
||||
<div class="userlabel-json-relation-relation">
|
||||
<em class="userlabel-json-relation-relation-line"></em>
|
||||
<div class="userlabel-json-relation-relation-value">且</div>
|
||||
</div>
|
||||
{{# } }}
|
||||
<div class="userlabel-json-relation-main">
|
||||
{{# layui.each(d.events, function(index, item) { }}
|
||||
{{# if(item.is_touch == false){ }}
|
||||
<div class="userlabel-json-relation-row userlabel-json-eventRow">
|
||||
<div class="userlabel-json-action-row userlabel-json-event">
|
||||
<div class="userlabel-json-action-left">
|
||||
<div class="ta-editor-done-condition">
|
||||
<span class="ta-isDone" data-index="{{index}}">没做过</span>
|
||||
<div class="ant-dropdown-trigger ta-event-select my-event-data" data-index="{{index}}">
|
||||
<span class="ta-event-select-label">{{item.eventDesc}}</span>
|
||||
</div>
|
||||
<span class="ta-bold">,在</span>
|
||||
<span class="ant-dropdown-trigger ta-range-picker-label time-days-box" data-index="{{index}}">
|
||||
过去{{item.s_days}}天
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="userlabel-json-action-right">
|
||||
<div class="action-icon action-normal action-md action-action action-icon-shax">
|
||||
<i class="iconfont" style="font-size: 22px; margin-right: 4px;"></i>
|
||||
</div>
|
||||
<div class="action-icon action-normal action-md action-action action-icon-del action-icon-events-del" data-index="{{index}}">
|
||||
<i class="iconfont" style="font-size: 18px; margin-right: 4px;"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{# } else { }}
|
||||
<div class="userlabel-json-relation-row userlabel-json-eventRow">
|
||||
<div class="userlabel-json-action-row userlabel-json-event">
|
||||
<div class="userlabel-json-action-left">
|
||||
<div class="ta-editor-done-condition">
|
||||
<span class="ta-isDone" data-index="{{index}}">做过</span>
|
||||
<div class="ant-dropdown-trigger ta-event-select my-event-data" data-index="{{index}}">
|
||||
<span class="ta-event-select-label">{{item.eventDesc}}</span>
|
||||
</div>
|
||||
<span class="ta-bold">.</span>
|
||||
<div class="ant-dropdown-trigger ta-event-select load_prop_quotas_data" data-index="{{index}}">
|
||||
<span class="ta-event-select-label">{{item.prop_quota.quotaDesc}}</span>
|
||||
</div>
|
||||
{{# if(item.prop_quota.quota_type != null){ }}
|
||||
<div class="ant-dropdown-trigger ta-event-select analysis-data-box" data-index="{{index}}" data-type="{{item.prop_quota.quota_type}}">
|
||||
<span class="ta-event-select-label">{{item.prop_quota.analysisDesc}}</span>
|
||||
</div>
|
||||
{{# } }}
|
||||
<div class="ant-dropdown-trigger ta-event-select uce_calcu_symbol_box" data-index="{{index}}">
|
||||
<span class="ta-event-select-label">{{item.uce_calcu_symbolDesc}}</span>
|
||||
</div>
|
||||
<div class="ant-input-number tant-input-number lable-input-box">
|
||||
<input type="text" placeholder="多个用,隔开" data-index="{{index}}" value="{{item.num}}"/>
|
||||
</div>
|
||||
<span class="ta-bold">,在</span>
|
||||
<span class="ant-dropdown-trigger ta-range-picker-label time-days-box" data-index="{{index}}">
|
||||
过去{{item.s_days}}天
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="userlabel-json-action-right">
|
||||
<div class="action-icon action-normal action-md action-action action-icon-shax action-icon-events-shax" data-index="{{index}}">
|
||||
<i class="iconfont" style="font-size: 22px; margin-right: 4px;"></i>
|
||||
</div>
|
||||
<div class="action-icon action-normal action-md action-action action-icon-del action-icon-events-del" data-index="{{index}}">
|
||||
<i class="iconfont" style="font-size: 18px; margin-right: 4px;"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{# } }}
|
||||
{{# }); }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="userlabel-json-relation-row" style="margin-top: 8px;">
|
||||
<div class="userlabel-json-relation-editor">
|
||||
{{# if(d.filts.length > 1){ }}
|
||||
<div class="userlabel-json-relation-relation">
|
||||
<em class="userlabel-json-relation-relation-line"></em>
|
||||
<div class="userlabel-json-relation-relation-value">且</div>
|
||||
</div>
|
||||
{{# } }}
|
||||
<div class="userlabel-json-relation-main">
|
||||
<div class="userlabel-json-relation-row">
|
||||
<div class="ta-multa-filter-condition">
|
||||
{{# layui.each(d.filts, function(index, item) { }}
|
||||
<div class="userlabel-json-action-row">
|
||||
<div class="userlabel-json-action-left">
|
||||
<div class="ta-filter-condition">
|
||||
<span class="ta-property">用户属性</span>
|
||||
<div class="ant-dropdown-trigger ta-property-select">
|
||||
<span class="ta-property-select-label">账户ID</span>
|
||||
</div>
|
||||
<div class="ant-dropdown-trigger ta-property-select">
|
||||
<span class="ta-property-select-label">等于</span>
|
||||
</div>
|
||||
<div class="ta-equal-search taDragDisable">
|
||||
<input type="text"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="userlabel-json-action-right">
|
||||
<div class="action-icon action-normal action-md action-action action-icon-shax">
|
||||
<i class="iconfont" style="font-size: 22px; margin-right: 4px;"></i>
|
||||
</div>
|
||||
<div class="action-icon action-normal action-md action-action action-icon-del">
|
||||
<i class="iconfont" style="font-size: 18px; margin-right: 4px;"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{# }); }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</script>
|
||||
|
@ -35,7 +35,7 @@
|
||||
<div class="analysis-zhibiao-list analysis-zhibiao-list-mar" id="analysis-zhibiao-list-mar-{{indexs}}">
|
||||
<div id="ta-property-select-{{indexs}}" class="ta-property-select analysis-zhibiao-list-type1 analysis-background" data-index="0" data-indexs="{{indexs}}"> {{items.columnDesc}}</div>
|
||||
<div class="analysis-zhibiao-list-type3 analysis-background analysis-choicetypename" data-index="0" data-indexs="{{indexs}}" data-type="{{items.data_type}}">{{items.comparator_name}}</div>
|
||||
{{# if(items.comparator != "is null" && items.comparator != "is not null" && items.comparator !="not null" && items.comparator != "range"){ }}
|
||||
{{# if(items.comparator != "is null" && items.comparator != "is not null" && items.comparator !="not null" && items.comparator != "range" && items.data_type != "user_label"){ }}
|
||||
<div class="analysis-zhibiao-list-type4" id="analysis-zhibiao-list-type4-{{indexs}}"> <input type="text" data-index="0" data-indexs="{{indexs}}" placeholder="多个条件用,隔开" value="{{items.strftv}}"> </div>
|
||||
{{# } }}
|
||||
<div class="analysis-zhibiao-list-del analysis-zhibiao-list-del-initial-event" data-twonum="{{indexs}}"></div>
|
||||
|
1373
web/src/mmGrid.js
Normal file
1373
web/src/mmGrid.js
Normal file
File diff suppressed because it is too large
Load Diff
231
web/src/mmPaginator.js
Normal file
231
web/src/mmPaginator.js
Normal file
@ -0,0 +1,231 @@
|
||||
!function($){
|
||||
var MMPaginator = function(element, options){
|
||||
this.$el = $(element);
|
||||
this.opts = options;
|
||||
};
|
||||
|
||||
MMPaginator.prototype = {
|
||||
_initLayout: function(){
|
||||
var that = this;
|
||||
var $el = this.$el;
|
||||
var opts = this.opts;
|
||||
|
||||
$el.addClass("mmPaginator");
|
||||
var pgHtmls = [
|
||||
'<div class="totalCountLabel"></div>',
|
||||
'<ul class="pageList"></ul>',
|
||||
'<div class="limit"><select></select></div>'
|
||||
];
|
||||
$el.append($(pgHtmls.join('')));
|
||||
|
||||
this.$totalCountLabel = $el.find('.totalCountLabel');
|
||||
this.$pageList = $el.find('.pageList');
|
||||
this.$limitList = $el.find('.limit select');
|
||||
|
||||
var $limitList = this.$limitList
|
||||
$.each(opts.limitList, function(){
|
||||
var $option = $('<option></option>')
|
||||
.prop('value',this)
|
||||
.text(that.formatString(opts.limitLabel,[this]));
|
||||
$limitList.append($option);
|
||||
});
|
||||
|
||||
$limitList.on('change', function(){
|
||||
$el.data('page', 1);
|
||||
that.$mmGrid.load();
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
, _plain: function(page, totalCount, limit){
|
||||
var that = this;
|
||||
var $el = this.$el;
|
||||
var $pageList = this.$pageList;
|
||||
|
||||
var totalPage = totalCount % limit === 0 ? parseInt(totalCount/limit) : parseInt(totalCount/limit) + 1;
|
||||
totalPage = totalPage ? totalPage : 0;
|
||||
if(totalPage === 0){
|
||||
page = 1;
|
||||
}else if(page > totalPage){
|
||||
page = totalPage;
|
||||
}else if(page < 1 && totalPage != 0){
|
||||
page = 1;
|
||||
}
|
||||
//
|
||||
var $prev = $('<li class="prev"><a>«</a></li>');
|
||||
if(page<=1){
|
||||
$prev.addClass('disable');
|
||||
}else{
|
||||
$prev.find('a').on('click', function(){
|
||||
$el.data('page', page-1);
|
||||
that.$mmGrid.load();
|
||||
});
|
||||
}
|
||||
$pageList.append($prev);
|
||||
/////
|
||||
var list = [1];
|
||||
if(page > 4 ){
|
||||
list.push('...');
|
||||
}
|
||||
for(var i= 0; i < 5; i++){
|
||||
var no = page - 2 + i;
|
||||
if(no > 1 && no <= totalPage-1){
|
||||
list.push(no);
|
||||
}
|
||||
}
|
||||
if(page+1 < totalPage-1){
|
||||
list.push('...');
|
||||
}
|
||||
if(totalPage>1){
|
||||
list.push(totalPage);
|
||||
}
|
||||
$.each(list, function(index, item){
|
||||
var $li = $('<li><a></a></li>');
|
||||
if(item === '...'){
|
||||
$li.addClass('').html('...');
|
||||
}else if(item === page){
|
||||
$li.addClass('active').find('a').text(item);
|
||||
}else{
|
||||
$li.find('a').text(item).prop('title','第'+item+'页').on('click', function(e){
|
||||
$el.data('page', item);
|
||||
that.$mmGrid.load();
|
||||
});
|
||||
}
|
||||
$pageList.append($li);
|
||||
});
|
||||
//
|
||||
var $next = $('<li class="next"><a title="下一页">»</a></li>');
|
||||
if(page>=totalPage){
|
||||
$next.addClass('disable');
|
||||
}else{
|
||||
$next.find('a').on('click', function(){
|
||||
$el.data('page', page+1);
|
||||
that.$mmGrid.load();
|
||||
});
|
||||
}
|
||||
$pageList.append($next);
|
||||
}
|
||||
|
||||
, _search: function(page, totalCount, limit){
|
||||
|
||||
}
|
||||
|
||||
, load: function(params){
|
||||
var $el = this.$el;
|
||||
var $limitList = this.$limitList;
|
||||
var opts = this.opts;
|
||||
|
||||
if(!params){
|
||||
params = {};
|
||||
}
|
||||
|
||||
var page = params[opts.pageParamName];
|
||||
if(page === undefined || page === null){
|
||||
page = $el.data('page');
|
||||
}
|
||||
$el.data('page', page);
|
||||
|
||||
var totalCount = params[opts.totalCountName];
|
||||
if(totalCount === undefined){
|
||||
totalCount = 0;
|
||||
}
|
||||
$el.data('totalCount', totalCount);
|
||||
|
||||
var limit = params[opts.limitParamName];
|
||||
if(!limit){
|
||||
limit = $limitList.val();
|
||||
}
|
||||
this.$limitList.val(limit);
|
||||
|
||||
this.$totalCountLabel.html(this.formatString(opts.totalCountLabel,[totalCount]));
|
||||
this.$pageList.empty();
|
||||
|
||||
this._plain(page, totalCount, this.$limitList.val());
|
||||
}
|
||||
|
||||
, formatString: function(text, args){
|
||||
return text.replace(/{(\d+)}/g, function(match, number) {
|
||||
return typeof args[number] != 'undefined'
|
||||
? args[number]
|
||||
: match
|
||||
;
|
||||
});
|
||||
}
|
||||
|
||||
, params: function(){
|
||||
var opts = this.opts;
|
||||
var $el = this.$el;
|
||||
var $limitList = this.$limitList;
|
||||
|
||||
var params = {};
|
||||
params[opts.pageParamName] = $el.data('page');
|
||||
params[opts.limitParamName] = $limitList.val();
|
||||
return params;
|
||||
}
|
||||
|
||||
, init: function($grid){
|
||||
var that = this;
|
||||
var opts = that.opts;
|
||||
this.$mmGrid = $grid;
|
||||
this._initLayout();
|
||||
this.$mmGrid.on('loadSuccess', function(e, data){
|
||||
that.load(data);
|
||||
});
|
||||
|
||||
var params = {};
|
||||
params[opts.totalCountName] = 0;
|
||||
params[opts.pageParamName] = opts.page;
|
||||
params[opts.limitParamName] = opts.limit;
|
||||
this.load(params);
|
||||
|
||||
if($grid.opts.indexCol){
|
||||
var indexCol = $grid.opts.cols[0];
|
||||
indexCol.renderer = function(val,item,rowIndex){
|
||||
var params = that.params();
|
||||
return '<label class="mmg-index">' +
|
||||
(rowIndex + 1 + ((params[opts.pageParamName]-1) * params[opts.limitParamName])) +
|
||||
'</label>';
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
$.fn.mmPaginator = function(){
|
||||
|
||||
if(arguments.length === 0 || typeof arguments[0] === 'object'){
|
||||
var option = arguments[0]
|
||||
, data = this.data('mmPaginator')
|
||||
, options = $.extend(true, {}, $.fn.mmPaginator.defaults, option);
|
||||
if (!data) {
|
||||
data = new MMPaginator(this[0], options);
|
||||
this.data('mmPaginator', data);
|
||||
}
|
||||
return $.extend(true, this, data);
|
||||
}
|
||||
if(typeof arguments[0] === 'string'){
|
||||
var data = this.data('mmPaginator');
|
||||
var fn = data[arguments[0]];
|
||||
if(fn){
|
||||
var args = Array.prototype.slice.call(arguments);
|
||||
return fn.apply(data,args.slice(1));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
$.fn.mmPaginator.defaults = {
|
||||
style: 'plain'
|
||||
, totalCountName: 'totalCount'
|
||||
, page: 1
|
||||
, pageParamName: 'page'
|
||||
, limitParamName: 'limit'
|
||||
, limitLabel: '每页{0}条'
|
||||
, totalCountLabel: '共<span>{0}</span>条记录'
|
||||
, limit: undefined
|
||||
, limitList: [20, 30, 40, 50]
|
||||
};
|
||||
|
||||
$.fn.mmPaginator.Constructor = MMPaginator;
|
||||
|
||||
}(window.jQuery);
|
1549
web/src/x.min.js
vendored
1549
web/src/x.min.js
vendored
File diff suppressed because it is too large
Load Diff
@ -56,7 +56,14 @@ var X = window.X || {
|
||||
{'title':'有值','id':'4','default':false},
|
||||
{'title':'无值','id':'5','default':false},
|
||||
{'title':'区间','id':'6','default':false}
|
||||
]
|
||||
],
|
||||
condition2:[
|
||||
{'title':'等于','id':'==','default':false},
|
||||
{'title':'不等于','id':'!=','default':false},
|
||||
{'title':'小于','id':'<','default':true},
|
||||
{'title':'大于','id':'>','default':false},
|
||||
{'title':'区间','id':'range','default':false}
|
||||
],
|
||||
},
|
||||
//日期控件参数
|
||||
'locale': {
|
||||
@ -338,7 +345,7 @@ var X = window.X || {
|
||||
};
|
||||
|
||||
//渲染表格有分页有操作
|
||||
X.laytabledata = function(id,url,data,arr,height){
|
||||
X.laytabledata = function(id,url,data,arr,height,callback){
|
||||
var loginCache = X.loginCache();
|
||||
var token = (loginCache? loginCache.token:"");
|
||||
token = "Bearer "+token;
|
||||
@ -360,6 +367,9 @@ var X = window.X || {
|
||||
,cellMinWidth: 80 //全局定义常规单元格的最小宽度,layui 2.2.1 新增
|
||||
,cols: data
|
||||
,height: height
|
||||
,done: function (res, curr, count) {
|
||||
callback && callback(res, curr, count);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
@ -558,14 +568,14 @@ var X = window.X || {
|
||||
'locale': X.DATA.locale,
|
||||
ranges: {
|
||||
'今日': [moment(), moment()],
|
||||
'昨日': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
|
||||
'昨日': [moment, moment().subtract(1, 'days')],
|
||||
'最近7日': [moment().subtract(7, 'days'), moment().subtract(0, 'days')],
|
||||
'最近30日': [moment().subtract(30, 'days'), moment().subtract(0, 'days')],
|
||||
'上周': [moment().subtract(1, 'week').startOf('week')+86400000, moment().subtract(1, 'week').endOf('week')+86400000],
|
||||
'本周': [moment().startOf('week')+86400000, moment()+86400000],
|
||||
'本月': [moment().startOf('month'), moment()],
|
||||
'上月': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')
|
||||
]
|
||||
'上月': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],
|
||||
'全部时间': [moment().subtract( parseInt((new Date).getTime()/86400000) , 'days'), moment()]
|
||||
},
|
||||
"alwaysShowCalendars": true,
|
||||
"startDate": moment().subtract(7, 'days'),
|
||||
|
1153
web/srczip/logic/3rmodel.js
Normal file
1153
web/srczip/logic/3rmodel.js
Normal file
File diff suppressed because it is too large
Load Diff
@ -295,6 +295,7 @@
|
||||
var index = obj.attr("data-index");
|
||||
var indexs = obj.attr("data-indexs");
|
||||
X.querycriteriapop(defaultgroupdata,'category',offset.left,offset.top+obj.height(),function(val){
|
||||
console.log(val);
|
||||
var htmlstring = val.title;
|
||||
obj.html(htmlstring);
|
||||
// filtersymbols[index][indexs] = val.category;
|
||||
@ -302,6 +303,11 @@
|
||||
data['events'][index]['filts'][indexs]['columnName'] = val.id;
|
||||
data['events'][index]['filts'][indexs]['data_type'] = val.type;
|
||||
data['events'][index]['filts'][indexs]['tableType'] = val.table_type;
|
||||
if(val.type == 'user_label'){
|
||||
data['events'][index]['filts'][indexs]['comparator_name'] = "是";
|
||||
data['events'][index]['filts'][indexs]['comparator'] = 'in';
|
||||
}
|
||||
X.laytpldata("#analysis-con-left-screen-list-dot",data.events,".analysis-con-left-screen-list-box");
|
||||
})
|
||||
|
||||
});
|
||||
@ -715,6 +721,12 @@
|
||||
data['eventView']['filts'][index]['comparator'] = '==';
|
||||
data['eventView']['filts'][index]['tableType'] = val.table_type;
|
||||
filtsftvdata[index]=val.category;
|
||||
|
||||
if(val.type == 'user_label'){
|
||||
data['eventView']['filts'][index]['comparator_name'] = "是";
|
||||
data['eventView']['filts'][index]['comparator'] = 'in';
|
||||
}
|
||||
|
||||
X.laytpldata("#analysis-overall-situation-list-box-dot",data['eventView']['filts'],".analysis-overall-situation-list-box",function(){
|
||||
renderdate();
|
||||
});
|
||||
@ -1056,12 +1068,12 @@
|
||||
for(let j in d[i]['values']){
|
||||
var arr;
|
||||
arr = $.extend(true,[],d[i].values[j]);
|
||||
arr.unshift(d[i]['event_name'],d[i]['sum'][j]);
|
||||
arr.unshift(d[i]['event_name'],d[i]['groups'][j],d[i]['sum'][j]);
|
||||
condata.push(arr);
|
||||
}
|
||||
for(let j in condata){
|
||||
condata[j].splice(1,0,d[i]['groups'][j]);
|
||||
}
|
||||
// for(let j in condata){
|
||||
// condata[j].splice(1,0,d[i]['groups'][j]);
|
||||
// }
|
||||
|
||||
}else {
|
||||
titledata.unshift('指标','阶段总和');
|
||||
|
@ -833,6 +833,8 @@
|
||||
}
|
||||
//数据根据时间降序排列
|
||||
if(d['ascending']){
|
||||
// console.log()
|
||||
console.log(eventdata);
|
||||
var condatalength = eventdata[0]['condata'].length;
|
||||
var condataascend=[];
|
||||
for(var i = condatalength - 1; i >= 0; i--){
|
||||
|
@ -258,6 +258,10 @@
|
||||
data['events'][index]['filts'][indexs]['columnName'] = val.id;
|
||||
data['events'][index]['filts'][indexs]['data_type'] = val.type;
|
||||
data['events'][index]['filts'][indexs]['tableType'] = val.table_type;
|
||||
if(val.type == 'user_label'){
|
||||
data['events'][index]['filts'][indexs]['comparator_name'] = "是";
|
||||
data['events'][index]['filts'][indexs]['comparator'] = 'in';
|
||||
}
|
||||
X.template("userpar","userpar-event",data['events']);
|
||||
})
|
||||
});
|
||||
|
@ -135,6 +135,10 @@
|
||||
data['eventView']['filts'][index]['comparator_name'] = '等于';
|
||||
data['eventView']['filts'][index]['comparator'] = '==';
|
||||
data['eventView']['filts'][index]['table_type'] = val.table_type;
|
||||
if(val.type == 'user_label'){
|
||||
data['eventView']['filts'][index]['comparator_name'] = "是";
|
||||
data['eventView']['filts'][index]['comparator'] = 'in';
|
||||
}
|
||||
X.template("globalfilter","xinwei-whole",data['eventView']['filts'],function(){
|
||||
renderdate();
|
||||
});
|
||||
|
@ -12,14 +12,19 @@
|
||||
|
||||
// var oldcondata = data.condata;
|
||||
// var newcondata = [];
|
||||
// for(let i in oldcondata){
|
||||
// var condataArr = {};
|
||||
// for(let j in oldcondata[i]){
|
||||
// condataArr['name'+j] = oldcondata[i][j];
|
||||
// if(data.cat == 'event' || data.cat == "ltv"){
|
||||
// for(let i in oldcondata){
|
||||
// var condataArr = {};
|
||||
// for(let j in oldcondata[i]){
|
||||
// condataArr['name'+j] = oldcondata[i][j];
|
||||
// }
|
||||
// newcondata.push(condataArr);
|
||||
// }
|
||||
// newcondata.push(condataArr);
|
||||
// }
|
||||
// }else if(data.cat == "retention" || data.cat == "scatter"){
|
||||
// console.log(oldcondata);
|
||||
// }else if(data.cat == "user_property"){
|
||||
|
||||
// }
|
||||
// var headdata = [];
|
||||
// for(let i in data.titledata){
|
||||
// var arr = {
|
||||
|
@ -244,7 +244,15 @@
|
||||
data['events'][index]['filts'][indexs]['columnName'] = val.id;
|
||||
data['events'][index]['filts'][indexs]['data_type'] = val.type;
|
||||
data['events'][index]['filts'][indexs]['tableType'] = val.table_type;
|
||||
|
||||
if(val.type == 'user_label'){
|
||||
data['events'][index]['filts'][indexs]['comparatorName'] = "是";
|
||||
data['events'][index]['filts'][indexs]['comparator'] = 'in';
|
||||
}
|
||||
if(index == 0){
|
||||
X.template("event","initial-event",data['events'][0]);
|
||||
}else {
|
||||
X.template("returnvisitevent","returnvisit-event",data['events'][1]);
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
@ -331,6 +339,12 @@
|
||||
data['eventView']['filts'][index]['comparator'] = '==';
|
||||
data['eventView']['filts'][index]['tableType'] = val.table_type;
|
||||
filtsftvdata[index]=val.category;
|
||||
|
||||
if(val.type == 'user_label'){
|
||||
data['eventView']['filts'][index]['comparator_name'] = "是";
|
||||
data['eventView']['filts'][index]['comparator'] = 'in';
|
||||
}
|
||||
|
||||
X.template("globalfilter","xinwei-whole",data['eventView']['filts'],function(){
|
||||
renderdate();
|
||||
});
|
||||
|
68
web/srczip/logic/userlabel.js
Normal file
68
web/srczip/logic/userlabel.js
Normal file
@ -0,0 +1,68 @@
|
||||
(function(){
|
||||
X.pageLogic['userlabel'] = {
|
||||
init : function(parms){
|
||||
var me = this;
|
||||
me.userlabellist();
|
||||
$(document).off('click','.lable-dingyi').on('click','.lable-dingyi',function(){
|
||||
X.gourl('userlabel_dy','conetnt');
|
||||
});
|
||||
|
||||
$(document).off('click','.addlabeldata').on('click','.addlabeldata',function(){
|
||||
X.DATA.userlabelid = "";
|
||||
X.gourl('userlabel_dy','conetnt');
|
||||
});
|
||||
|
||||
$(document).off('click','.lable-del').on('click','.lable-del',function(){
|
||||
var _id = X.DATA.userlabelid;
|
||||
layer.confirm('确认删除选中的标签吗?该操作不可恢复', {
|
||||
btn: ['取消','删除 '] //按钮
|
||||
}, function(){
|
||||
//取消
|
||||
layer.close(layer.index);
|
||||
}, function(){
|
||||
//删除
|
||||
X.api("user_label/del",'post',{label_id: _id},function(d){
|
||||
layer.msg('删除成功');
|
||||
layer.close(layer.index);
|
||||
me.userlabellist();
|
||||
})
|
||||
});
|
||||
});
|
||||
|
||||
// X.api('user_label/read','post',{project_id: X.DATA.projectid},function(d){
|
||||
// console.log(d);
|
||||
// })
|
||||
|
||||
// 监听单行事件
|
||||
layui.table.on('row(userlabeltest)',function(obj){
|
||||
var data = obj.data
|
||||
console.log(data);
|
||||
X.DATA.userlabelid = data._id;
|
||||
X.laytpldata('#userlabel-right-box-dot',data,'.userlabel-right-box');
|
||||
});
|
||||
|
||||
|
||||
},
|
||||
userlabellist : function(){
|
||||
X.laytabledata("#userlabel-table","user_label/list",[[
|
||||
{field:'cluster_name', title: '标签名', sort: true}
|
||||
,{field:'display_name', title: '显示名'}
|
||||
,{field:'act_name', title: '最后操作人'}
|
||||
,{field:'cluster_type', title: '创建方式',templet:function(d){
|
||||
if(d.cluster_type == "user_custom"){
|
||||
return '自定义条件'
|
||||
}else{
|
||||
return '其他条件'
|
||||
}
|
||||
}}
|
||||
// ,{fixed: 'right', title:'操作', toolbar: '#eventattradminbarDemo', width:80}
|
||||
]],"&project_id="+X.DATA.projectid,'auto',function(res, curr, count){
|
||||
// console.log(res);
|
||||
if(res.data.length > 0){
|
||||
X.DATA.userlabelid = res.data[0]._id;
|
||||
X.laytpldata('#userlabel-right-box-dot',res.data[0],'.userlabel-right-box');
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
})();
|
240
web/srczip/logic/userlabel_dy.js
Normal file
240
web/srczip/logic/userlabel_dy.js
Normal file
@ -0,0 +1,240 @@
|
||||
(function(){
|
||||
X.pageLogic['userlabel_dy'] = {
|
||||
init : function(parms){
|
||||
var me = this;
|
||||
var _id = X.DATA.userlabelid;
|
||||
|
||||
var data;
|
||||
if(_id && _id != ""){
|
||||
X.api("user_label/detail","post",{label_id: _id},function(d){
|
||||
data = d;
|
||||
$(".lablename").val(d.cluster_name);
|
||||
$(".labledesc").val(d.display_name);
|
||||
$(".labeldes").val(d.remarks);
|
||||
updatalable();
|
||||
})
|
||||
}else {
|
||||
data = {
|
||||
"project_id": X.DATA.projectid,
|
||||
"cluster_name": "",
|
||||
"display_name": "",
|
||||
"cluster_type":'user_custom',
|
||||
"qp": {
|
||||
"tagRemark": "",
|
||||
"tagValue": "",
|
||||
"user_cluster_def": {
|
||||
'event_relation':'and',
|
||||
"event_user_relation":"and",
|
||||
"events": [
|
||||
|
||||
],
|
||||
"filts": [],
|
||||
"relation": "and"
|
||||
},
|
||||
},
|
||||
"remarks": ""
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
// 标签值定义
|
||||
var choicelabellist=[
|
||||
{'title':'做过(没做过事件)',id:'0'},
|
||||
{'title':'用户属性满足',id:'1'}
|
||||
];
|
||||
X.laydropdown('.choicelabel',choicelabellist,function(e){
|
||||
console.log(e);
|
||||
var arr = {};
|
||||
if(e.id == 0){
|
||||
arr= {
|
||||
endTime: "",
|
||||
eventDesc: dataArr[0]['category'][0].event_desc,
|
||||
event_name: dataArr[0]['category'][0].event_name,
|
||||
eventType: "event",
|
||||
filts: [],
|
||||
num: "",
|
||||
e_days:0,
|
||||
s_days:7,
|
||||
relation: "and",
|
||||
startTime: "",
|
||||
uce_calcu_symbol: "==",
|
||||
uce_calcu_symbolDesc: "等于",
|
||||
prop_quota: {analysis: '', analysisDesc: '', quota: retdata[0]['id'], quotaDesc: retdata[0]["title"],quota_type: null},
|
||||
is_touch: true,
|
||||
}
|
||||
data['qp']['user_cluster_def']['events'].push(arr);
|
||||
}else {
|
||||
arr = {
|
||||
calcuSymbol: "C01",
|
||||
columnDesc: "",
|
||||
columnName: "lv",
|
||||
columnType: "double",
|
||||
filterType: "SIMPLE",
|
||||
ftv: ["10"],
|
||||
selectType: "number",
|
||||
tableType: "1",
|
||||
timeRelative: "",
|
||||
timeUnit: ""
|
||||
}
|
||||
data['qp']['user_cluster_def']['filts'].push(arr);
|
||||
}
|
||||
|
||||
updatalable();
|
||||
});
|
||||
|
||||
$(document).off('click','.userlabel-dy-head-userlabel').on('click','.userlabel-dy-head-userlabel',function(){
|
||||
X.gourl('userlabel','conetnt');
|
||||
});
|
||||
|
||||
$(document).off("click",'.ta-isDone').on("click",'.ta-isDone',function(){
|
||||
var index = $(this).attr("data-index");
|
||||
data['qp']['user_cluster_def']['events'][index]['is_touch'] = !data['qp']['user_cluster_def']['events'][index]['is_touch'];
|
||||
updatalable();
|
||||
});
|
||||
|
||||
var dataArr = [],retdata = [],props=[],defaultgroupdata=[],filter_map=[],quotas_map=[];
|
||||
|
||||
X.api("data_auth/my_event","get",{},function(d){
|
||||
|
||||
dataArr = d;
|
||||
X.api("data_auth/load_prop_quotas","post",{event_name:dataArr[0]['category'][0]['event_name']},function(d){
|
||||
retdata = d.staid_quots.concat(d.props);
|
||||
props = d.props;
|
||||
|
||||
X.api("data_auth/load_filter_props","post",{event_name:dataArr[0]['category'][0]['event_name']},function(val){
|
||||
defaultgroupdata = val;
|
||||
|
||||
X.api("data_auth/filter_map","get",{},function(d){
|
||||
filter_map = d;
|
||||
|
||||
X.api('data_auth/quotas_map',"get",{},function(d){
|
||||
quotas_map = d;
|
||||
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
})
|
||||
})
|
||||
});
|
||||
|
||||
$(document).off("click",'.my-event-data').on('click','.my-event-data',function(){
|
||||
var obj = $(this);
|
||||
var offset = obj.offset();
|
||||
var index = obj.attr('data-index');
|
||||
X.querycriteriapop(dataArr,'setgrouping',offset.left,offset.top+obj.height(),function(val){
|
||||
console.log(val);
|
||||
data['qp']['user_cluster_def']['events'][index]['eventDesc'] = val.id;
|
||||
data['qp']['user_cluster_def']['events'][index]['event_name'] = val.name;
|
||||
updatalable();
|
||||
})
|
||||
});
|
||||
|
||||
var label_time_index; //点击修改日期的index;
|
||||
$(document).off('click','.time-days-box').on("click",'.time-days-box',function(){
|
||||
var index = $(this).attr("data-index");
|
||||
label_time_index = index;
|
||||
});
|
||||
|
||||
function updatalable(){
|
||||
X.laytpldata('#userlabel-json-box-dot',data['qp']['user_cluster_def'],'.userlabel-json-box');
|
||||
|
||||
X.daterender(".time-days-box",function(start, end, label){
|
||||
var startTime = start.format('YYYY-MM-DD')+ " "+ "00:00:00";
|
||||
var endTime = end.format('YYYY-MM-DD')+ " "+ "23:59:59";
|
||||
data['qp']['user_cluster_def']['events'][label_time_index]['startTime'] = startTime;
|
||||
data['qp']['user_cluster_def']['events'][label_time_index]['endTime'] = endTime;
|
||||
var sameday = Date.parse(new Date()) / 1000; //当天时间戳
|
||||
|
||||
var enddate = new Date(end.format('YYYY-MM-DD'));
|
||||
var endmonth = Date.parse(enddate)/1000;
|
||||
|
||||
var startdate = new Date(start.format('YYYY-MM-DD'));
|
||||
var startmonth = Date.parse(startdate)/1000;
|
||||
data['qp']['user_cluster_def']['events'][label_time_index]['e_days'] = parseInt((sameday - endmonth)/86400);
|
||||
data['qp']['user_cluster_def']['events'][label_time_index]['s_days'] = parseInt((sameday - startmonth)/86400);
|
||||
updatalable();
|
||||
})
|
||||
};
|
||||
|
||||
$(document).off("click",'.load_prop_quotas_data').on('click','.load_prop_quotas_data',function(){
|
||||
var obj = $(this);
|
||||
var offset = obj.offset();
|
||||
var index = obj.attr('data-index')
|
||||
X.parametersopen(retdata,'dropdownlist',[offset.top+obj.height(),offset.left],function(val){
|
||||
console.log(val);
|
||||
data['qp']['user_cluster_def']['events'][index]['prop_quota']['quotaDesc'] = val.title;
|
||||
data['qp']['user_cluster_def']['events'][index]['prop_quota']['quota_type'] = val.data_type;
|
||||
if(val.data_type == null){
|
||||
data['qp']['user_cluster_def']['events'][index]['prop_quota']['quota'] = val.analysis;
|
||||
}else {
|
||||
data['qp']['user_cluster_def']['events'][index]['prop_quota']['quota'] = val.id;
|
||||
}
|
||||
updatalable();
|
||||
});
|
||||
});
|
||||
|
||||
$(document).off("click",'.analysis-data-box').on('click','.analysis-data-box',function(){
|
||||
var obj = $(this);
|
||||
var offset = obj.offset();
|
||||
var index = obj.attr('data-index');
|
||||
var type = obj.attr('data-type');
|
||||
X.parametersopen(quotas_map[type],'dropdownlist',[offset.top+obj.height(),offset.left],function(val){
|
||||
console.log(val);
|
||||
data['qp']['user_cluster_def']['events'][index]['prop_quota']['analysisDesc'] = val.title;
|
||||
data['qp']['user_cluster_def']['events'][index]['prop_quota']['analysis'] = val.id;
|
||||
updatalable();
|
||||
})
|
||||
});
|
||||
|
||||
$(document).off('click','.uce_calcu_symbol_box').on('click','.uce_calcu_symbol_box',function(){
|
||||
var obj = $(this);
|
||||
var index = obj.attr("data-index");
|
||||
var offset = obj.offset();
|
||||
X.parametersopen(X['DATA']['search']['condition2'],'dropdownlist',[offset.top+obj.height(),offset.left],function(val){
|
||||
console.log(val);
|
||||
data['qp']['user_cluster_def']['events'][index]['uce_calcu_symbolDesc'] = val.title;
|
||||
data['qp']['user_cluster_def']['events'][index]['uce_calcu_symbol'] = val.id;
|
||||
updatalable();
|
||||
})
|
||||
});
|
||||
|
||||
$(document).off("change",'.lable-input-box input').on('change','.lable-input-box input',function(){
|
||||
var obj = $(this);
|
||||
var index = obj.attr("data-index");
|
||||
console.log(index);
|
||||
var text = obj.val();
|
||||
data['qp']['user_cluster_def']['events'][index]['num'] = text;
|
||||
});
|
||||
|
||||
$(document).off('click','.action-icon-events-del').on('click','.action-icon-events-del',function(){
|
||||
var obj = $(this);
|
||||
var index = obj.attr("data-index");
|
||||
data['qp']['user_cluster_def']['events'].splice(index,1);
|
||||
updatalable();
|
||||
});
|
||||
|
||||
$(document).off("click",'.userlabel-dy-baocun').on("click",".userlabel-dy-baocun",function(){
|
||||
var lablename = $(".lablename").val();
|
||||
var labledesc = $(".labledesc").val();
|
||||
var labeldes = $(".labeldes").val();
|
||||
if(lablename == ""){
|
||||
layer.msg("请填写标签名");
|
||||
return;
|
||||
}
|
||||
if(labledesc == ""){
|
||||
layer.msg("请填写显示名");
|
||||
return;
|
||||
}
|
||||
data['cluster_name'] = lablename;
|
||||
data['display_name'] = labledesc;
|
||||
data['remarks'] = labeldes;
|
||||
X.api('user_label/save','post',data,function(d){
|
||||
console.log(d);
|
||||
layer.msg("添加成功");
|
||||
})
|
||||
});
|
||||
|
||||
}
|
||||
};
|
||||
})();
|
@ -236,6 +236,9 @@
|
||||
.analysis-overall-situation-box { display: flex; }
|
||||
.analysis-overall-situation-list { padding: 8px 0; display: flex; align-items: center; margin-top: 8px; flex-wrap: wrap; }
|
||||
.analysis-overall-situation-list div { text-align: center; margin-left: 8px; border:1px solid #f0f2f5; background-color: #fff; color: #67729d; padding: 0 6px; display: inline-block; min-width: 40px; height: 28px; font-size: 13px; line-height: 29px; border-radius: 2; cursor: pointer; }
|
||||
.analysis-overall-situation-input { text-align: center; margin-left: 8px; border:1px solid #f0f2f5; background-color: #fff; color: #67729d; padding: 0 6px; display: inline-block; min-width: 40px; height: 28px; font-size: 13px; line-height: 29px; border-radius: 2; cursor: pointer; }
|
||||
.analysis-overall-situation-input3 { text-align: center; margin-left: 8px; border:1px solid #f0f2f5; background-color: #fff; color: #67729d; padding: 0 6px; display: inline-block; min-width: 40px; height: 28px; font-size: 13px; line-height: 29px; border-radius: 2; cursor: pointer; }
|
||||
.analysis-overall-situation-input3 input { border: 0px; height: 27px; }
|
||||
.analysis-overall-situation-input input { border: 0px; height: 27px; }
|
||||
.analysis-overall-situation-input2 input{ border: 0px; height: 27px; width: 50px; padding: 0 6px; color: #67729d; }
|
||||
.analysis-overall-situation-left-box { width: 24px; position: relative; margin-left: 4px;}
|
||||
|
353
web/static/css/mmGrid.css
Normal file
353
web/static/css/mmGrid.css
Normal file
@ -0,0 +1,353 @@
|
||||
|
||||
.mmGrid{
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
background: #fff;
|
||||
border: 1px solid #ccc;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.mmGrid table{
|
||||
border-collapse: separate;
|
||||
border-spacing: 0;
|
||||
text-align: left;
|
||||
|
||||
}
|
||||
|
||||
.mmGrid input[type="radio"],
|
||||
.mmGrid input[type="checkbox"]{
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* 遮罩 */
|
||||
.mmGrid .mmg-mask{
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
display: none;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: #ddd;
|
||||
|
||||
|
||||
}
|
||||
|
||||
/* 半透明 */
|
||||
.mmGrid .mmg-transparent{
|
||||
/* IE 8 */
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
|
||||
/* IE 5-7 */
|
||||
filter: alpha(opacity=50);
|
||||
/* Netscape */
|
||||
-moz-opacity: 0.5;
|
||||
/* Safari 1.x */
|
||||
-khtml-opacity: 0.5;
|
||||
/* Good browsers */
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
/* loading */
|
||||
.mmGrid .mmg-loading{
|
||||
position: absolute;
|
||||
display: none;
|
||||
text-align: center;
|
||||
|
||||
}
|
||||
|
||||
.mmGrid .mmg-loading .mmg-loadingImg{
|
||||
margin: 5px auto;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
background: url(img/loading.gif) no-repeat center center;
|
||||
}
|
||||
|
||||
.mmGrid .mmg-loading .mmg-loadingText{
|
||||
|
||||
}
|
||||
|
||||
/* 标题包装 */
|
||||
.mmGrid .mmg-headWrapper{
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
width: 9999px;
|
||||
|
||||
background: #eee; /* Old browsers */
|
||||
background: -moz-linear-gradient(top, #f9f9f9 0%, #eaeaea 100%); /* FF3.6+ */
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f9f9f9), color-stop(100%,#eaeaea)); /* Chrome,Safari4+ */
|
||||
background: -webkit-linear-gradient(top, #f9f9f9 0%,#eaeaea 100%); /* Chrome10+,Safari5.1+ */
|
||||
background: -o-linear-gradient(top, #f9f9f9 0%,#eaeaea 100%); /* Opera 11.10+ */
|
||||
background: -ms-linear-gradient(top, #f9f9f9 0%,#eaeaea 100%); /* IE10+ */
|
||||
background: linear-gradient(to bottom, #f9f9f9 0%,#eaeaea 100%); /* W3C */
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f9f9f9', endColorstr='#eaeaea',GradientType=0 ); /* IE6-8 */
|
||||
|
||||
-moz-box-shadow: 0 0px 2px #bbb;
|
||||
-webkit-box-shadow: 0 0px 2px #bbb;
|
||||
box-shadow: 0 0px 2px #bbb;
|
||||
/* border-top: 2px solid #b00; */
|
||||
z-index: 1;
|
||||
|
||||
}
|
||||
|
||||
/* 标题 */
|
||||
.mmGrid .mmg-headWrapper .mmg-head{
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.mmGrid .mmg-headWrapper .mmg-head th{
|
||||
position: relative;
|
||||
padding: 0 5px;
|
||||
border-right: 1px solid #ddd;
|
||||
/* border-bottom: 1px solid #d2d2d2; */
|
||||
overflow: hidden;
|
||||
background-color: #f0f2f5;
|
||||
}
|
||||
|
||||
.mmGrid .mmg-headWrapper .mmg-head th.mmg-groupCol{
|
||||
/* 分组列 */
|
||||
}
|
||||
|
||||
.mmGrid .mmg-headWrapper .mmg-head th input{
|
||||
height: 2em;
|
||||
}
|
||||
|
||||
.mmGrid .mmg-headWrapper .mmg-head th .mmg-titleWrapper{
|
||||
position: relative;
|
||||
height: 2em;
|
||||
}
|
||||
|
||||
.mmGrid .mmg-headWrapper .mmg-head th .mmg-titleWrapper .mmg-colResize{
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: -6px;
|
||||
_right: -4px;
|
||||
width: 4px;
|
||||
height: 100%;
|
||||
cursor: col-resize;
|
||||
}
|
||||
|
||||
.mmGrid .mmg-headWrapper .mmg-head th .mmg-titleWrapper .mmg-title{
|
||||
display: inline-block;
|
||||
*display: inline;
|
||||
*zoom: 1;
|
||||
height: 2em;
|
||||
font-weight: initial;
|
||||
line-height: 2;
|
||||
vertical-align: top;
|
||||
color: #202d3f !important;
|
||||
}
|
||||
|
||||
.mmGrid .mmg-headWrapper .mmg-head th .mmg-titleWrapper .mmg-canSort{
|
||||
cursor: pointer;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.mmGrid .mmg-headWrapper .mmg-head th .mmg-titleWrapper .mmg-sort{
|
||||
overflow: hidden;
|
||||
display: none;
|
||||
width: 7px;
|
||||
height: 2em;
|
||||
margin-left: 2px;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.mmGrid .mmg-headWrapper .mmg-head th .mmg-titleWrapper .mmg-asc{
|
||||
display: inline-block;
|
||||
*display: inline;
|
||||
*zoom: 1;
|
||||
background: url(img/sort-asc.png) no-repeat center center;
|
||||
}
|
||||
|
||||
.mmGrid .mmg-headWrapper .mmg-head th .mmg-titleWrapper .mmg-desc{
|
||||
display: inline-block;
|
||||
*display: inline;
|
||||
*zoom: 1;
|
||||
background: url(img/sort-desc.png) no-repeat center center;
|
||||
}
|
||||
|
||||
.mmGrid .mmg-colResizePointer{
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
display: none;
|
||||
width: 1px;
|
||||
height: 100%;
|
||||
background: #999;
|
||||
cursor: col-resize;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.mmGrid .mmg-colResizePointer-before{
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
display: none;
|
||||
width: 1px;
|
||||
height: 100%;
|
||||
background: #999;
|
||||
cursor: col-resize;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
/* 背板 */
|
||||
.mmGrid .mmg-backboard{
|
||||
position: relative;
|
||||
display: none;
|
||||
background-image: url(img/furley_bg.png);
|
||||
background-image: -webkit-image-set(
|
||||
url(img/furley_bg.png) 1x,
|
||||
url(img/furley_bg_@2X.png) 2x
|
||||
);
|
||||
-webkit-box-shadow: inset 0 0 2px 1px #d9d9d9;
|
||||
-moz-box-shadow: inset 0 0 2px 1px #d9d9d9;
|
||||
-o-box-shadow: inset 0 0 2px 1px #d9d9d9;
|
||||
-ms-box-shadow: inset 0 0 2px 1px #d9d9d9;
|
||||
box-shadow: inset 0 0 2px 1px #d9d9d9;
|
||||
text-align: left;
|
||||
}
|
||||
.mmGrid .mmg-backboard h1{
|
||||
margin: 0 10px 5px 10px;
|
||||
padding: 10px 0 5px 0;
|
||||
font-size: 1em;
|
||||
font-weight: bold;
|
||||
line-height: 1.8;
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.mmGrid .mmg-backboard label{
|
||||
display: inline-block;
|
||||
*display: inline;
|
||||
*zoom: 1;
|
||||
width: 95px;
|
||||
font-size: 1em;
|
||||
line-height: 2.2;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.mmGrid .mmg-backboard label input{
|
||||
margin: 0 5px 0 10px;
|
||||
padding: 0px;
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
/* 内容包装器 */
|
||||
.mmGrid .mmg-bodyWrapper{
|
||||
position: relative;
|
||||
overflow: auto;
|
||||
width: 9999px;
|
||||
min-height: 0%; /* fix IE9 hover bug see: http://jsfiddle.net/pjkix/86Lfv/ */
|
||||
}
|
||||
|
||||
/* 内容 */
|
||||
.mmGrid .mmg-bodyWrapper .mmg-body{
|
||||
table-layout: fixed;
|
||||
}
|
||||
|
||||
.mmGrid .mmg-bodyWrapper .mmg-body tr{
|
||||
|
||||
}
|
||||
|
||||
.mmGrid .mmg-bodyWrapper .mmg-body tr.even{
|
||||
background: #f9f9f9;
|
||||
}
|
||||
|
||||
.mmGrid .mmg-bodyWrapper .mmg-body td{
|
||||
padding: 0 5px;
|
||||
border-right: 1px solid #e4e4e4;
|
||||
border-bottom: 1px solid #e4e4e4;
|
||||
line-height: 2;
|
||||
}
|
||||
|
||||
.mmGrid .mmg-bodyWrapper .mmg-body td.colSelected{
|
||||
background: #f7f7f7;
|
||||
}
|
||||
|
||||
.mmGrid .mmg-bodyWrapper .mmg-body td.colSelectedEven{
|
||||
background: #f5f5f5;
|
||||
}
|
||||
|
||||
.mmGrid .mmg-bodyWrapper .mmg-body tr.hover td{
|
||||
background: #e1eff8;
|
||||
}
|
||||
|
||||
.mmGrid .mmg-bodyWrapper .mmg-body tr:hover td{
|
||||
background: #e1eff8;
|
||||
}
|
||||
|
||||
.mmGrid .mmg-bodyWrapper .mmg-body tr.selected td{
|
||||
background: #fff5cc;
|
||||
}
|
||||
|
||||
.mmGrid .mmg-bodyWrapper .mmg-body td .mmg-index{
|
||||
color: #555;
|
||||
}
|
||||
|
||||
.mmGrid .nowrap{
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
-o-text-overflow: ellipsis;
|
||||
-ms-text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
/* 消息 */
|
||||
.mmGrid .mmg-message{
|
||||
position: absolute;
|
||||
display: none;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.mmGrid .mmg-btnBackboardDn{
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 20px;
|
||||
display: block;
|
||||
width: 50px;
|
||||
height: 20px;
|
||||
background: #fff url(img/arrow_down.png) no-repeat center center;
|
||||
border: 1px solid #ccc;
|
||||
border-top: 0;
|
||||
-webkit-border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
border-radius: 2px;
|
||||
-webkit-box-shadow: 1px 1px 3px #ccc;
|
||||
-moz-box-shadow: 1px 1px 3px #ccc;
|
||||
-o-box-shadow: 1px 1px 3px #ccc;
|
||||
-ms-box-shadow: 1px 1px 3px #ccc;
|
||||
box-shadow:1px 1px 3px #ccc;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.mmGrid .mmg-backboard .mmg-btnBackboardUp{
|
||||
position: absolute;
|
||||
right: 20px;
|
||||
bottom: 0;
|
||||
display: block;
|
||||
width: 50px;
|
||||
height: 20px;
|
||||
background: #fff url(img/arrow_up.png) no-repeat center center;
|
||||
border: 1px solid #ccc;
|
||||
border-bottom: 0;
|
||||
-webkit-border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
border-radius: 2px;
|
||||
-webkit-box-shadow: 1px 1px 3px #ccc;
|
||||
-moz-box-shadow: 1px 1px 3px #ccc;
|
||||
-o-box-shadow: 1px 1px 3px #ccc;
|
||||
-ms-box-shadow: 1px 1px 3px #ccc;
|
||||
box-shadow:1px 1px 3px #ccc;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -686,5 +686,106 @@ label:not(.form-check-label):not(.custom-file-label) { font-weight: 400; }
|
||||
.save-list-but-box div{ cursor: pointer; background-color: #FF5722; color: #fff;width: 100%;height: 45px;line-height: 45px;text-align: center;margin: 0 8px;padding: 0 16px;font-weight: 400;font-size: 14px;text-shadow: none;border-radius: 2px; }
|
||||
.datacheck-table-box { margin: 40px 60px 40px 106px; overflow-x:auto; }
|
||||
|
||||
/* 用户标签 */
|
||||
.userlabel-box { width: 100%; background-color: #f0f2f5; height: calc(100% - 60px); position: fixed; top: 60px; left: 0; display: flex; }
|
||||
.userlabel-left-box { margin: 24px; width: calc(100% - 312px - 48px); height: calc(100% - 48px); background-color: #fff; border-radius: 2px; }
|
||||
.userlabel-right-box { width: 312px; background-color: #fff; height: calc(100% - 48px); margin-top: 24px; margin-right: 24px; border-radius: 2px; }
|
||||
.userlabel-right { margin-top: 20px; height: calc(100% - 20px); overflow: hidden; }
|
||||
.label-title-box { padding: 0 24px 24px 24px; border-bottom: 1px solid #e6e6e6; }
|
||||
.label-box-title {font-size: 14px; color: #607595; font-weight: 500; }
|
||||
.lable-title-name { font-size: 16px; color: #202d3f; font-weight: 500; margin-top: 4px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis }
|
||||
.label-info-box { padding: 0px 24px; height: 56px; line-height: 56px; font-size: 14px; color: #42546d; font-weight: 500; cursor: pointer; display: flex; align-items: center; justify-content: space-between; }
|
||||
.label-info-box:hover { color: #4fa1ff; }
|
||||
.label-info-box-ov { width: 100%; overflow-y: auto; height:633px; background-color: #fff; }
|
||||
.label-but-box { height: 48px; display: flex; justify-content: center; align-items: center; border-top: 1px solid #e6e6e6; color: #607595; }
|
||||
.label-but-box div { display: flex;align-items: center;justify-content: center;width: 86px;height: 32px;cursor: pointer; }
|
||||
.lable-dingyi:hover { color: #4fa1ff; }
|
||||
.lable-gengxin:hover { color: #4fa1ff; }
|
||||
.lable-del:hover { color: #ff5d5d; }
|
||||
.label-info-box-ov-title { margin-top: 20px; padding: 0 24px; color: #42546d; font-weight: 500; font-size: 14px; }
|
||||
.label-info-box-ov-del { display: -webkit-box;height: 65px;margin: 16px 24px 8px 24px;padding: 8px;overflow: hidden;color: #67729d;font-size: 12px;word-break: break-all;background-color: #fbfbfb;border-radius: 2px;-webkit-box-orient: vertical;-webkit-line-clamp: 2; }
|
||||
.label-info-box-con { margin: 0 24px; display: flex; justify-content: space-between; align-items: center; height: 36px; color: #607595; }
|
||||
.label-info-box-con-right { color: #42546d; font-size: 14px; text-align: right; }
|
||||
.labelval-box { margin-top: 24px; padding: 0 24px 24px 24px; }
|
||||
.labelval-title-box { color: var(--text-color); font-weight: 500; font-size: 16px; }
|
||||
.labelval-list-box { }
|
||||
.labelval-list-top { display: flex; align-items: center; justify-content: space-between; height: 20px; font-size: 12px; margin-top: 18px; color: #42546d;}
|
||||
.labelval-list-slide-box { width: 100%; height: 4px; border-radius: 4px; background-color: #f6f7f9; margin-top: 10px;}
|
||||
.labelval-list-slide { width: 80%; height: 4px; border-radius: 4px; background-color: #219af2; }
|
||||
|
||||
|
||||
/* 用户标签定义 */
|
||||
.userlabel-dy-box { width: 100%; height: 100%; background-color: #f0f2f5; position: fixed; }
|
||||
.userlabel-dy-head-box { height: 50px; padding: 0 36px; line-height: 50px; background-color: #fff; margin-top: 60px; font-size: 16px; font-weight: 500; color: #42546d;}
|
||||
.userlabel-dy-head-box span{ color: #888; }
|
||||
.userlabel-dy-content-box { max-width: 1650px; margin: 0 auto; padding: 25px 23px 50px;}
|
||||
.userlabel-dy-content-box2 { display: flex; justify-content: center; align-items: flex-start; font-size: 14px; }
|
||||
.userlabel-dy-left-box { width: 321px; background-color: #fff; height: 346px; padding: 20px 0; margin-right: 24px;}
|
||||
.userlabel-dy-left-title { padding: 0 24px 17px 24px; color: #202d3f; font-weight: 500; font-size: 14px; border-bottom: 1px solid #f0f2f5; }
|
||||
.userlabel-dy-left-item { margin-top: 32px; padding: 0 24px; }
|
||||
.userlabel-dy-left-item p { font-weight: 400; font-size: 14px; color: #607595; }
|
||||
.userlabel-dy-left-item input { color: rgba(0, 0, 0, 0.25); background-color: #f5f5f5; width: 258px; padding: 0 8px; margin-top: 10px; font-size: 14px; height: 32px; line-height: 30px; border: 1px solid var(--light-split-color); border-radius: 2px; transition: all 0.3s;}
|
||||
.userlabel-dy-left-item textarea{ width: 258px; margin-top: 10px; font-size: 14px; background-color: #fff; line-height: 24px; min-height: 32px; padding: 0 8px; border: 1px solid #f0f0f0; border-radius: 2px; resize: none; }
|
||||
.userlabel-dy-right-box { width: 1268px; padding-bottom: 20px;}
|
||||
.userlabel-dy-right-head-box div{ padding: 20px 24px 0 24px; color: #202d3f; font-weight: 500; font-size: 14px; }
|
||||
.userlabel-dy-right-head-box p{ margin-top: 8px; padding: 0 24px 17px 24px; color: #67729d; font-size: 12px; border-bottom: 1px solid #f0f2f5; }
|
||||
.userlabel-dy-right-title-box { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; padding: 0 24px; }
|
||||
.userlabel-dy-right-title-box2 { display: flex; flex-wrap: wrap; width: 100%; margin-top: 24px; }
|
||||
.userlabel-dy-right-title { width: 24%; height: 40px; line-height: 40px; text-indent: 14px; cursor: pointer; font-size: 14px; color: #67729d; margin-top: 8px; margin-right: 8px; color: #67729d; font-size: 14px; background-color: #fff; border: 1px solid #f0f0f0; border-radius: 2px; }
|
||||
.userlabel-dy-right-title:hover { border: 1px solid #3d90ff; color: #3d90ff; }
|
||||
.userlabel-dy-right-labelname-box { padding: 0 24px; }
|
||||
.userlabel-dy-right-labelname-root { width: 100%; margin-top: 16px; padding: 8px 0; background-color: #fff; border-radius: 2px; }
|
||||
.userlabel-dy-right-labelname-root-item { display: flex; align-items: flex-start; justify-content: flex-start; padding: 16px 0; }
|
||||
.userlabel-dy-right-labelname-root-item-input { width: 100%; font-weight: 400; font-size: 14px; background-color: #fff; padding: 0 8px; color: #42546d; line-height: 30px; border-radius: 2px; }
|
||||
.userlabel-dy-right-labelname-root-item-input input { width: 100%; height: 32px; border: 1px solid #f0f0f0; padding: 8px; }
|
||||
.userlabel-dy-right-labelname-root-item-input textarea { width: 100%; height: 64px; border: 1px solid #f0f0f0; resize: none; padding: 8px;}
|
||||
|
||||
.userlabel-dy-right-labelname-root-item-title { display: inline-block; margin-top: 5px; white-space:nowrap; padding-right: 24px; color: #42546d; font-weight: 500; font-size: 14px; }
|
||||
.choicelabel { margin-left: 24px; color: #42546d; font-size: 14px; cursor: pointer;}
|
||||
.userlabel-json-box { padding: 0 0 0 80px; margin-top: 22px; }
|
||||
.userlabel-json-relation-editor { position: relative; display: flex; width: 100%; }
|
||||
.userlabel-json-relation-relation { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; width: 24px; margin-right: 4px; }
|
||||
.userlabel-json-relation-relation-line { position: absolute; top: 0; left: 12px; height: 100%; width: 1px; background-color: #d9dfe6; }
|
||||
.userlabel-json-relation-relation-value { position: absolute;top: 50%;left: 0;width: 24px;height: 24px;margin-top: -12px;color: #3d90ff;font-size: 12px;line-height: 22px;text-align: center;background-color: #fff;border: 1px solid #d9dfe6;border-radius: 2px;cursor: pointer; }
|
||||
.serlabel-json-relation-row { margin-bottom: 12px; }
|
||||
.userlabel-json-eventRow { min-height: 40px; padding: 0 4px 0 8px; }
|
||||
.userlabel-json-action-row { position: relative;display: flex;align-items: center;justify-content: space-between;width: 100%;min-height: 24px;line-height: 24px; align-items: center; justify-content: flex-start; min-height: 40px;}
|
||||
.ta-editor-done-condition { display: flex; align-items: center; font-size: 14px; white-space: nowrap; color: #67729d;}
|
||||
.ta-isDone { margin-right: 6px; font-weight: 500; text-decoration: underline; cursor: pointer; color: #42546d; }
|
||||
.ta-editor-done-condition .ta-event-select { margin-left: 4px; }
|
||||
.ta-event-select { display: inline-block;min-width: 40px;height: 28px;padding: 0 6px;font-size: 14px;line-height: 26px;white-space: nowrap;vertical-align: top;background-color: #fff;border: 1px solid #f0f2f5;border-radius: 2px;cursor: pointer; }
|
||||
.ta-event-select-label { display: inline-block;max-width: 300px;overflow: hidden;color: #67729d;white-space: nowrap;text-overflow: ellipsis;vertical-align: top; }
|
||||
.ta-bold { margin-left: 4px; font-weight: 500; }
|
||||
.ta-editor-done-condition .ta-range-picker-label { margin-left: 4px; background-color: #fff; border-color: #f0f2f5; border: 1px solid #f0f2f5; }
|
||||
.ta-range-picker-label { display: inline-block;min-width: 80px;height: 28px;padding: 0 8px;color: var(--widget-color);font-size: 14px;line-height: 26px;white-space: nowrap;background-color: #fff;border: 1px solid var(--light-split-color);border-radius: 2px;cursor: pointer; }
|
||||
.ta-range-picker-span{ display: inline-block; }
|
||||
.userlabel-json-action-right { margin-left: 16px; display: flex; align-items: center; opacity: 0; color: #67729d; }
|
||||
.action-row .action-right .action-action { margin-left: 4px; }
|
||||
.action-icon { display: inline-block;min-width: 24px;height: 24px;padding: 0 4px;line-height: 22px;text-align: center;background-color: transparent;border-radius: 2px;cursor: pointer; }
|
||||
.userlabel-json-eventRow:hover { background-color: #f6f8fa; }
|
||||
.userlabel-json-action-row:hover > .userlabel-json-action-right{opacity: 1;}
|
||||
.userlabel-json-action-row:hover{ background-color: #f6f8fa; }
|
||||
.action-icon-shax:hover { color: #3d90ff; background-color: #f0f2f5; }
|
||||
.action-icon-del:hover { color: #ff5d5d; background-color: #f0f2f5; }
|
||||
.ta-editor-done-condition .ta-analysis-select { margin-left: 4px; }
|
||||
.ta-analysis-select { display: inline-block; height: 28px; vertical-align: top;}
|
||||
.ta-editor-done-condition .done-condition-select { margin-left: 4px; color: var(--widget-color); font-size: 14px;}
|
||||
.ant-select {box-sizing: border-box;margin: 0;padding: 0;color: rgba(0, 0, 0, 0.85);font-size: 14px;font-variant: tabular-nums;line-height: 1.5715;list-style: none;font-feature-settings: 'tnum', "tnum";position: relative;display: inline-block;cursor: pointer;}
|
||||
.userlabel-json-but-box { display: flex; justify-content: flex-end; margin-top: 20px;}
|
||||
.userlabel-json-but-box div { cursor: pointer; color: #fff; background-color: #3d90ff; border-color: #3d90ff; height: 20px; padding: 6px 12px; font-weight: 400; font-size: 14px; line-height: 20px; text-shadow: none; border-radius: 2px; box-shadow: none; }
|
||||
.userlabel-dy-right-box-top { background-color: #fff; padding-bottom: 20px; }
|
||||
.ta-multa-filter-condition { padding: 4px 0 0; }
|
||||
.ta-property { margin-right: 6px; font: 14px; padding-top: 5px; }
|
||||
.ta-property-select { margin: 2px 4px 0 0; min-width: 40px; height: 28px; padding: 0 6px; font-size: 14px; line-height: 26px; white-space: nowrap; vertical-align: top; border: 1px solid #f0f2f5; border-radius: 2px; cursor: pointer; }
|
||||
.ta-property-select-label { display: inline-block;max-width: 180px;overflow: hidden;color: #67729d;white-space: nowrap;text-overflow: ellipsis;vertical-align: top; }
|
||||
.ta-operator-select { margin: 2px 4px 0 0 ; vertical-align: top; }
|
||||
.ta-operator-select .tant-select .ant-select-selector { height: 28px; padding: 0 6px; color: #67729d; border: 1px solid #f0f2f5;}
|
||||
.ta-filter-condition .ta-equal-search { margin: 2px 0 0 0; vertical-align: top; }
|
||||
.ta-filter-condition { display: flex; min-height: 32px; padding-bottom: 2px; white-space: normal; }
|
||||
.userlabel-json-action-left { margin-left:8px; }
|
||||
.ta-equal-search input{ width: 100px; padding: 0 10px; height: 28px; line-height: 28px; border: 1px solid #f0f2f5; }
|
||||
.userlabel-json-relation-row { padding: 0 4px 0 8px; }
|
||||
.ant-input-number input{ height: 28px; margin-left: 4px; padding: 0 8px; border: 1px solid #f0f2f5; width: 44px; color: #42546d; border-radius: 2px; }
|
||||
.userlabel-dy-head-userlabel { color: #42546d !important; cursor: pointer; }
|
||||
|
||||
|
||||
|
@ -54,6 +54,48 @@
|
||||
<div class="content unicode" style="display: block;">
|
||||
<ul class="icon_lists dib-box">
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont"></span>
|
||||
<div class="name">过滤</div>
|
||||
<div class="code-name">&#xe683;</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont"></span>
|
||||
<div class="name">删除</div>
|
||||
<div class="code-name">&#xe611;</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont"></span>
|
||||
<div class="name">检查更新</div>
|
||||
<div class="code-name">&#xe628;</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont"></span>
|
||||
<div class="name">zidingyiheng</div>
|
||||
<div class="code-name">&#xe60d;</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont"></span>
|
||||
<div class="name">标签详情</div>
|
||||
<div class="code-name">&#xe607;</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont"></span>
|
||||
<div class="name">箭头-左</div>
|
||||
<div class="code-name">&#xe61c;</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont"></span>
|
||||
<div class="name">箭头-右</div>
|
||||
<div class="code-name">&#xe61d;</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont"></span>
|
||||
<div class="name">点</div>
|
||||
@ -126,9 +168,9 @@
|
||||
<pre><code class="language-css"
|
||||
>@font-face {
|
||||
font-family: 'iconfont';
|
||||
src: url('iconfont.woff2?t=1629862645788') format('woff2'),
|
||||
url('iconfont.woff?t=1629862645788') format('woff'),
|
||||
url('iconfont.ttf?t=1629862645788') format('truetype');
|
||||
src: url('iconfont.woff2?t=1634286267600') format('woff2'),
|
||||
url('iconfont.woff?t=1634286267600') format('woff'),
|
||||
url('iconfont.ttf?t=1634286267600') format('truetype');
|
||||
}
|
||||
</code></pre>
|
||||
<h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
|
||||
@ -154,6 +196,69 @@
|
||||
<div class="content font-class">
|
||||
<ul class="icon_lists dib-box">
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont icon-guolv"></span>
|
||||
<div class="name">
|
||||
过滤
|
||||
</div>
|
||||
<div class="code-name">.icon-guolv
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont icon-shanchu1"></span>
|
||||
<div class="name">
|
||||
删除
|
||||
</div>
|
||||
<div class="code-name">.icon-shanchu1
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont icon-jianchagengxin"></span>
|
||||
<div class="name">
|
||||
检查更新
|
||||
</div>
|
||||
<div class="code-name">.icon-jianchagengxin
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont icon-peizhiguanli1"></span>
|
||||
<div class="name">
|
||||
zidingyiheng
|
||||
</div>
|
||||
<div class="code-name">.icon-peizhiguanli1
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont icon-biaoqianxiangqing"></span>
|
||||
<div class="name">
|
||||
标签详情
|
||||
</div>
|
||||
<div class="code-name">.icon-biaoqianxiangqing
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont icon-back"></span>
|
||||
<div class="name">
|
||||
箭头-左
|
||||
</div>
|
||||
<div class="code-name">.icon-back
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont icon-backbeifen"></span>
|
||||
<div class="name">
|
||||
箭头-右
|
||||
</div>
|
||||
<div class="code-name">.icon-backbeifen
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<span class="icon iconfont icon-ic_normal_dot"></span>
|
||||
<div class="name">
|
||||
@ -262,6 +367,62 @@
|
||||
<div class="content symbol">
|
||||
<ul class="icon_lists dib-box">
|
||||
|
||||
<li class="dib">
|
||||
<svg class="icon svg-icon" aria-hidden="true">
|
||||
<use xlink:href="#icon-guolv"></use>
|
||||
</svg>
|
||||
<div class="name">过滤</div>
|
||||
<div class="code-name">#icon-guolv</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<svg class="icon svg-icon" aria-hidden="true">
|
||||
<use xlink:href="#icon-shanchu1"></use>
|
||||
</svg>
|
||||
<div class="name">删除</div>
|
||||
<div class="code-name">#icon-shanchu1</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<svg class="icon svg-icon" aria-hidden="true">
|
||||
<use xlink:href="#icon-jianchagengxin"></use>
|
||||
</svg>
|
||||
<div class="name">检查更新</div>
|
||||
<div class="code-name">#icon-jianchagengxin</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<svg class="icon svg-icon" aria-hidden="true">
|
||||
<use xlink:href="#icon-peizhiguanli1"></use>
|
||||
</svg>
|
||||
<div class="name">zidingyiheng</div>
|
||||
<div class="code-name">#icon-peizhiguanli1</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<svg class="icon svg-icon" aria-hidden="true">
|
||||
<use xlink:href="#icon-biaoqianxiangqing"></use>
|
||||
</svg>
|
||||
<div class="name">标签详情</div>
|
||||
<div class="code-name">#icon-biaoqianxiangqing</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<svg class="icon svg-icon" aria-hidden="true">
|
||||
<use xlink:href="#icon-back"></use>
|
||||
</svg>
|
||||
<div class="name">箭头-左</div>
|
||||
<div class="code-name">#icon-back</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<svg class="icon svg-icon" aria-hidden="true">
|
||||
<use xlink:href="#icon-backbeifen"></use>
|
||||
</svg>
|
||||
<div class="name">箭头-右</div>
|
||||
<div class="code-name">#icon-backbeifen</div>
|
||||
</li>
|
||||
|
||||
<li class="dib">
|
||||
<svg class="icon svg-icon" aria-hidden="true">
|
||||
<use xlink:href="#icon-ic_normal_dot"></use>
|
||||
|
@ -1,8 +1,8 @@
|
||||
@font-face {
|
||||
font-family: "iconfont"; /* Project id 2570810 */
|
||||
src: url('iconfont.woff2?t=1629862645788') format('woff2'),
|
||||
url('iconfont.woff?t=1629862645788') format('woff'),
|
||||
url('iconfont.ttf?t=1629862645788') format('truetype');
|
||||
src: url('iconfont.woff2?t=1634286267600') format('woff2'),
|
||||
url('iconfont.woff?t=1634286267600') format('woff'),
|
||||
url('iconfont.ttf?t=1634286267600') format('truetype');
|
||||
}
|
||||
|
||||
.iconfont {
|
||||
@ -13,6 +13,34 @@
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.icon-guolv:before {
|
||||
content: "\e683";
|
||||
}
|
||||
|
||||
.icon-shanchu1:before {
|
||||
content: "\e611";
|
||||
}
|
||||
|
||||
.icon-jianchagengxin:before {
|
||||
content: "\e628";
|
||||
}
|
||||
|
||||
.icon-peizhiguanli1:before {
|
||||
content: "\e60d";
|
||||
}
|
||||
|
||||
.icon-biaoqianxiangqing:before {
|
||||
content: "\e607";
|
||||
}
|
||||
|
||||
.icon-back:before {
|
||||
content: "\e61c";
|
||||
}
|
||||
|
||||
.icon-backbeifen:before {
|
||||
content: "\e61d";
|
||||
}
|
||||
|
||||
.icon-ic_normal_dot:before {
|
||||
content: "\e759";
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
@ -5,6 +5,55 @@
|
||||
"css_prefix_text": "icon-",
|
||||
"description": "",
|
||||
"glyphs": [
|
||||
{
|
||||
"icon_id": "3369493",
|
||||
"name": "过滤",
|
||||
"font_class": "guolv",
|
||||
"unicode": "e683",
|
||||
"unicode_decimal": 59011
|
||||
},
|
||||
{
|
||||
"icon_id": "5485648",
|
||||
"name": "删除",
|
||||
"font_class": "shanchu1",
|
||||
"unicode": "e611",
|
||||
"unicode_decimal": 58897
|
||||
},
|
||||
{
|
||||
"icon_id": "5532888",
|
||||
"name": "检查更新",
|
||||
"font_class": "jianchagengxin",
|
||||
"unicode": "e628",
|
||||
"unicode_decimal": 58920
|
||||
},
|
||||
{
|
||||
"icon_id": "14583370",
|
||||
"name": "zidingyiheng",
|
||||
"font_class": "peizhiguanli1",
|
||||
"unicode": "e60d",
|
||||
"unicode_decimal": 58893
|
||||
},
|
||||
{
|
||||
"icon_id": "11336565",
|
||||
"name": "标签详情",
|
||||
"font_class": "biaoqianxiangqing",
|
||||
"unicode": "e607",
|
||||
"unicode_decimal": 58887
|
||||
},
|
||||
{
|
||||
"icon_id": "19487774",
|
||||
"name": "箭头-左",
|
||||
"font_class": "back",
|
||||
"unicode": "e61c",
|
||||
"unicode_decimal": 58908
|
||||
},
|
||||
{
|
||||
"icon_id": "19487797",
|
||||
"name": "箭头-右",
|
||||
"font_class": "backbeifen",
|
||||
"unicode": "e61d",
|
||||
"unicode_decimal": 58909
|
||||
},
|
||||
{
|
||||
"icon_id": "16373588",
|
||||
"name": "点",
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user