Commit d23322f9 by manxiaoqiang

Merge branch 'master' of git.minrow.com:reyun/saasio

parents 78e3fc33 481b5706
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>灵犀</title>
<meta name="keywords" content="热云数据 灵犀" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0" name="viewport">
</head>
<style type="text/css">
html, body{
height: 100%;
overflow: hidden;
font-family: 'PingFang SC','Microsoft Yahei';
}
body{
margin: 0;
padding: 0;
}
.top, .content{
width: 100%;
height: 47px;
position: absolute;
}
.top{
background-color: #1b1b21;
top: 0px;
line-height: 47px;
}
.content{
height: auto;
background-color: #f1f1f1;
top: 47px;
bottom: 0px;
text-align: center;
}
.content img{
margin-top: 100px;
}
.content div{
margin-top: 30px;
color: #666666;
font-size: 16px;
}
</style>
<body>
<div class="top">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANwAAAAuCAYAAAE0B0cFAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAADR5JREFUeNpi/P//PwM9ARMDnQELPsnY+QwM334xcHOxMXxdnEgfH/5fncbwA4v4aSgtBsRzoOwSINYB4ix8BjLii0OgD8GSUN8xokkzA/FfNDE1IL5FtoW0AAABRFcLmQZF6gSlzJ9/GBjYWeBxR1ufrUplkAGlTpDFUHAFShugKX0NpV+SG2cwS0B5jgdJnBWIfw/6BAIQQHRP/oO+fI6aC2dOAeIQWAIebICsmIN6BFnjLyBmVxZlYGjwwVDODsQ/kficQPydSKtAGUocyrYB4iM0j7nvvxlMgZRjvhMDo78+uHooBFaICsLcGEqvIHnsNNSB6B6bg+aZmVC2DpSGmXpkNM8NZJuIngAggEZjbtRzw8FzoGrg7z9EEwZE3AW2hIJmDj7PsZCjKWEhmHqcacfAOP0QwzUgW4tEI8QJNQoHOlnKAD0GAprgyogNRe4wgUA8icU8dhz2nIfSjvTy3P8fvxn4ga3pW7/+MDjBkmfkXJzm/oHSIkhilUjsDWitGEkktiGU3khzz8kJQfsFzAyfgJQnkN4PpL+pAxOamQJWLfdx2BeAxxrkLkcOlJ5Oj3ru/9yjDIwHbiHalnnAZpipPJjPSKXswg/EHwn0+Ecr8VHPDUUAEEDDOlmOpspRMBpxo2AAuwTk9JFAANgYBbdheIDt4wXx4AkF0IiRVOAMhq9MwIYNMxNkYPvrLwaGdemjkTPgEQcDHKxgyhnY0d0DjUxQO/Q/Dzu8f/cK3vtFBXfR2qwtQDyPDCc8AXXTsJitTIZZp4DYDMqWgiZCkA+nAXHDcCsq+4F4D6hx//0XA0uECQMDkIZ170Cd8kAQg4cNkksbt8L1gQJWCYifQ2lQpF1igIzd+jNARvNBXUNXIL6GZB+oR2YJxMvRupTFQGwCZR9DUx8F7YktRBL/AMRBQFzHgBgnlofSllBzpRkg86KgSLs1nHIcyDOqIAYnGwMLsP++AsgM99ZlCA2dxSAOzI2giFsHDWRQ4DHceEEw0SEXqAehkSgL5WcDMR+UfRxKf4VmaOTci9z33wfEy6DsmUiDJQJI5gijuQMUgRfQxHiGRcQBI6kASFnHzGN4zcjIUArMZf+B7A0//jAEc7IylAMjbTVQ3puXg2HbtEhw3ecGxLuwGMWFxEaeb5kExE3QYjAfiDWAeCo0J3gCcRoQh0JzBCjSQPOz7kDcCSrBkczhxBL4ttAIT4fmJh80+RXQCF0PSmtQPtdw6ceBUv+K8NkMb9lYGHBaCIw4RmDE2UBz5mCZxpSCRjIo54GmzyRGO+CjYLQfN9IAQAD2rSYkqigKfzNPZ0YrzUAyiBa1yIiirEUU/UNIQWRJSYS2GowgapNRtKisFrUogij7M6wopIR+IIgIdJNEWYtwoRU4loMLC39izMnpnHfvnXnzeKMzRpMM98Bh3n1z581793vnnnPPd662OG1xWjRwWjRwGjgtGjgtfy//PHOimIFpXuDy7rivVDgbTT/tug54DGD7UqBsiQbnvwKnpH8YKK8TJXBntwHFRXhLpz81vQcaWgV6uR4NyKQDjoHJEbRO8YlnKFk1D8u//QC6+lA/xWPmEn+l4RaYQAppHzcxac9y427rF+wJfMc9lwtVdC4Q9zbF3xWXN3626USE7XmD7Rwnip9P4ForEZ/k5sRyUD6HkYnAVSc4z1n7qFe7/RoYjJEt7RAc3FX5OdcGhpJEdac+B7+qLHCQtNTWP38Mi1WSYxk7cgCogEg+M6UUzkTgzNLP0QgOLSjCnYJck3dThGVbdFRoSq2qjwOPJdt2rT456Gw1XIXJm22eIEaprINgypnoPGgDLWxp35efTPEwr8b8Wo+lL5O7N+R/OeUHK2ztIxnl4yxTUpAixgvlJXhKxx/I3+3t7EWlfKOPkZ42wSNb+ko+cP7MhNfbR/rYZiVMu+wgfQhBysrqZLMmmS3yJ+mA7bmHLS+GsvpF8piBPIUY693rcB89tvabTLI4ZqKZ0+KosnOT2G2whfRoqThW28tqkXw9tHWa5FKDj6TNEhyWboffMKm6OclARknjOH2n29ozMgK4FeSRwqMwIhE0ULPFcGN1zSOxtBv5DdelV1FggwTqYQpWvFypz5rlTnrW4HKChaRrLL7OqQDoJQSLncpMsz6Bj0w0hddkxFS5fy2mkvqbO1BZ14I8AqaXfFfhzmvwu13IzzZwjqcXAndW7VYa7UKz9ODiOBZmHTD2V8chin5uyqmQ95FwqcF5iFqUAtIHMlDZyG5WRn8RS/DitVmcem06SM/I3yjrMixWqXxilbT8K2lZXqWBjxuQAcQcWoAvo8CjyalTaASzG/1mldYtOfBlKf4Ph+dDKa7rUn146xZnp+g1bWvEdAQnHCZXvwsgQKB1Jerky0Z3fwiuPB8WQ5TPpSpDKfZPFrQXpAdI+b5OjtEvrQt7zYDrzIkWDZwWDZwGTsukkj8CtHetsVGUUfQsfQnYYAzUEJUqGsEUFBuV2EA0kZhqkB9aLGIkPigxamKMib+M1scfoz9AkNAoxB/aqBATkqYEkwJ1VbQqtjyadAtGIqWoKGKT1j7He2budr+dbrfbgk2z3pNM2p3OTHdm7/nuvd/ecz8LTgwGGykNBiOcwWAwwhkMRjiDwZACudlwE26/axZJz5oOvPVg0AMnBVg9xy/JWarJgjAWf/WGD2rtDDp15GuBJPvlPLrUquINRrgkRCJA3yCwr224hxEG5PX82b5SgWB7mRV6OEtz2UehtjEGdAntpmkNyZnzQE7EDMRghEsfI5NwA8DOH5L39w+ieGY+Tj5ehqpl1/vr1szpHcDpXYeA3S3Iz8vBPDn3uHtOjgXcBiPchLBTCFVBz7ctivp39vvFqkeFYJWy/+WC3OEO7qzi2jzBXNhtIzVCrIlAPtY/SffLYJpDzvMIqtNGA0sJWab/M4KuT5MxZ8C62HSVcKx9ZR911slS9dSTTYaY7WN4nhpeBRIMuE8IVsI+pkI29nhzl0tgD7ctKS8kuVzLKcnlelP+H5LtZgT6kCV6jUPOa25zJvneL81gQKXhr1ZiTgZYPE75YGFoP58N5Y57ESgI/tTB6REECrgPjHBTH/wQT8pWGtr/nYScJ3r6fQnK13qMi2f0g08CJ0+4UMs6+eir60Yo9lg7zWt9pRuN5w/nNbfT6vHYYnWZTtxwoQkqEuK9alch6JTJpomUcVKxd80o90ct7B49tl1/v3OMZ8KBYFuIiLzfcL3402rsJOM3CHrnnlDvP3OUa7O+m+pBisu4zBf75lJp6MpDqboID1mU+UjG7U9eUcf1pZKSz+Z9HTj4DGotpJy6oLf5Fo7sZsjDq2Lt1WtvB8pL/Fyv4K9ubP+wCdu/iCFSkOd3M41PptyjRlCKkBCB7SCO/x4sLERJ0cLxtaz01KgYXj4R+luxhnauOD1fw6pK2Q44n1mLkvHeseaQ9OcKDS3vl60udMwCjNSHcQCgOIIqTlcUyPdGRSc13PFFkebqsyJpnwx5WObE1NSdT/MeV6oX25PmmI1IXofPPNwUAiVZzSGyfT49D9Wb10g8uQg1QjYa/j+XzYD37F0of+5ueOLxKjWUiYNthTuQaJQ9IsSMTGwWcwiJZV9d0NMedgy+TA28C4l+0lDykSCvj/F/BjTUpVw0Ls+uy/A9MreLqqdxcVjJ4a5VtVVJ9V7o2EJkpiiepQNQukYHXdniHLKCcAwPOSHiBcLTz8JeRQjWSrldWzAmM6SKaf5CXWX0aMdwvhdLYQwtQtibuDAz17jg1iubXA+nzl3U21ivhK/S/IUhKnscsFt+TsjrTcvAmHnOWSUcvep420dHMtxHYW73Bdz39wi+G702zTFl6i0tpJwK2LXB92KI/YqaaDtqGtr8Kf07hGjxFQbmFeRi68YGRGVf7ZKrseDyGZJoiTm2/4bc/FxUiwfs0tyKa9Nd1T+I2RI+Nq9cDNxanFgI8D8CvTGV5Y8h0fQDSpLrkLxe3qeaG700hpfzG6JpaMjc7Yhs9Uroi4nXNO/kQHfQ2X+Fetix5CjM+Tbp5FaJ5rouHkag6l9oHm7q4BOGiZJPeVXL0fjxehTcUISD4pU26AfOcO0pCQM/EiJ6RzrgNbbD++UcvEvy0C/nvoKgJQPDmqHuPhQ+cAuad6zDfPl5Rsjm6XXWZvh+2nWiJBWYi4WbrvRqGLlcw81m9W6LdPR/CEG3nvgETZEew34frZrTMaxb7IStDUh00KHnvFIng3aHQsIWjFya5BhSd9Zh6Mdc929n334l9416/aiGl3M1d3Nt7KyeHw4fX9T752Dwo+ayMX2vnerVf8oGQ80WPVytjoS+AQwOofyNevQd68QL4tneHneI2oela25DU0Wpb/BNSHzHxuVn34Uh01x6k07K9NjjyC7CJbsQGRu3HBjuYzr+WQ15JBJm4k0xmaJCM5IMJj3YIHCVDkwDmncyV95hj+d/QDiDwXI4g8FghDMYjHAGgxHOYDBcKP4FR9hKCDLUAUMAAAAASUVORK5CYII=">
</div>
<div class="content">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJEAAABgCAYAAAFqEaAJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACtFJREFUeNpi/P//PwMIeK56C2GQAbaHCTOCaBaYgI0mOwOlgAVdoGbZCaI1t0RZ4DfsX5sz0Ya1XfmKwmcixRumpqZ45ZkIaYYZQMggrN5EBqdPn8bKJsllGRkZDD9+/MCq4cOHDwwPHjwg3mUzZszAabuAgAAYkxxmFKcz9OgmBTDCshM1AEAAgQ0D5ksQm1xTGYF5E+7F/+TmyyPXf4IcwEh2nqRafkSPHBZi8x6hFM9ErQxNdB4kK/8h50NQXps+fTpcDJmNLR3Bo79Kh5ukwAZGP7iMZxp0eY5q+Q0ggFAMoqQupBTA6lKswUSNepWMvE98+iYldZECCKUPJoZBCMh2FKiIuXnzJkpxg0wT0xSguqOQi66qqiqG9evXM7i5uZFcrJFcZhIC6urqYDowMBCFptRhRIcUqCxeuHAhGIPA8ePHwWIgAGsPbd26FateUJmNq81EVDmFXiTQI/fB6gOio4+SJhXV0hR6QTYQgJGhah+oPSc0iIqpdwABxIjUBwRR+4DYkc6O2A/ETqC2Krac5zgAoeKINy3RuyJGT7uDrr4jWASQ0nsnp0dBsoNIGQEYkk2Um0/+Dq02E9kOArWVYG2it2/fktRdo0mzBLlGFxYWhjvy1KlTFDVJyHIQrhCQk5NjiImJYZg0aRLZbSWyHASzCL1pCxIf0JYkzHJKHTE8chloOA/UPD1//jzD6tWrcaorLS2FJ3hYs5cmDoINBxoaGjKEhobiVBcVFYXCh7XLaZKGMjMzCaoBORgG8I15Dv+SesCaH9TugajLMA/xEBro7hBVh8qp1TcbVC4CCMCu1eM2CINR2qESbN0YOQQnYGTkAlwgXKBrJypOwMzIyFAxEAlxCHaGsFXqwloeqi3zF0SIAzg8yTI4dsj38tl837MHGVq4H7BnvJD8cNbMX0MzfTSm5vKrdIBv6MgjxeWBqbSZO0lLf8BTeBIPEffesL9/J6OgY03aa6Dtum5LOCiKgm49oWRZ1htTVdUiuWW16XYLYKjv+1IYhrTNsqyWdoA+7L1pmq1cUFiSTqdTIx/AeLKReQ3ooyhKi8A4jsUmyXEcajzRT3BN9jN7KWfdjs+DIGiRem3M7kliDYNgCeNJGzwFcm+appKu69RzumSwY4RekwBZlnvGQoJmd8WniBbu7TZnh50A61dZluKFANBoyVEx1EQe1TStqZMkof26JJIC4EgDJFlVVaU8zweJ7j7r1j9jFU+CtEs8wLZtKoJ7nicZhjE6DkQSMgF8B7wpiqLmnoQMrKjOPoubfjKlJ01JJSKkJYxUMqgnHWnJI95uaxwImh16LEhuD0+6lydt4dTWlkMAHMI7PwkP5397R4j4SN7q+iJt63jdVvBTFxWe9HUQNIr3unz+CcDOGbMmDERx/EbBOjqJuPsFxEVw0qFpF5e2o+DYD1AVcVBc2y8gKHV0aIrgYHe/gKuTk4ND1bn5H15IjosYi5pc3oOguajh/rx798783h3LkwzrGFnHneZCbK3jyTq+/eRI99bxFQFx2KGP5sEhThZoFMEh9eln2k+IN7o/tXWkNQlKHim7JoHCt4jV/Xk/edClPUh3GCISIMR//suiIUYCkUAkUKiD9LmmwmPW67V9rirDQcFSJpNhnU5Hbw+SQSpQHhBHFEnhef10OnV9BiX5p+A2oRcIfFEymXS1DQYDvi+BsGazyRqNhn0OUqTb7bo+o6VAqNeaz+dsMpm42gFUZbNZ+1wmPsrlMhuPx3oHaTCKtVqNM0N+DLGpUqmwdDqtd5AuFAquV2egzuVynN4QngMo1BmbADY4eUjYtQL11QQCTSbPSKLNMAw2HA5ZqVTi56Zpcq8R5Jqw2WzGFovFWeWSgRdIRZKJNgiDoFyv11kqlWL9fl+J7UGc1Wp11eF2szxI9igIgql9v997liJjeIJ5jESiqPIoMcS8DMyjKL2npQatxUgg2wSP6NcuAW7eXKB2u+3qHHYzANEKstVrQ0WYfA0wJ6BPZN/YINV5XUzz8r1UvxO4IN1qtTjeG4vF+Hm1WrWvIa/xst1uxzuK7y2XS3vHBhTAeHVavldohthms1G2Ywr3sng8zj0G3iYbimH83ivQAuXzedbr9fh7cNCCrj/WUfn74K7FUAOPXSwW7ViGzFt1r0uYFx9kN+rAUR97quFkMp37ANI0T3kQCUQCBcEiUaJAHkQCkUChi0G/7EB9Rqi4ZevHg14i6CzPfgQCef6IRXYEhEEfHw59Pm0tRuYQiL39vFuvrySF0j4Ct+0fTfMhsz8B2jt7lkaiKAzP/gA7EQJWVgqCYGUjWAkiiJVikcIi2LmNYOGWsVgsXBYRhPRiYSl20U6wUtBiG6uAYCNoLazPJSdMJjMxk8lsdmbeBwZhEu983DfnnPm47+05BjXHkEH1c9nTqcstvPTg3j0KGz83iF9ZXQLKPXvNfk58wRFFx8QaRTBLzTshF5WxJlBRvhcqGoVEJCQiIYb46quRhbHmWWCYI64ViUT2I1ERJnCQiFImC29AZoGkk3AonQldnQmJSKgmKhZYITD389vbW+QofUwzzs7O3JAds2ZhQPvq6mqsGUNwCmDm28nJSa9cLktEeQC7GRxVjDAR4dSCGQnWEYeHh040iKpWqznnBFxczs/P3bQ13cAwYBgzQimdpRh9MFVBQEErHz/YaSAgos7R0VEr6jC2f3d316tWqy4yMW43CvxJ8DBBQN22JRFlCISBCwadj20R0SWK09NT93dxcTH0czO7QWhmahOMYkQrxIdzUKVSUU2UZUhB1CGIh8hCJLFIEYXVP1FDlv0pzD/uG0cALKeAaPWVc4lElAGOj4+deRHphOiTllERaZLUZjXUwcHBl7WSRJQREJBFFqY+jcK8IM0MioiFz9rt7W3oVRgRBxCnzRqKgCzF+b3d/FAfsZAm/6XBpkSUgCiHMEtn1C1h39ve3nYi4hbA2NhYW1qiBrKUZUJASN22ZVeDeRVPYe8TdYNUhCgoxvH18xuuWsHNuiKmrG7EHTLU8eWkL+rrAexgSPIANmL097e0hgwJIREJiUiosI4PNp74DuIvaOBweXl56eZvB/wI8XPG/ZKrqqenJ296etpbX193rpY4X97f33e0PTMz02rD33aYj+Ha2pqbfx6bUR7OPjw8eBMTE97Ly4szleSKz0wl2d7S0lLbfPR2LDyQ7eW4olzKbT8koj6gY4IdDjc3N16j0fB2dnY6PsM/dmtrq+3//B0ZRZi4TKwnJyfOdjUIJpvj4+NtokhyXLaPwR+M0lmf0DEbGxtOFEQCP3d3dx0TyBjz8/POXj8uRDI615aLiwu3nrZoMwz2gX0Z1HGpJkoBnK6JADxdf3x8bK2fm5tzv9QgdArrZ2dnY2+LNMUv35bl5WW3nrZoM6zDWc++wOjoaIf/Mfa/pVKp5+NSTTRASC1+SFukMAO376mpKRctrq+vvff3d9dZKysr7lnWV+0FoYaKch2nw2mT7fMY4/n52RsZGXH1z+bmZstVHCfyer3uIox9Z2FhofUQuJfj6mV//hd0szEn6Gaj0H0iIREJke3CGnv5P40P9YRElIxhDf8VSmdCIhISkRB91kRXXsCetkBzohSJqzQjEe8g7Osc55r9Zj+nenX2o7kI4WB2GJ0Fkbgm+vW5fNepEH3yk5qorPMgElBBRLwp9ftzedX5EDF4beqm9Be/DcAm5uwH3wAAAABJRU5ErkJggg==">
<div>
糟糕, 您访问的页面不存在啦!
</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>灵犀</title>
<meta name="keywords" content="热云数据 灵犀" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0" name="viewport">
</head>
<style type="text/css">
html, body{
height: 100%;
overflow: hidden;
font-family: 'PingFang SC','Microsoft Yahei';
}
body{
margin: 0;
padding: 0;
}
.top, .content{
width: 100%;
height: 47px;
position: absolute;
}
.top{
background-color: #1b1b21;
top: 0px;
line-height: 47px;
}
.content{
height: auto;
background-color: #f1f1f1;
top: 47px;
bottom: 0px;
text-align: center;
}
.content img{
margin-top: 100px;
}
.content div{
margin-top: 30px;
color: #333333;
font-size: 16px;
}
.content div div{
margin-top: 10px;
color: #999999;
font-size: 14px;
}
</style>
<body>
<div class="top">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANwAAAAuCAYAAAE0B0cFAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAADR5JREFUeNpi/P//PwM9ARMDnQELPsnY+QwM334xcHOxMXxdnEgfH/5fncbwA4v4aSgtBsRzoOwSINYB4ix8BjLii0OgD8GSUN8xokkzA/FfNDE1IL5FtoW0AAABRFcLmQZF6gSlzJ9/GBjYWeBxR1ufrUplkAGlTpDFUHAFShugKX0NpV+SG2cwS0B5jgdJnBWIfw/6BAIQQHRP/oO+fI6aC2dOAeIQWAIebICsmIN6BFnjLyBmVxZlYGjwwVDODsQ/kficQPydSKtAGUocyrYB4iM0j7nvvxlMgZRjvhMDo78+uHooBFaICsLcGEqvIHnsNNSB6B6bg+aZmVC2DpSGmXpkNM8NZJuIngAggEZjbtRzw8FzoGrg7z9EEwZE3AW2hIJmDj7PsZCjKWEhmHqcacfAOP0QwzUgW4tEI8QJNQoHOlnKAD0GAprgyogNRe4wgUA8icU8dhz2nIfSjvTy3P8fvxn4ga3pW7/+MDjBkmfkXJzm/oHSIkhilUjsDWitGEkktiGU3khzz8kJQfsFzAyfgJQnkN4PpL+pAxOamQJWLfdx2BeAxxrkLkcOlJ5Oj3ru/9yjDIwHbiHalnnAZpipPJjPSKXswg/EHwn0+Ecr8VHPDUUAEEDDOlmOpspRMBpxo2AAuwTk9JFAANgYBbdheIDt4wXx4AkF0IiRVOAMhq9MwIYNMxNkYPvrLwaGdemjkTPgEQcDHKxgyhnY0d0DjUxQO/Q/Dzu8f/cK3vtFBXfR2qwtQDyPDCc8AXXTsJitTIZZp4DYDMqWgiZCkA+nAXHDcCsq+4F4D6hx//0XA0uECQMDkIZ170Cd8kAQg4cNkksbt8L1gQJWCYifQ2lQpF1igIzd+jNARvNBXUNXIL6GZB+oR2YJxMvRupTFQGwCZR9DUx8F7YktRBL/AMRBQFzHgBgnlofSllBzpRkg86KgSLs1nHIcyDOqIAYnGwMLsP++AsgM99ZlCA2dxSAOzI2giFsHDWRQ4DHceEEw0SEXqAehkSgL5WcDMR+UfRxKf4VmaOTci9z33wfEy6DsmUiDJQJI5gijuQMUgRfQxHiGRcQBI6kASFnHzGN4zcjIUArMZf+B7A0//jAEc7IylAMjbTVQ3puXg2HbtEhw3ecGxLuwGMWFxEaeb5kExE3QYjAfiDWAeCo0J3gCcRoQh0JzBCjSQPOz7kDcCSrBkczhxBL4ttAIT4fmJh80+RXQCF0PSmtQPtdw6ceBUv+K8NkMb9lYGHBaCIw4RmDE2UBz5mCZxpSCRjIo54GmzyRGO+CjYLQfN9IAQAD2rSYkqigKfzNPZ0YrzUAyiBa1yIiirEUU/UNIQWRJSYS2GowgapNRtKisFrUogij7M6wopIR+IIgIdJNEWYtwoRU4loMLC39izMnpnHfvnXnzeKMzRpMM98Bh3n1z581793vnnnPPd662OG1xWjRwWjRwGjgtGjgtfy//PHOimIFpXuDy7rivVDgbTT/tug54DGD7UqBsiQbnvwKnpH8YKK8TJXBntwHFRXhLpz81vQcaWgV6uR4NyKQDjoHJEbRO8YlnKFk1D8u//QC6+lA/xWPmEn+l4RaYQAppHzcxac9y427rF+wJfMc9lwtVdC4Q9zbF3xWXN3626USE7XmD7Rwnip9P4ForEZ/k5sRyUD6HkYnAVSc4z1n7qFe7/RoYjJEt7RAc3FX5OdcGhpJEdac+B7+qLHCQtNTWP38Mi1WSYxk7cgCogEg+M6UUzkTgzNLP0QgOLSjCnYJck3dThGVbdFRoSq2qjwOPJdt2rT456Gw1XIXJm22eIEaprINgypnoPGgDLWxp35efTPEwr8b8Wo+lL5O7N+R/OeUHK2ztIxnl4yxTUpAixgvlJXhKxx/I3+3t7EWlfKOPkZ42wSNb+ko+cP7MhNfbR/rYZiVMu+wgfQhBysrqZLMmmS3yJ+mA7bmHLS+GsvpF8piBPIUY693rcB89tvabTLI4ZqKZ0+KosnOT2G2whfRoqThW28tqkXw9tHWa5FKDj6TNEhyWboffMKm6OclARknjOH2n29ozMgK4FeSRwqMwIhE0ULPFcGN1zSOxtBv5DdelV1FggwTqYQpWvFypz5rlTnrW4HKChaRrLL7OqQDoJQSLncpMsz6Bj0w0hddkxFS5fy2mkvqbO1BZ14I8AqaXfFfhzmvwu13IzzZwjqcXAndW7VYa7UKz9ODiOBZmHTD2V8chin5uyqmQ95FwqcF5iFqUAtIHMlDZyG5WRn8RS/DitVmcem06SM/I3yjrMixWqXxilbT8K2lZXqWBjxuQAcQcWoAvo8CjyalTaASzG/1mldYtOfBlKf4Ph+dDKa7rUn146xZnp+g1bWvEdAQnHCZXvwsgQKB1Jerky0Z3fwiuPB8WQ5TPpSpDKfZPFrQXpAdI+b5OjtEvrQt7zYDrzIkWDZwWDZwGTsukkj8CtHetsVGUUfQsfQnYYAzUEJUqGsEUFBuV2EA0kZhqkB9aLGIkPigxamKMib+M1scfoz9AkNAoxB/aqBATkqYEkwJ1VbQqtjyadAtGIqWoKGKT1j7He2budr+dbrfbgk2z3pNM2p3OTHdm7/nuvd/ecz8LTgwGGykNBiOcwWAwwhkMRjiDwZACudlwE26/axZJz5oOvPVg0AMnBVg9xy/JWarJgjAWf/WGD2rtDDp15GuBJPvlPLrUquINRrgkRCJA3yCwr224hxEG5PX82b5SgWB7mRV6OEtz2UehtjEGdAntpmkNyZnzQE7EDMRghEsfI5NwA8DOH5L39w+ieGY+Tj5ehqpl1/vr1szpHcDpXYeA3S3Iz8vBPDn3uHtOjgXcBiPchLBTCFVBz7ctivp39vvFqkeFYJWy/+WC3OEO7qzi2jzBXNhtIzVCrIlAPtY/SffLYJpDzvMIqtNGA0sJWab/M4KuT5MxZ8C62HSVcKx9ZR911slS9dSTTYaY7WN4nhpeBRIMuE8IVsI+pkI29nhzl0tgD7ctKS8kuVzLKcnlelP+H5LtZgT6kCV6jUPOa25zJvneL81gQKXhr1ZiTgZYPE75YGFoP58N5Y57ESgI/tTB6REECrgPjHBTH/wQT8pWGtr/nYScJ3r6fQnK13qMi2f0g08CJ0+4UMs6+eir60Yo9lg7zWt9pRuN5w/nNbfT6vHYYnWZTtxwoQkqEuK9alch6JTJpomUcVKxd80o90ct7B49tl1/v3OMZ8KBYFuIiLzfcL3402rsJOM3CHrnnlDvP3OUa7O+m+pBisu4zBf75lJp6MpDqboID1mU+UjG7U9eUcf1pZKSz+Z9HTj4DGotpJy6oLf5Fo7sZsjDq2Lt1WtvB8pL/Fyv4K9ubP+wCdu/iCFSkOd3M41PptyjRlCKkBCB7SCO/x4sLERJ0cLxtaz01KgYXj4R+luxhnauOD1fw6pK2Q44n1mLkvHeseaQ9OcKDS3vl60udMwCjNSHcQCgOIIqTlcUyPdGRSc13PFFkebqsyJpnwx5WObE1NSdT/MeV6oX25PmmI1IXofPPNwUAiVZzSGyfT49D9Wb10g8uQg1QjYa/j+XzYD37F0of+5ueOLxKjWUiYNthTuQaJQ9IsSMTGwWcwiJZV9d0NMedgy+TA28C4l+0lDykSCvj/F/BjTUpVw0Ls+uy/A9MreLqqdxcVjJ4a5VtVVJ9V7o2EJkpiiepQNQukYHXdniHLKCcAwPOSHiBcLTz8JeRQjWSrldWzAmM6SKaf5CXWX0aMdwvhdLYQwtQtibuDAz17jg1iubXA+nzl3U21ivhK/S/IUhKnscsFt+TsjrTcvAmHnOWSUcvep420dHMtxHYW73Bdz39wi+G702zTFl6i0tpJwK2LXB92KI/YqaaDtqGtr8Kf07hGjxFQbmFeRi68YGRGVf7ZKrseDyGZJoiTm2/4bc/FxUiwfs0tyKa9Nd1T+I2RI+Nq9cDNxanFgI8D8CvTGV5Y8h0fQDSpLrkLxe3qeaG700hpfzG6JpaMjc7Yhs9Uroi4nXNO/kQHfQ2X+Fetix5CjM+Tbp5FaJ5rouHkag6l9oHm7q4BOGiZJPeVXL0fjxehTcUISD4pU26AfOcO0pCQM/EiJ6RzrgNbbD++UcvEvy0C/nvoKgJQPDmqHuPhQ+cAuad6zDfPl5Rsjm6XXWZvh+2nWiJBWYi4WbrvRqGLlcw81m9W6LdPR/CEG3nvgETZEew34frZrTMaxb7IStDUh00KHnvFIng3aHQsIWjFya5BhSd9Zh6Mdc929n334l9416/aiGl3M1d3Nt7KyeHw4fX9T752Dwo+ayMX2vnerVf8oGQ80WPVytjoS+AQwOofyNevQd68QL4tneHneI2oela25DU0Wpb/BNSHzHxuVn34Uh01x6k07K9NjjyC7CJbsQGRu3HBjuYzr+WQ15JBJm4k0xmaJCM5IMJj3YIHCVDkwDmncyV95hj+d/QDiDwXI4g8FghDMYjHAGgxHOYDBcKP4FR9hKCDLUAUMAAAAASUVORK5CYII=">
</div>
<div class="content">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJEAAABgCAYAAAFqEaAJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACXpJREFUeNpi/P//PwMIeK56C2GQAbaHCTOCaBaYgI0mOwOlgAVdoGbZCaI1t0RZ4DfsX5sz0Ya1XfmKwmfCpujNmzdgDAeNoeR5E91QEBBqWMPwc/Mchq8W/nA5ERERDPVYXQZSCMdTM8FinGd3YDWAaG9+3bsKoqg1mijv4vXmd30nMCYWMDFQEbBgj25OwjpffMUQYoRlJ2oAgAACGwbMlyA2uaYyAvMm3Iv/yc2XR67/BDmAkew8SbX8SHReRAEfX5OfD2GGwbLOm+zpFORBHkS6EllQgTcPshDjGjD4+pGCIgbJO1AbyMt3yF4hVLTgz3Mv8LFplN8AAgjFIErqQkoBrC7FGkzUqFfJyPvEpyYQqNLhproj0LM9SUkcb9FABiCUukl2FF7LkDI6Rl4lAzBRy0H/gG0SdAcSGzJUdRSyAxg3TsMqTpWGAdHpAa0txHh+H6aD61eTFVrkJ3Rg2gFZiC0DwMXR5KiW0BHZlxNHM4pUcTIchV6QDQRgZKjaB2rPCTEMHvAOIIAYkfqAIAqUWh3p7Ij9QOwEaqtiKw4cByBUHPGmJXpXxOhpl4lhkAGCRQApvXdyehQkO4iUEQBqNFHoHmU3n/ylblWCq/qgVpuJhSoGN0cA4/YvuIKleaImpuIV+QeJhk+n9zH8UtSjKISYKHYMtE3039SdgW/bgLcmMXtZ/Bv6B6jRhqXhBgKsT2/B1ZKT+MlusLG8vM8ggNx0OLMLwWkKY3iTNY2+USawpgst9v5jZ9M1yvCpX1TNwFA0k75tbCI00T7bUxJqdOlE0r35QVYPBBcAqleXYR7iITTQ3SGqDpVTq282qFwEEEBYQ4jC+YChDBhh/UOScv5AjJnSGxDKy0wMo4A2rX1adnFpAQh1m2keSJQ6YESkJFpMoVAbxO/4RLAVNFomDXRKIthlYSB+XIfxx1cG4bklDP84eBjeJXdT5A5q9koGTUpifX4XHEBgR/34wiAyNWv4piRcMYg3Zo9vYWDYtRAyYqBlwcB47QS4LQubERtoMPApaXUfPIDAgRRWAh6rgwMiV5UN+TIJFxBcUsfATMRyHlBAvcmcCoxSJqLLuWFRJgnPyMUaQEwTMhkYT+/E9PT0bAamL++Hd5mEnjJwgX8F0xkYt8xCHWuFAqGFVQwMkRUMDGrGwzu7EVo3wdQQgt+C5R0M30y8GLi8E4dxSqJCbcVFg3JntMU9VGs3UieZSJ2NpWYqoziQMCfLiRx+f/GVDPWkDe3DACWd29HsRq2UNBhWbQ3mbglosfD+ERIO+6H+xREQVfvYgPRzhsG1vG6wAFATXwKUkrpGAwh39xKImwECCN+8my8QLwNinmEeEF+AOBKIt2Cbc8NVHvkA8aYREDgMUD9uhiYIogNo2QjMUktJqfZ5YYzhPmuL1KzhHW08jrauRwNo6PX0h/t8/2gKonUKGu6LIUbEQghCGz9Gs9hoLTYaQEO3DEIGuJbP4JKjFRiWy2dAQHhOEXgCkvHX9+GZgiiK1XcvGBh+QgJGeH45A0P1spEVQISnrvMQnD+/GT5cO8vwR0x+NIuBAPvtMwzoGwcEVncMvxSEL+bwxurUuXAmYnUaUM99YMCZegzvWowQ4D6yBj6PClqR9t87lYERthJk21yGN4omA5rF6JaCcIKLe/GbeXg5A0Ng7shMQfxruxlYCSm6dIjhjW0kSW2r4VFI//3DwPriHlFKBZc1Dv9CGgN0Eb+SjPn9CwYRXm5gdcc5MrIY86c3DILfv2CIgxZ7Mt4+h1XP/55khrfpk6iehQZlFhNcXIddgpGR4b+iLnYpYOOR5fWjEZDFrp9gwLWb9L+xK8N/nzSM86vgjcdV7XRftU/3LCayqhenHGiZMOPFg3j1fzm4noHHPnB4ZjHu4+sJK/qNfwEXz4FlwziL3TrNQPcsPVR682BQPIthqIEB74vRAgyvvthoCsIdmLRSP2zHpAcjGA0gWmcx1GldUrcQ0Ej9i6+jKWg0i40G0NAugz4zQFd9jqDNLV9ISUHRIzCxRJESQKCV56CrYL6OgIAB+dEP6mcMMOhOkRtsALQtaiKQzhsNCqxg0qA79m+0mh9iACBAe+cTEkUUx/Hvbv6p0LXMixBEh4oIOtShQzezS5eMDhL9J5Qywoqigwr9WyhaoyQLrCBSKESk6A/lQamIpEMSdNBs7ZCuiMa2m5lrudOb3UVMd3F3dsbdefP9wIOBmZ0/b7/v92eY93tx26DIHDKVi6JVseukxSlatboRbf6cHqOsnQKSnqrI/5x0whGLWQtrWKFYquxESSoTWkCF/p4waCQUEaGICJnvb2KiYIa55mYglTOuaYmI+S2RFRZwoIgMxgx1HcxAsotw0J0RZmeE7swwtHw+nS6TAowgXb/nz+A4ik1WXxdy25ug2OwYLT6AiRXr2ClWEJFuo/XlPaDzWWhTLeHteHoD2FwCFO+mamQXkR7uLPdFA7LdXbN3vH2EwLAHP7ceNPcAoYiMRMGSlivIGPoa84jsz+9DC2H5dpxkd5lBRFpGnubROvkHqD8BeIfmPDTT04uChxeAiqsiv11geRExxVdRK7S4ymYJSFm9EcGzLaGmrJlRQuu7B6gtnyr5RxFZGVU4tUJA41Hm/ORNs2qOKN8bj/mF+A4BvhGKyLJ86wHqjoWqjWnmr3CD1yuAwT7LdqMULxu1kO3+ILKw2zrF4wrQcAb+bUcwsXJ9XPGalmdL1+zMkpZo0cd2/QQ0DcfzW1j46TUtkdmzszlpuw+8exLXoTaPG0pwMrwdp7vKefUAOcEAULSLIpLRneW23Y2UwY6TgS+wny9N/EJvWsMvJbfsN4U7klpEepLX6kLmoDuxUGftJiilp8OWqNk1VVY8rpiruxP20R/wba+kJTK9O1PdUf3x8DIOCWIbGYAyPhbeHu5P+PeZ/d0oaHYCh11Sv5SU2p3ZAr+R31QD27jGui9COPZL+5J7CHGOYG05vHvOYVnhcilFJHV2lt9YpV1AenbymB9LG2toiUzpznYKN/b4JvDLl9oHWeyAveSotEG23IH1qg3AqTsgdGeElih1gfVcLtLI8xt977REhO6MkLRyZ2p5+Z7+yRh7swy4on+ezm/0vVNE/5Gq6b+E7oxQRIQiIkRjTNSBGeVpLbQmipXoMNISFSFccZ3IizPyPxuanVVHGiEh1NVh2Ask6ZjommiV7AqikctqTLSX/UCSoEwVUaFodaJ52R8kAbwR3RT+Azu0G9c3F/mKAAAAAElFTkSuQmCC">
<div>
糟糕, 网络不畅
<div>
您可以点击 &nbsp;<a href="javascript:location.reload();" style="color: #4e93cf;">刷新</a> &nbsp;或稍后再试
</div>
</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>灵犀</title>
<meta name="keywords" content="热云数据 灵犀" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0" name="viewport">
</head>
<style type="text/css">
html, body{
height: 100%;
overflow: hidden;
font-family: 'PingFang SC','Microsoft Yahei';
}
body{
margin: 0;
padding: 0;
}
.top, .content{
width: 100%;
height: 47px;
position: absolute;
}
.top{
background-color: #1b1b21;
top: 0px;
line-height: 47px;
}
.content{
height: auto;
background-color: #f1f1f1;
top: 47px;
bottom: 0px;
text-align: center;
}
.content img{
margin-top: 100px;
}
.content div{
margin-top: 30px;
color: #333333;
font-size: 16px;
}
.content div div{
margin-top: 10px;
color: #999999;
font-size: 14px;
}
</style>
<body>
<div class="top">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANwAAAAuCAYAAAE0B0cFAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAADR5JREFUeNpi/P//PwM9ARMDnQELPsnY+QwM334xcHOxMXxdnEgfH/5fncbwA4v4aSgtBsRzoOwSINYB4ix8BjLii0OgD8GSUN8xokkzA/FfNDE1IL5FtoW0AAABRFcLmQZF6gSlzJ9/GBjYWeBxR1ufrUplkAGlTpDFUHAFShugKX0NpV+SG2cwS0B5jgdJnBWIfw/6BAIQQHRP/oO+fI6aC2dOAeIQWAIebICsmIN6BFnjLyBmVxZlYGjwwVDODsQ/kficQPydSKtAGUocyrYB4iM0j7nvvxlMgZRjvhMDo78+uHooBFaICsLcGEqvIHnsNNSB6B6bg+aZmVC2DpSGmXpkNM8NZJuIngAggEZjbtRzw8FzoGrg7z9EEwZE3AW2hIJmDj7PsZCjKWEhmHqcacfAOP0QwzUgW4tEI8QJNQoHOlnKAD0GAprgyogNRe4wgUA8icU8dhz2nIfSjvTy3P8fvxn4ga3pW7/+MDjBkmfkXJzm/oHSIkhilUjsDWitGEkktiGU3khzz8kJQfsFzAyfgJQnkN4PpL+pAxOamQJWLfdx2BeAxxrkLkcOlJ5Oj3ru/9yjDIwHbiHalnnAZpipPJjPSKXswg/EHwn0+Ecr8VHPDUUAEEDDOlmOpspRMBpxo2AAuwTk9JFAANgYBbdheIDt4wXx4AkF0IiRVOAMhq9MwIYNMxNkYPvrLwaGdemjkTPgEQcDHKxgyhnY0d0DjUxQO/Q/Dzu8f/cK3vtFBXfR2qwtQDyPDCc8AXXTsJitTIZZp4DYDMqWgiZCkA+nAXHDcCsq+4F4D6hx//0XA0uECQMDkIZ170Cd8kAQg4cNkksbt8L1gQJWCYifQ2lQpF1igIzd+jNARvNBXUNXIL6GZB+oR2YJxMvRupTFQGwCZR9DUx8F7YktRBL/AMRBQFzHgBgnlofSllBzpRkg86KgSLs1nHIcyDOqIAYnGwMLsP++AsgM99ZlCA2dxSAOzI2giFsHDWRQ4DHceEEw0SEXqAehkSgL5WcDMR+UfRxKf4VmaOTci9z33wfEy6DsmUiDJQJI5gijuQMUgRfQxHiGRcQBI6kASFnHzGN4zcjIUArMZf+B7A0//jAEc7IylAMjbTVQ3puXg2HbtEhw3ecGxLuwGMWFxEaeb5kExE3QYjAfiDWAeCo0J3gCcRoQh0JzBCjSQPOz7kDcCSrBkczhxBL4ttAIT4fmJh80+RXQCF0PSmtQPtdw6ceBUv+K8NkMb9lYGHBaCIw4RmDE2UBz5mCZxpSCRjIo54GmzyRGO+CjYLQfN9IAQAD2rSYkqigKfzNPZ0YrzUAyiBa1yIiirEUU/UNIQWRJSYS2GowgapNRtKisFrUogij7M6wopIR+IIgIdJNEWYtwoRU4loMLC39izMnpnHfvnXnzeKMzRpMM98Bh3n1z581793vnnnPPd662OG1xWjRwWjRwGjgtGjgtfy//PHOimIFpXuDy7rivVDgbTT/tug54DGD7UqBsiQbnvwKnpH8YKK8TJXBntwHFRXhLpz81vQcaWgV6uR4NyKQDjoHJEbRO8YlnKFk1D8u//QC6+lA/xWPmEn+l4RaYQAppHzcxac9y427rF+wJfMc9lwtVdC4Q9zbF3xWXN3626USE7XmD7Rwnip9P4ForEZ/k5sRyUD6HkYnAVSc4z1n7qFe7/RoYjJEt7RAc3FX5OdcGhpJEdac+B7+qLHCQtNTWP38Mi1WSYxk7cgCogEg+M6UUzkTgzNLP0QgOLSjCnYJck3dThGVbdFRoSq2qjwOPJdt2rT456Gw1XIXJm22eIEaprINgypnoPGgDLWxp35efTPEwr8b8Wo+lL5O7N+R/OeUHK2ztIxnl4yxTUpAixgvlJXhKxx/I3+3t7EWlfKOPkZ42wSNb+ko+cP7MhNfbR/rYZiVMu+wgfQhBysrqZLMmmS3yJ+mA7bmHLS+GsvpF8piBPIUY693rcB89tvabTLI4ZqKZ0+KosnOT2G2whfRoqThW28tqkXw9tHWa5FKDj6TNEhyWboffMKm6OclARknjOH2n29ozMgK4FeSRwqMwIhE0ULPFcGN1zSOxtBv5DdelV1FggwTqYQpWvFypz5rlTnrW4HKChaRrLL7OqQDoJQSLncpMsz6Bj0w0hddkxFS5fy2mkvqbO1BZ14I8AqaXfFfhzmvwu13IzzZwjqcXAndW7VYa7UKz9ODiOBZmHTD2V8chin5uyqmQ95FwqcF5iFqUAtIHMlDZyG5WRn8RS/DitVmcem06SM/I3yjrMixWqXxilbT8K2lZXqWBjxuQAcQcWoAvo8CjyalTaASzG/1mldYtOfBlKf4Ph+dDKa7rUn146xZnp+g1bWvEdAQnHCZXvwsgQKB1Jerky0Z3fwiuPB8WQ5TPpSpDKfZPFrQXpAdI+b5OjtEvrQt7zYDrzIkWDZwWDZwGTsukkj8CtHetsVGUUfQsfQnYYAzUEJUqGsEUFBuV2EA0kZhqkB9aLGIkPigxamKMib+M1scfoz9AkNAoxB/aqBATkqYEkwJ1VbQqtjyadAtGIqWoKGKT1j7He2budr+dbrfbgk2z3pNM2p3OTHdm7/nuvd/ecz8LTgwGGykNBiOcwWAwwhkMRjiDwZACudlwE26/axZJz5oOvPVg0AMnBVg9xy/JWarJgjAWf/WGD2rtDDp15GuBJPvlPLrUquINRrgkRCJA3yCwr224hxEG5PX82b5SgWB7mRV6OEtz2UehtjEGdAntpmkNyZnzQE7EDMRghEsfI5NwA8DOH5L39w+ieGY+Tj5ehqpl1/vr1szpHcDpXYeA3S3Iz8vBPDn3uHtOjgXcBiPchLBTCFVBz7ctivp39vvFqkeFYJWy/+WC3OEO7qzi2jzBXNhtIzVCrIlAPtY/SffLYJpDzvMIqtNGA0sJWab/M4KuT5MxZ8C62HSVcKx9ZR911slS9dSTTYaY7WN4nhpeBRIMuE8IVsI+pkI29nhzl0tgD7ctKS8kuVzLKcnlelP+H5LtZgT6kCV6jUPOa25zJvneL81gQKXhr1ZiTgZYPE75YGFoP58N5Y57ESgI/tTB6REECrgPjHBTH/wQT8pWGtr/nYScJ3r6fQnK13qMi2f0g08CJ0+4UMs6+eir60Yo9lg7zWt9pRuN5w/nNbfT6vHYYnWZTtxwoQkqEuK9alch6JTJpomUcVKxd80o90ct7B49tl1/v3OMZ8KBYFuIiLzfcL3402rsJOM3CHrnnlDvP3OUa7O+m+pBisu4zBf75lJp6MpDqboID1mU+UjG7U9eUcf1pZKSz+Z9HTj4DGotpJy6oLf5Fo7sZsjDq2Lt1WtvB8pL/Fyv4K9ubP+wCdu/iCFSkOd3M41PptyjRlCKkBCB7SCO/x4sLERJ0cLxtaz01KgYXj4R+luxhnauOD1fw6pK2Q44n1mLkvHeseaQ9OcKDS3vl60udMwCjNSHcQCgOIIqTlcUyPdGRSc13PFFkebqsyJpnwx5WObE1NSdT/MeV6oX25PmmI1IXofPPNwUAiVZzSGyfT49D9Wb10g8uQg1QjYa/j+XzYD37F0of+5ueOLxKjWUiYNthTuQaJQ9IsSMTGwWcwiJZV9d0NMedgy+TA28C4l+0lDykSCvj/F/BjTUpVw0Ls+uy/A9MreLqqdxcVjJ4a5VtVVJ9V7o2EJkpiiepQNQukYHXdniHLKCcAwPOSHiBcLTz8JeRQjWSrldWzAmM6SKaf5CXWX0aMdwvhdLYQwtQtibuDAz17jg1iubXA+nzl3U21ivhK/S/IUhKnscsFt+TsjrTcvAmHnOWSUcvep420dHMtxHYW73Bdz39wi+G702zTFl6i0tpJwK2LXB92KI/YqaaDtqGtr8Kf07hGjxFQbmFeRi68YGRGVf7ZKrseDyGZJoiTm2/4bc/FxUiwfs0tyKa9Nd1T+I2RI+Nq9cDNxanFgI8D8CvTGV5Y8h0fQDSpLrkLxe3qeaG700hpfzG6JpaMjc7Yhs9Uroi4nXNO/kQHfQ2X+Fetix5CjM+Tbp5FaJ5rouHkag6l9oHm7q4BOGiZJPeVXL0fjxehTcUISD4pU26AfOcO0pCQM/EiJ6RzrgNbbD++UcvEvy0C/nvoKgJQPDmqHuPhQ+cAuad6zDfPl5Rsjm6XXWZvh+2nWiJBWYi4WbrvRqGLlcw81m9W6LdPR/CEG3nvgETZEew34frZrTMaxb7IStDUh00KHnvFIng3aHQsIWjFya5BhSd9Zh6Mdc929n334l9416/aiGl3M1d3Nt7KyeHw4fX9T752Dwo+ayMX2vnerVf8oGQ80WPVytjoS+AQwOofyNevQd68QL4tneHneI2oela25DU0Wpb/BNSHzHxuVn34Uh01x6k07K9NjjyC7CJbsQGRu3HBjuYzr+WQ15JBJm4k0xmaJCM5IMJj3YIHCVDkwDmncyV95hj+d/QDiDwXI4g8FghDMYjHAGgxHOYDBcKP4FR9hKCDLUAUMAAAAASUVORK5CYII=">
</div>
<div class="content">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJEAAABgCAYAAAFqEaAJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACXpJREFUeNpi/P//PwMIeK56C2GQAbaHCTOCaBaYgI0mOwOlgAVdoGbZCaI1t0RZ4DfsX5sz0Ya1XfmKwmfCpujNmzdgDAeNoeR5E91QEBBqWMPwc/Mchq8W/nA5ERERDPVYXQZSCMdTM8FinGd3YDWAaG9+3bsKoqg1mijv4vXmd30nMCYWMDFQEbBgj25OwjpffMUQYoRlJ2oAgAACGwbMlyA2uaYyAvMm3Iv/yc2XR67/BDmAkew8SbX8SHReRAEfX5OfD2GGwbLOm+zpFORBHkS6EllQgTcPshDjGjD4+pGCIgbJO1AbyMt3yF4hVLTgz3Mv8LFplN8AAgjFIErqQkoBrC7FGkzUqFfJyPvEpyYQqNLhproj0LM9SUkcb9FABiCUukl2FF7LkDI6Rl4lAzBRy0H/gG0SdAcSGzJUdRSyAxg3TsMqTpWGAdHpAa0txHh+H6aD61eTFVrkJ3Rg2gFZiC0DwMXR5KiW0BHZlxNHM4pUcTIchV6QDQRgZKjaB2rPCTEMHvAOIIAYkfqAIAqUWh3p7Ij9QOwEaqtiKw4cByBUHPGmJXpXxOhpl4lhkAGCRQApvXdyehQkO4iUEQBqNFHoHmU3n/ylblWCq/qgVpuJhSoGN0cA4/YvuIKleaImpuIV+QeJhk+n9zH8UtSjKISYKHYMtE3039SdgW/bgLcmMXtZ/Bv6B6jRhqXhBgKsT2/B1ZKT+MlusLG8vM8ggNx0OLMLwWkKY3iTNY2+USawpgst9v5jZ9M1yvCpX1TNwFA0k75tbCI00T7bUxJqdOlE0r35QVYPBBcAqleXYR7iITTQ3SGqDpVTq282qFwEEEBYQ4jC+YChDBhh/UOScv5AjJnSGxDKy0wMo4A2rX1adnFpAQh1m2keSJQ6YESkJFpMoVAbxO/4RLAVNFomDXRKIthlYSB+XIfxx1cG4bklDP84eBjeJXdT5A5q9koGTUpifX4XHEBgR/34wiAyNWv4piRcMYg3Zo9vYWDYtRAyYqBlwcB47QS4LQubERtoMPApaXUfPIDAgRRWAh6rgwMiV5UN+TIJFxBcUsfATMRyHlBAvcmcCoxSJqLLuWFRJgnPyMUaQEwTMhkYT+/E9PT0bAamL++Hd5mEnjJwgX8F0xkYt8xCHWuFAqGFVQwMkRUMDGrGwzu7EVo3wdQQgt+C5R0M30y8GLi8E4dxSqJCbcVFg3JntMU9VGs3UieZSJ2NpWYqoziQMCfLiRx+f/GVDPWkDe3DACWd29HsRq2UNBhWbQ3mbglosfD+ERIO+6H+xREQVfvYgPRzhsG1vG6wAFATXwKUkrpGAwh39xKImwECCN+8my8QLwNinmEeEF+AOBKIt2Cbc8NVHvkA8aYREDgMUD9uhiYIogNo2QjMUktJqfZ5YYzhPmuL1KzhHW08jrauRwNo6PX0h/t8/2gKonUKGu6LIUbEQghCGz9Gs9hoLTYaQEO3DEIGuJbP4JKjFRiWy2dAQHhOEXgCkvHX9+GZgiiK1XcvGBh+QgJGeH45A0P1spEVQISnrvMQnD+/GT5cO8vwR0x+NIuBAPvtMwzoGwcEVncMvxSEL+bwxurUuXAmYnUaUM99YMCZegzvWowQ4D6yBj6PClqR9t87lYERthJk21yGN4omA5rF6JaCcIKLe/GbeXg5A0Ng7shMQfxruxlYCSm6dIjhjW0kSW2r4VFI//3DwPriHlFKBZc1Dv9CGgN0Eb+SjPn9CwYRXm5gdcc5MrIY86c3DILfv2CIgxZ7Mt4+h1XP/55khrfpk6iehQZlFhNcXIddgpGR4b+iLnYpYOOR5fWjEZDFrp9gwLWb9L+xK8N/nzSM86vgjcdV7XRftU/3LCayqhenHGiZMOPFg3j1fzm4noHHPnB4ZjHu4+sJK/qNfwEXz4FlwziL3TrNQPcsPVR682BQPIthqIEB74vRAgyvvthoCsIdmLRSP2zHpAcjGA0gWmcx1GldUrcQ0Ej9i6+jKWg0i40G0NAugz4zQFd9jqDNLV9ISUHRIzCxRJESQKCV56CrYL6OgIAB+dEP6mcMMOhOkRtsALQtaiKQzhsNCqxg0qA79m+0mh9iACBAe+cTEkUUx/Hvbv6p0LXMixBEh4oIOtShQzezS5eMDhL9J5Qywoqigwr9WyhaoyQLrCBSKESk6A/lQamIpEMSdNBs7ZCuiMa2m5lrudOb3UVMd3F3dsbdefP9wIOBmZ0/b7/v92eY93tx26DIHDKVi6JVseukxSlatboRbf6cHqOsnQKSnqrI/5x0whGLWQtrWKFYquxESSoTWkCF/p4waCQUEaGICJnvb2KiYIa55mYglTOuaYmI+S2RFRZwoIgMxgx1HcxAsotw0J0RZmeE7swwtHw+nS6TAowgXb/nz+A4ik1WXxdy25ug2OwYLT6AiRXr2ClWEJFuo/XlPaDzWWhTLeHteHoD2FwCFO+mamQXkR7uLPdFA7LdXbN3vH2EwLAHP7ceNPcAoYiMRMGSlivIGPoa84jsz+9DC2H5dpxkd5lBRFpGnubROvkHqD8BeIfmPDTT04uChxeAiqsiv11geRExxVdRK7S4ymYJSFm9EcGzLaGmrJlRQuu7B6gtnyr5RxFZGVU4tUJA41Hm/ORNs2qOKN8bj/mF+A4BvhGKyLJ86wHqjoWqjWnmr3CD1yuAwT7LdqMULxu1kO3+ILKw2zrF4wrQcAb+bUcwsXJ9XPGalmdL1+zMkpZo0cd2/QQ0DcfzW1j46TUtkdmzszlpuw+8exLXoTaPG0pwMrwdp7vKefUAOcEAULSLIpLRneW23Y2UwY6TgS+wny9N/EJvWsMvJbfsN4U7klpEepLX6kLmoDuxUGftJiilp8OWqNk1VVY8rpiruxP20R/wba+kJTK9O1PdUf3x8DIOCWIbGYAyPhbeHu5P+PeZ/d0oaHYCh11Sv5SU2p3ZAr+R31QD27jGui9COPZL+5J7CHGOYG05vHvOYVnhcilFJHV2lt9YpV1AenbymB9LG2toiUzpznYKN/b4JvDLl9oHWeyAveSotEG23IH1qg3AqTsgdGeElih1gfVcLtLI8xt977REhO6MkLRyZ2p5+Z7+yRh7swy4on+ezm/0vVNE/5Gq6b+E7oxQRIQiIkRjTNSBGeVpLbQmipXoMNISFSFccZ3IizPyPxuanVVHGiEh1NVh2Ask6ZjommiV7AqikctqTLSX/UCSoEwVUaFodaJ52R8kAbwR3RT+Azu0G9c3F/mKAAAAAElFTkSuQmCC">
<div>
糟糕, 网络不畅
<div>
您可以点击 &nbsp;<a href="javascript:location.reload();" style="color: #4e93cf;">刷新</a> &nbsp;或稍后再试
</div>
</div>
</div>
</body>
</html>
"use strict";
var LIVERELOAD_PORT, lrSnippet, mountFolder;
/*解决跨域问题*/
var proxySnippet = require('grunt-connect-proxy/lib/utils').proxyRequest;
LIVERELOAD_PORT = 35728;
/*页面自动刷新,即代码有修改页面就自动刷新*/
lrSnippet = require("connect-livereload")({
port: LIVERELOAD_PORT
});
mountFolder = function(connect, dir) {
return connect["static"](require("path").resolve(dir));
};
module.exports = function(grunt) {
var yeomanConfig;
/*自动读取并加载项目 packge.json 文件中 devDependencies 配置下以 grunt-* 开头的依赖库*/
require("load-grunt-tasks")(grunt);
/*构建完成后,会给出每个任务的耗时及占总耗时的百分比*/
require("time-grunt")(grunt);
yeomanConfig = {
app: "src/main/websrc",
dist: "dist",
docs: "documentation"
};
grunt.initConfig({
yeoman: yeomanConfig,
watch: {
compass: {
files: ["<%= yeoman.app %>/styles/**/*.{scss,sass}"],
tasks: ["compass:server"]
},
livereload: {
options: {
livereload: LIVERELOAD_PORT //或者true
},
files: [
"<%= yeoman.app %>/index.html",
"<%= yeoman.app %>/template/**/*.html",
"<%= yeoman.app %>/js/**/*.js",
"<%= yeoman.app %>/styles/**/*.scss",
".tmp/styles/**/*.css",
"<%= yeoman.app %>/images/**/*.{png,jpg,jpeg,gif,webp,svg}"
]
}
},
connect: {
proxies: [{
context: ['/api'],
host: 'localhost',
//host: '192.168.2.9',
port: 8091,
https: false,
xforward: true,
hideHeaders: ['x-removed-header']
}],
options: {
port: 9008,
hostname: "*"
},
livereload: {
options: {
middleware: function (connect) {
return [lrSnippet, mountFolder(connect, ".tmp"), mountFolder(connect, yeomanConfig.app), proxySnippet];
}
}
},
test: {
options: {
middleware: function (connect) {
return [mountFolder(connect, ".tmp"), mountFolder(connect, "test")];
}
}
},
dist: {
options: {
middleware: function (connect) {
//return [mountFolder(connect, yeomanConfig.dist)];
return [lrSnippet, mountFolder(connect, yeomanConfig.dist), proxySnippet];
}
}
}
},
open: {
server: {
url: "http://localhost:<%= connect.options.port %>"
}
},
clean: {
dist: {
files: [
{
dot: true,
src: [".tmp", "<%= yeoman.dist %>/*", "!<%= yeoman.dist %>/.git*"]
}
]
},
all: [".tmp", ".sass-cache", "readme.md", "node_modules", ".git"],
server: ".tmp"
},
jshint: { //代码质量检查
options: {
jshintrc: ".jshintrc"
},
all: ["Gruntfile.js", "<%= yeoman.app %>/app/**/*.js"]
},
injector: { // JS/CSS 自动注入工具, 可以自动将 JS/CSS 的引用注入到 HTML 文件中
options: {
relative: true
},
local_dependencies: {
files: {
"<%= yeoman.app %>/index.html": [
"<%= yeoman.app %>/app/**/*.module.js",
"<%= yeoman.app %>/app/**/*.js",
"!" + "<%= yeoman.app %>/**/*.spec.js",
"<%= yeoman.app %>/**/*.css"
]
}
}
},
compass: {
options: {
sassDir: "<%= yeoman.app %>/styles",
cssDir: ".tmp/styles",
imagesDir: "<%= yeoman.app %>/images/",
javascriptsDir: "<%= yeoman.app %>/js",
httpFontsPath: "fonts",
relativeAssets: true
},
dist: {
options: {
outputStyle: 'compressed',
debugInfo: false,
noLineComments: true
}
},
server: {
options: {
debugInfo: true
}
},
forvalidation: {
options: {
debugInfo: false,
noLineComments: false
}
}
},
useminPrepare: {
html: ["<%= yeoman.app %>/index.html","<%= yeoman.app %>/login.html","<%= yeoman.app %>/activation.html","<%= yeoman.app %>/failure.html","<%= yeoman.app %>/forget.html","<%= yeoman.app %>/register.html","<%= yeoman.app %>/success.html","<%= yeoman.app %>/resetpwd.html","<%= yeoman.app %>/olduser.html","<%= yeoman.app %>/demo.html","<%= yeoman.app %>/home.html","<%= yeoman.app %>/main.html"],
options: {
dest: "<%= yeoman.dist %>",
flow: {
steps: {
js: ["concat"],
css: ["concat"] //concat,cssmin
},
post: []
}
}
},
usemin: {
html: ["<%= yeoman.dist %>/**/*.html"],
options: {
dirs: ["<%= yeoman.dist %>"],
blockReplacements: {
css:function (block) {
var final_name = block.dest;
final_name += "?r="+Math.random();
var media = block.media ? ' media="' + block.media + '"' : '';
return '<link rel="stylesheet" href="' + final_name + '"' + media + '>';//此处为css标签的定制
},
js:function (block) {
var final_name = block.dest;
final_name += "?r="+Math.random();
var defer = block.defer ? 'defer ' : '';
var async = block.async ? 'async ' : '';
return '<script ' + defer + async + 'src="' + final_name + '"><\/script>';//次处为js标签的定制
}
}
}
},
htmlmin: {
dist: {
options: {},
files: [
{
expand: true,
cwd: "<%= yeoman.app %>",
src: ["*.html", "template/**/*.html"],
dest: "<%= yeoman.dist %>"
}
]
}
},
copy: {
dist: {
files: [
{
expand: true,
dot: true,
cwd: "<%= yeoman.app %>",
dest: "<%= yeoman.dist %>",
src: [
"data/**/*",
"font/**/*",
"images/**/*",
"**/*.html",
"template/**/*.png",
"template/**/*.jpg",
"*.ico"
]
},
{
expand: true,
cwd: ".tmp/images",
dest: "<%= yeoman.dist %>/images",
src: ["generated/*"]
},
{
expand: true,
cwd: "",
dest: "<%=yeoman.dist%>",
src: ["Gruntfile.js",'test/**/*']
}
]
},
styles: {
// expand: true,
// cwd: "<%= yeoman.app %>/styles",
// dest: ".tmp/styles/",
// src: "**/*.css"
}
},
concurrent: {
server: ["compass:server", "copy:styles"],
dist: ["compass:dist", "copy:styles", "htmlmin"]
},
cssmin: {
options: {
keepSpecialComments: '0'
},
build: {
files:{
"<%= yeoman.dist %>/styles/index.css":[".tmp/styles/*.css","<%= yeoman.app %>/styles/*.css","!.tmp/styles/login.css","!.tmp/styles/home.css"],
"<%= yeoman.dist %>/styles/login.css":[".tmp/styles/login.css"],
"<%= yeoman.dist %>/styles/home.css":[".tmp/styles/home.css"]
}
}
},
concat: {
options: {
separator: grunt.util.linefeed + ';' + grunt.util.linefeed
},
// cssbuild: {
// src: ".tmp/styles/*.css",
// dest: "<%= yeoman.dist %>/styles/app.css"
// },
dist: {}
},
uglify: {
options: {
mangle: true, //混淆变量名
compress: {
drop_console: true
}
},
dist: { // if do this uglify for app, the app can not start up
files: {
"<%= yeoman.dist %>/scripts/app.js": ["<%= yeoman.dist %>/scripts/app.js"],
"<%= yeoman.dist %>/scripts/ui.js": ["<%= yeoman.dist %>/scripts/ui.js"],
"<%= yeoman.dist %>/scripts/lgui.js": ["<%= yeoman.dist %>/scripts/lgui.js"],
"<%= yeoman.dist %>/scripts/regui.js": ["<%= yeoman.dist %>/scripts/regui.js"],
"<%= yeoman.dist %>/scripts/change.js": ["<%= yeoman.dist %>/scripts/change.js"],
"<%= yeoman.dist %>/scripts/failure.js": ["<%= yeoman.dist %>/scripts/failure.js"],
"<%= yeoman.dist %>/scripts/forget.js": ["<%= yeoman.dist %>/scripts/forget.js"],
"<%= yeoman.dist %>/scripts/register.js": ["<%= yeoman.dist %>/scripts/register.js"],
"<%= yeoman.dist %>/scripts/success.js": ["<%= yeoman.dist %>/scripts/success.js"],
"<%= yeoman.dist %>/scripts/resetpwd.js": ["<%= yeoman.dist %>/scripts/resetpwd.js"],
"<%= yeoman.dist %>/scripts/olduser.js": ["<%= yeoman.dist %>/scripts/olduser.js"]
}
}
},
mock: { //currently just list all mock api in this files, we need to separate them based the module.
your_target: {
options: {
port: 9001,
delay: 200,
cookie: {},
placeholders: {
getNumArr: function (len) { //返回len个随机整数
var arr = [];
for(var i=0;i<len;i++){
arr.push(this.d1000());
}
return arr;
},
getFloatArr: function (len) { //返回len个随机浮点数
var arr = [];
for(var i=0;i<len;i++){
arr.push(this.float(0,100,0,2));
}
return arr;
},
getLastDates: function (len,hasToday) { //返回最近len天数据,hasToday为true从今天开始往前推
var arr = [];
var dd = new Date(),d = dd.getDate();
var m = d,start = 1,end = len;
if(hasToday && hasToday==true){
start = 0;
end -= 1;
}
for(var i=start;i<=end;i++){
var day = m - i;
if(day == 0){
dd.setDate(m-i);
m += dd.getDate();
}
else{
dd.setDate(m-i);
}
arr.unshift(this.date(dd,'YYYY-MM-DD'));
}
return arr;
},
getLastDay: function (len) { //返回最近第len天,0是当天
var dd = new Date(),d = dd.getDate();
dd.setDate(d-len);
return this.date(dd,'YYYY-MM-DD')
},
getLastMonth: function (len) { //返回最近第len月的第一天,0是当月,eg:2017-03-01
var dd = new Date(),m = dd.getMonth();
dd.setMonth(m-len);
dd.setDate(1);
return this.date(dd,'YYYY-MM-DD')
},
getLastWeek: function (len) { //返回最近第几周的周一,0是当周的周一
var dd = new Date(),d = dd.getDate(),w = dd.getDay();
w = w == 0 ? 7 : w;
dd.setDate(d-w+1-len*7);
return this.date(dd,'YYYY-MM-DD');
},
getHourData: function (num,hour) { //根据小时对比返回当前应显示数
var nh = new Date().getHours();
if(nh>=hour){
return num;
}
else{
return 0;
}
}
},
route: {
}
},
cwd: './test/mocks',
src: ['*.json']
}
}
});
// grunt.registerTask("docs", function() {
// return grunt.task.run(["jade:docs", "connect:docs", "open", "watch"]);
// });
grunt.registerTask("server", function(target) {
if (target === "dist") {
return grunt.task.run(["serve:dist"]);
}
return grunt.task.run(["serve"]);
});
grunt.registerTask("serve", function(target) {
if (target === "dist") {
//return grunt.task.run(["build", "open", "connect:dist:keepalive"]);
return grunt.task.run(["build", "configureProxies", "connect:dist:keepalive" , "open"]);
}
return grunt.task.run(["clean:server", "concurrent:server", "configureProxies", "connect:livereload", "open", "watch"]);
});
grunt.registerTask("build", ["clean:dist", "useminPrepare", "concurrent:dist", "copy:dist", "concat", "cssmin", "uglify", "usemin"]);
return grunt.registerTask("default", ["build"]);
};
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>灵犀</title>
<meta name="keywords" content="热云数据 灵犀" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0" name="viewport">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="styles/login.css?r=0.2909022173844278">
<script src="scripts/change.js?r=0.030827486654743552"></script>
<script src="scripts/regcom1.js?r=0.3052951830904931"></script>
<script src="scripts/regui.js?r=0.25714277545921504"></script>
</head>
<body ng-app="app" ng-controller="acvitationCtrl">
<div class="loginWrap register">
<div class="activationWrap">
<a class="logo" href="login.html"></a>
<div class="registerActivation">注册激活</div>
<div class="activationEmail" ng-show="acvitation == 0">激活邮件已发送至您的邮箱:{{registerEmail}}</div>
<div class="activationEmail" ng-show="acvitation == 1">激活邮件发送失败,请检查您的邮箱:{{registerEmail}}</div>
<div class="activationText" ng-show="acvitation == 0">请点击邮箱的链接完成账号注册!</div>
<div class="activationButton" ng-click="loginEmail()">立即登录邮箱</div>
<div class="sendChange">
<li>没有收到邮件?<a ng-show="sendtype==1" href ng-click="sendAgain()">重新发一封</a><a ng-show="sendtype==2" href>{{time/1000}}秒后可重新发送</a></li>
<li>邮箱填错了?<a ng-show="sendtype==1" href ng-click="changeEmail()">更改邮箱</a><a ng-show="sendtype==2" href style="color:#a3a3b2;">更改邮箱</a></li>
</div>
</div>
</div>
<div class="openTipWin" ng-show="winFlag==1" style="z-index: 98">
<div class="closeGray" ng-click="closeWin()"></div>
<p class="title">更改邮箱</p>
<div class="tipCont">
<div class="formDetailItem">
<div class="iptlabel must">注册邮箱:</div>
<input type="text" class="iptform" ng-model="oldemail" placeholder="请输入注册邮箱" readonly="readonly" style="background: #f3f3f3; color: #999; border: none">
<div class="em">
<em class="error" ng-if="tip.oldemail.status">{{tip.oldemail.txt}}</em>
</div>
</div>
<div class="formDetailItem">
<div class="iptlabel must">新邮箱:</div>
<input type="text" class="iptform" ng-model="newemail" placeholder="请输入新邮箱">
<div class="em">
<em class="error" ng-if="tip.newemail.status">{{tip.newemail.txt}}</em>
</div>
</div>
</div>
<div class="openBtnGroup clearfix">
<div class="btn" ng-click="saveNewEmail()">发送验证邮件</div>
</div>
</div>
<div class="copyright regt" ng-class="{'static':!hasReged}">
2017 TrackingIO.com All Rights Reserved <a href="http://www.miitbeian.gov.cn/" target="_blank">京ICP备14021832号</a>
</div>
<div class="alphaDiv" id="sysLoad" style="display: none;z-index: 99;">
<div class="spinner">
<div class="rect1"></div>
<div class="rect2"></div>
<div class="rect3"></div>
<div class="rect4"></div>
<div class="rect5"></div>
</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>灵犀</title>
<meta name="keywords" content="热云数据 灵犀" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0" name="viewport">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<script src="scripts/change.js?r=0.08680267073214054"></script>
<script src="scripts/demo.js?r=0.045918663730844855"></script>
<script type="text/javascript">
$.get("/api/demo",function(data) {
data = JSON.parse(data);
var account = data.content.account,token = data.content.token;
$.cookie("ryioUid",account.id);
$.cookie("ryioUname",account.email);
// $.cookie("ryioUauth",account.authStr);
window.localStorage.setItem("ryioUauth",account.authStr);
$.cookie("ryioToken",token);
$.cookie("ryioPastDate",account.pastDate);
var isSuper = account.isSuperUser == true && account.isChannelPerson!=true;
$.cookie("ryioIsSuper",isSuper);
window.location.href="index.html";
});
</script>
</head>
<body>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>灵犀</title>
<meta name="keywords" content="热云数据 灵犀" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0" name="viewport">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="styles/login.css?r=0.37783288047648966">
<script src="scripts/change.js?r=0.3716961811296642"></script>
<script src="scripts/regcom2.js?r=0.37709248601458967"></script>
<script src="scripts/failure.js?r=0.3122320701368153"></script>
</head>
<body ng-app="app" ng-controller="failureCtrl">
<div class="loginWrap register">
<div class="activationWrap">
<a class="logo" href="login.html"></a>
<div class="registerActivation">激活失败</div>
<div class="activationText">激活链接已失效!</div>
<div class="failureButton successButton" ng-click="sendAgain()" ng-show="failureType==1">重新激活</div>
<div class="failureButton successButton" ng-show="failureType==2" style="background:#a9a9a9;">重新激活</div>
<p class="failureError">{{failureText}}</p>
</div>
</div>
<div class="copyright regt" ng-class="{'static':!hasReged}">
2017 TrackingIO.com All Rights Reserved <a href="http://www.miitbeian.gov.cn/" target="_blank">京ICP备14021832号</a>
</div>
<div class="alphaDiv" id="sysLoad" style="display: none;z-index: 99;">
<div class="spinner">
<div class="rect1"></div>
<div class="rect2"></div>
<div class="rect3"></div>
<div class="rect4"></div>
<div class="rect5"></div>
</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>IconFont</title>
<link rel="stylesheet" href="demo.css">
<link rel="stylesheet" href="iconfont.css">
</head>
<body>
<div class="main markdown">
<h1>IconFont 图标</h1>
<ul class="icon_lists clear">
<li>
<i class="icon iconfont icon-campaigninfo"></i>
<div class="name">campaigninfo</div>
<div class="fontclass">.icon-campaigninfo</div>
</li>
<li>
<i class="icon iconfont icon-attribute"></i>
<div class="name">attribute</div>
<div class="fontclass">.icon-attribute</div>
</li>
<li>
<i class="icon iconfont icon-app"></i>
<div class="name">app</div>
<div class="fontclass">.icon-app</div>
</li>
<li>
<i class="icon iconfont icon-campaign"></i>
<div class="name">campaign</div>
<div class="fontclass">.icon-campaign</div>
</li>
<li>
<i class="icon iconfont icon-custommenu"></i>
<div class="name">custommenu</div>
<div class="fontclass">.icon-custommenu</div>
</li>
<li>
<i class="icon iconfont icon-channel"></i>
<div class="name">channel</div>
<div class="fontclass">.icon-channel</div>
</li>
<li>
<i class="icon iconfont icon-channeleffect"></i>
<div class="name">channeleffect</div>
<div class="fontclass">.icon-channeleffect</div>
</li>
<li>
<i class="icon iconfont icon-costrecovery"></i>
<div class="name">costrecovery</div>
<div class="fontclass">.icon-costrecovery</div>
</li>
<li>
<i class="icon iconfont icon-customset"></i>
<div class="name">customset</div>
<div class="fontclass">.icon-customset</div>
</li>
<li>
<i class="icon iconfont icon-android"></i>
<div class="name">android</div>
<div class="fontclass">.icon-android</div>
</li>
<li>
<i class="icon iconfont icon-dashboard"></i>
<div class="name">dashboard</div>
<div class="fontclass">.icon-dashboard</div>
</li>
<li>
<i class="icon iconfont icon-auth"></i>
<div class="name">auth</div>
<div class="fontclass">.icon-auth</div>
</li>
<li>
<i class="icon iconfont icon-eventlist"></i>
<div class="name">eventlist</div>
<div class="fontclass">.icon-eventlist</div>
</li>
<li>
<i class="icon iconfont icon-funnel"></i>
<div class="name">funnel</div>
<div class="fontclass">.icon-funnel</div>
</li>
<li>
<i class="icon iconfont icon-event"></i>
<div class="name">event</div>
<div class="fontclass">.icon-event</div>
</li>
<li>
<i class="icon iconfont icon-effectevaluate"></i>
<div class="name">effectevaluate</div>
<div class="fontclass">.icon-effectevaluate</div>
</li>
<li>
<i class="icon iconfont icon-eventstats"></i>
<div class="name">eventstats</div>
<div class="fontclass">.icon-eventstats</div>
</li>
<li>
<i class="icon iconfont icon-intelligentpath"></i>
<div class="name">intelligentpath</div>
<div class="fontclass">.icon-intelligentpath</div>
</li>
<li>
<i class="icon iconfont icon-ios"></i>
<div class="name">ios</div>
<div class="fontclass">.icon-ios</div>
</li>
<li>
<i class="icon iconfont icon-keyword"></i>
<div class="name">keyword</div>
<div class="fontclass">.icon-keyword</div>
</li>
<li>
<i class="icon iconfont icon-logdump"></i>
<div class="name">logdump</div>
<div class="fontclass">.icon-logdump</div>
</li>
<li>
<i class="icon iconfont icon-logexport"></i>
<div class="name">logexport</div>
<div class="fontclass">.icon-logexport</div>
</li>
<li>
<i class="icon iconfont icon-logtool"></i>
<div class="name">logtool</div>
<div class="fontclass">.icon-logtool</div>
</li>
<li>
<i class="icon iconfont icon-realtime"></i>
<div class="name">realtime</div>
<div class="fontclass">.icon-realtime</div>
</li>
<li>
<i class="icon iconfont icon-report"></i>
<div class="name">report</div>
<div class="fontclass">.icon-report</div>
</li>
<li>
<i class="icon iconfont icon-logo"></i>
<div class="name">logo</div>
<div class="fontclass">.icon-logo</div>
</li>
<li>
<i class="icon iconfont icon-roi"></i>
<div class="name">roi</div>
<div class="fontclass">.icon-roi</div>
</li>
<li>
<i class="icon iconfont icon-packageinfo"></i>
<div class="name">packageinfo</div>
<div class="fontclass">.icon-packageinfo</div>
</li>
<li>
<i class="icon iconfont icon-subcampaign"></i>
<div class="name">subcampaign</div>
<div class="fontclass">.icon-subcampaign</div>
</li>
<li>
<i class="icon iconfont icon-usergroup"></i>
<div class="name">usergroup</div>
<div class="fontclass">.icon-usergroup</div>
</li>
<li>
<i class="icon iconfont icon-systemparam"></i>
<div class="name">systemparam</div>
<div class="fontclass">.icon-systemparam</div>
</li>
<li>
<i class="icon iconfont icon-retention"></i>
<div class="name">retention</div>
<div class="fontclass">.icon-retention</div>
</li>
<li>
<i class="icon iconfont icon-wrap"></i>
<div class="name">wrap</div>
<div class="fontclass">.icon-wrap</div>
</li>
<li>
<i class="icon iconfont icon-web"></i>
<div class="name">web</div>
<div class="fontclass">.icon-web</div>
</li>
<li>
<i class="icon iconfont icon-userdetail"></i>
<div class="name">userdetail</div>
<div class="fontclass">.icon-userdetail</div>
</li>
<li>
<i class="icon iconfont icon-asmeffectevaluate"></i>
<div class="name">asmeffectevaluate</div>
<div class="fontclass">.icon-asmeffectevaluate</div>
</li>
</ul>
<h2 id="font-class-">font-class引用</h2>
<hr>
<p>font-class是unicode使用方式的一种变种,主要是解决unicode书写不直观,语意不明确的问题。</p>
<p>与unicode使用方式相比,具有如下特点:</p>
<ul>
<li>兼容性良好,支持ie8+,及所有现代浏览器。</li>
<li>相比于unicode语意明确,书写更直观。可以很容易分辨这个icon是什么。</li>
<li>因为使用class来定义图标,所以当要替换图标时,只需要修改class里面的unicode引用。</li>
<li>不过因为本质上还是使用的字体,所以多色图标还是不支持的。</li>
</ul>
<p>使用步骤如下:</p>
<h3 id="-fontclass-">第一步:引入项目下面生成的fontclass代码:</h3>
<pre><code class="lang-js hljs javascript"><span class="hljs-comment">&lt;link rel="stylesheet" type="text/css" href="./iconfont.css"&gt;</span></code></pre>
<h3 id="-">第二步:挑选相应图标并获取类名,应用于页面:</h3>
<pre><code class="lang-css hljs">&lt;<span class="hljs-selector-tag">i</span> <span class="hljs-selector-tag">class</span>="<span class="hljs-selector-tag">iconfont</span> <span class="hljs-selector-tag">icon-xxx</span>"&gt;&lt;/<span class="hljs-selector-tag">i</span>&gt;</code></pre>
<blockquote>
<p>"iconfont"是你项目下的font-family。可以通过编辑项目查看,默认是"iconfont"。</p>
</blockquote>
</div>
</body>
</html>
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<!--
2013-9-30: Created.
-->
<svg>
<metadata>
Created by iconfont
</metadata>
<defs>
<font id="iconfont" horiz-adv-x="1024" >
<font-face
font-family="iconfont"
font-weight="500"
font-stretch="normal"
units-per-em="1024"
ascent="896"
descent="-128"
/>
<missing-glyph />
<glyph glyph-name="x" unicode="x" horiz-adv-x="1001"
d="M281 543q-27 -1 -53 -1h-83q-18 0 -36.5 -6t-32.5 -18.5t-23 -32t-9 -45.5v-76h912v41q0 16 -0.5 30t-0.5 18q0 13 -5 29t-17 29.5t-31.5 22.5t-49.5 9h-133v-97h-438v97zM955 310v-52q0 -23 0.5 -52t0.5 -58t-10.5 -47.5t-26 -30t-33 -16t-31.5 -4.5q-14 -1 -29.5 -0.5
t-29.5 0.5h-32l-45 128h-439l-44 -128h-29h-34q-20 0 -45 1q-25 0 -41 9.5t-25.5 23t-13.5 29.5t-4 30v167h911zM163 247q-12 0 -21 -8.5t-9 -21.5t9 -21.5t21 -8.5q13 0 22 8.5t9 21.5t-9 21.5t-22 8.5zM316 123q-8 -26 -14 -48q-5 -19 -10.5 -37t-7.5 -25t-3 -15t1 -14.5
t9.5 -10.5t21.5 -4h37h67h81h80h64h36q23 0 34 12t2 38q-5 13 -9.5 30.5t-9.5 34.5q-5 19 -11 39h-368zM336 498v228q0 11 2.5 23t10 21.5t20.5 15.5t34 6h188q31 0 51.5 -14.5t20.5 -52.5v-227h-327z" />
<glyph glyph-name="campaigninfo" unicode="&#58949;" d="M1024 505.6l-352 51.2L512 896 352 556.8 0 505.6l256-262.4L192-128l320 172.8 320-172.8-64 371.2 256 262.4z m-512-384l-236.8-134.4L320 256 115.2 467.2l275.2 38.4 121.6 256 121.6-256 275.2-38.4L704 256l44.8-268.8L512 121.6z" horiz-adv-x="1024" />
<glyph glyph-name="attribute" unicode="&#58950;" d="M972.8-32l-44.8-44.8-236.8 236.8C627.2 102.4 537.6 64 448 64c-211.2 0-384 172.8-384 384s172.8 384 384 384 384-172.8 384-384c0-96-32-179.2-89.6-243.2l230.4-236.8zM768 448c0 179.2-140.8 320-320 320S128 627.2 128 448s140.8-320 320-320c172.8 0 320 140.8 320 320z" horiz-adv-x="1024" />
<glyph glyph-name="app" unicode="&#58951;" d="M768 448H576V640c0 108.8 83.2 192 192 192s192-83.2 192-192-83.2-192-192-192z m0 320c-70.4 0-128-57.6-128-128v-128h128c70.4 0 128 57.6 128 128s-57.6 128-128 128zM256-64c-108.8 0-192 83.2-192 192s83.2 192 192 192h192v-192c0-108.8-83.2-192-192-192z m128 320H256c-70.4 0-128-57.6-128-128s57.6-128 128-128 128 57.6 128 128v128zM64 640c0 108.8 83.2 192 192 192s192-83.2 192-192v-192H256C147.2 448 64 531.2 64 640z m320 0c0 70.4-57.6 128-128 128s-128-57.6-128-128 57.6-128 128-128h128V640z m576-512c0-108.8-83.2-192-192-192s-192 83.2-192 192V320h192c108.8 0 192-83.2 192-192z m-320 0c0-70.4 57.6-128 128-128s128 57.6 128 128-57.6 128-128 128h-128v-128z" horiz-adv-x="1024" />
<glyph glyph-name="campaign" unicode="&#58952;" d="M992 806.4v-844.8l-64 19.2L576 96H320C160 96 32 224 32 384s128 288 288 288h256l352 115.2m-384-179.2H320C198.4 608 96 505.6 96 384s102.4-224 224-224h224v448z m64 12.8v-473.6l320-102.4V729.6l-320-108.8z" horiz-adv-x="1024" />
<glyph glyph-name="custommenu" unicode="&#58953;" d="M864-96h-704c-70.4 0-128 57.6-128 128v704c0 70.4 57.6 128 128 128h704c70.4 0 128-57.6 128-128v-704c0-70.4-57.6-128-128-128z m64 832c0 38.4-25.6 64-64 64h-704c-38.4 0-64-25.6-64-64v-704c0-38.4 25.6-64 64-64h704c38.4 0 64 25.6 64 64v704zM832 128H192c-19.2 0-32 12.8-32 32s12.8 32 32 32h640c19.2 0 32-12.8 32-32s-12.8-32-32-32z m0 192c-19.2 0-32 12.8-32 32V524.8L576 268.8c-19.2-12.8-44.8-19.2-57.6-6.4-6.4 6.4-19.2 6.4-25.6 12.8L332.8 435.2 230.4 294.4c-19.2-12.8-38.4-12.8-51.2 0-12.8 12.8-12.8 32 0 51.2l121.6 153.6c12.8 12.8 25.6 12.8 38.4 6.4 12.8 0 19.2-6.4 32-12.8l160-160L755.2 576H576c-19.2 0-32 12.8-32 32S556.8 640 576 640h256c6.4 0 12.8 0 19.2-6.4 0 0 6.4 0 6.4-6.4 6.4-6.4 12.8-19.2 6.4-25.6v-249.6c0-19.2-12.8-32-32-32z" horiz-adv-x="1024" />
<glyph glyph-name="channel" unicode="&#58954;" d="M1024 313.6c0-25.6-6.4-44.8-12.8-70.4-57.6 25.6-128 0-160-51.2-32-57.6-19.2-128 32-166.4-12.8-12.8-32-32-51.2-44.8-19.2-12.8-38.4-32-64-44.8-19.2-12.8-44.8-25.6-70.4-32-19.2-6.4-38.4-12.8-64-19.2-6.4 64-64 108.8-128 108.8s-115.2-51.2-128-108.8c-19.2 6.4-44.8 12.8-64 19.2-25.6 6.4-44.8 19.2-70.4 32-19.2 12.8-44.8 25.6-64 44.8-19.2 12.8-32 25.6-51.2 44.8 51.2 38.4 64 108.8 32 166.4-32 57.6-102.4 76.8-160 51.2 19.2 25.6 12.8 44.8 12.8 70.4C6.4 339.2 6.4 358.4 6.4 384s0 44.8 6.4 70.4c6.4 25.6 6.4 44.8 12.8 70.4 57.6-25.6 128 0 160 51.2 32 57.6 19.2 128-32 166.4l44.8 44.8c19.2 12.8 38.4 32 64 44.8 19.2 12.8 44.8 25.6 70.4 32 19.2 6.4 38.4 12.8 64 19.2C403.2 819.2 454.4 768 518.4 768s115.2 51.2 128 108.8c19.2-6.4 44.8-12.8 64-19.2 25.6-6.4 44.8-19.2 70.4-32 19.2-12.8 44.8-25.6 64-44.8 19.2-12.8 32-25.6 51.2-44.8-51.2-38.4-64-108.8-32-166.4 32-57.6 102.4-76.8 160-51.2 6.4-19.2 12.8-44.8 12.8-70.4-6.4-19.2-6.4-38.4-6.4-64s0-44.8-6.4-70.4z m-64 134.4c-64 0-128 32-166.4 96-38.4 64-32 134.4 0 192-32 25.6-70.4 51.2-115.2 64C652.8 742.4 588.8 704 518.4 704s-134.4 38.4-166.4 96c-38.4-19.2-76.8-38.4-115.2-64 32-57.6 38.4-128 0-192C204.8 480 140.8 448 76.8 448c-6.4-19.2-6.4-44.8-6.4-64s0-44.8 6.4-64c64 0 128-32 166.4-96 38.4-64 32-134.4 0-192 32-25.6 70.4-51.2 115.2-64C384 25.6 448 64 518.4 64s134.4-38.4 166.4-96c38.4 19.2 76.8 38.4 115.2 64-32 57.6-38.4 128 0 192S902.4 320 966.4 320V384c0 19.2 0 44.8-6.4 64zM518.4 192c-108.8 0-192 83.2-192 192s83.2 192 192 192 192-83.2 192-192-83.2-192-192-192z m0 320c-70.4 0-128-57.6-128-128s57.6-128 128-128 128 57.6 128 128-57.6 128-128 128z" horiz-adv-x="1036" />
<glyph glyph-name="channeleffect" unicode="&#58955;" d="M806.4-96v64h-576v-64h-192v192h192v-64h576v64h192v-192h-192z m0 448h-192v-64h-192v64h-192v-64h-192v192h192v-64h192v64h64v192h-64v192h192v-192h-64v-192h64v-64h192v64h192v-192h-192v64z" horiz-adv-x="1024" />
<glyph glyph-name="costrecovery" unicode="&#58956;" d="M998.4 352h-64c-12.8-204.8-179.2-364.8-384-377.6v-70.4h-64v70.4c-204.8 12.8-364.8 179.2-384 377.6h-64v64h64c12.8 204.8 179.2 364.8 384 377.6v64h64v-64c204.8-12.8 364.8-179.2 384-377.6h64v-64z m-448-313.6c166.4 12.8 300.8 147.2 320 313.6h-128c-12.8-96-89.6-172.8-192-185.6v-128z m0 377.6h121.6c-12.8 64-64 115.2-121.6 121.6v-121.6z m128-64h-128v-121.6c64 6.4 115.2 57.6 128 121.6z m-192 0H364.8c12.8-64 64-115.2 121.6-121.6V352z m0-313.6v128c-96 12.8-172.8 89.6-192 185.6h-128c19.2-166.4 153.6-300.8 320-313.6z m0 697.6c-166.4-19.2-300.8-153.6-313.6-320h128c12.8 96 89.6 172.8 192 185.6V736z m-121.6-320h121.6V537.6c-64-6.4-108.8-57.6-121.6-121.6z m185.6 320v-128c96-12.8 172.8-89.6 192-185.6h128c-19.2 160-153.6 294.4-320 313.6z" horiz-adv-x="1024" />
<glyph glyph-name="customset" unicode="&#58957;" d="M896-64h-256c-38.4 0-64 25.6-64 64v256c0 38.4 25.6 64 64 64h256c38.4 0 64-25.6 64-64v-256c0-38.4-25.6-64-64-64z m0 512h-256c-38.4 0-64 25.6-64 64V768c0 38.4 25.6 64 64 64h256c38.4 0 64-25.6 64-64v-256c0-38.4-25.6-64-64-64z m-512-512H128c-38.4 0-64 25.6-64 64v256c0 38.4 25.6 64 64 64h256c38.4 0 64-25.6 64-64v-256c0-38.4-25.6-64-64-64z m0 512H128c-38.4 0-64 25.6-64 64V768c0 38.4 25.6 64 64 64h256c38.4 0 64-25.6 64-64v-256c0-38.4-25.6-64-64-64z" horiz-adv-x="1024" />
<glyph glyph-name="android" unicode="&#58958;" d="M237.510584 574.182226h555.362306v-427.69281c0-44.684323-25.533899-70.218223-70.218222-70.218223h-31.917374v-146.81992c0-31.917374-25.533899-57.451273-57.451273-57.451273s-57.451273 19.150424-63.834748 51.067798v146.81992h-108.519071v-146.81992c0-25.533899-25.533899-44.684323-51.067798-51.067798-31.917374 0-57.451273 12.76695-63.834748 38.300849v6.383474 121.286021 19.150425h-38.300849c-38.300849 0-63.834748 25.533899-63.834748 63.834747v421.309336l-6.383475 31.917374z m548.978832 38.300848h-548.978832c0 95.752122 57.451273 153.203395 140.436446 197.887719-12.76695 12.76695-19.150424 25.533899-25.533899 38.300848-6.383475 6.383475-12.76695 12.76695-19.150425 25.533899-6.383475 6.383475-12.76695 12.76695 0 19.150425 12.76695 6.383475 12.76695 0 19.150425-6.383475 6.383475-19.150424 19.150424-31.917374 31.917373-51.067798s12.76695-19.150424 31.917374-12.76695c70.218223 19.150424 140.436445 19.150424 204.271193-6.383475h6.383475c12.76695 19.150424 25.533899 44.684323 44.684323 63.834748l6.383475 6.383475c6.383475 6.383475 6.383475 12.76695 12.76695 6.383475s6.383475-12.76695 0-12.76695l-38.300849-57.451273c0-6.383475-6.383475-6.383475-6.383475-12.766949 82.985172-44.684323 140.436445-102.135596 140.436446-197.887719z m-127.669496 108.519072c0 19.150424-12.76695 31.917374-31.917374 31.917374s-31.917374-12.76695-31.917374-31.917374 12.76695-31.917374 31.917374-31.917374 31.917374 12.76695 31.917374 31.917374z m-236.188567 0c0 19.150424-12.76695 31.917374-31.917374 31.917374s-31.917374-12.76695-31.917374-31.917374 12.76695-31.917374 31.917374-31.917374 31.917374 12.76695 31.917374 31.917374z m523.444932-338.324164v-121.28602c0-38.300849-25.533899-63.834748-57.451273-63.834748s-57.451273 25.533899-57.451273 63.834748V510.347478c0 31.917374 25.533899 57.451273 51.067798 57.451273 31.917374 6.383475 57.451273-19.150424 63.834748-44.684323V382.677982zM192.826261 382.677982v-127.669495c0-25.533899-19.150424-51.067798-44.684323-57.451273-25.533899-6.383475-51.067798 6.383475-63.834748 25.533899-6.383475 6.383475-6.383475 19.150424-6.383475 31.917374v255.338991c0 38.300849 25.533899 63.834748 57.451273 63.834748s57.451273-25.533899 57.451273-63.834748c6.383475-38.300849 0-82.985172 0-127.669496z" horiz-adv-x="1024" />
<glyph glyph-name="dashboard" unicode="&#58959;" d="M512-128c-281.6 0-512 230.4-512 512s230.4 512 512 512 512-230.4 512-512-230.4-512-512-512zM512 832C262.4 832 64 633.6 64 384s198.4-448 448-448 448 198.4 448 448-198.4 448-448 448z m64-512H448V448h83.2l140.8 140.8 44.8-44.8L576 403.2V320z" horiz-adv-x="1024" />
<glyph glyph-name="auth" unicode="&#58960;" d="M800-128h-576c-70.4 0-128 57.6-128 128 0 179.2 140.8 320 320 320h192c179.2 0 320-140.8 320-320 0-70.4-57.6-128-128-128z m-192 384h-192c-140.8 0-256-115.2-256-256 0-38.4 25.6-64 64-64h576c38.4 0 64 25.6 64 64 0 140.8-115.2 256-256 256z m-128 128c-140.8 0-256 115.2-256 256s115.2 256 256 256 256-115.2 256-256-115.2-256-256-256z m0 448c-108.8 0-192-83.2-192-192s83.2-192 192-192 192 83.2 192 192-83.2 192-192 192z" horiz-adv-x="1024" />
<glyph glyph-name="eventlist" unicode="&#58961;" d="M544-32v64h448v-64h-448z m0 256h448v-64h-448v64z m0 384h448v-64h-448v64z m0 192h448v-64h-448v64z m-192-896h-256c-38.4 0-64 25.6-64 64v256c0 38.4 25.6 64 64 64h256c38.4 0 64-25.6 64-64v-256c0-38.4-25.6-64-64-64z m0 320h-256v-256h256v256z m0 256h-256c-38.4 0-64 25.6-64 64v256c0 38.4 25.6 64 64 64h256c38.4 0 64-25.6 64-64v-256c0-38.4-25.6-64-64-64z m0 320h-256v-256h256v256z" horiz-adv-x="1024" />
<glyph glyph-name="funnel" unicode="&#58962;" d="M921.6 761.6l-236.8-288v-556.8l-288 204.8-25.6 19.2V467.2L121.6 761.6l-12.8 12.8-38.4 51.2h908.8l-57.6-64z m-716.8 0l217.6-256 12.8-12.8v-320l192-134.4V492.8l6.4 6.4 211.2 256h-640z" horiz-adv-x="1024" />
<glyph glyph-name="event" unicode="&#58963;" d="M512-128c-281.6 0-512 230.4-512 512s230.4 512 512 512 512-230.4 512-512-230.4-512-512-512zM512 832C262.4 832 64 633.6 64 384s198.4-448 448-448 448 198.4 448 448-198.4 448-448 448z m0-704c-140.8 0-256 115.2-256 256s115.2 256 256 256 256-115.2 256-256-115.2-256-256-256z m0 448C403.2 576 320 492.8 320 384s83.2-192 192-192 192 83.2 192 192-83.2 192-192 192z" horiz-adv-x="1024" />
<glyph glyph-name="effectevaluate" unicode="&#58964;" d="M716.8 224l262.4-262.4-44.8-44.8-268.8 268.8v-281.6h-64v384h384v-64h-268.8z m-236.8 576c-211.2 0-384-172.8-384-384 0-192 140.8-345.6 320-377.6v-64c-217.6 32-384 217.6-384 441.6 0 249.6 198.4 448 448 448 224 0 409.6-166.4 441.6-384h-64c-32 179.2-192 320-377.6 320z m0-320c38.4 0 64-25.6 64-64s-25.6-64-64-64-64 25.6-64 64 25.6 64 64 64z" horiz-adv-x="1024" />
<glyph glyph-name="eventstats" unicode="&#58965;" d="M96-32c-38.4 0-64 25.6-64 64v192c0 12.8 6.4 25.6 12.8 32-6.4 6.4-12.8 19.2-12.8 32v192c0 12.8 6.4 25.6 12.8 32-6.4 6.4-12.8 19.2-12.8 32v192c0 38.4 25.6 64 64 64h896v-832h-896z m832 768h-832v-192h832v192z m0-256h-832v-192h832v192z m0-256h-832v-192h832v192zM192 160h128c19.2 0 32-12.8 32-32s-12.8-32-32-32H192c-19.2 0-32 12.8-32 32s12.8 32 32 32z m0 256h128c19.2 0 32-12.8 32-32s-12.8-32-32-32H192c-19.2 0-32 12.8-32 32s12.8 32 32 32z m0 256h128c19.2 0 32-12.8 32-32s-12.8-32-32-32H192c-19.2 0-32 12.8-32 32s12.8 32 32 32z" horiz-adv-x="1024" />
<glyph glyph-name="intelligentpath" unicode="&#58966;" d="M966.4 236.8c-44.8-25.6-102.4-12.8-128 32-19.2 38.4-12.8 76.8 12.8 108.8l-192 339.2c-44.8 64-121.6 89.6-185.6 51.2-64-38.4-83.2-115.2-44.8-172.8l96-166.4 32-57.6 96-166.4c51.2-89.6 19.2-211.2-70.4-262.4-89.6-51.2-211.2-19.2-262.4 70.4L128 352c-44.8-6.4-83.2 12.8-102.4 44.8C0 441.6 12.8 499.2 57.6 531.2c44.8 25.6 102.4 12.8 128-32 25.6-38.4 19.2-83.2-6.4-115.2l198.4-339.2c38.4-64 115.2-83.2 172.8-44.8 64 38.4 83.2 115.2 44.8 172.8L499.2 339.2l-32 57.6-96 166.4C320 652.8 352 774.4 441.6 825.6 531.2 876.8 652.8 844.8 704 755.2l198.4-339.2c38.4 6.4 76.8-6.4 102.4-44.8 19.2-44.8 6.4-102.4-38.4-134.4z m-832 224c-6.4 19.2-25.6 19.2-44.8 12.8-12.8-6.4-19.2-25.6-12.8-44.8 6.4-12.8 25.6-19.2 44.8-12.8 19.2 12.8 19.2 32 12.8 44.8z m812.8-121.6c-6.4 12.8-25.6 19.2-44.8 12.8-12.8-6.4-19.2-25.6-12.8-44.8 6.4-12.8 25.6-19.2 44.8-12.8 12.8 6.4 19.2 25.6 12.8 44.8z" horiz-adv-x="1024" />
<glyph glyph-name="ios" unicode="&#58967;" d="M812.8 236.8c25.6-38.4 51.2-57.6 89.6-70.4-12.8-44.8-38.4-96-70.4-140.8-44.8-76.8-96-115.2-140.8-115.2-19.2 0-38.4 6.4-76.8 19.2-32 12.8-57.6 19.2-83.2 19.2s-51.2-6.4-83.2-19.2c-32-12.8-51.2-19.2-76.8-19.2-57.6 0-115.2 44.8-166.4 147.2-51.2 96-83.2 192-83.2 288 0 83.2 25.6 153.6 64 211.2 38.4 51.2 96 83.2 160 83.2 12.8 0 32 0 44.8-6.4 12.8-12.8 32-19.2 44.8-25.6 19.2-12.8 38.4-19.2 44.8-25.6 19.2-6.4 25.6-6.4 32-6.4s25.6 0 38.4 6.4c19.2 6.4 38.4 12.8 51.2 25.6 25.6 6.4 38.4 12.8 51.2 19.2 12.8 6.4 32 6.4 38.4 6.4 44.8 0 83.2-12.8 121.6-38.4 19.2-12.8 38.4-32 57.6-51.2-32-25.6-51.2-44.8-64-64-25.6-38.4-38.4-76.8-38.4-121.6 12.8-44.8 25.6-89.6 44.8-121.6z m-185.6 441.6c-25.6-25.6-38.4-38.4-57.6-38.4-6.4 0-12.8-6.4-25.6-6.4s-25.6 0-38.4-6.4c0 51.2 19.2 108.8 38.4 140.8 32 44.8 76.8 70.4 140.8 89.6v-25.6c0-25.6-6.4-44.8-19.2-76.8 0-25.6-19.2-51.2-38.4-76.8z" horiz-adv-x="1024" />
<glyph glyph-name="keyword" unicode="&#58968;" d="M864 512c-57.6-57.6-140.8-64-198.4-19.2L435.2 262.4l-44.8 44.8 230.4 230.4c-44.8 57.6-38.4 147.2 19.2 198.4L800 896l44.8-44.8-25.6-25.6c-38.4-38.4-38.4-96 0-134.4 38.4-38.4 96-38.4 134.4 0l25.6 25.6 44.8-44.8L864 512z m-89.6 134.4c-25.6 25.6-38.4 57.6-44.8 89.6l-44.8-44.8c-38.4-38.4-38.4-96 0-134.4 38.4-38.4 96-38.4 134.4 0l44.8 44.8c-32 6.4-64 19.2-89.6 44.8zM704 345.6V320c0-140.8-115.2-256-256-256s-256 115.2-256 256 115.2 256 256 256h25.6l-6.4-64H448C339.2 512 256 428.8 256 320s83.2-192 192-192 192 83.2 192 192v19.2l64 6.4zM448 704C236.8 704 64 531.2 64 320s172.8-384 384-384 384 172.8 384 384c0 12.8 0 25.6-6.4 32l64 6.4c6.4-12.8 6.4-25.6 6.4-38.4 0-249.6-198.4-448-448-448s-448 198.4-448 448 198.4 448 448 448c12.8 0 32 0 44.8-6.4l-6.4-64C473.6 704 460.8 704 448 704z" horiz-adv-x="1024" />
<glyph glyph-name="logdump" unicode="&#58969;" d="M832-128H192c-70.4 0-128 57.6-128 128V640c0 70.4 57.6 128 128 128h128V896h64v-128h256V896h64v-128h128c70.4 0 128-57.6 128-128v-640c0-70.4-57.6-128-128-128z m64 768c0 38.4-25.6 64-64 64h-128v-128h-64V704H384v-128H320V704H192c-38.4 0-64-25.6-64-64v-640c0-38.4 25.6-64 64-64h640c38.4 0 64 25.6 64 64V640zM256 192h512v-64H256v64z m0 192h512v-64H256V384z" horiz-adv-x="1024" />
<glyph glyph-name="logexport" unicode="&#58970;" d="M960 569.6l-192-192-44.8 44.8 147.2 147.2H352c-108.8 0-192-83.2-192-192v-256h-64v256c0 140.8 115.2 256 256 256h524.8l-153.6 153.6 44.8 44.8 179.2-179.2 12.8-12.8 25.6-25.6 6.4-6.4-6.4-6.4-25.6-32z m-32-448h64v-192H32v64h896v128z" horiz-adv-x="1024" />
<glyph glyph-name="logtool" unicode="&#58971;" d="M608 550.4l134.4-134.4c25.6-25.6 25.6-64 0-89.6L608 192c-25.6-25.6-64-25.6-89.6 0L384 326.4c-25.6 25.6-25.6 64 0 89.6l134.4 134.4c25.6 25.6 64 25.6 89.6 0z m-44.8-313.6l134.4 134.4-134.4 134.4-134.4-134.4 134.4-134.4z m-480 192L0 512l44.8 44.8 51.2-51.2C147.2 710.4 332.8 857.6 550.4 857.6 812.8 857.6 1024 646.4 1024 384s-211.2-473.6-473.6-473.6c-153.6 0-294.4 76.8-377.6 192l44.8 44.8c76.8-102.4 198.4-172.8 332.8-172.8 224 0 409.6 185.6 409.6 409.6s-185.6 409.6-409.6 409.6c-185.6 0-339.2-128-390.4-300.8l64 64 44.8-44.8-89.6-89.6-44.8-44.8-38.4 38.4-12.8 12.8z" horiz-adv-x="1024" />
<glyph glyph-name="realtime" unicode="&#58972;" d="M550.4 851.2C332.8 851.2 147.2 697.6 89.6 499.2l-44.8 44.8-44.8-38.4 83.2-83.2 12.8-12.8 38.4-38.4 44.8 44.8 89.6 89.6-51.2 38.4-64-64c51.2 172.8 204.8 300.8 396.8 300.8 224 0 409.6-179.2 409.6-409.6s-185.6-409.6-409.6-409.6c-76.8 0-140.8 19.2-198.4 57.6l-32-51.2c70.4-38.4 147.2-64 230.4-64 256 0 473.6 211.2 473.6 473.6S812.8 851.2 550.4 851.2zM550.4 659.2c-19.2 0-38.4-12.8-38.4-32v-249.6c0-12.8 6.4-19.2 12.8-25.6 0-6.4 0-6.4 6.4-12.8l134.4-134.4c12.8-12.8 32-12.8 44.8 0 12.8 12.8 12.8 32 0 44.8L576 384V627.2c0 19.2-12.8 32-25.6 32zM339.2-6.4m-32 0a32 32 0 1 1 64 0 32 32 0 1 1-64 0Z" horiz-adv-x="1024" />
<glyph glyph-name="report" unicode="&#58973;" d="M832-128H192c-70.4 0-128 57.6-128 128V768c0 70.4 57.6 128 128 128h640c70.4 0 128-57.6 128-128v-768c0-70.4-57.6-128-128-128z m64 896c0 38.4-25.6 64-64 64H192c-38.4 0-64-25.6-64-64v-768c0-38.4 25.6-64 64-64h640c38.4 0 64 25.6 64 64V768z m-160-704h-128c-19.2 0-32 12.8-32 32s12.8 32 32 32h128c19.2 0 32-12.8 32-32s-12.8-32-32-32z m0 128h-64c-19.2 0-32 12.8-32 32s12.8 32 32 32h64c19.2 0 32-12.8 32-32s-12.8-32-32-32z m0 128h-64c-19.2 0-32 12.8-32 32s12.8 32 32 32h64c19.2 0 32-12.8 32-32s-12.8-32-32-32z m0 256h-448c-19.2 0-32 12.8-32 32v64c0 19.2 12.8 32 32 32h448c19.2 0 32-12.8 32-32v-64c0-19.2-12.8-32-32-32z m-448-192h256c19.2 0 32-12.8 32-32s-12.8-32-32-32h-256c-19.2 0-32 12.8-32 32s12.8 32 32 32z m0-128h256c19.2 0 32-12.8 32-32s-12.8-32-32-32h-256c-19.2 0-32 12.8-32 32s12.8 32 32 32z m0-128h192c19.2 0 32-12.8 32-32s-12.8-32-32-32h-192c-19.2 0-32 12.8-32 32s12.8 32 32 32z" horiz-adv-x="1024" />
<glyph glyph-name="logo" unicode="&#58974;" d="M4767.46752 38.4c-132.266667 0-209.066667 81.066667-209.066667 285.866667 0 209.066667 81.066667 290.133333 213.333334 290.133333s209.066667-81.066667 209.066666-285.866667c4.266667-204.8-76.8-290.133333-213.333333-290.133333z m4.266667 529.066667c-98.133333 0-162.133333-55.466667-162.133334-238.933334s64-243.2 162.133334-243.2 162.133333 55.466667 162.133333 238.933334-64 243.2-162.133333 243.2z m-409.6 38.4h46.933333v-558.933334h-46.933333V605.866667zM4042.134187-128c-72.533333 0-115.2 29.866667-132.266667 42.666667l25.6 38.4c21.333333-17.066667 51.2-38.4 115.2-38.4 81.066667 0 115.2 42.666667 115.2 123.733333v42.666667h-4.266667c-12.8-12.8-51.2-38.4-110.933333-38.4-85.333333 0-162.133333 59.733333-162.133333 200.533333 0 140.8 68.266667 234.666667 209.066666 234.666667 46.933333 0 89.6-8.533333 110.933334-21.333334v-422.4c4.266667-106.666667-59.733333-162.133333-166.4-162.133333z m123.733333 550.4c-17.066667 8.533333-46.933333 12.8-76.8 12.8-89.6 0-149.333333-59.733333-149.333333-179.2 0-132.266667 64-166.4 128-166.4 38.4 0 76.8 17.066667 98.133333 46.933333v285.866667z m-448-89.6c0 72.533333-34.133333 110.933333-102.4 110.933333-59.733333 0-102.4-38.4-119.466667-85.333333v-311.466667h-46.933333V477.866667h34.133333l8.533334-46.933334h8.533333c8.533333 12.8 51.2 55.466667 123.733333 55.466667 85.333333 0 136.533333-46.933333 140.8-140.8v-294.4h-46.933333v281.6zM3265.600853 567.466667c-21.333333 0-38.4 17.066667-38.4 38.4s17.066667 38.4 38.4 38.4 38.4-17.066667 38.4-38.4-17.066667-38.4-38.4-38.4z m-145.066666-520.533334h-59.733334l-174.933333 217.6v4.266667l162.133333 209.066667h59.733334l-166.4-204.8v-4.266667l179.2-221.866667z m-298.666667 605.866667h46.933333v-605.866667h-46.933333V652.8z m-213.333333-213.333333c-72.533333 0-123.733333-51.2-123.733334-179.2 0-132.266667 51.2-179.2 123.733334-179.2 38.4 0 68.266667 12.8 85.333333 29.866666l29.866667-34.133333c-12.8-12.8-51.2-34.133333-119.466667-34.133333-102.4 0-170.666667 59.733333-170.666667 213.333333 0 157.866667 76.8 226.133333 179.2 226.133333 68.266667 0 102.4-29.866667 115.2-38.4l-29.866666-38.4c-21.333333 21.333333-46.933333 34.133333-89.6 34.133334z m-268.8-392.533334c-42.666667 0-68.266667 25.6-76.8 55.466667h-4.266667c-21.333333-25.6-55.466667-59.733333-132.266667-59.733333s-123.733333 55.466667-123.733333 110.933333c0 93.866667 93.866667 140.8 251.733333 140.8V341.333333c0 76.8-34.133333 98.133333-98.133333 98.133334-64 0-89.6-34.133333-102.4-55.466667l-34.133333 29.866667c12.8 21.333333 55.466667 68.266667 140.8 68.266666 85.333333 0 140.8-42.666667 140.8-128v-200.533333c0-42.666667 12.8-72.533333 46.933333-72.533333h8.533333v-34.133334h-17.066666z m-85.333334 204.8c-110.933333 4.266667-204.8-25.6-204.8-93.866666 0-42.666667 29.866667-76.8 85.333334-76.8s98.133333 34.133333 119.466666 64v106.666666z m-337.066666 183.466667c-42.666667 0-85.333333-17.066667-106.666667-59.733333v-328.533334h-46.933333V477.866667h34.133333l8.533333-42.666667h4.266667c21.333333 29.866667 59.733333 51.2 106.666667 51.2 21.333333 0 34.133333-4.266667 46.933333-4.266667v-51.2c-17.066667 4.266667-29.866667 4.266667-46.933333 4.266667z m-375.466667-388.266667H1494.934187v512h-153.6v42.666667h349.866666v-42.666667h-149.333333v-512z m-576-106.666666c-38.4 21.333333-51.2 72.533333-29.866667 115.2 21.333333 38.4 72.533333 51.2 115.2 29.866666 38.4-21.333333 51.2-72.533333 29.866667-115.2-25.6-38.4-72.533333-51.2-115.2-29.866666z m-98.133333 200.533333L726.934187 221.866667c25.6 81.066667-8.533333 174.933333-85.333334 221.866666-17.066667 8.533333-34.133333 17.066667-55.466666 21.333334V627.2c51.2 12.8 89.6 42.666667 119.466666 85.333333l294.4-507.733333c-51.2-4.266667-98.133333-25.6-132.266666-64zM547.734187 729.6c-46.933333 0-81.066667 38.4-81.066667 81.066667 0 46.933333 38.4 81.066667 81.066667 81.066666s81.066667-38.4 81.066666-81.066666c0-42.666667-34.133333-81.066667-81.066666-81.066667z m-42.666667-102.4v-162.133333c-51.2-12.8-93.866667-42.666667-123.733333-89.6-25.6-46.933333-34.133333-102.4-17.066667-149.333334l-140.8-81.066666c-34.133333 38.4-81.066667 55.466667-128 59.733333L385.600853 708.266667c29.866667-38.4 68.266667-68.266667 119.466667-81.066667zM155.200853 55.466667c21.333333-38.4 8.533333-89.6-29.866666-115.2-38.4-21.333333-89.6-8.533333-115.2 29.866666-21.333333 42.666667-8.533333 93.866667 34.133333 119.466667 38.4 21.333333 89.6 8.533333 110.933333-34.133333z m349.866667 149.333333c-38.4 21.333333-51.2 72.533333-29.866667 115.2 21.333333 38.4 72.533333 51.2 115.2 29.866667 38.4-21.333333 51.2-72.533333 29.866667-115.2-25.6-38.4-76.8-51.2-115.2-29.866667z m-238.933333-132.266667l140.8 81.066667c12.8-12.8 29.866667-25.6 46.933333-38.4 76.8-46.933333 174.933333-29.866667 234.666667 38.4l140.8-81.066667c-12.8-46.933333-8.533333-93.866667 8.533333-136.533333H257.600853c17.066667 42.666667 21.333333 89.6 8.533334 136.533333z m3025.066666-25.6H3244.26752V477.866667h46.933333v-430.933334z" horiz-adv-x="4985" />
<glyph glyph-name="roi" unicode="&#58975;" d="M992 441.6v-25.6H550.4V857.6c12.8 0 19.2 6.4 32 6.4s19.2 0 32-6.4c83.2-6.4 153.6-32 217.6-76.8 19.2-12.8 38.4-32 51.2-44.8 0-6.4 6.4-6.4 6.4-12.8 12.8-12.8 25.6-32 38.4-51.2 6.4-6.4 6.4-19.2 12.8-25.6 6.4-12.8 19.2-25.6 25.6-44.8 6.4-12.8 6.4-25.6 12.8-44.8 6.4-12.8 6.4-19.2 12.8-32 6.4-25.6 6.4-51.2 6.4-83.2-6.4 6.4-6.4 0-6.4 0z m-384 358.4v-313.6h320c-19.2 160-153.6 294.4-320 313.6zM857.6 320c0-12.8 0-19.2-6.4-32-6.4-83.2-32-153.6-76.8-217.6-12.8-19.2-32-38.4-44.8-51.2-6.4 0-6.4-6.4-12.8-6.4-12.8-12.8-32-25.6-44.8-38.4-6.4-6.4-19.2-6.4-25.6-12.8-12.8-6.4-25.6-19.2-44.8-25.6-12.8-6.4-25.6-6.4-44.8-12.8-12.8-6.4-19.2-6.4-32-12.8-25.6-6.4-51.2-6.4-83.2-6.4C211.2-96 25.6 89.6 25.6 320c0 25.6 0 57.6 6.4 83.2 0 12.8 6.4 19.2 12.8 32s12.8 25.6 19.2 44.8c6.4 12.8 12.8 32 19.2 44.8 6.4 6.4 6.4 19.2 12.8 25.6 12.8 12.8 25.6 25.6 38.4 44.8 0 6.4 6.4 6.4 6.4 12.8 19.2 19.2 32 32 51.2 44.8 57.6 44.8 134.4 76.8 211.2 76.8 12.8 0 19.2 6.4 32 6.4s19.2 0 32-6.4v-377.6h377.6c12.8-12.8 12.8-19.2 12.8-32z m-377.6-32h-64V665.6c-179.2-19.2-320-166.4-320-345.6 0-192 153.6-352 352-352 185.6 0 332.8 140.8 345.6 320H480z" horiz-adv-x="1024" />
<glyph glyph-name="packageinfo" unicode="&#58976;" d="M576-64v64h384v-64H576z m0 192h384v-64H576v64z m0 128h384v-64H576v64z m320 192h-256c-38.4 0-64 25.6-64 64V768c0 38.4 25.6 64 64 64h256c38.4 0 64-25.6 64-64v-256c0-38.4-25.6-64-64-64z m0 320h-256v-256h256V768zM384-64H128c-38.4 0-64 25.6-64 64v256c0 38.4 25.6 64 64 64h256c38.4 0 64-25.6 64-64v-256c0-38.4-25.6-64-64-64z m0 320H128v-256h256v256z m0 192H128c-38.4 0-64 25.6-64 64V768c0 38.4 25.6 64 64 64h256c38.4 0 64-25.6 64-64v-256c0-38.4-25.6-64-64-64z m0 320H128v-256h256V768z" horiz-adv-x="1024" />
<glyph glyph-name="subcampaign" unicode="&#58977;" d="M928 422.4v-377.6c0-70.4-57.6-128-128-128h-576c-70.4 0-128 57.6-128 128V422.4c-38.4 0-64 25.6-64 64v192c0 38.4 25.6 64 64 64h358.4L364.8 825.6l44.8 44.8 115.2-108.8L640 870.4l44.8-44.8-89.6-89.6h332.8c38.4 0 64-25.6 64-64v-192c0-32-25.6-57.6-64-57.6z m-384-448h256c38.4 0 64 25.6 64 64v384h-320v-448z m-64 697.6h-384v-192h384v192z m0-249.6h-320v-377.6c0-38.4 25.6-64 64-64h256V422.4z m448 249.6h-384v-192h384v192z" horiz-adv-x="1024" />
<glyph glyph-name="usergroup" unicode="&#58978;" d="M979.2 185.6c25.6-32 44.8-76.8 44.8-121.6 0-108.8-83.2-192-192-192-64 0-115.2 32-153.6 76.8-32-6.4-64-12.8-102.4-12.8-179.2 0-332.8 108.8-403.2 256C76.8 204.8 0 288 0 384s76.8 179.2 172.8 192C243.2 723.2 396.8 832 576 832c38.4 0 70.4-6.4 102.4-12.8C716.8 864 768 896 832 896c108.8 0 192-83.2 192-192 0-44.8-19.2-89.6-44.8-121.6 25.6-64 44.8-128 44.8-198.4s-19.2-134.4-44.8-198.4zM64 384c0-70.4 57.6-128 128-128s128 57.6 128 128-57.6 128-128 128-128-57.6-128-128z m768 448c-70.4 0-128-57.6-128-128s57.6-128 128-128 128 57.6 128 128-57.6 128-128 128z m96-294.4c-32-12.8-64-25.6-96-25.6-108.8 0-192 83.2-192 192 0 19.2 6.4 38.4 6.4 57.6C627.2 768 601.6 768 576 768 428.8 768 307.2 684.8 243.2 569.6 326.4 544 384 473.6 384 384s-57.6-160-140.8-185.6c64-115.2 192-198.4 332.8-198.4 25.6 0 51.2 0 70.4 6.4 0 19.2-6.4 38.4-6.4 57.6 0 108.8 83.2 192 192 192 32 0 64-12.8 96-25.6 19.2 44.8 32 96 32 153.6s-12.8 108.8-32 153.6zM832 192c-70.4 0-128-57.6-128-128s57.6-128 128-128 128 57.6 128 128-57.6 128-128 128z" horiz-adv-x="1024" />
<glyph glyph-name="systemparam" unicode="&#58979;" d="M928 256c0-44.8-25.6-76.8-64-89.6v-198.4h-64v198.4c-38.4 12.8-64 44.8-64 89.6s25.6 76.8 64 89.6V800h64v-454.4c38.4-12.8 64-44.8 64-89.6z m-384 102.4v-390.4h-64V358.4c-38.4 12.8-64 44.8-64 89.6s25.6 76.8 64 89.6V800h64v-262.4c38.4-12.8 64-44.8 64-89.6s-25.6-76.8-64-89.6z m-320 128v-518.4h-64V486.4c-38.4 12.8-64 44.8-64 89.6s25.6 76.8 64 89.6V800h64v-134.4c38.4-12.8 64-44.8 64-89.6s-25.6-76.8-64-89.6z" horiz-adv-x="1024" />
<glyph glyph-name="retention" unicode="&#58980;" d="M832 576V704h128v-128h-128zM576 448h128v-128H576V448z m0 256h128v-128H576V704z m-256-512h128v-128H320v128z m0 256h128v-128H320V448z m0 256h128v-128H320V704z m-256-512h128v-128H64v128z m0 256h128v-128H64V448z m0 256h128v-128H64V704z" horiz-adv-x="1024" />
<glyph glyph-name="wrap" unicode="&#58981;" d="M812.8 172.8v-153.6c0-51.2-44.8-96-96-96H294.4c-51.2 0-96 44.8-96 96v153.6H96V691.2h102.4v57.6c0 51.2 44.8 96 96 96h428.8c51.2 0 96-44.8 96-96v-57.6h102.4v-518.4h-108.8z m-377.6-204.8H576v44.8H435.2v-44.8z m-185.6 147.2c0-25.6 19.2-44.8 44.8-44.8h428.8c25.6 0 44.8 19.2 44.8 44.8v57.6H249.6v-57.6z m0 499.2h-51.2v-384h51.2V416H448v-185.6h51.2v384H448v-153.6H249.6V614.4zM768 748.8c0 25.6-25.6 44.8-51.2 44.8H294.4c-25.6 0-44.8-25.6-44.8-44.8v-57.6H768v57.6z m19.2-294.4c-25.6 25.6-57.6 32-89.6 32-25.6 0-44.8-6.4-70.4-25.6l25.6 108.8h160v44.8h-192L576 416l44.8-6.4c6.4 12.8 19.2 25.6 25.6 25.6 12.8 6.4 25.6 12.8 38.4 12.8 25.6 0 44.8-6.4 64-19.2 19.2-12.8 19.2-32 19.2-64 0-25.6-6.4-51.2-19.2-70.4-12.8-19.2-32-25.6-57.6-25.6s-38.4 6.4-51.2 19.2c-12.8 6.4-19.2 25.6-25.6 51.2l-51.2-6.4c6.4-32 19.2-57.6 44.8-76.8 19.2-19.2 51.2-25.6 83.2-25.6 44.8 0 76.8 12.8 102.4 44.8 19.2 19.2 25.6 57.6 25.6 89.6s-6.4 70.4-32 89.6z" horiz-adv-x="1024" />
<glyph glyph-name="web" unicode="&#58982;" d="M838.4 134.4h-665.6c-51.2 0-96 38.4-96 96l6.4 416c0 51.2 38.4 96 96 96h672c51.2 0 96-38.4 96-96l-6.4-422.4c-6.4-51.2-44.8-89.6-102.4-89.6z m-428.8 44.8h192v44.8h-192v-44.8z m480 473.6c0 25.6-25.6 44.8-44.8 44.8h-672c-25.6 0-44.8-19.2-44.8-44.8l-6.4-326.4c0-25.6 25.6-44.8 44.8-44.8h672c25.6 0 44.8 25.6 44.8 44.8l6.4 326.4z m-243.2-672h-288v115.2h288v-115.2z" horiz-adv-x="1024" />
<glyph glyph-name="userdetail" unicode="&#58983;" d="M64 0h960v-64H64v64zM192 832h64v-704H192V832z m320-256h64v-448H512V576z m320 128h64v-576h-64V704z" horiz-adv-x="1024" />
<glyph glyph-name="asmeffectevaluate" unicode="&#58881;" d="M800 518.4H128v-512h192v-64H128c-38.4 0-64 25.6-64 64V838.4h736C889.6 838.4 960 768 960 678.4s-70.4-160-160-160z m0 256H128v-192h672c51.2 0 96 44.8 96 96s-44.8 96-96 96z m96-640c0 70.4-57.6 128-128 128H416l128-128-44.8-44.8-172.8 172.8H320v64h448c108.8 0 192-83.2 192-192s-83.2-192-192-192H448v64h320c70.4 0 128 57.6 128 128z" horiz-adv-x="1024" />
</font>
</defs></svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="-41 43 16 16" style="enable-background:new -41 43 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<g id="XMLID_9_">
<g id="XMLID_10_">
<path id="XMLID_11_" class="st0" d="M-37.3,48h8.7v0.2c0,2.2,0,4.3,0,6.5c0,0.7-0.4,1.1-1.1,1.1c-0.2,0-0.4,0-0.5,0
c0,0.8,0,1.5,0,2.3c0,0.5-0.4,0.9-0.9,0.9s-0.9-0.3-1-0.8c0-0.8,0-1.5,0-2.3h-1.7c0,0.3,0,0.6,0,0.9c0,0.5,0,0.9,0,1.4
c0,0.4-0.4,0.7-0.8,0.8c-0.5,0-0.9-0.2-1-0.6c0-0.1,0,0,0-0.1c0-0.6,0-1.3,0-1.9c0-0.1,0-0.2,0-0.3c-0.2,0-0.4,0-0.6,0
c-0.6,0-1-0.4-1-1c0-2.2,0-4.4,0-6.6L-37.3,48L-37.3,48z M-28.7,47.4h-8.6c0-1.5,0.9-2.4,2.2-3.1c-0.2-0.2-0.3-0.4-0.4-0.6
c-0.1-0.1-0.2-0.2-0.3-0.4c-0.1-0.1-0.2-0.2,0-0.3c0.2-0.1,0.2,0,0.3,0.1c0.1,0.3,0.3,0.5,0.5,0.8s0.2,0.3,0.5,0.2
c1.1-0.3,2.2-0.3,3.2,0.1h0.1c0.2-0.3,0.4-0.7,0.7-1l0.1-0.1c0.1-0.1,0.1-0.2,0.2-0.1c0.1,0.1,0.1,0.2,0,0.2
c-0.2,0.3-0.4,0.6-0.6,0.9c0,0.1-0.1,0.1-0.1,0.2C-29.6,45-28.7,45.9-28.7,47.4L-28.7,47.4z M-30.7,45.7c0-0.3-0.2-0.5-0.5-0.5
c-0.3,0-0.5,0.2-0.5,0.5s0.2,0.5,0.5,0.5C-30.9,46.2-30.7,46-30.7,45.7L-30.7,45.7z M-34.4,45.7c0-0.3-0.2-0.5-0.5-0.5
c-0.3,0-0.5,0.2-0.5,0.5s0.2,0.5,0.5,0.5C-34.6,46.2-34.4,46-34.4,45.7L-34.4,45.7z M-26.2,51c0,0.6,0,1.3,0,1.9s-0.4,1-0.9,1
s-0.9-0.4-0.9-1c0-1.3,0-2.6,0-3.9c0-0.5,0.4-0.9,0.8-0.9c0.5-0.1,0.9,0.3,1,0.7c0,0.1,0,0.2,0,0.3C-26.2,49.7-26.2,50.3-26.2,51
L-26.2,51z M-38,51c0,0.7,0,1.3,0,2c0,0.4-0.3,0.8-0.7,0.9c-0.4,0.1-0.8-0.1-1-0.4c-0.1-0.1-0.1-0.3-0.1-0.5c0-1.3,0-2.7,0-4
c0-0.6,0.4-1,0.9-1s0.9,0.4,0.9,1C-37.9,49.6-38,50.3-38,51L-38,51L-38,51z"/>
</g>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path class="st0" d="M12,7H9V4c0-1.7,1.3-3,3-3s3,1.3,3,3S13.7,7,12,7z M12,2c-1.1,0-2,0.9-2,2v2h2c1.1,0,2-0.9,2-2S13.1,2,12,2z
M4,15c-1.7,0-3-1.3-3-3s1.3-3,3-3h3v3C7,13.7,5.7,15,4,15z M6,10H4c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2V10z M1,4c0-1.7,1.3-3,3-3
s3,1.3,3,3v3H4C2.3,7,1,5.7,1,4z M6,4c0-1.1-0.9-2-2-2S2,2.9,2,4s0.9,2,2,2h2V4z M15,12c0,1.7-1.3,3-3,3s-3-1.3-3-3V9h3
C13.7,9,15,10.3,15,12z M10,12c0,1.1,0.9,2,2,2s2-0.9,2-2s-0.9-2-2-2h-2V12z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#5F97FB;}
</style>
<path id="XMLID_2_" class="st0" d="M12.5,5.9H2v8h2h1v1H2c-0.6,0-1-0.4-1-1v-8v-1v-3v-1h1h10.5C13.9,0.9,15,2,15,3.4
S13.9,5.9,12.5,5.9z M12.5,1.9H2v3h10.5c0.8,0,1.5-0.7,1.5-1.5S13.3,1.9,12.5,1.9z M14,11.9c0-1.1-0.9-2-2-2H6.5l2,2l-0.7,0.7
L5.1,9.9H5v-1h7c1.7,0,3,1.3,3,3s-1.3,3-3,3H7v-1h5C13.1,13.9,14,13,14,11.9z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path class="st0" d="M15.2,14.5l-0.7,0.7l-3.7-3.7C9.8,12.4,8.4,13,7,13c-3.3,0-6-2.7-6-6V7c0-3.3,2.7-6,6-6c3.3,0,6,2.7,6,6V7
c0,1.5-0.5,2.8-1.4,3.8L15.2,14.5z M12,7c0-2.8-2.2-5-5-5h0C4.2,2,2,4.2,2,7v0c0,2.8,2.2,5,5,5h0C9.7,12,12,9.8,12,7L12,7z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path id="XMLID_2_" class="st0" d="M12.5,16h-9c-1.1,0-2-0.9-2-2c0-2.8,2.2-5,5-5h3c2.8,0,5,2.2,5,5C14.5,15.1,13.6,16,12.5,16z
M9.5,10h-3c-2.2,0-4,1.8-4,4c0,0.6,0.4,1,1,1h9c0.6,0,1-0.4,1-1C13.5,11.8,11.7,10,9.5,10z M7.5,8c-2.2,0-4-1.8-4-4s1.8-4,4-4
s4,1.8,4,4S9.7,8,7.5,8z M7.5,1c-1.7,0-3,1.3-3,3s1.3,3,3,3s3-1.3,3-3S9.2,1,7.5,1z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path id="XMLID_3_" class="st0" d="M15.5,1.4v13.2l-1-0.3L9,12.5H8.5H5c-2.5,0-4.5-2-4.5-4.5s2-4.5,4.5-4.5h3.5H9l5.5-1.8 M8.5,4.5
H5C3.1,4.5,1.5,6.1,1.5,8s1.6,3.5,3.5,3.5h3.5V4.5z M9.5,4.3v0.2v7v0.2l5,1.6V2.6L9.5,4.3z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path id="XMLID_2_" class="st0" d="M16,6.1l-5.5-0.8L8,0L5.5,5.3L0,6.1l4,4.1L3,16l5-2.7l5,2.7L12,10.2L16,6.1z M8,12.1l-3.7,2.1
L5,10L1.8,6.7l4.3-0.6l1.9-4l1.9,4l4.3,0.6L11,10l0.7,4.2L8,12.1z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path id="XMLID_2_" class="st0" d="M15.9,9.1c0,0.4-0.1,0.7-0.2,1.1c-0.9-0.4-2,0-2.5,0.8c-0.5,0.9-0.3,2,0.5,2.6
c-0.2,0.2-0.5,0.5-0.8,0.7c0,0,0,0,0,0c-0.3,0.2-0.6,0.5-1,0.7c0,0,0,0,0,0c-0.3,0.2-0.7,0.4-1.1,0.5c-0.3,0.1-0.6,0.2-1,0.3
c-0.1-1-1-1.7-2-1.7s-1.8,0.8-2,1.7c-0.3-0.1-0.7-0.2-1-0.3c-0.4-0.1-0.7-0.3-1.1-0.5c0,0,0,0,0,0c-0.3-0.2-0.7-0.4-1-0.7
c0,0,0,0,0,0c-0.3-0.2-0.5-0.4-0.8-0.7c0.8-0.6,1-1.7,0.5-2.6c-0.5-0.9-1.6-1.2-2.5-0.8C0.2,9.8,0.1,9.5,0.1,9.1C0,8.7,0,8.4,0,8
s0-0.7,0.1-1.1c0.1-0.4,0.1-0.7,0.2-1.1c0.9,0.4,2,0,2.5-0.8c0.5-0.9,0.3-2-0.5-2.6C2.5,2.2,2.8,1.9,3,1.7c0,0,0,0,0,0
c0.3-0.2,0.6-0.5,1-0.7c0,0,0,0,0,0c0.3-0.2,0.7-0.4,1.1-0.5c0.3-0.1,0.6-0.2,1-0.3C6.2,1.2,7,2,8,2s1.8-0.8,2-1.7
c0.3,0.1,0.7,0.2,1,0.3c0.4,0.1,0.7,0.3,1.1,0.5c0,0,0,0,0,0c0.3,0.2,0.7,0.4,1,0.7c0,0,0,0,0,0c0.3,0.2,0.5,0.4,0.8,0.7
c-0.8,0.6-1,1.7-0.5,2.6c0.5,0.9,1.6,1.2,2.5,0.8c0.1,0.3,0.2,0.7,0.2,1.1C16,7.3,16,7.6,16,8S16,8.7,15.9,9.1z M14.9,7
c-1,0-2-0.5-2.6-1.5c-0.6-1-0.5-2.1,0-3c-0.5-0.4-1.1-0.8-1.8-1C10.1,2.4,9.1,3,8,3S5.9,2.4,5.4,1.5c-0.6,0.3-1.2,0.6-1.8,1
c0.5,0.9,0.6,2,0,3C3.1,6.5,2.1,7,1.1,7C1,7.3,1,7.7,1,8s0,0.7,0.1,1c1,0,2,0.5,2.6,1.5c0.6,1,0.5,2.1,0,3c0.5,0.4,1.1,0.8,1.8,1
C5.9,13.6,6.9,13,8,13s2.1,0.6,2.6,1.5c0.6-0.3,1.2-0.6,1.8-1c-0.5-0.9-0.6-2,0-3c0.6-1,1.6-1.5,2.6-1.5C15,8.7,15,8.3,15,8
S15,7.3,14.9,7z M8,11c-1.7,0-3-1.3-3-3s1.3-3,3-3s3,1.3,3,3S9.7,11,8,11z M8,6C6.9,6,6,6.9,6,8s0.9,2,2,2s2-0.9,2-2S9.1,6,8,6z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path id="XMLID_2_" class="st0" d="M12.6,15.5v-1h-9v1h-3v-3h3v1h9v-1h3v3H12.6z M12.6,8.5h-3v1h-3v-1h-3v1h-3v-3h3v1h3v-1h1v-3h-1
v-3h3v3h-1v3h1v1h3v-1h3v3h-3V8.5z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path id="XMLID_2_" class="st0" d="M15.6,8.5h-1c-0.2,3.2-2.8,5.7-6,5.9v1.1h-1v-1.1c-3.2-0.2-5.7-2.8-6-5.9h-1v-1h1
c0.2-3.2,2.8-5.7,6-5.9v-1h1v1c3.2,0.2,5.7,2.8,6,5.9h1V8.5z M8.6,13.4c2.6-0.2,4.7-2.3,5-4.9h-2c-0.2,1.5-1.4,2.7-3,2.9V13.4z
M8.6,7.5h1.9c-0.2-1-1-1.8-1.9-1.9V7.5z M10.6,8.5H8.6v1.9C9.6,10.3,10.4,9.5,10.6,8.5z M7.6,8.5H5.7c0.2,1,1,1.8,1.9,1.9V8.5z
M7.6,13.4v-2c-1.5-0.2-2.7-1.4-3-2.9h-2C2.9,11.1,5,13.2,7.6,13.4z M7.6,2.5C5,2.8,2.9,4.9,2.7,7.5h2c0.2-1.5,1.4-2.7,3-2.9V2.5z
M5.7,7.5h1.9V5.6C6.6,5.7,5.9,6.5,5.7,7.5z M8.6,2.5v2c1.5,0.2,2.7,1.4,3,2.9h2C13.3,4.9,11.2,2.8,8.6,2.5z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path class="st0" d="M13.5,15.5h-11c-1.1,0-2-0.9-2-2v-11c0-1.1,0.9-2,2-2h11c1.1,0,2,0.9,2,2v11C15.5,14.6,14.6,15.5,13.5,15.5z
M14.5,2.5c0-0.6-0.4-1-1-1h-11c-0.6,0-1,0.4-1,1v11c0,0.6,0.4,1,1,1h11c0.6,0,1-0.4,1-1V2.5z M13,12H3c-0.3,0-0.5-0.2-0.5-0.5
S2.7,11,3,11h10c0.3,0,0.5,0.2,0.5,0.5S13.3,12,13,12z M13,9c-0.3,0-0.5-0.2-0.5-0.5V5.8L9,9.8C8.7,10,8.3,10.1,8.1,9.9c0,0,0,0,0,0
C8,9.8,7.8,9.8,7.7,9.7L5.2,7.2L3.6,9.4C3.3,9.6,3,9.6,2.8,9.4c-0.2-0.2-0.2-0.5,0-0.8l1.9-2.4c0.2-0.2,0.4-0.2,0.6-0.1
c0.2,0,0.3,0.1,0.5,0.2l2.5,2.5L11.8,5H9C8.7,5,8.5,4.8,8.5,4.5S8.7,4,9,4h4c0.1,0,0.2,0,0.3,0.1l0,0c0,0,0.1,0,0.1,0.1
c0.1,0.1,0.2,0.3,0.1,0.4v3.9C13.5,8.8,13.3,9,13,9z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path class="st0" d="M14,15h-4c-0.6,0-1-0.4-1-1v-4c0-0.6,0.4-1,1-1h4c0.6,0,1,0.4,1,1v4C15,14.6,14.6,15,14,15z M14,7h-4
C9.4,7,9,6.6,9,6V2c0-0.6,0.4-1,1-1h4c0.6,0,1,0.4,1,1v4C15,6.6,14.6,7,14,7z M6,15H2c-0.6,0-1-0.4-1-1v-4c0-0.6,0.4-1,1-1h4
c0.6,0,1,0.4,1,1v4C7,14.6,6.6,15,6,15z M6,7H2C1.4,7,1,6.6,1,6V2c0-0.6,0.4-1,1-1h4c0.6,0,1,0.4,1,1v4C7,6.6,6.6,7,6,7z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path class="st0" d="M8,16c-4.4,0-8-3.6-8-8s3.6-8,8-8s8,3.6,8,8S12.4,16,8,16z M8,1C4.1,1,1,4.1,1,8s3.1,7,7,7s7-3.1,7-7
S11.9,1,8,1z M9,9H7V7h1.3l2.2-2.2l0.7,0.7L9,7.7V9z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path id="XMLID_2_" class="st0" d="M11.2,10.5l4.1,4.1l-0.7,0.7l-4.2-4.2v4.4h-1v-5v-1h1h5v1H11.2z M7.5,1.5c-3.3,0-6,2.7-6,6
c0,3,2.2,5.4,5,5.9v1c-3.4-0.5-6-3.4-6-6.9c0-3.9,3.1-7,7-7c3.5,0,6.4,2.6,6.9,6h-1C12.9,3.7,10.4,1.5,7.5,1.5z M7.5,6.5
c0.6,0,1,0.4,1,1s-0.4,1-1,1c-0.6,0-1-0.4-1-1S6.9,6.5,7.5,6.5z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path class="st0" d="M8,16c-4.4,0-8-3.6-8-8s3.6-8,8-8s8,3.6,8,8S12.4,16,8,16z M8,1C4.1,1,1,4.1,1,8s3.1,7,7,7s7-3.1,7-7
S11.9,1,8,1z M8,12c-2.2,0-4-1.8-4-4s1.8-4,4-4s4,1.8,4,4S10.2,12,8,12z M8,5C6.3,5,5,6.3,5,8s1.3,3,3,3s3-1.3,3-3S9.7,5,8,5z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path id="XMLID_2_" class="st0" d="M8.5,14.5v-1h7v1H8.5z M8.5,10.5h7v1h-7V10.5z M8.5,4.5h7v1h-7V4.5z M8.5,1.5h7v1h-7V1.5z
M5.5,15.5h-4c-0.6,0-1-0.4-1-1v-4c0-0.6,0.4-1,1-1h4c0.6,0,1,0.4,1,1v4C6.5,15.1,6.1,15.5,5.5,15.5z M5.5,10.5h-4v4h4V10.5z
M5.5,6.5h-4c-0.6,0-1-0.4-1-1v-4c0-0.6,0.4-1,1-1h4c0.6,0,1,0.4,1,1v4C6.5,6.1,6.1,6.5,5.5,6.5z M5.5,1.5h-4v4h4V1.5z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path id="XMLID_2_" class="st0" d="M1.5,14.5c-0.6,0-1-0.4-1-1v-3c0-0.2,0.1-0.4,0.2-0.5C0.6,9.9,0.5,9.7,0.5,9.5v-3
c0-0.2,0.1-0.4,0.2-0.5C0.6,5.9,0.5,5.7,0.5,5.5v-3c0-0.6,0.4-1,1-1h14v4v1v3v1v4H1.5z M14.5,2.5h-13v3h13V2.5z M14.5,6.5h-13v3h13
V6.5z M14.5,10.5h-13v3h13V10.5z M3,11.5h2c0.3,0,0.5,0.2,0.5,0.5S5.3,12.5,5,12.5H3c-0.3,0-0.5-0.2-0.5-0.5S2.7,11.5,3,11.5z
M3,7.5h2c0.3,0,0.5,0.2,0.5,0.5S5.3,8.5,5,8.5H3C2.7,8.5,2.5,8.3,2.5,8S2.7,7.5,3,7.5z M3,3.5h2c0.3,0,0.5,0.2,0.5,0.5
S5.3,4.5,5,4.5H3C2.7,4.5,2.5,4.3,2.5,4S2.7,3.5,3,3.5z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path id="XMLID_2_" class="st0" d="M14.4,2.1l-3.7,4.5v7.5l0,1.2l-4.5-3.2l-0.4-0.3l0-5.1L1.9,2.1L1.7,1.9L1.1,1.1l0.7,0h0.6l0,0
h11.6l0,0l0,0h1.3L14.4,2.1z M3.2,2.1l3.4,4l0.2,0.2v3.8l0,0v1.2l3,2.1v-3.3l0,0V6.3l0.1-0.1l3.3-4H3.2z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path id="XMLID_2_" class="st0" d="M15.1,10.3c-0.7,0.4-1.6,0.2-2-0.5c-0.3-0.6-0.2-1.2,0.2-1.7l-3-5.3C9.6,1.8,8.4,1.4,7.4,2
c-1,0.6-1.3,1.8-0.7,2.7l1.5,2.6l0.5,0.9l1.5,2.6c0.8,1.4,0.3,3.3-1.1,4.1c-1.4,0.8-3.3,0.3-4.1-1.1l-3-5.3C1.3,8.6,0.7,8.3,0.4,7.8
C0,7.1,0.2,6.2,0.9,5.7c0.7-0.4,1.6-0.2,2,0.5C3.3,6.8,3.2,7.5,2.8,8l3.1,5.3c0.6,1,1.8,1.3,2.7,0.7c1-0.6,1.3-1.8,0.7-2.7L7.8,8.7
L7.3,7.8L5.8,5.2C5,3.8,5.5,1.9,6.9,1.1c1.4-0.8,3.3-0.3,4.1,1.1l3.1,5.3c0.6-0.1,1.2,0.1,1.6,0.7C16,8.9,15.8,9.8,15.1,10.3z
M2.1,6.8C2,6.5,1.7,6.5,1.4,6.6C1.2,6.7,1.1,7,1.2,7.3c0.1,0.2,0.4,0.3,0.7,0.2C2.2,7.3,2.2,7,2.1,6.8z M14.8,8.7
c-0.1-0.2-0.4-0.3-0.7-0.2c-0.2,0.1-0.3,0.4-0.2,0.7c0.1,0.2,0.4,0.3,0.7,0.2C14.8,9.3,14.9,9,14.8,8.7z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="-41 43 16 16" style="enable-background:new -41 43 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path id="XMLID_4_" class="st0" d="M-28.3,53.3c0.4,0.6,0.8,0.9,1.4,1.1c-0.2,0.7-0.6,1.5-1.1,2.2c-0.7,1.2-1.5,1.8-2.2,1.8
c-0.3,0-0.6-0.1-1.2-0.3c-0.5-0.2-0.9-0.3-1.3-0.3s-0.8,0.1-1.3,0.3c-0.5,0.2-0.8,0.3-1.2,0.3c-0.9,0-1.8-0.7-2.6-2.3
c-0.8-1.5-1.3-3-1.3-4.5c0-1.3,0.4-2.4,1-3.3c0.6-0.8,1.5-1.3,2.5-1.3c0.2,0,0.5,0,0.7,0.1c0.2,0.2,0.5,0.3,0.7,0.4
c0.3,0.2,0.6,0.3,0.7,0.4c0.3,0.1,0.4,0.1,0.5,0.1s0.4,0,0.6-0.1c0.3-0.1,0.6-0.2,0.8-0.4c0.4-0.1,0.6-0.2,0.8-0.3
c0.2-0.1,0.5-0.1,0.6-0.1c0.7,0,1.3,0.2,1.9,0.6c0.3,0.2,0.6,0.5,0.9,0.8c-0.5,0.4-0.8,0.7-1,1c-0.4,0.6-0.6,1.2-0.6,1.9
C-28.8,52.1-28.6,52.8-28.3,53.3L-28.3,53.3z M-31.2,46.4c-0.4,0.4-0.6,0.6-0.9,0.6c-0.1,0-0.2,0.1-0.4,0.1s-0.4,0-0.6,0.1
c0-0.8,0.3-1.7,0.6-2.2c0.5-0.7,1.2-1.1,2.2-1.4c0,0.1,0,0.2,0,0.2v0.2c0,0.4-0.1,0.7-0.3,1.2C-30.6,45.6-30.9,46-31.2,46.4z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path class="st0" d="M13.5,6c-0.9,0.9-2.2,1-3.1,0.3L6.8,9.9L6.1,9.2l3.6-3.6C9,4.7,9.1,3.3,10,2.5L12.5,0l0.7,0.7l-0.4,0.4
c-0.6,0.6-0.6,1.5,0,2.1c0.6,0.6,1.5,0.6,2.1,0l0.4-0.4L16,3.5L13.5,6z M12.1,3.9c-0.4-0.4-0.6-0.9-0.7-1.4l-0.7,0.7
c-0.6,0.6-0.6,1.5,0,2.1c0.6,0.6,1.5,0.6,2.1,0l0.7-0.7C13,4.5,12.5,4.3,12.1,3.9z M11,8.6c0,0.1,0,0.2,0,0.4c0,2.2-1.8,4-4,4
s-4-1.8-4-4s1.8-4,4-4c0.1,0,0.3,0,0.4,0L7.3,6C7.2,6,7.1,6,7,6C5.3,6,4,7.3,4,9s1.3,3,3,3s3-1.3,3-3c0-0.1,0-0.2,0-0.3L11,8.6z
M7,3C3.7,3,1,5.7,1,9s2.7,6,6,6s6-2.7,6-6c0-0.2,0-0.4-0.1-0.5l1-0.1C14,8.6,14,8.8,14,9c0,3.9-3.1,7-7,7s-7-3.1-7-7s3.1-7,7-7
c0.2,0,0.5,0,0.7,0.1l-0.1,1C7.4,3,7.2,3,7,3z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path class="st0" d="M13,16H3c-1.1,0-2-0.9-2-2V4c0-1.1,0.9-2,2-2h2V0h1v2h4V0h1v2h2c1.1,0,2,0.9,2,2v10C15,15.1,14.1,16,13,16z
M14,4c0-0.6-0.4-1-1-1h-2v2h-1V3H6v2H5V3H3C2.4,3,2,3.4,2,4v10c0,0.6,0.4,1,1,1h10c0.6,0,1-0.4,1-1V4z M4,11h8v1H4V11z M4,8h8v1H4
V8z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path id="XMLID_3_" class="st0" d="M15,5.1l-3,3l-0.7-0.7l2.3-2.3H5.5c-1.7,0-3,1.3-3,3v4h-1v-4c0-2.2,1.8-4,4-4h8.2l-2.4-2.4L12,1
l2.8,2.8l0,0l0.2,0.2l0.4,0.4l0.1,0.1l-0.1,0.1L15,5.1z M14.5,12.1h1v2v1h-1h-14v-1h14V12.1z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 116.8 24" style="enable-background:new 0 0 116.8 24;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<g id="XMLID_24_">
<path id="XMLID_25_" class="st0" d="M111.7,20.1c-3.1,0-4.9-1.9-4.9-6.7c0-4.9,1.9-6.8,5-6.8c3.1,0,4.9,1.9,4.9,6.7
C116.8,18.1,114.9,20.1,111.7,20.1z M111.8,7.7c-2.3,0-3.8,1.3-3.8,5.6c0,4.3,1.5,5.7,3.8,5.7c2.3,0,3.8-1.3,3.8-5.6
C115.6,9.1,114.1,7.7,111.8,7.7z M102.2,6.8h1.1v13.1h-1.1V6.8z M94.7,24c-1.7,0-2.7-0.7-3.1-1l0.6-0.9c0.5,0.4,1.2,0.9,2.7,0.9
c1.9,0,2.7-1,2.7-2.9v-1h-0.1c-0.3,0.3-1.2,0.9-2.6,0.9c-2,0-3.8-1.4-3.8-4.7c0-3.3,1.6-5.5,4.9-5.5c1.1,0,2.1,0.2,2.6,0.5v9.9
C98.7,22.7,97.2,24,94.7,24z M97.6,11.1c-0.4-0.2-1.1-0.3-1.8-0.3c-2.1,0-3.5,1.4-3.5,4.2c0,3.1,1.5,3.9,3,3.9
c0.9,0,1.8-0.4,2.3-1.1V11.1z M87.1,13.2c0-1.7-0.8-2.6-2.4-2.6c-1.4,0-2.4,0.9-2.8,2v7.3h-1.1V9.8h0.8l0.2,1.1H82
c0.2-0.3,1.2-1.3,2.9-1.3c2,0,3.2,1.1,3.3,3.3v6.9h-1.1V13.2z M76.5,7.7c-0.5,0-0.9-0.4-0.9-0.9c0-0.5,0.4-0.9,0.9-0.9
c0.5,0,0.9,0.4,0.9,0.9C77.4,7.3,77,7.7,76.5,7.7z M73.1,19.9h-1.4l-4.1-5.1v-0.1l3.8-4.9h1.4l-3.9,4.8v0.1L73.1,19.9z M66.1,5.7
h1.1v14.2h-1.1V5.7z M61.1,10.7c-1.7,0-2.9,1.2-2.9,4.2c0,3.1,1.2,4.2,2.9,4.2c0.9,0,1.6-0.3,2-0.7l0.7,0.8
C63.5,19.5,62.6,20,61,20c-2.4,0-4-1.4-4-5c0-3.7,1.8-5.3,4.2-5.3c1.6,0,2.4,0.7,2.7,0.9l-0.7,0.9C62.7,11,62.1,10.7,61.1,10.7z
M54.8,19.9c-1,0-1.6-0.6-1.8-1.3h-0.1c-0.5,0.6-1.3,1.4-3.1,1.4c-1.8,0-2.9-1.3-2.9-2.6c0-2.2,2.2-3.3,5.9-3.3V13
c0-1.8-0.8-2.3-2.3-2.3c-1.5,0-2.1,0.8-2.4,1.3l-0.8-0.7c0.3-0.5,1.3-1.6,3.3-1.6c2,0,3.3,1,3.3,3v4.7c0,1,0.3,1.7,1.1,1.7h0.2v0.8
C55.1,19.9,55,19.9,54.8,19.9z M52.8,15.1c-2.6-0.1-4.8,0.6-4.8,2.2c0,1,0.7,1.8,2,1.8c1.3,0,2.3-0.8,2.8-1.5V15.1z M44.9,10.8
c-1,0-2,0.4-2.5,1.4v7.7h-1.1V9.8h0.8l0.2,1h0.1c0.5-0.7,1.4-1.2,2.5-1.2c0.5,0,0.8,0.1,1.1,0.1v1.2C45.6,10.8,45.3,10.8,44.9,10.8
z M36.1,19.9H35v-12h-3.6v-1h8.2v1h-3.5V19.9z M22.6,22.4c-0.9-0.5-1.2-1.7-0.7-2.7c0.5-0.9,1.7-1.2,2.7-0.7
c0.9,0.5,1.2,1.7,0.7,2.7C24.7,22.6,23.6,22.9,22.6,22.4z M20.3,17.7L17,15.8c0.6-1.9-0.2-4.1-2-5.2c-0.4-0.2-0.8-0.4-1.3-0.5V6.3
c1.2-0.3,2.1-1,2.8-2l6.9,11.9C22.2,16.3,21.1,16.8,20.3,17.7z M12.8,3.9c-1.1,0-1.9-0.9-1.9-1.9c0-1.1,0.9-1.9,1.9-1.9
s1.9,0.9,1.9,1.9C14.7,3,13.9,3.9,12.8,3.9z M11.8,6.3v3.8c-1.2,0.3-2.2,1-2.9,2.1c-0.6,1.1-0.8,2.4-0.4,3.5l-3.3,1.9
c-0.8-0.9-1.9-1.3-3-1.4L9,4.4C9.7,5.3,10.6,6,11.8,6.3z M3.6,19.7c0.5,0.9,0.2,2.1-0.7,2.7c-0.9,0.5-2.1,0.2-2.7-0.7
C-0.3,20.7,0,19.5,1,18.9C1.9,18.4,3.1,18.7,3.6,19.7z M11.8,16.2c-0.9-0.5-1.2-1.7-0.7-2.7c0.5-0.9,1.7-1.2,2.7-0.7
c0.9,0.5,1.2,1.7,0.7,2.7C13.9,16.4,12.7,16.7,11.8,16.2z M6.2,19.3l3.3-1.9c0.3,0.3,0.7,0.6,1.1,0.9c1.8,1.1,4.1,0.7,5.5-0.9
l3.3,1.9c-0.3,1.1-0.2,2.2,0.2,3.2L6,22.5C6.4,21.5,6.5,20.4,6.2,19.3z M77.1,19.9H76V9.8h1.1V19.9z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path id="XMLID_3_" class="st0" d="M9.5,5.4l2.1,2.1c0.4,0.4,0.4,1,0,1.4L9.5,11c-0.4,0.4-1,0.4-1.4,0L6,8.9c-0.4-0.4-0.4-1,0-1.4
l2.1-2.1C8.5,5,9.1,5,9.5,5.4z M8.8,10.3l2.1-2.1L8.8,6.1L6.7,8.2L8.8,10.3z M1.3,7.3L0,6l0.7-0.7l0.8,0.8c0.8-3.2,3.7-5.5,7.1-5.5
C12.7,0.6,16,3.9,16,8s-3.3,7.4-7.4,7.4c-2.4,0-4.6-1.2-5.9-3l0.7-0.7c1.2,1.6,3.1,2.7,5.2,2.7c3.5,0,6.4-2.9,6.4-6.4
s-2.9-6.4-6.4-6.4c-2.9,0-5.3,2-6.1,4.7l1-1L4.2,6L2.8,7.4v0L2.1,8.1l0,0h0L1.5,7.5L1.3,7.3z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path id="XMLID_2_" class="st0" d="M9,15v-1h6v1H9z M9,12h6v1H9V12z M9,10h6v1H9V10z M14,7h-4C9.4,7,9,6.6,9,6V2c0-0.6,0.4-1,1-1h4
c0.6,0,1,0.4,1,1v4C15,6.6,14.6,7,14,7z M14,2h-4v4h4V2z M6,15H2c-0.6,0-1-0.4-1-1v-4c0-0.6,0.4-1,1-1h4c0.6,0,1,0.4,1,1v4
C7,14.6,6.6,15,6,15z M6,10H2v4h4V10z M6,7H2C1.4,7,1,6.6,1,6V2c0-0.6,0.4-1,1-1h4c0.6,0,1,0.4,1,1v4C7,6.6,6.6,7,6,7z M6,2H2v4h4V2
z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<g id="XMLID_6_">
<path id="XMLID_3_" class="st0" d="M8.6,0.7c-3.4,0-6.3,2.4-7.2,5.5L0.7,5.5L0,6.1l1.3,1.3l0.2,0.2l0.6,0.6l0,0l0.7-0.7l0,0
l1.4-1.4L3.4,5.5l-1,1c0.8-2.7,3.2-4.7,6.2-4.7c3.5,0,6.4,2.8,6.4,6.4s-2.9,6.4-6.4,6.4c-1.2,0-2.2-0.3-3.1-0.9L5,14.5l0,0
c1.1,0.6,2.3,1,3.6,1c4,0,7.4-3.3,7.4-7.4S12.7,0.7,8.6,0.7z"/>
<path id="XMLID_2_" class="st0" d="M8.6,3.7C8.3,3.7,8,3.9,8,4.2v3.9c0,0.2,0.1,0.3,0.2,0.4c0,0.1,0,0.1,0.1,0.2l2.1,2.1
c0.2,0.2,0.5,0.2,0.7,0c0.2-0.2,0.2-0.5,0-0.7L9,8V4.2C9,3.9,8.8,3.7,8.6,3.7z"/>
</g>
<circle id="XMLID_1_" class="st0" cx="5.3" cy="14.1" r="0.5"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path class="st0" d="M13,16H3c-1.1,0-2-0.9-2-2V2c0-1.1,0.9-2,2-2h10c1.1,0,2,0.9,2,2v12C15,15.1,14.1,16,13,16z M14,2
c0-0.6-0.4-1-1-1H3C2.4,1,2,1.4,2,2v12c0,0.6,0.4,1,1,1h10c0.6,0,1-0.4,1-1V2z M11.5,13h-2C9.2,13,9,12.8,9,12.5S9.2,12,9.5,12h2
c0.3,0,0.5,0.2,0.5,0.5S11.8,13,11.5,13z M11.5,11h-1c-0.3,0-0.5-0.2-0.5-0.5s0.2-0.5,0.5-0.5h1c0.3,0,0.5,0.2,0.5,0.5
S11.8,11,11.5,11z M11.5,9h-1C10.2,9,10,8.8,10,8.5S10.2,8,10.5,8h1C11.8,8,12,8.2,12,8.5S11.8,9,11.5,9z M11.5,5h-7
C4.2,5,4,4.8,4,4.5v-1C4,3.2,4.2,3,4.5,3h7C11.8,3,12,3.2,12,3.5v1C12,4.8,11.8,5,11.5,5z M4.5,8h4C8.8,8,9,8.2,9,8.5S8.8,9,8.5,9
h-4C4.2,9,4,8.8,4,8.5S4.2,8,4.5,8z M4.5,10h4C8.8,10,9,10.2,9,10.5S8.8,11,8.5,11h-4C4.2,11,4,10.8,4,10.5S4.2,10,4.5,10z M4.5,12
h3C7.8,12,8,12.2,8,12.5S7.8,13,7.5,13h-3C4.2,13,4,12.8,4,12.5S4.2,12,4.5,12z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path id="XMLID_2_" class="st0" d="M13,5V3h2v2H13z M9,7h2v2H9V7z M9,3h2v2H9V3z M5,11h2v2H5V11z M5,7h2v2H5V7z M5,3h2v2H5V3z M1,11
h2v2H1V11z M1,7h2v2H1V7z M1,3h2v2H1V3z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path id="XMLID_2_" class="st0" d="M15.5,7.1c0,0.1,0,0.2,0,0.4h-0.9l0,0h-5h-1v-1V0.6c0.2,0,0.3-0.1,0.5-0.1s0.3,0,0.5,0.1
c1.3,0.1,2.4,0.5,3.4,1.2c0,0,0,0,0,0c0.3,0.2,0.6,0.5,0.8,0.7c0,0.1,0.1,0.1,0.1,0.2c0.2,0.2,0.4,0.5,0.6,0.8
c0.1,0.1,0.1,0.3,0.2,0.4c0.1,0.2,0.3,0.4,0.4,0.7c0.1,0.2,0.1,0.4,0.2,0.7c0.1,0.2,0.1,0.3,0.2,0.5c0.1,0.4,0.1,0.8,0.1,1.3l0,0
C15.5,7,15.5,7.1,15.5,7.1z M9.5,1.5v4.9h5C14.2,3.9,12.1,1.8,9.5,1.5z M13.4,9c0,0.2,0,0.3-0.1,0.5c-0.1,1.3-0.5,2.4-1.2,3.4
c0,0,0,0,0,0c-0.2,0.3-0.5,0.6-0.7,0.8c-0.1,0-0.1,0.1-0.2,0.1c-0.2,0.2-0.5,0.4-0.7,0.6c-0.1,0.1-0.3,0.1-0.4,0.2
c-0.2,0.1-0.4,0.3-0.7,0.4c-0.2,0.1-0.4,0.1-0.7,0.2c-0.2,0.1-0.3,0.1-0.5,0.2c-0.4,0.1-0.8,0.1-1.3,0.1c-3.6,0-6.5-2.9-6.5-6.5
c0-0.4,0-0.9,0.1-1.3c0-0.2,0.1-0.3,0.2-0.5C0.8,7,0.9,6.8,1,6.5c0.1-0.2,0.2-0.5,0.3-0.7c0.1-0.1,0.1-0.3,0.2-0.4
C1.7,5.2,1.9,5,2.1,4.7c0-0.1,0.1-0.1,0.1-0.2c0.3-0.3,0.5-0.5,0.8-0.7c0,0,0,0,0,0c0.9-0.7,2.1-1.2,3.3-1.2c0.2,0,0.3-0.1,0.5-0.1
c0.2,0,0.3,0,0.5,0.1v5.9h5.9C13.4,8.7,13.4,8.8,13.4,9z M7.5,9.5h-1v-1V3.6c-2.8,0.3-5,2.6-5,5.4c0,3,2.4,5.5,5.5,5.5
c2.9,0,5.2-2.2,5.4-5H7.5z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path id="XMLID_2_" class="st0" d="M14.5,7.4v5.9c0,1.1-0.9,2-2,2h-9c-1.1,0-2-0.9-2-2V7.4c-0.6,0-1-0.4-1-1v-3c0-0.6,0.4-1,1-1h5.6
L5.7,1.1l0.7-0.7l1.8,1.7l1.8-1.7l0.7,0.7L9.3,2.5h5.2c0.6,0,1,0.4,1,1v3C15.5,7,15.1,7.4,14.5,7.4z M8.5,14.4h4c0.6,0,1-0.4,1-1
V7.4h-5V14.4z M7.5,3.5h-6v3h6V3.5z M7.5,7.4h-5v5.9c0,0.6,0.4,1,1,1h4V7.4z M14.5,3.5h-6v3h6V3.5z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path id="XMLID_2_" class="st0" d="M14.5,10c0,0.7-0.4,1.2-1,1.4v3.1h-1v-3.1c-0.6-0.2-1-0.7-1-1.4s0.4-1.2,1-1.4V1.5h1v7.1
C14.1,8.8,14.5,9.3,14.5,10z M8.5,8.4v6.1h-1V8.4c-0.6-0.2-1-0.7-1-1.4s0.4-1.2,1-1.4V1.5h1v4.1c0.6,0.2,1,0.7,1,1.4
S9.1,8.2,8.5,8.4z M3.5,6.4v8.1h-1V6.4c-0.6-0.2-1-0.7-1-1.4s0.4-1.2,1-1.4V1.5h1v2.1c0.6,0.2,1,0.7,1,1.4S4.1,6.2,3.5,6.4z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path id="XMLID_2_" class="st0" d="M15.3,11.1c0.4,0.5,0.7,1.2,0.7,1.9c0,1.7-1.3,3-3,3c-1,0-1.8-0.5-2.4-1.2C10.1,14.9,9.6,15,9,15
c-2.8,0-5.2-1.7-6.3-4C1.2,10.8,0,9.5,0,8s1.2-2.8,2.7-3C3.8,2.7,6.2,1,9,1c0.6,0,1.1,0.1,1.6,0.2C11.2,0.5,12,0,13,0
c1.7,0,3,1.3,3,3c0,0.7-0.3,1.4-0.7,1.9C15.7,5.9,16,6.9,16,8S15.7,10.1,15.3,11.1z M1,8c0,1.1,0.9,2,2,2s2-0.9,2-2S4.1,6,3,6
S1,6.9,1,8z M13,1c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S14.1,1,13,1z M14.5,5.6C14,5.8,13.5,6,13,6c-1.7,0-3-1.3-3-3
c0-0.3,0.1-0.6,0.1-0.9C9.8,2,9.4,2,9,2C6.7,2,4.8,3.3,3.8,5.1C5.1,5.5,6,6.6,6,8s-0.9,2.5-2.2,2.9c1,1.8,3,3.1,5.2,3.1
c0.4,0,0.8,0,1.1-0.1C10.1,13.6,10,13.3,10,13c0-1.7,1.3-3,3-3c0.5,0,1,0.2,1.5,0.4C14.8,9.7,15,8.9,15,8S14.8,6.3,14.5,5.6z M13,11
c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S14.1,11,13,11z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="-41 43 16 16" style="enable-background:new -41 43 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path id="XMLID_1_" class="st0" d="M-27.9,54.9h-10.4c-0.8,0-1.5-0.6-1.5-1.5l0.1-6.5c0-0.8,0.6-1.5,1.5-1.5h10.5
c0.8,0,1.5,0.6,1.5,1.5l-0.1,6.6C-26.4,54.3-27,54.9-27.9,54.9z M-34.6,54.2h3v-0.7h-3V54.2z M-27.1,46.8c0-0.4-0.4-0.7-0.7-0.7
h-10.5c-0.4,0-0.7,0.3-0.7,0.7l-0.1,5.1c0,0.4,0.4,0.7,0.7,0.7h10.5c0.4,0,0.7-0.4,0.7-0.7L-27.1,46.8z M-30.9,57.3h-4.5v-1.8h4.5
V57.3z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#4186EC;}
</style>
<path id="XMLID_2_" class="st0" d="M12.7,11.3v2.4c0,0.8-0.7,1.5-1.5,1.5H4.6c-0.8,0-1.5-0.7-1.5-1.5v-2.4H1.5V3.2h1.6V2.3
c0-0.8,0.7-1.5,1.5-1.5h6.7c0.8,0,1.5,0.7,1.5,1.5v0.9h1.6v8.1H12.7z M6.8,14.5H9v-0.7H6.8V14.5z M3.9,12.2c0,0.4,0.3,0.7,0.7,0.7
h6.7c0.4,0,0.7-0.3,0.7-0.7v-0.9H3.9V12.2z M3.9,4.4H3.1v6h0.8V7.5H7v2.9h0.8v-6H7v2.4H3.9V4.4z M12,2.3c0-0.4-0.4-0.7-0.8-0.7H4.6
c-0.4,0-0.7,0.4-0.7,0.7v0.9H12V2.3z M12.3,6.9c-0.4-0.4-0.9-0.5-1.4-0.5c-0.4,0-0.7,0.1-1.1,0.4l0.4-1.7h2.5V4.4h-3L9,7.5l0.7,0.1
c0.1-0.2,0.3-0.4,0.4-0.4c0.2-0.1,0.4-0.2,0.6-0.2c0.4,0,0.7,0.1,1,0.3c0.3,0.2,0.3,0.5,0.3,1c0,0.4-0.1,0.8-0.3,1.1
c-0.2,0.3-0.5,0.4-0.9,0.4c-0.4,0-0.6-0.1-0.8-0.3C9.8,9.4,9.7,9.1,9.6,8.7L8.8,8.8C8.9,9.3,9.1,9.7,9.5,10c0.3,0.3,0.8,0.4,1.3,0.4
c0.7,0,1.2-0.2,1.6-0.7c0.3-0.3,0.4-0.9,0.4-1.4S12.7,7.2,12.3,6.9z"/>
</svg>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>灵犀</title>
<meta name="keywords" content="热云数据 灵犀" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0" name="viewport">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="styles/login.css?r=0.6608913082163781">
<script src="scripts/change.js?r=0.30872130882926285"></script>
<script src="scripts/regcom3.js?r=0.47114668297581375"></script>
<script src="scripts/forget.js?r=0.03463357547298074"></script>
</head>
<body ng-app="app" ng-controller="forgetCtrl">
<div class="loginWrap register">
<div class="activationWrap">
<a class="logo" href="login.html"></a>
<div class="registerActivation">找回密码</div>
<div class="forgetText" ng-show="forgettype!='success'">我们将会给您的电子邮箱发送一个新的密码,有效期为72小时,请及时登录并修改密码!</div>
<div class="formDetailItem forgetInput" ng-show="forgettype!='success'">
<div class="iptlabel must">邮箱:</div>
<input type="text" class="iptform" ng-model="email" placeholder="请输入邮箱">
<button ng-click="save()">确定</button>
<div class="em">
<em class="error" ng-if="tip.email.status">{{tip.email.txt}}</em>
</div>
</div>
</div>
<div class="regedover" ng-show="forgettype=='success'">
<div class="tipsucc"><span class="succIcon"></span>发送邮件成功</div>
<div class="activationButton" ng-click="loginEmail()" style="margin-top: 50px;">立即登录邮箱</div>
</div>
</div>
<div class="openBgDiv" ng-show="noActive==1" ng-cloak></div>
<div class="openTipWin" ng-show="noActive==1" ng-cloak>
<div class="closeGray" ng-click="closeWin()"></div>
<p class="titleLogin" ng-show="!newNoRegister">该账户未激活,请点击激活。</p>
<p class="titleLogin" ng-show="newNoRegister">该子账号未激活,若未收到激活邮件,请联系主账号。</p>
<div class="openBtnGroup clearfix" ng-show="!newNoRegister">
<div class="btn" ng-click="sendAgain()" ng-show="loginSend=='yes'">发送激活邮箱</div>
<div class="btn1" ng-show="loginSend=='no'">发送激活邮箱</div>
</div>
<div class="openBtnGroup clearfix" ng-show="newNoRegister">
<div class="btn" ng-click="closeWin()">确定</div>
</div>
</div>
<div class="copyright regt" ng-class="{'static':!hasReged}">
2017 TrackingIO.com All Rights Reserved <a href="http://www.miitbeian.gov.cn/" target="_blank">京ICP备14021832号</a>
</div>
<div class="alphaDiv" id="sysLoad" style="display: none;z-index: 99;">
<div class="spinner">
<div class="rect1"></div>
<div class="rect2"></div>
<div class="rect3"></div>
<div class="rect4"></div>
<div class="rect5"></div>
</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>灵犀</title>
<meta name="keywords" content="热云数据 灵犀" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0" name="viewport">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="styles/home.css?r=0.8068126861471683">
<script src="scripts/change.js?r=0.7223377269692719"></script>
<script src="scripts/home.js?r=0.3399517161305994"></script>
<script src="scripts/homectrl.js?r=0.7286222137045115"></script>
<script>
var _hmt = _hmt || [];
(function() {
var uid = $.cookie("ryioUid");
if(!uid){return false;}
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?3c5292cf6a78c16bc4f8127ca28f6ad5";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
</head>
<body ng-app="app" ng-controller="homeCtrl">
<div class="homeWrap">
<div class="menuWrap">
<div class="content">
<a href="/home.html"><div class="logoimg">热云旗下产品</div></a>
<div class="menuList">
<a target="_blank" href="http://blog.trackingio.com/">博客</a>
<a target="_blank" href="http://doc.trackingio.com/">文档中心</a>
<a href="/home.html#/home/main">申请演示</a>
<a href="/home.html#/home/demolist">体验DEMO</a>
</div>
<div ng-show="HomeId != ''" class="userinfo" ng-mouseenter="showinfo=true;" ng-mouseleave="showinfo=false" ng-cloak>
<span class="userIconN"></span>
<div class="userInfoWrap" ng-show="showinfo">
<div class="userInfoDetail">
<div class="itemInfo">
<span class="userIcon"></span>{{Homename}}
</div>
</div>
<div class="userInfoBottom" ng-class="{'third':isSuper || isManage}">
<div class="itemInfo light" ng-mouseenter="us = true;" ng-mouseleave="us = false;" ng-click="goSet()">
<span class="usetIcon" ng-class="{'active':us}" style=""></span>账号管理
</div>
<div class="itemInfo light" ng-mouseenter="ap = true;" ng-mouseleave="ap = false;" ng-click="goApp()" ng-show="isSuper || isManage">
<span class="appLIcon" ng-class="{'active':ap}"></span>应用管理
</div>
<div class="itemInfo light" ng-mouseenter="lgo = true;" ng-mouseleave="lgo = false;" ng-click="Logout()">
<span class="logoutIcon" ng-class="{'active':lgo}" style=""></span>注销
</div>
</div>
</div>
</div>
<a href="register.html"><div ng-show="HomeId == ''" class="menuIcon">注册</div></a>
<a href="login.html"><div ng-show="HomeId == ''" class="menuIcon">登录</div></a>
</div>
</div>
<div class="bodyWrap" ui-view="home">
<div class="tkioWrap">
<div class="trackingiobg">
<div class="trackingioview">
<p class="tkiotilte">TrackingIO</p>
<p class="tkiotext">数据驱动2.0时代产品,打通市场投放和产品用户行为数据<br>帮市场省钱,助产品赚钱</p>
<div class="tkiobutton">
<a ng-show="HomeId == ''" href="login.html"><div class="btn1 button">登录使用</div></a>
<a ng-show="HomeId != '' && Homename !='demo@reyun.com'" ng-click="userNow()"><div class="btn1 button" ng-cloak>立即使用</div></a>
<a ng-show="HomeId != '' && Homename =='demo@reyun.com'" ng-click="HomeDemo()"><div class="btn1 button" ng-cloak>立即使用</div></a>
<a href="/home.html#/home/demolist"><div class="btn2 button">体验DEMO</div></a>
</div>
</div>
</div>
<div class="trackingiobgColor">
<div class="left"></div>
<div class="right"></div>
<div class="clear"></div>
</div>
</div>
<div class="mainTitle">TrackingIO优势</div>
<div class="content" style="padding: 0 15px">
<div class="trackText">
<img src="images/ys1.png">
<p class="trackTextTitle">全网防作弊</p>
<div class="trackTextText">
完善的反作弊体系助您过滤无效的广告数据,精准的广告数据统计为您提供中立的广告效果监测。
</div>
</div>
<div class="trackText">
<img src="images/ys2.png">
<p class="trackTextTitle">推广渠道归因</p>
<div class="trackTextText">
科学的分析方法帮您计算推广或渠道带来的价值,深入的数据研究助您探索优质渠道。
</div>
</div>
<div class="trackText">
<img src="images/ys3.png">
<p class="trackTextTitle">用户行为分析</p>
<div class="trackTextText">
事件、留存、漏斗等多维分析工具帮您分析不同渠道、不同特征用户的行为及用户质量,助您深入了解您的用户,并寻找产品改进的突破点。
</div>
</div>
<div class="trackText">
<img src="images/ys4.png">
<p class="trackTextTitle">大数据引擎</p>
<div class="trackTextText">
整套系统建立在Hadoop生态之上,使用自有研发的ETL执行引擎来对任务进行调度,为您提供优质的技术保障。
</div>
</div>
<div class="clear"></div>
</div>
<div class="gruybg">
<div class="mainTitle">产品功能</div>
<div class="proWrap pro1">
<div class="proLeft">
<p class="proTitle">广告效果监测</p>
<p class="proText">监测,实时数据监测,帮您实时监控推广数据,及时调整广告策略;<br>效果,渠道价值分析,帮您深入分析渠道数据,筛选优质的推广渠道。</p>
</div>
</div>
<div class="proWrap pro2">
<div class="proRight">
<p class="proTitle">用户行为分析</p>
<p class="proText">看单,行业概览查看,帮您整理行业数据报表,快速了解产品用户情况;<br>工具,事件分析工具,分析app的事件,留存,漏斗,用户画像等数据,详细了解用户行为。</p>
</div>
</div>
</div>
<div class="mainTitle">有哪些企业正在使用</div>
<div class="content">
<div class="userWrap">
<img ng-repeat="idx in [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]" src="images/logo/u{{idx}}.png">
<div ng-if="companyMoreType" class="channelMore" ng-click="companyMore()">MORE>></div>
<img ng-if="!companyMoreType" ng-repeat="idx in [24,25,26,27,28,29,30,31,32]" src="images/logo/u{{idx}}.png">
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
<div class="gruybg">
<div class="mainTitle gruybg">我们已经合作了300余家渠道</div>
<div class="content channelWrap">
<img ng-repeat="imgs in [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]" ng-src="images/coop/h{{imgs}}.png">
<div ng-if="channelMoreType" class="channelMore" ng-click="clickMore()">MORE>></div>
<img ng-if="!channelMoreType" ng-repeat="imgs in [24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101]" ng-src="images/coop/h{{imgs}}.png">
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
</div>
<footer>
<div class="footermenu">
<div class="fmenu">
<p class="ftitle">首页</p>
<p class="flink"><a target="_blank" href="http://www.reyun.com/index.html">首页</a></p>
</div>
<div class="fmenu">
<p class="ftitle">产品</p>
<p class="flink"><a target="_blank" href="http://www.reyun.com/trackingio.html">广告与行为分析平台</a></p>
<p class="flink"><a target="_blank" href="http://www.reyun.com/game.html">游戏运营支撑平台</a></p>
<p id="track" class="flink"><a href="http://track.reyun.com/login.html" target="_blank">移动广告效果检测平台</a></p>
</div>
<div class="fmenu">
<p class="ftitle">关于我们</p>
<p class="flink"><a target="_blank" href="http://www.reyun.com/aboutus.html">公司介绍</a></p>
<p class="flink"><a target="_blank" href="http://www.reyun.com/aboutus.html#joinus">职位招聘</a></p>
</div>
<div class="erweima">
微信关注<br>
公众号:<br>
reyunshuju
</div>
</div>
<div class="footertext">
<p class="frinedText">友情链接:</p>
<div class="frinedLink">
<a href="http://www.sfw.cn/" target="_blank"><img class="link1" src="images/link/1.png"></a>
<a href="http://www.huodonghezi.com/" target="_blank"><img class="link2" src="images/link/2.png"></a>
<a href="http://www.gupowang.com/" target="_blank"><img class="link3" src="images/link/3.png"></a>
<a href="http://www.appganhuo.com/" target="_blank"><img class="link4" src="images/link/4.png"></a>
<a href="http://app.asm.liangjianghu.com/asm-search/#/index" target="_blank"><img class="link5" src="images/link/5.png"></a>
<a href="http://www.zishu010.com/" target="_blank"><img class="link6" src="images/link/6.png"></a>
<a href="http://www.ctoutiao.com/" target="_blank"><img class="link7" src="images/link/7.png"></a>
<a href="http://www.27sem.com/" target="_blank"><img class="link8" src="images/link/8.png"></a>
<a href="http://www.galaxyspace.com/" target="_blank"><img class="link9" src="images/link/9.png"></a>
<a href="http://www.bianxianmao.com" target="_blank"><img class="link10" src="images/link/10.png"></a>
<a href="https://www.appgrowing.cn" target="_blank"><img class="link11" src="images/link/11.png"></a>
</div>
<p>总部:北京市朝阳区望京SOHO T1 A座 1511室 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;华南区:广州市天河区天河路490号壬丰大厦3209室</p>
<p>Copyright&copy;2013-2017 reyun.com All Rights Reserved 京ICP备14021832号-4</p>
<div style="width:200px;margin:0 auto; padding:0 0 20px 0;text-align: center;">
<a target="_blank" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010502032980" style="text-align:center;text-decoration:none;height:20px;line-height:20px;"><img src="images/police.png" style="float:left;"/><p style="float:left;height:20px;line-height:20px;margin: 0px 0px 0px 5px; color:#939393;">京公网安备 11010502032980号</p></a>
</div>
</div>
</footer>
<div class="talkWarp" ng-mouseenter="showQQ=true;" ng-mouseleave="showQQ=false">
<img src="images/talk.png"><br>咨询
<div class="PhoneTalk" ng-show="showQQ">
<div class="PhoneTalkDiv">
<div class="phone"><img src="images/phone400.png">热线电话: 400-001-5680</div>
<div class="QQtalk">
<a target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=1870174944&site=qq&menu=yes"><img src="images/qq.png">商务咨询</a>
<a target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=314806858&site=qq&menu=yes"><img src="images/qq.png">商务咨询</a>
</div>
</div>
<div class="arrowRight">
</div>
</div>
</div>
</div>
<div class="alphaDiv" id="sysLoad" style="display: none;z-index: 99;">
<div class="spinner">
<div class="rect1"></div>
<div class="rect2"></div>
<div class="rect3"></div>
<div class="rect4"></div>
<div class="rect5"></div>
</div>
</div>
<div class="infoTips toggle" ng-if="operShow" ng-cloak>{{operMsg}}</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>灵犀</title>
<meta name="keywords" content="热云数据 灵犀" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0" name="viewport">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="styles/index.css?r=0.15496363677084446">
<script src="scripts/change.js?r=0.8926405222155154"></script>
<script src="scripts/com.js?r=0.8612561319023371"></script>
<script src="scripts/app.js?r=0.24742182483896613"></script>
<script src="scripts/ui.js?r=0.9506633128039539"></script>
</head>
<body ng-app="app" ng-controller="indexCtrl" ng-class="{'noreport':backReport}">
<div class="mainBody">
<div class="header">
<div class="leftHeader">
<a href="javascript:void(0)">
<div class="iconfont icon-logo"></div>
</a>
</div>
<div class="rightHeader clearfix">
<div class="mainMenu" ng-class="{'mainShow':hasMenuFlag || isall}">
<div ng-class="{'active':mainMenu=='behavior'}" ng-click="showSubMenus('behavior')" ng-if="showMenuFlag.behavior || isall">行为分析</div>
<!-- <div ng-class="{'active':mainMenu=='export'}" ng-click="showSubMenus('export')" ng-if="showMenuFlag.export || isall">数据导出</div> -->
<div ng-class="{'active':mainMenu=='management'}" ng-click="showSubMenus('management')">管理中心</div>
</div>
<div class="flowinfo">
<div class="flowCircle" ng-if="flowKnow && !flowRestrict"></div>
</div>
<div class="userinfo" ng-mouseenter="showinfo=true;" ng-mouseleave="showinfo=false" ng-class="{'active':showinfo}" ng-cloak>
<span class="userIconN"></span>
<div class="userInfoWrap" ng-show="showinfo">
<div class="userInfoDetail">
<div class="itemInfo">
<div class="userflowText"><span class="userIcon"></span>{{loginuserName}}</div>
</div>
<div class="itemInfo" ng-if="flowRestrict">
<span class="userPrizeIcon regPrize"></span>
<span class="mr10">注册会员</span>
<span style="cursor: default;">升级套餐,请联系商务</span>
</div>
<div class="itemInfo light" ng-if="!preStatus">
有效期至:<span ng-class="{'error':pastLong <= 0}">{{userPastDate}}</span>
</div>
</div>
<div class="userInfoBottom" ng-class="{'third':isSuper || isManage}">
<div class="itemInfo light" ng-mouseenter="us = true;" ng-mouseleave="us = false;" ng-click="goPage('collect.userinfo')" ng-class="{'userInfoBotton':!isSuper && !isManage && byflow}">
<span class="usetIcon" ng-class="{'active':us}"></span>账号管理
</div>
<div class="itemInfo light" ng-mouseenter="ap = true;" ng-mouseleave="ap = false;" ng-click="goPage('collect.app')" ng-show="isSuper || isManage">
<span class="appLIcon" ng-class="{'active':ap}"></span>应用管理
</div>
<div class="itemInfo light" ng-mouseenter="lgo = true;" ng-mouseleave="lgo = false;" ng-click="userLogout()" ng-class="{'userInfoBotton':!isSuper && !isManage && byflow}">
<span class="logoutIcon" ng-class="{'active':lgo}"></span>注销
</div>
</div>
</div>
</div>
<a ng-if="!preStatus" class="wapSetInfo" href="http://doc.trackingio.com" target="_blank" title="帮助中心"><span class="helpIconN"></span></a>
<div class="wapSetInfo p" ng-show="mainMenu!='management' && pagePath!='userinfo'">
<select-list meau-info="applistInfo" meau-id="appid" meau-data="appidInit" meau-refresh="appfresh" class="appWrap" icon-type="white" style="margin:0px;"></select-list>
</div>
<div ng-if="!preStatus" class="nociceInfo" ng-click="showNoticeWin()" ng-show="noticeList.length>0" ng-cloak>
<span class="noticeNews" ng-class="{'noticeIcon':newNoticeInfo.isRead,'noticeNews':!newNoticeInfo.isRead}"></span>
{{newNoticeInfo.title}}
</div>
</div>
</div>
<div class="contentWrap">
<div class="alphaDiv" id="sysLoad" style="display: none;z-index: 999;">
<div class="spinner">
<div class="rect1"></div>
<div class="rect2"></div>
<div class="rect3"></div>
<div class="rect4"></div>
<div class="rect5"></div>
</div>
</div>
<div class="alphaDiv" id="alpLoad" style="display: none;z-index: 99;"></div>
<!-- <div class="infoTips spin-toggle" ng-if="operShow">{{operMsg}}</div> -->
<div class="infoTips toggle" ng-if="operShow" ng-cloak>{{operMsg}}</div>
<div class="leftSidebar slide-down" ng-show="pagePath!='userinfo' && pagePath!='nopower'">
<div ui-view></div>
</div>
<div class="rightWrap">
<div class="rightContent slide-top" ui-view="content" ng-style="resizeStyle()"></div>
<div class="copyright">
2017 TrackingIO.com All Rights Reserved <a href="http://www.miitbeian.gov.cn/" target="_blank">京ICP备14021832号</a>
</div>
</div>
<div class="dialogDescWin noticeWin" ng-class="{'myNotice':showNoticew}">
<div class="dlgTitle">
TrackingIO系统公告
<div class="right closeGray" ng-click="hideNoticeWin()"></div>
</div>
<div class="dlgCnt">
<div class="noticeItem" ng-repeat="news in noticeList track by $index">
<div class="noticeTitle" ng-click="clickNotice(news)">
<h6><span ng-class="{'redSpan':!news.isTop && !news.isRead,'noticeTopIcon':news.isTop}"></span>{{news.title}}</h6>
<em>{{news.deployDate | date:'yyyy-MM-dd HH:mm:ss'}}</em>
</div>
<div class="noticeContent" ng-bind-html="news.content | filterHtml" ng-if="curNoticeId==news.id"></div>
</div>
</div>
</div>
<div class="openTipWin" ng-if="tipCustom" ng-controller="collectCtrl" ng-cloak>
<div class="closeGray" ng-click="closeTip()"></div>
<div class="tipCont">
当前没有看单,请创建一个新看单。
</div>
<div class="openBtnGroup clearfix">
<div class="btn8 mr20" ng-click="closeTip()">取消</div>
<div class="btn8" ng-click="okCust()">确定</div>
</div>
</div>
</div>
<div class="helpTipWrap winTips" id="winTC"></div>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>灵犀</title>
<meta name="keywords" content="热云数据 灵犀" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0" name="viewport">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="styles/login.css?r=0.6724015795625746">
<script src="scripts/change.js?r=0.37141271703876555"></script>
<script src="scripts/lgcom4.js?r=0.6735840095207095"></script>
<script src="scripts/lgui.js?r=0.5855049260426313"></script>
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?7899fb5e9a59c7f4cdcbb69d51396b0b";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
</head>
<body ng-app="app" ng-controller="loginCtrl">
<div class="loginWrap" ng-keyup="keyEvt($event)">
<div class="mapWrap">
<div id="mapInfo"></div>
</div>
<div class="infoWrap loginPosition">
<a class="logo logoMB"></a>
<input type="text" class="iptform" ng-model="name" placeholder="请输入您的注册邮箱">
<div class="errorWrap">
<div class="error" ng-if="tip.name.status">{{tip.name.txt}}</div>
</div>
<input type="password" class="iptform" ng-model="password" placeholder="请输入您的密码">
<div class="errorWrap">
<div class="error" ng-if="tip.password.status">{{tip.password.txt}}</div>
</div>
<input type="text" class="iptform yma" ng-model="yema" placeholder="请输入验证码">
<div class="yawarp hand" ng-click="getImgInfo()">
<img src="" alt="" id="imgMa">
</div>
<div class="errorWrap">
<div class="error" ng-if="tip.yema.status">{{tip.yema.txt}}</div>
</div>
<div>
<span class="ml10 hand" ng-click="isrember=!isrember">
<span class="checkbox" ng-class="{'active':isrember}"></span>记住密码
</span>
<span class="ml10 hand" ng-click="isonline=!isonline">
<span class="checkbox" ng-class="{'active':isonline}"></span>自动登录7天
</span>
<span class="right hand"><a class="under" href="forget.html">忘记密码?</a></span>
</div>
<div class="errorWrap"></div>
<div class="loginBtn" ng-click="doLogin()">登录</div>
<!-- <div class="forgetWrap">
<span class="ml10">还没有账号?<a href="register.html"><span class="under">立即注册</span></a></span>
<span class="right under">体验DEMO</span>
</div> -->
</div>
</div>
<div class="openBgDiv" ng-show="noActive==1" ng-cloak></div>
<div class="openTipWin" ng-show="noActive==1" ng-cloak>
<div class="closeGray" ng-click="closeWin()"></div>
<p class="titleLogin">该账户未激活,请点击激活。</p>
<div class="openBtnGroup clearfix">
<div class="btn" ng-click="sendAgain()" ng-show="loginSend=='yes'">发送激活邮箱</div>
<div class="btn1" ng-show="loginSend=='no'">发送激活邮箱</div>
</div>
</div>
<div class="copyright">
2017 TrackingIO.com All Rights Reserved <a href="http://www.miitbeian.gov.cn/" target="_blank">京ICP备14021832号</a>
</div>
<script>
var date = new Date();
date.setDate(date.getDate()-1);
var year = date.getFullYear();
var month = date.getMonth()+1;
var day = date.getDate();
var datetime = year+"-"+month+"-"+day;
$.get('/data/login.json',function(data){
var report = data.val;
var reportVal = data.prondau;
var myChart = echarts.init(document.getElementById('mapInfo'));
var option = {
backgroundColor: '#01010c',
color: [
'rgba(255, 255, 255, 1)',
'rgba(0, 228, 255, 1)',
'rgba(9, 107, 255, 1)'
],
title : {
text: '',
subtext: '',
x:'center',
textStyle : {
color: '#fff'
}
},
legend: {
orient: 'vertical',
x:'left',
data:[],
textStyle : {
color: '#fff'
}
},
tooltip : {
trigger: 'item',
backgroundColor:'#f2f2f3',
borderColor:'#00a9e8',
textStyle:{ color:'#000' },
//formatter: '{b}:{c}'
formatter: function(params) {
var res = params.name.toString();
var resNum = reportVal[res];
if(resNum == undefined){
resNum = 0;
}
return res+":"+resNum;
}
},
toolbox: {
show : false,
orient : 'vertical',
x: 'right',
y: 'center',
feature : {
mark : {show: false},
dataView : {show: false, readOnly: false},
restore : {show: false},
saveAsImage : {show: false}
}
},
series : [
{
name: '弱',
type: 'map',
mapType: 'china',
itemStyle:{
normal:{
borderColor:'rgba(7,53,77,1)',
borderWidth:1.5,
areaStyle:{
color: '#020211'
}
}
},
data : [],
markPoint : {
symbolSize: 2,
large: true,
effect : {
show: true
},
data : (function(){
return report[2];
})()
}
},
{
name: '中',
type: 'map',
mapType: 'china',
itemStyle:{
normal:{
borderColor:'rgba(7,53,77,1)',
borderWidth:1.5,
areaStyle:{
color: '#020211'
}
}
},
data : [],
markPoint : {
symbolSize: 3,
large: true,
effect : {
show: true
},
data : (function(){
return report[1];
})()
}
},
{
name: '强',
type: 'map',
mapType: 'china',
hoverable: false,
roam:false,
itemStyle:{
normal:{
borderColor:'rgba(7,53,77,1)',
borderWidth:1.5,
areaStyle:{
color: '#020211'
}
}
},
data : [],
markPoint : {
symbol : 'diamond',
symbolSize: 6,
large: true,
effect : {
show: true
},
data : (function(){
return report[0];
})()
}
}
]
};
myChart.setOption(option);
});
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>灵犀</title>
<meta name="keywords" content="热云数据 灵犀" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0" name="viewport">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="styles/login.css?r=0.5317122181877494">
<script src="scripts/change.js?r=0.7924824352376163"></script>
<script src="scripts/regcom5.js?r=0.4877237342298031"></script>
<script src="scripts/olduser.js?r=0.97215764853172"></script>
</head>
<body ng-app="app" ng-controller="olduserCtrl">
<div class="loginWrap register">
<div class="activationWrap">
<a class="logo" href="login.html"></a>
<div class="registerActivation">注册激活</div>
<div class="activationText oldUser">我们当前正在为开发者做更多的权限和安全设计,为了您的账户安全,请激活您的邮箱。</div>
<div class="activationButton" ng-click="oldEmail()">发送激活邮件</div>
<div class="activationText"><a href="index.html">跳过,下次再显示</a></div>
</div>
</div>
<div class="copyright regt" ng-class="{'static':!hasReged}">
2017 TrackingIO.com All Rights Reserved <a href="http://www.miitbeian.gov.cn/" target="_blank">京ICP备14021832号</a>
</div>
<div class="alphaDiv" id="sysLoad" style="display: none;z-index: 99;">
<div class="spinner">
<div class="rect1"></div>
<div class="rect2"></div>
<div class="rect3"></div>
<div class="rect4"></div>
<div class="rect5"></div>
</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>灵犀</title>
<meta name="keywords" content="热云数据 灵犀" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0" name="viewport">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="styles/login.css?r=0.5324887416791171">
<script src="scripts/change.js?r=0.8414971525780857"></script>
<script src="scripts/regcom6.js?r=0.13982015755027533"></script>
<script src="scripts/register.js?r=0.6793806061614305"></script>
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?7899fb5e9a59c7f4cdcbb69d51396b0b";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
</head>
<body ng-app="app" ng-controller="registerCtrl">
<div class="loginWrap register">
<div class="infoWrap" ng-show="!hasReged" ng-keyup="keyEvt($event)">
<a class="logo" href="login.html"></a>
<div class="registerTitle">注册</div>
<div class="infoItem">
<input type="text" class="iptform" ng-model="email" placeholder="邮箱(建议使用工作邮箱)">
<div class="error" ng-if="tip.email.status">{{tip.email.txt}}</div>
</div>
<div class="infoItem">
<input type="password" class="iptform" ng-model="password" placeholder="*6-18位至少包含数字、大小写字母中的两种">
<div class="error" ng-if="tip.password.status">{{tip.password.txt}}</div>
</div>
<div class="infoItem">
<input type="password" class="iptform" ng-model="crmpwd" placeholder="重新输入密码">
<div class="error" ng-if="tip.crmpwd.status">{{tip.crmpwd.txt}}</div>
</div>
<div class="infoItem">
<input type="text" class="iptform" ng-model="company" placeholder="您的团队或者公司名称">
<div class="error" ng-if="tip.company.status">{{tip.company.txt}}</div>
</div>
<div class="infoItem">
<input type="text" class="iptform" ng-model="username" placeholder="您的姓名">
<div class="error" ng-if="tip.username.status">{{tip.username.txt}}</div>
</div>
<div class="infoItem">
<input type="text" class="iptform" ng-model="phone" placeholder="联系电话">
<div class="error" ng-if="tip.phone.status">{{tip.phone.txt}}</div>
</div>
<div class="infoItem">
<input type="text" class="iptform" ng-model="wechat" placeholder="微信">
<div class="error" ng-if="tip.wechat.status">{{tip.wechat.txt}}</div>
</div>
<div class="infoItem">
<input type="text" class="iptform" ng-model="qq" placeholder="QQ">
<div class="error" ng-if="tip.qq.status">{{tip.qq.txt}}</div>
</div>
<!-- <div style="width:300px;">
<span class="ml10 hand" ng-click="isrember=!isrember">
<span class="checkbox" ng-class="{'active':isrember}"></span>我已阅读并同意服务协议
</span>
<span class="right hand" ng-click="ischannel=!ischannel">
<span class="checkbox" ng-class="{'active':ischannel}"></span>渠道账号
</span>
</div> -->
<div class="errorWrap"><div class="error">{{errorMessage}}</div></div>
<div class="loginBtn" ng-click="save()">完成注册</div>
<div class="forgetWrap">
<span class="ml10">已经有账号?<a href="/login.html"><span class="under">登录</span></a></span>
</div>
</div>
<div class="activationWrap" ng-show="hasReged">
<a class="logo"></a>
<div class="registerActivation">注册激活</div>
<div class="activationEmail">激活邮件已发送至您的邮箱:{{registerEmail}}</div>
<div class="activationText">请点击邮箱的链接完成账号注册!</div>
<div class="activationButton" ng-click="loginEmail()">立即登录邮箱</div>
<div class="sendChange">
<li>没有收到邮件?<a ng-show="sendtype==1" href ng-click="sendAgain()">重新发一封</a><a ng-show="sendtype==2" href>{{time/1000}}秒后可重新发送</a></li>
<li>邮箱填错了?<a href ng-click="changeEmail()">更改邮箱</a></li>
</div>
</div>
<div class="openBgDiv" ng-show="channelText" ng-cloak></div>
<div class="openTipWin" ng-show="channelText" ng-cloak>
<div class="closeGray" ng-click="closeWin()"></div>
<p class="titleChannel">根据您填写信息,您可能是渠道/媒体人员,如需查看广告主在您的渠道投放数据,请联系对应广告主在热云后台为您开通渠道账号。开通后直接登录即可,不需要重新注册账号。</p>
<button class="titleChannelButton" ng-click="closeWin()">确定</button>
<p class="titleChannel1">如果您是广告主,请点击此处<a href ng-click="postSave()">完成注册。</a></p>
</div>
</div>
<div class="openTipWin" ng-show="winFlag==1">
<div class="closeGray" ng-click="closeWin()"></div>
<p class="title">更改邮箱</p>
<div class="tipCont">
<div class="formDetailItem">
<div class="iptlabel must">注册邮箱:</div>
<input type="text" class="iptform" ng-model="oldemail" placeholder="请输入注册邮箱">
<div class="em">
<em class="error" ng-if="tip.oldemail.status">{{tip.oldemail.txt}}</em>
</div>
</div>
<div class="formDetailItem">
<div class="iptlabel must">新邮箱:</div>
<input type="text" class="iptform" ng-model="newemail" placeholder="请输入新邮箱">
<div class="em">
<em class="error" ng-if="tip.newemail.status">{{tip.newemail.txt}}</em>
</div>
</div>
</div>
<div class="openBtnGroup clearfix">
<div class="btn" ng-click="saveNewEmail()">发送验证邮箱</div>
</div>
</div>
<div class="copyright regt" ng-class="{'static':!hasReged}">
2017 TrackingIO.com All Rights Reserved <a href="http://www.miitbeian.gov.cn/" target="_blank">京ICP备14021832号</a>
</div>
<div class="alphaDiv" id="sysLoad" style="display: none;z-index: 99;">
<div class="spinner">
<div class="rect1"></div>
<div class="rect2"></div>
<div class="rect3"></div>
<div class="rect4"></div>
<div class="rect5"></div>
</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>灵犀</title>
<meta name="keywords" content="热云数据 灵犀" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0" name="viewport">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="styles/login.css?r=0.12542712758295238">
<script src="scripts/change.js?r=0.9124180839862674"></script>
<script src="scripts/regcom7.js?r=0.9299184740521014"></script>
<script src="scripts/resetpwd.js?r=0.9602820398285985"></script>
</head>
<body ng-app="app" ng-controller="resetpwdCtrl">
<div class="loginWrap register">
<div class="activationWrap" ng-show="resetTpye=='yes'">
<a class="logo" href="login.html"></a>
<div class="pwdActivation">修改密码</div>
<div class="formDetailItem pwdInput">
<div class="iptlabel must">请输入新密码:</div>
<input type="password" class="iptform" ng-model="newpwd" placeholder="请输入新密码">
<div class="error" ng-if="tip.newpwd.status" ng-class="{'long':tip.newpwd.txt.length>15}">{{tip.newpwd.txt}}</div>
</div>
<div class="formDetailItem pwdInput">
<div class="iptlabel must">请再次输入新密码:</div>
<input type="password" class="iptform" ng-model="crmpwd" placeholder="请再次输入新密码">
<div class="error" ng-if="tip.crmpwd.status" ng-class="{'long':tip.crmpwd.txt.length>15}">{{tip.crmpwd.txt}}</div>
</div>
<div class="resetpwdButton" ng-click="save()">确定</div>
</div>
<div class="activationWrap" ng-show="resetTpye=='no'">
<a class="logo" href="login.html"></a>
<div class="registerActivation">修改密码</div>
<div class="activationText">修改密码链接已失效!<span ng-if="isShowSend">请联系母账号</span></div>
<div class="activationButton successButton" ng-click="sendEmail()" ng-if="!isShowSend">重新发送邮件</div>
<div class="error" ng-if="tip.send.status">{{tip.send.txt}}</div>
</div>
<div class="activationWrap" ng-show="resetTpye=='send'">
<a class="logo" href="login.html"></a>
<div class="registerActivation">修改密码</div>
<div class="regedover">
<div class="tipsucc"><span class="succIcon"></span>发送邮件成功</div>
<div class="activationButton" ng-click="loginEmail()" style="margin-top: 50px;">立即登录邮箱</div>
</div>
</div>
</div>
<div class="copyright regt" ng-class="{'static':!hasReged}">
2017 TrackingIO.com All Rights Reserved <a href="http://www.miitbeian.gov.cn/" target="_blank">京ICP备14021832号</a>
</div>
<div class="alphaDiv" id="sysLoad" style="display: none;z-index: 99;">
<div class="spinner">
<div class="rect1"></div>
<div class="rect2"></div>
<div class="rect3"></div>
<div class="rect4"></div>
<div class="rect5"></div>
</div>
</div>
</body>
</html>
!function(){"use strict";angular.module("app",["ui.router","ngAnimate","app.collect","app.manage","app.active"])}(),function(){"use strict";function a(a,b,c){var d={},e=a;return d.setName=function(a){e.name=a},d.getName=function(){return e.name},d.isDemoUser=function(){return"demo@reyun.com"==c.getCookie("ryioUname")},d.getChannelCampaignList=function(){var a=[{id:"channel",name:"渠道"},{id:"campgroup",name:"活动组"},{id:"campaign",name:"活动"}];return c.cloneJSON(a)},d.getPackTypeList=function(){var a=[{id:"all",name:"全部"},{id:"APPMARKET",name:"分包"},{id:"ADVERTISING",name:"分链接"}];return c.cloneJSON(a)},d.getDeviceTypeList=function(){var a=[{id:"device",name:"按设备看"},{id:"user",name:"按账号看"}];return c.cloneJSON(a)},d.getChannelCampaignParams=function(a,b,c){var d="",e="";return"channel"==a?(d=b+"/channel/findall",e="渠道"):"campgroup"==a?(d=b+"/campgroup/findall",e="活动组"):"campbychannel"==a?(d=b+"/campaign/findbychannel?channelid="+c,e="活动"):(d=b+"/campaign/findall",e="活动"),{url:d,txt:e}},d.getParams=function(a,b){var c={appid:a.appid};if(a.date&&(c.startdate=a.date.startDate,c.enddate=a.date.endDate),b&&1==b&&""!=a.typeInfoIds&&-1!=a.typeInfoIds)switch(a.typeId){case"campgroup":c.cgroupid=a.typeInfoIds;break;case"campaign":c.campaignid=a.typeInfoIds;break;case"channel":default:c.cid=a.typeInfoIds}return c},d.getOneColors=function(){return["#1fb9e9"]},d.getTwoColors=function(){return["#1fb9e9","#f8a20f"]},d.getThreeColors=function(){return["#1fb9e9","#f8a20f","#8e6eb6"]},d.getSixColors=function(){return["#1fb9e9","#f8a20f","#8e6eb6","#9cc272","#f36e55","#00b37f"]},d.getTenColors=function(){return["#1fb9e9","#f8a20f","#00b37f","#f36e55","#5c9eff","#fccc01","#9cc272","#ec407a","#8e6eb6","#cddc39"]},d.getToday=function(){return{startDate:c.getDay(0),endDate:c.getDay(0)}},d.getYesDay=function(){return{startDate:c.getDay(-1),endDate:c.getDay(-1)}},d.getLastDays=function(a,b){return angular.isUndefined(b)?b=-1:a>0?a-=1:a+=1,{startDate:c.getDay(a),endDate:c.getDay(b)}},d.getLastWeeks=function(a){var b=c.getNowWeekNum(),d=new Date,e=d.getFullYear(),f={end:e+c.getStr(b)},g=a+b+1;if(g>0)f.start=e+c.getStr(g);else{var h=c.getYearWeekCount(e-1);f.start=e-1+c.getStr(h+g)}return f},d.getLastMonths=function(a){var b=new Date,d=b.getFullYear(),e=b.getMonth()+1,f={end:d+c.getStr(e)},g=e+a+1;return f.start=g>0?d+c.getStr(g):d-1+c.getStr(12+g),f},d.getStringTypes=function(){return[{id:"=",name:"="},{id:"!=",name:"≠"},{id:"in",name:"in",more:!0},{id:"not in",name:"not in",more:!0}]},d.getNumberTypes=function(){return[{id:">",name:">"},{id:">=",name:">="},{id:"=",name:"="},{id:"<=",name:"<="},{id:"<",name:"<"},{id:"between",name:"between",both:!0}]},d.showLoading=function(){document.getElementById("sysLoad").style.display="block"},d.hideLoading=function(){document.getElementById("sysLoad").style.display="none"},d.showAlp=function(){document.getElementById("alpLoad").style.display="block"},d.hideAlp=function(){document.getElementById("alpLoad").style.display="none"},d.showTips=function(c,e){d.hideLoading();var f=1200;c.length>10&&(f=2e3),e=e||f,a.operShow=!0,a.operMsg=c,b(function(){d.hideTips()},e)},d.hideTips=function(){a.operShow=!1,a.operMsg=""},d.getMenuTip=function(b){var c=a.currentPageTips[b];return c||(c="无"),c},d.getFunnelData=function(a,b,d){var e=(new Date).getTime();angular.isUndefined(a)&&(a={});var f=[],g=[],h=[],i=-1;d.filter(function(b){var d=a[b],e=a["rate_"+b];d=angular.isUndefined(d)?0:d,e=angular.isUndefined(e)?0:e,f.push(d),g.push(e),i>-1&&(0==i?h.push(0):h.push(c.decimal2(d/i*100))),i=d});for(var j={val:[g,f],trans4last:h,key:b,rmd:++e},k=j.val[0],l=[],m=0,n=0;n<k.length;n++){var o=m-k[n];m>0||(o=0),l.push(o),m=k[n]}return j.val.splice(1,0,l),j},d.noDataChart=function(){var a=(new Date).getTime();return{val:[],trans4last:[],key:[],rmd:++a,name:[]}},d.getChartConditions=function(a,b,d,e,f){c.isNullStr(e)&&(e="normal");var g=d.appid,h=c.cloneJSON(d),i=d.viewtype||"";delete h.appid;var j={reportName:b,conditions:JSON.stringify(h),functionType:e,subType:i,app:g,name:a};return c.isNullStr(f)||(j.functionId=f),j},d.getByteLen=function(a){for(var b=0,c=0;c<a.length;c++){null!=a.charAt(c).match(/[a-zA-Z\u4e00-\u9fa5]/)?b+=2:b+=1}return b},d.getTableColsWidth=function(b,c,e){var f=[],g=a.unfoldFlag?90:230,h=c?($(window).width()-10-g)/(e||2)-(3==e?48:45):$(window).width()-g,i=0;if(angular.forEach(b,function(a){var b=d.getByteLen(a),e="推广活动,推广活动组,渠道,子渠道,子账号,关键字,创意,付费激活周期".indexOf(a)>-1?240:"日期"==a?"day"!=c?160:90:"分组"==a?150:8*b+(c?13:27),g={width:e+"px","max-width":e+"px"};i+=e,f.push(g)}),i<h){var j=h-2-i,k=f.length,l=(j-12*k)/k;angular.forEach(f,function(a){var b=parseInt(a.width.slice(0,-2));a.width=a["max-width"]=b+l+"px"})}return f},d.getCMidInfo=function(){var a=localStorage.getItem("rytf_cid"),b=localStorage.getItem("rytf_campid");return c.isNullStr(a)&&(a=-1,b="_default_"),{cid:a,campaignid:b}},d.getRoleName=function(){return a.isSuper?"主账号":a.isManage?"管理员":a.isAppManage?"子应用管理员":void 0},d.getUser=function(){var a=localStorage.getItem("ry_user");return c.isNullStr(a)?{}:JSON.parse(a)},d}angular.module("app").factory("ToolService",["$rootScope","$timeout","UtilService",a])}(),function(){"use strict";function a(){var a={};return a.randRange=function(a,b){return Math.floor(Math.random()*(b-a+1))+a},a.sortArray=function(a,b){return"desc"==b?a.sort(function(a,b){return a==b?0:a>b?-1:1}):a.sort(function(a,b){return a==b?0:a>b?1:-1})},a.getMaxByArray=function(b){var c=a.cloneJSON(b);return c=c.sort(function(a,b){return a==b?0:a>b?-1:1}),c[0]},a.sortArray2=function(a,b,c,d){var e=[],f=a.length;f>0&&(b.filter(function(b,c){for(var d=[],g=0;g<f;g++)d.push(a[g][c]);d.push(b),e.push(d)}),"desc"==d?e.sort(function(a,b){return a[c]==b[c]?0:a[c]>b[c]?-1:1}):e.sort(function(a,b){return a[c]==b[c]?0:a[c]>b[c]?1:-1}),e.filter(function(c,d){b[d]=c.pop();for(var e=0;e<f;e++)a[e][d]=c[e]}))},a.sumArray=function(a){for(var b=0,c=0;c<a.length;c++)null!=a[c]&&(b+=a[c]);return b},a.decimal2=function(a,b){b=b||2;for(var c="1",d=1,e=0;e<b;e++)c+="0";d=parseInt(c);var f=Math.round(a*d)/d,g=f+"",h=g.indexOf(".");return h>0&&g.substring(h,g.length)>2&&(g=g.substring(0,g.length-2),f=parseFloat(g)),f},a.getDay=function(a){var b=new Date,c=function(a){var b=a.getFullYear(),c=a.getMonth()+1,d=a.getDate();return c<10&&(c="0"+c),d<10&&(d="0"+d),b+"-"+c+"-"+d},d=b.getTime()+864e5*a;return b.setTime(d),c(b)},a.getLastMonthsDate=function(a,b){var c=new Date(a);return c.setMonth(c.getMonth()-Number(b)),c.Format("yyyy-MM-dd")},a.getYearWeekList=function(a){if(void 0===a){a=(new Date).getFullYear()}var b=[],c=new Date(a,0,1),d=c.getDay(),e=new Date(a,11,31);d=0==d?7:d;var f=c.clone().addDays(7-d),g=0;for(d>0&&d<5&&(g=1,b.push({week:g,date:f,year:a}));f<e&&!e.isSameDay(f);)g++,f=f.clone().addDays(7),b.push({week:g,date:f,year:a});var h=new Date(a,11,31),i=h.getDay();return i>0&&i<4&&b.pop(),b},a.getYearWeekCount=function(b){return a.getYearWeekList(b).length},a.getNowWeekNum=function(){var a=Date.today(),b=new Date(a.getFullYear(),0,1),c=b.getDay(),d=b.clone(),e=0;c>0&&(d=d.addDays(8-c),e=1);var f=diffDate(d,a);return Math.ceil(f/7)+e},a.cloneJSON=function(a){var b=Object.prototype.toString.call(a);return b.indexOf("Object")>-1?jQuery.extend(!0,{},a):b.indexOf("Array")>0?a.concat():a},a.splitString=function(a,b){for(var c="",d=0,e=new RegExp(/[^\x00-\xff]/),f=0;f<a.length;f++){var g=a.charAt(f);d+=e.test(g)?2:1,d<=b&&(c+=g)}return{str:c,len:d}},a.merge=function(){return Array.prototype.concat.apply([],arguments)},a.isNullStr=function(a){return!(!angular.isUndefined(a)&&""!=a&&null!=a&&"null"!=a)},a.getStr=function(a){return a<10?"0"+a:a+""},a.setCookie=function(a,b,c){$.cookie(a,b,{expires:c,path:"/",secure:!1,raw:!1})},a.getCookie=function(a){return $.cookie(a)},a.setItem=function(a,b){window.localStorage.setItem(a,b)},a.getItem=function(a){return window.localStorage.getItem(a)},a.copyTxt=function(a){$(a).select();var b=!1;try{b=document.execCommand("Copy","false",null)}catch(c){b=!1}return b},a.randRangeId=function(){if(a.getCookie("tkRmdId"))return a.getCookie("tkRmdId");var b=(new Date).getTime()+a.randRange(3,5);return a.setCookie("tkRmdId",b,1095),b},a.randDeviceId=function(){if(localStorage.getItem("rmdDeviceId"))return localStorage.getItem("rmdDeviceId");var b=(new Date).getTime()+a.randRange(3,10);return localStorage.setItem("rmdDeviceId",b),b},a.getAppkey=function(){return"0d401839250deff23daf62fd49a444cb"},a.getTKAppkey=function(){return"f0f251af10e66a0c94d2e923d8863105"},a.getLogRoot=function(){return"http://log.reyun.com"},a.deviceInfo=function(){return{versions:function(){var a=navigator.userAgent;navigator.appVersion;return{trident:a.indexOf("Trident")>-1,presto:a.indexOf("Presto")>-1,webKit:a.indexOf("AppleWebKit")>-1,gecko:a.indexOf("Gecko")>-1&&-1==a.indexOf("KHTML"),mobile:!!a.match(/AppleWebKit.*Mobile.*/),ios:!!a.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),android:a.indexOf("Android")>-1||a.indexOf("Linux")>-1,iPhone:a.indexOf("iPhone")>-1,iPad:a.indexOf("iPad")>-1,webApp:-1==a.indexOf("Safari")}}(),language:(navigator.browserLanguage||navigator.language).toLowerCase()}},a.operatorSystem=function(){var a=navigator.userAgent,b="Win32"==navigator.platform||"Windows"==navigator.platform,c="Mac68K"==navigator.platform||"MacPPC"==navigator.platform||"Macintosh"==navigator.platform||"MacIntel"==navigator.platform;if(c)return"Mac";if("ipad"==a.match(/ipad/i))return"ipad";if("iPhone"==navigator.platform)return"iPhone";if("X11"==navigator.platform&&!b&&!c)return"Unix";var d=String(navigator.platform).indexOf("Linux")>-1,e="android"==a.toLowerCase().match(/android/i);if(d)return e?"Android":"Linux";if(b){if(a.indexOf("Windows NT 5.0")>-1||a.indexOf("Windows 2000")>-1)return"Win2000";if(a.indexOf("Windows NT 5.1")>-1||a.indexOf("Windows XP")>-1)return"WinXP";if(a.indexOf("Windows NT 5.2")>-1||a.indexOf("Windows 2003")>-1)return"Win2003";if(a.indexOf("Windows NT 6.0")>-1||a.indexOf("Windows Vista")>-1)return"WinVista";if(a.indexOf("Windows NT 6.1")>-1||a.indexOf("Windows 7")>-1)return"Win7";if(a.indexOf("Windows NT 6.2")>-1||a.indexOf("Windows 8")>-1)return"Win8"}return"other"},a.getBrowser=function(a){var b=window.navigator.userAgent,c="",d="";b.toLowerCase().indexOf("micromessenger")>-1?c="wechat":/Firefox/g.test(b)?(b=b.split(" "),c="Firefox",d=b[b.length-1].split("/")[1]):/MSIE/g.test(b)?(c="IE",b.indexOf("QQBrowser")>-1&&(c="QQBrowser"),b=b.split(";"),d=b[1].split(" ")[2]):/Opera/g.test(b)?(b=b.split(" "),c="Opera",d=b[b.length-1].split("/")[1]):/Chrome/g.test(b)?(b=b.split(" "),c="Chrome",d=b[b.length-2].split("/")[1]):/^apple\s+/i.test(navigator.vendor)?(b=b.split(" "),c="Safair",d=b[b.length-2].split("/")[1]):c="others";var e=d.split(".");return e.length>1&&(d=e[0]+"."+e[1]),a?c+d:c},a}angular.module("app").factory("UtilService",a)}(),function(){"use strict";function a(){var a={};return a.getDay=function(a){var b=new Date,c=function(a){var b=a.getFullYear(),c=a.getMonth()+1,d=a.getDate();return c<10&&(c="0"+c),d<10&&(d="0"+d),b+"-"+c+"-"+d},d=b.getTime()+864e5*a;return b.setTime(d),c(b)},a.getYearWeekList=function(a){if(void 0===a){a=(new Date).getFullYear()}var b=[],c=new Date(a,0,1),d=c.getDay(),e=new Date(a,11,31);d=0==d?7:d;var f=c.clone().addDays(7-d),g=0;for(d>0&&d<5&&(g=1,b.push({week:g,date:f,year:a}));f<e&&!e.isSameDay(f);)g++,f=f.clone().addDays(7),b.push({week:g,date:f,year:a});var h=new Date(a,11,31),i=h.getDay();return i>0&&i<4&&b.pop(),b},a.getYearWeekCount=function(b){return a.getYearWeekList(b).length},a.getNowWeekNum=function(){var a=Date.today(),b=new Date(a.getFullYear(),0,1),c=b.getDay(),d=b.clone(),e=0;c>0&&(d=d.addDays(8-c),e=1);var f=diffDate(d,a);return Math.ceil(f/7)+e},a.getToday=function(){return{startDate:a.getDay(0),endDate:a.getDay(0)}},a.getYesDay=function(){return{startDate:a.getDay(-1),endDate:a.getDay(-1)}},a.getLastDays=function(b,c){return angular.isUndefined(c)&&(c=-1),0==c&&b<0&&(b+=1),0==c&&b>0&&(b-=1),{startDate:a.getDay(b),endDate:a.getDay(c)}},a.getLastWeeks=function(b){var c=a.getNowWeekNum(),d=new Date,e=d.getFullYear(),f={end:e+a.getStr(c)},g=b+c+1;if(g>0)f.start=e+a.getStr(g);else{var h=a.getYearWeekCount(e-1);f.start=e-1+a.getStr(h+g)}return f},a.getLastMonths=function(b){var c=new Date,d=c.getFullYear(),e=c.getMonth()+1,f={end:d+a.getStr(e)},g=e+b+1;return f.start=g>0?d+a.getStr(g):d-1+a.getStr(12+g),f},a.getStr=function(a){return a<10?"0"+a:a+""},a.getWeekRangeDate=function(a,b){a=a||0;var c=new Date,d=c.getDay();d=0==d?7:d;var e=c.clone().addDays(1-d),f=c;return a>0?(e=e.clone().addDays(7*a),f=e.clone().addDays(6)):a<0&&(f=e.clone().addDays(7*(a+1)-1),e=e.clone().addDays(7*a)),b&&-1==b&&Date.isSameDay(f,Date.today())&&(e==f?e=f=f.clone().addDays(-1):f=f.clone().addDays(-1)),{startDate:e.Format("yyyy-MM-dd"),endDate:f.Format("yyyy-MM-dd")}},a.getMonthRangeDate=function(a,b){a=a||0;var c=new Date,d=c.getFullYear(),e=c.getMonth(),f=c.getDate(),g=null,h=null;return 0!=a?(e+=a,e<0&&(e+=11,--d),f=Date.getDaysInMonth(d,e),h=new Date(d,e,f),g=h.clone(),g.setDate(1)):(b&&-1==b&&(f+=-1),g=c.clone(),h=c,g.setDate(1),h.setDate(f)),{startDate:g.Format("yyyy-MM-dd"),endDate:h.Format("yyyy-MM-dd")}},a.getDaysNum=function(a,b){var c,d,e="-";c=a.split(e),d=b.split(e);var f=new Date(c[0],c[1]-1,c[2]),g=new Date(d[0],d[1]-1,d[2]);return parseInt(Math.abs(f-g)/1e3/60/60/24)},a}angular.module("app").factory("DateService",a)}(),function(){"use strict";angular.module("app").run(["$rootScope","$state","$stateParams","UtilService","$templateCache","$location","$window","ToolService","HttpService","DateService","$timeout",function(a,b,c,d,e,f,g,h,i,j,k){function l(a){e.removeAll()}a.$state=b,a.$stateParams=c,a.isSuper="true"==d.getCookie("ryioIsSuper")||1==d.getCookie("ryioIsSuper");var m=d.getCookie("ryioRole");m&&"1"==m?a.isManage=!0:m&&"2"==m&&(a.isAppManage=!0),a.isall=a.isSuper||a.isManage||a.isAppManage,a.firstMeau="/collect/custommenu";var n=(d.getCookie("ryioUid"),["userinfo","product","nopower","expiration"]);a.mainMenus={behavior:["custommenu","eventstats","retention","funnel","usergroup","profile","event","activityevent","custommenuDetail","intelligentpath"],dataexport:["report"],manage:["app","auth"]},a.$on("$stateChangeStart",function(b,c,e,h){var i=c.name,j=i.substring(i.indexOf(".")+1),l=j.indexOf("Detail"),m=h.name,o=m.substring(m.indexOf(".")+1);if(""==m&&("nopower"==j||"expiration"==j))return window.location.href="index.html",!1;var p=j||o;a.mainMenus.behavior.indexOf(p)>-1?a.mainMenu="behavior":a.mainMenus.dataexport.indexOf(p)>-1?a.mainMenu="export":a.mainMenus.manage.indexOf(p)>-1&&(a.mainMenu="management");var q=function(){var b=d.getCookie("unfoldFlag");b&&(a.unfoldFlag="false"!=b),document.getElementById("sysLoad").style.display="none",document.getElementById("alpLoad").style.display="none",l>-1&&(j=j.substring(0,l));"activityevent"==j&&(j="event");var c=a.isweb&&a.webHideMenus.indexOf(j)>-1;if(""==j||"collect"==j||c)return f.path(a.firstMeau),!1;if("systemparam"==j&&a.demoU);else if(n.indexOf(j)>-1);else if(!a.isSuper&&a.curRoleAuth&&!a.hasTheMenu(j)){var e=a.firstMeau,h=e.substring(e.lastIndexOf("/")+1);return f.path(a.firstMeau),h==a.pagePath&&g.location.reload(),!1}n.indexOf(j)>-1?a.backReport=!0:a.backReport=!1,a.preStatus="product"==j||"userinfo"==j&&"product"==o,$(".rightWrap").scrollTop(0),a.pagePath=j};a.limitInfo?q():k(function(){q()},100)});var l=a.$on("$stateChangeSuccess",l)}]).config(["$provide",function(a){a.decorator("$exceptionHandler",["$delegate",function(a){return function(b,c){document.getElementById("sysLoad").style.display="none",-1==String(b).indexOf("$compile:tpload")&&a(b,c)}}])}]).factory("httpInterceptor",[function(){return{request:function(a){var b=$.cookie("ryioToken");return a.headers.Authorization=b,a.requestTimestamp=(new Date).getTime(),a.timeout=3e4,a},response:function(a){return a.config.responseTimestamp=(new Date).getTime(),a}}}]).config(["$httpProvider",function(a){a.interceptors.push("httpInterceptor")}])}(),function(){function a(a,b,c,d,e,f,g,h,j){a.unfoldFlag=void 0!=a.unfoldFlag&&a.unfoldFlag,b.queryLimit=function(b){angular.isDefined(b)?limitPM=c.getInfo("login/limit/"+b):limitPM=c.getInfo("login/limit"),limitPM.then(function(b){a.limitInfo=b,e.setItem("limitInfo",JSON.stringify(a.limitInfo))})},a.demoU=d.isDemoUser(),b.goLogin=function(){window.location.href="/login.html"},b.queryApp=function(d){c.getInfo("app/findall").then(function(c){if(b.appAlllistInfo=c,b.applistInfo=c.filter(function(a){return 1!=a.isDebug}),1==d)return!1;var g=e.getCookie("ryioLastApp"),h=e.getCookie("ryioDemoapk");if(e.setCookie("ryioDemoapk",""),b.applistInfo.length>0){e.isNullStr(g)&&(g="-1"),g=Number(g);var j=b.applistInfo.filter(function(a){return e.isNullStr(h)?a.id==g:a.appkey==h});for(g=0==j.length?b.applistInfo[0].id:j[0].id,b.appidInit==g?b.appfresh=++k:b.appidInit=g,i=0;i<b.applistInfo.length;i++)b.applistInfo[i].id==b.appidInit&&(b.appkey=b.applistInfo[i].appkey)}else a.isSuper||a.isManage||a.isAppManage?f.go("collect.app"):b.goLogin()})},b.$on("f5Applist",function(a,c){b.queryApp(c)}),b.hasSubMenus=function(){b.showMenuFlag={};for(var c=a.curRoleAuth.roleAuthDetailList,d=0;d<c.length&&!(b.showMenuFlag.admonitor&&b.showMenuFlag.behavior&&b.showMenuFlag.export);d++)"admonitor"==c[d].parentAuth||"campaignmanager"==c[d].parentAuth?b.showMenuFlag.admonitor=!0:"behavior"==c[d].parentAuth||"eventmanage"==c[d].parentAuth?b.showMenuFlag.behavior=!0:"export"==c[d].parentAuth&&(b.showMenuFlag.export=!0);"export"==a.mainMenu&&!b.showMenuFlag.export||"behavior"==a.mainMenu&&!b.showMenuFlag.behavior?a.mainMenu="":"admonitor"!=a.mainMenu||b.showMenuFlag.admonitor||(a.mainMenu="")},a.webHideMenus=[],b.$on("appid",function(c,d){a.appInstance=d.info,b.platform=d.info.platform,a.isandroid="Android"==b.platform,a.isios="iOS"==b.platform,a.isweb="H5"==b.platform;var f=g.$$path,h=f.indexOf("Detail");if(f.indexOf("appDetail")>-1)return!1;h>-1?(b.appid=void 0,g.path(f.substring(0,h))):a.isweb&&a.webHideMenus.indexOf(a.pagePath)>-1&&(b.appid=void 0,g.path(a.firstMeau)),(""==a.pagePath||"collect"==a.pagePath||!a.isSuper&&a.curRoleAuth&&!b.hasTheMenu(a.pagePath))&&(b.appid=void 0,g.path(a.firstMeau)),a.appid=b.appid=d.info.id,e.setCookie("ryioLastApp",b.appid,7)}),b.goToCustom=function(b,c){g.path("/collect/custommenu/"+b),a.custID=b},b.gotoCustonMenu=function(a){var b=f.href("collect.custommenu");window.open(b+"/"+a,"_blank")};var k=(new Date).getTime();b.$on("mngappTo",function(a,c){if(b.appid==c)return!1;b.appidInit==c?b.appfresh=++k:b.appidInit=c}),b.loginuserName=e.getCookie("ryioUname"),b.currentAccountId=e.getCookie("ryioUid"),b.userPastDate=e.getCookie("ryioPastDate"),b.errorBack=function(a){d.showTips(a)};e.randRangeId(),e.getCookie("ryioUid");b.goPage=function(b){a.channeluniqueName="normal","home"==b&&(b=a.firstMeau,b=b.substring(1).replace("/",".")),"collect.custommenu"==b&&(a.custID=""),"channel"==b.substring(b.indexOf(".")+1)&&(a.channeluniqueName="normal"),f.current&&f.current.name==b?f.reload(b,{pageid:null}):f.go(b,{pageid:null})},b.resizeStyle=function(){var b="0px";return"userinfo"==a.pagePath||"nopower"==a.pagePath?a.mainMenu=!1:b=a.unfoldFlag?"40px":"186px",$(".conditionAlpha").css("left",b),a.panelw=$(window).width()-b.slice(0,-2)-84,{"margin-left":b}},b.toggleMenu=function(){a.unfoldFlag=!a.unfoldFlag,e.setCookie("unfoldFlag",a.unfoldFlag),b.$broadcast("conentresize",!0)},a.hasTheMenu=function(c,d,e){var f=a.curRoleAuth.roleAuthDetailList.filter(function(e){return angular.isDefined(d)&&1==d?a.isweb?e.parentAuth==c&&-1==b.webHideMenus.indexOf(e.auth):e.parentAuth==c:angular.isDefined(d)&&2==d?e.auth==c&&1==e.edit:"export"==c?a.hasTheMenu(c,1):e.auth==c&&1==e.view});return angular.isDefined(e)?f:f.length>0},a.showSubMenus=function(c){if(b.channelAlert)return!1;if("management"!=c&&b.applistInfo&&0==b.applistInfo.length)return b.appAlllistInfo.length>0?d.showTips("请先完成"+b.appAlllistInfo[0].name+"的数据调试"):d.showTips("请先创建应用"),!1;a.mainMenu=c;var e="";e="behavior"==c?"/collect/"+a.mainMenus.behavior[0]:"export"==c?"/collect/"+a.mainMenus.dataexport[a.isweb?1:0]:"/manage/"+a.mainMenus.manage[0],g.path(e)},a.showMenu=function(c,d){return null==c&&(c=b.pagePath),!(b.isweb&&b.webHideMenus.indexOf(c)>-1)&&(a.isSuper||a.isManage||a.isAppManage?(b.campaigninfoGroup=!0,!0):!!a.curRoleAuth&&b.hasTheMenu(c,d))},a.hasEditPower=function(){return a.showMenu(null,2)},b.showDataModel=function(b){if(a.isweb&&"retention"==b)return!1;if("flow"==b)return!0;if("channel"==b)return!0;var c={pay:"payAuth",retention:"retentionAuth",isnatureopen:"isNatureOpen",topauth:"topAuth"}[b];return!!(a.isSuper||a.isManage||a.isAppManage)||!!a.curRoleAuth&&a.curRoleAuth[c]},b.formTipMsg="信息没填全或数据格式有误,请检查",a.$watch("pagePath+isweb",function(d){if(d=b.pagePath,angular.isDefined(d)&&""!=d&&"product"!=d){c.getInfo("tip/"+d,{}).then(function(b){a.currentPageTips=b},function(b){a.currentPageTips={}})}else a.currentPageTips={}}),b.userLogout=function(){c.getInfo("login/logout",{}).then(function(a){c.logOutCookie()})},b.showNoticew=!1,b.queryNotice=function(){c.getInfo("notice/findDeploy",{}).then(function(a){b.noticeList=a;var c=e.cloneJSON(a);c&&angular.isArray(c)?c.sort(function(a,b){return new Date(a.deployDate)>new Date(b.deployDate)?-1:1}):c=[],c.length>0&&(b.newNoticeInfo=c[0])}),j(b.queryNotice,18e4)},b.showNoticeWin=function(){b.showNoticew=!0,d.showAlp()},b.hideNoticeWin=function(){b.showNoticew=!1,d.hideAlp()},b.clickNotice=function(a){var d=a.id;b.curNoticeId==d?b.curNoticeId=-1:(b.curNoticeId=d,a.isRead||(a.isRead=!0,b.newNoticeInfo&&b.newNoticeInfo.id==d&&(b.newNoticeInfo.isRead=!0),c.postInfo("notice/saveReadLog/"+d,{})))},b.initpage=function(){b.queryLimit(),b.queryApp(),b.queryNotice()},"/active/product"!=g.path()&&b.initpage(),b.judgeNameChange=function(a,b){return!e.isNullStr(b)&&(""!=a&&""!=b&&angular.lowercase(a)!=angular.lowercase(b)||""==a&&""!=b)},b.pwdPlacehold="仅支持数字,大小写字母,且至少包含其中2种,长度限制为6-18位"}angular.module("app").controller("indexCtrl",["$rootScope","$scope","HttpService","ToolService","UtilService","$state","$location","DateService","$timeout",a])}(),function(){function a(a,b,c){var d={};return d.loginTimeout=function(a){null!=a&&a.code&&-1002==a.code&&d.logOutCookie()},d.noLogin=function(a){if(angular.isUndefined(a)||-1==a.indexOf("login")){var b=c.getCookie("ryioUid");c.isNullStr(b)&&d.logOutCookie()}},d.logOutCookie=function(){c.setCookie("ryioUid",""),window.localStorage.setItem("ryioUauth",""),c.setCookie("ryioToken",""),c.setCookie("ryioIsSuper",""),window.location.href="/login.html"},d.getInfo=function(c,e,f){f||d.noLogin(c);var g=b.defer(),h="";for(var i in e)h+="&"+i+"="+e[i];-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random(),c+=h;a.get("/api/"+c).success(function(a){d.loginTimeout(a),a.code&&200!=a.code?g.reject(a):g.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),g.reject(a)});return g.promise},d.getInfoByUrl=function(c){d.noLogin();var e=b.defer();a.get(c).success(function(a){d.loginTimeout(a),e.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),e.reject(a)});return e.promise},d.getReportData=function(e,f){d.noLogin();var g=b.defer(),h=c.cloneJSON(f),i=h.appid;delete h.appid;var j="?r="+Math.random();for(var k in h)j+="&"+k+"="+h[k];a.get("/api/report/"+i+"/"+e+j).success(function(a){d.loginTimeout(a),a.code&&200!=a.code?g.reject(a):g.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),g.reject(a)});return g.promise},d.postInfo=function(c,e,f){f||d.noLogin(c);var g=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.post("/api/"+c,e).success(function(a,b){d.loginTimeout(a),a.status=b,a.code&&-5e3==a.code?g.resolve(a):a.code&&-6001==a.code?g.resolve(a):g.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),g.reject(a)});return g.promise},d.postInfoByUrl=function(c,e){d.noLogin();var f=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.post(c,e).success(function(a){f.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),f.reject(a)});return f.promise},d.putInfo=function(c,e){d.noLogin(c);var f=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.put("/api/"+c,e).success(function(a,b){d.loginTimeout(a),a.status=b,a.code&&a.code<0?f.reject(a):f.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),f.reject(a)});return f.promise},d.deleteInfo=function(c){d.noLogin();var e=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.delete("/api/"+c).success(function(a,b){d.loginTimeout(a),a.status=b,e.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),e.reject(a)});return e.promise},d.downFile=function(c,d){var e=b.defer();return-1==c.indexOf("api")&&(c="/api/"+c),a({method:"GET",url:c,params:d,responseType:"arraybuffer"}).success(function(a,b,c){if(204==b)return e.resolve({code:-1}),!1;e.resolve({code:1}),c=c();var d=c.filename,f=c["content-type"],g=document.createElement("a");try{var h=new Blob([a],{type:f}),i=window.URL.createObjectURL(h);g.setAttribute("href",i),g.setAttribute("download",decodeURIComponent(d));var j=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});g.dispatchEvent(j)}catch(k){}}).error(function(a){}),e.promise},d}angular.module("app").factory("HttpService",["$http","$q","UtilService",a])}(),function(){function a(a,c){var d={},e={line:1,column:2,columnstack:3,bar:4,area:5,areastack:6,arealiner:7,pie:8,funnel:9,columnline:10,barY:11};d.getOption=function(d,f,g){var h=new b(c,g,a),i=h.init(d,g),j=[];if(e[f]==e.line)j=h.lineChart();else if(e[f]==e.area)j=h.areaChart();else if(e[f]==e.areastack)j=h.areaChart(!0,!1);else if(e[f]==e.arealiner)j=h.areaChart(!1,!0);else if(e[f]==e.column)j=h.columnChart(!1),i.yAxis[0].axisTick=i.xAxis[0].axisTick,i.yAxis[0].axisLine=i.xAxis[0].axisLine;else if(e[f]==e.columnstack)j=h.columnChart(!0,g.flag),i.yAxis[0].axisTick=i.xAxis[0].axisTick,i.yAxis[0].axisLine=i.xAxis[0].axisLine;else if(e[f]==e.bar)j=h.barChart(),i.yAxis[0]=h.getXaxis2(),i.xAxis[0]=h.getYaxis2(),i.grid.right=20;else if(e[f]==e.funnel)j=h.funnelChart(),i.tooltip=h.funnelTooltip();else if(e[f]==e.columnline)j=h.columnLineChart(),i.yAxis[0].axisTick=i.xAxis[0].axisTick,i.yAxis[0].axisLine=i.xAxis[0].axisLine,i.yAxis.push(h.getYaxis(!0));else if(e[f]==e.barY){j=h.barChart(!0),i.yAxis[0]=h.getXaxis2(),i.xAxis[0]=h.getYaxis2(),i.grid.right=20,i.grid.top=0;for(var k=d.name,l=k.length-1,m=0;m<l;m++)i.xAxis.push(h.getYaxis2()),i.xAxis[m+1].show=!1}return i.series=j,angular.isDefined(g.color)&&(i.color=g.color),angular.isDefined(g.legend)&&(i.legend.show=g.legend),i};var f=new b(c);return d.getPieOption=function(a,b,c){return f.pieChart(a,c)},d.getMapOption=function(a,b,c){return f.mapChart(a,c)},d.getLoginMapOption=function(a,b,c){return f.loginMapChart(a,c)},d}function b(a,b,d){var e="#666666",f="#d5d7d8",g="SimHei,Arial",h="#666666",i=12;this.UtilService=a,this.init=function(a,b){this.data=a.val,this.name=a.name,this.key=a.key,this.chartData=a,this.config=b;var c=this.commonOptions();return c.xAxis=[this.getXaxis()],c.yAxis=[this.getYaxis()],c},this.commonOptions=function(a){var c="";this.config.ispercent&&1==this.config.ispercent&&(c+="%");var e=[],j=0,k={};if(this.name&&this.name.length>0){for(var l=0;l<this.name.length;l++){var m=this.name[l].lastIndexOf("_");e.push({name:b.flag?this.name[l].slice(0,-1==m?this.name[l].length-1:m):this.name[l],icon:"rect"})}if(this.config.hidelast)for(var l=this.config.hidelast;l>0;l--){var n=this.name.slice(0-l)[0];k[n]=!1}}var o="",p=this;return this.config.title&&(o=this.config.title,0!=this.config.legend&&(j=30)),{title:{text:o,textStyle:{color:h,fontSize:i,fontFamily:g},left:"center"},legend:{data:e,top:j,textStyle:{color:h,fontSize:i,fontFamily:g},itemWidth:10,itemHeight:10,formatter:function(a){return e.length>2?echarts.format.truncateText(a,80,"14px Microsoft Yahei","…"):a},tooltip:{show:!0},selected:k},grid:{left:10,top:j+40,bottom:10,right:0,containLabel:!0},tooltip:{trigger:b.flag&&"hasGro"!=b.flag&&"nohasGro"!=b.flag?"item":"axis",formatter:function(a){var e,f=a.length,g="";if(b.flag&&"hasGro"!=b.flag&&"nohasGro"!=b.flag){var h=a.seriesName;return null!=a.value&&"-"!=a.value&&(g+='<span style="color:'+a.color+'">●</span>'+h+" : "+p.UtilService.decimal2(a.value,2)+c,p.config.lastprecent&&(g+="%"),p.config.namesub&&p.config.namesub.length>0&&p.config.namesub[a.seriesIndex]&&(g+=p.config.namesub[a.seriesIndex]),g+="<br/>"),g=a.name+"<br/>"+g}for(var i=0;i<f;i++){e=a[i];var h=e.seriesName;null!=e.value&&"-"!=e.value&&(g+='<span style="color:'+e.color+'">●</span>'+h+" : "+p.UtilService.decimal2(e.value,2)+c,p.config.lastprecent&&i==f-1&&(g+="%"),p.config.namesub&&p.config.namesub.length>0&&p.config.namesub[i]&&(g+=p.config.namesub[i]),g+="<br/>")}return g=e.name+"<br/>"+g,b.id?(d.$emit("tooltipObj",{objs:a,id:b.id,flag:b.flag}),""):g},axisPointer:{type:"hasGro"==b.flag||"nohasGro"==b.flag?"shadow":"line",lineStyle:{color:f}}},toolbox:{show:!0,feature:{mark:{show:!1},dataView:{show:!1,readOnly:!1},saveAsImage:{show:!1}}},calculable:!1,color:["#e8340e","#0088cc","#61a0a8","#d48265","#91c7ae","#749f83","#ca8622","#bda29a","#6e7074","#546570","#2f4554","#006000","#642100","#6c3365","#484891","#844200","#006030","#003e3e","#584b00","#336666"]}},this.getXaxis=function(a){var b=this;return{type:"category",data:this.key,splitLine:{show:!1},axisLabel:{textStyle:{color:e,fontSize:i,fontFamily:g},formatter:function(a){if(a){var c=b.UtilService.splitString(a,12);return b.config.issmart&&c.len>12?c.str+"...":a}}},axisTick:{lineStyle:{color:f}},axisLine:{lineStyle:{color:f}}}},this.getXaxis2=function(a){var b=this;return{type:"category",data:this.key,splitLine:{show:!1},axisLabel:{textStyle:{color:e,fontSize:i,fontFamily:g},formatter:function(a){if(angular.isUndefined(a))return"";var c=b.UtilService.splitString(a,12);return c.len>12?c.str+"...":a}},axisTick:{lineStyle:{color:f}},axisLine:{lineStyle:{color:f}},inverse:!0}},this.getYaxis=function(a){var b="";return(this.config.ispercent&&1==this.config.ispercent||a)&&(b+="%"),{type:"value",axisLabel:{textStyle:{color:e,fontSize:i,fontFamily:g},formatter:function(a){return c(a)+b}},axisTick:{show:!1,lineStyle:{opacity:0}},axisLine:{show:!1},splitLine:{show:!0,lineStyle:{color:f,type:"dashed"}},min:0,splitNumber:4}},this.getYaxis2=function(){var a="";return this.config.ispercent&&1==this.config.ispercent&&(a+="%"),{type:"value",axisLabel:{textStyle:{color:e,fontSize:i,fontFamily:g},formatter:function(b){return c(b)+a}},axisTick:{lineStyle:{color:f}},axisLine:{lineStyle:{color:f}},splitLine:{show:!1},min:0,splitNumber:3}},this.lineChart=function(){for(var a=[],b=0;b<this.name.length;b++){var c={};c.name=this.name[b],c.type="line",c.lineStyle={normal:{width:1.2}},c.smooth=!0,c.data=this.data[b],a[b]=c}return a},this.areaChart=function(a,b){var c=[],d=.25;this.config.opacity&&(d=this.config.opacity);for(var e=0;e<this.name.length;e++){var f={};f.name=this.name[e],f.type="line",f.data=this.data[e],a&&(f.stack="总量"),f.smooth=!0,f.areaStyle={normal:{opacity:d}},b&&(f.areaStyle.normal.color=new echarts.graphic.LinearGradient(0,0,0,1,[{offset:0,color:this.config.color[e]},{offset:1,color:"#fff"}])),f.lineStyle={normal:{width:1.2}},c[e]=f}return c},this.columnChart=function(a,b){for(var c=[],d=[],e=0;e<this.name.length;e++){var f={},g=this.name[e].lastIndexOf("_");f.name=b?this.name[e].slice(0,-1==g?this.name[e].length:g):this.name[e],f.type="bar",f.barMaxWidth=18,f.barGap=0,f.data=this.data[e],a&&(f.stack="总量"+(b?this.name[e].slice(-1==g?0:g):""));var h="";h=d.indexOf(f.name)>-1?c[e-1].itemStyle.normal.color:this.config.color[e],f.itemStyle={normal:{color:h}},b||(f.itemStyle.emphasis={color:this.config.color[e]}),d.push(f.name),c[e]=f}return c},this.barChart=function(a){for(var b=[],d=0;d<this.name.length;d++){var e={};e.name=this.name[d],e.type="bar",this.config.barwidth?e.barMaxWidth=this.config.barwidth:(e.barMaxWidth=18,e.barGap=0),a&&(e.xAxisIndex=d),e.data=this.data[d],
this.config.isbartext&&1==this.config.isbartext&&(e.label={normal:{show:!0,position:"right",formatter:function(a){var b=a.data;return b>0?c(b):""}}}),b[d]=e}return b},this.pieChart=function(a,b){var c=a.name,d=a.key,e=a.val[0],f=[];return e&&d.filter(function(b,d){var g=[];c.filter(function(a,c){g.push({value:e[b][c],name:a})});var h={type:"pie",clockwise:!1,label:{normal:{show:!(c.length>20)}},radius:[0,120],center:1==a.key.length?["50%","50%"]:0==d?["25%","50%"]:["75%","50%"],selectedOffset:5,data:g};f.push(h)}),{tooltip:{trigger:"item",formatter:"{b}: {c} ({d}%)"},legend:{show:!1},color:b.color,series:f}},this.funnelTooltip=function(){var a=this,b="用户";return 0==this.config.isdevice&&(b="用户"),{trigger:"axis",formatter:function(c){if("markPoint"==c.componentType)return"转化率"+c.value;c.length>0&&(c=c[0]);var d=c.dataIndex;if(d>0){var e="";return c?(e=c.name+"的"+b+"个数:"+a.data[2][d]+"<br/>",e+=a.key[0]+"到"+c.name+"的"+b+"转化成功率:"+a.data[0][d]+"%"):e="",e}return c.name+"的"+b+"个数:"+a.data[2][0]}}},this.funnelChart=function(){var a=this,b=this.config.barwidth,c=[],d=[],e="image:///images/chartarrow.png",f=[54,26],h=this.key.length;if(h>0){var i=(b-70)/h,j=80,k="insideTop",l="#ffffff";if(h>5&&(j=40),1==this.config.issmart)h>5?(e="image:///images/chartarrow2.png",f=[10,10],i=(b-20)/h,j=30,k="insideTop",l="#666"):j=45;else for(var m=this.chartData.trans4last,n=0;n<m.length;n++)c.push({value:m[n]+"%",x:40+5*n+i*(n+1)+"px",y:"50%"});for(var n=0;n<2;n++){var o={};o.type="bar",o.stack="转化率",o.barMaxWidth=j,o.barGap=0,o.data=this.data[n],0==n&&(o.label={normal:{show:!0,position:k,formatter:function(b){return 0==b.value&&0==a.data[2][b.dataIndex]||b.value<10?"":a.UtilService.decimal2(b.value)+"%"},textStyle:{color:l,fontFamily:g}}},o.itemStyle={normal:{color:this.config.color[0],textStyle:{color:"#ffffff",fontFamily:g}}}),1==n&&(o.itemStyle={normal:{color:this.config.color[1]},emphasis:{color:this.config.color[1]}}),o.markPoint={show:!0,symbol:e,symbolSize:f,label:{normal:{formatter:function(b){return h>5&&1==a.config.issmart?"":b.value},textStyle:{color:"#ffffff",fontFamily:g}},emphasis:{formatter:function(a){return a.value}}},data:c},d[n]=o}}return d},this.mapChart=function(a,b){var c=a.name,d=a.key,f=a.val[0],h=[],i=0;if(f&&f.length>0){var i=this.UtilService.getMaxByArray(f);i=100*Math.ceil(i/100),d.filter(function(a,b){h.push({value:f[b],name:a})})}return{tooltip:{trigger:"item",formatter:function(a){return isNaN(a.value)?a.name:a.name+"<br/>"+a.seriesName+":"+a.value}},visualMap:{min:0,max:i,color:["#7ec3f2","#dcebf4"]},series:[{name:c[0],type:"map",mapType:"china",selectedMode:"multiple",top:20,bottom:20,label:{normal:{show:!0,textStyle:{fontSize:4,color:e,fontFamily:g}},emphasis:{show:!0}},itemStyle:{normal:{areaColor:"#eeeeee",borderColor:"#858585"},emphasis:{areaColor:"#1fb9e9"}},data:h}]}},this.loginMapChart=function(a,b){var c=a.name,d=a.key,f=a.val[0],h=[],i=0;if(f&&f.length>0){var i=this.UtilService.getMaxByArray(f);i=100*Math.ceil(i/100),d.filter(function(a,b){h.push({value:f[b],name:a})})}return{tooltip:{trigger:"item",show:!1,formatter:function(a){return isNaN(a.value)?a.name:a.name+"<br/>"+a.seriesName+":"+a.value}},series:[{name:c[0],type:"map",mapType:"china",selectedMode:"multiple",top:20,bottom:20,label:{normal:{show:!1,textStyle:{fontSize:4,color:e,fontFamily:g}},emphasis:{show:!0}},itemStyle:{normal:{areaColor:"#424250",borderColor:"#1e1e26"},emphasis:{areaColor:"#3c3c4a"}},data:h}]}},this.columnLineChart=function(){for(var a=[],b=this.name.length,c=0;c<b;c++){var d={};d.name=this.name[c],d.barMaxWidth=18,d.barGap=0,d.data=this.data[c],c==b-1?(d.type="line",d.yAxisIndex=1):d.type="bar",d.itemStyle={normal:{color:this.config.color[c]},emphasis:{color:this.config.color[c]}},a[c]=d}return a}}function c(a){return a>999&a<1e4?(a/1e3).toFixed(1).toString()+"k":a>=1e4&&a<1e6?(a/1e4).toFixed(1).toString()+"w":a>=1e6&&a<1e9?(a/1e6).toFixed(1).toString()+"m":a>=1e9?(a/1e9).toFixed(1).toString()+"b":a}angular.module("app").factory("OptionService",["$rootScope","UtilService",a])}(),function(){function delTip(){return{restrict:"E",replace:!0,templateUrl:"/template/common/delwin.html?r="+tempVersion,transclude:!0,scope:{delfn:"&",status:"=",okTitle:"@"},link:function(a,b){a.btnname=a.okTitle?a.okTitle:"确定",a.hideWin=function(){a.status=!1}}}}function wincrmTip(){return{restrict:"E",replace:!0,templateUrl:"/template/common/wincrm.html?r="+tempVersion,transclude:!0,scope:{okfn:"&",nofn:"&",title:"@",status:"=",okTitle:"@",noTitle:"@"},link:function(a,b){angular.isUndefined(a.okTitle)&&(a.okTitle="确定"),angular.isUndefined(a.noTitle)&&(a.noTitle="取消"),a.hideWin=function(){a.status=!1,a.nofn()},a.crmWin=function(){a.status=!1,a.okfn()}}}}function okcrmTip(a){return{restrict:"E",replace:!0,templateUrl:"/template/common/okcrm.html?r="+tempVersion,transclude:!0,scope:{title:"@",status:"=",okfn:"&"},link:function(b,c){b.$watch("status",function(b){angular.isDefined(b)&&1==b&&a.showAlp()}),b.crmWin=function(){b.status=!1,a.hideAlp(),b.okfn()}}}}function stopEvent(){return{restrict:"A",link:function(a,b){jQuery(b).on("click",function(a){a.stopPropagation()})}}}function selectList(a){return{restrict:"E",replace:!0,templateUrl:"/template/common/select.html?r="+tempVersion,scope:{meauInfo:"=",meauName:"=",meauId:"@",meauId2:"=",meauData:"=",meauRefresh:"=",keyname:"@",keyid:"@",meauNull:"=",meauRed:"=",nosearch:"@",operationSel:"=",iconType:"@",meauSpe:"="},link:function(b,c){b.selme=!1,b.meauId=b.meauId||b.meauId2,b.clickMeau=function(c){if(!b.operSel||"pie"==c[b.keyid]&&b.meauSpe)return a.showTips("饼状图只适用于有分组的事件分析。"),!1;b.currentInfo=c,b.selName=c[b.keyname],b.selId=c[b.keyid],b.meauRed=!1,b.$emit(b.meauId,{info:c})},b.$watch("operationSel",function(a){angular.isUndefined(b.operationSel)?b.operSel=!0:b.operSel=a}),b.showsearch="true"!=b.nosearch,angular.isUndefined(b.keyname)&&(b.keyname="name"),angular.isUndefined(b.keyid)&&(b.keyid="id"),b.$watch("meauData+meauName+meauRefresh+meauInfo",function(){if(b.meauInfo&&angular.isDefined(b.meauData)&&-1!=b.meauData){var a=b.meauInfo.filter(function(a){return a[b.keyid]==b.meauData});a.length>0?b.clickMeau(a[0]):(b.selName=b.meauName,b.selId="")}else b.selName=b.meauName,b.selId=""}),b.$watch("meauNull",function(a){angular.isDefined(a)&&(b.selName=b.meauName,b.selId="")})}}}function selectTList(){return{restrict:"E",replace:!0,templateUrl:"/template/common/selectT.html?r="+tempVersion,scope:{meauInfo:"=",meauName:"=",meauId:"@",meauId2:"=",meauData:"=",meauType:"=",meauRefresh:"=",keyname:"@",keyid:"@",meauNull:"=",meauRed:"=",meauTypekey:"@",meauTypename:"@",operationSel:"="},link:function($scope,$element){angular.isDefined($scope.meauTypekey)&&($scope.typeKey=eval($scope.meauTypekey),$scope.typeName=eval($scope.meauTypename)),$scope.$watch("operationSel",function(a){angular.isUndefined($scope.operationSel)?$scope.operSel=!0:$scope.operSel=a}),$scope.selme=!1,$scope.meauId=$scope.meauId||$scope.meauId2,$scope.clickMeau=function(a){if(!$scope.operSel)return!1;$scope.selName=a[$scope.keyname],$scope.selId=a[$scope.keyid],$scope.meauRed=!1,$scope.$emit($scope.meauId,{info:a})},angular.isUndefined($scope.keyname)&&($scope.keyname="name"),angular.isUndefined($scope.keyid)&&($scope.keyid="id"),$scope.$watch("meauData+meauName+meauRefresh+meauInfo",function(){if($scope.meauInfo&&angular.isDefined($scope.meauData)&&-1!=$scope.meauData){var a=$scope.meauInfo.filter(function(a){return a[$scope.keyid]==$scope.meauData&&(a.type==$scope.meauType||!$scope.meauType)});a.length>0?$scope.clickMeau(a[0]):$scope.selName=$scope.meauName}else $scope.selName=$scope.meauName}),$scope.haslist=function(a){if(!$scope.meauInfo)return!1;for(var b=!1,c=0;c<$scope.meauInfo.length;c++)if($scope.meauInfo[c].type==a||$scope.meauInfo[c].dimensionType==a){b=!0;break}return b},$scope.$watch("searchlitxt",function(a){if(angular.isUndefined(a)||!a)return!1;$scope.virtual="",$scope.nature="",$scope.meauInfo.filter(function(b){angular.uppercase(b.name).indexOf(angular.uppercase(a))>-1&&"virtual"==b.type&&($scope.virtual=b.type),angular.uppercase(b.name).indexOf(angular.uppercase(a))>-1&&"nature"==b.type&&($scope.nature=b.type)})})}}}function selectMoreList(){return{restrict:"E",replace:!0,templateUrl:"/template/common/selectmore.html?r="+tempVersion,scope:{meauInfo:"=",meauName:"=",meauId:"@",meauData:"=",meauRefresh:"=",keyname:"@",keyid:"@",meauRed:"="},link:function(a,b){a.ischeckall=!1,a.selme=!1,angular.isUndefined(a.keyname)&&(a.keyname="name"),angular.isUndefined(a.keyid)&&(a.keyid="id"),a.clickMeau=function(b){a.meauRed=!1;var c=a.selIDS.indexOf(b[a.keyid]);c>-1?(a.selIDS.splice(c,1),a.selNames.splice(c,1),a.ischeckall=!1):(a.selIDS.push(b[a.keyid]),a.selNames.push(b[a.keyname]))},a.okSelect=function(){a.$emit(a.meauId,{info:a.selIDS.join(",")}),a.selme=!1},a.$watch("selme",function(){!a.selme&&"eventName"==a.keyid&&a.selIDS&&a.$emit(a.meauId,{info:a.selIDS.join(",")})}),a.$watch("meauData+meauName+meauRefresh+meauInfo",function(){if(a.selIDS=[],a.selNames=[],a.ischeckall=!1,a.meauInfo&&angular.isDefined(a.meauData)&&-1!=a.meauData&&"string"==typeof a.meauData){var b=a.meauData.split(","),c=a.meauInfo.filter(function(c){return b.indexOf(c[a.keyid])>-1});c.length>0?angular.forEach(c,function(b){a.clickMeau(b)}):a.selName=a.meauName}else a.selName=a.meauName}),a.checkAll=function(){a.ischeckall=!a.ischeckall,a.meauInfo.filter(function(b){var c=a.selIDS.indexOf(b[a.keyid]);!a.ischeckall&&c>-1&&(a.selIDS.splice(c,1),a.selNames.splice(c,1)),a.ischeckall&&-1==c&&(a.selIDS.push(b[a.keyid]),a.selNames.push(b[a.keyname]))})}}}}function selectParams(a){return{restrict:"E",replace:!0,templateUrl:"/template/common/selectparams.html?r="+tempVersion,scope:{meauInfo:"=",meauName:"=",meauId:"@",meauRefresh:"="},link:function(b,c){b.selme=!1,b.secondSel=!1,b.showSelWin=function(){b.selme=!0,b.selId&&(b.secondSel=!0)},b.clickMeau=function(a){var d=$(c).find(".optionList:eq(0)").width();b.selId!=a.id&&(b.secIDS=[],b.secKeys=[]),b.selId=a.id,b.selN=a.name,b.evtType=a.type,b.secondSel=!0,b.secondList=a.value,b.secKeyList=a.key,b.secondStyle={left:d+"px"}},b.clickSecMeau=function(a,c){var d=b.secIDS.indexOf(a);d>-1?(b.secIDS.splice(d,1),b.secKeyList&&b.secKeys.splice(d,1)):(b.secIDS.push(a),b.secKeyList&&b.secKeys.push(b.secKeyList[c]))},b.okSelect=function(){var c="";if(b.selId&&""!=b.selId){var d={};if(0==b.secIDS.length||b.secIDS.length>10)return a.showTips("请选择10个以内对比属性值"),!1;b.secKeyList?d[b.selId]=b.secKeys.join(","):d[b.selId]=b.secIDS.join(","),d.type=b.evtType,c=JSON.stringify(d),b.selName=b.selN}else b.selName=b.meauName;b.$emit(b.meauId,{info:c,name:b.selN}),b.selme=!1,b.secondSel=!1},b.$watch("meauName+meauInfo+meauRefresh",function(){b.meauInfo&&(b.secIDS=[],b.secondList=[],b.selId="",b.secondSel=!1),b.selName=b.meauName}),angular.element(document).on("click",function(){b.$apply(function(){b.selme=!1,b.secondSel=!1})})}}}function flipInfo(){return{restrict:"E",replace:!0,templateUrl:"/template/common/flipinfo.html?r="+tempVersion,scope:{listInfo:"=",searchTxt:"=",searchName:"@",listKey:"@",searchKey:"=",listRefresh:"="},link:function(a,b){a.everyId="everyId",a.everyList=[{id:10,name:"每页10条"},{id:20,name:"每页20条"},{id:30,name:"每页30条"}],a.minNum=a.everyInit=a.everyList[0].id,a.$on(a.everyId,function(b,c){var d=c.info.id;a.everyNum="all"==d?a.listInfo.length:d}),a.page={},a.$watch("listInfo+everyNum",function(b){if(angular.isDefined(a.listInfo)){var c=0;c=angular.isDefined(a.searchTxt)&&""!=a.searchTxt?a.filterCurList.length:a.listInfo.length,a.refreshInfos(c)}}),a.$watch("searchTxt",function(b){if(angular.isDefined(b)&&a.listInfo){a.searchN=a.searchName||a.searchKey,angular.isDefined(a.searchN)&&(a.searchNames=a.searchN.split(","));var c=a.listInfo.filter(function(c){for(var d=!1,e=a.searchNames.length-1;e>=0;e--)if(c[a.searchNames[e]]&&angular.uppercase(String(c[a.searchNames[e]])).indexOf(angular.uppercase(b))>-1){d=!0;break}return d});a.filterCurList=c,a.refreshInfos(c.length)}}),a.refreshInfos=function(b){var c=a.everyNum?a.everyNum:a.everyInit;a.page.totals=b,a.page.totalpages=Math.ceil(a.page.totals/c),a.page.curpage=1,a.sendData()},a.goto=function(b,c){switch(b){case 0:a.page.curpage=c;break;case 2:a.page.curpage>1&&a.page.curpage--;break;case 3:a.page.curpage<a.page.totalpages&&a.page.curpage++;break;case 4:a.page.curpage=a.page.totalpages;break;case 5:""!=a.gonum&&angular.isNumber(a.gonum)&&a.gonum<=a.page.totalpages?a.page.curpage=a.gonum:a.gonum=""}a.sendData()},a.$watch("page.curpage",function(b){angular.isDefined(b)&&(a.gonum=b)}),a.$watch("listRefresh",function(b){angular.isDefined(b)&&a.goto(0,1)}),a.sendData=function(){var b=(a.page.curpage-1)*a.everyNum-1,c=a.page.curpage*a.everyNum;a.$emit("flipinfo",{start:b,end:c,listkey:a.listKey,pagen:a.everyNum})}}}}function flipInfoDy(){return{restrict:"E",replace:!0,templateUrl:"/template/common/flipinfody.html?r="+tempVersion,scope:{totalNum:"=",listKey:"@",listRefresh:"="},link:function(a,b){a.everyId="everyId",a.everyList=[{id:20,name:"每页20条"},{id:50,name:"每页50条"},{id:100,name:"每页100条"}],a.minNum=a.everyInit=a.everyList[0].id,a.$on(a.everyId,function(b,c){var d=c.info.id;a.everyNum="all"==d?a.totalNum:d}),a.page={},a.$watch("totalNum+everyNum+listRefresh",function(b){angular.isDefined(a.totalNum)&&a.refreshInfos(a.totalNum-1)}),a.refreshInfos=function(b){var c=a.everyNum?a.everyNum:a.everyInit;a.page.totals=b,a.page.totalpages=Math.ceil(a.page.totals/c),a.page.curpage=1,a.sendData()},a.goto=function(b,c){var d=!1;switch(b){case 0:a.page.curpage==c&&(d=!0),a.page.curpage=c;break;case 2:1==a.page.curpage&&(d=!0),a.page.curpage>1&&a.page.curpage--;break;case 3:(a.page.curpage==a.page.totalpages||a.page.totalpages<=1)&&(d=!0),a.page.curpage<a.page.totalpages&&a.page.curpage++;break;case 4:a.page.curpage==a.page.totalpages&&(d=!0),a.page.curpage=a.page.totalpages;break;case 5:""!=a.gonum&&angular.isNumber(a.gonum)&&a.gonum<=a.page.totalpages?(a.page.curpage==a.gonum&&(d=!0),a.page.curpage=a.gonum):a.gonum=""}d||a.sendData()},a.$watch("page.curpage",function(b){angular.isDefined(b)&&(a.gonum=b)}),a.sendData=function(){a.$emit("flipinfo",{current:a.page.curpage,pagenum:a.everyNum,listkey:a.listKey})}}}}function minChart(a,b,c,d,e,f,g){return{restrict:"E",replace:!0,templateUrl:"/template/common/chart.html?r="+tempVersion,scope:{chartTitle:"@",chartData:"=",chartType:"@",chartTp:"=",chartConfig:"=",chartLoading:"=",chartResize:"@",chartCondition:"=",chartBack:"="},link:function(e,h){var i=echarts.init($(h).find(".chartInfo").get(0));e.$watch("chartLoading",function(){e.chartLoading});var j=0;e.$watch("chartData",function(){if(angular.isUndefined(e.chartData))return!1;j=0,e.chartType=e.chartTp||e.chartType;var d=null;if("funnel"==e.chartType){var f=$(h).find(".chartInfo").width();e.chartConfig.barwidth=f}if(i.clear(),d="pie"==e.chartType?a.getPieOption(e.chartData,e.chartType,e.chartConfig||{}):"map"==e.chartType?a.getMapOption(e.chartData,e.chartType,e.chartConfig||{}):a.getOption(e.chartData,e.chartType,e.chartConfig||{}),"funnel"==e.chartType&&0==e.chartConfig.barwidth);else{i.setOption(d);var f=$(h).find(".chartInfo").width();e.chartResize&&"yes"==e.chartResize?i.resize():0==f&&c(function(){i.resize()},500)}c(function(){if("funnel"==e.chartType&&0==e.chartConfig.barwidth){var b=$(h).find(".chartInfo").width();e.chartConfig.barwidth=b,d=a.getOption(e.chartData,e.chartType,e.chartConfig||{}),i.setOption(d)}i.resize()},200),i.hideLoading(),angular.element(b).bind("resize",function(){i.resize()}),e.$on("conentresize",function(){c(function(){i.resize()},50)})},!0),e.isChart=!0,e.changeChart=function(a){e.isChart=a,a&&c(function(){i.resize()},100)},g.$watch("limitInfo",function(a){angular.isDefined(a)&&(e.iscanExport=g.showMenu("export")&&1==g.limitInfo.platformExport)}),e.exportData=function(){var a=(new Date).getTime();if(j>0&&a-j<=expLimitTime)return j=a,f.showTips(expTimeTips),!1;j=a,f.showLoading(),d.postInfo("mng/export/report/"+e.chartCondition.app+"/generatefile",e.chartCondition).then(function(a){f.hideLoading(),f.showTips(exportTips)})}}}}function exportButton(a,b,c,d){return{restrict:"E",transclude:!0,replace:!0,templateUrl:"/template/common/export.html?r="+tempVersion,scope:{exportCondition:"="},link:function(b,e){b.style1={float:"right","margin-top":"11px","margin-right":"10px"};var f=0;b.$watch("exportCondition",function(){f=0}),b.exportData=function(){var d=(new Date).getTime();if(f>0&&d-f<=expLimitTime)return f=d,c.showTips(expTimeTips),!1;f=d,c.showLoading(),a.postInfo("mng/export/report/"+b.exportCondition.app+"/generatefile",b.exportCondition).then(function(a){c.hideLoading(),c.showTips(exportTips)})},d.$watch("limitInfo",function(a){angular.isDefined(a)&&(b.iscanExport=d.showMenu("export")&&1==d.limitInfo.platformExport)})}}}function ngEnter(){return function(a,b,c){b.bind("keydown keypress",function(b){13===b.which&&(a.$apply(function(){a.$eval(c.ngEnter)}),b.preventDefault())})}}function selectChannel(a,b){return{restrict:"E",replace:!0,templateUrl:"/template/common/channel.html?r="+tempVersion,scope:{channelList:"=",appOs:"=",type:"="},link:function(c,d){c.isSuper=b.isSuper,c.type?c.channType=null:c.channType="ry_coop",c.category="ADVERTISING",c.letter="",c.popchannellist=!1,angular.element(d).parent().bind("click",function(){c.$broadcast("popchannel",{}),c.$apply()}),c.$on("popchannel",function(){c.popchannellist=!0}),c.$watch("appOs",function(a){angular.isDefined(a)&&(c.appplattype=a)}),c.changeType=function(a){c.channType=a,c.category="ADVERTISING",c.letter=""},c.$watch("channType+appplattype+channelList+category",function(a){angular.isDefined(c.channelList)&&angular.isDefined(c.appplattype)&&angular.isDefined(c.category)&&(2==c.appplattype?"ry_bd"!=c.channType?c.curChannelList=c.channelList.filter(function(a){return a.type==c.channType&&a.osAndroid&&a.category==c.category}):c.curChannelList=c.channelList.filter(function(a){return a.type==c.channType&&a.osAndroid}):1==c.appplattype?c.curChannelList=c.channelList.filter(function(a){return a.type==c.channType&&a.osIos&&"ADVERTISING"==a.category}):c.curChannelList=c.channelList.filter(function(a){return a.type==c.channType&&a.osWeb}))}),c.clickChannel=function(a){c.$emit("curchannel",{info:a}),c.curchid=a.id,c.popchannellist=!1},c.goChannel=function(){a.go("collect.channel")}}}}function popTip(){return{restrict:"E",transclude:!0,replace:!0,template:'<div class="opIcon p" ng-mouseleave="showtip=false" style="height:30px;"><span ng-transclude ng-click="clickTip()"></span><div class="poptips" ng-show="showtip"><div class="poparrow"></div>{{tipinfo}}</div></div>',scope:{tipinfo:"="},link:function(a,b){a.showtip=!1,a.clickTip=function(){a.showtip=!a.showtip}}}}function isLoading(){return{restrict:"E",replace:!0,templateUrl:"/template/common/loading.html?r="+tempVersion,scope:{doLoading:"="},link:function(a,b){a.myLoading=!1,a.$watch("doLoading",function(b){angular.isDefined(b)&&(a.myLoading=b)})}}}function noData(){return{restrict:"E",replace:!0,templateUrl:"/template/common/nodata.html?r="+tempVersion,scope:{},link:function(a,b){}}}function dateRange(a){return{restrict:"E",replace:!0,templateUrl:"/template/common/daterange.html?r="+tempVersion,scope:{nodrange:"@",noToday:"@",datekey:"@",maxRange:"@"},link:function(b,c){angular.isUndefined(b.nodrange)&&(b.nodrange=!1),a.isDemoUser()&&(b.nodrange=!0),angular.isUndefined(b.noToday)?b.noToday=!0:b.noToday="false"!=b.noToday&&0!=b.noToday,angular.isUndefined(b.datekey)&&(b.datekey="curdate");var d=a.getToday(),e=a.getYesDay();b.changeDate=function(c){switch(c){case"today":b.subfix="hour",b.mydate=d;break;case"yesday":b.subfix="hour",b.mydate=e;break;case"d7":b.subfix="ds",b.mydate=a.getLastDays(-7,0);break;case"d14":b.subfix="ds",b.mydate=a.getLastDays(-14,0);break;case"d30":b.subfix="ds",b.mydate=a.getLastDays(-30,0)}b.timeflag=c},b.maxDay=0,1==b.noToday?(b.changeDate("yesday"),b.maxDay=-1):b.changeDate("today"),b.myrangeday=b.maxRange,b.$on("dateCustos",function(a,c){c.startDate==c.endDate&&c.startDate==d.startDate?(b.timeflag="today",b.subfix="hour"):c.startDate==c.endDate&&c.startDate==e.startDate?(b.timeflag="yesday",b.subfix="hour"):(b.timeflag=c.dateflag,b.subfix="ds"),b.mydate=c}),b.$watch("mydate",function(a){angular.isDefined(a)&&(b.datestr=b.mydate.startDate+"至"+b.mydate.endDate,b.$emit(b.datekey,{date:b.mydate,subfix:b.subfix,timeflag:b.timeflag}))},!0)}}}function numberTxt(){return{restrict:"A",link:function(a,b){b.bind("keydown",function(a){a=window.event||a,a.keyCode>=48&&a.keyCode<=57||a.keyCode>=96&&a.keyCode<=105||8==a.keyCode||190==a.keyCode||a.preventDefault()}).bind("input propertychange",function(){})}}}function integerTxt(){return{restrict:"A",link:function(a,b){b.bind("keydown",function(a){a=window.event||a,a.keyCode>=48&&a.keyCode<=57||a.keyCode>=96&&a.keyCode<=105||8==a.keyCode||a.preventDefault()}).bind("input propertychange",function(){var a=$(b).val().replace(/\D/g,"");$(b).val(a)})}}}function helpTip(a,b){return{restrict:"E",replace:!0,scope:{name:"@",dname:"=",dn2:"=",hidx:"@",red:"="},templateUrl:"/template/common/helptip.html?r="+tempVersion,link:function(c,d){c.showtip=!1;var e=c.hidx?c.hidx:2;c.spanStyle={"z-index":e};var f=$(d).find(".helpTipWrap"),g=Number($(d).parent().css("z-index"));f.hide(),c.showTip=function(){g=Number($(d).parent().css("z-index")),angular.isNumber(g)&&$(d).parent().css("z-index",g+1),$(".helpTipWrap").not(f).parent().parent().css("z-index",g),$(".helpTipWrap").not(f).hide().animate({opacity:0}),f.show().animate({opacity:1},100,"linear")},angular.element(document).on("click",function(){angular.isNumber(g)&&f.parent().parent().css("z-index",g),f.animate({opacity:0}).hide()}),c.$watch("name+dname+dn2",function(b){var d=c.name?c.name:c.dname;angular.isDefined(c.dn2)&&(d+=c.dn2),angular.isDefined(d)&&(c.tipname=d,c.tipcontent=a.getMenuTip(c.tipname))}),b.$watch("currentPageTips",function(){c.tipcontent=a.getMenuTip(c.tipname)})}}}function helpWinTip(a,b,c){return{restrict:"E",scope:{name:"@",dname:"=",zIndex:"=",titlev:"@",helpw:"@"},replace:!0,template:'<span ng-click="showTip()" title="{{titlev}}" stop-event></span>',link:function(b,c){angular.element(document).on("click",function(){$("#winTC").hide()}),b.showTip=function(){var d=b.name?b.name:b.dname,e=$(c).offset(),f=e.left,g=e.top;h=$(c).innerHeight(),w=$(c).innerWidth(),winWidth=$(window).width(),g=Math.ceil(g+h);var i={top:g,display:"block",opacity:1},j=$("#winTC");b.zIndex&&j.css("z-index",b.zIndex),b.helpw?j.css("width",b.helpw+"px"):j.css("width","200px"),$(c).hasClass("rightTip")?(j.addClass("rightPosition"),f=Math.ceil(f-j.innerWidth()+w)):j.removeClass("rightPosition"),winWidth-f<200&&(j.addClass("rightPosition"),f=Math.ceil(f-j.innerWidth()+w)),i.left=f,j.html(a.getMenuTip(d)).css(i)}}}}function fixHeader(a){return{restrict:"A",scope:{titleName:"=",fixFirtd:"@",fixList:"="},link:function(b,c){var d=$(c),e=d.parent(),f=0,g=null,h=1;angular.isDefined(b.fixFirtd)&&(f=Number(b.fixFirtd),h=2),b.$watch("titleName",function(){a(function(){d.find("thead th").css({position:"relative","z-index":h}),e.scroll(function(){var a=$(this).scrollTop();a>5&&a--,d.find("thead th").css({top:a+"px"})})})}),f>0&&b.$watch("fixList",function(){a(function(){g=d.find("tr td:nth-child("+f+")"),g.css({position:"relative","z-index":1}),e.scroll(function(){var a=$(this).scrollLeft();a>5&&(a-=2),g.css({left:a+"px"})})})})}}}function customEvent(a,b,c,d,e){return{restrict:"E",replace:!0,templateUrl:"/template/common/custom.html?r="+tempVersion,scope:{type:"=",eventList:"=",oldInfo:"="},link:function(f,g){var h=(new Date).getTime();f.$watch("oldInfo",function(c){if(angular.isDefined(f.oldInfo))if("eventstats"==f.type)f.changeEvent(null,f.oldInfo);else{f.eventInfo=[],evts=[],evtvals=[],f.oldInfo.filter(function(b){var c={event:b.event,param:[]};a.cloneJSON(b.params).filter(function(a){c.param.push(a.attr)}),evts.push(b.event),evtvals.push(c)}),b.showLoading();var g=d.getInfo(e.appid+"/event/find/param?names="+evts.join(",")+"&params="+JSON.stringify(evtvals));g.then(function(c){c.filter(function(a){for(var b=0;b<f.eventList.length;b++)if(a.eventName==f.eventList[b].eventName){f.eventList[b].profiles=a.profiles;break}}),f.oldInfo.filter(function(b){b.oldparams=a.cloneJSON(b.params),delete b.params,f.addEvent(b)}),b.hideLoading()})}}),f.$on("eventId",function(a,b){f.changeEvent(b.info)}),f.initEvent=function(){f.eventinitname="全部事件",f.eventInit=0-h,f.event={},f.propertyList=[],f.sumtypeList=[]},f.changeEvent=function(g,i){if(i){f.initEvent(),f.eventinitname=i.event,f.properinitname=i.viewField;var j=f.eventList.filter(function(a){return a.eventName==i.event});j.length>0?(g=j[0],f.eventinitname=g.eventNameAlias,f.evnullevent=!1):f.evnullevent=!0}if(f.event={id:"evt_"+h,params:[],paramsList:[],relation:"and"},!a.isNullStr(g)){f.eventId=g.eventName,f.eventstatsEvtName=g.eventNameAlias;var k=function(){f.propertyList=g.firstLevelAttr,f.sumtypeList=g.secondLevelAttr,f.event.paramsList=g.profiles};if(g.secondLevelAttr)k();else{var l=[],m={event:f.eventId,param:[]};i&&(i.params.filter(function(a){m.param.push(a.attr)}),l.push(m)),b.showLoading();d.getInfo(e.appid+"/event/find/param?names="+f.eventId+"&params="+JSON.stringify(l)).then(function(a){a.filter(function(a){for(var b=0;b<f.eventList.length;b++)if(a.eventName==f.eventList[b].eventName){f.eventList[b].profiles=a.profiles,f.eventList[b].firstLevelAttr=a.firstLevelAttr,f.eventList[b].secondLevelAttr=a.secondLevelAttr;break}}),k(),b.hideLoading()})}}i?(f.event.relation=i.relation,c(function(){f.propertyInit=i.viewField,f.prorefresh=++h,f.event.secondval=i.fieldOperate,""!=i.fieldOperate&&(f.event.second=!0,f.suminitname=i.fieldOperate),i.params.filter(function(a){a.attrMatch=!1,f.addEventParams(f.event,a)})})):(f.propertyInit=f.propertyList[0].attr,f.prorefresh=++h)},f.$on("propertyId",function(a,b){f.event.proId=b.info.attr,f.event.sumId="","default"!=b.info.type?(f.event.second=!0,f.event.secondval?(f.sumtypeInit=f.event.secondval,delete f.event.secondval):f.sumtypeInit=f.sumtypeList[0].attr):(f.sumtypeInit="",f.event.second=!1)}),f.$on("sumtypeId",function(a,b){f.event.sumId=b.info.attr}),f.getEventNum=function(){return f.eventInfo?f.eventInfo.filter(function(a){return 0!=a.show}).length:20},f.setEventSteps=function(){if(!f.eventInfo)return 20;var a=-1,b=f.eventInfo.length;f.eventInfo.filter(function(c,d){0!=c.show&&(a++,c.steps=["一","二","三","四","五","六","七","八","九","十"][a],c.style={"z-index":b-d})})},f.addEvent=function(a){h++;var b={id:"evt_"+h,eventid:"event_"+h,relation:"and"};if(a){for(var c in a)b[c]=a[c];b.eventinit=a.event,b.eventinitname=a.event,b.params=[];0==f.eventList.filter(function(b){return b.eventName==a.event}).length&&(b.nullevent=!0,b.oldparams&&(b.oldparams.filter(function(a){f.addEventParams(b,a)}),delete b.oldparams))}!function(a){f.$on(a.eventid,function(b,c){a.params=[],a.event=c.info.eventName,a.evtname=c.info.eventNameAlias,a.nullevent=!1;var g=function(){a.paramsList=c.info.profiles,a.oldparams&&(a.oldparams.filter(function(b){f.addEventParams(a,b)}),delete a.oldparams)};if(angular.isArray(c.info.profiles))g(c.info.profiles);else{d.getInfo(e.appid+"/event/find/param?names="+a.event).then(function(a){c.info.profiles=a[0].profiles,g()})}})}(b),f.eventInfo.push(b),f.setEventSteps()},f.removeEvent=function(a){if(f.getEventNum()<=2&&"funnel"==f.type)return b.showTips("漏斗步骤不能少于2步"),!1;for(var c=0;c<f.eventInfo.length;c++)if(f.eventInfo[c].id==a.id){f.eventInfo[c].show=!1;break}f.setEventSteps()},f.changeRel=function(a){a.relation="and"==a.relation?"or":"and"},f.getEventParamsNum=function(a){return a.params?a.params.filter(function(a){return 0!=a.show}).length:5},f.addEventParams=function(a,b){if(!a.params||f.getEventParamsNum(a)>=3)return!1;h++;var c={id:"pam_"+h,pid:a.id};if(b)for(var d in b)c[d]=b[d];a.params.push(c)},f.removeEventParams=function(a,b){for(var c=0;c<a.params.length;c++)if(a.params[c].id==b.id){a.params[c].show=!1;break}},f.$on("event",function(a,b){if("eventstats"==f.type){for(var c=f.event.params,d=0;d<c.length;d++)if(c[d].id==b.id){c[d]=b;break}}else for(var e=0;e<f.eventInfo.length;e++)if(f.eventInfo[e].id==b.pid)for(var c=f.eventInfo[e].params,d=0;d<c.length;d++)if(c[d].id==b.id){c[d]=b;break}}),f.okSave=function(){var c=!1,d=[],e=[];f.eventInfo.filter(function(b){if(0!=b.show){var g={event:b.event,relation:b.relation,params:[],eventMatch:!0};a.isNullStr(b.event)||1==b.nullevent?(b.nullevent=!0,c=!0):(b.nullevent=!1,b.params.filter(function(b){if(0!=b.show){var d={};for(var e in b)"id"!=e&&"pid"!=e&&(d[e]="value"!=e?b[e]:b[e].join(","),a.isNullStr(b[e])&&(f.$broadcast(b.id,"null"),c=!0));g.params.push(d)}})),d.push(g),e.push(b.evtname)}}),!c&&d.length>0?f.$emit("matchok",{info:d,names:e}):b.showTips("信息没填全或数据有误,请检查")},f.eventSave=function(){if(!f.event.params)return!1;var c=!1,d={event:f.eventId,relation:f.event.relation,params:[]};d.viewField=f.event.proId,f.event.second?d.fieldOperate=f.event.sumId:d.fieldOperate="",f.event.params.filter(function(b){if(0!=b.show){a.isNullStr(b.attr)&&(f.$broadcast(b.id,"error"),c=!0);var e={};for(var g in b)"id"!=g&&"pid"!=g&&(e[g]="value"!=g?b[g]:b[g].join(","),a.isNullStr(b[g])&&(f.$broadcast(b.id,"error"),c=!0));d.params.push(e)}}),c||!f.eventId?b.showTips("信息没填全或数据有误,请检查"):f.$emit("matchok",{info:d,names:[f.eventstatsEvtName]})}}}}function fileModel(a){return{restrict:"A",scope:{},link:function(b,c,d){var e=a(d.fileModel),f=e.assign;c.bind("change",function(){if(""==angular.element(c).val())return!1;b.$apply(function(){var a=c[0].files;d.multiple?f(b,c[0].files):(f(b,c[0].files[0]),a=c[0].files[0]),b.$emit("myFile",a),angular.element(c).val("")})})}}}function searchGroup(){return{restrict:"E",replace:!0,scope:{filterfn:"&",initTxt:"=",initf5:"=",list:"="},templateUrl:"/template/common/searchGroup.html?r="+tempVersion,link:function(a,b,c){a.query=function(){if(a.preTxt==a.srhTxt)return!1;a.filterfn({txt:a.srhTxt}),a.preTxt=a.srhTxt},a.$watch("initTxt+initf5+list",function(){a.srhTxt=a.preTxt=a.initTxt||""}),a.doNull=function(){a.srhTxt="",a.query()}}}}function bigTable(a,b){return{restrict:"A",replace:!0,scope:{fixedCol:"@",fixChange:"=",infoList:"=",initf5:"=",noScroll:"@",noAllScroll:"@",noEmpty:"="},link:function(c,d){var e=$(d).find(".tableSpline"),f=$(d).find(".tableHeader"),g=$(d).find(".tableInfo"),h=$(d).find(".copyColWrap"),i=h.find("table"),j=0,k=0,l=!1,m=0,n=0,o=0,p=$(".helpTipWrap");0==e.length&&($(d).append("<div class='tableSpline'></div>"),e=$(d).find(".tableSpline")),0==h.length&&($(d).prepend("<div class='copyColWrap'><table></table></div>"),h=$(d).find(".copyColWrap"),i=h.find("table"),c.noAllScroll&&h.css({"max-height":"233px",top:"35px"}));var q=function(){j=1,f.scrollLeft(0),g.scrollLeft(0),g.scrollTop(0),k=g.find("table").height();for(var a=0;a<c.fixedCol;a++)j+=f.find("#title_"+a).parent().width();e.css({left:j}),$(d).find(".tableHeader th:lt("+c.fixedCol+")").css("left","0px"),o=0},r=function(){var a=g.find("table"),b=f.find("table");l=!c.noEmpty&&(c.infoList&&0==c.infoList.length);var h=b.css("width"),i=b.css("height"),j=a.find("tbody").height(),m=b.height(),n=g.find("table tr:last");if(l)0==n.length&&a.append("<tr></tr>"),a.width(h),a.height(0==k?i:k),e.height(i);else{g.find("table").width(""),g.find("table").height("");var p=m+j,q=$(d).height();e.height(p>q?q:p),n.html()||n.remove()}g.perfectScrollbar("update"),g.scrollLeft(o),g.scrollTop(0)},s=function(){i.html(""),l||g.find("tr").each(function(a){i.append("<tr></tr>");for(var d=i.find("tr:last-child"),e=0;e<c.fixedCol;e++)if(d.append($(this).children("td:eq("+e+")").clone(!0)),0==e){var f=d.find("td");f.each(function(){var a=$(this).find("div").html();$(this).html(b($(this).clone(!0))(c.$parent)),$(this).find("div").html(a)})}})};c.$watch("initf5",function(b){if(angular.isDefined(b)){e.hide(),i.html("");var c=a(function(){q()},50);c.then(function(){a.cancel(c)})}}),c.$watch("fixChange",function(b){if(angular.isDefined(b)&&c.infoList){
i.html("");var d=a(function(){r(),s()},100);d.then(function(){a.cancel(d)})}}),c.$on("conentresize",function(){g.perfectScrollbar("update"),g.scrollLeft(0),g.scrollTop(0),e.hide()});var m=0;g.scroll(function(a){p.hide();var b=a.target,i=b.scrollLeft;o=i,f.scrollLeft(i);var j={position:"relative",left:i,"-webkit-overflow-scroll":"touch"};$(d).find(".tableHeader th:lt("+c.fixedCol+")").each(function(a){$(this).css(j)}),i>0?e.show():e.hide().css("-webkit-overflow-scroll","auto"),n=$(this).scrollTop(),h.scrollTop(n),c.noAllScroll||(m>n?n<200&&!c.noScroll&&$(".rightWrap").scrollTop(n):c.noScroll?$(".rightWrap").scrollTop($(".rightWrap").scrollTop()+this.scrollHeight):n>=g.find("table").height()-g.height()&&this.scrollTop>0&&$(".rightWrap").scrollTop(this.scrollHeight),m=n)}),$(".rightWrap").scroll(function(){p.hide()}),g.perfectScrollbar()}}}function dragOrder(a){return{restrict:"A",scope:{dragId:"=",dragflag:"@"},link:function(a,b,c){b.attr("draggable",!0),angular.element(b).on("dragstart",function(b){sourceId=a.dragId}),angular.element(b).on("dragover",function(a){a.preventDefault()}),angular.element(b).on("drop",function(b){var c=$(this),d=JSON.parse(c.attr("drag-info"));b.preventDefault(),sourceId!=d.id&&a.$emit("dragorder",{id:sourceId,index:d.orderindex,flag:a.dragflag})})}}}var tempVersion=(new Date).getTime();angular.module("app").directive("flipInfo",flipInfo).directive("flipInfoDy",flipInfoDy).directive("selectList",["ToolService",selectList]).directive("selectTList",selectTList).directive("selectMoreList",selectMoreList).directive("selectParams",["ToolService",selectParams]).directive("delTip",delTip).directive("wincrmTip",wincrmTip).directive("okcrmTip",["ToolService",okcrmTip]).directive("stopEvent",stopEvent).directive("minChart",["OptionService","$window","$timeout","HttpService","UtilService","ToolService","$rootScope",minChart]).directive("exportButton",["HttpService","UtilService","ToolService","$rootScope",exportButton]).directive("ngEnter",ngEnter).directive("popTip",popTip).directive("isLoading",isLoading).directive("dateRange",["ToolService",dateRange]).directive("selectChannel",["$state","$rootScope",selectChannel]).directive("numberTxt",numberTxt).directive("integerTxt",integerTxt).directive("fixHeader",["$timeout",fixHeader]).directive("helpTip",["ToolService","$rootScope",helpTip]).directive("helpWinTip",["ToolService","$rootScope","$filter",helpWinTip]).directive("noData",[noData]).directive("customEvent",["UtilService","ToolService","$timeout","HttpService","$rootScope",customEvent]).directive("fileModel",["$parse",fileModel]).directive("searchGroup",[searchGroup]).directive("bigTable",["$timeout","$compile",bigTable]).directive("dragOrder",[dragOrder]);var exportTips="导出成功,请到数据导出-下载报表处进行下载",expTimeTips="请1分钟后再点",expLimitTime=6e4,sourceId=0}(),function(){function a(a,c,d,e){return{restrict:"E",templateUrl:"/template/common/profileItem.html?r="+b,scope:{infoList:"=",itemId:"=",itemInfo:"=",itemType:"@",itemEvent:"=",common:"@"},link:function(b,f){b.stringList=a.getStringTypes(),b.numberList=a.getNumberTypes(),b.initdate=a.getToday();var g={};if(angular.isDefined(b.itemInfo)&&(g=c.cloneJSON(b.itemInfo)),b.itemData={id:b.itemInfo.id,pid:b.itemInfo.pid},b.sdate=b.initdate.startDate,b.edate=b.initdate.endDate,b.$on("sdate",function(a,c){b.sdate=c,b.setDateValue()}),b.$on("edate",function(a,c){b.edate=c,b.setDateValue()}),b.setDateValue=function(){b.itemData.value[0]=b.sdate,2==b.valflag&&(b.itemData.value[1]=b.edate),b.sendData()},b.valueSelList=[],b.keyValList=[],b.keyValSelList=[],b.attrnull=!1,b.valnull=!1,b.initValue=function(){if("string"==b.showtype)if(b.valTxt="",b.keyValSelList.length>0){b.keyValList=c.cloneJSON(b.itemData.value);var a=angular.isNumber(b.keyValSelList[0]);b.keyValList.filter(function(c){a&&(isNaN(Number(c))||(c=Number(c)));var d=b.keyValSelList.indexOf(c);-1==d?(b.valueSelList.unshift(c),b.valueList.push(c)):b.valueList.push(b.valueSelList[d])})}else b.valueList=c.cloneJSON(b.itemData.value),b.valueList.filter(function(a){-1==b.valueSelList.indexOf(a)&&b.valueSelList.unshift(a)});else"date"==b.showtype?(b.itemData.value.length>0?(b.sdate=b.itemData.value[0],2==b.valflag&&(b.edate=b.itemData.value[1])):(b.sdate=b.initdate.startDate,b.edate=b.initdate.endDate),b.itemData.value=[b.sdate,b.edate]):"number"==b.showtype&&(b.itemData.value.length>0?(b.valTxt1=b.itemData.value[0],2==b.valflag&&(b.valTxt2=b.itemData.value[1])):(b.valTxt1="",b.valTxt2=""));b.valueList.length>0&&(b.valStyle={width:"50px"})},g.operator||(b.operationList=b.stringList,b.operationinit=b.operationList[0].id),angular.isDefined(b.itemInfo.attrMatch))if(b.profileinitname=b.itemInfo.attr,b.showtype=b.itemInfo.type,"string"==b.itemInfo.type?b.operationList=b.stringList:b.operationList=b.numberList,b.operationinit=b.itemInfo.operator,b.itemData.value=b.itemInfo.value.split(","),b.initValue(),b.infoList&&0!=b.infoList.length){var h=b.infoList.filter(function(a){return a.attr==b.itemInfo.attr});0==h.length&&(b.attrnull=!0)}else b.attrnull=!0;else"profile"==b.itemType?b.profileinitname="请选择用户属性":"event"==b.itemType?b.profileinitname="请选择事件属性":b.profileinitname="请选择";g.attr&&(b.profileinit=g.attr),b.changeval=!1,b.$on("profileid",function(a,d){b.proId=d.info.attr,b.itemData.attr=d.info.attr,b.itemData.type=d.info.dataType,b.showtype=d.info.webType||d.info.dataType,b.itemData.value=[],b.valueList=[],d.info.value?(b.valueSelList=c.cloneJSON(d.info.value),b.changeval=!1):(b.valueSelList=[],b.changeval=!0),d.info.key?b.keyValSelList=c.cloneJSON(d.info.key):b.keyValSelList=[],b.attrnull=!1,"string"==b.showtype?b.operationList=b.stringList:b.operationList=b.numberList,g.operator?(b.operationinit=g.operator,delete g.operator):b.operationinit=b.operationList[0].id,b.sendData()}),b.$on("operationId",function(a,c){c.info.more?b.valflag=3:c.info.both?b.valflag=2:b.valflag=1,b.itemData.operator=c.info.id,g.value?(b.itemData.value=g.value.split(","),b.txtTip="",delete g.value):(b.itemData.value=[],b.valueList=[],b.keyValList=[]),b.valnull=!1,b.initValue(),b.sendData()}),b.valueList=[],b.txtTip="请输入一个属性过滤条件",b.getValueList=function(){if(b.changeval&&b.proId&&"event"==b.itemType){var a=b.common?"/event/find/value/attr":"/event/find/value/one",c=b.common?{attrName:b.proId}:{eventname:b.itemEvent,attrname:b.proId};d.getInfo(e.appid+a,c).then(function(a){a.key&&null!=a.key?b.keyValSelList=a.key:b.keyValSelList=[],a.value&&null!=a.value?b.valueSelList=a.value:b.valueSelList=[],b.changeval=!1})}},b.setValue=function(a){if(b.valnull=!1,!a||""==a)return!1;if(b.valueList.indexOf(a)>-1);else{if(3==b.valflag?b.valueList.push(a):b.valueList=[a],b.keyValSelList.length>0){var d=b.valueSelList.indexOf(a),e=b.keyValSelList[d];e||(e=a),3==b.valflag?b.keyValList.push(e):b.keyValList=[e],-1==d&&(b.keyValSelList.push(e),b.valueSelList.push(a)),b.writeValue(e),b.itemData.value=c.cloneJSON(b.keyValList)}else{b.itemData.value=c.cloneJSON(b.valueList);var d=b.valueSelList.indexOf(a);-1==d&&b.valueSelList.push(a)}b.sendData()}b.showsel=!1,b.valTxt="",b.txtTip="",$(f).find("#valTxt").focus()},b.removeValue=function(a){b.valueList.splice(a,1),b.keyValList.length>0?(b.keyValList.splice(a,1),b.itemData.value=b.keyValList):b.itemData.value=b.valueList,0==b.valueList.length&&(b.txtTip="请输入一个属性过滤条件",b.valStyle={}),b.sendData()},b.writeValue=function(a){if(b.showsel=!0,0==b.valueList.length)return b.txtTip="请输入一个属性过滤条件",void(b.valStyle={});var c=8*(a+"").length;c=c<50?50:c,c=c>120?120:c,b.valStyle={width:c+"px"}},b.setNumberVal=function(){b.itemData.value[0]=b.valTxt1,2==b.valflag&&(b.itemData.value[1]=b.valTxt2),b.sendData()},b.addNumber=function(a,c){b.valnull=!1,1==a&&(b.valTxt1&&""!=b.valTxt1||(b.valTxt1=0),b.valTxt1=Number(b.valTxt1),b.valTxt1+=c,b.valTxt1=b.valTxt1<0?0:b.valTxt1,b.itemData.value[0]=b.valTxt1),2==a&&(b.valTxt2=Number(b.valTxt2),b.valTxt2&&""!=b.valTxt2||(b.valTxt2=0),b.valTxt2+=c,b.valTxt2=b.valTxt2<0?0:b.valTxt2,b.itemData.value[1]=b.valTxt2),b.sendData()},b.sendData=function(){b.$emit(b.itemType,b.itemData)},b.$on(b.itemData.id,function(){c.isNullStr(b.itemData.attr)&&(b.attrnull=!0),c.isNullStr(b.itemData.value)||0==b.itemData.value.length?b.valnull=!0:2!=b.valflag||""!=b.valTxt1&&""!=b.valTxt2||(b.valnull=!0)})}}}var b=(new Date).getTime();angular.module("app").directive("profileItem",["ToolService","UtilService","HttpService","$rootScope",a])}(),function(){function a(a,b,c){var d=Date.today(),f={abbrWeeks:["日","一","二","三","四","五","六"],format:"YYYY-MM-DD",min:null,max:d,start:d,end:d,current:d,months:2,chooseCls:"is-choose",todayCls:"is-today"};return{restrict:"EA",transclude:!0,replace:!0,templateUrl:"/template/common/datepicker.html?r="+e,scope:{dateName:"@",noMax:"@",rangeDays:"@",rangeDays2:"=",initDay:"=",maxDay:"@",maxDay2:"=",operationSel:"=",min:"="},link:function(e,g,h){e.maxDay=e.maxDay||e.maxDay2;var i=-1;c.isNullStr(e.maxDay)&&(i=0);var j={yesday:b.getYesDay(),d7:b.getLastDays(-7,i),d14:b.getLastDays(-14,i),d30:b.getLastDays(-30,i),"-w1":b.getWeekRangeDate(-1,i),w0:b.getWeekRangeDate(0,i),"-m1":b.getMonthRangeDate(-1,i),m0:b.getMonthRangeDate(0,i)};e.$watch("operationSel",function(a){angular.isUndefined(e.operationSel)?e.operSel=!0:e.operSel=a}),e.getRelativeFlag=function(a,b){var c="";for(var d in j){var f=j[d];if(a==f.startDate&&b==f.endDate){c=d;break}}e.selDayflag=c},e.$watch("initDay",function(a){angular.isDefined(a)&&a.startDate&&(e.options.start.isSameDay(new Date(a.startDate))&&e.options.end.isSameDay(new Date(a.endDate))||(e.getRelativeFlag(a.startDate,a.endDate),e.options.start=e.completeStrat=new Date(a.startDate),e.options.end=e.completeEnd=new Date(a.endDate)))}),e.selme=!1,e.$watch("rangeDays+rangeDays2",function(a){var b=e.rangeDays||e.rangeDays2;angular.isDefined(b)?e.rgDays=Number(b):e.rgDays=31});var k=d,l=e.dateName||"dateCustos";if(e.maxDay&&-1==e.maxDay&&(k=Date.yesterday()),e.noMax&&"true"==e.noMax){var m=Date.today();m.setFullYear(d.getFullYear()+100),k=m}var n="";e.$watch("min",function(a){angular.isDefined(a)&&(n=new Date(a).addDays(-1))});var o=c.cloneJSON(f);!function(){o.start=k,o.end=k,o.max=k,o.current=d,e.options=angular.extend(o,e.options||{}),e.options.start.clearTime(),e.options.end.clearTime(),e.completeStrat=e.options.start,e.completeEnd=e.options.end,e.customStrat=e.options.start.toFormat(e.options.format),e.customEnd=e.options.end.toFormat(e.options.format),e.panelEndDate=Date.getFirstDay(e.options.end)}();var p=function(a){for(var b=[],c=e.options.months,a=(a||e.panelEndDate).clone(),f=0;f<c;f++){for(var h=[],i=a.clone().addMonths(-(c-1-f)),j=Date.getFirstDay(i),k=j.getDay(),l=Date.getDaysInMonth(i.getFullYear(),i.getMonth()),m=Math.ceil((k+l)/7),n=j.clone().addDays(-k),o=0;o<m;o++){for(var p=[],q=0;q<7;q++){var r=n.clone();p.push({day:r,choose:r.between(e.options.start,e.options.end),other:r.getMonth()!=i.getMonth(),today:Date.isSameDay(r,d)}),n=n.addDays(1)}h.push(p)}b.push({date:i,weeks:h})}$(g).parent().prevAll().show(),e.panels=b,e.wstyle={width:274*c+80+"px"}};e.cellClass=function(a){return a.other?"other-month":a.day.isSameDay(e.options.start)||a.day.isSameDay(e.options.end)?"start_end":a.day.between(e.options.start,e.options.end)?"choose":a.day.isSameDay(e.options.current)&&a.day.isSameDay(k)?"is-today":a.day.isAfter(k)||""!=n&&a.day.isBefore(n)?"disabled":""},e.changeMonth=function(a,b,c){e.dateMonth=e.panelEndDate.addMonths(c),p(e.dateMonth)},e.showDateTable=function(){if(!e.operSel)return!1;var a=$(g).find(".dateTabRange");$(".dateTabRange").each(function(){$(this)!==a&&$(this).addClass("ng-hide")}),a.hasClass("ng-hide")?(e.showFlag=!0,a.removeClass("ng-hide")):(e.showFlag=!1,a.addClass("ng-hide"))};var q=0;e.chooseDate=function(a){a.day.isAfter(k)||""!=n&&a.day.isBefore(n)||(q>=2&&(q=0),q++,1===q?e.options.end=e.options.start=a.day:2===q&&(a.day.isAfter(e.options.start)?e.options.end=a.day:e.options.start=a.day))},e.setRelDate=function(b){var c=j[b];if(-1!=e.rgDays){if(diffDate(c.startDate,c.endDate)>e.rgDays)return a.showTips("日期范围不能大于"+e.rgDays+"天"),!1}return e.selDayflag=b,""!=n&&new Date(c.startDate).isBefore(n)?void a.showTips("超出最小可选日期限制了"):(e.options.start=new Date(c.startDate),""!=n&&new Date(c.endDate).isBefore(n)?void a.showTips("超出最小可选日期限制了"):(e.options.end=new Date(c.endDate),void e.complete(1)))},e.complete=function(b){if(angular.isUndefined(b)&&-1!=e.rgDays){if(diffDate(e.options.start,e.options.end)>e.rgDays)return a.showTips("日期范围不能大于"+e.rgDays+"天"),!1}e.completeStrat=e.options.start,e.completeEnd=e.options.end;var c=e.completeStrat.toFormat(e.options.format),d=e.completeEnd.toFormat(e.options.format);angular.isUndefined(b)&&e.getRelativeFlag(c,d),e.$emit(l,{startDate:c,endDate:d,dateflag:e.selDayflag}),e.showFlag=!1},e.cancel=function(){e.options.start==e.completeStrat&&e.options.end==e.completeEnd||(e.options.start=e.completeStrat,e.options.end=e.completeEnd,e.getRelativeFlag(e.completeStrat.toFormat(e.options.format),e.completeEnd.toFormat(e.options.format))),e.showFlag=!1},e.$watch("options.start+options.end",function(){e.customStrat=e.options.start.toFormat(e.options.format),e.customEnd=e.options.end.toFormat(e.options.format)}),p(),$(document).on("click",function(){e.cancel(),e.$apply()})}}}function b(){var a=Date.today(),b={abbrWeeks:["日","一","二","三","四","五","六"],format:"YYYY-MM-DD",min:null,max:a,start:a,end:a,current:a,months:1,chooseCls:"is-choose",todayCls:"is-today"};return{restrict:"EA",transclude:!0,replace:!0,templateUrl:"/template/common/datepicker.html?r="+e,scope:{dateName:"@",campareDays:"=",operationSel:"="},link:function(c,d,e){c.$watch("operationSel",function(a){angular.isUndefined(c.operationSel)?c.operSel=!0:c.operSel=a});var f=a,g=c.dateName;!function(){b.start=f,b.end=f,b.max=f,b.current=f,c.options=angular.extend(b,c.options||{}),c.options.start.clearTime(),c.options.end.clearTime(),c.completeStrat=c.options.start,c.completeEnd=c.options.end,c.customStrat=c.options.start.toFormat(c.options.format),c.customEnd=c.options.end.toFormat(c.options.format),c.panelEndDate=Date.getFirstDay(c.options.end)}();var h=function(b){var e=[],g=c.options.months,b=(b||c.panelEndDate).clone();g=1;for(var h=0;h<g;h++){for(var i=[],j=b.clone().addMonths(-(g-1-h)),k=Date.getFirstDay(j),l=k.getDay(),m=Date.getDaysInMonth(j.getFullYear(),j.getMonth()),n=Math.ceil((l+m)/7),o=k.clone().addDays(-l),p=0;p<n;p++){for(var q=[],r=0;r<7;r++){var s=o.clone();q.push({day:s,choose:s.between(c.options.start,c.options.end),other:s.getMonth()!=j.getMonth(),today:Date.isSameDay(s,a)}),o=o.addDays(1)}i.push(q)}e.push({date:j,weeks:i})}f!==a?(c.complete(),$(d).parent().prevAll().hide()):$(d).parent().prevAll().show(),c.panels=e,c.wstyle={width:274*g+"px"}};c.cellClass=function(a){return a.other?"other-month":a.day.between(c.options.start,c.options.end)?"choose":a.day.isSameDay(f)?"is-today":a.day.isAfter(f)?"disabled":""},c.changeMonth=function(a,b,d){c.dateMonth=c.panelEndDate.addMonths(d),h(c.dateMonth)},c.showDateTable=function(){if(!c.operSel)return!1;void 0===c.showFlag?c.showFlag=!0:1==c.showFlag?c.showFlag=!1:0==c.showFlag&&(c.showFlag=!0)};var i=0;c.chooseDate=function(b){b.day.isAfter(a)||b.day.isAfter(f)||(i>=2&&(i=0),i++,angular.isDefined(c.campareDays)&&c.campareDays>0?(c.options.end=b.day,c.options.start=new Date(addDate(b.day,-c.campareDays))):c.options.end=c.options.start=b.day,c.complete())},c.complete=function(){c.completeStrat=c.options.start,c.completeEnd=c.options.end,angular.isDefined(c.campareDays)&&c.campareDays>0?c.$emit(g,c.completeStrat.toFormat(c.options.format)+" - "+c.completeEnd.toFormat(c.options.format)):c.$emit(g,c.completeStrat.toFormat(c.options.format)),c.showFlag=!1},c.cancel=function(){c.options.start=c.completeStrat,c.options.end=c.completeEnd,c.showFlag=!1},c.$watch("options.start+options.end",function(){c.customStrat=c.options.start.toFormat(c.options.format),c.customEnd=c.options.end.toFormat(c.options.format)}),h(),$(document).on("click",function(){c.cancel(),c.$apply()})}}}function c(a){var b=Date.yesterday();return{restrict:"EA",transclude:!0,replace:!0,templateUrl:"/template/common/dateweek.html?r="+e,scope:{dateName:"@",weeks:"@"},link:function(c,d,e){c.options={},c.weeks?c.options.weeks=c.weeks:c.options.weeks=1,c.showDateTable=function(){void 0===c.showFlag?c.showFlag=!0:1==c.showFlag?c.showFlag=!1:0==c.showFlag&&(c.showFlag=!0)};var f=(c.nowyear=b.getFullYear(),b.clone()),g=(new Date).getDay();g=0==g?7:g,c.options.start=c.options.end={week:getNowWeek(),date:(new Date).clone().addDays(7-g),year:c.nowyear},c.setWeeklist=function(){c.weeklist=[];var a=7,b=new Date(c.nowyear,0,1),d=b.getDay(),e=new Date(c.nowyear,11,31),f=[];d=0==d?7:d;var g=b.clone().addDays(7-d),h=0;for(d>0&&d<5&&(h=1,f.push({week:h,date:g,year:c.nowyear}));g<e&&!e.isSameDay(g);)h++,g=g.clone().addDays(7),f.push({week:h,date:g,year:c.nowyear}),h%a==0&&(c.weeklist.push(f),f=[]);var i=new Date(c.nowyear,11,31),j=i.getDay();j>0&&j<4&&(0==f.length?c.weeklist[c.weeklist.length-1].pop():f.pop()),f.length>0&&c.weeklist.push(f)},c.changeYear=function(a){c.nowyear+=a,c.setWeeklist()},c.setWeeklist();var h=0;c.chooseDate=function(a){if(a.date.clone().addDays(-6).isAfter(b))return!1;if(1==c.options.weeks)f=a.date,c.options.start=c.options.end=a,c.$emit(c.dateName,a.year+""+getStr(a.week)),c.cancel();else if(h>=2&&(h=0),1==++h)c.options.start=c.options.end=a;else{var d=c.options.start;d.date>a.date?c.options.start=a:c.options.end=a}},c.complete=function(){var b=c.options.start.year+""+a.getStr(c.options.start.week),d=c.options.end.year+""+a.getStr(c.options.end.week);c.$emit(c.dateName,{start:b,end:d}),c.cancel()},c.cellClass=function(a){return a.date.between(c.options.start.date,c.options.end.date)?"choose":a.year==c.options.start.year&&a.week==c.options.start.week||a.year==c.options.end.year&&a.week==c.options.end.week?"start_end":b.between(a.date.clone().addDays(-6),a.date)?"is-now":a.date.isAfter(b)?"disabled":""},c.cancel=function(){c.showFlag=!1},$(document).on("click",function(){c.cancel(),c.$apply()})}}}function d(a){var b=Date.yesterday();return{restrict:"EA",transclude:!0,replace:!0,templateUrl:"/template/common/datemonth.html?r="+e,scope:{dateName:"@",months:"@"},link:function(c,d,e){var f=c.nowyear=b.getFullYear(),g=c.nowMonth=b.getMonth()+1;c.options={},c.months?c.options.months=c.months:c.options.months=1,c.showDateTable=function(){void 0===c.showFlag?c.showFlag=!0:1==c.showFlag?c.showFlag=!1:0==c.showFlag&&(c.showFlag=!0)},c.changeYear=function(a){c.nowyear+=a,c.setmonthList()},c.setmonthList=function(){c.monthList=[];for(var a=4,b=[],d=1;d<=12;d++)b.push({month:d,year:c.nowyear,date:new Date(c.nowyear,d-1,1)}),angular.isUndefined(c.options.start)&&d==g&&c.nowyear==f&&(c.options.start=c.options.end=b.slice(-1)[0]),d%a==0&&(c.monthList.push(b),b=[])},c.setmonthList();var h=0;c.chooseDate=function(b){if(b.year>f||b.month>c.nowMonth&&b.year==f)return!1;if(1==c.options.months)g=b.month,c.options.start=c.options.end=b,c.$emit(c.dateName,b.year+""+a.getStr(b.month)),c.cancel();else if(h>=2&&(h=0),1==++h)c.options.start=c.options.end=b;else{var d=c.options.start;d.year>b.year||d.year==b.year&&d.month>b.month?c.options.start=b:c.options.end=b}},c.complete=function(){var b=c.options.start.year+""+a.getStr(c.options.start.month),d=c.options.end.year+""+a.getStr(c.options.end.month);c.$emit(c.dateName,{start:b,end:d}),c.cancel()},c.cellClass=function(a){return a.date.between(c.options.start.date,c.options.end.date)?"choose":a.month==c.nowMonth&&a.year==f?"is-today":a.year>f||a.month>c.nowMonth&&a.year==f?"disabled":""},c.cancel=function(){c.showFlag=!1},$(document).on("click",function(){c.cancel(),c.$apply()})}}}angular.module("app").directive("myDatepicker",["ToolService","DateService","UtilService",a]).directive("singleDatepicker",b).directive("myDateweek",["UtilService",c]).directive("myDatemonth",["UtilService",d]);var e=(new Date).getTime()}(),function(){function a(){return function(a,b){if(""==b)return a;var c=[];return angular.forEach(a,function(a,d){b.indexOf(a.firstchar)>-1&&c.push(a)}),c}}function b(){return function(a,b,c){if(b&&""!=b){var d=c.split(",");return a.filter(function(a){for(var c=!1,e=d.length-1;e>=0;e--)if(a[d[e]]&&angular.uppercase(String(a[d[e]])).indexOf(angular.uppercase(b))>-1){c=!0;break}return c})}return a}}function c(){return function(a){return a<1e4?a:(a/1e4).toFixed(1)+"w"}}function d(a){return function(b){return null==b?"":a.trustAsHtml(b)}}function e(a){return function(b,c){return null==b||"null"==b?0:(c=c||2,isNaN(Number(b))?b:a.decimal2(Number(b),c))}}function f(a){return function(b,c,d,e){if(null==b||"null"==b||!c||!d)return b;if(isNaN(Number(b)))return 0==b.indexOf("_")&&(b=b.substring(1)),b;e&&(c=e);var f=d[c];return f||(f="float"),"percent"==f?a.decimal2(100*Number(b),2)+"%":"float"==f?a.decimal2(Number(b),2):"int"==f?Math.round(Number(b)):b}}(new Date).getTime();angular.module("app").filter("charfilter",a).filter("filterList",b).filter("filterPay",c).filter("numFixed",["UtilService",e]).filter("filterHtml",["$sce",d]).filter("formatRate",["UtilService",f])}();
\ No newline at end of file
!function(){function a(a){try{localStorage.setItem("rmdkk",111),localStorage.removeItem("rmdkk");var b=localStorage.getItem(a);return null==b?"":b}catch(c){return""}}var b=window.location.href,c=b.substring(b.indexOf("?")+1),d=c.split("&"),e=a("rytf_cid"),f=a("rytf_campid");if(""==e&&(e=-1,f="_default_"),""==e||-1==e||"-1"==e||d&&d.length>0){for(var g=0;g<d.length;g++){var h=d[g].split("=");if("cid"==h[0]&&(e=h[1]),"campaignid"==h[0]){var i=h[1],j=i.indexOf("#");j>-1&&(i=i.substring(0,j)),f=h[1]}}/^-?\d+$/.test(e)||(e=-1),localStorage.setItem("rytf_cid",e),localStorage.setItem("rytf_campid",f)}}();
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
/*! jQuery v1.9.0 | (c) 2005, 2012 jQuery Foundation, Inc. | jquery.org/license */(function(e,t){"use strict";function n(e){var t=e.length,n=st.type(e);return st.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}function r(e){var t=Tt[e]={};return st.each(e.match(lt)||[],function(e,n){t[n]=!0}),t}function i(e,n,r,i){if(st.acceptData(e)){var o,a,s=st.expando,u="string"==typeof n,l=e.nodeType,c=l?st.cache:e,f=l?e[s]:e[s]&&s;if(f&&c[f]&&(i||c[f].data)||!u||r!==t)return f||(l?e[s]=f=K.pop()||st.guid++:f=s),c[f]||(c[f]={},l||(c[f].toJSON=st.noop)),("object"==typeof n||"function"==typeof n)&&(i?c[f]=st.extend(c[f],n):c[f].data=st.extend(c[f].data,n)),o=c[f],i||(o.data||(o.data={}),o=o.data),r!==t&&(o[st.camelCase(n)]=r),u?(a=o[n],null==a&&(a=o[st.camelCase(n)])):a=o,a}}function o(e,t,n){if(st.acceptData(e)){var r,i,o,a=e.nodeType,u=a?st.cache:e,l=a?e[st.expando]:st.expando;if(u[l]){if(t&&(r=n?u[l]:u[l].data)){st.isArray(t)?t=t.concat(st.map(t,st.camelCase)):t in r?t=[t]:(t=st.camelCase(t),t=t in r?[t]:t.split(" "));for(i=0,o=t.length;o>i;i++)delete r[t[i]];if(!(n?s:st.isEmptyObject)(r))return}(n||(delete u[l].data,s(u[l])))&&(a?st.cleanData([e],!0):st.support.deleteExpando||u!=u.window?delete u[l]:u[l]=null)}}}function a(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(Nt,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:wt.test(r)?st.parseJSON(r):r}catch(o){}st.data(e,n,r)}else r=t}return r}function s(e){var t;for(t in e)if(("data"!==t||!st.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function u(){return!0}function l(){return!1}function c(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function f(e,t,n){if(t=t||0,st.isFunction(t))return st.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return st.grep(e,function(e){return e===t===n});if("string"==typeof t){var r=st.grep(e,function(e){return 1===e.nodeType});if(Wt.test(t))return st.filter(t,r,!n);t=st.filter(t,r)}return st.grep(e,function(e){return st.inArray(e,t)>=0===n})}function p(e){var t=zt.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function d(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function h(e){var t=e.getAttributeNode("type");return e.type=(t&&t.specified)+"/"+e.type,e}function g(e){var t=nn.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function m(e,t){for(var n,r=0;null!=(n=e[r]);r++)st._data(n,"globalEval",!t||st._data(t[r],"globalEval"))}function y(e,t){if(1===t.nodeType&&st.hasData(e)){var n,r,i,o=st._data(e),a=st._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)st.event.add(t,n,s[n][r])}a.data&&(a.data=st.extend({},a.data))}}function v(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!st.support.noCloneEvent&&t[st.expando]){r=st._data(t);for(i in r.events)st.removeEvent(t,i,r.handle);t.removeAttribute(st.expando)}"script"===n&&t.text!==e.text?(h(t).text=e.text,g(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),st.support.html5Clone&&e.innerHTML&&!st.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Zt.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}function b(e,n){var r,i,o=0,a=e.getElementsByTagName!==t?e.getElementsByTagName(n||"*"):e.querySelectorAll!==t?e.querySelectorAll(n||"*"):t;if(!a)for(a=[],r=e.childNodes||e;null!=(i=r[o]);o++)!n||st.nodeName(i,n)?a.push(i):st.merge(a,b(i,n));return n===t||n&&st.nodeName(e,n)?st.merge([e],a):a}function x(e){Zt.test(e.type)&&(e.defaultChecked=e.checked)}function T(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Nn.length;i--;)if(t=Nn[i]+n,t in e)return t;return r}function w(e,t){return e=t||e,"none"===st.css(e,"display")||!st.contains(e.ownerDocument,e)}function N(e,t){for(var n,r=[],i=0,o=e.length;o>i;i++)n=e[i],n.style&&(r[i]=st._data(n,"olddisplay"),t?(r[i]||"none"!==n.style.display||(n.style.display=""),""===n.style.display&&w(n)&&(r[i]=st._data(n,"olddisplay",S(n.nodeName)))):r[i]||w(n)||st._data(n,"olddisplay",st.css(n,"display")));for(i=0;o>i;i++)n=e[i],n.style&&(t&&"none"!==n.style.display&&""!==n.style.display||(n.style.display=t?r[i]||"":"none"));return e}function C(e,t,n){var r=mn.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function k(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;4>o;o+=2)"margin"===n&&(a+=st.css(e,n+wn[o],!0,i)),r?("content"===n&&(a-=st.css(e,"padding"+wn[o],!0,i)),"margin"!==n&&(a-=st.css(e,"border"+wn[o]+"Width",!0,i))):(a+=st.css(e,"padding"+wn[o],!0,i),"padding"!==n&&(a+=st.css(e,"border"+wn[o]+"Width",!0,i)));return a}function E(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=ln(e),a=st.support.boxSizing&&"border-box"===st.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=un(e,t,o),(0>i||null==i)&&(i=e.style[t]),yn.test(i))return i;r=a&&(st.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+k(e,t,n||(a?"border":"content"),r,o)+"px"}function S(e){var t=V,n=bn[e];return n||(n=A(e,t),"none"!==n&&n||(cn=(cn||st("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(cn[0].contentWindow||cn[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=A(e,t),cn.detach()),bn[e]=n),n}function A(e,t){var n=st(t.createElement(e)).appendTo(t.body),r=st.css(n[0],"display");return n.remove(),r}function j(e,t,n,r){var i;if(st.isArray(t))st.each(t,function(t,i){n||kn.test(e)?r(e,i):j(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==st.type(t))r(e,t);else for(i in t)j(e+"["+i+"]",t[i],n,r)}function D(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(lt)||[];if(st.isFunction(n))for(;r=o[i++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function L(e,n,r,i){function o(u){var l;return a[u]=!0,st.each(e[u]||[],function(e,u){var c=u(n,r,i);return"string"!=typeof c||s||a[c]?s?!(l=c):t:(n.dataTypes.unshift(c),o(c),!1)}),l}var a={},s=e===$n;return o(n.dataTypes[0])||!a["*"]&&o("*")}function H(e,n){var r,i,o=st.ajaxSettings.flatOptions||{};for(r in n)n[r]!==t&&((o[r]?e:i||(i={}))[r]=n[r]);return i&&st.extend(!0,e,i),e}function M(e,n,r){var i,o,a,s,u=e.contents,l=e.dataTypes,c=e.responseFields;for(o in c)o in r&&(n[c[o]]=r[o]);for(;"*"===l[0];)l.shift(),i===t&&(i=e.mimeType||n.getResponseHeader("Content-Type"));if(i)for(o in u)if(u[o]&&u[o].test(i)){l.unshift(o);break}if(l[0]in r)a=l[0];else{for(o in r){if(!l[0]||e.converters[o+" "+l[0]]){a=o;break}s||(s=o)}a=a||s}return a?(a!==l[0]&&l.unshift(a),r[a]):t}function q(e,t){var n,r,i,o,a={},s=0,u=e.dataTypes.slice(),l=u[0];if(e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u[1])for(n in e.converters)a[n.toLowerCase()]=e.converters[n];for(;i=u[++s];)if("*"!==i){if("*"!==l&&l!==i){if(n=a[l+" "+i]||a["* "+i],!n)for(r in a)if(o=r.split(" "),o[1]===i&&(n=a[l+" "+o[0]]||a["* "+o[0]])){n===!0?n=a[r]:a[r]!==!0&&(i=o[0],u.splice(s--,0,i));break}if(n!==!0)if(n&&e["throws"])t=n(t);else try{t=n(t)}catch(c){return{state:"parsererror",error:n?c:"No conversion from "+l+" to "+i}}}l=i}return{state:"success",data:t}}function _(){try{return new e.XMLHttpRequest}catch(t){}}function F(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function O(){return setTimeout(function(){Qn=t}),Qn=st.now()}function B(e,t){st.each(t,function(t,n){for(var r=(rr[t]||[]).concat(rr["*"]),i=0,o=r.length;o>i;i++)if(r[i].call(e,t,n))return})}function P(e,t,n){var r,i,o=0,a=nr.length,s=st.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=Qn||O(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,o=1-r,a=0,u=l.tweens.length;u>a;a++)l.tweens[a].run(o);return s.notifyWith(e,[l,o,n]),1>o&&u?n:(s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:st.extend({},t),opts:st.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Qn||O(),duration:n.duration,tweens:[],createTween:function(t,n){var r=st.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)l.tweens[n].run(1);return t?s.resolveWith(e,[l,t]):s.rejectWith(e,[l,t]),this}}),c=l.props;for(R(c,l.opts.specialEasing);a>o;o++)if(r=nr[o].call(l,e,c,l.opts))return r;return B(l,c),st.isFunction(l.opts.start)&&l.opts.start.call(e,l),st.fx.timer(st.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function R(e,t){var n,r,i,o,a;for(n in e)if(r=st.camelCase(n),i=t[r],o=e[n],st.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=st.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function W(e,t,n){var r,i,o,a,s,u,l,c,f,p=this,d=e.style,h={},g=[],m=e.nodeType&&w(e);n.queue||(c=st._queueHooks(e,"fx"),null==c.unqueued&&(c.unqueued=0,f=c.empty.fire,c.empty.fire=function(){c.unqueued||f()}),c.unqueued++,p.always(function(){p.always(function(){c.unqueued--,st.queue(e,"fx").length||c.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],"inline"===st.css(e,"display")&&"none"===st.css(e,"float")&&(st.support.inlineBlockNeedsLayout&&"inline"!==S(e.nodeName)?d.zoom=1:d.display="inline-block")),n.overflow&&(d.overflow="hidden",st.support.shrinkWrapBlocks||p.done(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]}));for(r in t)if(o=t[r],Zn.exec(o)){if(delete t[r],u=u||"toggle"===o,o===(m?"hide":"show"))continue;g.push(r)}if(a=g.length){s=st._data(e,"fxshow")||st._data(e,"fxshow",{}),"hidden"in s&&(m=s.hidden),u&&(s.hidden=!m),m?st(e).show():p.done(function(){st(e).hide()}),p.done(function(){var t;st._removeData(e,"fxshow");for(t in h)st.style(e,t,h[t])});for(r=0;a>r;r++)i=g[r],l=p.createTween(i,m?s[i]:0),h[i]=s[i]||st.style(e,i),i in s||(s[i]=l.start,m&&(l.end=l.start,l.start="width"===i||"height"===i?1:0))}}function $(e,t,n,r,i){return new $.prototype.init(e,t,n,r,i)}function I(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=wn[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function z(e){return st.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}var X,U,V=e.document,Y=e.location,J=e.jQuery,G=e.$,Q={},K=[],Z="1.9.0",et=K.concat,tt=K.push,nt=K.slice,rt=K.indexOf,it=Q.toString,ot=Q.hasOwnProperty,at=Z.trim,st=function(e,t){return new st.fn.init(e,t,X)},ut=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,lt=/\S+/g,ct=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,ft=/^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,pt=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,dt=/^[\],:{}\s]*$/,ht=/(?:^|:|,)(?:\s*\[)+/g,gt=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,mt=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,yt=/^-ms-/,vt=/-([\da-z])/gi,bt=function(e,t){return t.toUpperCase()},xt=function(){V.addEventListener?(V.removeEventListener("DOMContentLoaded",xt,!1),st.ready()):"complete"===V.readyState&&(V.detachEvent("onreadystatechange",xt),st.ready())};st.fn=st.prototype={jquery:Z,constructor:st,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:ft.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof st?n[0]:n,st.merge(this,st.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:V,!0)),pt.test(i[1])&&st.isPlainObject(n))for(i in n)st.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=V.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=V,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):st.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),st.makeArray(e,this))},selector:"",length:0,size:function(){return this.length},toArray:function(){return nt.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=st.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return st.each(this,e,t)},ready:function(e){return st.ready.promise().done(e),this},slice:function(){return this.pushStack(nt.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(st.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:tt,sort:[].sort,splice:[].splice},st.fn.init.prototype=st.fn,st.extend=st.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},u=1,l=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},u=2),"object"==typeof s||st.isFunction(s)||(s={}),l===u&&(s=this,--u);l>u;u++)if(null!=(e=arguments[u]))for(n in e)r=s[n],i=e[n],s!==i&&(c&&i&&(st.isPlainObject(i)||(o=st.isArray(i)))?(o?(o=!1,a=r&&st.isArray(r)?r:[]):a=r&&st.isPlainObject(r)?r:{},s[n]=st.extend(c,a,i)):i!==t&&(s[n]=i));return s},st.extend({noConflict:function(t){return e.$===st&&(e.$=G),t&&e.jQuery===st&&(e.jQuery=J),st},isReady:!1,readyWait:1,holdReady:function(e){e?st.readyWait++:st.ready(!0)},ready:function(e){if(e===!0?!--st.readyWait:!st.isReady){if(!V.body)return setTimeout(st.ready);st.isReady=!0,e!==!0&&--st.readyWait>0||(U.resolveWith(V,[st]),st.fn.trigger&&st(V).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===st.type(e)},isArray:Array.isArray||function(e){return"array"===st.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?Q[it.call(e)]||"object":typeof e},isPlainObject:function(e){if(!e||"object"!==st.type(e)||e.nodeType||st.isWindow(e))return!1;try{if(e.constructor&&!ot.call(e,"constructor")&&!ot.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||ot.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||V;var r=pt.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=st.buildFragment([e],t,i),i&&st(i).remove(),st.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=st.trim(n),n&&dt.test(n.replace(gt,"@").replace(mt,"]").replace(ht,"")))?Function("return "+n)():(st.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||st.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&st.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(yt,"ms-").replace(vt,bt)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,r){var i,o=0,a=e.length,s=n(e);if(r){if(s)for(;a>o&&(i=t.apply(e[o],r),i!==!1);o++);else for(o in e)if(i=t.apply(e[o],r),i===!1)break}else if(s)for(;a>o&&(i=t.call(e[o],o,e[o]),i!==!1);o++);else for(o in e)if(i=t.call(e[o],o,e[o]),i===!1)break;return e},trim:at&&!at.call("\ufeff\u00a0")?function(e){return null==e?"":at.call(e)}:function(e){return null==e?"":(e+"").replace(ct,"")},makeArray:function(e,t){var r=t||[];return null!=e&&(n(Object(e))?st.merge(r,"string"==typeof e?[e]:e):tt.call(r,e)),r},inArray:function(e,t,n){var r;if(t){if(rt)return rt.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else for(;n[o]!==t;)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,r){var i,o=0,a=e.length,s=n(e),u=[];if(s)for(;a>o;o++)i=t(e[o],o,r),null!=i&&(u[u.length]=i);else for(o in e)i=t(e[o],o,r),null!=i&&(u[u.length]=i);return et.apply([],u)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(r=e[n],n=e,e=r),st.isFunction(e)?(i=nt.call(arguments,2),o=function(){return e.apply(n||this,i.concat(nt.call(arguments)))},o.guid=e.guid=e.guid||st.guid++,o):t},access:function(e,n,r,i,o,a,s){var u=0,l=e.length,c=null==r;if("object"===st.type(r)){o=!0;for(u in r)st.access(e,n,u,r[u],!0,a,s)}else if(i!==t&&(o=!0,st.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(st(e),n)})),n))for(;l>u;u++)n(e[u],r,s?i:i.call(e[u],u,n(e[u],r)));return o?e:c?n.call(e):l?n(e[0],r):a},now:function(){return(new Date).getTime()}}),st.ready.promise=function(t){if(!U)if(U=st.Deferred(),"complete"===V.readyState)setTimeout(st.ready);else if(V.addEventListener)V.addEventListener("DOMContentLoaded",xt,!1),e.addEventListener("load",st.ready,!1);else{V.attachEvent("onreadystatechange",xt),e.attachEvent("onload",st.ready);var n=!1;try{n=null==e.frameElement&&V.documentElement}catch(r){}n&&n.doScroll&&function i(){if(!st.isReady){try{n.doScroll("left")}catch(e){return setTimeout(i,50)}st.ready()}}()}return U.promise(t)},st.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){Q["[object "+t+"]"]=t.toLowerCase()}),X=st(V);var Tt={};st.Callbacks=function(e){e="string"==typeof e?Tt[e]||r(e):st.extend({},e);var n,i,o,a,s,u,l=[],c=!e.once&&[],f=function(t){for(n=e.memory&&t,i=!0,u=a||0,a=0,s=l.length,o=!0;l&&s>u;u++)if(l[u].apply(t[0],t[1])===!1&&e.stopOnFalse){n=!1;break}o=!1,l&&(c?c.length&&f(c.shift()):n?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function r(t){st.each(t,function(t,n){var i=st.type(n);"function"===i?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==i&&r(n)})})(arguments),o?s=l.length:n&&(a=t,f(n))}return this},remove:function(){return l&&st.each(arguments,function(e,t){for(var n;(n=st.inArray(t,l,n))>-1;)l.splice(n,1),o&&(s>=n&&s--,u>=n&&u--)}),this},has:function(e){return st.inArray(e,l)>-1},empty:function(){return l=[],this},disable:function(){return l=c=n=t,this},disabled:function(){return!l},lock:function(){return c=t,n||p.disable(),this},locked:function(){return!c},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!l||i&&!c||(o?c.push(t):f(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},st.extend({Deferred:function(e){var t=[["resolve","done",st.Callbacks("once memory"),"resolved"],["reject","fail",st.Callbacks("once memory"),"rejected"],["notify","progress",st.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return st.Deferred(function(n){st.each(t,function(t,o){var a=o[0],s=st.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&st.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?st.extend(e,r):r}},i={};return r.pipe=r.then,st.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,r,i=0,o=nt.call(arguments),a=o.length,s=1!==a||e&&st.isFunction(e.promise)?a:0,u=1===s?e:st.Deferred(),l=function(e,n,r){return function(i){n[e]=this,r[e]=arguments.length>1?nt.call(arguments):i,r===t?u.notifyWith(n,r):--s||u.resolveWith(n,r)}};if(a>1)for(t=Array(a),n=Array(a),r=Array(a);a>i;i++)o[i]&&st.isFunction(o[i].promise)?o[i].promise().done(l(i,r,o)).fail(u.reject).progress(l(i,n,t)):--s;return s||u.resolveWith(r,o),u.promise()}}),st.support=function(){var n,r,i,o,a,s,u,l,c,f,p=V.createElement("div");if(p.setAttribute("className","t"),p.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",r=p.getElementsByTagName("*"),i=p.getElementsByTagName("a")[0],!r||!i||!r.length)return{};o=V.createElement("select"),a=o.appendChild(V.createElement("option")),s=p.getElementsByTagName("input")[0],i.style.cssText="top:1px;float:left;opacity:.5",n={getSetAttribute:"t"!==p.className,leadingWhitespace:3===p.firstChild.nodeType,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(i.getAttribute("style")),hrefNormalized:"/a"===i.getAttribute("href"),opacity:/^0.5/.test(i.style.opacity),cssFloat:!!i.style.cssFloat,checkOn:!!s.value,optSelected:a.selected,enctype:!!V.createElement("form").enctype,html5Clone:"<:nav></:nav>"!==V.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===V.compatMode,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},s.checked=!0,n.noCloneChecked=s.cloneNode(!0).checked,o.disabled=!0,n.optDisabled=!a.disabled;try{delete p.test}catch(d){n.deleteExpando=!1}s=V.createElement("input"),s.setAttribute("value",""),n.input=""===s.getAttribute("value"),s.value="t",s.setAttribute("type","radio"),n.radioValue="t"===s.value,s.setAttribute("checked","t"),s.setAttribute("name","t"),u=V.createDocumentFragment(),u.appendChild(s),n.appendChecked=s.checked,n.checkClone=u.cloneNode(!0).cloneNode(!0).lastChild.checked,p.attachEvent&&(p.attachEvent("onclick",function(){n.noCloneEvent=!1}),p.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})p.setAttribute(l="on"+f,"t"),n[f+"Bubbles"]=l in e||p.attributes[l].expando===!1;return p.style.backgroundClip="content-box",p.cloneNode(!0).style.backgroundClip="",n.clearCloneStyle="content-box"===p.style.backgroundClip,st(function(){var r,i,o,a="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",s=V.getElementsByTagName("body")[0];s&&(r=V.createElement("div"),r.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",s.appendChild(r).appendChild(p),p.innerHTML="<table><tr><td></td><td>t</td></tr></table>",o=p.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",c=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",n.reliableHiddenOffsets=c&&0===o[0].offsetHeight,p.innerHTML="",p.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",n.boxSizing=4===p.offsetWidth,n.doesNotIncludeMarginInBodyOffset=1!==s.offsetTop,e.getComputedStyle&&(n.pixelPosition="1%"!==(e.getComputedStyle(p,null)||{}).top,n.boxSizingReliable="4px"===(e.getComputedStyle(p,null)||{width:"4px"}).width,i=p.appendChild(V.createElement("div")),i.style.cssText=p.style.cssText=a,i.style.marginRight=i.style.width="0",p.style.width="1px",n.reliableMarginRight=!parseFloat((e.getComputedStyle(i,null)||{}).marginRight)),p.style.zoom!==t&&(p.innerHTML="",p.style.cssText=a+"width:1px;padding:1px;display:inline;zoom:1",n.inlineBlockNeedsLayout=3===p.offsetWidth,p.style.display="block",p.innerHTML="<div></div>",p.firstChild.style.width="5px",n.shrinkWrapBlocks=3!==p.offsetWidth,s.style.zoom=1),s.removeChild(r),r=p=o=i=null)}),r=o=u=a=i=s=null,n}();var wt=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,Nt=/([A-Z])/g;st.extend({cache:{},expando:"jQuery"+(Z+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?st.cache[e[st.expando]]:e[st.expando],!!e&&!s(e)},data:function(e,t,n){return i(e,t,n,!1)},removeData:function(e,t){return o(e,t,!1)},_data:function(e,t,n){return i(e,t,n,!0)},_removeData:function(e,t){return o(e,t,!0)},acceptData:function(e){var t=e.nodeName&&st.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),st.fn.extend({data:function(e,n){var r,i,o=this[0],s=0,u=null;if(e===t){if(this.length&&(u=st.data(o),1===o.nodeType&&!st._data(o,"parsedAttrs"))){for(r=o.attributes;r.length>s;s++)i=r[s].name,i.indexOf("data-")||(i=st.camelCase(i.substring(5)),a(o,i,u[i]));st._data(o,"parsedAttrs",!0)}return u}return"object"==typeof e?this.each(function(){st.data(this,e)}):st.access(this,function(n){return n===t?o?a(o,e,st.data(o,e)):null:(this.each(function(){st.data(this,e,n)}),t)},null,n,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){st.removeData(this,e)})}}),st.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=st._data(e,n),r&&(!i||st.isArray(r)?i=st._data(e,n,st.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=st.queue(e,t),r=n.length,i=n.shift(),o=st._queueHooks(e,t),a=function(){st.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),o.cur=i,i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return st._data(e,n)||st._data(e,n,{empty:st.Callbacks("once memory").add(function(){st._removeData(e,t+"queue"),st._removeData(e,n)})})}}),st.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?st.queue(this[0],e):n===t?this:this.each(function(){var t=st.queue(this,e,n);st._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&st.dequeue(this,e)})},dequeue:function(e){return this.each(function(){st.dequeue(this,e)})},delay:function(e,t){return e=st.fx?st.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=st.Deferred(),a=this,s=this.length,u=function(){--i||o.resolveWith(a,[a])};for("string"!=typeof e&&(n=e,e=t),e=e||"fx";s--;)r=st._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(u));return u(),o.promise(n)}});var Ct,kt,Et=/[\t\r\n]/g,St=/\r/g,At=/^(?:input|select|textarea|button|object)$/i,jt=/^(?:a|area)$/i,Dt=/^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,Lt=/^(?:checked|selected)$/i,Ht=st.support.getSetAttribute,Mt=st.support.input;st.fn.extend({attr:function(e,t){return st.access(this,st.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){st.removeAttr(this,e)})},prop:function(e,t){return st.access(this,st.prop,e,t,arguments.length>1)},removeProp:function(e){return e=st.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,u="string"==typeof e&&e;if(st.isFunction(e))return this.each(function(t){st(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(lt)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(Et," "):" ")){for(o=0;i=t[o++];)0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=st.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,u=0===arguments.length||"string"==typeof e&&e;if(st.isFunction(e))return this.each(function(t){st(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(lt)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(Et," "):"")){for(o=0;i=t[o++];)for(;r.indexOf(" "+i+" ")>=0;)r=r.replace(" "+i+" "," ");n.className=e?st.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,r="boolean"==typeof t;return st.isFunction(e)?this.each(function(n){st(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n)for(var i,o=0,a=st(this),s=t,u=e.match(lt)||[];i=u[o++];)s=r?s:!a.hasClass(i),a[s?"addClass":"removeClass"](i);else("undefined"===n||"boolean"===n)&&(this.className&&st._data(this,"__className__",this.className),this.className=this.className||e===!1?"":st._data(this,"__className__")||"")})},hasClass:function(e){for(var t=" "+e+" ",n=0,r=this.length;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(Et," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=st.isFunction(e),this.each(function(r){var o,a=st(this);1===this.nodeType&&(o=i?e.call(this,r,a.val()):e,null==o?o="":"number"==typeof o?o+="":st.isArray(o)&&(o=st.map(o,function(e){return null==e?"":e+""})),n=st.valHooks[this.type]||st.valHooks[this.nodeName.toLowerCase()],n&&"set"in n&&n.set(this,o,"value")!==t||(this.value=o))});if(o)return n=st.valHooks[o.type]||st.valHooks[o.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(o,"value"))!==t?r:(r=o.value,"string"==typeof r?r.replace(St,""):null==r?"":r)}}}),st.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,u=0>i?s:o?i:0;s>u;u++)if(n=r[u],!(!n.selected&&u!==i||(st.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&st.nodeName(n.parentNode,"optgroup"))){if(t=st(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n=st.makeArray(t);return st(e).find("option").each(function(){this.selected=st.inArray(st(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attr:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return e.getAttribute===t?st.prop(e,n,r):(a=1!==s||!st.isXMLDoc(e),a&&(n=n.toLowerCase(),o=st.attrHooks[n]||(Dt.test(n)?kt:Ct)),r===t?o&&a&&"get"in o&&null!==(i=o.get(e,n))?i:(e.getAttribute!==t&&(i=e.getAttribute(n)),null==i?t:i):null!==r?o&&a&&"set"in o&&(i=o.set(e,r,n))!==t?i:(e.setAttribute(n,r+""),r):(st.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(lt);if(o&&1===e.nodeType)for(;n=o[i++];)r=st.propFix[n]||n,Dt.test(n)?!Ht&&Lt.test(n)?e[st.camelCase("default-"+n)]=e[r]=!1:e[r]=!1:st.attr(e,n,""),e.removeAttribute(Ht?n:r)},attrHooks:{type:{set:function(e,t){if(!st.support.radioValue&&"radio"===t&&st.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!st.isXMLDoc(e),a&&(n=st.propFix[n]||n,o=st.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):At.test(e.nodeName)||jt.test(e.nodeName)&&e.href?0:t}}}}),kt={get:function(e,n){var r=st.prop(e,n),i="boolean"==typeof r&&e.getAttribute(n),o="boolean"==typeof r?Mt&&Ht?null!=i:Lt.test(n)?e[st.camelCase("default-"+n)]:!!i:e.getAttributeNode(n);return o&&o.value!==!1?n.toLowerCase():t},set:function(e,t,n){return t===!1?st.removeAttr(e,n):Mt&&Ht||!Lt.test(n)?e.setAttribute(!Ht&&st.propFix[n]||n,n):e[st.camelCase("default-"+n)]=e[n]=!0,n}},Mt&&Ht||(st.attrHooks.value={get:function(e,n){var r=e.getAttributeNode(n);return st.nodeName(e,"input")?e.defaultValue:r&&r.specified?r.value:t
},set:function(e,n,r){return st.nodeName(e,"input")?(e.defaultValue=n,t):Ct&&Ct.set(e,n,r)}}),Ht||(Ct=st.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&("id"===n||"name"===n||"coords"===n?""!==r.value:r.specified)?r.value:t},set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},st.attrHooks.contenteditable={get:Ct.get,set:function(e,t,n){Ct.set(e,""===t?!1:t,n)}},st.each(["width","height"],function(e,n){st.attrHooks[n]=st.extend(st.attrHooks[n],{set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}})})),st.support.hrefNormalized||(st.each(["href","src","width","height"],function(e,n){st.attrHooks[n]=st.extend(st.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return null==r?t:r}})}),st.each(["href","src"],function(e,t){st.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}})),st.support.style||(st.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),st.support.optSelected||(st.propHooks.selected=st.extend(st.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),st.support.enctype||(st.propFix.enctype="encoding"),st.support.checkOn||st.each(["radio","checkbox"],function(){st.valHooks[this]={get:function(e){return null===e.getAttribute("value")?"on":e.value}}}),st.each(["radio","checkbox"],function(){st.valHooks[this]=st.extend(st.valHooks[this],{set:function(e,n){return st.isArray(n)?e.checked=st.inArray(st(e).val(),n)>=0:t}})});var qt=/^(?:input|select|textarea)$/i,_t=/^key/,Ft=/^(?:mouse|contextmenu)|click/,Ot=/^(?:focusinfocus|focusoutblur)$/,Bt=/^([^.]*)(?:\.(.+)|)$/;st.event={global:{},add:function(e,n,r,i,o){var a,s,u,l,c,f,p,d,h,g,m,y=3!==e.nodeType&&8!==e.nodeType&&st._data(e);if(y){for(r.handler&&(a=r,r=a.handler,o=a.selector),r.guid||(r.guid=st.guid++),(l=y.events)||(l=y.events={}),(s=y.handle)||(s=y.handle=function(e){return st===t||e&&st.event.triggered===e.type?t:st.event.dispatch.apply(s.elem,arguments)},s.elem=e),n=(n||"").match(lt)||[""],c=n.length;c--;)u=Bt.exec(n[c])||[],h=m=u[1],g=(u[2]||"").split(".").sort(),p=st.event.special[h]||{},h=(o?p.delegateType:p.bindType)||h,p=st.event.special[h]||{},f=st.extend({type:h,origType:m,data:i,handler:r,guid:r.guid,selector:o,needsContext:o&&st.expr.match.needsContext.test(o),namespace:g.join(".")},a),(d=l[h])||(d=l[h]=[],d.delegateCount=0,p.setup&&p.setup.call(e,i,g,s)!==!1||(e.addEventListener?e.addEventListener(h,s,!1):e.attachEvent&&e.attachEvent("on"+h,s))),p.add&&(p.add.call(e,f),f.handler.guid||(f.handler.guid=r.guid)),o?d.splice(d.delegateCount++,0,f):d.push(f),st.event.global[h]=!0;e=null}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,m=st.hasData(e)&&st._data(e);if(m&&(u=m.events)){for(t=(t||"").match(lt)||[""],l=t.length;l--;)if(s=Bt.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){for(f=st.event.special[d]||{},d=(r?f.delegateType:f.bindType)||d,p=u[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;o--;)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&f.teardown.call(e,h,m.handle)!==!1||st.removeEvent(e,d,m.handle),delete u[d])}else for(d in u)st.event.remove(e,d+t[l],n,r,!0);st.isEmptyObject(u)&&(delete m.handle,st._removeData(e,"events"))}},trigger:function(n,r,i,o){var a,s,u,l,c,f,p,d=[i||V],h=n.type||n,g=n.namespace?n.namespace.split("."):[];if(s=u=i=i||V,3!==i.nodeType&&8!==i.nodeType&&!Ot.test(h+st.event.triggered)&&(h.indexOf(".")>=0&&(g=h.split("."),h=g.shift(),g.sort()),c=0>h.indexOf(":")&&"on"+h,n=n[st.expando]?n:new st.Event(h,"object"==typeof n&&n),n.isTrigger=!0,n.namespace=g.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:st.makeArray(r,[n]),p=st.event.special[h]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!st.isWindow(i)){for(l=p.delegateType||h,Ot.test(l+h)||(s=s.parentNode);s;s=s.parentNode)d.push(s),u=s;u===(i.ownerDocument||V)&&d.push(u.defaultView||u.parentWindow||e)}for(a=0;(s=d[a++])&&!n.isPropagationStopped();)n.type=a>1?l:p.bindType||h,f=(st._data(s,"events")||{})[n.type]&&st._data(s,"handle"),f&&f.apply(s,r),f=c&&s[c],f&&st.acceptData(s)&&f.apply&&f.apply(s,r)===!1&&n.preventDefault();if(n.type=h,!(o||n.isDefaultPrevented()||p._default&&p._default.apply(i.ownerDocument,r)!==!1||"click"===h&&st.nodeName(i,"a")||!st.acceptData(i)||!c||!i[h]||st.isWindow(i))){u=i[c],u&&(i[c]=null),st.event.triggered=h;try{i[h]()}catch(m){}st.event.triggered=t,u&&(i[c]=u)}return n.result}},dispatch:function(e){e=st.event.fix(e);var n,r,i,o,a,s=[],u=nt.call(arguments),l=(st._data(this,"events")||{})[e.type]||[],c=st.event.special[e.type]||{};if(u[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){for(s=st.event.handlers.call(this,e,l),n=0;(o=s[n++])&&!e.isPropagationStopped();)for(e.currentTarget=o.elem,r=0;(a=o.handlers[r++])&&!e.isImmediatePropagationStopped();)(!e.namespace_re||e.namespace_re.test(a.namespace))&&(e.handleObj=a,e.data=a.data,i=((st.event.special[a.origType]||{}).handle||a.handler).apply(o.elem,u),i!==t&&(e.result=i)===!1&&(e.preventDefault(),e.stopPropagation()));return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],u=n.delegateCount,l=e.target;if(u&&l.nodeType&&(!e.button||"click"!==e.type))for(;l!=this;l=l.parentNode||this)if(l.disabled!==!0||"click"!==e.type){for(i=[],r=0;u>r;r++)a=n[r],o=a.selector+" ",i[o]===t&&(i[o]=a.needsContext?st(o,this).index(l)>=0:st.find(o,this,null,[l]).length),i[o]&&i.push(a);i.length&&s.push({elem:l,handlers:i})}return n.length>u&&s.push({elem:this,handlers:n.slice(u)}),s},fix:function(e){if(e[st.expando])return e;var t,n,r=e,i=st.event.fixHooks[e.type]||{},o=i.props?this.props.concat(i.props):this.props;for(e=new st.Event(r),t=o.length;t--;)n=o[t],e[n]=r[n];return e.target||(e.target=r.srcElement||V),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,i.filter?i.filter(e,r):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,a=n.button,s=n.fromElement;return null==e.pageX&&null!=n.clientX&&(r=e.target.ownerDocument||V,i=r.documentElement,o=r.body,e.pageX=n.clientX+(i&&i.scrollLeft||o&&o.scrollLeft||0)-(i&&i.clientLeft||o&&o.clientLeft||0),e.pageY=n.clientY+(i&&i.scrollTop||o&&o.scrollTop||0)-(i&&i.clientTop||o&&o.clientTop||0)),!e.relatedTarget&&s&&(e.relatedTarget=s===e.target?n.toElement:s),e.which||a===t||(e.which=1&a?1:2&a?3:4&a?2:0),e}},special:{load:{noBubble:!0},click:{trigger:function(){return st.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t}},focus:{trigger:function(){if(this!==V.activeElement&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===V.activeElement&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=st.extend(new st.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?st.event.trigger(i,null,t):st.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},st.removeEvent=V.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,n,r){var i="on"+n;e.detachEvent&&(e[i]===t&&(e[i]=null),e.detachEvent(i,r))},st.Event=function(e,n){return this instanceof st.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?u:l):this.type=e,n&&st.extend(this,n),this.timeStamp=e&&e.timeStamp||st.now(),this[st.expando]=!0,t):new st.Event(e,n)},st.Event.prototype={isDefaultPrevented:l,isPropagationStopped:l,isImmediatePropagationStopped:l,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=u,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=u,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u,this.stopPropagation()}},st.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){st.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!st.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),st.support.submitBubbles||(st.event.special.submit={setup:function(){return st.nodeName(this,"form")?!1:(st.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=st.nodeName(n,"input")||st.nodeName(n,"button")?n.form:t;r&&!st._data(r,"submitBubbles")&&(st.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),st._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&st.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return st.nodeName(this,"form")?!1:(st.event.remove(this,"._submit"),t)}}),st.support.changeBubbles||(st.event.special.change={setup:function(){return qt.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(st.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),st.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),st.event.simulate("change",this,e,!0)})),!1):(st.event.add(this,"beforeactivate._change",function(e){var t=e.target;qt.test(t.nodeName)&&!st._data(t,"changeBubbles")&&(st.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||st.event.simulate("change",this.parentNode,e,!0)}),st._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return st.event.remove(this,"._change"),!qt.test(this.nodeName)}}),st.support.focusinBubbles||st.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){st.event.simulate(t,e.target,st.event.fix(e),!0)};st.event.special[t]={setup:function(){0===n++&&V.addEventListener(e,r,!0)},teardown:function(){0===--n&&V.removeEventListener(e,r,!0)}}}),st.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(s in e)this.on(s,n,r,e[s],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=l;else if(!i)return this;return 1===o&&(a=i,i=function(e){return st().off(e),a.apply(this,arguments)},i.guid=a.guid||(a.guid=st.guid++)),this.each(function(){st.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,st(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=l),this.each(function(){st.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){st.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?st.event.trigger(e,n,r,!0):t},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),st.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){st.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)},_t.test(t)&&(st.event.fixHooks[t]=st.event.keyHooks),Ft.test(t)&&(st.event.fixHooks[t]=st.event.mouseHooks)}),function(e,t){function n(e){return ht.test(e+"")}function r(){var e,t=[];return e=function(n,r){return t.push(n+=" ")>C.cacheLength&&delete e[t.shift()],e[n]=r}}function i(e){return e[P]=!0,e}function o(e){var t=L.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}}function a(e,t,n,r){var i,o,a,s,u,l,c,d,h,g;if((t?t.ownerDocument||t:R)!==L&&D(t),t=t||L,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(!M&&!r){if(i=gt.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&O(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return Q.apply(n,K.call(t.getElementsByTagName(e),0)),n;if((a=i[3])&&W.getByClassName&&t.getElementsByClassName)return Q.apply(n,K.call(t.getElementsByClassName(a),0)),n}if(W.qsa&&!q.test(e)){if(c=!0,d=P,h=t,g=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(l=f(e),(c=t.getAttribute("id"))?d=c.replace(vt,"\\$&"):t.setAttribute("id",d),d="[id='"+d+"'] ",u=l.length;u--;)l[u]=d+p(l[u]);h=dt.test(e)&&t.parentNode||t,g=l.join(",")}if(g)try{return Q.apply(n,K.call(h.querySelectorAll(g),0)),n}catch(m){}finally{c||t.removeAttribute("id")}}}return x(e.replace(at,"$1"),t,n,r)}function s(e,t){for(var n=e&&t&&e.nextSibling;n;n=n.nextSibling)if(n===t)return-1;return e?1:-1}function u(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function l(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function c(e){return i(function(t){return t=+t,i(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function f(e,t){var n,r,i,o,s,u,l,c=X[e+" "];if(c)return t?0:c.slice(0);for(s=e,u=[],l=C.preFilter;s;){(!n||(r=ut.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),u.push(i=[])),n=!1,(r=lt.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(at," ")}),s=s.slice(n.length));for(o in C.filter)!(r=pt[o].exec(s))||l[o]&&!(r=l[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?a.error(e):X(e,u).slice(0)}function p(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function d(e,t,n){var r=t.dir,i=n&&"parentNode"===t.dir,o=I++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,a){var s,u,l,c=$+" "+o;if(a){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||i)if(l=t[P]||(t[P]={}),(u=l[r])&&u[0]===c){if((s=u[1])===!0||s===N)return s===!0}else if(u=l[r]=[c],u[1]=e(t,n,a)||N,u[1]===!0)return!0}}function h(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function g(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;u>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),l&&t.push(s));return a}function m(e,t,n,r,o,a){return r&&!r[P]&&(r=m(r)),o&&!o[P]&&(o=m(o,a)),i(function(i,a,s,u){var l,c,f,p=[],d=[],h=a.length,m=i||b(t||"*",s.nodeType?[s]:s,[]),y=!e||!i&&t?m:g(m,p,e,s,u),v=n?o||(i?e:h||r)?[]:a:y;if(n&&n(y,v,s,u),r)for(l=g(v,d),r(l,[],s,u),c=l.length;c--;)(f=l[c])&&(v[d[c]]=!(y[d[c]]=f));if(i){if(o||e){if(o){for(l=[],c=v.length;c--;)(f=v[c])&&l.push(y[c]=f);o(null,v=[],l,u)}for(c=v.length;c--;)(f=v[c])&&(l=o?Z.call(i,f):p[c])>-1&&(i[l]=!(a[l]=f))}}else v=g(v===a?v.splice(h,v.length):v),o?o(null,a,v,u):Q.apply(a,v)})}function y(e){for(var t,n,r,i=e.length,o=C.relative[e[0].type],a=o||C.relative[" "],s=o?1:0,u=d(function(e){return e===t},a,!0),l=d(function(e){return Z.call(t,e)>-1},a,!0),c=[function(e,n,r){return!o&&(r||n!==j)||((t=n).nodeType?u(e,n,r):l(e,n,r))}];i>s;s++)if(n=C.relative[e[s].type])c=[d(h(c),n)];else{if(n=C.filter[e[s].type].apply(null,e[s].matches),n[P]){for(r=++s;i>r&&!C.relative[e[r].type];r++);return m(s>1&&h(c),s>1&&p(e.slice(0,s-1)).replace(at,"$1"),n,r>s&&y(e.slice(s,r)),i>r&&y(e=e.slice(r)),i>r&&p(e))}c.push(n)}return h(c)}function v(e,t){var n=0,r=t.length>0,o=e.length>0,s=function(i,s,u,l,c){var f,p,d,h=[],m=0,y="0",v=i&&[],b=null!=c,x=j,T=i||o&&C.find.TAG("*",c&&s.parentNode||s),w=$+=null==x?1:Math.E;for(b&&(j=s!==L&&s,N=n);null!=(f=T[y]);y++){if(o&&f){for(p=0;d=e[p];p++)if(d(f,s,u)){l.push(f);break}b&&($=w,N=++n)}r&&((f=!d&&f)&&m--,i&&v.push(f))}if(m+=y,r&&y!==m){for(p=0;d=t[p];p++)d(v,h,s,u);if(i){if(m>0)for(;y--;)v[y]||h[y]||(h[y]=G.call(l));h=g(h)}Q.apply(l,h),b&&!i&&h.length>0&&m+t.length>1&&a.uniqueSort(l)}return b&&($=w,j=x),v};return r?i(s):s}function b(e,t,n){for(var r=0,i=t.length;i>r;r++)a(e,t[r],n);return n}function x(e,t,n,r){var i,o,a,s,u,l=f(e);if(!r&&1===l.length){if(o=l[0]=l[0].slice(0),o.length>2&&"ID"===(a=o[0]).type&&9===t.nodeType&&!M&&C.relative[o[1].type]){if(t=C.find.ID(a.matches[0].replace(xt,Tt),t)[0],!t)return n;e=e.slice(o.shift().value.length)}for(i=pt.needsContext.test(e)?-1:o.length-1;i>=0&&(a=o[i],!C.relative[s=a.type]);i--)if((u=C.find[s])&&(r=u(a.matches[0].replace(xt,Tt),dt.test(o[0].type)&&t.parentNode||t))){if(o.splice(i,1),e=r.length&&p(o),!e)return Q.apply(n,K.call(r,0)),n;break}}return S(e,l)(r,t,M,n,dt.test(e)),n}function T(){}var w,N,C,k,E,S,A,j,D,L,H,M,q,_,F,O,B,P="sizzle"+-new Date,R=e.document,W={},$=0,I=0,z=r(),X=r(),U=r(),V=typeof t,Y=1<<31,J=[],G=J.pop,Q=J.push,K=J.slice,Z=J.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1},et="[\\x20\\t\\r\\n\\f]",tt="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",nt=tt.replace("w","w#"),rt="([*^$|!~]?=)",it="\\["+et+"*("+tt+")"+et+"*(?:"+rt+et+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+nt+")|)|)"+et+"*\\]",ot=":("+tt+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+it.replace(3,8)+")*)|.*)\\)|)",at=RegExp("^"+et+"+|((?:^|[^\\\\])(?:\\\\.)*)"+et+"+$","g"),ut=RegExp("^"+et+"*,"+et+"*"),lt=RegExp("^"+et+"*([\\x20\\t\\r\\n\\f>+~])"+et+"*"),ct=RegExp(ot),ft=RegExp("^"+nt+"$"),pt={ID:RegExp("^#("+tt+")"),CLASS:RegExp("^\\.("+tt+")"),NAME:RegExp("^\\[name=['\"]?("+tt+")['\"]?\\]"),TAG:RegExp("^("+tt.replace("w","w*")+")"),ATTR:RegExp("^"+it),PSEUDO:RegExp("^"+ot),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+et+"*(even|odd|(([+-]|)(\\d*)n|)"+et+"*(?:([+-]|)"+et+"*(\\d+)|))"+et+"*\\)|)","i"),needsContext:RegExp("^"+et+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+et+"*((?:-\\d)?\\d*)"+et+"*\\)|)(?=[^-]|$)","i")},dt=/[\x20\t\r\n\f]*[+~]/,ht=/\{\s*\[native code\]\s*\}/,gt=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,mt=/^(?:input|select|textarea|button)$/i,yt=/^h\d$/i,vt=/'|\\/g,bt=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,xt=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,Tt=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n+65536):String.fromCharCode(55296|n>>10,56320|1023&n)};try{K.call(H.childNodes,0)[0].nodeType}catch(wt){K=function(e){for(var t,n=[];t=this[e];e++)n.push(t);return n}}E=a.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},D=a.setDocument=function(e){var r=e?e.ownerDocument||e:R;return r!==L&&9===r.nodeType&&r.documentElement?(L=r,H=r.documentElement,M=E(r),W.tagNameNoComments=o(function(e){return e.appendChild(r.createComment("")),!e.getElementsByTagName("*").length}),W.attributes=o(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),W.getByClassName=o(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),W.getByName=o(function(e){e.id=P+0,e.innerHTML="<a name='"+P+"'></a><div name='"+P+"'></div>",H.insertBefore(e,H.firstChild);var t=r.getElementsByName&&r.getElementsByName(P).length===2+r.getElementsByName(P+0).length;return W.getIdNotName=!r.getElementById(P),H.removeChild(e),t}),C.attrHandle=o(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==V&&"#"===e.firstChild.getAttribute("href")})?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},W.getIdNotName?(C.find.ID=function(e,t){if(typeof t.getElementById!==V&&!M){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},C.filter.ID=function(e){var t=e.replace(xt,Tt);return function(e){return e.getAttribute("id")===t}}):(C.find.ID=function(e,n){if(typeof n.getElementById!==V&&!M){var r=n.getElementById(e);return r?r.id===e||typeof r.getAttributeNode!==V&&r.getAttributeNode("id").value===e?[r]:t:[]}},C.filter.ID=function(e){var t=e.replace(xt,Tt);return function(e){var n=typeof e.getAttributeNode!==V&&e.getAttributeNode("id");return n&&n.value===t}}),C.find.TAG=W.tagNameNoComments?function(e,n){return typeof n.getElementsByTagName!==V?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i];i++)1===n.nodeType&&r.push(n);return r}return o},C.find.NAME=W.getByName&&function(e,n){return typeof n.getElementsByName!==V?n.getElementsByName(name):t},C.find.CLASS=W.getByClassName&&function(e,n){return typeof n.getElementsByClassName===V||M?t:n.getElementsByClassName(e)},_=[],q=[":focus"],(W.qsa=n(r.querySelectorAll))&&(o(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||q.push("\\["+et+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||q.push(":checked")}),o(function(e){e.innerHTML="<input type='hidden' i=''/>",e.querySelectorAll("[i^='']").length&&q.push("[*^$]="+et+"*(?:\"\"|'')"),e.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),q.push(",.*:")})),(W.matchesSelector=n(F=H.matchesSelector||H.mozMatchesSelector||H.webkitMatchesSelector||H.oMatchesSelector||H.msMatchesSelector))&&o(function(e){W.disconnectedMatch=F.call(e,"div"),F.call(e,"[s!='']:x"),_.push("!=",ot)}),q=RegExp(q.join("|")),_=RegExp(_.join("|")),O=n(H.contains)||H.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},B=H.compareDocumentPosition?function(e,t){var n;return e===t?(A=!0,0):(n=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t))?1&n||e.parentNode&&11===e.parentNode.nodeType?e===r||O(R,e)?-1:t===r||O(R,t)?1:0:4&n?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var n,i=0,o=e.parentNode,a=t.parentNode,u=[e],l=[t];if(e===t)return A=!0,0;if(e.sourceIndex&&t.sourceIndex)return(~t.sourceIndex||Y)-(O(R,e)&&~e.sourceIndex||Y);if(!o||!a)return e===r?-1:t===r?1:o?-1:a?1:0;if(o===a)return s(e,t);for(n=e;n=n.parentNode;)u.unshift(n);for(n=t;n=n.parentNode;)l.unshift(n);for(;u[i]===l[i];)i++;return i?s(u[i],l[i]):u[i]===R?-1:l[i]===R?1:0},A=!1,[0,0].sort(B),W.detectDuplicates=A,L):L},a.matches=function(e,t){return a(e,null,null,t)},a.matchesSelector=function(e,t){if((e.ownerDocument||e)!==L&&D(e),t=t.replace(bt,"='$1']"),!(!W.matchesSelector||M||_&&_.test(t)||q.test(t)))try{var n=F.call(e,t);if(n||W.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return a(t,L,null,[e]).length>0},a.contains=function(e,t){return(e.ownerDocument||e)!==L&&D(e),O(e,t)},a.attr=function(e,t){var n;return(e.ownerDocument||e)!==L&&D(e),M||(t=t.toLowerCase()),(n=C.attrHandle[t])?n(e):M||W.attributes?e.getAttribute(t):((n=e.getAttributeNode(t))||e.getAttribute(t))&&e[t]===!0?t:n&&n.specified?n.value:null},a.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},a.uniqueSort=function(e){var t,n=[],r=1,i=0;if(A=!W.detectDuplicates,e.sort(B),A){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));for(;i--;)e.splice(n[i],1)}return e},k=a.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=k(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=k(t);return n},C=a.selectors={cacheLength:50,createPseudo:i,match:pt,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(xt,Tt),e[3]=(e[4]||e[5]||"").replace(xt,Tt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||a.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&a.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return pt.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&ct.test(n)&&(t=f(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(xt,Tt).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=z[e+" "];return t||(t=RegExp("(^|"+et+")"+e+"("+et+"|$)"))&&z(e,function(e){return t.test(e.className||typeof e.getAttribute!==V&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=a.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.substr(i.length-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s;if(m){if(o){for(;g;){for(f=t;f=f[g];)if(s?f.nodeName.toLowerCase()===y:1===f.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){for(c=m[P]||(m[P]={}),l=c[e]||[],d=l[0]===$&&l[1],p=l[0]===$&&l[2],f=d&&m.childNodes[d];f=++d&&f&&f[g]||(p=d=0)||h.pop();)if(1===f.nodeType&&++p&&f===t){c[e]=[$,d,p];break}}else if(v&&(l=(t[P]||(t[P]={}))[e])&&l[0]===$)p=l[1];else for(;(f=++d&&f&&f[g]||(p=d=0)||h.pop())&&((s?f.nodeName.toLowerCase()!==y:1!==f.nodeType)||!++p||(v&&((f[P]||(f[P]={}))[e]=[$,p]),f!==t)););return p-=i,p===r||0===p%r&&p/r>=0}}},PSEUDO:function(e,t){var n,r=C.pseudos[e]||C.setFilters[e.toLowerCase()]||a.error("unsupported pseudo: "+e);return r[P]?r(t):r.length>1?(n=[e,e,"",t],C.setFilters.hasOwnProperty(e.toLowerCase())?i(function(e,n){for(var i,o=r(e,t),a=o.length;a--;)i=Z.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:i(function(e){var t=[],n=[],r=S(e.replace(at,"$1"));return r[P]?i(function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:i(function(e){return function(t){return a(e,t).length>0}}),contains:i(function(e){return function(t){return(t.textContent||t.innerText||k(t)).indexOf(e)>-1}}),lang:i(function(e){return ft.test(e||"")||a.error("unsupported lang: "+e),e=e.replace(xt,Tt).toLowerCase(),function(t){var n;do if(n=M?t.getAttribute("xml:lang")||t.getAttribute("lang"):t.lang)return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===H},focus:function(e){return e===L.activeElement&&(!L.hasFocus||L.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!C.pseudos.empty(e)},header:function(e){return yt.test(e.nodeName)},input:function(e){return mt.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:c(function(){return[0]}),last:c(function(e,t){return[t-1]}),eq:c(function(e,t,n){return[0>n?n+t:n]}),even:c(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:c(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:c(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:c(function(e,t,n){for(var r=0>n?n+t:n;t>++r;)e.push(r);return e})}};for(w in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})C.pseudos[w]=u(w);for(w in{submit:!0,reset:!0})C.pseudos[w]=l(w);S=a.compile=function(e,t){var n,r=[],i=[],o=U[e+" "];if(!o){for(t||(t=f(e)),n=t.length;n--;)o=y(t[n]),o[P]?r.push(o):i.push(o);o=U(e,v(i,r))}return o},C.pseudos.nth=C.pseudos.eq,C.filters=T.prototype=C.pseudos,C.setFilters=new T,D(),a.attr=st.attr,st.find=a,st.expr=a.selectors,st.expr[":"]=st.expr.pseudos,st.unique=a.uniqueSort,st.text=a.getText,st.isXMLDoc=a.isXML,st.contains=a.contains}(e);var Pt=/Until$/,Rt=/^(?:parents|prev(?:Until|All))/,Wt=/^.[^:#\[\.,]*$/,$t=st.expr.match.needsContext,It={children:!0,contents:!0,next:!0,prev:!0};st.fn.extend({find:function(e){var t,n,r;if("string"!=typeof e)return r=this,this.pushStack(st(e).filter(function(){for(t=0;r.length>t;t++)if(st.contains(r[t],this))return!0}));for(n=[],t=0;this.length>t;t++)st.find(e,this[t],n);return n=this.pushStack(st.unique(n)),n.selector=(this.selector?this.selector+" ":"")+e,n},has:function(e){var t,n=st(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(st.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(f(this,e,!1))},filter:function(e){return this.pushStack(f(this,e,!0))},is:function(e){return!!e&&("string"==typeof e?$t.test(e)?st(e,this.context).index(this[0])>=0:st.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){for(var n,r=0,i=this.length,o=[],a=$t.test(e)||"string"!=typeof e?st(e,t||this.context):0;i>r;r++)for(n=this[r];n&&n.ownerDocument&&n!==t&&11!==n.nodeType;){if(a?a.index(n)>-1:st.find.matchesSelector(n,e)){o.push(n);break}n=n.parentNode}return this.pushStack(o.length>1?st.unique(o):o)},index:function(e){return e?"string"==typeof e?st.inArray(this[0],st(e)):st.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?st(e,t):st.makeArray(e&&e.nodeType?[e]:e),r=st.merge(this.get(),n);return this.pushStack(st.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),st.fn.andSelf=st.fn.addBack,st.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return st.dir(e,"parentNode")},parentsUntil:function(e,t,n){return st.dir(e,"parentNode",n)},next:function(e){return c(e,"nextSibling")},prev:function(e){return c(e,"previousSibling")
},nextAll:function(e){return st.dir(e,"nextSibling")},prevAll:function(e){return st.dir(e,"previousSibling")},nextUntil:function(e,t,n){return st.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return st.dir(e,"previousSibling",n)},siblings:function(e){return st.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return st.sibling(e.firstChild)},contents:function(e){return st.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:st.merge([],e.childNodes)}},function(e,t){st.fn[e]=function(n,r){var i=st.map(this,t,n);return Pt.test(e)||(r=n),r&&"string"==typeof r&&(i=st.filter(r,i)),i=this.length>1&&!It[e]?st.unique(i):i,this.length>1&&Rt.test(e)&&(i=i.reverse()),this.pushStack(i)}}),st.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),1===t.length?st.find.matchesSelector(t[0],e)?[t[0]]:[]:st.find.matches(e,t)},dir:function(e,n,r){for(var i=[],o=e[n];o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!st(o).is(r));)1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});var zt="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",Xt=/ jQuery\d+="(?:null|\d+)"/g,Ut=RegExp("<(?:"+zt+")[\\s/>]","i"),Vt=/^\s+/,Yt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Jt=/<([\w:]+)/,Gt=/<tbody/i,Qt=/<|&#?\w+;/,Kt=/<(?:script|style|link)/i,Zt=/^(?:checkbox|radio)$/i,en=/checked\s*(?:[^=]|=\s*.checked.)/i,tn=/^$|\/(?:java|ecma)script/i,nn=/^true\/(.*)/,rn=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,on={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:st.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},an=p(V),sn=an.appendChild(V.createElement("div"));on.optgroup=on.option,on.tbody=on.tfoot=on.colgroup=on.caption=on.thead,on.th=on.td,st.fn.extend({text:function(e){return st.access(this,function(e){return e===t?st.text(this):this.empty().append((this[0]&&this[0].ownerDocument||V).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(st.isFunction(e))return this.each(function(t){st(this).wrapAll(e.call(this,t))});if(this[0]){var t=st(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return st.isFunction(e)?this.each(function(t){st(this).wrapInner(e.call(this,t))}):this.each(function(){var t=st(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=st.isFunction(e);return this.each(function(n){st(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){st.nodeName(this,"body")||st(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.insertBefore(e,this.firstChild)})},before:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){for(var n,r=0;null!=(n=this[r]);r++)(!e||st.filter(e,[n]).length>0)&&(t||1!==n.nodeType||st.cleanData(b(n)),n.parentNode&&(t&&st.contains(n.ownerDocument,n)&&m(b(n,"script")),n.parentNode.removeChild(n)));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&st.cleanData(b(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&st.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return st.clone(this,e,t)})},html:function(e){return st.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(Xt,""):t;if(!("string"!=typeof e||Kt.test(e)||!st.support.htmlSerialize&&Ut.test(e)||!st.support.leadingWhitespace&&Vt.test(e)||on[(Jt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(Yt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(st.cleanData(b(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){var t=st.isFunction(e);return t||"string"==typeof e||(e=st(e).not(this).detach()),this.domManip([e],!0,function(e){var t=this.nextSibling,n=this.parentNode;(n&&1===this.nodeType||11===this.nodeType)&&(st(this).remove(),t?t.parentNode.insertBefore(e,t):n.appendChild(e))})},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=et.apply([],e);var i,o,a,s,u,l,c=0,f=this.length,p=this,m=f-1,y=e[0],v=st.isFunction(y);if(v||!(1>=f||"string"!=typeof y||st.support.checkClone)&&en.test(y))return this.each(function(i){var o=p.eq(i);v&&(e[0]=y.call(this,i,n?o.html():t)),o.domManip(e,n,r)});if(f&&(i=st.buildFragment(e,this[0].ownerDocument,!1,this),o=i.firstChild,1===i.childNodes.length&&(i=o),o)){for(n=n&&st.nodeName(o,"tr"),a=st.map(b(i,"script"),h),s=a.length;f>c;c++)u=i,c!==m&&(u=st.clone(u,!0,!0),s&&st.merge(a,b(u,"script"))),r.call(n&&st.nodeName(this[c],"table")?d(this[c],"tbody"):this[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,st.map(a,g),c=0;s>c;c++)u=a[c],tn.test(u.type||"")&&!st._data(u,"globalEval")&&st.contains(l,u)&&(u.src?st.ajax({url:u.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):st.globalEval((u.text||u.textContent||u.innerHTML||"").replace(rn,"")));i=o=null}return this}}),st.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){st.fn[e]=function(e){for(var n,r=0,i=[],o=st(e),a=o.length-1;a>=r;r++)n=r===a?this:this.clone(!0),st(o[r])[t](n),tt.apply(i,n.get());return this.pushStack(i)}}),st.extend({clone:function(e,t,n){var r,i,o,a,s,u=st.contains(e.ownerDocument,e);if(st.support.html5Clone||st.isXMLDoc(e)||!Ut.test("<"+e.nodeName+">")?s=e.cloneNode(!0):(sn.innerHTML=e.outerHTML,sn.removeChild(s=sn.firstChild)),!(st.support.noCloneEvent&&st.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||st.isXMLDoc(e)))for(r=b(s),i=b(e),a=0;null!=(o=i[a]);++a)r[a]&&v(o,r[a]);if(t)if(n)for(i=i||b(e),r=r||b(s),a=0;null!=(o=i[a]);a++)y(o,r[a]);else y(e,s);return r=b(s,"script"),r.length>0&&m(r,!u&&b(e,"script")),r=i=o=null,s},buildFragment:function(e,t,n,r){for(var i,o,a,s,u,l,c,f=e.length,d=p(t),h=[],g=0;f>g;g++)if(o=e[g],o||0===o)if("object"===st.type(o))st.merge(h,o.nodeType?[o]:o);else if(Qt.test(o)){for(s=s||d.appendChild(t.createElement("div")),a=(Jt.exec(o)||["",""])[1].toLowerCase(),u=on[a]||on._default,s.innerHTML=u[1]+o.replace(Yt,"<$1></$2>")+u[2],c=u[0];c--;)s=s.lastChild;if(!st.support.leadingWhitespace&&Vt.test(o)&&h.push(t.createTextNode(Vt.exec(o)[0])),!st.support.tbody)for(o="table"!==a||Gt.test(o)?"<table>"!==u[1]||Gt.test(o)?0:s:s.firstChild,c=o&&o.childNodes.length;c--;)st.nodeName(l=o.childNodes[c],"tbody")&&!l.childNodes.length&&o.removeChild(l);for(st.merge(h,s.childNodes),s.textContent="";s.firstChild;)s.removeChild(s.firstChild);s=d.lastChild}else h.push(t.createTextNode(o));for(s&&d.removeChild(s),st.support.appendChecked||st.grep(b(h,"input"),x),g=0;o=h[g++];)if((!r||-1===st.inArray(o,r))&&(i=st.contains(o.ownerDocument,o),s=b(d.appendChild(o),"script"),i&&m(s),n))for(c=0;o=s[c++];)tn.test(o.type||"")&&n.push(o);return s=null,d},cleanData:function(e,n){for(var r,i,o,a,s=0,u=st.expando,l=st.cache,c=st.support.deleteExpando,f=st.event.special;null!=(o=e[s]);s++)if((n||st.acceptData(o))&&(i=o[u],r=i&&l[i])){if(r.events)for(a in r.events)f[a]?st.event.remove(o,a):st.removeEvent(o,a,r.handle);l[i]&&(delete l[i],c?delete o[u]:o.removeAttribute!==t?o.removeAttribute(u):o[u]=null,K.push(i))}}});var un,ln,cn,fn=/alpha\([^)]*\)/i,pn=/opacity\s*=\s*([^)]*)/,dn=/^(top|right|bottom|left)$/,hn=/^(none|table(?!-c[ea]).+)/,gn=/^margin/,mn=RegExp("^("+ut+")(.*)$","i"),yn=RegExp("^("+ut+")(?!px)[a-z%]+$","i"),vn=RegExp("^([+-])=("+ut+")","i"),bn={BODY:"block"},xn={position:"absolute",visibility:"hidden",display:"block"},Tn={letterSpacing:0,fontWeight:400},wn=["Top","Right","Bottom","Left"],Nn=["Webkit","O","Moz","ms"];st.fn.extend({css:function(e,n){return st.access(this,function(e,n,r){var i,o,a={},s=0;if(st.isArray(n)){for(i=ln(e),o=n.length;o>s;s++)a[n[s]]=st.css(e,n[s],!1,i);return a}return r!==t?st.style(e,n,r):st.css(e,n)},e,n,arguments.length>1)},show:function(){return N(this,!0)},hide:function(){return N(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:w(this))?st(this).show():st(this).hide()})}}),st.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=un(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":st.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,u=st.camelCase(n),l=e.style;if(n=st.cssProps[u]||(st.cssProps[u]=T(l,u)),s=st.cssHooks[n]||st.cssHooks[u],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:l[n];if(a=typeof r,"string"===a&&(o=vn.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(st.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||st.cssNumber[u]||(r+="px"),st.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(l[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{l[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,u=st.camelCase(n);return n=st.cssProps[u]||(st.cssProps[u]=T(e.style,u)),s=st.cssHooks[n]||st.cssHooks[u],s&&"get"in s&&(o=s.get(e,!0,r)),o===t&&(o=un(e,n,i)),"normal"===o&&n in Tn&&(o=Tn[n]),r?(a=parseFloat(o),r===!0||st.isNumeric(a)?a||0:o):o},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),e.getComputedStyle?(ln=function(t){return e.getComputedStyle(t,null)},un=function(e,n,r){var i,o,a,s=r||ln(e),u=s?s.getPropertyValue(n)||s[n]:t,l=e.style;return s&&(""!==u||st.contains(e.ownerDocument,e)||(u=st.style(e,n)),yn.test(u)&&gn.test(n)&&(i=l.width,o=l.minWidth,a=l.maxWidth,l.minWidth=l.maxWidth=l.width=u,u=s.width,l.width=i,l.minWidth=o,l.maxWidth=a)),u}):V.documentElement.currentStyle&&(ln=function(e){return e.currentStyle},un=function(e,n,r){var i,o,a,s=r||ln(e),u=s?s[n]:t,l=e.style;return null==u&&l&&l[n]&&(u=l[n]),yn.test(u)&&!dn.test(n)&&(i=l.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),l.left="fontSize"===n?"1em":u,u=l.pixelLeft+"px",l.left=i,a&&(o.left=a)),""===u?"auto":u}),st.each(["height","width"],function(e,n){st.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&hn.test(st.css(e,"display"))?st.swap(e,xn,function(){return E(e,n,i)}):E(e,n,i):t},set:function(e,t,r){var i=r&&ln(e);return C(e,t,r?k(e,n,r,st.support.boxSizing&&"border-box"===st.css(e,"boxSizing",!1,i),i):0)}}}),st.support.opacity||(st.cssHooks.opacity={get:function(e,t){return pn.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=st.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===st.trim(o.replace(fn,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=fn.test(o)?o.replace(fn,i):o+" "+i)}}),st(function(){st.support.reliableMarginRight||(st.cssHooks.marginRight={get:function(e,n){return n?st.swap(e,{display:"inline-block"},un,[e,"marginRight"]):t}}),!st.support.pixelPosition&&st.fn.position&&st.each(["top","left"],function(e,n){st.cssHooks[n]={get:function(e,r){return r?(r=un(e,n),yn.test(r)?st(e).position()[n]+"px":r):t}}})}),st.expr&&st.expr.filters&&(st.expr.filters.hidden=function(e){return 0===e.offsetWidth&&0===e.offsetHeight||!st.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||st.css(e,"display"))},st.expr.filters.visible=function(e){return!st.expr.filters.hidden(e)}),st.each({margin:"",padding:"",border:"Width"},function(e,t){st.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];4>r;r++)i[e+wn[r]+t]=o[r]||o[r-2]||o[0];return i}},gn.test(e)||(st.cssHooks[e+t].set=C)});var Cn=/%20/g,kn=/\[\]$/,En=/\r?\n/g,Sn=/^(?:submit|button|image|reset)$/i,An=/^(?:input|select|textarea|keygen)/i;st.fn.extend({serialize:function(){return st.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=st.prop(this,"elements");return e?st.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!st(this).is(":disabled")&&An.test(this.nodeName)&&!Sn.test(e)&&(this.checked||!Zt.test(e))}).map(function(e,t){var n=st(this).val();return null==n?null:st.isArray(n)?st.map(n,function(e){return{name:t.name,value:e.replace(En,"\r\n")}}):{name:t.name,value:n.replace(En,"\r\n")}}).get()}}),st.param=function(e,n){var r,i=[],o=function(e,t){t=st.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=st.ajaxSettings&&st.ajaxSettings.traditional),st.isArray(e)||e.jquery&&!st.isPlainObject(e))st.each(e,function(){o(this.name,this.value)});else for(r in e)j(r,e[r],n,o);return i.join("&").replace(Cn,"+")};var jn,Dn,Ln=st.now(),Hn=/\?/,Mn=/#.*$/,qn=/([?&])_=[^&]*/,_n=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Fn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,On=/^(?:GET|HEAD)$/,Bn=/^\/\//,Pn=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Rn=st.fn.load,Wn={},$n={},In="*/".concat("*");try{Dn=Y.href}catch(zn){Dn=V.createElement("a"),Dn.href="",Dn=Dn.href}jn=Pn.exec(Dn.toLowerCase())||[],st.fn.load=function(e,n,r){if("string"!=typeof e&&Rn)return Rn.apply(this,arguments);var i,o,a,s=this,u=e.indexOf(" ");return u>=0&&(i=e.slice(u,e.length),e=e.slice(0,u)),st.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(o="POST"),s.length>0&&st.ajax({url:e,type:o,dataType:"html",data:n}).done(function(e){a=arguments,s.html(i?st("<div>").append(st.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,a||[e.responseText,t,e])}),this},st.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){st.fn[t]=function(e){return this.on(t,e)}}),st.each(["get","post"],function(e,n){st[n]=function(e,r,i,o){return st.isFunction(r)&&(o=o||i,i=r,r=t),st.ajax({url:e,type:n,dataType:o,data:r,success:i})}}),st.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Dn,type:"GET",isLocal:Fn.test(jn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":In,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":st.parseJSON,"text xml":st.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?H(H(e,st.ajaxSettings),t):H(st.ajaxSettings,e)},ajaxPrefilter:D(Wn),ajaxTransport:D($n),ajax:function(e,n){function r(e,n,r,s){var l,f,v,b,T,N=n;2!==x&&(x=2,u&&clearTimeout(u),i=t,a=s||"",w.readyState=e>0?4:0,r&&(b=M(p,w,r)),e>=200&&300>e||304===e?(p.ifModified&&(T=w.getResponseHeader("Last-Modified"),T&&(st.lastModified[o]=T),T=w.getResponseHeader("etag"),T&&(st.etag[o]=T)),304===e?(l=!0,N="notmodified"):(l=q(p,b),N=l.state,f=l.data,v=l.error,l=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),w.status=e,w.statusText=(n||N)+"",l?g.resolveWith(d,[f,N,w]):g.rejectWith(d,[w,N,v]),w.statusCode(y),y=t,c&&h.trigger(l?"ajaxSuccess":"ajaxError",[w,p,l?f:v]),m.fireWith(d,[w,N]),c&&(h.trigger("ajaxComplete",[w,p]),--st.active||st.event.trigger("ajaxStop")))}"object"==typeof e&&(n=e,e=t),n=n||{};var i,o,a,s,u,l,c,f,p=st.ajaxSetup({},n),d=p.context||p,h=p.context&&(d.nodeType||d.jquery)?st(d):st.event,g=st.Deferred(),m=st.Callbacks("once memory"),y=p.statusCode||{},v={},b={},x=0,T="canceled",w={readyState:0,getResponseHeader:function(e){var t;if(2===x){if(!s)for(s={};t=_n.exec(a);)s[t[1].toLowerCase()]=t[2];t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===x?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return x||(e=b[n]=b[n]||e,v[e]=t),this},overrideMimeType:function(e){return x||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>x)for(t in e)y[t]=[y[t],e[t]];else w.always(e[w.status]);return this},abort:function(e){var t=e||T;return i&&i.abort(t),r(0,t),this}};if(g.promise(w).complete=m.add,w.success=w.done,w.error=w.fail,p.url=((e||p.url||Dn)+"").replace(Mn,"").replace(Bn,jn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=st.trim(p.dataType||"*").toLowerCase().match(lt)||[""],null==p.crossDomain&&(l=Pn.exec(p.url.toLowerCase()),p.crossDomain=!(!l||l[1]===jn[1]&&l[2]===jn[2]&&(l[3]||("http:"===l[1]?80:443))==(jn[3]||("http:"===jn[1]?80:443)))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=st.param(p.data,p.traditional)),L(Wn,p,n,w),2===x)return w;c=p.global,c&&0===st.active++&&st.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!On.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(Hn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=qn.test(o)?o.replace(qn,"$1_="+Ln++):o+(Hn.test(o)?"&":"?")+"_="+Ln++)),p.ifModified&&(st.lastModified[o]&&w.setRequestHeader("If-Modified-Since",st.lastModified[o]),st.etag[o]&&w.setRequestHeader("If-None-Match",st.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&w.setRequestHeader("Content-Type",p.contentType),w.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+In+"; q=0.01":""):p.accepts["*"]);for(f in p.headers)w.setRequestHeader(f,p.headers[f]);if(p.beforeSend&&(p.beforeSend.call(d,w,p)===!1||2===x))return w.abort();T="abort";for(f in{success:1,error:1,complete:1})w[f](p[f]);if(i=L($n,p,n,w)){w.readyState=1,c&&h.trigger("ajaxSend",[w,p]),p.async&&p.timeout>0&&(u=setTimeout(function(){w.abort("timeout")},p.timeout));try{x=1,i.send(v,r)}catch(N){if(!(2>x))throw N;r(-1,N)}}else r(-1,"No Transport");return w},getScript:function(e,n){return st.get(e,t,n,"script")},getJSON:function(e,t,n){return st.get(e,t,n,"json")}}),st.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return st.globalEval(e),e}}}),st.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),st.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=V.head||st("head")[0]||V.documentElement;return{send:function(t,i){n=V.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Xn=[],Un=/(=)\?(?=&|$)|\?\?/;st.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xn.pop()||st.expando+"_"+Ln++;return this[e]=!0,e}}),st.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,u=n.jsonp!==!1&&(Un.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Un.test(n.data)&&"data");return u||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=st.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,u?n[u]=n[u].replace(Un,"$1"+o):n.jsonp!==!1&&(n.url+=(Hn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||st.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Xn.push(o)),s&&st.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Vn,Yn,Jn=0,Gn=e.ActiveXObject&&function(){var e;for(e in Vn)Vn[e](t,!0)};st.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&_()||F()}:_,Yn=st.ajaxSettings.xhr(),st.support.cors=!!Yn&&"withCredentials"in Yn,Yn=st.support.ajax=!!Yn,Yn&&st.ajaxTransport(function(n){if(!n.crossDomain||st.support.cors){var r;return{send:function(i,o){var a,s,u=n.xhr();if(n.username?u.open(n.type,n.url,n.async,n.username,n.password):u.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)u[s]=n.xhrFields[s];n.mimeType&&u.overrideMimeType&&u.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)u.setRequestHeader(s,i[s])}catch(l){}u.send(n.hasContent&&n.data||null),r=function(e,i){var s,l,c,f,p;try{if(r&&(i||4===u.readyState))if(r=t,a&&(u.onreadystatechange=st.noop,Gn&&delete Vn[a]),i)4!==u.readyState&&u.abort();else{f={},s=u.status,p=u.responseXML,c=u.getAllResponseHeaders(),p&&p.documentElement&&(f.xml=p),"string"==typeof u.responseText&&(f.text=u.responseText);try{l=u.statusText}catch(d){l=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=f.text?200:404}}catch(h){i||o(-1,h)}f&&o(s,l,f,c)},n.async?4===u.readyState?setTimeout(r):(a=++Jn,Gn&&(Vn||(Vn={},st(e).unload(Gn)),Vn[a]=r),u.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Qn,Kn,Zn=/^(?:toggle|show|hide)$/,er=RegExp("^(?:([+-])=|)("+ut+")([a-z%]*)$","i"),tr=/queueHooks$/,nr=[W],rr={"*":[function(e,t){var n,r,i=this.createTween(e,t),o=er.exec(t),a=i.cur(),s=+a||0,u=1,l=20;if(o){if(n=+o[2],r=o[3]||(st.cssNumber[e]?"":"px"),"px"!==r&&s){s=st.css(i.elem,e,!0)||n||1;do u=u||".5",s/=u,st.style(i.elem,e,s+r);while(u!==(u=i.cur()/a)&&1!==u&&--l)}i.unit=r,i.start=s,i.end=o[1]?s+(o[1]+1)*n:n}return i}]};st.Animation=st.extend(P,{tweener:function(e,t){st.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,r=0,i=e.length;i>r;r++)n=e[r],rr[n]=rr[n]||[],rr[n].unshift(t)},prefilter:function(e,t){t?nr.unshift(e):nr.push(e)}}),st.Tween=$,$.prototype={constructor:$,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(st.cssNumber[n]?"":"px")},cur:function(){var e=$.propHooks[this.prop];return e&&e.get?e.get(this):$.propHooks._default.get(this)},run:function(e){var t,n=$.propHooks[this.prop];return this.pos=t=this.options.duration?st.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):$.propHooks._default.set(this),this}},$.prototype.init.prototype=$.prototype,$.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=st.css(e.elem,e.prop,"auto"),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){st.fx.step[e.prop]?st.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[st.cssProps[e.prop]]||st.cssHooks[e.prop])?st.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},$.propHooks.scrollTop=$.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},st.each(["toggle","show","hide"],function(e,t){var n=st.fn[t];st.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(I(t,!0),e,r,i)}}),st.fn.extend({fadeTo:function(e,t,n,r){return this.filter(w).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=st.isEmptyObject(e),o=st.speed(t,n,r),a=function(){var t=P(this,st.extend({},e),o);a.finish=function(){t.stop(!0)},(i||st._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=st.timers,a=st._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&tr.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&st.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=st._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=st.timers,a=r?r.length:0;for(n.finish=!0,st.queue(this,e,[]),i&&i.cur&&i.cur.finish&&i.cur.finish.call(this),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),st.each({slideDown:I("show"),slideUp:I("hide"),slideToggle:I("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){st.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),st.speed=function(e,t,n){var r=e&&"object"==typeof e?st.extend({},e):{complete:n||!n&&t||st.isFunction(e)&&e,duration:e,easing:n&&t||t&&!st.isFunction(t)&&t};return r.duration=st.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in st.fx.speeds?st.fx.speeds[r.duration]:st.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){st.isFunction(r.old)&&r.old.call(this),r.queue&&st.dequeue(this,r.queue)},r},st.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},st.timers=[],st.fx=$.prototype.init,st.fx.tick=function(){var e,n=st.timers,r=0;for(Qn=st.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||st.fx.stop(),Qn=t},st.fx.timer=function(e){e()&&st.timers.push(e)&&st.fx.start()},st.fx.interval=13,st.fx.start=function(){Kn||(Kn=setInterval(st.fx.tick,st.fx.interval))},st.fx.stop=function(){clearInterval(Kn),Kn=null},st.fx.speeds={slow:600,fast:200,_default:400},st.fx.step={},st.expr&&st.expr.filters&&(st.expr.filters.animated=function(e){return st.grep(st.timers,function(t){return e===t.elem}).length}),st.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){st.offset.setOffset(this,e,t)});var n,r,i={top:0,left:0},o=this[0],a=o&&o.ownerDocument;if(a)return n=a.documentElement,st.contains(n,o)?(o.getBoundingClientRect!==t&&(i=o.getBoundingClientRect()),r=z(a),{top:i.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:i.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):i},st.offset={setOffset:function(e,t,n){var r=st.css(e,"position");"static"===r&&(e.style.position="relative");var i,o,a=st(e),s=a.offset(),u=st.css(e,"top"),l=st.css(e,"left"),c=("absolute"===r||"fixed"===r)&&st.inArray("auto",[u,l])>-1,f={},p={};c?(p=a.position(),i=p.top,o=p.left):(i=parseFloat(u)||0,o=parseFloat(l)||0),st.isFunction(t)&&(t=t.call(e,n,s)),null!=t.top&&(f.top=t.top-s.top+i),null!=t.left&&(f.left=t.left-s.left+o),"using"in t?t.using.call(e,f):a.css(f)}},st.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===st.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),st.nodeName(e[0],"html")||(n=e.offset()),n.top+=st.css(e[0],"borderTopWidth",!0),n.left+=st.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-st.css(r,"marginTop",!0),left:t.left-n.left-st.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent||V.documentElement;e&&!st.nodeName(e,"html")&&"static"===st.css(e,"position");)e=e.offsetParent;return e||V.documentElement})}}),st.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);st.fn[e]=function(i){return st.access(this,function(e,i,o){var a=z(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?st(a).scrollLeft():o,r?o:st(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}}),st.each({Height:"height",Width:"width"},function(e,n){st.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){st.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return st.access(this,function(n,r,i){var o;return st.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?st.css(n,r,s):st.style(n,r,i,s)},n,a?i:t,a,null)}})}),e.jQuery=e.$=st,"function"==typeof define&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return st})})(window);
;
/*! jquery.cookie v1.4.1 | MIT */
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?a(require("jquery")):a(jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}});
\ No newline at end of file
!function(){var a={isNull:"必填",errorLetter:"含特殊字符或过长",errorLength:"40字符以内",errorFormat:"格式不对",lowLetter:"输入小写字母",errorEmail:"请输入48位以内的正确邮箱",errorNum:"输入数字",errorPwd:"仅支持数字,大小写字母,且至少包含其中2种,长度限制为6-18位",errorQQ:"请输入正确QQ号码",errorCrm:"两次密码不一致,请重新输入",errorCompany:"公司名称,支持48位内汉字或96位内字母数字",errorUsername:"您的姓名,支持16位内汉字或32位内字母数字",errorWechat:"6-20位数字,字母,下划线或中划线,须以数字或字母开头",errorUrl:"以http://或https://开头的合法url",errorName:"名称不合法或过长"},b=function(a){if(!a.val)return a.nullTxt||"必填";var b=a.val.replace(/[^\x00-\xff]/g,"00");return a.min&&b.length<a.min||a.max&&b.length>a.max?a.regTxt:a.regFlag&&a.reg.test(a.val)?a.regTxt:a.regFlag||!a.reg||a.reg.test(a.val)?"succ":a.regTxt},c={isNull:function(c){var d={val:c.val,name:c.txt||a.isNull};return b(d)},nameLen:function(c){var d={val:c.val,max:c.max||40,min:c.min||2,regTxt:c.txt||a.errorLength};return b(d)},isMaxLen:function(a){var c={val:a.val,max:a.max||40,min:a.min||2,regTxt:a.txt};return b(c)},name:function(c){var d={val:c.val,max:c.max||40,min:c.min||2,reg:/[`~!@#\$%\^\&\*\(\)\+<>\?:"\{\},\.\\\/;'\[\]]/im,regFlag:!0,regTxt:c.txt||a.errorLetter};return b(d)},nameFormat:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~\\!(\)《》?:·“ ”,。、;`‘’【】——……¥「」/a-zA-Z0-9\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorName};return b(d)},spcname:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[a-zA-Z0-9_\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorLetter};return b(d)},spcname1:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[a-zA-Z0-9_\-\·\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorLetter};return b(d)},spcname2:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[a-zA-Z0-9_\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorLetter};return b(d)},keyword:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[a-zA-Z0-9\.\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorLetter};return b(d)},companyname:function(c){var d={val:c.val,max:c.max||96,reg:/^[a-zA-Z0-9_\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorCompany};return b(d)},username:function(c){var d={val:c.val,max:c.max||32,reg:/^[a-zA-Z0-9_\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorUsername};return b(d)},numLetter:function(c){var d={val:c.val,max:c.max||32,reg:/^[a-zA-Z0-9\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorUsername,nullTxt:c.nullTxt};return b(d)},onelink:function(c){var d={val:c.val,max:c.max||40,reg:/^[a-zA-Z0-9_\_\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorUsername};return b(d)},wechat:function(c){var d={val:c.val,reg:/^[a-zA-Z0-9]{1}[a-zA-Z\d_\d-]{5,19}$/,regFlag:!1,regTxt:c.txt||a.errorWechat,nullTxt:c.nullTxt};return b(d)},email:function(c){var d={val:c.val,max:c.max||48,reg:/^([a-zA-Z0-9]+[_|\_|\.|\-]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.|\-]?)*[a-zA-Z0-9]+\.[a-zA-Z]{1,63}$/,regFlag:!1,regTxt:c.txt||a.errorEmail,nullTxt:c.nullTxt};return b(d)},url:function(c){var d={val:c.val,reg:/(http|https):\/\/[^\s]+/,regFlag:!1,regTxt:c.txt||a.errorUrl,nullTxt:c.nullTxt};return b(d)},num:function(c){var d={val:c.val,reg:/\D/g,max:c.max||64,min:c.min||1,regFlag:!0,regTxt:c.txt||a.errorNum,nullTxt:c.nullTxt};return b(d)},qq:function(c){var d={val:c.val,reg:/\D/g,max:c.max||12,min:c.min||6,regFlag:!0,regTxt:c.txt||a.errorQQ};return b(d)},numFloat:function(c){var d={val:c.val,reg:/^\d+(\.\d{1,2})?$/,regFlag:!1,regTxt:c.txt||a.errorFormat};return b(d)},isLowLetter:function(c){var d={val:c.val,reg:/^[a-z]+$/,regFlag:!1,regTxt:c.txt||a.lowLetter};return b(d)},pwd:function(c){var d={val:c.val,reg:/^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?![\-_]+$)[0-9A-Za-z]{6,18}$/,regFlag:!1,regTxt:c.txt||a.errorPwd};return b(d)},cellphone:function(a){var c={val:a.val,reg:/^((\d{3,4}-\d{7,14}))|(^1(3|4|5|7|8)\d{9})$/,regFlag:!1,regTxt:a.txt||"号码有误"};return b(c)},ipError:function(a){var c={val:a.val,reg:/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/,regFlag:!1,regTxt:a.txt||"支持数字和“.”"};return b(c)}};formJudge=function(a){var b=[],d={};for(x in a){var e=a[x];info=c[a[x].key](e),status=!1,"succ"!=info&&(b.push(info),status=!0,d[x]={status:status,txt:info})}if(b.length>0){d.succ=!1;for(i in d)if("succ"!=d[i].txt&&(d[i].status=!0),"true"==d[i].status){document.getElementById(i).focus();var f=document.getElementById(i).offsetTop;document.documentElement.scrollTop=f-70;break}}else d={succ:!0};return d}}(),function(){"use strict";angular.module("app",["app.login"]),angular.module("app.login",[])}(),function(){function a(a,b,c){var d={};return d.loginTimeout=function(a){null!=a&&a.code&&-1002==a.code&&d.logOutCookie()},d.noLogin=function(a){if(angular.isUndefined(a)||-1==a.indexOf("login")){var b=c.getCookie("ryioUid");c.isNullStr(b)&&d.logOutCookie()}},d.logOutCookie=function(){c.setCookie("ryioUid",""),window.localStorage.setItem("ryioUauth",""),c.setCookie("ryioToken",""),c.setCookie("ryioIsSuper",""),window.location.href="/login.html"},d.getInfo=function(c,e,f){f||d.noLogin(c);var g=b.defer(),h="";for(var i in e)h+="&"+i+"="+e[i];-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random(),c+=h;a.get("/api/"+c).success(function(a){d.loginTimeout(a),a.code&&200!=a.code?g.reject(a):g.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),g.reject(a)});return g.promise},d.getInfoByUrl=function(c){d.noLogin();var e=b.defer();a.get(c).success(function(a){d.loginTimeout(a),e.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),e.reject(a)});return e.promise},d.getReportData=function(e,f){d.noLogin();var g=b.defer(),h=c.cloneJSON(f),i=h.appid;delete h.appid;var j="?r="+Math.random();for(var k in h)j+="&"+k+"="+h[k];a.get("/api/report/"+i+"/"+e+j).success(function(a){d.loginTimeout(a),a.code&&200!=a.code?g.reject(a):g.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),g.reject(a)});return g.promise},d.postInfo=function(c,e,f){f||d.noLogin(c);var g=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.post("/api/"+c,e).success(function(a,b){d.loginTimeout(a),a.status=b,a.code&&-5e3==a.code?g.resolve(a):a.code&&-6001==a.code?g.resolve(a):g.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),g.reject(a)});return g.promise},d.postInfoByUrl=function(c,e){d.noLogin();var f=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.post(c,e).success(function(a){f.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),f.reject(a)});return f.promise},d.putInfo=function(c,e){d.noLogin(c);var f=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.put("/api/"+c,e).success(function(a,b){d.loginTimeout(a),a.status=b,a.code&&a.code<0?f.reject(a):f.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),f.reject(a)});return f.promise},d.deleteInfo=function(c){d.noLogin();var e=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.delete("/api/"+c).success(function(a,b){d.loginTimeout(a),a.status=b,e.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),e.reject(a)});return e.promise},d.downFile=function(c,d){var e=b.defer();return-1==c.indexOf("api")&&(c="/api/"+c),a({method:"GET",url:c,params:d,responseType:"arraybuffer"}).success(function(a,b,c){if(204==b)return e.resolve({code:-1}),!1;e.resolve({code:1}),c=c();var d=c.filename,f=c["content-type"],g=document.createElement("a");try{var h=new Blob([a],{type:f}),i=window.URL.createObjectURL(h);g.setAttribute("href",i),g.setAttribute("download",decodeURIComponent(d));var j=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});g.dispatchEvent(j)}catch(k){}}).error(function(a){}),e.promise},d}angular.module("app").factory("HttpService",["$http","$q","UtilService",a])}(),function(){"use strict";function a(){var a={};return a.randRange=function(a,b){return Math.floor(Math.random()*(b-a+1))+a},a.sortArray=function(a,b){return"desc"==b?a.sort(function(a,b){return a==b?0:a>b?-1:1}):a.sort(function(a,b){return a==b?0:a>b?1:-1})},a.getMaxByArray=function(b){var c=a.cloneJSON(b);return c=c.sort(function(a,b){return a==b?0:a>b?-1:1}),c[0]},a.sortArray2=function(a,b,c,d){var e=[],f=a.length;f>0&&(b.filter(function(b,c){for(var d=[],g=0;g<f;g++)d.push(a[g][c]);d.push(b),e.push(d)}),"desc"==d?e.sort(function(a,b){return a[c]==b[c]?0:a[c]>b[c]?-1:1}):e.sort(function(a,b){return a[c]==b[c]?0:a[c]>b[c]?1:-1}),e.filter(function(c,d){b[d]=c.pop();for(var e=0;e<f;e++)a[e][d]=c[e]}))},a.sumArray=function(a){for(var b=0,c=0;c<a.length;c++)null!=a[c]&&(b+=a[c]);return b},a.decimal2=function(a,b){b=b||2;for(var c="1",d=1,e=0;e<b;e++)c+="0";d=parseInt(c);var f=Math.round(a*d)/d,g=f+"",h=g.indexOf(".");return h>0&&g.substring(h,g.length)>2&&(g=g.substring(0,g.length-2),f=parseFloat(g)),f},a.getDay=function(a){var b=new Date,c=function(a){var b=a.getFullYear(),c=a.getMonth()+1,d=a.getDate();return c<10&&(c="0"+c),d<10&&(d="0"+d),b+"-"+c+"-"+d},d=b.getTime()+864e5*a;return b.setTime(d),c(b)},a.getLastMonthsDate=function(a,b){var c=new Date(a);return c.setMonth(c.getMonth()-Number(b)),c.Format("yyyy-MM-dd")},a.getYearWeekList=function(a){if(void 0===a){a=(new Date).getFullYear()}var b=[],c=new Date(a,0,1),d=c.getDay(),e=new Date(a,11,31);d=0==d?7:d;var f=c.clone().addDays(7-d),g=0;for(d>0&&d<5&&(g=1,b.push({week:g,date:f,year:a}));f<e&&!e.isSameDay(f);)g++,f=f.clone().addDays(7),b.push({week:g,date:f,year:a});var h=new Date(a,11,31),i=h.getDay();return i>0&&i<4&&b.pop(),b},a.getYearWeekCount=function(b){return a.getYearWeekList(b).length},a.getNowWeekNum=function(){var a=Date.today(),b=new Date(a.getFullYear(),0,1),c=b.getDay(),d=b.clone(),e=0;c>0&&(d=d.addDays(8-c),e=1);var f=diffDate(d,a);return Math.ceil(f/7)+e},a.cloneJSON=function(a){var b=Object.prototype.toString.call(a);return b.indexOf("Object")>-1?jQuery.extend(!0,{},a):b.indexOf("Array")>0?a.concat():a},a.splitString=function(a,b){for(var c="",d=0,e=new RegExp(/[^\x00-\xff]/),f=0;f<a.length;f++){var g=a.charAt(f);d+=e.test(g)?2:1,d<=b&&(c+=g)}return{str:c,len:d}},a.merge=function(){return Array.prototype.concat.apply([],arguments)},a.isNullStr=function(a){return!(!angular.isUndefined(a)&&""!=a&&null!=a&&"null"!=a)},a.getStr=function(a){return a<10?"0"+a:a+""},a.setCookie=function(a,b,c){$.cookie(a,b,{expires:c,path:"/",secure:!1,raw:!1})},a.getCookie=function(a){return $.cookie(a)},a.setItem=function(a,b){window.localStorage.setItem(a,b)},a.getItem=function(a){return window.localStorage.getItem(a)},a.copyTxt=function(a){$(a).select();var b=!1;try{b=document.execCommand("Copy","false",null)}catch(c){b=!1}return b},a.randRangeId=function(){if(a.getCookie("tkRmdId"))return a.getCookie("tkRmdId");var b=(new Date).getTime()+a.randRange(3,5);return a.setCookie("tkRmdId",b,1095),b},a.randDeviceId=function(){if(localStorage.getItem("rmdDeviceId"))return localStorage.getItem("rmdDeviceId");var b=(new Date).getTime()+a.randRange(3,10);return localStorage.setItem("rmdDeviceId",b),b},a.getAppkey=function(){return"0d401839250deff23daf62fd49a444cb"},a.getTKAppkey=function(){return"f0f251af10e66a0c94d2e923d8863105"},a.getLogRoot=function(){return"http://log.reyun.com"},a.deviceInfo=function(){return{versions:function(){var a=navigator.userAgent;navigator.appVersion;return{trident:a.indexOf("Trident")>-1,presto:a.indexOf("Presto")>-1,webKit:a.indexOf("AppleWebKit")>-1,gecko:a.indexOf("Gecko")>-1&&-1==a.indexOf("KHTML"),mobile:!!a.match(/AppleWebKit.*Mobile.*/),ios:!!a.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),android:a.indexOf("Android")>-1||a.indexOf("Linux")>-1,iPhone:a.indexOf("iPhone")>-1,iPad:a.indexOf("iPad")>-1,webApp:-1==a.indexOf("Safari")}}(),language:(navigator.browserLanguage||navigator.language).toLowerCase()}},a.operatorSystem=function(){var a=navigator.userAgent,b="Win32"==navigator.platform||"Windows"==navigator.platform,c="Mac68K"==navigator.platform||"MacPPC"==navigator.platform||"Macintosh"==navigator.platform||"MacIntel"==navigator.platform;if(c)return"Mac";if("ipad"==a.match(/ipad/i))return"ipad";if("iPhone"==navigator.platform)return"iPhone";if("X11"==navigator.platform&&!b&&!c)return"Unix";var d=String(navigator.platform).indexOf("Linux")>-1,e="android"==a.toLowerCase().match(/android/i);if(d)return e?"Android":"Linux";if(b){if(a.indexOf("Windows NT 5.0")>-1||a.indexOf("Windows 2000")>-1)return"Win2000";if(a.indexOf("Windows NT 5.1")>-1||a.indexOf("Windows XP")>-1)return"WinXP";if(a.indexOf("Windows NT 5.2")>-1||a.indexOf("Windows 2003")>-1)return"Win2003";if(a.indexOf("Windows NT 6.0")>-1||a.indexOf("Windows Vista")>-1)return"WinVista";if(a.indexOf("Windows NT 6.1")>-1||a.indexOf("Windows 7")>-1)return"Win7";if(a.indexOf("Windows NT 6.2")>-1||a.indexOf("Windows 8")>-1)return"Win8"}return"other"},a.getBrowser=function(a){var b=window.navigator.userAgent,c="",d="";b.toLowerCase().indexOf("micromessenger")>-1?c="wechat":/Firefox/g.test(b)?(b=b.split(" "),c="Firefox",d=b[b.length-1].split("/")[1]):/MSIE/g.test(b)?(c="IE",b.indexOf("QQBrowser")>-1&&(c="QQBrowser"),b=b.split(";"),d=b[1].split(" ")[2]):/Opera/g.test(b)?(b=b.split(" "),c="Opera",d=b[b.length-1].split("/")[1]):/Chrome/g.test(b)?(b=b.split(" "),c="Chrome",d=b[b.length-2].split("/")[1]):/^apple\s+/i.test(navigator.vendor)?(b=b.split(" "),c="Safair",d=b[b.length-2].split("/")[1]):c="others";var e=d.split(".");return e.length>1&&(d=e[0]+"."+e[1]),a?c+d:c},a}angular.module("app").factory("UtilService",a)}(),function(){function a(a,b,c,d,e){a.showLoading=function(){document.getElementById("sysLoad").style.display="block"},a.hideLoading=function(){document.getElementById("sysLoad").style.display="none"},a.hasReged=!0,a.failureType=1,a.registerMessage=e.search().message,a.registerFlag=a.registerMessage.substring(0,1),a.registerId=a.registerMessage.substring(1,100),c.get("api/reged/find/"+a.registerId).success(function(b){a.registerEmail=b.content.email}),a.sendAgain=function(){a.failureType=2,c.get("api/reged/sendeactivemail/"+a.registerId+"/"+a.registerFlag).success(function(c){a.hideLoading(),"success"==c.content?(b.setCookie("regId",a.registerId,7),b.setCookie("regFlag",a.registerFlag,7),b.setCookie("regEmail",a.registerEmail,7),window.location.href="activation.html"):a.failureText="重新激活发送失败"})}}angular.module("app.login").controller("failureCtrl",["$scope","UtilService","$http","$interval","$location",a])}();
\ No newline at end of file
!function(){var a={isNull:"必填",errorLetter:"含特殊字符或过长",errorLength:"40字符以内",errorFormat:"格式不对",lowLetter:"输入小写字母",errorEmail:"请输入48位以内的正确邮箱",errorNum:"输入数字",errorPwd:"仅支持数字,大小写字母,且至少包含其中2种,长度限制为6-18位",errorQQ:"请输入正确QQ号码",errorCrm:"两次密码不一致,请重新输入",errorCompany:"公司名称,支持48位内汉字或96位内字母数字",errorUsername:"您的姓名,支持16位内汉字或32位内字母数字",errorWechat:"6-20位数字,字母,下划线或中划线,须以数字或字母开头",errorUrl:"以http://或https://开头的合法url",errorName:"名称不合法或过长"},b=function(a){if(!a.val)return a.nullTxt||"必填";var b=a.val.replace(/[^\x00-\xff]/g,"00");return a.min&&b.length<a.min||a.max&&b.length>a.max?a.regTxt:a.regFlag&&a.reg.test(a.val)?a.regTxt:a.regFlag||!a.reg||a.reg.test(a.val)?"succ":a.regTxt},c={isNull:function(c){var d={val:c.val,name:c.txt||a.isNull};return b(d)},nameLen:function(c){var d={val:c.val,max:c.max||40,min:c.min||2,regTxt:c.txt||a.errorLength};return b(d)},isMaxLen:function(a){var c={val:a.val,max:a.max||40,min:a.min||2,regTxt:a.txt};return b(c)},name:function(c){var d={val:c.val,max:c.max||40,min:c.min||2,reg:/[`~!@#\$%\^\&\*\(\)\+<>\?:"\{\},\.\\\/;'\[\]]/im,regFlag:!0,regTxt:c.txt||a.errorLetter};return b(d)},nameFormat:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~\\!(\)《》?:·“ ”,。、;`‘’【】——……¥「」/a-zA-Z0-9\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorName};return b(d)},spcname:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[a-zA-Z0-9_\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorLetter};return b(d)},spcname1:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[a-zA-Z0-9_\-\·\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorLetter};return b(d)},spcname2:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[a-zA-Z0-9_\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorLetter};return b(d)},keyword:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[a-zA-Z0-9\.\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorLetter};return b(d)},companyname:function(c){var d={val:c.val,max:c.max||96,reg:/^[a-zA-Z0-9_\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorCompany};return b(d)},username:function(c){var d={val:c.val,max:c.max||32,reg:/^[a-zA-Z0-9_\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorUsername};return b(d)},numLetter:function(c){var d={val:c.val,max:c.max||32,reg:/^[a-zA-Z0-9\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorUsername,nullTxt:c.nullTxt};return b(d)},onelink:function(c){var d={val:c.val,max:c.max||40,reg:/^[a-zA-Z0-9_\_\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorUsername};return b(d)},wechat:function(c){var d={val:c.val,reg:/^[a-zA-Z0-9]{1}[a-zA-Z\d_\d-]{5,19}$/,regFlag:!1,regTxt:c.txt||a.errorWechat,nullTxt:c.nullTxt};return b(d)},email:function(c){var d={val:c.val,max:c.max||48,reg:/^([a-zA-Z0-9]+[_|\_|\.|\-]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.|\-]?)*[a-zA-Z0-9]+\.[a-zA-Z]{1,63}$/,regFlag:!1,regTxt:c.txt||a.errorEmail,nullTxt:c.nullTxt};return b(d)},url:function(c){var d={val:c.val,reg:/(http|https):\/\/[^\s]+/,regFlag:!1,regTxt:c.txt||a.errorUrl,nullTxt:c.nullTxt};return b(d)},num:function(c){var d={val:c.val,reg:/\D/g,max:c.max||64,min:c.min||1,regFlag:!0,regTxt:c.txt||a.errorNum,nullTxt:c.nullTxt};return b(d)},qq:function(c){var d={val:c.val,reg:/\D/g,max:c.max||12,min:c.min||6,regFlag:!0,regTxt:c.txt||a.errorQQ};return b(d)},numFloat:function(c){var d={val:c.val,reg:/^\d+(\.\d{1,2})?$/,regFlag:!1,regTxt:c.txt||a.errorFormat};return b(d)},isLowLetter:function(c){var d={val:c.val,reg:/^[a-z]+$/,regFlag:!1,regTxt:c.txt||a.lowLetter};return b(d)},pwd:function(c){var d={val:c.val,reg:/^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?![\-_]+$)[0-9A-Za-z]{6,18}$/,regFlag:!1,regTxt:c.txt||a.errorPwd};return b(d)},cellphone:function(a){var c={val:a.val,reg:/^((\d{3,4}-\d{7,14}))|(^1(3|4|5|7|8)\d{9})$/,regFlag:!1,regTxt:a.txt||"号码有误"};return b(c)},ipError:function(a){var c={val:a.val,reg:/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/,regFlag:!1,regTxt:a.txt||"支持数字和“.”"};return b(c)}};formJudge=function(a){var b=[],d={};for(x in a){var e=a[x];info=c[a[x].key](e),status=!1,"succ"!=info&&(b.push(info),status=!0,d[x]={status:status,txt:info})}if(b.length>0){d.succ=!1;for(i in d)if("succ"!=d[i].txt&&(d[i].status=!0),"true"==d[i].status){document.getElementById(i).focus();var f=document.getElementById(i).offsetTop;document.documentElement.scrollTop=f-70;break}}else d={succ:!0};return d}}(),function(){"use strict";angular.module("app",["app.login"]),angular.module("app.login",[])}(),function(){function a(a,b,c){var d={};return d.loginTimeout=function(a){null!=a&&a.code&&-1002==a.code&&d.logOutCookie()},d.noLogin=function(a){if(angular.isUndefined(a)||-1==a.indexOf("login")){var b=c.getCookie("ryioUid");c.isNullStr(b)&&d.logOutCookie()}},d.logOutCookie=function(){c.setCookie("ryioUid",""),window.localStorage.setItem("ryioUauth",""),c.setCookie("ryioToken",""),c.setCookie("ryioIsSuper",""),window.location.href="/login.html"},d.getInfo=function(c,e,f){f||d.noLogin(c);var g=b.defer(),h="";for(var i in e)h+="&"+i+"="+e[i];-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random(),c+=h;a.get("/api/"+c).success(function(a){d.loginTimeout(a),a.code&&200!=a.code?g.reject(a):g.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),g.reject(a)});return g.promise},d.getInfoByUrl=function(c){d.noLogin();var e=b.defer();a.get(c).success(function(a){d.loginTimeout(a),e.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),e.reject(a)});return e.promise},d.getReportData=function(e,f){d.noLogin();var g=b.defer(),h=c.cloneJSON(f),i=h.appid;delete h.appid;var j="?r="+Math.random();for(var k in h)j+="&"+k+"="+h[k];a.get("/api/report/"+i+"/"+e+j).success(function(a){d.loginTimeout(a),a.code&&200!=a.code?g.reject(a):g.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),g.reject(a)});return g.promise},d.postInfo=function(c,e,f){f||d.noLogin(c);var g=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.post("/api/"+c,e).success(function(a,b){d.loginTimeout(a),a.status=b,a.code&&-5e3==a.code?g.resolve(a):a.code&&-6001==a.code?g.resolve(a):g.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),g.reject(a)});return g.promise},d.postInfoByUrl=function(c,e){d.noLogin();var f=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.post(c,e).success(function(a){f.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),f.reject(a)});return f.promise},d.putInfo=function(c,e){d.noLogin(c);var f=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.put("/api/"+c,e).success(function(a,b){d.loginTimeout(a),a.status=b,a.code&&a.code<0?f.reject(a):f.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),f.reject(a)});return f.promise},d.deleteInfo=function(c){d.noLogin();var e=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.delete("/api/"+c).success(function(a,b){d.loginTimeout(a),a.status=b,e.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),e.reject(a)});return e.promise},d.downFile=function(c,d){var e=b.defer();return-1==c.indexOf("api")&&(c="/api/"+c),a({method:"GET",url:c,params:d,responseType:"arraybuffer"}).success(function(a,b,c){if(204==b)return e.resolve({code:-1}),!1;e.resolve({code:1}),c=c();var d=c.filename,f=c["content-type"],g=document.createElement("a");try{var h=new Blob([a],{type:f}),i=window.URL.createObjectURL(h);g.setAttribute("href",i),g.setAttribute("download",decodeURIComponent(d));var j=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});g.dispatchEvent(j)}catch(k){}}).error(function(a){}),e.promise},d}angular.module("app").factory("HttpService",["$http","$q","UtilService",a])}(),function(){"use strict";function a(){var a={};return a.randRange=function(a,b){return Math.floor(Math.random()*(b-a+1))+a},a.sortArray=function(a,b){return"desc"==b?a.sort(function(a,b){return a==b?0:a>b?-1:1}):a.sort(function(a,b){return a==b?0:a>b?1:-1})},a.getMaxByArray=function(b){var c=a.cloneJSON(b);return c=c.sort(function(a,b){return a==b?0:a>b?-1:1}),c[0]},a.sortArray2=function(a,b,c,d){var e=[],f=a.length;f>0&&(b.filter(function(b,c){for(var d=[],g=0;g<f;g++)d.push(a[g][c]);d.push(b),e.push(d)}),"desc"==d?e.sort(function(a,b){return a[c]==b[c]?0:a[c]>b[c]?-1:1}):e.sort(function(a,b){return a[c]==b[c]?0:a[c]>b[c]?1:-1}),e.filter(function(c,d){b[d]=c.pop();for(var e=0;e<f;e++)a[e][d]=c[e]}))},a.sumArray=function(a){for(var b=0,c=0;c<a.length;c++)null!=a[c]&&(b+=a[c]);return b},a.decimal2=function(a,b){b=b||2;for(var c="1",d=1,e=0;e<b;e++)c+="0";d=parseInt(c);var f=Math.round(a*d)/d,g=f+"",h=g.indexOf(".");return h>0&&g.substring(h,g.length)>2&&(g=g.substring(0,g.length-2),f=parseFloat(g)),f},a.getDay=function(a){var b=new Date,c=function(a){var b=a.getFullYear(),c=a.getMonth()+1,d=a.getDate();return c<10&&(c="0"+c),d<10&&(d="0"+d),b+"-"+c+"-"+d},d=b.getTime()+864e5*a;return b.setTime(d),c(b)},a.getLastMonthsDate=function(a,b){var c=new Date(a);return c.setMonth(c.getMonth()-Number(b)),c.Format("yyyy-MM-dd")},a.getYearWeekList=function(a){if(void 0===a){a=(new Date).getFullYear()}var b=[],c=new Date(a,0,1),d=c.getDay(),e=new Date(a,11,31);d=0==d?7:d;var f=c.clone().addDays(7-d),g=0;for(d>0&&d<5&&(g=1,b.push({week:g,date:f,year:a}));f<e&&!e.isSameDay(f);)g++,f=f.clone().addDays(7),b.push({week:g,date:f,year:a});var h=new Date(a,11,31),i=h.getDay();return i>0&&i<4&&b.pop(),b},a.getYearWeekCount=function(b){return a.getYearWeekList(b).length},a.getNowWeekNum=function(){var a=Date.today(),b=new Date(a.getFullYear(),0,1),c=b.getDay(),d=b.clone(),e=0;c>0&&(d=d.addDays(8-c),e=1);var f=diffDate(d,a);return Math.ceil(f/7)+e},a.cloneJSON=function(a){var b=Object.prototype.toString.call(a);return b.indexOf("Object")>-1?jQuery.extend(!0,{},a):b.indexOf("Array")>0?a.concat():a},a.splitString=function(a,b){for(var c="",d=0,e=new RegExp(/[^\x00-\xff]/),f=0;f<a.length;f++){var g=a.charAt(f);d+=e.test(g)?2:1,d<=b&&(c+=g)}return{str:c,len:d}},a.merge=function(){return Array.prototype.concat.apply([],arguments)},a.isNullStr=function(a){return!(!angular.isUndefined(a)&&""!=a&&null!=a&&"null"!=a)},a.getStr=function(a){return a<10?"0"+a:a+""},a.setCookie=function(a,b,c){$.cookie(a,b,{expires:c,path:"/",secure:!1,raw:!1})},a.getCookie=function(a){return $.cookie(a)},a.setItem=function(a,b){window.localStorage.setItem(a,b)},a.getItem=function(a){return window.localStorage.getItem(a)},a.copyTxt=function(a){$(a).select();var b=!1;try{b=document.execCommand("Copy","false",null)}catch(c){b=!1}return b},a.randRangeId=function(){if(a.getCookie("tkRmdId"))return a.getCookie("tkRmdId");var b=(new Date).getTime()+a.randRange(3,5);return a.setCookie("tkRmdId",b,1095),b},a.randDeviceId=function(){if(localStorage.getItem("rmdDeviceId"))return localStorage.getItem("rmdDeviceId");var b=(new Date).getTime()+a.randRange(3,10);return localStorage.setItem("rmdDeviceId",b),b},a.getAppkey=function(){return"0d401839250deff23daf62fd49a444cb"},a.getTKAppkey=function(){return"f0f251af10e66a0c94d2e923d8863105"},a.getLogRoot=function(){return"http://log.reyun.com"},a.deviceInfo=function(){return{versions:function(){var a=navigator.userAgent;navigator.appVersion;return{trident:a.indexOf("Trident")>-1,presto:a.indexOf("Presto")>-1,webKit:a.indexOf("AppleWebKit")>-1,gecko:a.indexOf("Gecko")>-1&&-1==a.indexOf("KHTML"),mobile:!!a.match(/AppleWebKit.*Mobile.*/),ios:!!a.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),android:a.indexOf("Android")>-1||a.indexOf("Linux")>-1,iPhone:a.indexOf("iPhone")>-1,iPad:a.indexOf("iPad")>-1,webApp:-1==a.indexOf("Safari")}}(),language:(navigator.browserLanguage||navigator.language).toLowerCase()}},a.operatorSystem=function(){var a=navigator.userAgent,b="Win32"==navigator.platform||"Windows"==navigator.platform,c="Mac68K"==navigator.platform||"MacPPC"==navigator.platform||"Macintosh"==navigator.platform||"MacIntel"==navigator.platform;if(c)return"Mac";if("ipad"==a.match(/ipad/i))return"ipad";if("iPhone"==navigator.platform)return"iPhone";if("X11"==navigator.platform&&!b&&!c)return"Unix";var d=String(navigator.platform).indexOf("Linux")>-1,e="android"==a.toLowerCase().match(/android/i);if(d)return e?"Android":"Linux";if(b){if(a.indexOf("Windows NT 5.0")>-1||a.indexOf("Windows 2000")>-1)return"Win2000";if(a.indexOf("Windows NT 5.1")>-1||a.indexOf("Windows XP")>-1)return"WinXP";if(a.indexOf("Windows NT 5.2")>-1||a.indexOf("Windows 2003")>-1)return"Win2003";if(a.indexOf("Windows NT 6.0")>-1||a.indexOf("Windows Vista")>-1)return"WinVista";if(a.indexOf("Windows NT 6.1")>-1||a.indexOf("Windows 7")>-1)return"Win7";if(a.indexOf("Windows NT 6.2")>-1||a.indexOf("Windows 8")>-1)return"Win8"}return"other"},a.getBrowser=function(a){var b=window.navigator.userAgent,c="",d="";b.toLowerCase().indexOf("micromessenger")>-1?c="wechat":/Firefox/g.test(b)?(b=b.split(" "),c="Firefox",d=b[b.length-1].split("/")[1]):/MSIE/g.test(b)?(c="IE",b.indexOf("QQBrowser")>-1&&(c="QQBrowser"),b=b.split(";"),d=b[1].split(" ")[2]):/Opera/g.test(b)?(b=b.split(" "),c="Opera",d=b[b.length-1].split("/")[1]):/Chrome/g.test(b)?(b=b.split(" "),c="Chrome",d=b[b.length-2].split("/")[1]):/^apple\s+/i.test(navigator.vendor)?(b=b.split(" "),c="Safair",d=b[b.length-2].split("/")[1]):c="others";var e=d.split(".");return e.length>1&&(d=e[0]+"."+e[1]),a?c+d:c},a}angular.module("app").factory("UtilService",a)}(),function(){function a(a,b,c,d,e){a.showLoading=function(){document.getElementById("sysLoad").style.display="block"},a.hideLoading=function(){document.getElementById("sysLoad").style.display="none"},a.hasReged=!0,a.forgettype="forget",a.newNoRegister=!1,a.save=function(){var d={email:a.email},e={email:{key:"email",max:48,val:d.email,txt:"邮箱最长48位"}},f=/^([a-zA-Z0-9]+[_|\_|\.|\-]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.|\-]?)*[a-zA-Z0-9]+\.[a-zA-Z]{1,63}$/;if(a.tip=formJudge(e),void 0!=a.email&&""!=a.email||(1==a.tip.succ&&(a.tip.succ=!1),a.tip.email={status:!0,txt:"必填"}),void 0==a.email||""==a.email||f.test(a.email)||(1==a.tip.succ&&(a.tip.succ=!1),a.tip.email={status:!0,txt:"请输入正确的邮箱格式"}),"admin@reyun.com"!=a.email&&"demo@reyun.com"!=a.email||(1==a.tip.succ&&(a.tip.succ=!1),a.tip.email={status:!0,txt:"该账号密码不可修改"}),1!=a.tip.succ)return!1;a.errorMessage="",a.showLoading(),c.get("/api/reged/sendforgetpwdemail?email="+a.email).success(function(c){a.hideLoading(),"账号不存在"==c.content.message?a.tip={email:{status:!0,txt:"邮箱未注册过账号"}}:"success"==c.content.message?a.forgettype="success":"newuser not actived"==c.content.message?(a.registerId=c.content.id,a.noActive=1,b.setCookie("regId",c.content.id,7),b.setCookie("regEmail",a.email,7),b.setCookie("regFlag",0,7)):"new subAccount"==c.content.message?(a.noActive=1,a.newNoRegister=!0):a.tip={email:{status:!0,txt:"邮件发送失败"}}})},a.noActive=0,a.closeWin=function(){a.noActive=0,a.loginSend="yes"},a.loginSend="yes",a.sendAgain=function(){a.loginSend="no",c.get("/api/reged/sendeactivemail/"+a.registerId+"/0").success(function(a){window.location.href="activation.html"})},a.loginEmail=function(){var b=a.email.split("@");window.open("http://mail."+b[1])},a.keyEvt=function(b){13==b.keyCode&&a.save()}}angular.module("app.login").controller("forgetCtrl",["$scope","UtilService","$http","$interval","$location",a])}();
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
!function(){var a={isNull:"必填",errorLetter:"含特殊字符或过长",errorLength:"40字符以内",errorFormat:"格式不对",lowLetter:"输入小写字母",errorEmail:"请输入48位以内的正确邮箱",errorNum:"输入数字",errorPwd:"仅支持数字,大小写字母,且至少包含其中2种,长度限制为6-18位",errorQQ:"请输入正确QQ号码",errorCrm:"两次密码不一致,请重新输入",errorCompany:"公司名称,支持48位内汉字或96位内字母数字",errorUsername:"您的姓名,支持16位内汉字或32位内字母数字",errorWechat:"6-20位数字,字母,下划线或中划线,须以数字或字母开头",errorUrl:"以http://或https://开头的合法url",errorName:"名称不合法或过长"},b=function(a){if(!a.val)return a.nullTxt||"必填";var b=a.val.replace(/[^\x00-\xff]/g,"00");return a.min&&b.length<a.min||a.max&&b.length>a.max?a.regTxt:a.regFlag&&a.reg.test(a.val)?a.regTxt:a.regFlag||!a.reg||a.reg.test(a.val)?"succ":a.regTxt},c={isNull:function(c){var d={val:c.val,name:c.txt||a.isNull};return b(d)},nameLen:function(c){var d={val:c.val,max:c.max||40,min:c.min||2,regTxt:c.txt||a.errorLength};return b(d)},isMaxLen:function(a){var c={val:a.val,max:a.max||40,min:a.min||2,regTxt:a.txt};return b(c)},name:function(c){var d={val:c.val,max:c.max||40,min:c.min||2,reg:/[`~!@#\$%\^\&\*\(\)\+<>\?:"\{\},\.\\\/;'\[\]]/im,regFlag:!0,regTxt:c.txt||a.errorLetter};return b(d)},nameFormat:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~\\!(\)《》?:·“ ”,。、;`‘’【】——……¥「」/a-zA-Z0-9\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorName};return b(d)},spcname:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[a-zA-Z0-9_\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorLetter};return b(d)},spcname1:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[a-zA-Z0-9_\-\·\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorLetter};return b(d)},spcname2:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[a-zA-Z0-9_\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorLetter};return b(d)},keyword:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[a-zA-Z0-9\.\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorLetter};return b(d)},companyname:function(c){var d={val:c.val,max:c.max||96,reg:/^[a-zA-Z0-9_\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorCompany};return b(d)},username:function(c){var d={val:c.val,max:c.max||32,reg:/^[a-zA-Z0-9_\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorUsername};return b(d)},numLetter:function(c){var d={val:c.val,max:c.max||32,reg:/^[a-zA-Z0-9\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorUsername,nullTxt:c.nullTxt};return b(d)},onelink:function(c){var d={val:c.val,max:c.max||40,reg:/^[a-zA-Z0-9_\_\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorUsername};return b(d)},wechat:function(c){var d={val:c.val,reg:/^[a-zA-Z0-9]{1}[a-zA-Z\d_\d-]{5,19}$/,regFlag:!1,regTxt:c.txt||a.errorWechat,nullTxt:c.nullTxt};return b(d)},email:function(c){var d={val:c.val,max:c.max||48,reg:/^([a-zA-Z0-9]+[_|\_|\.|\-]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.|\-]?)*[a-zA-Z0-9]+\.[a-zA-Z]{1,63}$/,regFlag:!1,regTxt:c.txt||a.errorEmail,nullTxt:c.nullTxt};return b(d)},url:function(c){var d={val:c.val,reg:/(http|https):\/\/[^\s]+/,regFlag:!1,regTxt:c.txt||a.errorUrl,nullTxt:c.nullTxt};return b(d)},num:function(c){var d={val:c.val,reg:/\D/g,max:c.max||64,min:c.min||1,regFlag:!0,regTxt:c.txt||a.errorNum,nullTxt:c.nullTxt};return b(d)},qq:function(c){var d={val:c.val,reg:/\D/g,max:c.max||12,min:c.min||6,regFlag:!0,regTxt:c.txt||a.errorQQ};return b(d)},numFloat:function(c){var d={val:c.val,reg:/^\d+(\.\d{1,2})?$/,regFlag:!1,regTxt:c.txt||a.errorFormat};return b(d)},isLowLetter:function(c){var d={val:c.val,reg:/^[a-z]+$/,regFlag:!1,regTxt:c.txt||a.lowLetter};return b(d)},pwd:function(c){var d={val:c.val,reg:/^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?![\-_]+$)[0-9A-Za-z]{6,18}$/,regFlag:!1,regTxt:c.txt||a.errorPwd};return b(d)},cellphone:function(a){var c={val:a.val,reg:/^((\d{3,4}-\d{7,14}))|(^1(3|4|5|7|8)\d{9})$/,regFlag:!1,regTxt:a.txt||"号码有误"};return b(c)},ipError:function(a){var c={val:a.val,reg:/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/,regFlag:!1,regTxt:a.txt||"支持数字和“.”"};return b(c)}};formJudge=function(a){var b=[],d={};for(x in a){var e=a[x];info=c[a[x].key](e),status=!1,"succ"!=info&&(b.push(info),status=!0,d[x]={status:status,txt:info})}if(b.length>0){d.succ=!1;for(i in d)if("succ"!=d[i].txt&&(d[i].status=!0),"true"==d[i].status){document.getElementById(i).focus();var f=document.getElementById(i).offsetTop;document.documentElement.scrollTop=f-70;break}}else d={succ:!0};return d}}(),function(){"use strict";angular.module("app",["app.login"]),angular.module("app.login",[])}(),function(){function a(a,b,c){var d={};return d.loginTimeout=function(a){null!=a&&a.code&&-1002==a.code&&d.logOutCookie()},d.noLogin=function(a){if(angular.isUndefined(a)||-1==a.indexOf("login")){var b=c.getCookie("ryioUid");c.isNullStr(b)&&d.logOutCookie()}},d.logOutCookie=function(){c.setCookie("ryioUid",""),window.localStorage.setItem("ryioUauth",""),c.setCookie("ryioToken",""),c.setCookie("ryioIsSuper",""),window.location.href="/login.html"},d.getInfo=function(c,e,f){f||d.noLogin(c);var g=b.defer(),h="";for(var i in e)h+="&"+i+"="+e[i];-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random(),c+=h;a.get("/api/"+c).success(function(a){d.loginTimeout(a),a.code&&200!=a.code?g.reject(a):g.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),g.reject(a)});return g.promise},d.getInfoByUrl=function(c){d.noLogin();var e=b.defer();a.get(c).success(function(a){d.loginTimeout(a),e.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),e.reject(a)});return e.promise},d.getReportData=function(e,f){d.noLogin();var g=b.defer(),h=c.cloneJSON(f),i=h.appid;delete h.appid;var j="?r="+Math.random();for(var k in h)j+="&"+k+"="+h[k];a.get("/api/report/"+i+"/"+e+j).success(function(a){d.loginTimeout(a),a.code&&200!=a.code?g.reject(a):g.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),g.reject(a)});return g.promise},d.postInfo=function(c,e,f){f||d.noLogin(c);var g=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.post("/api/"+c,e).success(function(a,b){d.loginTimeout(a),a.status=b,a.code&&-5e3==a.code?g.resolve(a):a.code&&-6001==a.code?g.resolve(a):g.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),g.reject(a)});return g.promise},d.postInfoByUrl=function(c,e){d.noLogin();var f=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.post(c,e).success(function(a){f.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),f.reject(a)});return f.promise},d.putInfo=function(c,e){d.noLogin(c);var f=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.put("/api/"+c,e).success(function(a,b){d.loginTimeout(a),a.status=b,a.code&&a.code<0?f.reject(a):f.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),f.reject(a)});return f.promise},d.deleteInfo=function(c){d.noLogin();var e=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.delete("/api/"+c).success(function(a,b){d.loginTimeout(a),a.status=b,e.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),e.reject(a)});return e.promise},d.downFile=function(c,d){var e=b.defer();return-1==c.indexOf("api")&&(c="/api/"+c),a({method:"GET",url:c,params:d,responseType:"arraybuffer"}).success(function(a,b,c){if(204==b)return e.resolve({code:-1}),!1;e.resolve({code:1}),c=c();var d=c.filename,f=c["content-type"],g=document.createElement("a");try{var h=new Blob([a],{type:f}),i=window.URL.createObjectURL(h);g.setAttribute("href",i),g.setAttribute("download",decodeURIComponent(d));var j=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});g.dispatchEvent(j)}catch(k){}}).error(function(a){}),e.promise},d}angular.module("app").factory("HttpService",["$http","$q","UtilService",a])}(),function(){"use strict";function a(){var a={};return a.randRange=function(a,b){return Math.floor(Math.random()*(b-a+1))+a},a.sortArray=function(a,b){return"desc"==b?a.sort(function(a,b){return a==b?0:a>b?-1:1}):a.sort(function(a,b){return a==b?0:a>b?1:-1})},a.getMaxByArray=function(b){var c=a.cloneJSON(b);return c=c.sort(function(a,b){return a==b?0:a>b?-1:1}),c[0]},a.sortArray2=function(a,b,c,d){var e=[],f=a.length;f>0&&(b.filter(function(b,c){for(var d=[],g=0;g<f;g++)d.push(a[g][c]);d.push(b),e.push(d)}),"desc"==d?e.sort(function(a,b){return a[c]==b[c]?0:a[c]>b[c]?-1:1}):e.sort(function(a,b){return a[c]==b[c]?0:a[c]>b[c]?1:-1}),e.filter(function(c,d){b[d]=c.pop();for(var e=0;e<f;e++)a[e][d]=c[e]}))},a.sumArray=function(a){for(var b=0,c=0;c<a.length;c++)null!=a[c]&&(b+=a[c]);return b},a.decimal2=function(a,b){b=b||2;for(var c="1",d=1,e=0;e<b;e++)c+="0";d=parseInt(c);var f=Math.round(a*d)/d,g=f+"",h=g.indexOf(".");return h>0&&g.substring(h,g.length)>2&&(g=g.substring(0,g.length-2),f=parseFloat(g)),f},a.getDay=function(a){var b=new Date,c=function(a){var b=a.getFullYear(),c=a.getMonth()+1,d=a.getDate();return c<10&&(c="0"+c),d<10&&(d="0"+d),b+"-"+c+"-"+d},d=b.getTime()+864e5*a;return b.setTime(d),c(b)},a.getLastMonthsDate=function(a,b){var c=new Date(a);return c.setMonth(c.getMonth()-Number(b)),c.Format("yyyy-MM-dd")},a.getYearWeekList=function(a){if(void 0===a){a=(new Date).getFullYear()}var b=[],c=new Date(a,0,1),d=c.getDay(),e=new Date(a,11,31);d=0==d?7:d;var f=c.clone().addDays(7-d),g=0;for(d>0&&d<5&&(g=1,b.push({week:g,date:f,year:a}));f<e&&!e.isSameDay(f);)g++,f=f.clone().addDays(7),b.push({week:g,date:f,year:a});var h=new Date(a,11,31),i=h.getDay();return i>0&&i<4&&b.pop(),b},a.getYearWeekCount=function(b){return a.getYearWeekList(b).length},a.getNowWeekNum=function(){var a=Date.today(),b=new Date(a.getFullYear(),0,1),c=b.getDay(),d=b.clone(),e=0;c>0&&(d=d.addDays(8-c),e=1);var f=diffDate(d,a);return Math.ceil(f/7)+e},a.cloneJSON=function(a){var b=Object.prototype.toString.call(a);return b.indexOf("Object")>-1?jQuery.extend(!0,{},a):b.indexOf("Array")>0?a.concat():a},a.splitString=function(a,b){for(var c="",d=0,e=new RegExp(/[^\x00-\xff]/),f=0;f<a.length;f++){var g=a.charAt(f);d+=e.test(g)?2:1,d<=b&&(c+=g)}return{str:c,len:d}},a.merge=function(){return Array.prototype.concat.apply([],arguments)},a.isNullStr=function(a){return!(!angular.isUndefined(a)&&""!=a&&null!=a&&"null"!=a)},a.getStr=function(a){return a<10?"0"+a:a+""},a.setCookie=function(a,b,c){$.cookie(a,b,{expires:c,path:"/",secure:!1,raw:!1})},a.getCookie=function(a){return $.cookie(a)},a.setItem=function(a,b){window.localStorage.setItem(a,b)},a.getItem=function(a){return window.localStorage.getItem(a)},a.copyTxt=function(a){$(a).select();var b=!1;try{b=document.execCommand("Copy","false",null)}catch(c){b=!1}return b},a.randRangeId=function(){if(a.getCookie("tkRmdId"))return a.getCookie("tkRmdId");var b=(new Date).getTime()+a.randRange(3,5);return a.setCookie("tkRmdId",b,1095),b},a.randDeviceId=function(){if(localStorage.getItem("rmdDeviceId"))return localStorage.getItem("rmdDeviceId");var b=(new Date).getTime()+a.randRange(3,10);return localStorage.setItem("rmdDeviceId",b),b},a.getAppkey=function(){return"0d401839250deff23daf62fd49a444cb"},a.getTKAppkey=function(){return"f0f251af10e66a0c94d2e923d8863105"},a.getLogRoot=function(){return"http://log.reyun.com"},a.deviceInfo=function(){return{versions:function(){var a=navigator.userAgent;navigator.appVersion;return{trident:a.indexOf("Trident")>-1,presto:a.indexOf("Presto")>-1,webKit:a.indexOf("AppleWebKit")>-1,gecko:a.indexOf("Gecko")>-1&&-1==a.indexOf("KHTML"),mobile:!!a.match(/AppleWebKit.*Mobile.*/),ios:!!a.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),android:a.indexOf("Android")>-1||a.indexOf("Linux")>-1,iPhone:a.indexOf("iPhone")>-1,iPad:a.indexOf("iPad")>-1,webApp:-1==a.indexOf("Safari")}}(),language:(navigator.browserLanguage||navigator.language).toLowerCase()}},a.operatorSystem=function(){var a=navigator.userAgent,b="Win32"==navigator.platform||"Windows"==navigator.platform,c="Mac68K"==navigator.platform||"MacPPC"==navigator.platform||"Macintosh"==navigator.platform||"MacIntel"==navigator.platform;if(c)return"Mac";if("ipad"==a.match(/ipad/i))return"ipad";if("iPhone"==navigator.platform)return"iPhone";if("X11"==navigator.platform&&!b&&!c)return"Unix";var d=String(navigator.platform).indexOf("Linux")>-1,e="android"==a.toLowerCase().match(/android/i);if(d)return e?"Android":"Linux";if(b){if(a.indexOf("Windows NT 5.0")>-1||a.indexOf("Windows 2000")>-1)return"Win2000";if(a.indexOf("Windows NT 5.1")>-1||a.indexOf("Windows XP")>-1)return"WinXP";if(a.indexOf("Windows NT 5.2")>-1||a.indexOf("Windows 2003")>-1)return"Win2003";if(a.indexOf("Windows NT 6.0")>-1||a.indexOf("Windows Vista")>-1)return"WinVista";if(a.indexOf("Windows NT 6.1")>-1||a.indexOf("Windows 7")>-1)return"Win7";if(a.indexOf("Windows NT 6.2")>-1||a.indexOf("Windows 8")>-1)return"Win8"}return"other"},a.getBrowser=function(a){var b=window.navigator.userAgent,c="",d="";b.toLowerCase().indexOf("micromessenger")>-1?c="wechat":/Firefox/g.test(b)?(b=b.split(" "),c="Firefox",d=b[b.length-1].split("/")[1]):/MSIE/g.test(b)?(c="IE",b.indexOf("QQBrowser")>-1&&(c="QQBrowser"),b=b.split(";"),d=b[1].split(" ")[2]):/Opera/g.test(b)?(b=b.split(" "),c="Opera",d=b[b.length-1].split("/")[1]):/Chrome/g.test(b)?(b=b.split(" "),c="Chrome",d=b[b.length-2].split("/")[1]):/^apple\s+/i.test(navigator.vendor)?(b=b.split(" "),c="Safair",d=b[b.length-2].split("/")[1]):c="others";var e=d.split(".");return e.length>1&&(d=e[0]+"."+e[1]),a?c+d:c},a}angular.module("app").factory("UtilService",a)}(),function(){function a(a,c){var d={},e={line:1,column:2,columnstack:3,bar:4,area:5,areastack:6,arealiner:7,pie:8,funnel:9,columnline:10,barY:11};d.getOption=function(d,f,g){var h=new b(c,g,a),i=h.init(d,g),j=[];if(e[f]==e.line)j=h.lineChart();else if(e[f]==e.area)j=h.areaChart();else if(e[f]==e.areastack)j=h.areaChart(!0,!1);else if(e[f]==e.arealiner)j=h.areaChart(!1,!0);else if(e[f]==e.column)j=h.columnChart(!1),i.yAxis[0].axisTick=i.xAxis[0].axisTick,i.yAxis[0].axisLine=i.xAxis[0].axisLine;else if(e[f]==e.columnstack)j=h.columnChart(!0,g.flag),i.yAxis[0].axisTick=i.xAxis[0].axisTick,i.yAxis[0].axisLine=i.xAxis[0].axisLine;else if(e[f]==e.bar)j=h.barChart(),i.yAxis[0]=h.getXaxis2(),i.xAxis[0]=h.getYaxis2(),i.grid.right=20;else if(e[f]==e.funnel)j=h.funnelChart(),i.tooltip=h.funnelTooltip();else if(e[f]==e.columnline)j=h.columnLineChart(),i.yAxis[0].axisTick=i.xAxis[0].axisTick,i.yAxis[0].axisLine=i.xAxis[0].axisLine,i.yAxis.push(h.getYaxis(!0));else if(e[f]==e.barY){j=h.barChart(!0),i.yAxis[0]=h.getXaxis2(),i.xAxis[0]=h.getYaxis2(),i.grid.right=20,i.grid.top=0;for(var k=d.name,l=k.length-1,m=0;m<l;m++)i.xAxis.push(h.getYaxis2()),i.xAxis[m+1].show=!1}return i.series=j,angular.isDefined(g.color)&&(i.color=g.color),angular.isDefined(g.legend)&&(i.legend.show=g.legend),i};var f=new b(c);return d.getPieOption=function(a,b,c){return f.pieChart(a,c)},d.getMapOption=function(a,b,c){return f.mapChart(a,c)},d.getLoginMapOption=function(a,b,c){return f.loginMapChart(a,c)},d}function b(a,b,d){var e="#666666",f="#d5d7d8",g="SimHei,Arial",h="#666666",i=12;this.UtilService=a,this.init=function(a,b){this.data=a.val,this.name=a.name,this.key=a.key,this.chartData=a,this.config=b;var c=this.commonOptions();return c.xAxis=[this.getXaxis()],c.yAxis=[this.getYaxis()],c},this.commonOptions=function(a){var c="";this.config.ispercent&&1==this.config.ispercent&&(c+="%");var e=[],j=0,k={};if(this.name&&this.name.length>0){for(var l=0;l<this.name.length;l++){var m=this.name[l].lastIndexOf("_");e.push({name:b.flag?this.name[l].slice(0,-1==m?this.name[l].length-1:m):this.name[l],icon:"rect"})}if(this.config.hidelast)for(var l=this.config.hidelast;l>0;l--){var n=this.name.slice(0-l)[0];k[n]=!1}}var o="",p=this;return this.config.title&&(o=this.config.title,0!=this.config.legend&&(j=30)),{title:{text:o,textStyle:{color:h,fontSize:i,fontFamily:g},left:"center"},legend:{data:e,top:j,textStyle:{color:h,fontSize:i,fontFamily:g},itemWidth:10,itemHeight:10,formatter:function(a){return e.length>2?echarts.format.truncateText(a,80,"14px Microsoft Yahei","…"):a},tooltip:{show:!0},selected:k},grid:{left:10,top:j+40,bottom:10,right:0,containLabel:!0},tooltip:{trigger:b.flag&&"hasGro"!=b.flag&&"nohasGro"!=b.flag?"item":"axis",formatter:function(a){var e,f=a.length,g="";if(b.flag&&"hasGro"!=b.flag&&"nohasGro"!=b.flag){var h=a.seriesName;return null!=a.value&&"-"!=a.value&&(g+='<span style="color:'+a.color+'">●</span>'+h+" : "+p.UtilService.decimal2(a.value,2)+c,p.config.lastprecent&&(g+="%"),p.config.namesub&&p.config.namesub.length>0&&p.config.namesub[a.seriesIndex]&&(g+=p.config.namesub[a.seriesIndex]),g+="<br/>"),g=a.name+"<br/>"+g}for(var i=0;i<f;i++){e=a[i];var h=e.seriesName;null!=e.value&&"-"!=e.value&&(g+='<span style="color:'+e.color+'">●</span>'+h+" : "+p.UtilService.decimal2(e.value,2)+c,p.config.lastprecent&&i==f-1&&(g+="%"),p.config.namesub&&p.config.namesub.length>0&&p.config.namesub[i]&&(g+=p.config.namesub[i]),g+="<br/>")}return g=e.name+"<br/>"+g,b.id?(d.$emit("tooltipObj",{objs:a,id:b.id,flag:b.flag}),""):g},axisPointer:{type:"hasGro"==b.flag||"nohasGro"==b.flag?"shadow":"line",lineStyle:{color:f}}},toolbox:{show:!0,feature:{mark:{show:!1},dataView:{show:!1,readOnly:!1},saveAsImage:{show:!1}}},calculable:!1,color:["#e8340e","#0088cc","#61a0a8","#d48265","#91c7ae","#749f83","#ca8622","#bda29a","#6e7074","#546570","#2f4554","#006000","#642100","#6c3365","#484891","#844200","#006030","#003e3e","#584b00","#336666"]}},this.getXaxis=function(a){var b=this;return{type:"category",data:this.key,splitLine:{show:!1},axisLabel:{textStyle:{color:e,fontSize:i,fontFamily:g},formatter:function(a){if(a){var c=b.UtilService.splitString(a,12);return b.config.issmart&&c.len>12?c.str+"...":a}}},axisTick:{lineStyle:{color:f}},axisLine:{lineStyle:{color:f}}}},this.getXaxis2=function(a){var b=this;return{type:"category",data:this.key,splitLine:{show:!1},axisLabel:{textStyle:{color:e,fontSize:i,fontFamily:g},formatter:function(a){if(angular.isUndefined(a))return"";var c=b.UtilService.splitString(a,12);return c.len>12?c.str+"...":a}},axisTick:{lineStyle:{color:f}},axisLine:{lineStyle:{color:f}},inverse:!0}},this.getYaxis=function(a){var b="";return(this.config.ispercent&&1==this.config.ispercent||a)&&(b+="%"),{type:"value",axisLabel:{textStyle:{color:e,fontSize:i,fontFamily:g},formatter:function(a){return c(a)+b}},axisTick:{show:!1,lineStyle:{opacity:0}},axisLine:{show:!1},splitLine:{show:!0,lineStyle:{color:f,type:"dashed"}},min:0,splitNumber:4}},this.getYaxis2=function(){var a="";return this.config.ispercent&&1==this.config.ispercent&&(a+="%"),{type:"value",axisLabel:{textStyle:{color:e,fontSize:i,fontFamily:g},formatter:function(b){return c(b)+a}},axisTick:{lineStyle:{color:f}},axisLine:{lineStyle:{color:f}},splitLine:{show:!1},min:0,splitNumber:3}},this.lineChart=function(){for(var a=[],b=0;b<this.name.length;b++){var c={};c.name=this.name[b],c.type="line",c.lineStyle={normal:{width:1.2}},c.smooth=!0,c.data=this.data[b],a[b]=c}return a},this.areaChart=function(a,b){var c=[],d=.25;this.config.opacity&&(d=this.config.opacity);for(var e=0;e<this.name.length;e++){var f={};f.name=this.name[e],f.type="line",f.data=this.data[e],a&&(f.stack="总量"),f.smooth=!0,f.areaStyle={normal:{opacity:d}},b&&(f.areaStyle.normal.color=new echarts.graphic.LinearGradient(0,0,0,1,[{offset:0,color:this.config.color[e]},{offset:1,color:"#fff"}])),f.lineStyle={normal:{width:1.2}},c[e]=f}return c},this.columnChart=function(a,b){for(var c=[],d=[],e=0;e<this.name.length;e++){var f={},g=this.name[e].lastIndexOf("_");f.name=b?this.name[e].slice(0,-1==g?this.name[e].length:g):this.name[e],f.type="bar",f.barMaxWidth=18,f.barGap=0,f.data=this.data[e],a&&(f.stack="总量"+(b?this.name[e].slice(-1==g?0:g):""));var h="";h=d.indexOf(f.name)>-1?c[e-1].itemStyle.normal.color:this.config.color[e],f.itemStyle={normal:{color:h}},b||(f.itemStyle.emphasis={color:this.config.color[e]}),d.push(f.name),c[e]=f}return c},this.barChart=function(a){for(var b=[],d=0;d<this.name.length;d++){var e={};e.name=this.name[d],e.type="bar",this.config.barwidth?e.barMaxWidth=this.config.barwidth:(e.barMaxWidth=18,e.barGap=0),a&&(e.xAxisIndex=d),e.data=this.data[d],this.config.isbartext&&1==this.config.isbartext&&(e.label={normal:{show:!0,position:"right",formatter:function(a){var b=a.data;return b>0?c(b):""}}}),b[d]=e}return b},this.pieChart=function(a,b){var c=a.name,d=a.key,e=a.val[0],f=[];return e&&d.filter(function(b,d){var g=[];c.filter(function(a,c){g.push({value:e[b][c],name:a})});var h={type:"pie",clockwise:!1,label:{normal:{show:!(c.length>20)}},radius:[0,120],center:1==a.key.length?["50%","50%"]:0==d?["25%","50%"]:["75%","50%"],selectedOffset:5,data:g};f.push(h)}),{tooltip:{trigger:"item",formatter:"{b}: {c} ({d}%)"},legend:{show:!1},color:b.color,series:f}},this.funnelTooltip=function(){var a=this,b="用户";return 0==this.config.isdevice&&(b="用户"),{trigger:"axis",formatter:function(c){if("markPoint"==c.componentType)return"转化率"+c.value;c.length>0&&(c=c[0]);var d=c.dataIndex;if(d>0){var e="";return c?(e=c.name+"的"+b+"个数:"+a.data[2][d]+"<br/>",e+=a.key[0]+"到"+c.name+"的"+b+"转化成功率:"+a.data[0][d]+"%"):e="",e}return c.name+"的"+b+"个数:"+a.data[2][0]}}},this.funnelChart=function(){var a=this,b=this.config.barwidth,c=[],d=[],e="image:///images/chartarrow.png",f=[54,26],h=this.key.length;if(h>0){var i=(b-70)/h,j=80,k="insideTop",l="#ffffff";if(h>5&&(j=40),1==this.config.issmart)h>5?(e="image:///images/chartarrow2.png",f=[10,10],i=(b-20)/h,j=30,k="insideTop",l="#666"):j=45;else for(var m=this.chartData.trans4last,n=0;n<m.length;n++)c.push({value:m[n]+"%",x:40+5*n+i*(n+1)+"px",y:"50%"});for(var n=0;n<2;n++){var o={};o.type="bar",o.stack="转化率",o.barMaxWidth=j,o.barGap=0,o.data=this.data[n],0==n&&(o.label={normal:{show:!0,position:k,formatter:function(b){return 0==b.value&&0==a.data[2][b.dataIndex]||b.value<10?"":a.UtilService.decimal2(b.value)+"%"},textStyle:{color:l,fontFamily:g}}},o.itemStyle={normal:{color:this.config.color[0],textStyle:{color:"#ffffff",fontFamily:g}}}),1==n&&(o.itemStyle={normal:{color:this.config.color[1]},emphasis:{color:this.config.color[1]}}),o.markPoint={show:!0,symbol:e,symbolSize:f,label:{normal:{formatter:function(b){return h>5&&1==a.config.issmart?"":b.value},textStyle:{color:"#ffffff",fontFamily:g}},emphasis:{formatter:function(a){return a.value}}},data:c},d[n]=o}}return d},this.mapChart=function(a,b){var c=a.name,d=a.key,f=a.val[0],h=[],i=0;if(f&&f.length>0){var i=this.UtilService.getMaxByArray(f);i=100*Math.ceil(i/100),d.filter(function(a,b){h.push({value:f[b],name:a})})}return{tooltip:{trigger:"item",formatter:function(a){return isNaN(a.value)?a.name:a.name+"<br/>"+a.seriesName+":"+a.value}},visualMap:{min:0,max:i,color:["#7ec3f2","#dcebf4"]},series:[{name:c[0],type:"map",mapType:"china",selectedMode:"multiple",top:20,bottom:20,label:{normal:{show:!0,textStyle:{fontSize:4,color:e,fontFamily:g}},emphasis:{show:!0}},itemStyle:{normal:{areaColor:"#eeeeee",borderColor:"#858585"},emphasis:{areaColor:"#1fb9e9"}},data:h}]}},this.loginMapChart=function(a,b){var c=a.name,d=a.key,f=a.val[0],h=[],i=0;if(f&&f.length>0){var i=this.UtilService.getMaxByArray(f);i=100*Math.ceil(i/100),d.filter(function(a,b){h.push({value:f[b],name:a})})}return{tooltip:{trigger:"item",show:!1,formatter:function(a){return isNaN(a.value)?a.name:a.name+"<br/>"+a.seriesName+":"+a.value}},series:[{name:c[0],type:"map",mapType:"china",selectedMode:"multiple",top:20,bottom:20,label:{normal:{show:!1,textStyle:{fontSize:4,color:e,fontFamily:g}},emphasis:{show:!0}},itemStyle:{normal:{areaColor:"#424250",borderColor:"#1e1e26"},emphasis:{areaColor:"#3c3c4a"}},data:h}]}},this.columnLineChart=function(){for(var a=[],b=this.name.length,c=0;c<b;c++){var d={};d.name=this.name[c],d.barMaxWidth=18,d.barGap=0,d.data=this.data[c],c==b-1?(d.type="line",d.yAxisIndex=1):d.type="bar",d.itemStyle={normal:{color:this.config.color[c]},emphasis:{color:this.config.color[c]}},a[c]=d}return a}}function c(a){return a>999&a<1e4?(a/1e3).toFixed(1).toString()+"k":a>=1e4&&a<1e6?(a/1e4).toFixed(1).toString()+"w":a>=1e6&&a<1e9?(a/1e6).toFixed(1).toString()+"m":a>=1e9?(a/1e9).toFixed(1).toString()+"b":a}angular.module("app").factory("OptionService",["$rootScope","UtilService",a])}(),function(){"use strict";function a(){var a={};return a.getDay=function(a){var b=new Date,c=function(a){var b=a.getFullYear(),c=a.getMonth()+1,d=a.getDate();return c<10&&(c="0"+c),d<10&&(d="0"+d),b+"-"+c+"-"+d},d=b.getTime()+864e5*a;return b.setTime(d),c(b)},a.getYearWeekList=function(a){if(void 0===a){a=(new Date).getFullYear()}var b=[],c=new Date(a,0,1),d=c.getDay(),e=new Date(a,11,31);d=0==d?7:d;var f=c.clone().addDays(7-d),g=0;for(d>0&&d<5&&(g=1,b.push({week:g,date:f,year:a}));f<e&&!e.isSameDay(f);)g++,f=f.clone().addDays(7),b.push({week:g,date:f,year:a});var h=new Date(a,11,31),i=h.getDay();return i>0&&i<4&&b.pop(),b},a.getYearWeekCount=function(b){return a.getYearWeekList(b).length},a.getNowWeekNum=function(){var a=Date.today(),b=new Date(a.getFullYear(),0,1),c=b.getDay(),d=b.clone(),e=0;c>0&&(d=d.addDays(8-c),e=1);var f=diffDate(d,a);return Math.ceil(f/7)+e},a.getToday=function(){return{startDate:a.getDay(0),endDate:a.getDay(0)}},a.getYesDay=function(){return{startDate:a.getDay(-1),endDate:a.getDay(-1)}},a.getLastDays=function(b,c){return angular.isUndefined(c)&&(c=-1),0==c&&b<0&&(b+=1),0==c&&b>0&&(b-=1),{startDate:a.getDay(b),endDate:a.getDay(c)}},a.getLastWeeks=function(b){var c=a.getNowWeekNum(),d=new Date,e=d.getFullYear(),f={end:e+a.getStr(c)},g=b+c+1;if(g>0)f.start=e+a.getStr(g);else{var h=a.getYearWeekCount(e-1);f.start=e-1+a.getStr(h+g)}return f},a.getLastMonths=function(b){var c=new Date,d=c.getFullYear(),e=c.getMonth()+1,f={end:d+a.getStr(e)},g=e+b+1;return f.start=g>0?d+a.getStr(g):d-1+a.getStr(12+g),f},a.getStr=function(a){return a<10?"0"+a:a+""},a.getWeekRangeDate=function(a,b){a=a||0;var c=new Date,d=c.getDay();d=0==d?7:d;var e=c.clone().addDays(1-d),f=c;return a>0?(e=e.clone().addDays(7*a),f=e.clone().addDays(6)):a<0&&(f=e.clone().addDays(7*(a+1)-1),e=e.clone().addDays(7*a)),b&&-1==b&&Date.isSameDay(f,Date.today())&&(e==f?e=f=f.clone().addDays(-1):f=f.clone().addDays(-1)),{startDate:e.Format("yyyy-MM-dd"),endDate:f.Format("yyyy-MM-dd")}},a.getMonthRangeDate=function(a,b){a=a||0;var c=new Date,d=c.getFullYear(),e=c.getMonth(),f=c.getDate(),g=null,h=null;return 0!=a?(e+=a,e<0&&(e+=11,--d),f=Date.getDaysInMonth(d,e),h=new Date(d,e,f),g=h.clone(),g.setDate(1)):(b&&-1==b&&(f+=-1),g=c.clone(),h=c,g.setDate(1),h.setDate(f)),{startDate:g.Format("yyyy-MM-dd"),endDate:h.Format("yyyy-MM-dd")}},a.getDaysNum=function(a,b){var c,d,e="-";c=a.split(e),d=b.split(e);var f=new Date(c[0],c[1]-1,c[2]),g=new Date(d[0],d[1]-1,d[2]);return parseInt(Math.abs(f-g)/1e3/60/60/24)},a}angular.module("app").factory("DateService",a)}(),function(){function a(a,b,c,d,e,f){a.now=c.getYesDay().startDate,a.reportDate=c.getYesDay().startDate,a.isrember=!1,a.isonline=!0;var g=e.getCookie("ryioUname"),h=e.getCookie("ryioUpass");e.isNullStr(g)||(a.name=g),e.isNullStr(h)||(a.password=h);var i="";a.getImgInfo=function(){var a=new Array(1,2,3,4,5,6,7,8,9,"a","b","c","d","e","f","g","h","j","k","l","m","n","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","J","K","L","M","N","P","Q","R","S","T","U","V","W","X","Y","Z");i="";for(var b=a.length,c=0;c<4;c++){var d=Math.floor(Math.random()*b);i+=a[d]}document.getElementById("imgMa").src="api/login/getvalidcode?code="+i},a.getImgInfo(),a.doLogin=function(){var b={email:a.name,password:a.password,autologin:a.isonline,isrember:a.isrember},c={name:{key:"isNull",val:b.email},password:{key:"isNull",val:b.password},yema:{key:"isNull",val:a.yema}};return a.tip=formJudge(c),1==a.tip.succ&&(angular.uppercase(a.yema)!=angular.uppercase(i)?(a.tip={yema:{status:!0,txt:"验证码错误"}},a.getImgInfo(),!1):void f.getInfo("login/loginweb",b).then(function(b){if(200==b.code){var c=b.account,d=b.token;if(-3==c.status)a.noActive=1,a.registerId=c.id,e.setCookie("regId",c.id,7),e.setCookie("regEmail",a.name,7),e.setCookie("regFlag",0,7);else{e.setCookie("ryioUid",c.id,7),e.setCookie("ryioUname",c.email,7),window.localStorage.setItem("ry_user",JSON.stringify(c)),e.setCookie("ryioToken",d,7),e.setCookie("ryioPastDate",c.pastDate,7),e.setCookie("ryioStatus",c.status,7),e.setCookie("ryioActiveStatus",c.activeStatus,7),e.setCookie("ryioIcon",0,7);var f=1==c.isSuperUser&&1!=c.isChannelPerson;e.setCookie("ryioIsSuper",f,7),e.setCookie("ryioRole",c.roleCategory,7),1!=b.account.activeStatus&&1==b.account.status&&1==f?(e.setCookie("regId",c.id,7),e.setCookie("regEmail",a.name,7),e.setCookie("regFlag",1,7),window.location.href="olduser.html"):1==b.account.status?1==c.roleCategory||f?window.location.href="index.html#/manage/app":window.location.href="index.html":window.location.href="index.html#/active/product"}}else a.tip={password:{status:!0,txt:b.msg}}}))},a.noActive=0,a.closeWin=function(){a.noActive=0,a.loginSend="yes"},a.loginSend="yes",a.sendAgain=function(){a.loginSend="no",f.getInfo("reged/sendeactivemail/"+a.registerId+"/0").then(function(a){window.location.href="activation.html"})},a.keyEvt=function(b){13==b.keyCode&&a.doLogin()}}angular.module("app.login").controller("loginCtrl",["$scope","OptionService","DateService","$filter","UtilService","HttpService",a])}();
\ No newline at end of file
!function(){var a={isNull:"必填",errorLetter:"含特殊字符或过长",errorLength:"40字符以内",errorFormat:"格式不对",lowLetter:"输入小写字母",errorEmail:"请输入48位以内的正确邮箱",errorNum:"输入数字",errorPwd:"仅支持数字,大小写字母,且至少包含其中2种,长度限制为6-18位",errorQQ:"请输入正确QQ号码",errorCrm:"两次密码不一致,请重新输入",errorCompany:"公司名称,支持48位内汉字或96位内字母数字",errorUsername:"您的姓名,支持16位内汉字或32位内字母数字",errorWechat:"6-20位数字,字母,下划线或中划线,须以数字或字母开头",errorUrl:"以http://或https://开头的合法url",errorName:"名称不合法或过长"},b=function(a){if(!a.val)return a.nullTxt||"必填";var b=a.val.replace(/[^\x00-\xff]/g,"00");return a.min&&b.length<a.min||a.max&&b.length>a.max?a.regTxt:a.regFlag&&a.reg.test(a.val)?a.regTxt:a.regFlag||!a.reg||a.reg.test(a.val)?"succ":a.regTxt},c={isNull:function(c){var d={val:c.val,name:c.txt||a.isNull};return b(d)},nameLen:function(c){var d={val:c.val,max:c.max||40,min:c.min||2,regTxt:c.txt||a.errorLength};return b(d)},isMaxLen:function(a){var c={val:a.val,max:a.max||40,min:a.min||2,regTxt:a.txt};return b(c)},name:function(c){var d={val:c.val,max:c.max||40,min:c.min||2,reg:/[`~!@#\$%\^\&\*\(\)\+<>\?:"\{\},\.\\\/;'\[\]]/im,regFlag:!0,regTxt:c.txt||a.errorLetter};return b(d)},nameFormat:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~\\!(\)《》?:·“ ”,。、;`‘’【】——……¥「」/a-zA-Z0-9\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorName};return b(d)},spcname:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[a-zA-Z0-9_\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorLetter};return b(d)},spcname1:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[a-zA-Z0-9_\-\·\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorLetter};return b(d)},spcname2:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[a-zA-Z0-9_\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorLetter};return b(d)},keyword:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[a-zA-Z0-9\.\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorLetter};return b(d)},companyname:function(c){var d={val:c.val,max:c.max||96,reg:/^[a-zA-Z0-9_\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorCompany};return b(d)},username:function(c){var d={val:c.val,max:c.max||32,reg:/^[a-zA-Z0-9_\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorUsername};return b(d)},numLetter:function(c){var d={val:c.val,max:c.max||32,reg:/^[a-zA-Z0-9\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorUsername,nullTxt:c.nullTxt};return b(d)},onelink:function(c){var d={val:c.val,max:c.max||40,reg:/^[a-zA-Z0-9_\_\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorUsername};return b(d)},wechat:function(c){var d={val:c.val,reg:/^[a-zA-Z0-9]{1}[a-zA-Z\d_\d-]{5,19}$/,regFlag:!1,regTxt:c.txt||a.errorWechat,nullTxt:c.nullTxt};return b(d)},email:function(c){var d={val:c.val,max:c.max||48,reg:/^([a-zA-Z0-9]+[_|\_|\.|\-]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.|\-]?)*[a-zA-Z0-9]+\.[a-zA-Z]{1,63}$/,regFlag:!1,regTxt:c.txt||a.errorEmail,nullTxt:c.nullTxt};return b(d)},url:function(c){var d={val:c.val,reg:/(http|https):\/\/[^\s]+/,regFlag:!1,regTxt:c.txt||a.errorUrl,nullTxt:c.nullTxt};return b(d)},num:function(c){var d={val:c.val,reg:/\D/g,max:c.max||64,min:c.min||1,regFlag:!0,regTxt:c.txt||a.errorNum,nullTxt:c.nullTxt};return b(d)},qq:function(c){var d={val:c.val,reg:/\D/g,max:c.max||12,min:c.min||6,regFlag:!0,regTxt:c.txt||a.errorQQ};return b(d)},numFloat:function(c){var d={val:c.val,reg:/^\d+(\.\d{1,2})?$/,regFlag:!1,regTxt:c.txt||a.errorFormat};return b(d)},isLowLetter:function(c){var d={val:c.val,reg:/^[a-z]+$/,regFlag:!1,regTxt:c.txt||a.lowLetter};return b(d)},pwd:function(c){var d={val:c.val,reg:/^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?![\-_]+$)[0-9A-Za-z]{6,18}$/,regFlag:!1,regTxt:c.txt||a.errorPwd};return b(d)},cellphone:function(a){var c={val:a.val,reg:/^((\d{3,4}-\d{7,14}))|(^1(3|4|5|7|8)\d{9})$/,regFlag:!1,regTxt:a.txt||"号码有误"};return b(c)},ipError:function(a){var c={val:a.val,reg:/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/,regFlag:!1,regTxt:a.txt||"支持数字和“.”"};return b(c)}};formJudge=function(a){var b=[],d={};for(x in a){var e=a[x];info=c[a[x].key](e),status=!1,"succ"!=info&&(b.push(info),status=!0,d[x]={status:status,txt:info})}if(b.length>0){d.succ=!1;for(i in d)if("succ"!=d[i].txt&&(d[i].status=!0),"true"==d[i].status){document.getElementById(i).focus();var f=document.getElementById(i).offsetTop;document.documentElement.scrollTop=f-70;break}}else d={succ:!0};return d}}(),function(){"use strict";angular.module("app",["app.login"]),angular.module("app.login",[])}(),function(){function a(a,b,c){var d={};return d.loginTimeout=function(a){null!=a&&a.code&&-1002==a.code&&d.logOutCookie()},d.noLogin=function(a){if(angular.isUndefined(a)||-1==a.indexOf("login")){var b=c.getCookie("ryioUid");c.isNullStr(b)&&d.logOutCookie()}},d.logOutCookie=function(){c.setCookie("ryioUid",""),window.localStorage.setItem("ryioUauth",""),c.setCookie("ryioToken",""),c.setCookie("ryioIsSuper",""),window.location.href="/login.html"},d.getInfo=function(c,e,f){f||d.noLogin(c);var g=b.defer(),h="";for(var i in e)h+="&"+i+"="+e[i];-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random(),c+=h;a.get("/api/"+c).success(function(a){d.loginTimeout(a),a.code&&200!=a.code?g.reject(a):g.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),g.reject(a)});return g.promise},d.getInfoByUrl=function(c){d.noLogin();var e=b.defer();a.get(c).success(function(a){d.loginTimeout(a),e.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),e.reject(a)});return e.promise},d.getReportData=function(e,f){d.noLogin();var g=b.defer(),h=c.cloneJSON(f),i=h.appid;delete h.appid;var j="?r="+Math.random();for(var k in h)j+="&"+k+"="+h[k];a.get("/api/report/"+i+"/"+e+j).success(function(a){d.loginTimeout(a),a.code&&200!=a.code?g.reject(a):g.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),g.reject(a)});return g.promise},d.postInfo=function(c,e,f){f||d.noLogin(c);var g=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.post("/api/"+c,e).success(function(a,b){d.loginTimeout(a),a.status=b,a.code&&-5e3==a.code?g.resolve(a):a.code&&-6001==a.code?g.resolve(a):g.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),g.reject(a)});return g.promise},d.postInfoByUrl=function(c,e){d.noLogin();var f=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.post(c,e).success(function(a){f.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),f.reject(a)});return f.promise},d.putInfo=function(c,e){d.noLogin(c);var f=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.put("/api/"+c,e).success(function(a,b){d.loginTimeout(a),a.status=b,a.code&&a.code<0?f.reject(a):f.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),f.reject(a)});return f.promise},d.deleteInfo=function(c){d.noLogin();var e=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.delete("/api/"+c).success(function(a,b){d.loginTimeout(a),a.status=b,e.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),e.reject(a)});return e.promise},d.downFile=function(c,d){var e=b.defer();return-1==c.indexOf("api")&&(c="/api/"+c),a({method:"GET",url:c,params:d,responseType:"arraybuffer"}).success(function(a,b,c){if(204==b)return e.resolve({code:-1}),!1;e.resolve({code:1}),c=c();var d=c.filename,f=c["content-type"],g=document.createElement("a");try{var h=new Blob([a],{type:f}),i=window.URL.createObjectURL(h);g.setAttribute("href",i),g.setAttribute("download",decodeURIComponent(d));var j=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});g.dispatchEvent(j)}catch(k){}}).error(function(a){}),e.promise},d}angular.module("app").factory("HttpService",["$http","$q","UtilService",a])}(),function(){"use strict";function a(){var a={};return a.randRange=function(a,b){return Math.floor(Math.random()*(b-a+1))+a},a.sortArray=function(a,b){return"desc"==b?a.sort(function(a,b){return a==b?0:a>b?-1:1}):a.sort(function(a,b){return a==b?0:a>b?1:-1})},a.getMaxByArray=function(b){var c=a.cloneJSON(b);return c=c.sort(function(a,b){return a==b?0:a>b?-1:1}),c[0]},a.sortArray2=function(a,b,c,d){var e=[],f=a.length;f>0&&(b.filter(function(b,c){for(var d=[],g=0;g<f;g++)d.push(a[g][c]);d.push(b),e.push(d)}),"desc"==d?e.sort(function(a,b){return a[c]==b[c]?0:a[c]>b[c]?-1:1}):e.sort(function(a,b){return a[c]==b[c]?0:a[c]>b[c]?1:-1}),e.filter(function(c,d){b[d]=c.pop();for(var e=0;e<f;e++)a[e][d]=c[e]}))},a.sumArray=function(a){for(var b=0,c=0;c<a.length;c++)null!=a[c]&&(b+=a[c]);return b},a.decimal2=function(a,b){b=b||2;for(var c="1",d=1,e=0;e<b;e++)c+="0";d=parseInt(c);var f=Math.round(a*d)/d,g=f+"",h=g.indexOf(".");return h>0&&g.substring(h,g.length)>2&&(g=g.substring(0,g.length-2),f=parseFloat(g)),f},a.getDay=function(a){var b=new Date,c=function(a){var b=a.getFullYear(),c=a.getMonth()+1,d=a.getDate();return c<10&&(c="0"+c),d<10&&(d="0"+d),b+"-"+c+"-"+d},d=b.getTime()+864e5*a;return b.setTime(d),c(b)},a.getLastMonthsDate=function(a,b){var c=new Date(a);return c.setMonth(c.getMonth()-Number(b)),c.Format("yyyy-MM-dd")},a.getYearWeekList=function(a){if(void 0===a){a=(new Date).getFullYear()}var b=[],c=new Date(a,0,1),d=c.getDay(),e=new Date(a,11,31);d=0==d?7:d;var f=c.clone().addDays(7-d),g=0;for(d>0&&d<5&&(g=1,b.push({week:g,date:f,year:a}));f<e&&!e.isSameDay(f);)g++,f=f.clone().addDays(7),b.push({week:g,date:f,year:a});var h=new Date(a,11,31),i=h.getDay();return i>0&&i<4&&b.pop(),b},a.getYearWeekCount=function(b){return a.getYearWeekList(b).length},a.getNowWeekNum=function(){var a=Date.today(),b=new Date(a.getFullYear(),0,1),c=b.getDay(),d=b.clone(),e=0;c>0&&(d=d.addDays(8-c),e=1);var f=diffDate(d,a);return Math.ceil(f/7)+e},a.cloneJSON=function(a){var b=Object.prototype.toString.call(a);return b.indexOf("Object")>-1?jQuery.extend(!0,{},a):b.indexOf("Array")>0?a.concat():a},a.splitString=function(a,b){for(var c="",d=0,e=new RegExp(/[^\x00-\xff]/),f=0;f<a.length;f++){var g=a.charAt(f);d+=e.test(g)?2:1,d<=b&&(c+=g)}return{str:c,len:d}},a.merge=function(){return Array.prototype.concat.apply([],arguments)},a.isNullStr=function(a){return!(!angular.isUndefined(a)&&""!=a&&null!=a&&"null"!=a)},a.getStr=function(a){return a<10?"0"+a:a+""},a.setCookie=function(a,b,c){$.cookie(a,b,{expires:c,path:"/",secure:!1,raw:!1})},a.getCookie=function(a){return $.cookie(a)},a.setItem=function(a,b){window.localStorage.setItem(a,b)},a.getItem=function(a){return window.localStorage.getItem(a)},a.copyTxt=function(a){$(a).select();var b=!1;try{b=document.execCommand("Copy","false",null)}catch(c){b=!1}return b},a.randRangeId=function(){if(a.getCookie("tkRmdId"))return a.getCookie("tkRmdId");var b=(new Date).getTime()+a.randRange(3,5);return a.setCookie("tkRmdId",b,1095),b},a.randDeviceId=function(){if(localStorage.getItem("rmdDeviceId"))return localStorage.getItem("rmdDeviceId");var b=(new Date).getTime()+a.randRange(3,10);return localStorage.setItem("rmdDeviceId",b),b},a.getAppkey=function(){return"0d401839250deff23daf62fd49a444cb"},a.getTKAppkey=function(){return"f0f251af10e66a0c94d2e923d8863105"},a.getLogRoot=function(){return"http://log.reyun.com"},a.deviceInfo=function(){return{versions:function(){var a=navigator.userAgent;navigator.appVersion;return{trident:a.indexOf("Trident")>-1,presto:a.indexOf("Presto")>-1,webKit:a.indexOf("AppleWebKit")>-1,gecko:a.indexOf("Gecko")>-1&&-1==a.indexOf("KHTML"),mobile:!!a.match(/AppleWebKit.*Mobile.*/),ios:!!a.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),android:a.indexOf("Android")>-1||a.indexOf("Linux")>-1,iPhone:a.indexOf("iPhone")>-1,iPad:a.indexOf("iPad")>-1,webApp:-1==a.indexOf("Safari")}}(),language:(navigator.browserLanguage||navigator.language).toLowerCase()}},a.operatorSystem=function(){var a=navigator.userAgent,b="Win32"==navigator.platform||"Windows"==navigator.platform,c="Mac68K"==navigator.platform||"MacPPC"==navigator.platform||"Macintosh"==navigator.platform||"MacIntel"==navigator.platform;if(c)return"Mac";if("ipad"==a.match(/ipad/i))return"ipad";if("iPhone"==navigator.platform)return"iPhone";if("X11"==navigator.platform&&!b&&!c)return"Unix";var d=String(navigator.platform).indexOf("Linux")>-1,e="android"==a.toLowerCase().match(/android/i);if(d)return e?"Android":"Linux";if(b){if(a.indexOf("Windows NT 5.0")>-1||a.indexOf("Windows 2000")>-1)return"Win2000";if(a.indexOf("Windows NT 5.1")>-1||a.indexOf("Windows XP")>-1)return"WinXP";if(a.indexOf("Windows NT 5.2")>-1||a.indexOf("Windows 2003")>-1)return"Win2003";if(a.indexOf("Windows NT 6.0")>-1||a.indexOf("Windows Vista")>-1)return"WinVista";if(a.indexOf("Windows NT 6.1")>-1||a.indexOf("Windows 7")>-1)return"Win7";if(a.indexOf("Windows NT 6.2")>-1||a.indexOf("Windows 8")>-1)return"Win8"}return"other"},a.getBrowser=function(a){var b=window.navigator.userAgent,c="",d="";b.toLowerCase().indexOf("micromessenger")>-1?c="wechat":/Firefox/g.test(b)?(b=b.split(" "),c="Firefox",d=b[b.length-1].split("/")[1]):/MSIE/g.test(b)?(c="IE",b.indexOf("QQBrowser")>-1&&(c="QQBrowser"),b=b.split(";"),d=b[1].split(" ")[2]):/Opera/g.test(b)?(b=b.split(" "),c="Opera",d=b[b.length-1].split("/")[1]):/Chrome/g.test(b)?(b=b.split(" "),c="Chrome",d=b[b.length-2].split("/")[1]):/^apple\s+/i.test(navigator.vendor)?(b=b.split(" "),c="Safair",d=b[b.length-2].split("/")[1]):c="others";var e=d.split(".");return e.length>1&&(d=e[0]+"."+e[1]),a?c+d:c},a}angular.module("app").factory("UtilService",a)}(),function(){function a(a,b,c,d,e){a.showLoading=function(){document.getElementById("sysLoad").style.display="block"},a.hideLoading=function(){document.getElementById("sysLoad").style.display="none"},a.registerId=$.cookie("regId"),a.registerEmail=$.cookie("regEmail"),a.flag=$.cookie("regFlag"),a.hasReged=!0,a.oldEmail=function(){a.showLoading(),c.get("api/reged/sendeactivemail/"+a.registerId+"/1").success(function(c){a.hideLoading(),"success"==c.content?b.setCookie("ryioAcvitation",0,7):b.setCookie("ryioAcvitation",1,7),window.location.href="activation.html"})}}angular.module("app.login").controller("olduserCtrl",["$scope","UtilService","$http","$interval","$location",a])}();
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
!function(){var a={isNull:"必填",errorLetter:"含特殊字符或过长",errorLength:"40字符以内",errorFormat:"格式不对",lowLetter:"输入小写字母",errorEmail:"请输入48位以内的正确邮箱",errorNum:"输入数字",errorPwd:"仅支持数字,大小写字母,且至少包含其中2种,长度限制为6-18位",errorQQ:"请输入正确QQ号码",errorCrm:"两次密码不一致,请重新输入",errorCompany:"公司名称,支持48位内汉字或96位内字母数字",errorUsername:"您的姓名,支持16位内汉字或32位内字母数字",errorWechat:"6-20位数字,字母,下划线或中划线,须以数字或字母开头",errorUrl:"以http://或https://开头的合法url",errorName:"名称不合法或过长"},b=function(a){if(!a.val)return a.nullTxt||"必填";var b=a.val.replace(/[^\x00-\xff]/g,"00");return a.min&&b.length<a.min||a.max&&b.length>a.max?a.regTxt:a.regFlag&&a.reg.test(a.val)?a.regTxt:a.regFlag||!a.reg||a.reg.test(a.val)?"succ":a.regTxt},c={isNull:function(c){var d={val:c.val,name:c.txt||a.isNull};return b(d)},nameLen:function(c){var d={val:c.val,max:c.max||40,min:c.min||2,regTxt:c.txt||a.errorLength};return b(d)},isMaxLen:function(a){var c={val:a.val,max:a.max||40,min:a.min||2,regTxt:a.txt};return b(c)},name:function(c){var d={val:c.val,max:c.max||40,min:c.min||2,reg:/[`~!@#\$%\^\&\*\(\)\+<>\?:"\{\},\.\\\/;'\[\]]/im,regFlag:!0,regTxt:c.txt||a.errorLetter};return b(d)},nameFormat:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~\\!(\)《》?:·“ ”,。、;`‘’【】——……¥「」/a-zA-Z0-9\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorName};return b(d)},spcname:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[a-zA-Z0-9_\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorLetter};return b(d)},spcname1:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[a-zA-Z0-9_\-\·\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorLetter};return b(d)},spcname2:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[a-zA-Z0-9_\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorLetter};return b(d)},keyword:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[a-zA-Z0-9\.\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorLetter};return b(d)},companyname:function(c){var d={val:c.val,max:c.max||96,reg:/^[a-zA-Z0-9_\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorCompany};return b(d)},username:function(c){var d={val:c.val,max:c.max||32,reg:/^[a-zA-Z0-9_\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorUsername};return b(d)},numLetter:function(c){var d={val:c.val,max:c.max||32,reg:/^[a-zA-Z0-9\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorUsername,nullTxt:c.nullTxt};return b(d)},onelink:function(c){var d={val:c.val,max:c.max||40,reg:/^[a-zA-Z0-9_\_\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorUsername};return b(d)},wechat:function(c){var d={val:c.val,reg:/^[a-zA-Z0-9]{1}[a-zA-Z\d_\d-]{5,19}$/,regFlag:!1,regTxt:c.txt||a.errorWechat,nullTxt:c.nullTxt};return b(d)},email:function(c){var d={val:c.val,max:c.max||48,reg:/^([a-zA-Z0-9]+[_|\_|\.|\-]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.|\-]?)*[a-zA-Z0-9]+\.[a-zA-Z]{1,63}$/,regFlag:!1,regTxt:c.txt||a.errorEmail,nullTxt:c.nullTxt};return b(d)},url:function(c){var d={val:c.val,reg:/(http|https):\/\/[^\s]+/,regFlag:!1,regTxt:c.txt||a.errorUrl,nullTxt:c.nullTxt};return b(d)},num:function(c){var d={val:c.val,reg:/\D/g,max:c.max||64,min:c.min||1,regFlag:!0,regTxt:c.txt||a.errorNum,nullTxt:c.nullTxt};return b(d)},qq:function(c){var d={val:c.val,reg:/\D/g,max:c.max||12,min:c.min||6,regFlag:!0,regTxt:c.txt||a.errorQQ};return b(d)},numFloat:function(c){var d={val:c.val,reg:/^\d+(\.\d{1,2})?$/,regFlag:!1,regTxt:c.txt||a.errorFormat};return b(d)},isLowLetter:function(c){var d={val:c.val,reg:/^[a-z]+$/,regFlag:!1,regTxt:c.txt||a.lowLetter};return b(d)},pwd:function(c){var d={val:c.val,reg:/^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?![\-_]+$)[0-9A-Za-z]{6,18}$/,regFlag:!1,regTxt:c.txt||a.errorPwd};return b(d)},cellphone:function(a){var c={val:a.val,reg:/^((\d{3,4}-\d{7,14}))|(^1(3|4|5|7|8)\d{9})$/,regFlag:!1,regTxt:a.txt||"号码有误"};return b(c)},ipError:function(a){var c={val:a.val,reg:/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/,regFlag:!1,regTxt:a.txt||"支持数字和“.”"};return b(c)}};formJudge=function(a){var b=[],d={};for(x in a){var e=a[x];info=c[a[x].key](e),status=!1,"succ"!=info&&(b.push(info),status=!0,d[x]={status:status,txt:info})}if(b.length>0){d.succ=!1;for(i in d)if("succ"!=d[i].txt&&(d[i].status=!0),"true"==d[i].status){document.getElementById(i).focus();var f=document.getElementById(i).offsetTop;document.documentElement.scrollTop=f-70;break}}else d={succ:!0};return d}}(),function(){"use strict";angular.module("app",["app.login"]),angular.module("app.login",[])}(),function(){function a(a,b,c){var d={};return d.loginTimeout=function(a){null!=a&&a.code&&-1002==a.code&&d.logOutCookie()},d.noLogin=function(a){if(angular.isUndefined(a)||-1==a.indexOf("login")){var b=c.getCookie("ryioUid");c.isNullStr(b)&&d.logOutCookie()}},d.logOutCookie=function(){c.setCookie("ryioUid",""),window.localStorage.setItem("ryioUauth",""),c.setCookie("ryioToken",""),c.setCookie("ryioIsSuper",""),window.location.href="/login.html"},d.getInfo=function(c,e,f){f||d.noLogin(c);var g=b.defer(),h="";for(var i in e)h+="&"+i+"="+e[i];-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random(),c+=h;a.get("/api/"+c).success(function(a){d.loginTimeout(a),a.code&&200!=a.code?g.reject(a):g.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),g.reject(a)});return g.promise},d.getInfoByUrl=function(c){d.noLogin();var e=b.defer();a.get(c).success(function(a){d.loginTimeout(a),e.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),e.reject(a)});return e.promise},d.getReportData=function(e,f){d.noLogin();var g=b.defer(),h=c.cloneJSON(f),i=h.appid;delete h.appid;var j="?r="+Math.random();for(var k in h)j+="&"+k+"="+h[k];a.get("/api/report/"+i+"/"+e+j).success(function(a){d.loginTimeout(a),a.code&&200!=a.code?g.reject(a):g.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),g.reject(a)});return g.promise},d.postInfo=function(c,e,f){f||d.noLogin(c);var g=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.post("/api/"+c,e).success(function(a,b){d.loginTimeout(a),a.status=b,a.code&&-5e3==a.code?g.resolve(a):a.code&&-6001==a.code?g.resolve(a):g.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),g.reject(a)});return g.promise},d.postInfoByUrl=function(c,e){d.noLogin();var f=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.post(c,e).success(function(a){f.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),f.reject(a)});return f.promise},d.putInfo=function(c,e){d.noLogin(c);var f=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.put("/api/"+c,e).success(function(a,b){d.loginTimeout(a),a.status=b,a.code&&a.code<0?f.reject(a):f.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),f.reject(a)});return f.promise},d.deleteInfo=function(c){d.noLogin();var e=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.delete("/api/"+c).success(function(a,b){d.loginTimeout(a),a.status=b,e.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),e.reject(a)});return e.promise},d.downFile=function(c,d){var e=b.defer();return-1==c.indexOf("api")&&(c="/api/"+c),a({method:"GET",url:c,params:d,responseType:"arraybuffer"}).success(function(a,b,c){if(204==b)return e.resolve({code:-1}),!1;e.resolve({code:1}),c=c();var d=c.filename,f=c["content-type"],g=document.createElement("a");try{var h=new Blob([a],{type:f}),i=window.URL.createObjectURL(h);g.setAttribute("href",i),g.setAttribute("download",decodeURIComponent(d));var j=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});g.dispatchEvent(j)}catch(k){}}).error(function(a){}),e.promise},d}angular.module("app").factory("HttpService",["$http","$q","UtilService",a])}(),function(){"use strict";function a(){var a={};return a.randRange=function(a,b){return Math.floor(Math.random()*(b-a+1))+a},a.sortArray=function(a,b){return"desc"==b?a.sort(function(a,b){return a==b?0:a>b?-1:1}):a.sort(function(a,b){return a==b?0:a>b?1:-1})},a.getMaxByArray=function(b){var c=a.cloneJSON(b);return c=c.sort(function(a,b){return a==b?0:a>b?-1:1}),c[0]},a.sortArray2=function(a,b,c,d){var e=[],f=a.length;f>0&&(b.filter(function(b,c){for(var d=[],g=0;g<f;g++)d.push(a[g][c]);d.push(b),e.push(d)}),"desc"==d?e.sort(function(a,b){return a[c]==b[c]?0:a[c]>b[c]?-1:1}):e.sort(function(a,b){return a[c]==b[c]?0:a[c]>b[c]?1:-1}),e.filter(function(c,d){b[d]=c.pop();for(var e=0;e<f;e++)a[e][d]=c[e]}))},a.sumArray=function(a){for(var b=0,c=0;c<a.length;c++)null!=a[c]&&(b+=a[c]);return b},a.decimal2=function(a,b){b=b||2;for(var c="1",d=1,e=0;e<b;e++)c+="0";d=parseInt(c);var f=Math.round(a*d)/d,g=f+"",h=g.indexOf(".");return h>0&&g.substring(h,g.length)>2&&(g=g.substring(0,g.length-2),f=parseFloat(g)),f},a.getDay=function(a){var b=new Date,c=function(a){var b=a.getFullYear(),c=a.getMonth()+1,d=a.getDate();return c<10&&(c="0"+c),d<10&&(d="0"+d),b+"-"+c+"-"+d},d=b.getTime()+864e5*a;return b.setTime(d),c(b)},a.getLastMonthsDate=function(a,b){var c=new Date(a);return c.setMonth(c.getMonth()-Number(b)),c.Format("yyyy-MM-dd")},a.getYearWeekList=function(a){if(void 0===a){a=(new Date).getFullYear()}var b=[],c=new Date(a,0,1),d=c.getDay(),e=new Date(a,11,31);d=0==d?7:d;var f=c.clone().addDays(7-d),g=0;for(d>0&&d<5&&(g=1,b.push({week:g,date:f,year:a}));f<e&&!e.isSameDay(f);)g++,f=f.clone().addDays(7),b.push({week:g,date:f,year:a});var h=new Date(a,11,31),i=h.getDay();return i>0&&i<4&&b.pop(),b},a.getYearWeekCount=function(b){return a.getYearWeekList(b).length},a.getNowWeekNum=function(){var a=Date.today(),b=new Date(a.getFullYear(),0,1),c=b.getDay(),d=b.clone(),e=0;c>0&&(d=d.addDays(8-c),e=1);var f=diffDate(d,a);return Math.ceil(f/7)+e},a.cloneJSON=function(a){var b=Object.prototype.toString.call(a);return b.indexOf("Object")>-1?jQuery.extend(!0,{},a):b.indexOf("Array")>0?a.concat():a},a.splitString=function(a,b){for(var c="",d=0,e=new RegExp(/[^\x00-\xff]/),f=0;f<a.length;f++){var g=a.charAt(f);d+=e.test(g)?2:1,d<=b&&(c+=g)}return{str:c,len:d}},a.merge=function(){return Array.prototype.concat.apply([],arguments)},a.isNullStr=function(a){return!(!angular.isUndefined(a)&&""!=a&&null!=a&&"null"!=a)},a.getStr=function(a){return a<10?"0"+a:a+""},a.setCookie=function(a,b,c){$.cookie(a,b,{expires:c,path:"/",secure:!1,raw:!1})},a.getCookie=function(a){return $.cookie(a)},a.setItem=function(a,b){window.localStorage.setItem(a,b)},a.getItem=function(a){return window.localStorage.getItem(a)},a.copyTxt=function(a){$(a).select();var b=!1;try{b=document.execCommand("Copy","false",null)}catch(c){b=!1}return b},a.randRangeId=function(){if(a.getCookie("tkRmdId"))return a.getCookie("tkRmdId");var b=(new Date).getTime()+a.randRange(3,5);return a.setCookie("tkRmdId",b,1095),b},a.randDeviceId=function(){if(localStorage.getItem("rmdDeviceId"))return localStorage.getItem("rmdDeviceId");var b=(new Date).getTime()+a.randRange(3,10);return localStorage.setItem("rmdDeviceId",b),b},a.getAppkey=function(){return"0d401839250deff23daf62fd49a444cb"},a.getTKAppkey=function(){return"f0f251af10e66a0c94d2e923d8863105"},a.getLogRoot=function(){return"http://log.reyun.com"},a.deviceInfo=function(){return{versions:function(){var a=navigator.userAgent;navigator.appVersion;return{trident:a.indexOf("Trident")>-1,presto:a.indexOf("Presto")>-1,webKit:a.indexOf("AppleWebKit")>-1,gecko:a.indexOf("Gecko")>-1&&-1==a.indexOf("KHTML"),mobile:!!a.match(/AppleWebKit.*Mobile.*/),ios:!!a.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),android:a.indexOf("Android")>-1||a.indexOf("Linux")>-1,iPhone:a.indexOf("iPhone")>-1,iPad:a.indexOf("iPad")>-1,webApp:-1==a.indexOf("Safari")}}(),language:(navigator.browserLanguage||navigator.language).toLowerCase()}},a.operatorSystem=function(){var a=navigator.userAgent,b="Win32"==navigator.platform||"Windows"==navigator.platform,c="Mac68K"==navigator.platform||"MacPPC"==navigator.platform||"Macintosh"==navigator.platform||"MacIntel"==navigator.platform;if(c)return"Mac";if("ipad"==a.match(/ipad/i))return"ipad";if("iPhone"==navigator.platform)return"iPhone";if("X11"==navigator.platform&&!b&&!c)return"Unix";var d=String(navigator.platform).indexOf("Linux")>-1,e="android"==a.toLowerCase().match(/android/i);if(d)return e?"Android":"Linux";if(b){if(a.indexOf("Windows NT 5.0")>-1||a.indexOf("Windows 2000")>-1)return"Win2000";if(a.indexOf("Windows NT 5.1")>-1||a.indexOf("Windows XP")>-1)return"WinXP";if(a.indexOf("Windows NT 5.2")>-1||a.indexOf("Windows 2003")>-1)return"Win2003";if(a.indexOf("Windows NT 6.0")>-1||a.indexOf("Windows Vista")>-1)return"WinVista";if(a.indexOf("Windows NT 6.1")>-1||a.indexOf("Windows 7")>-1)return"Win7";if(a.indexOf("Windows NT 6.2")>-1||a.indexOf("Windows 8")>-1)return"Win8"}return"other"},a.getBrowser=function(a){var b=window.navigator.userAgent,c="",d="";b.toLowerCase().indexOf("micromessenger")>-1?c="wechat":/Firefox/g.test(b)?(b=b.split(" "),c="Firefox",d=b[b.length-1].split("/")[1]):/MSIE/g.test(b)?(c="IE",b.indexOf("QQBrowser")>-1&&(c="QQBrowser"),b=b.split(";"),d=b[1].split(" ")[2]):/Opera/g.test(b)?(b=b.split(" "),c="Opera",d=b[b.length-1].split("/")[1]):/Chrome/g.test(b)?(b=b.split(" "),c="Chrome",d=b[b.length-2].split("/")[1]):/^apple\s+/i.test(navigator.vendor)?(b=b.split(" "),c="Safair",d=b[b.length-2].split("/")[1]):c="others";var e=d.split(".");return e.length>1&&(d=e[0]+"."+e[1]),a?c+d:c},a}angular.module("app").factory("UtilService",a)}(),function(){function a(a,b,c,d,e){a.showLoading=function(){document.getElementById("sysLoad").style.display="block"},a.hideLoading=function(){document.getElementById("sysLoad").style.display="none"},a.registerId=$.cookie("regId"),a.registerEmail=$.cookie("regEmail"),a.flag=$.cookie("regFlag"),a.activeStatus=$.cookie("ryioActiveStatus"),a.acvitation=$.cookie("ryioAcvitation"),a.findStatus=function(){a.showLoading(),c.get("/api/reged/findbyemail?email="+a.registerEmail).success(function(c){a.hideLoading(),a.activeStatus=c.content.activeStatus,b.setCookie("ryioActiveStatus",c.content.activeStatus,7),c.content.status>-3&&1!=a.flag&&(window.location.href="success.html"),1==a.activeStatus&&1==a.flag&&(window.location.href="success.html")})},a.findStatus(),a.hasReged=!0,a.loginEmail=function(){var b=a.registerEmail.split("@");window.open("http://mail."+b[1])},a.sendtype=1,a.sendAgain=function(){a.showLoading(),c.get("/api/reged/sendeactivemail/"+a.registerId+"/"+a.flag).success(function(b){a.hideLoading(),"success"==b.content?(a.sendtype=2,a.acvitation=0,a.time=99e3,$one_minute=d(function(){a.time-=1e3,0==a.time&&(a.sendtype=1)},1e3)):"actived"==b.content?window.location.href="success.html":a.acvitation=1})},a.changeEmail=function(){a.winFlag=1,a.oldemail=a.registerEmail},a.closeWin=function(){a.winFlag=0},a.saveNewEmail=function(){var d=(a.oldemail,a.newemail,{oldemail:{key:"email",max:48,val:a.oldemail,txt:"邮箱最长48位"},newemail:{key:"email",max:48,val:a.newemail,txt:"邮箱最长48位"}}),e=/^([a-zA-Z0-9]+[_|\_|\.|\-]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.|\-]?)*[a-zA-Z0-9]+\.[a-zA-Z]{1,63}$/;if(a.tip=formJudge(d),void 0==a.newemail&&(1==a.tip.succ&&(a.tip.succ=!1),a.tip.newemail={status:!0,txt:"必填"}),""==a.newemail&&(1==a.tip.succ&&(a.tip.succ=!1),a.tip.newemail={status:!0,txt:"必填"}),void 0==a.newemail||""==a.newemail||e.test(a.newemail)||(1==a.tip.succ&&(a.tip.succ=!1),a.tip.newemail={status:!0,txt:"请输入正确的邮箱格式"}),1!=a.tip.succ)return!1;a.errorMessage="",a.showLoading(),c.get("/api/reged/modifyemail/"+a.registerId+"?oldemail="+a.oldemail+"&newemail="+a.newemail).success(function(c){a.hideLoading(),-1==c.code?a.tip.newemail={status:!0,txt:"该新邮箱已存在,请更换新邮箱"}:250==c.code?a.tip.newemail={status:!0,txt:"发送邮件失败"}:251==c.code?a.tip.newemail={status:!0,txt:"注册邮箱已激活,不可再修改"}:null==c.content.id?a.tip.newemail={status:!0,txt:"注册邮箱错误,请修改"}:(b.setCookie("regFlag",a.flag,7),b.setCookie("regEmail",a.newemail,7),a.registerEmail=a.newemail,window.location.href="activation.html")})},a.keyEvt=function(b){13==b.keyCode&&a.save()}}angular.module("app.login").controller("acvitationCtrl",["$scope","UtilService","$http","$interval","$location",a])}();
\ No newline at end of file
!function(){var a={isNull:"必填",errorLetter:"含特殊字符或过长",errorLength:"40字符以内",errorFormat:"格式不对",lowLetter:"输入小写字母",errorEmail:"请输入48位以内的正确邮箱",errorNum:"输入数字",errorPwd:"仅支持数字,大小写字母,且至少包含其中2种,长度限制为6-18位",errorQQ:"请输入正确QQ号码",errorCrm:"两次密码不一致,请重新输入",errorCompany:"公司名称,支持48位内汉字或96位内字母数字",errorUsername:"您的姓名,支持16位内汉字或32位内字母数字",errorWechat:"6-20位数字,字母,下划线或中划线,须以数字或字母开头",errorUrl:"以http://或https://开头的合法url",errorName:"名称不合法或过长"},b=function(a){if(!a.val)return a.nullTxt||"必填";var b=a.val.replace(/[^\x00-\xff]/g,"00");return a.min&&b.length<a.min||a.max&&b.length>a.max?a.regTxt:a.regFlag&&a.reg.test(a.val)?a.regTxt:a.regFlag||!a.reg||a.reg.test(a.val)?"succ":a.regTxt},c={isNull:function(c){var d={val:c.val,name:c.txt||a.isNull};return b(d)},nameLen:function(c){var d={val:c.val,max:c.max||40,min:c.min||2,regTxt:c.txt||a.errorLength};return b(d)},isMaxLen:function(a){var c={val:a.val,max:a.max||40,min:a.min||2,regTxt:a.txt};return b(c)},name:function(c){var d={val:c.val,max:c.max||40,min:c.min||2,reg:/[`~!@#\$%\^\&\*\(\)\+<>\?:"\{\},\.\\\/;'\[\]]/im,regFlag:!0,regTxt:c.txt||a.errorLetter};return b(d)},nameFormat:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~\\!(\)《》?:·“ ”,。、;`‘’【】——……¥「」/a-zA-Z0-9\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorName};return b(d)},spcname:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[a-zA-Z0-9_\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorLetter};return b(d)},spcname1:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[a-zA-Z0-9_\-\·\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorLetter};return b(d)},spcname2:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[a-zA-Z0-9_\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorLetter};return b(d)},keyword:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[a-zA-Z0-9\.\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorLetter};return b(d)},companyname:function(c){var d={val:c.val,max:c.max||96,reg:/^[a-zA-Z0-9_\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorCompany};return b(d)},username:function(c){var d={val:c.val,max:c.max||32,reg:/^[a-zA-Z0-9_\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorUsername};return b(d)},numLetter:function(c){var d={val:c.val,max:c.max||32,reg:/^[a-zA-Z0-9\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorUsername,nullTxt:c.nullTxt};return b(d)},onelink:function(c){var d={val:c.val,max:c.max||40,reg:/^[a-zA-Z0-9_\_\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorUsername};return b(d)},wechat:function(c){var d={val:c.val,reg:/^[a-zA-Z0-9]{1}[a-zA-Z\d_\d-]{5,19}$/,regFlag:!1,regTxt:c.txt||a.errorWechat,nullTxt:c.nullTxt};return b(d)},email:function(c){var d={val:c.val,max:c.max||48,reg:/^([a-zA-Z0-9]+[_|\_|\.|\-]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.|\-]?)*[a-zA-Z0-9]+\.[a-zA-Z]{1,63}$/,regFlag:!1,regTxt:c.txt||a.errorEmail,nullTxt:c.nullTxt};return b(d)},url:function(c){var d={val:c.val,reg:/(http|https):\/\/[^\s]+/,regFlag:!1,regTxt:c.txt||a.errorUrl,nullTxt:c.nullTxt};return b(d)},num:function(c){var d={val:c.val,reg:/\D/g,max:c.max||64,min:c.min||1,regFlag:!0,regTxt:c.txt||a.errorNum,nullTxt:c.nullTxt};return b(d)},qq:function(c){var d={val:c.val,reg:/\D/g,max:c.max||12,min:c.min||6,regFlag:!0,regTxt:c.txt||a.errorQQ};return b(d)},numFloat:function(c){var d={val:c.val,reg:/^\d+(\.\d{1,2})?$/,regFlag:!1,regTxt:c.txt||a.errorFormat};return b(d)},isLowLetter:function(c){var d={val:c.val,reg:/^[a-z]+$/,regFlag:!1,regTxt:c.txt||a.lowLetter};return b(d)},pwd:function(c){var d={val:c.val,reg:/^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?![\-_]+$)[0-9A-Za-z]{6,18}$/,regFlag:!1,regTxt:c.txt||a.errorPwd};return b(d)},cellphone:function(a){var c={val:a.val,reg:/^((\d{3,4}-\d{7,14}))|(^1(3|4|5|7|8)\d{9})$/,regFlag:!1,regTxt:a.txt||"号码有误"};return b(c)},ipError:function(a){var c={val:a.val,reg:/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/,regFlag:!1,regTxt:a.txt||"支持数字和“.”"};return b(c)}};formJudge=function(a){var b=[],d={};for(x in a){var e=a[x];info=c[a[x].key](e),status=!1,"succ"!=info&&(b.push(info),status=!0,d[x]={status:status,txt:info})}if(b.length>0){d.succ=!1;for(i in d)if("succ"!=d[i].txt&&(d[i].status=!0),"true"==d[i].status){document.getElementById(i).focus();var f=document.getElementById(i).offsetTop;document.documentElement.scrollTop=f-70;break}}else d={succ:!0};return d}}(),function(){"use strict";angular.module("app",["app.login"]),angular.module("app.login",[])}(),function(){function a(a,b,c){var d={};return d.loginTimeout=function(a){null!=a&&a.code&&-1002==a.code&&d.logOutCookie()},d.noLogin=function(a){if(angular.isUndefined(a)||-1==a.indexOf("login")){var b=c.getCookie("ryioUid");c.isNullStr(b)&&d.logOutCookie()}},d.logOutCookie=function(){c.setCookie("ryioUid",""),window.localStorage.setItem("ryioUauth",""),c.setCookie("ryioToken",""),c.setCookie("ryioIsSuper",""),window.location.href="/login.html"},d.getInfo=function(c,e,f){f||d.noLogin(c);var g=b.defer(),h="";for(var i in e)h+="&"+i+"="+e[i];-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random(),c+=h;a.get("/api/"+c).success(function(a){d.loginTimeout(a),a.code&&200!=a.code?g.reject(a):g.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),g.reject(a)});return g.promise},d.getInfoByUrl=function(c){d.noLogin();var e=b.defer();a.get(c).success(function(a){d.loginTimeout(a),e.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),e.reject(a)});return e.promise},d.getReportData=function(e,f){d.noLogin();var g=b.defer(),h=c.cloneJSON(f),i=h.appid;delete h.appid;var j="?r="+Math.random();for(var k in h)j+="&"+k+"="+h[k];a.get("/api/report/"+i+"/"+e+j).success(function(a){d.loginTimeout(a),a.code&&200!=a.code?g.reject(a):g.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),g.reject(a)});return g.promise},d.postInfo=function(c,e,f){f||d.noLogin(c);var g=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.post("/api/"+c,e).success(function(a,b){d.loginTimeout(a),a.status=b,a.code&&-5e3==a.code?g.resolve(a):a.code&&-6001==a.code?g.resolve(a):g.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),g.reject(a)});return g.promise},d.postInfoByUrl=function(c,e){d.noLogin();var f=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.post(c,e).success(function(a){f.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),f.reject(a)});return f.promise},d.putInfo=function(c,e){d.noLogin(c);var f=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.put("/api/"+c,e).success(function(a,b){d.loginTimeout(a),a.status=b,a.code&&a.code<0?f.reject(a):f.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),f.reject(a)});return f.promise},d.deleteInfo=function(c){d.noLogin();var e=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.delete("/api/"+c).success(function(a,b){d.loginTimeout(a),a.status=b,e.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),e.reject(a)});return e.promise},d.downFile=function(c,d){var e=b.defer();return-1==c.indexOf("api")&&(c="/api/"+c),a({method:"GET",url:c,params:d,responseType:"arraybuffer"}).success(function(a,b,c){if(204==b)return e.resolve({code:-1}),!1;e.resolve({code:1}),c=c();var d=c.filename,f=c["content-type"],g=document.createElement("a");try{var h=new Blob([a],{type:f}),i=window.URL.createObjectURL(h);g.setAttribute("href",i),g.setAttribute("download",decodeURIComponent(d));var j=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});g.dispatchEvent(j)}catch(k){}}).error(function(a){}),e.promise},d}angular.module("app").factory("HttpService",["$http","$q","UtilService",a])}(),function(){"use strict";function a(){var a={};return a.randRange=function(a,b){return Math.floor(Math.random()*(b-a+1))+a},a.sortArray=function(a,b){return"desc"==b?a.sort(function(a,b){return a==b?0:a>b?-1:1}):a.sort(function(a,b){return a==b?0:a>b?1:-1})},a.getMaxByArray=function(b){var c=a.cloneJSON(b);return c=c.sort(function(a,b){return a==b?0:a>b?-1:1}),c[0]},a.sortArray2=function(a,b,c,d){var e=[],f=a.length;f>0&&(b.filter(function(b,c){for(var d=[],g=0;g<f;g++)d.push(a[g][c]);d.push(b),e.push(d)}),"desc"==d?e.sort(function(a,b){return a[c]==b[c]?0:a[c]>b[c]?-1:1}):e.sort(function(a,b){return a[c]==b[c]?0:a[c]>b[c]?1:-1}),e.filter(function(c,d){b[d]=c.pop();for(var e=0;e<f;e++)a[e][d]=c[e]}))},a.sumArray=function(a){for(var b=0,c=0;c<a.length;c++)null!=a[c]&&(b+=a[c]);return b},a.decimal2=function(a,b){b=b||2;for(var c="1",d=1,e=0;e<b;e++)c+="0";d=parseInt(c);var f=Math.round(a*d)/d,g=f+"",h=g.indexOf(".");return h>0&&g.substring(h,g.length)>2&&(g=g.substring(0,g.length-2),f=parseFloat(g)),f},a.getDay=function(a){var b=new Date,c=function(a){var b=a.getFullYear(),c=a.getMonth()+1,d=a.getDate();return c<10&&(c="0"+c),d<10&&(d="0"+d),b+"-"+c+"-"+d},d=b.getTime()+864e5*a;return b.setTime(d),c(b)},a.getLastMonthsDate=function(a,b){var c=new Date(a);return c.setMonth(c.getMonth()-Number(b)),c.Format("yyyy-MM-dd")},a.getYearWeekList=function(a){if(void 0===a){a=(new Date).getFullYear()}var b=[],c=new Date(a,0,1),d=c.getDay(),e=new Date(a,11,31);d=0==d?7:d;var f=c.clone().addDays(7-d),g=0;for(d>0&&d<5&&(g=1,b.push({week:g,date:f,year:a}));f<e&&!e.isSameDay(f);)g++,f=f.clone().addDays(7),b.push({week:g,date:f,year:a});var h=new Date(a,11,31),i=h.getDay();return i>0&&i<4&&b.pop(),b},a.getYearWeekCount=function(b){return a.getYearWeekList(b).length},a.getNowWeekNum=function(){var a=Date.today(),b=new Date(a.getFullYear(),0,1),c=b.getDay(),d=b.clone(),e=0;c>0&&(d=d.addDays(8-c),e=1);var f=diffDate(d,a);return Math.ceil(f/7)+e},a.cloneJSON=function(a){var b=Object.prototype.toString.call(a);return b.indexOf("Object")>-1?jQuery.extend(!0,{},a):b.indexOf("Array")>0?a.concat():a},a.splitString=function(a,b){for(var c="",d=0,e=new RegExp(/[^\x00-\xff]/),f=0;f<a.length;f++){var g=a.charAt(f);d+=e.test(g)?2:1,d<=b&&(c+=g)}return{str:c,len:d}},a.merge=function(){return Array.prototype.concat.apply([],arguments)},a.isNullStr=function(a){return!(!angular.isUndefined(a)&&""!=a&&null!=a&&"null"!=a)},a.getStr=function(a){return a<10?"0"+a:a+""},a.setCookie=function(a,b,c){$.cookie(a,b,{expires:c,path:"/",secure:!1,raw:!1})},a.getCookie=function(a){return $.cookie(a)},a.setItem=function(a,b){window.localStorage.setItem(a,b)},a.getItem=function(a){return window.localStorage.getItem(a)},a.copyTxt=function(a){$(a).select();var b=!1;try{b=document.execCommand("Copy","false",null)}catch(c){b=!1}return b},a.randRangeId=function(){if(a.getCookie("tkRmdId"))return a.getCookie("tkRmdId");var b=(new Date).getTime()+a.randRange(3,5);return a.setCookie("tkRmdId",b,1095),b},a.randDeviceId=function(){if(localStorage.getItem("rmdDeviceId"))return localStorage.getItem("rmdDeviceId");var b=(new Date).getTime()+a.randRange(3,10);return localStorage.setItem("rmdDeviceId",b),b},a.getAppkey=function(){return"0d401839250deff23daf62fd49a444cb"},a.getTKAppkey=function(){return"f0f251af10e66a0c94d2e923d8863105"},a.getLogRoot=function(){return"http://log.reyun.com"},a.deviceInfo=function(){return{versions:function(){var a=navigator.userAgent;navigator.appVersion;return{trident:a.indexOf("Trident")>-1,presto:a.indexOf("Presto")>-1,webKit:a.indexOf("AppleWebKit")>-1,gecko:a.indexOf("Gecko")>-1&&-1==a.indexOf("KHTML"),mobile:!!a.match(/AppleWebKit.*Mobile.*/),ios:!!a.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),android:a.indexOf("Android")>-1||a.indexOf("Linux")>-1,iPhone:a.indexOf("iPhone")>-1,iPad:a.indexOf("iPad")>-1,webApp:-1==a.indexOf("Safari")}}(),language:(navigator.browserLanguage||navigator.language).toLowerCase()}},a.operatorSystem=function(){var a=navigator.userAgent,b="Win32"==navigator.platform||"Windows"==navigator.platform,c="Mac68K"==navigator.platform||"MacPPC"==navigator.platform||"Macintosh"==navigator.platform||"MacIntel"==navigator.platform;if(c)return"Mac";if("ipad"==a.match(/ipad/i))return"ipad";if("iPhone"==navigator.platform)return"iPhone";if("X11"==navigator.platform&&!b&&!c)return"Unix";var d=String(navigator.platform).indexOf("Linux")>-1,e="android"==a.toLowerCase().match(/android/i);if(d)return e?"Android":"Linux";if(b){if(a.indexOf("Windows NT 5.0")>-1||a.indexOf("Windows 2000")>-1)return"Win2000";if(a.indexOf("Windows NT 5.1")>-1||a.indexOf("Windows XP")>-1)return"WinXP";if(a.indexOf("Windows NT 5.2")>-1||a.indexOf("Windows 2003")>-1)return"Win2003";if(a.indexOf("Windows NT 6.0")>-1||a.indexOf("Windows Vista")>-1)return"WinVista";if(a.indexOf("Windows NT 6.1")>-1||a.indexOf("Windows 7")>-1)return"Win7";if(a.indexOf("Windows NT 6.2")>-1||a.indexOf("Windows 8")>-1)return"Win8"}return"other"},a.getBrowser=function(a){var b=window.navigator.userAgent,c="",d="";b.toLowerCase().indexOf("micromessenger")>-1?c="wechat":/Firefox/g.test(b)?(b=b.split(" "),c="Firefox",d=b[b.length-1].split("/")[1]):/MSIE/g.test(b)?(c="IE",b.indexOf("QQBrowser")>-1&&(c="QQBrowser"),b=b.split(";"),d=b[1].split(" ")[2]):/Opera/g.test(b)?(b=b.split(" "),c="Opera",d=b[b.length-1].split("/")[1]):/Chrome/g.test(b)?(b=b.split(" "),c="Chrome",d=b[b.length-2].split("/")[1]):/^apple\s+/i.test(navigator.vendor)?(b=b.split(" "),c="Safair",d=b[b.length-2].split("/")[1]):c="others";var e=d.split(".");return e.length>1&&(d=e[0]+"."+e[1]),a?c+d:c},a}angular.module("app").factory("UtilService",a)}(),function(){function a(a,b,c,d,e){a.showLoading=function(){document.getElementById("sysLoad").style.display="block"},a.hideLoading=function(){document.getElementById("sysLoad").style.display="none"},a.forgetMessage=e.search().message,a.forgetToken=a.forgetMessage.substring(0,32),a.forgetId=a.forgetMessage.substring(32,100),c.get("api/reged/validatepass?message="+a.forgetMessage).success(function(b){"success"==b.content?a.resetTpye="yes":a.resetTpye="no"}),c.get("api/reged/find/"+a.forgetId).success(function(b){a.registerEmail=b.content.email,a.isShowSend=!b.content.isSuperUser&&1!=b.content.status}),a.sendEmail=function(){a.showLoading(),c.get("/api/reged/sendforgetpwdemail?email="+a.registerEmail).success(function(b){a.hideLoading(),"账号不存在"==b.content.message?a.tip={send:{status:!0,txt:"邮箱未注册过账号"}}:"success"==b.content.message?a.resetTpye="send":a.tip={send:{status:!0,txt:"邮件发送失败"}}})},a.loginEmail=function(){var b=a.registerEmail.split("@");window.open("http://mail."+b[1])},a.hasReged=!0,a.save=function(){var b={token:a.forgetToken,newpwd:a.newpwd},d={newpwd:{key:"pwd",val:b.newpwd},crmpwd:{key:"pwd",val:a.crmpwd}};return a.tip=formJudge(d),1==a.tip.succ&&(a.newpwd!=a.crmpwd?(a.tip={crmpwd:{status:!0,txt:"两次密码不一致,请重新输入"}},!1):(a.errorMessage="",a.showLoading(),void c.post("api/reged/updatepwd/"+a.forgetId,b).success(function(b){a.hideLoading(),"invalid request"==b.content?a.tip={newpwd:{status:!0,txt:"非法链接"}}:"update success"==b.content?window.location.href="login.html":"out of date or repeat Upwd request"==b.content?a.tip={newpwd:{status:!0,txt:"链接已失效"}}:"密码不能修改"==b.content?a.tip={newpwd:{status:!0,txt:"该账号密码不可修改"}}:a.tip={newpwd:{status:!0,txt:"修改密码失败"}}})))},a.keyEvt=function(b){13==b.keyCode&&a.save()}}angular.module("app.login").controller("resetpwdCtrl",["$scope","UtilService","$http","$interval","$location",a])}();
\ No newline at end of file
!function(){var a={isNull:"必填",errorLetter:"含特殊字符或过长",errorLength:"40字符以内",errorFormat:"格式不对",lowLetter:"输入小写字母",errorEmail:"请输入48位以内的正确邮箱",errorNum:"输入数字",errorPwd:"仅支持数字,大小写字母,且至少包含其中2种,长度限制为6-18位",errorQQ:"请输入正确QQ号码",errorCrm:"两次密码不一致,请重新输入",errorCompany:"公司名称,支持48位内汉字或96位内字母数字",errorUsername:"您的姓名,支持16位内汉字或32位内字母数字",errorWechat:"6-20位数字,字母,下划线或中划线,须以数字或字母开头",errorUrl:"以http://或https://开头的合法url",errorName:"名称不合法或过长"},b=function(a){if(!a.val)return a.nullTxt||"必填";var b=a.val.replace(/[^\x00-\xff]/g,"00");return a.min&&b.length<a.min||a.max&&b.length>a.max?a.regTxt:a.regFlag&&a.reg.test(a.val)?a.regTxt:a.regFlag||!a.reg||a.reg.test(a.val)?"succ":a.regTxt},c={isNull:function(c){var d={val:c.val,name:c.txt||a.isNull};return b(d)},nameLen:function(c){var d={val:c.val,max:c.max||40,min:c.min||2,regTxt:c.txt||a.errorLength};return b(d)},isMaxLen:function(a){var c={val:a.val,max:a.max||40,min:a.min||2,regTxt:a.txt};return b(c)},name:function(c){var d={val:c.val,max:c.max||40,min:c.min||2,reg:/[`~!@#\$%\^\&\*\(\)\+<>\?:"\{\},\.\\\/;'\[\]]/im,regFlag:!0,regTxt:c.txt||a.errorLetter};return b(d)},nameFormat:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~\\!(\)《》?:·“ ”,。、;`‘’【】——……¥「」/a-zA-Z0-9\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorName};return b(d)},spcname:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[a-zA-Z0-9_\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorLetter};return b(d)},spcname1:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[a-zA-Z0-9_\-\·\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorLetter};return b(d)},spcname2:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[a-zA-Z0-9_\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorLetter};return b(d)},keyword:function(c){var d={val:c.val,max:c.max||40,min:c.min||1,reg:/^[a-zA-Z0-9\.\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorLetter};return b(d)},companyname:function(c){var d={val:c.val,max:c.max||96,reg:/^[a-zA-Z0-9_\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorCompany};return b(d)},username:function(c){var d={val:c.val,max:c.max||32,reg:/^[a-zA-Z0-9_\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorUsername};return b(d)},numLetter:function(c){var d={val:c.val,max:c.max||32,reg:/^[a-zA-Z0-9\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorUsername,nullTxt:c.nullTxt};return b(d)},onelink:function(c){var d={val:c.val,max:c.max||40,reg:/^[a-zA-Z0-9_\_\-\u4E00-\u9FA5]+$/,regFlag:!1,regTxt:c.txt||a.errorUsername};return b(d)},wechat:function(c){var d={val:c.val,reg:/^[a-zA-Z0-9]{1}[a-zA-Z\d_\d-]{5,19}$/,regFlag:!1,regTxt:c.txt||a.errorWechat,nullTxt:c.nullTxt};return b(d)},email:function(c){var d={val:c.val,max:c.max||48,reg:/^([a-zA-Z0-9]+[_|\_|\.|\-]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.|\-]?)*[a-zA-Z0-9]+\.[a-zA-Z]{1,63}$/,regFlag:!1,regTxt:c.txt||a.errorEmail,nullTxt:c.nullTxt};return b(d)},url:function(c){var d={val:c.val,reg:/(http|https):\/\/[^\s]+/,regFlag:!1,regTxt:c.txt||a.errorUrl,nullTxt:c.nullTxt};return b(d)},num:function(c){var d={val:c.val,reg:/\D/g,max:c.max||64,min:c.min||1,regFlag:!0,regTxt:c.txt||a.errorNum,nullTxt:c.nullTxt};return b(d)},qq:function(c){var d={val:c.val,reg:/\D/g,max:c.max||12,min:c.min||6,regFlag:!0,regTxt:c.txt||a.errorQQ};return b(d)},numFloat:function(c){var d={val:c.val,reg:/^\d+(\.\d{1,2})?$/,regFlag:!1,regTxt:c.txt||a.errorFormat};return b(d)},isLowLetter:function(c){var d={val:c.val,reg:/^[a-z]+$/,regFlag:!1,regTxt:c.txt||a.lowLetter};return b(d)},pwd:function(c){var d={val:c.val,reg:/^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?![\-_]+$)[0-9A-Za-z]{6,18}$/,regFlag:!1,regTxt:c.txt||a.errorPwd};return b(d)},cellphone:function(a){var c={val:a.val,reg:/^((\d{3,4}-\d{7,14}))|(^1(3|4|5|7|8)\d{9})$/,regFlag:!1,regTxt:a.txt||"号码有误"};return b(c)},ipError:function(a){var c={val:a.val,reg:/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/,regFlag:!1,regTxt:a.txt||"支持数字和“.”"};return b(c)}};formJudge=function(a){var b=[],d={};for(x in a){var e=a[x];info=c[a[x].key](e),status=!1,"succ"!=info&&(b.push(info),status=!0,d[x]={status:status,txt:info})}if(b.length>0){d.succ=!1;for(i in d)if("succ"!=d[i].txt&&(d[i].status=!0),"true"==d[i].status){document.getElementById(i).focus();var f=document.getElementById(i).offsetTop;document.documentElement.scrollTop=f-70;break}}else d={succ:!0};return d}}(),function(){"use strict";angular.module("app",["app.login"]),angular.module("app.login",[])}(),function(){function a(a,b,c){var d={};return d.loginTimeout=function(a){null!=a&&a.code&&-1002==a.code&&d.logOutCookie()},d.noLogin=function(a){if(angular.isUndefined(a)||-1==a.indexOf("login")){var b=c.getCookie("ryioUid");c.isNullStr(b)&&d.logOutCookie()}},d.logOutCookie=function(){c.setCookie("ryioUid",""),window.localStorage.setItem("ryioUauth",""),c.setCookie("ryioToken",""),c.setCookie("ryioIsSuper",""),window.location.href="/login.html"},d.getInfo=function(c,e,f){f||d.noLogin(c);var g=b.defer(),h="";for(var i in e)h+="&"+i+"="+e[i];-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random(),c+=h;a.get("/api/"+c).success(function(a){d.loginTimeout(a),a.code&&200!=a.code?g.reject(a):g.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),g.reject(a)});return g.promise},d.getInfoByUrl=function(c){d.noLogin();var e=b.defer();a.get(c).success(function(a){d.loginTimeout(a),e.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),e.reject(a)});return e.promise},d.getReportData=function(e,f){d.noLogin();var g=b.defer(),h=c.cloneJSON(f),i=h.appid;delete h.appid;var j="?r="+Math.random();for(var k in h)j+="&"+k+"="+h[k];a.get("/api/report/"+i+"/"+e+j).success(function(a){d.loginTimeout(a),a.code&&200!=a.code?g.reject(a):g.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),g.reject(a)});return g.promise},d.postInfo=function(c,e,f){f||d.noLogin(c);var g=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.post("/api/"+c,e).success(function(a,b){d.loginTimeout(a),a.status=b,a.code&&-5e3==a.code?g.resolve(a):a.code&&-6001==a.code?g.resolve(a):g.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),g.reject(a)});return g.promise},d.postInfoByUrl=function(c,e){d.noLogin();var f=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.post(c,e).success(function(a){f.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),f.reject(a)});return f.promise},d.putInfo=function(c,e){d.noLogin(c);var f=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.put("/api/"+c,e).success(function(a,b){d.loginTimeout(a),a.status=b,a.code&&a.code<0?f.reject(a):f.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),f.reject(a)});return f.promise},d.deleteInfo=function(c){d.noLogin();var e=b.defer();-1==c.indexOf("?")?c+="?r="+Math.random():c+="&r="+Math.random();a.delete("/api/"+c).success(function(a,b){d.loginTimeout(a),a.status=b,e.resolve(a.content||a)}).error(function(a){d.loginTimeout(a),e.reject(a)});return e.promise},d.downFile=function(c,d){var e=b.defer();return-1==c.indexOf("api")&&(c="/api/"+c),a({method:"GET",url:c,params:d,responseType:"arraybuffer"}).success(function(a,b,c){if(204==b)return e.resolve({code:-1}),!1;e.resolve({code:1}),c=c();var d=c.filename,f=c["content-type"],g=document.createElement("a");try{var h=new Blob([a],{type:f}),i=window.URL.createObjectURL(h);g.setAttribute("href",i),g.setAttribute("download",decodeURIComponent(d));var j=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});g.dispatchEvent(j)}catch(k){}}).error(function(a){}),e.promise},d}angular.module("app").factory("HttpService",["$http","$q","UtilService",a])}(),function(){"use strict";function a(){var a={};return a.randRange=function(a,b){return Math.floor(Math.random()*(b-a+1))+a},a.sortArray=function(a,b){return"desc"==b?a.sort(function(a,b){return a==b?0:a>b?-1:1}):a.sort(function(a,b){return a==b?0:a>b?1:-1})},a.getMaxByArray=function(b){var c=a.cloneJSON(b);return c=c.sort(function(a,b){return a==b?0:a>b?-1:1}),c[0]},a.sortArray2=function(a,b,c,d){var e=[],f=a.length;f>0&&(b.filter(function(b,c){for(var d=[],g=0;g<f;g++)d.push(a[g][c]);d.push(b),e.push(d)}),"desc"==d?e.sort(function(a,b){return a[c]==b[c]?0:a[c]>b[c]?-1:1}):e.sort(function(a,b){return a[c]==b[c]?0:a[c]>b[c]?1:-1}),e.filter(function(c,d){b[d]=c.pop();for(var e=0;e<f;e++)a[e][d]=c[e]}))},a.sumArray=function(a){for(var b=0,c=0;c<a.length;c++)null!=a[c]&&(b+=a[c]);return b},a.decimal2=function(a,b){b=b||2;for(var c="1",d=1,e=0;e<b;e++)c+="0";d=parseInt(c);var f=Math.round(a*d)/d,g=f+"",h=g.indexOf(".");return h>0&&g.substring(h,g.length)>2&&(g=g.substring(0,g.length-2),f=parseFloat(g)),f},a.getDay=function(a){var b=new Date,c=function(a){var b=a.getFullYear(),c=a.getMonth()+1,d=a.getDate();return c<10&&(c="0"+c),d<10&&(d="0"+d),b+"-"+c+"-"+d},d=b.getTime()+864e5*a;return b.setTime(d),c(b)},a.getLastMonthsDate=function(a,b){var c=new Date(a);return c.setMonth(c.getMonth()-Number(b)),c.Format("yyyy-MM-dd")},a.getYearWeekList=function(a){if(void 0===a){a=(new Date).getFullYear()}var b=[],c=new Date(a,0,1),d=c.getDay(),e=new Date(a,11,31);d=0==d?7:d;var f=c.clone().addDays(7-d),g=0;for(d>0&&d<5&&(g=1,b.push({week:g,date:f,year:a}));f<e&&!e.isSameDay(f);)g++,f=f.clone().addDays(7),b.push({week:g,date:f,year:a});var h=new Date(a,11,31),i=h.getDay();return i>0&&i<4&&b.pop(),b},a.getYearWeekCount=function(b){return a.getYearWeekList(b).length},a.getNowWeekNum=function(){var a=Date.today(),b=new Date(a.getFullYear(),0,1),c=b.getDay(),d=b.clone(),e=0;c>0&&(d=d.addDays(8-c),e=1);var f=diffDate(d,a);return Math.ceil(f/7)+e},a.cloneJSON=function(a){var b=Object.prototype.toString.call(a);return b.indexOf("Object")>-1?jQuery.extend(!0,{},a):b.indexOf("Array")>0?a.concat():a},a.splitString=function(a,b){for(var c="",d=0,e=new RegExp(/[^\x00-\xff]/),f=0;f<a.length;f++){var g=a.charAt(f);d+=e.test(g)?2:1,d<=b&&(c+=g)}return{str:c,len:d}},a.merge=function(){return Array.prototype.concat.apply([],arguments)},a.isNullStr=function(a){return!(!angular.isUndefined(a)&&""!=a&&null!=a&&"null"!=a)},a.getStr=function(a){return a<10?"0"+a:a+""},a.setCookie=function(a,b,c){$.cookie(a,b,{expires:c,path:"/",secure:!1,raw:!1})},a.getCookie=function(a){return $.cookie(a)},a.setItem=function(a,b){window.localStorage.setItem(a,b)},a.getItem=function(a){return window.localStorage.getItem(a)},a.copyTxt=function(a){$(a).select();var b=!1;try{b=document.execCommand("Copy","false",null)}catch(c){b=!1}return b},a.randRangeId=function(){if(a.getCookie("tkRmdId"))return a.getCookie("tkRmdId");var b=(new Date).getTime()+a.randRange(3,5);return a.setCookie("tkRmdId",b,1095),b},a.randDeviceId=function(){if(localStorage.getItem("rmdDeviceId"))return localStorage.getItem("rmdDeviceId");var b=(new Date).getTime()+a.randRange(3,10);return localStorage.setItem("rmdDeviceId",b),b},a.getAppkey=function(){return"0d401839250deff23daf62fd49a444cb"},a.getTKAppkey=function(){return"f0f251af10e66a0c94d2e923d8863105"},a.getLogRoot=function(){return"http://log.reyun.com"},a.deviceInfo=function(){return{versions:function(){var a=navigator.userAgent;navigator.appVersion;return{trident:a.indexOf("Trident")>-1,presto:a.indexOf("Presto")>-1,webKit:a.indexOf("AppleWebKit")>-1,gecko:a.indexOf("Gecko")>-1&&-1==a.indexOf("KHTML"),mobile:!!a.match(/AppleWebKit.*Mobile.*/),ios:!!a.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),android:a.indexOf("Android")>-1||a.indexOf("Linux")>-1,iPhone:a.indexOf("iPhone")>-1,iPad:a.indexOf("iPad")>-1,webApp:-1==a.indexOf("Safari")}}(),language:(navigator.browserLanguage||navigator.language).toLowerCase()}},a.operatorSystem=function(){var a=navigator.userAgent,b="Win32"==navigator.platform||"Windows"==navigator.platform,c="Mac68K"==navigator.platform||"MacPPC"==navigator.platform||"Macintosh"==navigator.platform||"MacIntel"==navigator.platform;if(c)return"Mac";if("ipad"==a.match(/ipad/i))return"ipad";if("iPhone"==navigator.platform)return"iPhone";if("X11"==navigator.platform&&!b&&!c)return"Unix";var d=String(navigator.platform).indexOf("Linux")>-1,e="android"==a.toLowerCase().match(/android/i);if(d)return e?"Android":"Linux";if(b){if(a.indexOf("Windows NT 5.0")>-1||a.indexOf("Windows 2000")>-1)return"Win2000";if(a.indexOf("Windows NT 5.1")>-1||a.indexOf("Windows XP")>-1)return"WinXP";if(a.indexOf("Windows NT 5.2")>-1||a.indexOf("Windows 2003")>-1)return"Win2003";if(a.indexOf("Windows NT 6.0")>-1||a.indexOf("Windows Vista")>-1)return"WinVista";if(a.indexOf("Windows NT 6.1")>-1||a.indexOf("Windows 7")>-1)return"Win7";if(a.indexOf("Windows NT 6.2")>-1||a.indexOf("Windows 8")>-1)return"Win8"}return"other"},a.getBrowser=function(a){var b=window.navigator.userAgent,c="",d="";b.toLowerCase().indexOf("micromessenger")>-1?c="wechat":/Firefox/g.test(b)?(b=b.split(" "),c="Firefox",d=b[b.length-1].split("/")[1]):/MSIE/g.test(b)?(c="IE",b.indexOf("QQBrowser")>-1&&(c="QQBrowser"),b=b.split(";"),d=b[1].split(" ")[2]):/Opera/g.test(b)?(b=b.split(" "),c="Opera",d=b[b.length-1].split("/")[1]):/Chrome/g.test(b)?(b=b.split(" "),c="Chrome",d=b[b.length-2].split("/")[1]):/^apple\s+/i.test(navigator.vendor)?(b=b.split(" "),c="Safair",d=b[b.length-2].split("/")[1]):c="others";var e=d.split(".");return e.length>1&&(d=e[0]+"."+e[1]),a?c+d:c},a}angular.module("app").factory("UtilService",a)}(),function(){function a(a,b,c,d){a.hasReged=!0}angular.module("app.login").controller("successCtrl",["$scope","UtilService","$http","$interval",a])}();
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
.userIconN,.userinfo{vertical-align:middle}body,html{font-family:'PingFang SC','Microsoft Yahei';width:100%;height:100%;overflow:hidden;overflow-y:auto;font-size:14px;margin:0;padding:0;background-color:#2d2d35;color:#a3a3b2}.alphaDiv,.tkioWrap,.trackText,.trackingiobg{overflow:hidden}a{text-decoration:none;outline:0}.left{float:left}.menuIcon,.right{float:right}.clear{clear:both}.hand{cursor:pointer}.infoTips{position:fixed;left:50%;top:50%;background-color:#fff;border-radius:10px;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%);z-index:9999;color:#000;padding:20px}.homeWrap,.userinfo{position:relative}.btn1,.menuIcon{border:1px solid #fff}.padBottom80{padding-bottom:80px}.topWrap{width:100%;height:30px;background-color:#333}.menuWrap{width:100%;height:56px;background-color:#1b1b21}.menuIcon{width:50px;height:28px;line-height:28px;border-radius:3px;color:#fff;margin-right:10px;display:inline-block;text-align:center;margin-top:13px}.content{width:1200px;height:auto;margin:0 auto}.content .logoimg{width:115px;float:left;height:56px;background:url(../images/logo1.png) left 0 top 15px no-repeat;background-size:124px 26px;cursor:pointer;color:#fff;line-height:56px;font-size:12px;padding-left:135px}.content .menuList{width:745px;float:left;height:56px;color:#fff;padding:0 30px 0 15px}.content .menuList a{display:block;line-height:56px;color:#fff;float:right;margin:0 15px}.userinfo{float:right;height:56px;margin-right:30px;line-height:34px;cursor:pointer}.logoutIcon,.userInfoBottom.third .appLIcon,.usetIcon{cursor:pointer;margin-right:5px}.userIconN{width:24px;height:24px;background-image:url(../images/set.png);background-repeat:no-repeat;display:inline-block;margin-top:16px;background-position:-77px -6px}.userIconN.active,.userIconN:hover{background-position:-77px -40px}.userInfoWrap{border-radius:3px;width:280px;position:absolute;z-index:505;right:-10px;background-color:#fff;border:1px solid #c9c9c9;top:90%;box-sizing:border-box;line-height:34px}.userInfoWrap:before{position:absolute;content:"";background:url(../images/arrow.png) center bottom no-repeat;width:12px;bottom:100%;right:15px;height:12px}.userInfoDetail{padding:20px 20px 0}.userInfoWrap .userInfoDetail .itemInfo{line-height:25px;padding-bottom:15px}.userInfoBottom{height:38px;background-color:#f6f6f6;border-top:1px solid #e2e2e2;line-height:38px}.userInfoBottom .itemInfo:first-child{border-right:1px solid #e2e2e2}.userInfoWrap .itemInfo.light{color:#666}.userInfoBottom .itemInfo{width:49%;box-sizing:border-box;text-align:center;display:inline-block}.usetIcon{background-position:-26px -73px;width:16px;height:16px}.appLIcon,.logoutIcon,.usetIcon{background-image:url(../images/set_home.png);background-repeat:no-repeat;display:inline-block;vertical-align:middle;margin-top:-2px}.logoutIcon{background-position:-7px -74px;width:13px;height:15px}.usetIcon.active{background-position:-69px -73px}.logoutIcon.active{background-position:-50px -74px}.userInfoWrap .itemInfo.light:hover{color:#4186ec}.userInfoBottom.third .itemInfo:nth-child(1){width:95px}.userInfoBottom.third .itemInfo:nth-child(2){border-right:1px solid #e2e2e2;width:95px}.userInfoBottom.third .itemInfo:nth-child(3){width:70px}.userInfoBottom.third .appLIcon{background-position:-115px -74px;width:13px;height:13px}.userInfoBottom.third .appLIcon.active,.userInfoBottom.third .appLIcon:hover{background-position:-138px -74px}.bodyWrap{width:100%;height:auto;background:#fff}.demoWrap{height:525px}.demoLeft,.demoRight{height:360px;padding-top:80px}.demoLeft{float:left;width:260px;margin-left:120px;padding-left:80px;background:url(../images/demo.png) center bottom no-repeat}.demoRight{float:right;width:340px;margin-right:200px}.demoTitle{font-size:22px;color:#00a9e8;line-height:22px;margin-bottom:20px}.demoText{font-size:14px;color:#666;line-height:20px;margin-bottom:10px}.demoIs{padding-top:90px;width:285px;height:32px;line-height:32px;padding-left:42px;font-size:20px;color:#666;margin-bottom:14px;background:url(../images/demoRight.png) left top 90px no-repeat}.blueCricle{width:20px;height:20px;border-radius:10px;background:#00a9e8;text-align:center;color:#fff;display:inline-block;margin-right:10px}.demoLine,.demoLine input,.imgCode input{height:32px;display:inline-block}.demoForm{margin-top:40px}.demoLine{width:298px;border:1px solid #c9c9c9;border-radius:3px}.demoLine input{width:285px;line-height:32px;color:#333;padding-left:10px;outline:0;border:none;background:0 0}.imgCode{padding:40px 40px 30px}.imgCode input{width:110px;border:1px solid #c9c9c9;border-radius:3px;float:left;line-height:32px;padding-left:10px}.imgCode .yawarp img{width:86px;height:36px;display:inline-block;float:right}.imgCode .errorWrap{text-align:left;margin-top:35px;width:215px;height:32px}.codeClick,.imgCode .sendMessage{text-align:center;cursor:pointer}.imgCode .sendMessage{margin:0 auto;width:68px;height:32px;line-height:32px;border:none;border-radius:3px;background:#00a9e8;color:#fff}.btn,.openTipWin{border-radius:3px}::-webkit-input-placeholder{color:#999}:-moz-placeholder{color:#999}::-moz-placeholder{color:#999}:-ms-input-placeholder{color:#999}.must{display:inline-block;padding-left:5px;color:#dd6264}.code{width:190px}.codeClick{position:relative;top:-46px;left:200px;width:100px;height:20px;border-left:1px solid #c9c9c9;color:#00a9e8}.gruy{color:#999}.errorWrap{width:300px;height:20px;text-align:right}.error{line-height:20px;color:#dd6264;font-size:12px}.btn{margin-top:-20px;width:300px;height:34px;background:#00a9e8;line-height:34px;text-align:center;color:#fff;cursor:pointer}.openTipWin{position:fixed;left:50%;top:30%;background-color:#fff;width:295px;margin-left:-148px;z-index:998}.openBgDiv{background:rgba(0,0,0,.6);position:fixed;left:0;top:0;width:100%;height:100%;z-index:997}.openTipWin .title{color:#000;font-size:16px;line-height:16px;text-align:center;margin:0;padding:20px 0 30px}.openTipWin .titleLogin{color:#000;font-size:14px;line-height:14px;text-align:center;margin:0;padding:40px 0}.openTipWin .closeGray{height:40px;position:absolute;top:0;right:0}.closeGray{background:url(../images/close.png) center center no-repeat;height:100%;width:40px;cursor:pointer}.tkioWrap,.trackingiobg,.trackingiobgColor{width:100%;height:400px}.trackingiobg{background:url(../images/nav.png) center no-repeat;position:relative;z-index:503}.trackingiobgColor{position:relative;top:-400px;z-index:499}.trackingiobgColor .left{background:#ac2df0;width:50%;height:400px;float:left}.trackingiobgColor .right{background:#8268fc;width:50%;height:400px;float:right}.trackingioview{width:1080px;height:220px;margin:0 auto;position:relative;z-index:502;background:url(../images/trackingioIcon.png) center right 60px no-repeat;background-size:380px 220px;padding:90px 60px;text-align:left;color:#fff}.trackingioview .tkiotilte{font-size:36px;font-family:Arial;margin-bottom:0;margin-top:20px}.trackingioview .tkiotilte span{font-size:18px}.trackingioview .tkiotext{width:500px;font-size:18px;line-height:30px;margin:0;padding:10px 0 40px}.tkiobutton{width:100%;height:42px}.tkiobutton .button{width:140px;height:42px;line-height:42px;text-align:center;display:inline-block;font-size:16px;margin-right:17px}.btn1{background:#fff;color:#b126ef;border-radius:4px;cursor:pointer}.btn2{background:0 0;color:#fff;border:1px solid #fff;border-radius:4px}.mainTitle{font-size:26px;line-height:26px;padding:60px 0 50px;color:#2e2e2e;text-align:center}.channelMore,.channelText{font-size:16px;text-align:center}.gruybg{background:#fafafa}.userWrap{width:1184px;height:auto;padding:0 8px 58px}.userWrap img{width:124px;height:98px;border:1px solid #e0dee0;border-radius:2px;float:left;margin:0 11px 22px}.channelWrap{width:1184px;height:auto;padding:0 8px 66px}.channelMore,.channelWrap img{width:124px;height:98px;display:inline-block;margin:0 11px 22px;float:left}.channelWrap img{border:1px solid #e0dee0;border-radius:2px}.channelMore{border:1px solid #e0dee0;border-radius:2px;line-height:98px;color:#666;font-family:"Arial Regular";background:#fff;cursor:pointer}.channelMore:hover{color:#fff;background:url(../images/channelmore.png) center center no-repeat}.channelText{color:#6b747f;line-height:24px;margin:0;padding-top:34px}.trackText{display:block;width:270px;height:235px;border-radius:5px;float:left;cursor:pointer;margin:0 15px 60px}.trackText img{margin:0 auto;display:block}.trackTextTitle{font-size:19px;line-height:19px;text-align:center;margin:0;padding:22px 0 12px;color:#2e2e2e}.trackTextText{font-size:14px;line-height:20px;text-align:left;padding:0 30px;color:#6b747f}.proWrap{width:1200px;height:276px;margin:0 auto;padding-bottom:80px}.demoListLeft li p,.demoListright li p,.proText{margin:0}.pro1{background:url(../images/pro1.png) center left 100px no-repeat}.pro2{background:url(../images/pro2.png) center right 100px no-repeat}.proLeft{padding:75px 100px 0 655px}.proRight{padding:75px 645px 0 100px}.proTitle{font-size:18px;color:#2e2e2e;line-height:18px;padding-bottom:16px;margin:0}.proText{font-size:14px;color:#6b747f;line-height:20px}.demoListTitle{padding-top:50px;font-size:22px;color:#00a9e8;text-align:left}.demoListNotes{padding-top:15px;font-size:14px;color:#666}.demoList{font-size:16px;color:#333;padding-top:40px;padding-bottom:10px}.demoList a{color:#00a9e8;font-size:12px;padding-left:20px}.demoListLeft,.demoListright{width:598px;padding:22px 0 0}.demoListWarp{background:#fbfbfb;border:1px solid #c9c9c9;border-radius:3px}.demoListLeft{float:left;border-right:1px solid #c9c9c9}.demoListright{float:right}.demoListLeft li,.demoListright li{width:33%;display:inline-block;float:left;text-align:center;padding-bottom:22px}.demoListLeft li .num,.demoListright li .num{font-size:14px;color:#666;padding-bottom:6px}.demoListLeft li .name,.demoListright li .name{font-size:12px;color:#999;padding-bottom:2px}footer{width:100%;height:auto;background:#2e2e2e;position:relative}.footermenu{width:100%;max-width:1200px;height:120px;margin:0 auto;border-bottom:1px dashed #3a3a3a;padding-top:40px;display:flex;flex-direction:row;justify-content:center}.PhoneTalkDiv,.talkWarp{border:1px solid #cfd2d9}.fmenu{width:120px;height:100px}.fmenu p{margin:0}.fmenu .ftitle{line-height:14px;font-size:14px;color:#d3d3d3;text-align:center;padding-bottom:18px}.fmenu .flink,.fmenu .flink a{color:#8a8a8a}.fmenu .flink{font-size:12px;line-height:12px;padding-bottom:10px;text-align:center}.fmenu .flink a:hover{color:#d3d3d3}.footermenu .erweima{width:150px;height:76px;background:url(../images/erweima.png) top right no-repeat;background-size:76px 76px;text-align:right;font-size:12px;color:#8a8a8a;padding-right:86px}.footertext,.frinedText,.talkWarp{text-align:center}.footertext{width:1200px;height:146px;margin:0 auto;font-size:12px;line-height:22px;color:#7f7f7f;padding-top:15px}.frinedLink{display:flex;flex-wrap:warp;justify-content:center;margin-bottom:5px}.footertext p{margin:0}.frinedLink .link1{width:51px;height:26px}.frinedLink .link2{width:88px;height:26px}.frinedLink .link3{width:116px;height:26px}.frinedLink .link4{width:70px;height:26px}.frinedLink .link5{width:58px;height:26px}.frinedLink .link6{width:67px;height:26px}.frinedLink .link7{width:60px;height:26px}.frinedLink .link8{width:83px;height:26px}.frinedLink .link9{width:58px;height:26px}.frinedLink .link10{width:74px;height:26px}.frinedLink .link11{width:95px;height:22px}.frinedLink img{margin:0 10px}.frinedText{font-size:14px;height:20px;padding-bottom:10px}.footerphone{display:none;padding:30px;line-height:20px;color:#7f7f7f;font-size:12px}.footerphone p{padding-bottom:15px}.talkWarp{cursor:pointer;width:50px;height:67px;padding-top:15px;background:#fff;position:fixed;right:30px;bottom:40px;line-height:22px;font-size:14px;color:#333;z-index:1000}.arrowRight{float:left;width:18px;height:146px;background:url(../images/allow-right.png) left top 95px no-repeat;margin-left:-1px}.PhoneTalk{width:300px;height:146px;position:relative;z-index:1000;left:-300px;top:-130px}.PhoneTalkDiv{float:left;width:248px;height:86px;background:#fff;padding:30px 0 30px 30px}.PhoneTalkDiv .phone{font-size:16px;line-height:20px;color:#333;text-align:left;margin-bottom:20px}.PhoneTalkDiv .phone img{width:24px;height:20px;margin-right:12px;position:relative;top:3px}.PhoneTalkDiv .QQtalk{font-size:14px;color:#fff;text-align:center}.PhoneTalkDiv .QQtalk a{display:block;float:left;width:104px;height:40px;line-height:40px;color:#fff;border-radius:3px;margin-right:10px;background:#36b8ff}.PhoneTalkDiv .QQtalk img{margin-right:8px;position:relative;top:3px}.alphaDiv{width:100%;background-color:rgba(0,0,0,.2);position:fixed;top:0;left:0;bottom:0;z-index:3}.spinner{margin:100px auto;width:100px;height:100px;text-align:center;font-size:10px;position:fixed;z-index:999999;top:50%;left:50%;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%)}.spinner>div{background-color:#00a9e8;height:100%;width:10px;display:inline-block;-webkit-animation:stretchdelay 1.2s infinite ease-in-out;-moz-animation:stretchdelay 1.2s infinite ease-in-out;animation:stretchdelay 1.2s infinite ease-in-out}.spinner .rect2{-webkit-animation-delay:-1.1s;-moz-animation-delay:-1.1s;animation-delay:-1.1s}.spinner .rect3{-webkit-animation-delay:-1s;-moz-animation-delay:-1s;animation-delay:-1s}.spinner .rect4{-webkit-animation-delay:-.9s;-moz-animation-delay:-.9s;animation-delay:-.9s}.spinner .rect5{-webkit-animation-delay:-.8s;-moz-animation-delay:-.8s;animation-delay:-.8s}@-webkit-keyframes stretchdelay{0%,100%,40%{transform:scaleY(.4);-webkit-transform:scaleY(.4)}20%{transform:scaleY(1);-webkit-transform:scaleY(1)}}@-moz-keyframes stretchdelay{0%,100%,40%{-moz-transform:scaleY(.4);transform:scaleY(.4);-webkit-transform:scaleY(.4)}20%{-moz-transform:scaleY(1);transform:scaleY(1);-webkit-transform:scaleY(1)}}@keyframes stretchdelay{0%,100%,40%{-moz-transform:scaleY(.4);transform:scaleY(.4);-webkit-transform:scaleY(.4)}20%{-moz-transform:scaleY(1);transform:scaleY(1);-webkit-transform:scaleY(1)}}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
body,html{font-family:'PingFang SC','Microsoft Yahei';width:100%;height:100%;overflow:hidden;overflow-y:auto;font-size:14px;margin:0;padding:0;background-color:#01010c;color:#a3a3b2}.activationEmail,.registerActivation,.registerTitle{font-size:20px;color:#fefefe}a{text-decoration:none;outline:0}.activationText a,.copyright a:hover,.sendChange li a,.under{text-decoration:underline}.left{float:left}.infoWrap,.right{float:right}.ml10{margin-left:10px}.hand{cursor:pointer}.loginWrap{margin-top:50px;position:relative;overflow:hidden}.infoWrap{width:300px;margin-right:200px;padding-bottom:60px}.loginPosition{position:relative;z-index:996}.register .infoWrap{margin:0 auto;float:none}.registerTitle{width:40px;margin:0 auto;line-height:60px}.registerActivation{width:100px;margin:0 auto;line-height:60px;text-align:center}.activationEmail{width:600px;margin:68px auto 0;text-align:center;line-height:52px}.activationText{width:500px;margin:0 auto 18px;text-align:center;font-size:12px;line-height:12px;color:#a3a3b2}.activationText a{color:#fff;cursor:pointer}.activationButton,.failureButton{width:130px;height:36px;background:#00a9e8;line-height:36px;font-size:14px;color:#fefefe;text-align:center;border-radius:3px;display:block;cursor:pointer}.activationButton{margin:0 auto 100px}.failureButton{margin:0 auto}.failureError{text-align:center;margin:10px auto 0;color:#dd6264;font-size:12px}.failureBttton,.successButton{margin-top:100px}.failureBttton{background:#878796}.sendChange{width:600px;margin:0 auto;text-align:center;font-size:14px;color:#a3a3b2}.sendChange li{margin:0 25px;list-style:none;display:inline-block}.sendChange li a{color:#fefefe;cursor:pointer}.oldUser{margin-top:70px}.openTipWin{position:fixed;left:50%;top:30%;background-color:#fff;border-radius:3px;width:470px;margin-left:-235px;z-index:998}.openTipWin .title,.openTipWin .titleLogin{color:#000;font-size:16px;line-height:16px;text-align:center;margin:0}.openBgDiv{background:rgba(0,0,0,.6);position:fixed;left:0;top:0;width:100%;height:100%;z-index:997}.openTipWin .title{padding:20px 0 30px}.openTipWin .titleLogin{padding:40px 0 30px}.openTipWin .titleChannel{color:#999;font-size:14px;line-height:22px;text-align:left;padding:20px 30px 10px}.titleChannelButton{cursor:pointer;display:block;margin:0 auto;border:none;border-radius:3px;width:80px;height:34px;line-height:34px;text-align:center;color:#fff;font-size:14px;background:#00a9e8}.openTipWin .titleChannel1{text-align:center!important;font-size:12px;line-height:16px;padding:5px 20px 10px}.openTipWin .titleChannel1 a{color:#00a9e8}.openTipWin .closeGray{height:40px;position:absolute;top:0;right:0}.closeGray,.popchannellist .title .right{background:url(../images/close.png) center center no-repeat;height:100%;width:40px;cursor:pointer}.formDetailItem{float:none;display:inline-block;vertical-align:middle}.formDetailItem .iptlabel{width:110px;color:#666;text-align:right;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding-right:10px;display:inline-block}.formDetailItem .iptform{border:1px solid #c9c9c9;color:#333;padding-left:10px;height:34px;line-height:34px;display:inline-block;vertical-align:middle;width:300px;border-radius:3px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.errorWrap,.forgetInput,.logo,.pwdInput{display:block}.error,.iptform,.loginBtn,.mapTitle,.mapWrap{box-sizing:border-box}.formDetailItem .em{width:414px;height:20px}.formDetailItem .em em{float:right;font-style:normal;text-align:right;height:20px;line-height:20px}.forgetText{width:500px;margin:80px auto 22px;text-align:center;font-size:12px;line-height:12px;color:#a3a3b2}.forgetInput{width:500px;margin:0 auto;position:relative;left:-25px}.pwdActivation{width:80px;margin:0 auto 40px;line-height:60px;font-size:20px;color:#fefefe}.forgetInput button,.resetpwdButton{color:#fff;cursor:pointer;background:#00a9e8}.resetpwdButton{width:114px;height:32px;margin:40px auto 0;font-size:14px;border-radius:3px;line-height:32px;text-align:center}.pwdInput{width:500px;height:34px;margin:0 auto 20px}.pwdInput .iptlabel{width:130px;font-size:14px;font-family:SimHei}.pwdInput .error{width:300px;font-style:normal;text-align:left;height:20px;line-height:20px;white-space:normal;position:relative;top:-27px;left:435px}.pwdInput .error.long{top:-37px}.forgetInput button{width:54px;height:34px;line-height:34px;text-align:center;border:none;border-radius:3px;margin-left:5px}.openBtnGroup{width:200px;margin:10px auto 20px}.openBtnGroup .btn,.openBtnGroup .btn1{width:116px;height:32px;margin:0 auto;border-radius:3px;line-height:32px;color:#fff;text-align:center;cursor:pointer}.openBtnGroup .btn{background:#00a9e8}.openBtnGroup .btn1{background:#a9a9a9}.infoItem{margin-bottom:20px;position:relative}.logo{width:224px;height:48px;background:url(../images/logo1.png) center center no-repeat;margin:0 auto;cursor:pointer}.logoMB{margin-bottom:30px}.iptform{width:300px;height:40px;line-height:40px;background-color:#fff;border-radius:30px;color:#333;border:none;padding:0 15px;outline:0}.errorWrap{height:30px}.error{color:#dd6264;height:30px;font-size:12px;text-align:left;line-height:30px;padding-left:20px}.copyright,.loginBtn,.mapTitle,.regedover,.spinner{text-align:center}.infoItem .error{position:absolute;left:100%;top:0;min-width:150px;white-space:nowrap}.mapWrap,.mapWrap #mapInfo{left:0;position:absolute;top:0}.iptform.yma{width:178px}.yawarp{width:100px;height:40px;float:right}.yawarp img{width:100%;height:100%;border:none}.checkbox,.formIcon{background:url(../images/auth.png) no-repeat;display:inline-block;vertical-align:middle}.checkbox{background-position:-1px -59px;width:14px;height:14px;margin-right:5px}.checkbox.active{background-position:-1px -77px}.loginBtn{width:300px;height:40px;line-height:40px;background-color:#00a9e8;border-radius:30px;color:#fff;border:none;cursor:pointer;font-size:16px}.forgetWrap{margin-top:30px}.register .forgetWrap{width:130px;margin:30px auto 0}.under{cursor:pointer;color:#fefefe}.mapWrap{bottom:0;right:500px;padding:105px 160px 0}.copyright,.copyright.regt{bottom:10px}.mapWrap #mapInfo{width:100%;height:100%;z-index:499}.mapTitle{width:200px;height:105px;position:absolute;top:0;left:50%;right:500px;margin-left:-100px;padding:0;z-index:500}.mapTitle p{margin:0}.mapDate{font-size:14px;line-height:14px;color:#676783;padding-bottom:10px}.mapNum{color:#33cefa;font-size:32px;line-height:32px;padding:0 10px 14px;border-bottom:1px solid #676783}.mapTop{color:#676783;font-size:14px;padding-top:26px}.copyright{position:absolute;right:0;left:0;line-height:50px;color:#6d6d7d;font-size:12px;z-index:995}.copyright.static{position:static}.copyright a{color:inherit}.regedover{margin-top:100px;color:#fff}.regedover .succIcon{background:url(../images/succ.png) center top no-repeat;width:30px;height:30px;display:inline-block;vertical-align:middle;margin-right:5px}.regedover .tipsucc{font-size:20px}.regedover p{line-height:30px;font-size:12px}.alphaDiv{width:100%;background-color:rgba(0,0,0,.2);position:fixed;top:0;left:0;bottom:0;z-index:3;overflow:hidden}.spinner{margin:100px auto;width:100px;height:100px;font-size:10px;position:fixed;z-index:999999;top:50%;left:50%;transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%)}.spinner>div{background-color:#00a9e8;height:100%;width:10px;display:inline-block;-webkit-animation:stretchdelay 1.2s infinite ease-in-out;-moz-animation:stretchdelay 1.2s infinite ease-in-out;animation:stretchdelay 1.2s infinite ease-in-out}.spinner .rect2{-webkit-animation-delay:-1.1s;-moz-animation-delay:-1.1s;animation-delay:-1.1s}.spinner .rect3{-webkit-animation-delay:-1s;-moz-animation-delay:-1s;animation-delay:-1s}.spinner .rect4{-webkit-animation-delay:-.9s;-moz-animation-delay:-.9s;animation-delay:-.9s}.spinner .rect5{-webkit-animation-delay:-.8s;-moz-animation-delay:-.8s;animation-delay:-.8s}@-webkit-keyframes stretchdelay{0%,100%,40%{transform:scaleY(.4);-webkit-transform:scaleY(.4)}20%{transform:scaleY(1);-webkit-transform:scaleY(1)}}@-moz-keyframes stretchdelay{0%,100%,40%{-moz-transform:scaleY(.4);transform:scaleY(.4);-webkit-transform:scaleY(.4)}20%{-moz-transform:scaleY(1);transform:scaleY(1);-webkit-transform:scaleY(1)}}@keyframes stretchdelay{0%,100%,40%{-moz-transform:scaleY(.4);transform:scaleY(.4);-webkit-transform:scaleY(.4)}20%{-moz-transform:scaleY(1);transform:scaleY(1);-webkit-transform:scaleY(1)}}
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>灵犀</title>
<meta name="keywords" content="热云数据 灵犀" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0" name="viewport">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="stylesheet" href="styles/login.css?r=0.033736487152054906">
<script src="scripts/change.js?r=0.2593456201720983"></script>
<script src="scripts/regcom8.js?r=0.6496113596949726"></script>
<script src="scripts/success.js?r=0.6613843908999115"></script>
</head>
<body ng-app="app" ng-controller="successCtrl">
<div class="loginWrap register">
<div class="activationWrap">
<a class="logo" href="login.html"></a>
<div class="registerActivation">已激活成功</div>
<a href="/login.html"><div class="activationButton successButton">立即登录</div></a>
</div>
</div>
<div class="copyright regt" ng-class="{'static':!hasReged}">
2017 TrackingIO.com All Rights Reserved <a href="http://www.miitbeian.gov.cn/" target="_blank">京ICP备14021832号</a>
</div>
<div class="alphaDiv" id="sysLoad" style="display: none;z-index: 99;">
<div class="spinner">
<div class="rect1"></div>
<div class="rect2"></div>
<div class="rect3"></div>
<div class="rect4"></div>
<div class="rect5"></div>
</div>
</div>
</body>
</html>
<div class="productList">
<div class="productLi productLiNo" ng-show="Prostatus==-1">
<p class="productStatus">审核中</p>
<p class="productTitle">TrackingIO</p>
<p class="productText">广告与行为分析平台</p>
<div class="productHover">
<p class="productAlert">您的账户正在审核中,一般情况72小时内可以审核完成,有问题请联系技术支持邮箱 support@reyun.com</p>
</div>
</div>
<div class="productLi productLiNo" ng-show="Prostatus==-2">
<p class="productStatus">未开通</p>
<p class="productTitle">TrackingIO</p>
<p class="productText">广告与行为分析平台</p>
<div class="productHover">
<div class="btnpro" ng-click="postApply()">点击申请</div>
</div>
</div>
</div>
\ No newline at end of file
<div ng-if="pageFlag==1">
<div class="nodata">
<h5>还没有看单</h5>
</div>
<div class="btn3" style="float:none;width:200px;margin:0 auto;text-align: center;" ng-click="showWin(1)" ng-if="hasEditPower()">创建第一个看单</div>
<dl class="tipsList statustip">
<dt>1. 什么是“行业看单”?</dt>
<dd>
行业看单提供的是的常用可分类的数据分析指标的查看,目前主要由事件,漏斗,留存构成,可以根据指标类型分类成不同的行业菜单,便于查看,我们叫做看单。
</dd>
<dt>2. 怎么使用行业看单?</dt>
<dd>
通过TrackingIO强大的数据分析,行业看单可以帮助解决以下问题:<br/>
&nbsp;&nbsp;&nbsp;&nbsp;a. 做详细的app数据分析,你可以快速组建成行业数据菜单,便于产品,市场,运营查看。<br/>
&nbsp;&nbsp;&nbsp;&nbsp;b. 你可以选择行业优秀者分享的看单模版,快速组建自己的行业数据看单。<br/><br/>
</dd>
<dd>
关于行业看单,你可以根据产品特性合理配置看单名称和表单内容,创建出符合自己行业标准化的数据图表。比如电商,可以创建购买数据分析,包含购买用户趋势,购买金额趋势等,帮您分析用户的购买行为。
</dd>
</dl>
</div>
<div ng-if="pageFlag==2">
<div class="finshedWrap">
<span class="finshedIcon"></span>
<span class="finshLabel">已完成</span>
</div>
<div class="btn3" style="float:none;width:100px;margin:0 auto;text-align: center;" ng-click="lookMyMenu()">查看我的看单</div>
<div class="descWrap">
<p class="pTitle">该操作会自动帮你添加{{getEventTypeCount(reyunList)}}</p>
<ol class="olList">
<li ng-repeat="ry in reyunList track by $index">{{ry.name}}</li>
</ol>
</div>
</div>
<!-- 看单缩略图 -->
<div class="clearfix" ng-if="pageFlag==3 && viewFlag>0">
<ul class="customNav">
<li ng-class="{'active':viewFlag==3}" ng-click="changeViewFlag(3)">行业看单模板</li>
<!-- <li ng-class="{'active':viewFlag==2}" ng-click="changeViewFlag(2)">我的收藏</li> -->
<li ng-class="{'active':viewFlag==1}" ng-click="changeViewFlag(1)">我的看单</li>
</ul>
<div class="filterBox clearfix" ng-show="viewFlag!=1">
<!-- <div class="iconBtn right p" ng-class="{'active':selfilter}" ng-click="selfilter=!selfilter" ng-mouseleave='selfilter=false;'>
<span class="filterIcon"></span>排序
<div class="optionList rightLayout" ng-show="selfilter" style="max-width:100px;width:100px;">
<dl class="dlOperTitle popmenu">
<dd ng-click="menuOrder(1)" ng-class="{'active':orderFlag==1}">默认排序</dd>
<dd ng-click="menuOrder(2)" ng-class="{'active':orderFlag==2}">按匹配度</dd>
<dd ng-click="menuOrder(3)" ng-class="{'active':orderFlag==3}">按使用次数</dd>
<dd ng-click="menuOrder(4)" ng-class="{'active':orderFlag==4}">按收藏次数</dd>
</dl>
</div>
</div> -->
<div class="searchWrap">
<input type="text" class="searchIpt" ng-model="searchTxt" placeholder="输入搜索关键词">
</div>
<div class="right">
<select-list style="margin-right: 20px;height: 32px;line-height: 32px;background-color: #ffffff;" meau-info="industryList" meau-id="industryId" meau-data="industryInit" meau-name="industryNameInit"></select-list>
</div>
</div>
<div class="filterBox clearfix" ng-if="viewFlag==1">
<p class="pinfo left">您的账号仅支持创建{{maxMenu}}个看单,如需增加,请联系商务</p>
<div class="iconBtn right" ng-click="showWin(1)" ng-class="{'disable':menuInfoList.length>=maxMenu}" ng-if="hasEditPower()">
<span class="additionIcon"></span>添加一个新看单
</div>
</div>
<div class="defineBox">
<!-- drag-order drag-id="menu.id" drag-info="{{menu}}" drag-flag="menu" -->
<div class="defineBoxItem" ng-repeat="menu in menuInfoList | filter:{'name':searchTxt} | filter:{'categoryName':industryInitName} track by $index" ng-class-even="'rightLayoutWrap'" ng-style="{'width':viewFlag==1?'33.333%':''}">
<div class="chartBox p" ng-style="{'min-height':viewFlag!=1?'320px':''}" style="padding-top: 10px;">
<!-- <div class="dropIcon p" ng-class="{'active':selme}" ng-click="selme=!selme" ng-mouseleave='selme=false;' ng-show="viewFlag==1">
<div class="optionList" ng-show="selme" style="max-width:140px;width:140px;">
<dl class="dlOperTitle popmenu">
<dd ng-click="menuDetail(menu)">查看详情</dd>
<dd ng-click="showWin(2,menu)" ng-if="hasEditPower()">修改看单名称</dd>
<dd ng-click="showWin(4,menu)" ng-if="!menu.hasShare && menu.templates.length>0 && !menu.source">分享到行业看单模板</dd>
<dd ng-click="doShare(menu)" ng-if="menu.hasShare && !menu.source">取消分享</dd>
<dd ng-click="showWin(3,menu)" ng-if="hasEditPower()">删除该看单</dd>
</dl>
</div>
</div>
<div class="dropIcon p" ng-class="{'active':selme1}" ng-click="selme1=!selme1" ng-mouseleave='selme1=false;' ng-show="viewFlag==2 && !menu.shareValid">
<div class="optionList" ng-show="selme1" style="max-width:100px;width:100px;">
<dl class="dlOperTitle popmenu">
<dd ng-click="doFavoriteByMenu(menu)">取消收藏</dd>
</dl>
</div>
</div> -->
<h5 class="boxTitle" ng-mouseenter="menu.editShow=true" ng-mouseleave="menu.editShow=false" style="cursor: pointer;padding: 10px 0px;">{{menu.name}}
<span class="eidtbtn eidt" ng-click="showWin(2,menu)" ng-if="hasEditPower() && viewFlag==1" ng-show="menu.editShow"></span>
<span ng-if="viewFlag==3" style="color: #999;font-size: 13px;">({{menu.categoryName}})</span>
<span class="delbtn del right p" ng-click="showWin(3,menu)" ng-if="hasEditPower() && viewFlag==1 && menu.editShow">
</span>
</h5>
<!-- <p class="pinfo" ng-if="viewFlag>1">{{getShareName(menu)}} {{menu.shareDate | date:'yyyy-MM-dd'}}</p> -->
<div class="snviewWrap hand" ng-click="menuDetail(menu)" ng-if="viewFlag!=2 || menu.shareValid" style="margin-top:10px">
<div ng-repeat="temp in menu.templates track by $index" ng-if="$index<(viewFlag==1?4:6)" style="display: inline-block;text-align: center;">
<div class="snviewItem" ng-class="temp.type?temp.type:temp.menuType">
</div>
<div class="nowrap" style="color: #999;width:149px;margin:0px auto;margin-bottom:24px;">{{temp.name}}</div>
</div>
</div>
<div class="lostInfo" ng-if="viewFlag==2 && !menu.shareValid">
<span class="wrongIcon"></span>
已被删除
</div>
<div ng-if="menu.templates.length == 0 && viewFlag==1 && !demoU" style="text-align:center;">
<span class="emptyImg"></span>
<div style="margin-bottom: 20px;color:#999999;">当前还未添加报表</div>
<div class="iconBtn" ng-click="showWin(6,menu)" style="margin-left:0px;color:#666666;">
<span class="additionIcon"></span>添加报表
</div>
</div>
<div class="boxBottom" ng-if="viewFlag==1" style="display: inline;">
<span class="item">{{menu.createAccountName}}</span>
<span class="item" style="margin-left: 10px;">创建于{{menu.createDate | date:'yyyy-MM-dd'}}</span>
</div>
<div class="boxBottom" ng-if="viewFlag==1">
<span class="item">共{{menu.templates.length}}张报表</span>
</div>
<!-- <div class="boxBottom" ng-if="viewFlag>1">
<span class="item">{{menu.useNumber}}人使用</span>
<span class="item">{{menu.favoriteNumber}}人已收藏</span>
<span class="item">{{menu.matchPercent*100 | numFixed}}%匹配度</span>
</div> -->
</div>
</div>
</div>
</div>
<!-- 看单详情 -->
<div class="clearfix" ng-if="pageFlag==4">
<div class="filterBox clearfix p" style="margin-top: 0px;">
<div class="left">
<div class="iconBtn left mr10" style="margin-left: 0px;" ng-click="backToMenu()">
<span class="doBackIcon"></span>返回
</div>
<h5 class="boxTitle left mr10 lh32">
{{currentMenu.name}}
<span ng-click="showWin(2,menu)" ng-if="viewFlag==3" style="color: #999;font-size: 13px;">({{currentMenu.categoryName}})
</span>
</h5>
<!-- <p class="pinfo left lh32" style="margin:0px;">({{getShareName(currentMenu)}}&nbsp;&nbsp;{{currentMenu.shareDate | date:'yyyy-MM-dd'}})</p> -->
</div>
<!-- <div class="right" ng-if="viewFlag!=1 && currentMenu.accountId!=currentAccountId">
<div class="iconBtn" ng-click="changeMatchFlag(1)" ng-class="{'active':matchFlag==1}">
<span class="matchIcon"></span>匹配度详情({{currentMenu.matchPercent*100 | numFixed}}%)
</div>
<div class="iconBtn" ng-class="{'hascollect':currentMenu.hasFavorite}" ng-click="doFavorite()" ng-show="hasEditPower()">
<span class="collectionIcon"></span><span ng-if="currentMenu.hasFavorite">已</span>收藏({{currentMenu.favoriteNumber}})
</div>
<div class="iconBtn" ng-class="{'hascollect':currentMenu.hasFavorite}" ng-if="!hasEditPower()">
<span class="collectionIcon"></span><span ng-if="currentMenu.hasFavorite">已</span>收藏({{currentMenu.favoriteNumber}})
</div>
<div class="iconBtn" ng-click="changeMatchFlag(2)" ng-class="{'active':matchFlag==2}" ng-if="!currentMenu.hasUsed && hasEditPower()">
<span class="additionIcon"></span>加入我的看单({{currentMenu.useNumber}})
</div>
<div class="iconBtn disable" ng-if="currentMenu.hasUsed">
已加入我的看单
</div>
</div> -->
<my-datepicker class="dateRange rightDate right" init-day="date" ng-show="viewFlag==1"><span>{{datestr}}</span></my-datepicker>
<div class="right rigthM" style="padding-top: 0px;" ng-show="viewFlag==1">
<ul class="btnGroup">
<!-- <li ng-class="{'active':timeFlag=='hour','dis':disTimeFlag.indexOf('hour')>-1}" ng-click="changeTimeFlag('hour')">时</li> -->
<li ng-class="{'active':timeFlag=='day','dis':disTimeFlag.indexOf('day')>-1}" ng-click="changeTimeFlag('day')" style="padding:8px 15px;"></li>
<li ng-class="{'active':timeFlag=='week','dis':disTimeFlag.indexOf('week')>-1}" ng-click="changeTimeFlag('week')" style="padding:8px 15px;"></li>
<li ng-class="{'active':timeFlag=='month','dis':disTimeFlag.indexOf('month')>-1}" ng-click="changeTimeFlag('month')" style="padding:8px 15px;"></li>
</ul>
</div>
<div class="iconBtn right rigthM imgbtn" style="margin-left: 10px;background-color: #ffffff;padding: 8px 10px;" ng-click="changeCount()" title="一行三张表" ng-show="viewFlag==1">
<div ng-class="{'three':(!showCount || showCount==2),'two':showCount==3}"></div>
</div>
<select-list meau-info="menuInfoList" meau-id="menuId" meau-data="menuInit" meau-name="menuInitName" meau-refresh="typef5" style="background-color: #ffffff;float: right;z-index: 4;"></select-list>
<div class="conditionWin customWin" ng-class="{'c2':matchFlag==1,'c1':false}" ng-show="matchFlag>0">
<div class="sanicon"></div>
<div class="condiCont">
<div class="clearfix mb20" ng-if="matchFlag==2">
<p class="label" style="margin-bottom: 15px">您正在将“{{currentMenu.name}}”加入您的看单?</p>
<div class="openBtnGroup clearfix left">
<div class="btn8" ng-click="changeMatchFlag(0)" style="margin-right:20px;display: inline-block;">取消</div>
<div class="btn3 lh30 oneCenter mybtn" ng-class="{'disable':!canJoin()}" ng-click="addShareMenu()" style="display: inline-block;">确定</div>
</div>
</div>
<p class="pinfo">从行业看单模版加入到看单中心的看单,不能再次分享。</p>
<h5 class="boxTitle mr10 lh32">{{currentMenu.name}}</h5>
<p class="pinfo lh32" style="margin:0px;">
匹配度{{currentMenu.matchPercent*100 | numFixed}}%
<span class="ckblue" ng-click="tds=true" ng-show="!tds && matchFlag==2">查看详情</span>
<span class="ckblue" ng-click="tds=false" ng-show="tds && matchFlag==2">收起</span>
</p>
<div class="tableList" style="background-color: #fff;" ng-show="tds || matchFlag==1">
<table>
<tr>
<th>{{currentMenu.name}}模板</th>
<th>我的事件对应关系</th>
<th>匹配状态</th>
</tr>
<tr ng-repeat="template in currentMenu.templates track by $index">
<td>{{template.name}}</td>
<td>
{{template.eventname}}
<span class="matchEditIcon ml10" ng-show="matchFlag==2 && !template.isMatch" ng-click="editTemplateEvent(template,$index)"></span>
</td>
<td><span ng-class="{true:'matchOkIcon',false:'matchNoIcon'}[template.isMatch]"></span></td>
</tr>
</table>
</div>
<div class="descWrap" style="width:100%;" ng-if="matchFlag==2 && canJoin()">
<p class="pTitle lh32" style="margin-top: 10px;">
该操作会自动帮你添加{{getEventTypeCount(currentMenu.templates)}}
<span class="ckblue" ng-click="tdo=true" ng-show="!tdo">查看详情</span>
<span class="ckblue" ng-click="tdo=false" ng-show="tdo">收起</span>
</p>
<ol class="olList" ng-show="tdo">
<li ng-repeat="temp in currentMenu.templates track by $index">{{temp.name}}</li>
</ol>
</div>
</div>
</div>
</div>
<div class="conditionAlpha" ng-class="{'topAlp':showEditEvent}" ng-show="matchFlag>0" ng-click="changeMatchFlag(0)"></div>
<div class="defineBox defineChartBox">
<!-- drag-order drag-id="temp.info.id" drag-info="{{temp.info}}" -->
<div class="defineBoxItem" ng-repeat="temp in chartDatas track by temp.charts.rmd" ng-class-even="'rightLayoutWrap'" ng-style="{'width':showCount==3?'33.333%':''}" >
<div class="chartBox" style="min-height:455px">
<!-- <div class="dropIcon p" ng-class="{'active':selme}" ng-click="selme=!selme" ng-mouseleave='selme=false;' ng-show="viewFlag==1 && hasEditPower()">
<div class="optionList" ng-show="selme" style="max-width:140px;width:140px;" >
<dl class="dlOperTitle popmenu">
<dd ng-click="reportDetail(temp.info)" ng-if="showMenu(temp.info.menuType) && (!limitInfo.abTest || !limitInfo.abTest.eventstats)">查看详情</dd>
<dd ng-click="showWin(7,temp.info)" ng-if="hasEditPower()">从该看单删除</dd>
</dl>
</div>
</div> -->
<div class="delbtn del right p" ng-show="viewFlag==1 && hasEditPower()" ng-click="showWin(7,temp.info)">
</div>
<div class="right p mr10" style="z-index: 3;" ng-show="temp.chartList.length>0">
<select-list style="margin-top:-5px;height: 31px;line-height: 26px;height:26px;margin-right: 0px;width:80px;background-color:#fbfbfb;color: #666666;border-radius: 0px 3px 3px 0px;border-color: #c9c9c9;" meau-info="temp.chartList" meau-id2="temp.charts.chartTypeId" meau-data="temp.charts.chartTypeInit"></select-list>
</div>
<div class="right p" style="z-index: 3;" ng-show="temp.rateList.length>0 || temp.group_List.length>0" ng-mouseleave="showDrop=false">
<div class="btn" style="margin-top:-5px;height: 31px;line-height:26px;height:26px;margin-right: 0px;background-color:#fbfbfb;color: #666666;border-right: none;border-radius: 3px 0px 0px 3px;border-color: #c9c9c9;" ng-click="showDrop=true;" ng-class="{'active':showDrop}">
<span class="mr10">{{temp.selectName}}</span>
<div class="arrowIcon" style="margin-right:0px;margin-top:10px;"></div>
</div>
<div class="rateWrap" ng-show="showDrop" style="width: 200px;left: 0px;">
<ul class="rateInfo" ng-show="temp.group_List.length==0 || temp.charts.chartType=='table'" style=" width: 95%;">
<li ng-repeat="rate in temp.rateList track by $index" ng-click="changeRate(temp,rate)" ng-class="{'dis':!canAdd(temp,1,rate)}" title="{{substrName(rate)}}">
<span class="checkbox" ng-class="{'active':temp.rateListed.indexOf(rate)>-1}"></span>{{substrName(rate)}}
</li>
</ul>
<ul class="rateInfo" ng-show="temp.group_List.length>0 && temp.charts.chartType!='table'" style=" width: 95%;">
<li ng-show="temp.group_List.length>1 && temp.charts.chartType=='pie'">
<span ng-click="checkAll(temp)">
<span class="checkbox" ng-class="{'active':temp.ischeckall}" style="margin-right: 6px;"></span>全选
</span>
</li>
<li ng-repeat="group in temp.group_List track by $index" ng-click="changeGroup(temp,group)" ng-class="{'dis':!canAdd(temp,2,group)}" title="{{group}}">
<span class="checkbox" ng-class="{'active':temp.grouped_List.indexOf(group)>-1}"></span>{{group}}
</li>
</ul>
</div>
</div>
<h5 class="boxTitle" style="cursor: pointer;"><span ng-click="gotoDetail(temp.info)">{{temp.info.name}}</span></h5>
<div style="height: 80px;text-align: center;">
<div ng-if="temp.info.menuType=='eventstats' && (temp.charts.chartType=='columnstack' || temp.charts.chartType=='line')" style="height:100%;">
<div class="tipDate" ng-if="temp.tooltipChart.length>0">{{temp.tooltipChart[0].name}}</div>
<span ng-repeat="t in temp.tooltipChart track by $index" ng-if="showCount==3?$index<3:$index<4" style="text-align: center;">
<div class="tipVal" ng-style="{'color':t.color,'margin-right':!$last?'20px':''}">
{{getFormatNumber(t.value)}}{{temp.charts.chartConfig.namesub[$index]}}
<div class="chartTip" ng-style="getTipWidth(temp)" title="{{t.seriesName}}">
{{t.seriesName}}
</div>
</div>
</span>
</div>
<div ng-if="temp.charts.chartType=='table' && temp.group_List.length>0" style="text-align:center;">
<select-list style="margin-top:40px;height: 31px;line-height: 26px;margin-right: 0px;width:110px;background-color:#ffffff;border:none;height: 100%;" class="dsSelect" meau-info="temp.dsList" meau-id2="temp.dsId" meau-data="temp.dsInit" icon-type="blue" ng-style="{'width':timeFlag!='day'?'185px':'120px'}"></select-list>
</div>
</div>
<min-chart ng-if="temp.charts.chartType!='table'" chart-data="temp.charts.chartData" chart-tp="temp.charts.chartType" chart-config="temp.charts.chartConfig" chart-loading="temp.charts.chartLoading" chart-back="temp.charts.rmd"></min-chart>
<div style="color:#999;font-size: 12px;text-align: center;margin-top:-20px;" ng-if="temp.charts.chartType=='pie'">
<span ng-show="!temp.charts.chartLoading">{{substrName(temp.charts.chartData.key[0])}}</span>
</div>
<div class="chartWrap clearfix" ng-if="temp.charts.chartType=='table'">
<div class="chartWrapItem">
<is-loading ng-if="channeltopLoading"></is-loading>
<div class="fixedTable" ng-show="!channeltopLoading" big-table fixed-col="1" info-list="temp.infoList" fix-change="temp.fixrefresh" initf5="temp.initrefresh" no-all-scroll="true">
<div class="tableHeader">
<table>
<tr>
<th ng-repeat="title in temp.trendList.name track by $index">
<div id="title_{{$index}}" ng-style="temp.colsStyle[$index]" class="tditem" style="height:23px;line-height:23px;">
{{title}}
<span class="sortWrap" ng-click="temp.reverse=!temp.reverse;orderCol(temp,temp.trendList.columnkey[$index], temp.reverse)">
<span class="ascIcon" ng-class="{'active':temp.sortCol==temp.trendList.columnkey[$index] && !temp.reverse}"></span>
<span class="descIcon" ng-class="{'active':temp.sortCol==temp.trendList.columnkey[$index] && temp.reverse}"></span>
</span>
</div>
</th>
</tr>
</table>
</div>
<div class="tableInfo" style="max-height:234px;min-height:234px;">
<table>
<tr ng-repeat="info in temp.infoList | filter:{'ds':temp.ds} | limitTo:100 track by $index">
<td ng-repeat="col in temp.trendList.columnkey track by $index ">
<div ng-style="temp.colsStyle[0]" class="tditem" ng-if="$index==0" style="height:23px;line-height:23px;">
{{info[col]}}
</div>
<div ng-style="temp.colsStyle[$index]" class="tditem" ng-if="$index>0" style="height:23px;line-height:23px;">
{{info[col] | formatRate:col:temp.trendList.format}}
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
<div class="boxBottom" ng-if="viewFlag!=1" style="top:430px;color: #00a9e8;cursor: pointer;" ng-click="showDetail(temp)" stop-event>埋点及规则</div>
</div>
</div>
<div class="defineBoxItem" ng-class="{'disReport':chartDatas.length>=8}" ng-if="viewFlag<=1 && hasEditPower()" ng-style="{'width':showCount==3?'33.333%':''}">
<div class="chartBox hand" ng-click="showWin(6)" title="{{getMaxTips()}}" style="min-height:455px">
<div class="addReportIcon"></div>
<div class="addReportIconDesc">创建新表单</div>
</div>
</div>
</div>
</div>
<div class="openTipWin" ng-show="winFlag==3 || winFlag==7">
<div class="closeGray" ng-click="closeWin()"></div>
<div class="tipCont">
是否删除&nbsp;&nbsp;“{{delname}}”&nbsp;&nbsp;<span ng-if="winFlag==3">看单</span><span ng-if="winFlag==7">报表</span>
</div>
<div class="openBtnGroup clearfix">
<div class="btn8 mr20" ng-click="closeWin()">取消</div>
<div class="btn8" ng-click="doDelete(winFlag)">确定</div>
</div>
</div>
<div class="openTipWin" ng-show="winFlag==1 || winFlag==2">
<div class="closeGray" ng-click="closeWin()"></div>
<div class="tipCont" style="text-align: left;padding-bottom: 30px;">
<p>请输入您想添加看单的名称:</p>
<div>
<input type="text" class="iptform" ng-model="ename" style="width:300px;" placeholder="最多输入12个汉字">
<div class="btn5 ml10 btnblock conwidth" ng-click="saveMenu()">确定</div>
</div>
</div>
</div>
<div class="openTipWin" ng-if="winFlag==4">
<div class="closeGray" ng-click="closeWin()"></div>
<div class="tipCont">
您正在将您的看单&nbsp;&nbsp;“{{mname}}”&nbsp;&nbsp;分享为“行业看单”?
</div>
<div class="openBtnGroup clearfix">
<div class="btn8 mr20" ng-click="closeWin()">取消</div>
<div class="btn8" ng-click="doShare()">确定</div>
</div>
<div class="descWrap">
<p class="pTitle">分享“行业看单模板”后:</p>
<ol class="olList normal mb20">
<li>您的看单将会展示在行业看单模版。</li>
<li>该操作不会透漏您的数据隐私,数据展示时,会随机乘于一个阿尔法值,该值范围为0.01到100。</li>
</ol>
</div>
</div>
<div class="openTipWin" ng-if="winFlag==5">
<div class="closeGray" ng-click="closeWin()"></div>
<div class="tipCont">
<div class="finshedWrap" style="margin:0px;">
<span class="finshedIcon"></span>
<span class="finshLabel">已成功加入我的看单</span>
</div>
</div>
<div class="openBtnGroup clearfix" style="width:220px;">
<div class="btn3 lh30 mr20" ng-click="lookMyMenu(2)">查看我的看单</div>
<div class="btn8" ng-click="closeWin(1)" style="width:100px;">返回到分享页</div>
</div>
<div class="descWrap">
<p class="pTitle">该操作会自动帮你添加{{getEventTypeCount(currentMenu.templates)}}</p>
<ol class="olList mb20">
<li ng-repeat="temp in currentMenu.templates track by $index">{{temp.name}}</li>
</ol>
</div>
</div>
<div class="openTipWin" ng-if="winFlag==6">
<div class="closeGray" ng-click="closeWin()"></div>
<div class="tipCont" style="text-align: left;padding-bottom: 30px;">
<p>请选择看单类型:</p>
<div class="customType">
<div class="iconBtn" ng-class="{'active':customTypeFlag==1}" ng-click="changeCustomFlag(1)">
<span class="customEventIcon"></span>事件
</div>
<div class="iconBtn" ng-class="{'active':customTypeFlag==2}" ng-click="changeCustomFlag(2)">
<span class="customRetentionIcon"></span>留存
</div>
<div class="iconBtn" ng-class="{'active':customTypeFlag==3}" ng-click="changeCustomFlag(3)">
<span class="customFunnelIcon"></span>漏斗
</div>
</div>
<div style="margin-bottom: 40px;">
<select-list meau-info="typeList" meau-id="typeId" meau-data="typeinit" meau-name="typeInitname" meau-refresh="typef5" style="width:230px;"></select-list>
</div>
<div class="btn3 lh30 oneCenter" ng-click="addReport()">确定</div>
</div>
</div>
<custom-event type="currentTemplate.menuType" event-list="eventList" old-info="currentTemplate.jsonCondition" ng-if="showEditEvent"></custom-event>
<div class="leftTipsSlider" ng-class="{'sliderSw1':isdetail}" stop-event>
<div class="slideHeader" style="height: 44px;line-height: 44px;">
{{custitle}}分析事件埋点及规则
<div class="whiteClose" ng-click="hideDetail()"></div>
</div>
<div style="height:93%;overflow-y: auto;">
<div ng-if="detailInfo.conversion" style="margin-left: 28px;margin-top: 20px;">
<h3>转化有效期:{{detailInfo.conversion}}</h3>
</div>
<div class="spetableList ml30 mr5" ng-repeat="detail in detailInfo.data track by $index">
<div class="mt20 mb10"><h3>{{detail.name}}</h3></div>
<table>
<tr ng-if="detail.name!='分组查看维度'">
<th ng-repeat="title in detail.key track by $index">
{{title}}
</th>
</tr>
<tr ng-repeat="info in detail.value track by $index">
<td ng-repeat="col in detail.key track by $index">
{{info[$index]}}
</td>
</tr>
</table>
</div>
</div>
</div>
\ No newline at end of file
<div class="p" ng-show="defineList.length>0 || addFirst">
<div class="conditionBox clearfix p pb20">
<div class="left">
<div class="selList" ng-class="{'active':selme,'noright':hasEditPower()}" ng-click="selme=!selme;" ng-mouseleave="selme=false;">
<span ng-if="(currentDefine.id || currentDefine.id==0 || !showEventWin) && !showTempLook">{{define.name}}</span>
<span class="ckhand dark" ng-if="(!currentDefine.id && currentDefine.id!=0 && showEventWin) || showTempLook">{{addTitName}}</span>
<div class="arrowIcon"></div>
<div class="optionList even" ng-show="selme" style="width:320px;z-index:7;">
<dl class="dlOperTitle bbb" ng-if="hasEditPower()">
<dd ng-click="addComplexEvent(0)" ng-class="{'active':isShowCache}">{{addTitName}}</dd>
</dl>
<div ng-show="defineList.length>5" class="searchWrap ml10 searchSpec clearfix" style="float:none;width:300px;" stop-event>
<input type="text" class="searchIpt selectIpt" style="width:300px;" ng-model="seatxt" placeholder="关键字搜索">
</div>
<ul>
<li ng-repeat="m in defineList | filter:{'name':seatxt} track by $index" ng-click="clickDefine(m)" ng-class="{'active':m.id == define.id && !isShowCache}" title="{{m.name}}" class="p">
{{m.name}}<span class="delIcon s1" ng-click="deleteDefine(m)" stop-event ng-if="hasEditPower()"></span>
</li>
</ul>
</div>
</div>
<div class="btn8 dark btnblock btnNo" ng-class="{'active':currentDefine.id && showEventWin,'dis':(!define.id && !isShowCache) || (!isEditInfo && !isShowCache)}" ng-click="addComplexEvent(1,(!currentDefine.id && currentDefine.id!=0 && showEventWin) || showTempLook)" ng-show="hasEditPower()">编辑</div>
</div>
<div class="right">
<!-- range-days="7" -->
<my-datepicker class="dateRange rightDate" init-day="date" operation-sel="define.id>0 || isShowCache"><span>{{datestr}}</span></my-datepicker>
</div>
<div class="conditionWin eventBox" ng-show="showEventWin" ng-class="{'edit':currentDefine.id}" id="evtBox" style="z-index:6;">
<div class="sanicon"></div>
<span style="position: absolute;left:40px;top:25px;">显示</span>
<div class="p mb20" ng-repeat="ex in currentEvent track by $index" ng-show="ex.show!=false">
<span class="ml27"></span>
<span class="changeIcon" ng-click="changeForm(ex)"></span>
<span style="position:relative;">
<input type="text" class="iptform" id="expression_{{$index}}" ng-model="ex.expressionName" style="width:500px;" ng-click="changeExpression(ex,$index)" stop-event ng-show="ex.expression" ng-style="{'border-color': ex.error || ex.extip?'#e74646':''}" ng-mousedown="getMouseXY($event)" ng-keydown="watchKey(ex,$event)">
<span class="error" style="position: absolute;left: 0px;top:27px;">{{ex.extip}}</span>
</span>
<select-t-list meau-info="eventList" meau-id2="ex.eventId" meau-data="ex.eventInit" meau-name="eventinitname" meau-typekey="['nature','virtual']" meau-typename="['自然事件','虚拟事件']" keyid="id" keyname="name" meau-refresh="ex.evtrefresh" ng-show="!ex.expression" meau-red="ex.eventerror"></select-t-list>
<select-list meau-info="ex.epropertyList" meau-id2="ex.propertyId" meau-data="ex.propertyinit" meau-name="ex.propertyinitname" keyid="id" keyname="name" meau-refresh="ex.prorefresh" ng-show="!ex.expression && ex.propertyShow" meau-red="ex.proerror"></select-list>
<select-list meau-info="ex.targetList" meau-id2="ex.targetId" meau-data="ex.targetinit" meau-name="ex.targetinitname" keyid="id" keyname="name" meau-refresh="ex.tarrefresh" ng-show="!ex.expression && ex.targetShow" meau-red="ex.tarerror"></select-list>
<span class="ml20 mr5">命名为</span>
<span style="position:relative;">
<input type="text" class="iptform" ng-model="ex.name" placeholder="请输入指标的名称" ng-style="{'border-color': ex.nameerror?'#e74646':''}">
<span class="error" style="position: absolute;left: 0px;top:27px;">{{ex.tip.name.txt}}</span>
</span>
<span class="ml20 mr5" ng-show="ex.expression"></span>
<select-list ng-show="ex.expression" meau-info="formatList" meau-id2="ex.format_id" meau-data="ex.formatInit" meau-name="formatinitname" keyid="format" keyname="name" style="width:80px;" meau-refresh="evtrefresh"></select-list>
<span class="ml5" ng-show="ex.expression">显示</span>
<span class="deleteIcon" ng-show="getEventNum()>1" ng-click="removeEvent(ex)"></span>
</div>
<div id="optionList" class="optionList" style="width:200px;min-width:200px;max-width:200px;" ng-show="showProList && epropertyList.length>0">
<ul>
<div ng-show="epropertyList.length>5" class="searchWrap" style="width: 100%;margin-top:5px;margin-bottom: 5px;float:left;box-sizing: border-box;padding:0px 5px;" stop-event>
<input type="text" class="searchIpt selectIpt" ng-model="filterSearch" placeholder="关键字搜索" style="width:100%;border:1px solid #c9c9c9;">
</div>
<div ng-repeat="type in typeKey track by $index" ng-class="{'border':$index>0 && haslist(type)}" ng-show="haslist(type) && typeKey.length>0">
<div class="liTypeTitle" ng-if="typeName[$index]!='' && ((virtual==type || nature==type) || !filterSearch)">{{typeName[$index]}}</div>
<li ng-repeat="event in epropertyList | filter:{'name':filterSearch}" ng-click="getProperty(event)" ng-if="event.type == type || event.dimensionType == type" ng-class="{'active':$index==eventIndex}">{{event.name}}</li>
</div>
<li ng-repeat="event in epropertyList | filter:{'name':filterSearch}" ng-click="getProperty(event)" ng-style="{'border-bottom': event.border?'1px solid #dcdcdc':'','height':'35px'}" ng-show="event.type!='nature' && event.type!='virtual'" ng-class="{'active':$index==eventIndex}">{{event.name}}</li>
</ul>
</div>
<div class="addAttrBtn" style="border-bottom: 1px solid #dcdcdc;padding-left: 40px;padding-bottom: 20px;" ng-class="{'dis':getEventNum()>=10}">
<span ng-click="addEvents()"><span class="addAttrIcon"></span><span class="ckhand">新增</span></span>
</div>
<div class="p mb20 mt20" style="border-bottom: 1px solid #dcdcdc;padding-left: 40px;padding-bottom: 20px;">
<span class="mr10"></span>
<input type="text" class="iptform" value="总体" disabled="true">
<span class="ml10">查看</span>
<span class="newaddIcon" ng-class="{'adddis':getGroupByNum()>=3}" ng-click="addGroupby()"></span>
<div class="p mb20 mt20" ng-repeat="gby in groupbys track by $index" ng-show="gby.show!=false">
<span class="mr10"></span>
<select-t-list meau-info="dimensionList" meau-id2="gby.dimensionId" meau-name="dimensionname" meau-typekey="['event','profile']" meau-typename="['事件属性','用户属性']" meau-data="gby.dimenInit" meau-type="gby.type" keyid="param" keyname="alias" meau-red="gby.groerror" ></select-t-list>
<span class="ml10">查看</span>
<span class="deleteIcon" ng-click="removeGroupby(gby)"></span>
</div>
</div>
<div style="padding-bottom: 20px;" ng-class="{'conditionEventItem':event.params && getEventParamsNum(event)>5 && showFlow}">
<div class="profileItemWrap p" ng-mouseleave="changeFlow()">
<div class="operInfo" style="bottom:35px;" ng-show="event.params && getEventParamsNum(event)>1">
<div class="operBtn" ng-click="changeRel()">{{eventRel}}</div>
</div>
<div class="profileItem" ng-repeat="item in event.params track by $index" ng-show="item.show!=false">
<profile-item info-list="event.paramsList" item-info="item" item-type="event" item-event="eventId" common="true" ng-click="changeFlow(1)"></profile-item>
<span class="deleteIcon" ng-click="removeEventParams(event,item)"></span>
</div>
<div class="addAttrBtn" ng-class="{'dis':getEventParamsNum(event)>=maxparams}">
<span ng-click="addEventParams(event)"><span class="addAttrIcon"></span><span class="ckhand">添加事件属性筛选</span></span>
</div>
</div>
</div>
<div class="conditionBoxBottom">
<div class="left mt20" ng-show="!isShowCache && currentDefine.id">
<span style="margin-left: -20px;margin-right:10px;">事件分析名称</span>
<input type="text" class="iptform" ng-model="ename" placeholder="请输入事件分析名称" ng-style="{'border-color': enameerror?'#e74646':''}">
</div>
<div class="right mt50">
<span class="ckhand mr10" ng-click="initCondition()">重置条件</span>
<div class="btnMoreGroup">
<div class="btn btnblock ml10 mybtn h30" ng-click="closeAddWin()">关闭</div>
</div>
<span class="btnMoreGroup" ng-show="!currentDefine.id">
<div class="btn btnblock mr10 mybtn h30" ng-click="nameWin()">保存</div>
<div class="btn3 btnblock mybtn h30" ng-click="lookReport()">查看</div>
</span>
<div class="btnMoreGroup" ng-show="currentDefine.id" ng-mouseenter="bgroup=true" ng-mouseleave="bgroup=false;">
<div class="primaryBtn" ng-click="save()">保存</div>
<div class="primarySelBtn"></div>
<ul class="btnMenu" ng-show="bgroup && event.id">
<li ng-click="save()">保存</li>
<li ng-click="save(2)">另存为</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="conditionAlpha" ng-show="showEventWin" ng-click="closeAddWin()"></div>
<div class="chartWrap bar one clearfix" style="margin-top: 0px;" ng-show="defineList.length>0 || showTempLook">
<div class="chartWrapItem titleChart">
<div class="chartModule">
<span>{{getTrendTitle()}}</span>
<div class="right p mr10" style="z-index: 1;">
<select-list style="margin-top: 8px;height: 31px;line-height: 31px;margin-right: 0px;width:80px;background-color:#ffffff;color: #999;" meau-info="chartList" meau-id="chartTypeId" meau-spe="group_List.length == 0" meau-data="chartTypeInit" operation-sel="!eventChartLoading"></select-list>
</div>
<div class="right p mr10" style="z-index: 1;" ng-mouseleave="showDrop=false" >
<div class="btn" style="margin-top: 8px;height: 31px;line-height: 31px;margin-right: 0px;color: #999;background-color: #ffffff;" ng-click="showDrop=true;" ng-class="{'active':showDrop}">
<span class="mr10">显示设置</span>
<div class="arrowIcon" style="margin-right:0px;"></div>
</div>
<div class="rateWrap" ng-show="showDrop">
<ul class="titWrap">
<li ng-class="{'active':rateFlag==1}" ng-click="rateFlag=1">显示指标</li>
<li ng-class="{'active':rateFlag==2}" ng-click="rateFlag=2">显示分组</li>
</ul>
<ul class="rateInfo" ng-show="rateFlag==1">
<li ng-repeat="rate in rateList track by $index" ng-click="changeRate(rate)" ng-class="{'dis':!canAdd(1,rate)}">
<span class="checkbox" ng-class="{'active':rateListed.indexOf(rate)>-1}"></span>{{substrName(rate)}}
</li>
</ul>
<ul class="rateInfo" ng-show="rateFlag==2">
<li ng-show="group_List.length>1 && chartType=='pie'">
<span ng-click="checkAll()">
<span class="checkbox" ng-class="{'active':ischeckall}" style="margin-right: 6px;"></span>全选
</span>
</li>
<li ng-if="group_List.length==0">当前没有分组</li>
<li ng-repeat="group in group_List track by $index" ng-click="changeGroup(group)" ng-class="{'dis':!canAdd(2,group)}" title="{{group}}">
<span class="checkbox" ng-class="{'active':grouped_List.indexOf(group)>-1}"></span>{{group}}
</li>
</ul>
</div>
</div>
<div class="right rigthM">
<ul class="btnGroup">
<!-- <li ng-class="{'active':timeFlag=='hour','dis':disTimeFlag.indexOf('hour')>-1}" ng-click="changeTimeFlag('hour')">时</li> -->
<li ng-class="{'active':timeFlag=='day','dis':disTimeFlag.indexOf('day')>-1}" ng-click="changeTimeFlag('day')"></li>
<li ng-class="{'active':timeFlag=='week','dis':disTimeFlag.indexOf('week')>-1}" ng-click="changeTimeFlag('week')"></li>
<li ng-class="{'active':timeFlag=='month','dis':disTimeFlag.indexOf('month')>-1}" ng-click="changeTimeFlag('month')"></li>
</ul>
</div>
</div>
<div class="chartItem p">
<div ng-class="{'lengedChart':dimenId && dimenId!='-all'}">
<min-chart chart-data="myChartData" chart-tp="chartType" chart-config="eventChartConfig" chart-loading="eventChartLoading" chart-resize="yes"></min-chart>
<div style="color:#999;font-size: 13px;" ng-if="chartType=='pie'">
<span ng-show="!eventChartLoading" ng-repeat="key in myChartData.key" ng-style="{'padding-left':(myChartData.key.length>1 && $index==0?panelw/4:panelw/2-($index==1?getwidth(myChartData.key[0])/2:0))-getwidth(key)/2+'px'}">{{substrName(key)}}</span>
</div>
</div>
</div>
</div>
</div>
<div class="chartWrap clearfix" ng-show="defineList.length>0 || showTempLook">
<div class="chartWrapItem grayhm titleChart nothborder">
<div class="chartModule">
<span>{{getTrendTitle()}}详情</span>
<export-button export-condition="myChartDataCondition" ng-if="infoList.length>0 && !istranfer"></export-button>
<div class="right mr10" style="padding-top: 10px;" ng-show="infoList.length>0">
<ul class="btnGroup">
<li ng-class="{'active':istranfer}" ng-click="changeFlag(1)">转换</li>
<li ng-class="{'active':ispercent}" ng-click="changeFlag(2)" ng-if="group_List.length>0 || istranfer">
<span ng-if="istranfer">环比</span>
<span ng-if="!istranfer">占比</span>
</li>
</ul>
</div>
<div class="eptWrap right mt10 big" ng-show="!istranfer && !isShowCache && define.id && condList.length>2" ng-click="showOrderList()">
<span class="orderIcon"></span>
</div>
<div class="right condiTitleWrap" style="padding-top: 9px;" ng-show="infoList.length>0 && !istranfer">
<span class="hand" ng-click="isshowTotal = !isshowTotal">
<span class="checkbox mr5" ng-class="{'active':isshowTotal}"></span>
<span class="label">显示合计</span>
</span>
</div>
</div>
<is-loading ng-if="chartListLoading"></is-loading>
<div class="tableList yeswrap hm-scroll" ng-show="!chartListLoading" style="max-height: inherit;">
<table title-name="listname" fix-firtd="1" fix-list="flipPage" ng-show="infoList.length>0">
<thead>
<tr>
<th>
{{listname[0]}}
<span class="sortWrap" ng-click="reverse1=!reverse1;order(listkey[0], reverse1,0)">
<span class="ascIcon" ng-class="{'active':sortCol1==listkey[0] && !reverse1}"></span>
<span class="descIcon" ng-class="{'active':sortCol1==listkey[0] && reverse1}"></span>
</span>
</th>
<th ng-repeat="title in listname track by $index" ng-show="$index>0">
{{title}}
<span class="sortWrap" ng-click="reverse=!reverse;order(listkey[$index], reverse,$index)">
<span class="ascIcon" ng-class="{'active':(sortCol==listkey[$index] || sortCol1==listkey[$index]) && !reverse}"></span>
<span class="descIcon" ng-class="{'active':(sortCol==listkey[$index] || sortCol1==listkey[$index]) && reverse}"></span>
</span>
</th>
</tr>
</thead>
<tr ng-repeat="info in totalList track by $index" ng-init="len = totalList.length" ng-if="!istranfer && isshowTotal">
<td ng-if="$index==0" rowspan="{{len}}" style="background-color: #fff;">{{info[listkey[0]]}}</td>
<td ng-repeat="col in listkey track by $index" ng-if="$index>0" style="padding-right: 10px;" ng-class="{'txright':($index>grouplen && !istranfer) || ($index > grouplen && istranfer)}">
{{info[col] | formatRate:col:trendList.format:info._myzb}}
<span ng-if="ispercent && info[percentPre+col]" ng-class="{false:'red',true:'green'}[info[percentPre+col]>0]"><br/>{{info[percentPre+col] | numFixed}}%</span>
</td>
</tr>
<tr ng-repeat="info in currentDetailList track by $index">
<td ng-if="info.isrs && !istranfer" rowspan="{{info.rsnum}}" style="background-color: #fff;">{{info[listkey[0]]}}</td>
<td ng-if="info.isrs && istranfer" ng-repeat="g in trendList.groupfield track by $index" rowspan="{{info.rsnum}}" style="background-color: #fff;">{{info[listkey[$index]]}}</td>
<td ng-repeat="col in listkey track by $index" ng-if="($index>0 && !istranfer) || (istranfer && $index>=grouplen)" style="padding-right: 10px;" ng-class="{'txright':($index>grouplen && !istranfer) || ($index > grouplen && istranfer)}">
{{info[col] | formatRate:col:trendList.format:info._myzb}}
<span ng-if="ispercent && info[percentPre+col]" ng-class="{false:'red',true:'green'}[info[percentPre+col]>0]"><br/>{{info[percentPre+col] | numFixed}}%</span>
</td>
</tr>
</table>
<no-data ng-if="infoList.length==0"></no-data>
</div>
<flip-info list-info="pageAllList" list-refresh="listf5"></flip-info>
</div>
</div>
</div>
<div ng-show="defineList.length==0 && !addFirst">
<div class="nodata">
<h5>还未创建事件统计细分</h5>
</div>
<div class="btn3" style="float:none;width:180px;margin:0 auto;text-align: center;" ng-click="addFirstEvent()" ng-if="hasEditPower()">创建第一个事件统计细分</div>
<dl class="tipsList statustip">
<dt>1. 什么是“事件”?</dt>
<dd>
事件是指用户在使用产品过程中发生的行为,如注册、登录、充值、付款等操作数据。
</dd>
<dt>2. 怎么使用事件分析?</dt>
<dd>TrackingIO通过收集用户事件及对应属性,提供基于事件属性的事件及组合事件运算功能,用不同形式报表展现关注的单个事件或者多个事件经过数学运算后形成的新指标在不同维度的数据趋势。
<br/>
<br/>
事件分析可以帮您回答不同地域的游戏用户充值虚拟金币的金额是多少,不同渠道的游戏用户消费道具的频次是怎样等问题。您可以根据您的产品特性及需求,进行合理配置。</dd>
</dl>
</div>
<div class="openTipWin" ng-show="wantDelete">
<div class="closeGray" ng-click="closeWin()"></div>
<div class="tipCont">
<span ng-show="custommenus.length>0">
报表“{{delDefine.name}}”正在被
<span ng-repeat="custommenu in custommenus" ng-click="gotoCustonMenu(custommenu.id)">
<span class="customname">{{custommenu.name}}</span>
<span ng-show="!$last"></span></span>
{{custommenus.length}}个看单使用<br/>
删除后对应看单将不会再显示该报表,是否确认删除?
</span>
<span ng-show="!custommenus">
您正在删除报表“{{delDefine.name}}”,是否确认删除?
</span>
</div>
<div class="openBtnGroup clearfix">
<div class="btn8 mr20" ng-click="closeWin()">取消</div>
<div class="btn8" ng-click="doDelete()">确定</div>
</div>
</div>
<div class="openTipWin orderWrap" ng-show="showOrderWin">
<div class="closeGray" ng-click="closeOrder()"></div>
<div class="tipCont">
<p style="font-size: 14px;">指标顺序调整</p>
<p class="lglabel mb20">拖动指标名称调整顺序,表格内指标将按照调整后顺序显示。</p>
<ul class="orderUL">
<li ng-repeat="cond in condList track by cond.id">
<span>第{{cond.indexname}}列</span>
<div class="rate" drag-order drag-id="cond.id" drag-info="{{cond}}">{{cond.name}}</div>
</li>
</ul>
</div>
<div class="openBtnGroup clearfix" style="width: 160px;">
<div class="btn8 mr20" ng-click="closeOrder()">取消</div>
<div class="btn9" ng-click="okOrderWin()">确定</div>
</div>
</div>
<div class="openTipWin" ng-show="wantSave">
<div class="closeGray" ng-click="closeWin(2)"></div>
<div class="tipCont" style="text-align: left;">
<p class="mb10">请输入事件统计细分名称:</p>
<div>
<input type="text" class="iptform" ng-model="ename" style="width:300px;" placeholder="文字限定在20个汉字以内">
<div class="btn5 ml10 btnblock conwidth" ng-click="save(1)">保存</div>
</div>
</div>
</div>
<span id="ruler" style="display: none;"></span>
\ No newline at end of file
<div ng-show="(!funnelList || funnelList.length==0) && !addFirst">
<div class="nodata">
<h5>还没有漏斗</h5>
</div>
<div class="btn3" style="float:none;width:150px;margin:0 auto;text-align: center;" ng-click="addFirstFunnel()" ng-if="hasEditPower()">创建第一个漏斗</div>
<dl class="tipsList statustip">
<dt>1. 什么是“漏斗”?</dt>
<dd>
漏斗是一种分析产品中一个多步骤的行为过程中每一步的转化情况的模型,它可以分析整体的转化情况,以及每一步具体的转化率。</br/>
举例来说,用户首次进入游戏的过程可能包含:打开app,激活账号,loading页面加载完进入游戏。
</dd>
<dt>2. 怎么使用漏斗分析?</dt>
<dd>
通过TrackingIO强大的数据分析,漏斗分析可以帮助解决以下问题:<br/>
游戏用户在进入游戏时,流失在哪个步骤。不同渠道的游戏用户在做某个任务时,为什么放弃了。
</dd>
</dl>
</div>
<div ng-show="funnelList.length>0 || addFirst" class="p">
<div class="conditionBox clearfix p pb20">
<div class="left">
<div class="selList" ng-class="{'active':selme,'noright':hasEditPower()}" ng-click="selme=!selme;" ng-mouseleave="selme=false;">
<span ng-if="currentFunnel.id || currentFunnel.id==0 || !showEventWin">{{funnelInfo.name}}</span>
<span class="ckhand dark" ng-if="!currentFunnel.id && currentFunnel.id!=0 && showEventWin">新建漏斗</span>
<div class="arrowIcon"></div>
<div class="optionList even" ng-show="selme" style="width:320px;">
<dl class="dlOperTitle bbb" ng-if="hasEditPower() && (funnelList.length<limitInfo.dataConversionFunnelNum || limitInfo.dataConversionFunnelNum==-1)">
<dd ng-click="addFunnel()">新建漏斗</dd>
</dl>
<div ng-show="funnelList.length>5" class="searchWrap ml10 searchSpec clearfix" style="float:none;width:300px;" stop-event>
<input type="text" class="searchIpt selectIpt" style="width:300px;" ng-model="seatxt" placeholder="关键字搜索">
</div>
<ul>
<li ng-repeat="m in funnelList | filter:{'name':seatxt} track by $index" ng-click="clickFunnel(m)" ng-class="{'active':m.id == funnelInfo.id}" title="{{m.name}}" class="p">
{{m.name}}<span class="delIcon s1" ng-click="deleteFunnel(m)" stop-event ng-if="hasEditPower()"></span>
</li>
</ul>
</div>
</div>
<div class="btn8 dark btnblock btnNo" ng-class="{'active':isEditInfo==3 && showEventWin,'dis':!funnelInfo.id || isEditInfo==2}" ng-click="addFunnel(1)" ng-show="hasEditPower()">编辑</div>
</div>
<div class="right">
<!-- <select-t-list meau-info="dimensionList" meau-id="dimensionId" meau-name="dimensionname" meau-typekey="['whole','usergroup','population','source']" meau-typename="['','用户分群','人口维度','来源维度']" meau-data="dimenInit" meau-refresh="dimenRmd" operation-sel="funnelInfo.id>0"></select-t-list> -->
<select-t-list meau-info="dimensionList" meau-id="dimensionId" meau-name="dimensionname" meau-typekey="['whole','usergroup','eventlist',null]" meau-typename="['','用户分群','事件属性','用户属性']" meau-data="dimenInit" meau-id2="dimenEventType" meau-refresh="dimenRmd" operation-sel="funnelInfo.id>0"></select-t-list>
<my-datepicker class="dateRange rightDate" init-day="date" range-days2="rangday" operation-sel="funnelInfo.id>0"><span>{{datestr}}</span></my-datepicker>
</div>
<div class="conditionWin eventBox" ng-show="showEventWin" ng-class="{'edit':isEditInfo==3}">
<div class="sanicon"></div>
<div class="funnelWrap" ng-class="{'max400':getEventNum()>=5}">
<div ng-repeat="event in eventInfo track by $index" ng-show="event.show!=false">
<div class="eventItem clearfix p" ng-style="event.style">
<div class="label txtLabel">第{{event.steps}}步:</div>
<select-list meau-info="eventList" meau-id2="event.eventid" meau-data="event.eventinit" meau-name="eventinitname" class="eventItemsel" keyid="eventName" keyname="eventNameAlias" meau-red="event.nullevent"></select-list>
<div class="profileItemWrap p">
<div class="operInfo" style="bottom:35px;" ng-show="event.params && getEventParamsNum(event)>1">
<div class="operBtn" ng-click="changeRel(event)">{{event.relation}}</div>
</div>
<div class="profileItem" ng-repeat="item in event.params track by $index" ng-show="item.show!=false">
<profile-item info-list="event.paramsList" item-info="item" item-type="event" item-event="event.event"></profile-item>
<span class="removeSpan" ng-click="removeEventParams(event,item)">取消</span>
</div>
<span class="ml10 addAttrBtn" ng-click="addEventParams(event)" ng-class="{'dis':getEventParamsNum(event)>=3}">
<span class="addAttrIcon"></span><span class="ckhand">添加事件属性筛选</span>
</span>
</div>
<span class="delItemIcon right" ng-click="removeEvent(event)"></span>
</div>
<div class="relLine"></div>
</div>
<div class="addItemIcon" ng-click="addEvent()" ng-class="{'dis':getEventNum()>=maxStep}" style="margin-left: 15px;"></div>
</div>
<div class="formDetailItem ml15 mt20">
<div class="iptlabel" style="width:120px;">转化有效期<help-tip class="help" style="margin-left: 2px;" name="转化有效期"></help-tip>:</div>
<select-list meau-info="dayList" meau-id="windows" meau-data="windowsinit" style="width:100px;" class="upSList" nosearch="true"></select-list>
<span class="desc">完成转化的时间超过此有效期的,为无效转化,即转化失败(流失)。</span>
</div>
<div class="conditionBoxBottom">
<div class="right mt20">
<span class="ckhand mr10" ng-class="{'dis':!canSave()}" ng-click="initCondition()">重置条件</span>
<span ng-show="!currentFunnel.id">
<div class="btn btnblock mybtn h30" ng-click="nameWin()" ng-class="{'disable':!canSave()}">保存</div>
<!-- <div class="btn3 btnblock mybtn h30" ng-click="lookReport()" ng-class="{'disable':!canSave()}">查看</div> -->
</span>
<div class="btnMoreGroup" ng-show="currentFunnel.id" ng-mouseenter="bgroup=true" ng-mouseleave="bgroup=false;">
<div class="primaryBtn" ng-click="save()" ng-class="{'dis':!canSave()}">保存</div>
<div class="primarySelBtn" ng-class="{'dis':!canSave()}"></div>
<ul class="btnMenu" ng-show="bgroup && canSave()">
<li ng-click="save()">保存</li>
<li ng-click="nameWin(1)">另存为</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="conditionAlpha" ng-show="showEventWin && funnelList.length>0" ng-click="closeAddWin()"></div>
<div class="chartWrap chart300 one clearfix" style="margin-top: 0px;" ng-show="funnelList.length>0">
<div class="chartWrapItem titleChart">
<div class="chartModule">
<span>{{funnelInfo.name}}的漏斗分析</span>
<!-- <div class="right rigthM">
<select-list meau-info="deviceList" meau-id="deviceId" meau-data="deviceInit" class="whitebg" style="width:100px;"></select-list>
</div> -->
</div>
<div class="chartItem p">
<div ng-class="{'lengedChart':dimenId && dimenId!='-all'}">
<min-chart chart-data="chartData" chart-type="funnel" chart-config="chartConfig" chart-loading="chartLoading"></min-chart>
</div>
<div class="lengedWrap" ng-show="dimenId && dimenId!='-all'">
<div class="searchWrap searchSpec clearfix" style="float:none;">
<input type="text" class="searchIpt selectIpt" ng-model="swtxt" placeholder="关键字搜索">
</div>
<ul class="hm-scroll">
<li ng-repeat="name in lengedNames | filter:swtxt track by $index" ng-click="setFunnelData(name,1)">
<span class="sign" ng-style="getChartStyle(name)"></span>{{name}}
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="chartWrap clearfix" ng-show="funnelList.length>0">
<div class="chartWrapItem nothborder">
<div class="chartModule">
<span>{{funnelInfo.name}}的漏斗分析详情</span>
<export-button export-condition="listInfoDataCondition" ng-if="listInfoData.val && listInfoData.val.length>0"></export-button>
</div>
<is-loading ng-if="listInfoLoading"></is-loading>
<div class="tableList" ng-show="!listInfoLoading">
<table ng-show="listInfoData.val.length>0">
<tr>
<th ng-repeat="title in listInfoData.name track by $index">{{title}}</th>
</tr>
<tr ng-repeat="info in listInfoData.val track by $index">
<td>{{info[listInfoData.columnkey[0]]}}</td>
<td ng-repeat="col in listInfoData.columnkey track by $index" ng-if="$index>0" ng-class="{'lostinfo':col.indexOf('lost')==-1,'m':listInfoData.columnkey.length>7}">
<div ng-if="col.indexOf('lost')==-1">
<span class="tabBar">
<div class="active" style="height:{{info['rate_'+col]}}%"></div>
</span>
<span style="display: inline-block;">
{{info[col]}}
<p class="n">{{info['rate_'+col]}}%</p>
</span>
</div>
<div ng-if="col.indexOf('lost')>-1" class="lost">
{{info[col]}}
<p>{{info['rate_' + col]}}%</p>
</div>
</td>
</tr>
</table>
<no-data ng-if="!listInfoData.val || listInfoData.val.length==0"></no-data>
</div>
</div>
</div>
</div>
<div class="openTipWin" ng-show="wantDelete">
<div class="closeGray" ng-click="closeWin()"></div>
<div class="tipCont">
<span ng-show="custommenus.length>0">
报表“{{delDefine.name}}”正在被
<span ng-repeat="custommenu in custommenus" ng-click="gotoCustonMenu(custommenu.id)">
<span class="customname">{{custommenu.name}}</span>
<span ng-show="!$last"></span></span>
{{custommenus.length}}个看单使用<br/>
删除后对应看单将不会再显示该报表,是否确认删除?
</span>
<span ng-show="!custommenus">
您正在删除报表“{{delDefine.name}}”,是否确认删除?
</span>
</div>
<div class="openBtnGroup clearfix">
<div class="btn8 mr20" ng-click="closeWin()">取消</div>
<div class="btn8" ng-click="doDelete()">确定</div>
</div>
</div>
<div class="openTipWin" ng-show="wantSave">
<div class="closeGray" ng-click="closeWin(2)"></div>
<div class="tipCont" style="text-align: left;">
<p class="mb10">请输入漏斗名称:</p>
<div>
<input type="text" class="iptform" ng-model="ename" style="width:300px;" placeholder="文字限定在20个汉字以内">
<div class="btn5 ml10 btnblock conwidth" ng-click="save(1)">保存</div>
</div>
</div>
</div>
\ No newline at end of file
<div class="p" ng-show="defineList.length>0 || addFirst">
<div class="conditionBox clearfix p pb20">
<div class="left">
<div class="selList" ng-class="{'active':selme,'noright':hasEditPower()}" ng-click="selme=!selme;" ng-mouseleave="selme=false;">
<span ng-if="(currentDefine.id || currentDefine.id==0 || !showEventWin) && !showTempLook">{{define.name}}</span>
<span class="ckhand dark" ng-if="(!currentDefine.id && currentDefine.id!=0 && showEventWin) || showTempLook">新增智能路径</span>
<div class="arrowIcon"></div>
<div class="optionList even" ng-show="selme" style="width:320px;">
<dl class="dlOperTitle bbb" ng-if="hasEditPower()">
<dd ng-click="addPath(0)" ng-class="{'active':isShowCache}">新增智能路径</dd>
</dl>
<div ng-show="defineList.length>5" class="searchWrap ml10 searchSpec clearfix" style="float:none;width:300px;" stop-event>
<input type="text" class="searchIpt selectIpt" style="width:300px;" ng-model="seatxt" placeholder="关键字搜索">
</div>
<ul>
<li ng-repeat="m in defineList | filter:{'name':seatxt} track by $index" ng-click="clickDefine(m)" ng-class="{'active':m.id == define.id && !isShowCache}" title="{{m.name}}" class="p">
{{m.name}}<span class="delIcon s1" ng-click="deleteDefine(m)" stop-event ng-if="hasEditPower()"></span>
</li>
</ul>
</div>
</div>
<div class="btn8 dark btnblock btnNo" ng-class="{'active':currentDefine.id && showEventWin,'dis':(!define.id && !isShowCache) || (!isEditInfo && !isShowCache)}" ng-click="addPath(1,(!currentDefine.id && currentDefine.id!=0 && showEventWin) || showTempLook)" ng-show="hasEditPower()">编辑</div>
</div>
<div class="right">
<my-datepicker class="dateRange rightDate" init-day="date" range-days2="7" operation-sel="define.id>0 || isShowCache"><span>{{datestr}}</span></my-datepicker>
</div>
<div class="conditionWin eventBox" ng-show="showEventWin" ng-class="{'edit':currentDefine.id}">
<div style="padding-bottom: 20px;">
<span>设置session间隔:</span>
<input id="timeId" type="text" class="iptform ng-pristine ng-untouched ng-valid" ng-class="{'iptnull':params.timenull}" ng-model="time" title="{{time}}" integer-txt style="width:80px;">
<select-list meau-info="timeUnitList" meau-id="timeUnitId" meau-data="timeUnitInit" meau-name="timeinitname" style="width:80px;" meau-refresh="evtrefresh"></select-list>
</div>
<div class="sanicon"></div>
<div class="conditionItem">
<span class="ml40">关注事件:</span>
<select-more-list meau-info="eventList" meau-id="eventIds" meau-name="eventinitnames" keyid="eventName" keyname="eventNameAlias" meau-data="eventinitIds" meau-red="params.eventsnull"></select-more-list>
<span ng-show="eventTip" style="color: #e74646;">{{eventTip}}</span>
</div>
<div style="padding-top: 20px;">
<span class="ml40">事件选取:</span>
<select-list meau-info="eventTypeList" meau-id="eventTypeId" meau-data="eventTypeInit" meau-name="typeinitname" meau-refresh="evtrefresh" style="width:120px;margin-right:10px;"></select-list>
<select-list meau-info="filterEvents" meau-id="eventId" meau-data="eventInit" meau-name="eventinitname" keyid="eventName" keyname="eventNameAlias" meau-refresh="evtrefresh" meau-red="params.eventnull" meau-null="enull"></select-list>
</div>
<div style="padding-bottom: 20px;" ng-class="{'conditionEventItem':event.params && getEventParamsNum(event)>5}">
<div class="profileItemWrap p">
<div class="operInfo ml40" style="bottom:35px;" ng-show="event.params && getEventParamsNum(event)>1">
<div class="operBtn" ng-click="changeRel()">{{eventRel}}</div>
</div>
<div class="profileItem ml40" ng-repeat="item in event.params track by $index" ng-show="item.show!=false">
<profile-item info-list="event.paramsList" item-info="item" item-type="event" item-event="eventId"></profile-item>
<span class="removeSpan" ng-click="removeEventParams(event,item)">取消</span>
</div>
<div class="addAttrBtn ml50" ng-click="addEventParams(event)" ng-class="{'dis':getEventParamsNum(event)>=3}">
<span class="addAttrIcon"></span><span class="ckhand">添加事件属性筛选</span>
</div>
</div>
<div>
<span class="ml40">用户分组:</span>
<select-list meau-info="groupsList" meau-id="groupId" meau-data="groupInit" meau-name="groupinitname" meau-refresh="evtrefresh"></select-list>
</div>
</div>
<div class="conditionBoxBottom">
<div class="right mt20">
<span class="ckhand mr10" ng-class="{'dis':canSave()}" ng-click="initCondition()">重置条件</span>
<span ng-show="!currentDefine.id">
<div class="btn btnblock mr10 mybtn h30" ng-click="nameWin()" ng-class="{'disable':canSave()}">保存</div>
<div class="btn3 btnblock mybtn h30" ng-click="lookReport()" ng-class="{'disable':canSave()}">查看</div>
</span>
<div class="btnMoreGroup" ng-show="currentDefine.id" ng-mouseenter="bgroup=true" ng-mouseleave="bgroup=false;">
<div class="primaryBtn" ng-click="save()" ng-class="{'dis':canSave()}">保存</div>
<div class="primarySelBtn" ng-class="{'dis':canSave()}"></div>
<ul class="btnMenu" ng-show="bgroup && !canSave()">
<li ng-click="save()">保存</li>
<li ng-click="nameWin(1)">另存为</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="conditionAlpha" ng-show="showEventWin" ng-click="closeAddWin()"></div>
</div>
<div class="panel" ng-show="defineList.length>0 || addFirst">
<no-data ng-if="pathList.value.length==0 && !pathIsLoading"></no-data>
<is-loading ng-if="pathIsLoading" style="top:300px;"></is-loading>
<div id="mychart">
</div>
<div id="tip_shape">
</div>
</div>
<div ng-show="defineList.length==0 && !addFirst">
<div class="nodata">
<h5>还没有智能路径</h5>
</div>
<div class="btn3" style="float:none;width:180px;margin:0 auto;text-align: center;" ng-click="addFirstPath()" ng-if="hasEditPower()">创建第一个智能路径</div>
<dl class="tipsList statustip">
<dt>1. 什么是“智能路径”?</dt>
<dd>
通过TrackingIO追踪或记录的用户行为或业务迁移的过程。
</dd>
<dt>2. 怎么使用智能路径?</dt>
<dd>通过TrackingIO强大的数据分析,路径可以帮助回答以下问题:<br/>
能够帮助您分析出用户的路径偏好,掌握用户对产品的核心使用习惯。
当您关注某个核心目标事件时,<br/>
可以查看到用户的行为路径及占比情况。
</dd>
</dl>
</div>
<div class="openTipWin" ng-show="wantDelete">
<div class="closeGray" ng-click="closeWin()"></div>
<div class="tipCont">
您确认删除&nbsp;&nbsp;“{{delDefine.name}}”&nbsp;&nbsp;的路径详情吗?
</div>
<div class="openBtnGroup clearfix">
<div class="btn8 mr20" ng-click="closeWin()">取消</div>
<div class="btn8" ng-click="doDelete()">确定</div>
</div>
</div>
<div class="openTipWin" ng-show="wantSave">
<div class="closeGray" ng-click="closeWin(2)"></div>
<div class="tipCont" style="text-align: left;">
<p class="mb10">请输入事件统计细分名称:</p>
<div>
<input type="text" class="iptform" ng-model="ename" style="width:300px;" placeholder="文字限定在20个汉字以内">
<div class="btn5 ml10 btnblock conwidth" ng-click="save(1)">保存</div>
</div>
</div>
</div>
<div class="openTipWin winScroll" ng-show="nodeDetail" style="padding:35px;">
<div style="text-align:center;margin-bottom: 30px;font-size:14px;"><span>节点详情</span></div>
<div class="closeGray" ng-click="closeWin()"></div>
<div style="padding-bottom: 10px;">
<span style="margin-right:30px;">事件名称:{{nodeName}}</span>
<span>流失比例:{{lpercent}}</span>
</div>
<div class="clear"></div>
<div class="tableList">
<table>
<tr>
<th></th>
<th>会话数</th>
<th>百分比</th>
<!-- <th>人群详情</th> -->
</tr>
<tr ng-repeat="detail in nodeDetails track by $index">
<td>{{detail.title}}</td>
<td>{{detail.count}}</td>
<td>{{detail.percent}}</td>
<!-- <td style="color: #00a9e8;">详情</td> -->
</tr>
</table>
</div>
<div style="padding-top:30px;">路径信息:</div>
<div ng-repeat="route in routeList track by $index">
<div class="btn word-ellipsis btnPath" ng-class="{'firstActive': ($index==0 && pathList.type) || ($last && !pathList.type), 'currentActive': route == nodeDetail}" title="{{route.name}}"><span class="currentIcon" ng-if="route == nodeDetail && route.level!=1"></span><span>{{route.name}}</span></div>
<div ng-class="{'solidArrow': (_nodes.length==0 && !$last) || (_nodes.length > 0 && (pathList.type && $index < routeList.length-2) || (!pathList.type && !$first && !$last))}"></div>
<div ng-class="{'dottedArrow': _nodes.length > 0 && ((pathList.type && $index==routeList.length-2) || (!pathList.type && $first))}"></div>
</div>
</div>
\ No newline at end of file
<div class="wrapTitle ng-scope">
<span>
日志地址
<help-tip class="help" name="日志地址"></help-tip>
</span>
</div>
<div>
<div class="smartlabel mt20 toblock" ng-if="isSuper || isManage">
自动生成日志 <div class="onOffBtn" ng-class="{'on':appInstance.regedbutton == true}" ng-click="onOff()"></div>
</div>
<div class="tableList mt10">
<table>
<tr>
<th ng-repeat="title in addrList.name track by $index">{{title}}</th>
<th>操作</th>
</tr>
<tr ng-repeat="info in addrList.val track by $index">
<td ng-repeat="col in addrList.columnkey track by $index" data-clipboard-text="{{info[col]}}" ng-class="{'ckhand':$index>0,'copyBtn':$index==1}">{{info[col]}}</td>
<td class="formOper">
<a class="formBtn" ng-click="downFile(info.type)" ng-if="appInstance.regedbutton==true"><span class="downloadIcon active"></span>下载</a>
<a class="formBtn" ng-click="downTips()" ng-if="appInstance.regedbutton!=true"><span class="downloadIcon active"></span>下载</a>
</td>
</tr>
</table>
<input type="text" id="copyipt" style="opacity: 0;">
</div>
<dl class="tipsList">
<dt>提取日志说明</dt>
<ol>
<li>打开自动生成日志【开关】。</li>
<li>直接点击复制对应类型的日志地址,发送请求即可下载。 </li>
<li>服务器每天上午10点以后,可以请求热云的服务器下载前一天的数据。</li>
<li>目前仅支持导出昨日数据。</li>
</ol>
</dl>
</div>
\ No newline at end of file
<div class="wrapTitle ng-scope">
<span>
日志导出
<help-tip class="help" name="日志导出"></help-tip>
</span>
</div>
<div>
<div class="btn3 mb20 mt20" ng-click="addExport()"><span class="formAddIcon"></span>新建导出</div>
<div class="clear"></div>
<div class="tableList">
<table>
<tr>
<th>序号</th>
<th>数据类型</th>
<th>数据范围</th>
<th>时间范围</th>
<th>创建导出时间</th>
<th>状态</th>
<th>操作</th>
</tr>
<tr ng-repeat="info in exprotList track by $index" ng-if="$index>flipPage.start && $index < flipPage.end">
<td>{{$index+1}}</td>
<td>{{getExportName(info.downloadtype)}}</td>
<td>{{info.businame}}</td>
<td>{{info.startdate}}至{{info.enddate}}</td>
<td>{{info.createTime | date:'yyyy-MM-dd HH:mm:ss'}}</td>
<td>
<span ng-if="info.status=='init'">开始生成</span>
<span ng-if="info.status=='downloading'">正在生成</span>
<span ng-if="info.status=='complete'">已完成</span>
<span ng-if="info.status=='failed'">
失败
<span class="f5Icon" ng-click="refreshExport(info.id)"></span>
</span>
</td>
<td class="formOper">
<div class="formBtn" ng-class="{'dis':info.status!='complete'}" ng-click="downloadEvt(info)"><span class="downloadIcon active"></span>下载</div>
<div class="formBtn" ng-click="doRemove(info.id)" ng-if="UserId == info.createAccount"><span class="removeIcon"></span>删除</div>
</td>
</tr>
</table>
<flip-info list-info="exprotList" search-txt="searchTxt" search-name="name"></flip-info>
</div>
</div>
<div class="dialogWin tipwin" style="width:700px;" ng-show="addstatus">
<div class="dialogTitle">
<label>新建导出</label>
<div class="closeBtn right mr10" ng-click="closeAdd()"></div>
</div>
<div class="dialogContent" style="padding: 0px;">
<div class="formDetailInfo" style="border:none;">
<div class="formDetailItem" ng-show="!exportgroup">
<div class="iptlabel must">时间范围:</div>
<my-datepicker class="dateRange" options="dateOps" init-day="date" max-day="-1"><span>{{datestr}}</span></my-datepicker>
</div>
<div class="formDetailItem">
<div class="iptlabel must">数据类型
<!-- <help-tip class="help ml" name="推广回流列表" ng-show="exportTypeId=='backflow'"></help-tip> -->:
</div>
<select-list meau-info="exportTypeList" meau-id="exportTypeid" meau-data="exportTypeinit" meau-refresh="exprefresh"></select-list>
</div>
<div class="formDetailItem">
<div class="iptlabel must">数据范围:</div>
<select-list meau-info="exportRangelist" meau-id="exportRangeid" meau-data="exportRangeinit" style="width:160px;" ng-show="!exportgroup" meau-refresh="exprefresh"></select-list>
<select-list meau-info="typeInfoList" meau-id="typelistId" meau-name="typeInfoname" style="width:160px;" ng-show="exportRangeId!='all' || exportgroup" meau-red="selnull" meau-refresh="exprefresh"></select-list>
</div>
<div class="formsaveBtnWrap clearfix">
<div class="btn5" ng-click="save()">立即创建</div>
<div class="btn6" ng-click="closeAdd()">取消</div>
</div>
</div>
</div>
</div>
<div class="openTipWin" ng-show="wantRefresh">
<div class="closeGray" ng-click="closeWin()"></div>
<div class="tipCont">
导出文件不存在,是否需要重新生成?
</div>
<div class="openBtnGroup clearfix">
<div class="btn8 mr20" ng-click="closeWin()">取消</div>
<div class="btn8" ng-click="downlistRefresh(null,1)">确定</div>
</div>
</div>
<del-tip status="delstatus" delfn="removeInfo()">
请确定是否删除该日志导出?
</del-tip>
\ No newline at end of file
<div class="wrapTitle ng-scope">
<span>
日志流
<help-tip class="help" name="日志流" ></help-tip>
</span>
</div>
<div class="tableList mt20">
<div class="btn8 mb20" ng-click="query()"><span class="f5IconGray"></span>刷新</div>
<div class="clear"></div>
<pre ng-repeat="item in logdata track by $index">{{item}}</pre>
</div>
\ No newline at end of file
<div class="wrapTitle condition">
<select-list meau-info="typelist" meau-id="typeId" meau-data="typeIdInit"></select-list>
<select-more-list meau-info="typeInfoList" meau-id="typelistIds" meau-name="typeInfoname" keyid="id" keyname="name"></select-more-list>
<div class="btn5" style="padding:0px 10px;float:right;margin-top: 16px;margin-right: 20px;" ng-click="query()">数据刷新</div>
</div>
<div class="chartWrap two smart clearfix">
<div class="chartWrapItem">
<div class="chartItem">
<div class="chartTitle">
<h4>{{nowReports[0].title}}(有效点击)<help-tip class="help" name="{{nowReports[0].title}}"></help-tip></h4>
</div>
<min-chart chart-data="clickData" chart-type="arealiner" chart-config="clickConfig" chart-loading="clickLoading" chart-condition="clickDataCondition"></min-chart>
</div>
</div>
<div class="chartWrapItem">
<div class="chartItem">
<div class="chartTitle">
<h4>{{nowReports[1].title}}<help-tip class="help" name="{{nowReports[1].title}}"></help-tip></h4>
</div>
<min-chart chart-data="intallData" chart-type="arealiner" chart-config="intallConfig" chart-loading="intallLoading" chart-condition="intallDataCondition"></min-chart>
</div>
</div>
</div>
<div class="chartWrap two smart clearfix">
<div class="chartWrapItem">
<div class="chartItem">
<div class="chartTitle">
<h4>{{nowReports[2].title}}<help-tip class="help" name="{{nowReports[2].title}}"></help-tip></h4>
</div>
<min-chart chart-data="dsclickData" chart-type="arealiner" chart-config="dsclickConfig" chart-loading="dsclickLoading" chart-condition="dsclickDataCondition"></min-chart>
</div>
</div>
<div class="chartWrapItem">
<div class="chartItem">
<div class="chartTitle">
<h4>{{nowReports[3].title}}<help-tip class="help" name="{{nowReports[3].title}}"></help-tip></h4>
</div>
<min-chart chart-data="dauData" chart-type="arealiner" chart-config="dauConfig" chart-loading="dauLoading" chart-condition="dauDataCondition"></min-chart>
</div>
</div>
</div>
<div class="chartWrap two smart clearfix" ng-show="showDataModel('pay')">
<div class="chartWrapItem">
<div class="chartItem">
<div class="chartTitle">
<h4>{{nowReports[4].title}}<help-tip class="help" name="{{nowReports[4].title}}"></help-tip></h4>
</div>
<min-chart chart-data="paymentData" chart-type="arealiner" chart-config="paymentConfig" chart-loading="paymentLoading" chart-condition="paymentDataCondition"></min-chart>
</div>
</div>
<div class="chartWrapItem">
<div class="chartItem">
<div class="chartTitle">
<h4>{{nowReports[5].title}}<help-tip class="help" name="{{nowReports[5].title}}"></help-tip></h4>
</div>
<min-chart chart-data="playersData" chart-type="arealiner" chart-config="playersConfig" chart-loading="playersLoading" chart-condition="playersDataCondition"></min-chart>
</div>
</div>
</div>
<!-- <div class="chartWrap clearfix">
<div class="chartWrapItem">
<div class="chartItem">
<div class="chartTitle">
<h4>实时收入用户行为<span class="help"></span></h4>
</div>
<div class="infoItem"></div>
</div>
</div>
</div> -->
\ No newline at end of file
<div class="wrapTitle ng-scope">
<span>
下载报表
<help-tip class="help" name="下载报表"></help-tip>
</span>
</div>
<div>
<div class="tableList mt20">
<table>
<tr>
<th>序号</th>
<th>报表名称</th>
<th>时间范围</th>
<th>创建人</th>
<th>创建时间</th>
<th>下载人</th>
<th>状态</th>
<th>操作</th>
</tr>
<tr ng-repeat="info in donwlistData track by $index" ng-if="$index>flipPage2.start && $index < flipPage2.end">
<td>{{$index+1}}</td>
<td>{{info.name}}</td>
<td>{{info.startDate}}至{{info.endDate}}</td>
<td>{{info.accountName}}</td>
<td>{{info.createTime | date:'yyyy-MM-dd HH:mm:ss'}}</td>
<td>{{info.downloadName}}</td>
<td>
<span ng-if="info.status=='init'">生成中</span>
<span ng-if="info.status=='downloading'">生成中</span>
<span ng-if="info.status=='invalid'">已失效</span>
<span ng-if="info.status=='complete'">已完成</span>
<span ng-if="info.status=='failed'">
生成失败
<span class="f5Icon" ng-click="downlistRefresh(info.id)"></span>
</span>
</td>
<td class="formOper">
<div class="formBtn" ng-class="{'dis':info.status!='complete'}" ng-click="downlistEvt(info)"><span class="downloadIcon active"></span>下载</div>
<div class="formBtn" ng-click="doRemove(info.id)" ng-if="UserId == info.account"><span class="removeIcon"></span>删除</div>
</td>
</tr>
</table>
<flip-info list-info="donwlistData" search-txt="searchTxt" search-name="name"></flip-info>
</div>
</div>
<div class="openTipWin" ng-show="wantRefresh">
<div class="closeGray" ng-click="closeWin()"></div>
<div class="tipCont">
导出文件不存在,是否需要重新生成?
</div>
<div class="openBtnGroup clearfix">
<div class="btn8 mr20" ng-click="closeWin()">取消</div>
<div class="btn8" ng-click="downlistRefresh(null,1)">确定</div>
</div>
</div>
<del-tip status="delstatus" delfn="removeInfo()">
请确定是否删除该下载报表?
</del-tip>
\ No newline at end of file
<div class="p">
<div class="conditionBox clearfix p pb20">
<div class="left">
<div class="selList" ng-class="{'active':selme,'noright':hasEditPower()}" ng-click="selme=!selme;" ng-mouseleave="selme=false;">
<span ng-class="{'dark ckhand':!isEditInfo && typesign=='define'}">{{typesname}}</span>
<div class="arrowIcon"></div>
<div class="optionList even" ng-show="selme" style="width:320px;">
<dl class="dlOperTitle bbb">
<dd ng-click="clickType(type)" ng-repeat="type in typeList track by $index" ng-class="{'active':typesign == type.id && define.id==0}">{{type.name}}</dd>
</dl>
<div ng-show="defineList.length>5" class="searchWrap ml10 searchSpec clearfix" style="float:none;width:300px;" stop-event>
<input type="text" class="searchIpt selectIpt" style="width:300px;" ng-model="seatxt" placeholder="关键字搜索">
</div>
<ul>
<li ng-repeat="m in defineList | filter:{'name':seatxt} track by $index" ng-click="clickDefine(m)" ng-class="{'active':m.id == define.id && !isShowCache}" title="{{m.name}}" class="p">
{{m.name}}<span class="delIcon s1" ng-click="deleteDefine(m)" stop-event ng-if="hasEditPower()"></span>
</li>
</ul>
</div>
</div>
<div class="btn8 dark btnblock btnNo" ng-class="{'active':isEditInfo==3 && showEventWin,'dis':!define || (define.id==0 && !isShowCache) || (isEditInfo==2 && !isShowCache)}" ng-click="addModel(1)" ng-show="hasEditPower()">编辑</div>
</div>
<div class="right">
<!-- <select-t-list meau-info="dimensionList" meau-id="dimensionId" meau-name="dimensionname" meau-typekey="['whole','usergroup','population','source']" meau-typename="['','用户分群','人口维度','来源维度']" ng-show="showDemistion()" meau-data="dimenInit" meau-refresh="dimenRmd"></select-t-list> -->
<select-t-list meau-info="dimensionList" meau-id="dimensionId" meau-id2="dimenEventType" meau-name="dimensionname" meau-typekey="['whole','usergroup','eventlist',null]" meau-typename="['','用户分群','事件属性','用户属性']" ng-show="typesign=='define' || typesign=='dau' || typesign=='install'" meau-data="dimenInit" meau-refresh="dimenRmd"></select-t-list>
<my-datepicker class="dateRange rightDate" init-day="date" max-day="-1" range-days2="rangday"><span>{{datestr}}</span></my-datepicker>
</div>
<div class="conditionWin eventBox" ng-show="showEventWin" ng-class="{'edit':isEditInfo==3}">
<div class="sanicon"></div>
<div class="funnelWrap clearfix" ng-repeat="event in eventInfo track by $index" ng-class="{'last':$index>0}" ng-show="event.show!=false">
<div class="eventItem clearfix p" style="z-index:{{event.zidx}}">
<div class="label txtLabel">{{event.title}}:</div>
<select-list meau-info="eventList" meau-id2="event.eventid" meau-data="event.eventinit" meau-name="eventinitname" class="eventItemsel" keyid="eventName" keyname="eventNameAlias" meau-red="event.nullevent"></select-list>
<div class="profileItemWrap p">
<div class="operInfo" style="bottom:35px;" ng-show="event.params && getEventParamsNum(event)>1">
<div class="operBtn" ng-click="changeRel(event)">{{event.relation}}</div>
</div>
<div class="profileItem" ng-repeat="item in event.params track by $index" ng-show="item.show!=false">
<profile-item info-list="event.paramsList" item-info="item" item-type="event" item-event="event.event"></profile-item>
<span class="removeSpan" ng-click="removeEventParams(event,item)">取消</span>
</div>
<span class="ml10 addAttrBtn" ng-click="addEventParams(event)" ng-class="{'dis':getEventParamsNum(event)>=3}" style="display: inline-block;">
<span class="addAttrIcon"></span><span class="ckhand">添加事件属性筛选</span>
</span>
</div>
</div>
</div>
<div class="conditionBoxBottom">
<div class="right mt20">
<span class="ckhand mr10" ng-class="{'dis':!canSave()}" ng-click="initCondition()">重置条件</span>
<span ng-show="define.id==0">
<div class="btn btnblock mr10 mybtn h30" ng-click="nameWin()" ng-class="{'disable':!canSave()}">保存</div>
<div class="btn3 btnblock mybtn h30" ng-click="lookReport()" ng-class="{'disable':!canSave()}">查看</div>
</span>
<div class="btnMoreGroup" ng-show="define.id>0" ng-mouseenter="bgroup=true" ng-mouseleave="bgroup=false;">
<div class="primaryBtn" ng-click="save()" ng-class="{'dis':!canSave()}">保存</div>
<div class="primarySelBtn" ng-class="{'dis':!canSave()}"></div>
<ul class="btnMenu" ng-show="bgroup && canSave()">
<li ng-click="save()">保存</li>
<li ng-click="nameWin(1)">另存为</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="conditionAlpha" ng-show="showEventWin" ng-click="closeAddWin(1)"></div>
<div class="chartWrap chart300 one clearfix" style="margin-top: 0px;">
<div class="chartWrapItem titleChart">
<div class="chartModule">
<span class="bigTips">{{define.name || typesname}}的留存趋势<help-tip class="help" dname="helpname" hidx="1"></help-tip></span>
<div class="right rigthM">
<!-- <select-list meau-info="deviceList" meau-id="deviceId" meau-data="deviceInit" class="whitebg" style="width:100px;"></select-list> -->
<ul class="btnGroup">
<li ng-class="{'active':timeFlag=='day','dis':disTimeFlag.indexOf('day')>-1}" ng-click="changeTimeFlag('day')"></li>
<li ng-class="{'active':timeFlag=='week','dis':disTimeFlag.indexOf('week')>-1}" ng-click="changeTimeFlag('week')"></li>
<li ng-class="{'active':timeFlag=='month','dis':disTimeFlag.indexOf('month')>-1}" ng-click="changeTimeFlag('month')"></li>
</ul>
</div>
</div>
<div class="chartItem p">
<div ng-class="{'lengedChart':dimenId!='-all'}">
<min-chart chart-data="myChartData" chart-type="line" chart-config="retetionConfig" chart-loading="retetionLoading" chart-resize="yes"></min-chart>
</div>
<!-- <div class="lengedWrap" ng-show="dimenId && dimenId!='-all' && showDemistion()"> -->
<div class="lengedWrap" ng-show="dimenId!='-all'">
<div class="searchWrap searchSpec clearfix" style="float:none;">
<input type="text" class="searchIpt selectIpt" ng-model="swtxt" placeholder="关键字搜索">
</div>
<ul class="hm-scroll">
<li ng-repeat="name in lengedNames | filter:swtxt track by $index" ng-class="lengedClass(name)" ng-click="changeChartData(name)">
<span class="sign" ng-style="lengedBgStyle(name)"></span>{{name}}
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="chartWrap clearfix">
<div class="chartWrapItem nothborder">
<div class="chartModule">
<span>{{define.name || typesname}}的留存趋势详情</span>
<export-button export-condition="myChartDataCondition" ng-if="infolist.val && infolist.val.length>0"></export-button>
</div>
<is-loading ng-if="infolistLoading"></is-loading>
<div class="tableList" ng-show="!infolistLoading" style="background-color: #fff;">
<table ng-show="infolist.val.length>0">
<tr>
<th ng-repeat="title in infolist.name track by $index" class="p">
{{title}}
</th>
</tr>
<tr ng-repeat="info in infolist.val track by $index" >
<td ng-repeat="col in infolist.columnkey track by $index" ng-class="{'name':$index==0}" ng-click="subDetail(info,$index)" ng-style="getBgColor(info['rate_' + col],$index,1)">
{{info[col]}}
<p ng-if="$index>1">{{info['rate_' + col]}}%</p>
</td>
</tr>
</table>
<no-data ng-if="!infolist.val || infolist.val.length==0"></no-data>
</div>
</div>
</div>
<div class="chartWrap clearfix" ng-show="showDetail">
<div class="chartWrapItem nothborder">
<div class="chartModule">
<span>{{define.name || typesname}}的留存明细</span>
<em class="ml10" style="font-size: 14px;">({{detailInfoTitle}})</em>
<export-button export-condition="detailInfoCondition"></export-button>
</div>
<is-loading ng-if="detailInfoLoading"></is-loading>
<div class="tableList" ng-show="!detailInfoLoading" style="background-color: #fff;">
<table>
<tr>
<th>日期</th>
<th ng-repeat="title in detailInfo.name track by $index" ng-if="$index>0">
{{title}}
</th>
</tr>
<tr ng-repeat="info in detailInfo.val track by $index" >
<td ng-repeat="col in detailInfo.columnkey track by $index" ng-style="getBgColor(info['rate_' + col],$index,2)">
{{info[col]}}
<p ng-if="$index>1">{{info['rate_' + col]}}%</p>
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
<div class="openTipWin" ng-show="wantDelete">
<div class="closeGray" ng-click="closeWin()"></div>
<div class="tipCont">
<span ng-show="custommenus.length>0">
报表“{{delDefine.name}}”正在被
<span ng-repeat="custommenu in custommenus" ng-click="gotoCustonMenu(custommenu.id)">
<span class="customname">{{custommenu.name}}</span>
<span ng-show="!$last"></span></span>
{{custommenus.length}}个看单使用<br/>
删除后对应看单将不会再显示该报表,是否确认删除?
</span>
<span ng-show="!custommenus">
您正在删除报表“{{delDefine.name}}”,是否确认删除?
</span>
</div>
<div class="openBtnGroup clearfix">
<div class="btn8 mr20" ng-click="closeWin()">取消</div>
<div class="btn8" ng-click="doDelete()">确定</div>
</div>
</div>
<div class="openTipWin" ng-show="wantSave">
<div class="closeGray" ng-click="closeWin(2)"></div>
<div class="tipCont" style="text-align: left;">
<p class="mb10">请输入模板名称:</p>
<div>
<input type="text" class="iptform" ng-model="ename" style="width:300px;" placeholder="文字限定在20个汉字以内">
<div class="btn5 ml10 btnblock conwidth" ng-click="save(1)">保存</div>
</div>
</div>
</div>
\ No newline at end of file
<div class="popchannellist" ng-show="popchannellist" ng-class="{'doshow':popchannellist}" stop-event>
<div class="title">
<span ng-click="changeType('ry_coop')" ng-class="{'active': channType==='ry_coop'}" ng-if="!type">常规渠道</span>
<span ng-click="changeType(null)" ng-class="{'active': channType===null}">自定义渠道</span>
<span ng-click="changeType('ry_bd')" ng-class="{'active': channType==='ry_bd'}" ng-if="!type">SEM渠道</span>
<div class="right" ng-click="popchannellist = false;"></div>
</div>
<div class="subtitle">
<input type="text" class="iptform" ng-model="channelfilter" style="width:80px;height:25px;" placeholder="搜索关键字" />
<span ng-click="letter='abcdefg'" ng-class="{active:letter=='abcdefg'}" class="ml10">A~G</span>
<span ng-click="letter='hijklmn'" ng-class="{active:letter=='hijklmn'}">H~N</span>
<span ng-click="letter='opqrst'" ng-class="{active:letter=='opqrst'}">O~T</span>
<span ng-click="letter='uvwxyz'" ng-class="{active:letter=='uvwxyz'}">U~Z</span>
<span ng-click="letter='0123456789'" ng-class="{active:letter=='0123456789'}">0~9</span>
<span ng-show="channType!='ry_bd' && appplattype==2" class="sline ml10">
<span ng-click="category='ADVERTISING'" ng-class="{active:category == 'ADVERTISING'}">分链接</span>
<span ng-click="category='APPMARKET'" ng-class="{active:category == 'APPMARKET'}">分包</span>
</span>
<em class="ckhand right" ng-if="(channType===null || !channType) && isSuper" ng-click="goChannel()">
渠道管理
</em>
</div>
<ul class="poplist">
<li ng-class="{'active':curchid == channel.id}" title="{{channel.name}}" ng-repeat="channel in curChannelList | charfilter:letter | filter:{name:channelfilter} | orderBy:'firstchar' track by $index" ng-click="clickChannel(channel)">{{channel.name}}</li>
</ul>
</div>
\ No newline at end of file
<div style="width:100%;" class="clearfix">
<is-loading ng-if="chartLoading"></is-loading>
<div class="nodataTxt" ng-show="!chartLoading && chartData.val.length==0" style="height:308px;">NO DATA</div>
<div class="chartInfo" ng-show="!chartLoading && chartData.val.length>0 && isChart"></div>
<div class="tableList chartList hm-scroll" ng-if="!chartLoading && chartData.val.length>0 && !isChart">
<table fix-header title-name="chartData.name">
<thead>
<tr>
<!-- <th>序号</th> -->
<th>{{chartData.column[0]}}</th>
<th ng-repeat="title in chartData.name track by $index">
{{title}}
<!-- <span class="sortWrap" ng-click="reverse=!reverse;order(listInfo.columnkey[$index], reverse)">
<span class="ascIcon" ng-class="{'active':sortCol==listInfo.columnkey[$index] && !reverse}"></span>
<span class="descIcon" ng-class="{'active':sortCol==listInfo.columnkey[$index] && reverse}"></span>
</span> -->
</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="k in chartData.key track by $index">
<!-- <td>{{$index+1}}</td> -->
<td>{{k}}</td>
<td ng-repeat="col in chartData.name track by $index">{{chartData.val[$index][$parent.$index]}}</td>
</tr>
</tbody>
</table>
</div>
<div class="eptWrapGroup clearfix" style="margin-right: 0px;" ng-if="!chartLoading && chartData.val.length>0 && chartCondition">
<div class="eptWrap lc" ng-click="changeChart(true)" ng-class="{'active':isChart}">
<span class="eptChart"></span>
</div>
<div class="eptWrap rc" ng-click="changeChart(false)" ng-class="{'active':!isChart}">
<span class="eptList"></span>
</div>
<div class="eptWrap ml10" ng-click="exportData()" ng-if="iscanExport">
<span class="eptOut"></span>
</div>
</div>
</div>
<div class="customBigWin">
<div class="conditionWin eventBox" style="top:0px;" ng-if="type=='eventstats'">
<div class="conditionItem">
<span>展示事件:</span>
<select-list meau-info="eventList" meau-id="eventId" meau-data="eventInit" meau-name="eventinitname" keyid="eventName" keyname="eventNameAlias" meau-refresh="evtrefresh" meau-red="evnullevent"></select-list>
<span ng-show="event.id">
<span class="ml20">展示属性:</span>
<select-t-list meau-info="propertyList" meau-id="propertyId" meau-data="propertyInit" keyid="attr" keyname="attrAlias" meau-refresh="prorefresh" meau-name="properinitname" meau-typekey="['default','custom']" meau-typename="['默认属性','']" meau-red="evnullevent"></select-t-list>
</span>
<select-list meau-info="sumtypeList" meau-id="sumtypeId" meau-data="sumtypeInit" keyid="attr" keyname="attrAlias" meau-name="suminitname" ng-show="event.second" meau-red="evnullevent"></select-list>
</div>
<div style="padding-bottom: 20px;" ng-class="{'conditionEventItem':event.params && getEventParamsNum(event)>5}">
<div class="profileItemWrap p">
<div class="operInfo" style="bottom:35px;" ng-show="event.params && getEventParamsNum(event)>1">
<div class="operBtn" ng-click="changeRel(event)">{{event.relation}}</div>
</div>
<div class="profileItem" ng-repeat="item in event.params track by $index" ng-show="item.show!=false">
<profile-item info-list="event.paramsList" item-info="item" item-type="event" item-event="eventId"></profile-item>
<span class="removeSpan" ng-click="removeEventParams(event,item)">取消</span>
</div>
<div class="addAttrBtn ml10" ng-click="addEventParams(event)" ng-class="{'dis':getEventParamsNum(event)>=3}">
<span class="addAttrIcon"></span><span class="ckhand">添加事件属性筛选</span>
</div>
</div>
</div>
<div class="conditionBoxBottom">
<div class="right mt20">
<div class="btn3 btnblock mr10 mybtn h30" ng-click="eventSave()">保存</div>
</div>
</div>
</div>
<div class="conditionWin eventBox" ng-if="type=='retention'">
<div class="funnelWrap clearfix" ng-repeat="event in eventInfo track by $index" ng-class="{'last':$index>0}">
<div class="eventItem clearfix p" ng-style="event.style">
<div class="label txtLabel" ng-if="$index==0">初始行为:</div>
<div class="label txtLabel" ng-if="$index==1">回访行为:</div>
<select-list meau-info="eventList" meau-id2="event.eventid" meau-data="event.eventinit" meau-name="event.eventinitname" class="eventItemsel" keyid="eventName" keyname="eventNameAlias" meau-red="event.nullevent"></select-list>
<div class="profileItemWrap p">
<div class="operInfo" style="bottom:35px;" ng-show="event.params && getEventParamsNum(event)>1">
<div class="operBtn" ng-click="changeRel(event)">{{event.relation}}</div>
</div>
<div class="profileItem" ng-repeat="item in event.params track by $index" ng-show="item.show!=false">
<profile-item info-list="event.paramsList" item-info="item" item-type="event" item-event="event.event"></profile-item>
<span class="removeSpan" ng-click="removeEventParams(event,item)">取消</span>
</div>
<span class="ml10 addAttrBtn" ng-click="addEventParams(event)" ng-class="{'dis':getEventParamsNum(event)>=3}" style="display: inline-block;">
<span class="addAttrIcon"></span><span class="ckhand">添加事件属性筛选</span>
</span>
</div>
</div>
</div>
<div class="conditionBoxBottom">
<div class="right mt20">
<div class="btn3 btnblock mr10 mybtn h30" ng-click="okSave()">保存</div>
</div>
</div>
</div>
<div class="conditionWin eventBox" ng-if="type=='funnel'">
<div class="funnelWrap" ng-class="{'max400':eventInfo.length>=5}">
<div ng-repeat="event in eventInfo track by $index" ng-show="event.show!=false">
<div class="eventItem clearfix p" ng-style="event.style">
<div class="label txtLabel">第{{event.steps}}步:</div>
<select-list meau-info="eventList" meau-id2="event.eventid" meau-data="event.eventinit" meau-name="event.eventinitname" class="eventItemsel" keyid="eventName" keyname="eventNameAlias" meau-red="event.nullevent"></select-list>
<div class="profileItemWrap p">
<div class="operInfo" style="bottom:35px;" ng-show="event.params && getEventParamsNum(event)>1">
<div class="operBtn" ng-click="changeRel(event)">{{event.relation}}</div>
</div>
<div class="profileItem" ng-repeat="item in event.params track by $index" ng-show="item.show!=false">
<profile-item info-list="event.paramsList" item-info="item" item-type="event" item-event="event.event"></profile-item>
<span class="removeSpan" ng-click="removeEventParams(event,item)">取消</span>
</div>
<span class="ml10 addAttrBtn" ng-click="addEventParams(event)" ng-class="{'dis':getEventParamsNum(event)>=3}">
<span class="addAttrIcon"></span><span class="ckhand">添加事件属性筛选</span>
</span>
</div>
<span class="delItemIcon right" ng-click="removeEvent(event)"></span>
</div>
</div>
</div>
<div class="conditionBoxBottom">
<div class="right mt20">
<div class="btn3 btnblock mr10 mybtn h30" ng-click="okSave()">保存</div>
</div>
</div>
</div>
</div>
\ No newline at end of file
<div stop-event ng-class="{'active':selme}" ng-click="selme=!selme;" ng-mouseleave="selme=false;">
<span class="cal" ng-show="options.months>1"></span>
<el class="dateletter" stop-event ng-click="showDateTable()" ng-transclude></el>
<div class="arrowIcon"></div>
<div class="dateWarp" ng-show="showFlag" style="width:220px;" stop-event>
<div class="date-single date-month">
<div class="date-title">
<span class="iconleft left" ng-click="changeYear(-1)"></span>
<div class="date-label center-block">{{nowyear}}</div>
<span class="iconright right" ng-click="changeYear(1)"></span>
</div>
<table cellpadding="0" cellspacing="0" class="date-table">
<tbody>
<tr ng-repeat="row in monthList">
<td ng-repeat="cell in row">
<a class="pika-button pika-day"
ng-click="chooseDate(cell)"
ng-class="cellClass(cell)">
{{cell.month}}月
</a>
</td>
</tr>
</tbody>
</table>
</div>
<div class='date-footer clearfix' ng-show="options.months>1">
<div class="right">
<a class="btn3 mr10" ng-click="complete()">确定</a>
<a class="btn2" ng-click="cancel()">取消</a>
</div>
</div>
<div class='date-footer clearfix' ng-show="options.months==1">
<a class="btn3 mr5" ng-click="cancel()" style="float:right;">关闭</a>
</div>
</div>
</div>
\ No newline at end of file
<div stop-event ng-class="{'active':selme && operSel}" ng-click="selme=!selme;showDateTable();" ng-mouseleave="selme=false;">
<span class="cal" ng-show="panels.length>1"></span>
<el class="dateletter" ng-transclude></el>
<div class="arrowIcon"></div>
<div class="dateWarp dateTabRange" ng-show="showFlag" ng-style="wstyle" stop-event>
<div class="left">
<div class="date-single" ng-repeat="p in panels" style="height:270px;">
<div class="date-title">
<span class="iconleft left" ng-click="changeMonth($index,p.date,-1)" ng-show="$index===0"></span>
<div class="date-label center-block">{{p.date | date: "yyyy-MM"}}</div>
<span class="iconright right" ng-click="changeMonth($index,p.date,1)" ng-show="$index===panels.length-1"></span>
</div>
<table cellpadding="0" cellspacing="0" class="date-table">
<thead>
<th scope="col" ng-repeat="week in options.abbrWeeks">{{week}}</th>
</thead>
<tbody>
<tr ng-repeat="row in p.weeks">
<td ng-repeat="cell in row">
<a class="pika-button pika-day"
ng-click="chooseDate(cell)"
ng-class="cellClass(cell)">
{{cell.day | date: "d"}}
</a>
</td>
</tr>
</tbody>
</table>
</div>
<div class='date-footer' ng-show="panels.length>1">
<span class='date-input'>
<label>日期范围:</label>
<input type="text" ng-model='customStrat' ng-blur='startDate()' readonly="true" style="width:90px;" />
<label></label>
<input type="text" ng-model='customEnd' ng-blur='endDate()' readonly="true" style="width:90px;" />
</span>
<div class="right">
<a class="btn3 mr10" ng-click="complete()">确定</a>
<a class="btn2" ng-click="cancel()">取消</a>
</div>
</div>
<div class='date-footer clearfix' ng-show="panels.length==1">
<a class="btn3 mr5" ng-click="cancel()" style="float:right;">关闭</a>
</div>
</div>
<div class="relativeDateWrap" ng-show="panels.length>1">
<a class="btn" ng-click="setRelDate('yesday')" ng-class="{'active':selDayflag=='yesday'}">昨日</a>
<a class="btn" ng-click="setRelDate('d7')" ng-class="{'active':selDayflag=='d7'}">近7天</a>
<a class="btn" ng-click="setRelDate('d14')" ng-class="{'active':selDayflag=='d14'}">近14天</a>
<a class="btn" ng-click="setRelDate('d30')" ng-class="{'active':selDayflag=='d30'}">近30天</a>
<a class="btn" ng-click="setRelDate('-w1')" ng-class="{'active':selDayflag=='-w1'}">上周</a>
<a class="btn" ng-click="setRelDate('w0')" ng-class="{'active':selDayflag=='w0'}">本周</a>
<a class="btn" ng-click="setRelDate('-m1')" ng-class="{'active':selDayflag=='-m1'}">上月</a>
<a class="btn" ng-click="setRelDate('m0')" ng-class="{'active':selDayflag=='m0'}">本月</a>
</div>
</div>
</div>
\ No newline at end of file
<div class="timeBtnWrap clearfix">
<div class="btn" ng-class="{'active':timeflag=='today'}" ng-click="changeDate('today')" ng-show="noToday!=true">今日</div>
<div class="btn" ng-class="{'active':timeflag=='yesday'}" ng-click="changeDate('yesday')">昨日</div>
<div class="btn" ng-class="{'active':timeflag=='d7'}" ng-click="changeDate('d7')">近7天</div>
<div class="btn" ng-class="{'active':timeflag=='d14'}" ng-click="changeDate('d14')">近14天</div>
<div class="btn" ng-class="{'active':timeflag=='d30'}" ng-click="changeDate('d30')">近30天</div>
<my-datepicker class="dateRange" ng-show="!nodrange" init-day="mydate" max-day2="maxDay" range-days2="myrangeday"><span>{{datestr}}</span></my-datepicker>
</div>
\ No newline at end of file
<div stop-event ng-class="{'active':selme}" ng-click="selme=!selme;" ng-mouseleave="selme=false;">
<span class="cal" ng-show="options.weeks>1"></span>
<el class="dateletter" stop-event ng-click="showDateTable()" ng-transclude></el>
<div class="arrowIcon"></div>
<div class="dateWarp" ng-show="showFlag" style="width:370px;" stop-event>
<div class="date-single date-week">
<div class="date-title">
<span class="iconleft left" ng-click="changeYear(-1)"></span>
<div class="date-label center-block">{{nowyear}}</div>
<span class="iconright right" ng-click="changeYear(1)"></span>
</div>
<table cellpadding="0" cellspacing="0" class="date-table">
<tbody>
<tr ng-repeat="row in weeklist">
<td ng-repeat="cell in row">
<a class="pika-button pika-day"
ng-click="chooseDate(cell)"
ng-class="cellClass(cell)">
第{{cell.week}}周
</a>
</td>
</tr>
</tbody>
</table>
</div>
<div class='date-footer clearfix' ng-show="options.weeks>1">
<div class="right">
<a class="btn3 mr10" ng-click="complete()">确定</a>
<a class="btn2" ng-click="cancel()">取消</a>
</div>
</div>
<div class='date-footer clearfix' ng-show="options.weeks==1">
<a class="btn3 mr5" ng-click="cancel()" style="float:right;">关闭</a>
</div>
</div>
</div>
\ No newline at end of file
<div class="dialogWin tipwin" ng-show="status==true">
<div class="dialogTitle">
<label>提示</label>
<div class="closeIcon fr mt10 mr10" ng-click="hideWin()"></div>
</div>
<div class="dialogContent">
<div class="formInfo">
<p class="ptip" ng-transclude></p>
</div>
<div class="btnTwoWrap clearfix">
<div class="btn6 mr10" ng-click="hideWin()" style="width:70px;text-align: center;">取消</div>
<div class="btn5" ng-click="delfn()" style="width:70px;text-align: center;">{{btnname}}</div>
</div>
</div>
</div>
\ No newline at end of file
<div class="eptWrap" ng-click="exportData()" ng-style="style1" ng-hide="iscanExport">
<span class="eptOut"></span>
</div>
<div class="filpinfo" ng-show="page.totals > minNum">
<select-list meau-info="everyList" meau-id="everyId" meau-data="everyInit" class="upSList" style="z-index: 5;"></select-list>
<span class="numlabel ml10">共计{{page.totals}}条</span>
<div class="right clearfix">
<div class="btn2 big" ng-click="goto(2)" ng-class="{'dis':page.curpage==1}">&lt;</div>
<span class="numlabel left mr5"><input type="number" min="1" max="{{page.totalpages}}" class="iptform iptnum" ng-enter="goto(5)" ng-blur="goto(5)" ng-model="gonum" style="width:60px;text-align: center;" />页/{{page.totalpages}}页</span>
<div class="btn2 big" ng-click="goto(3)" ng-class="{'dis':page.curpage==page.totalpages || page.totalpages<=1}">&gt;</div>
</div>
</div>
<div class="filpinfo" ng-show="page.totals > minNum">
<select-list meau-info="everyList" meau-id="everyId" meau-data="everyInit" class="upSList"></select-list>
<span class="numlabel ml10">共计{{page.totals}}条</span>
<div class="right clearfix">
<div class="btn2 big" ng-click="goto(2)" ng-class="{'dis':page.curpage==1}">&lt;</div>
<span class="numlabel left mr5"><input type="number" min="1" max="{{page.totalpages}}" class="iptform iptnum" ng-enter="goto(5)" ng-blur="goto(5)" ng-model="gonum" style="width:60px;text-align: center;" />页/{{page.totalpages}}页</span>
<div class="btn2 big" ng-click="goto(3)" ng-class="{'dis':page.curpage==page.totalpages || page.totalpages<=1}">&gt;</div>
</div>
</div>
<span class="p" ng-click="showTip()" ng-style="spanStyle" stop-event>
<div class="helpTipWrap" ng-bind-html="tipcontent | filterHtml"></div>
</span>
\ No newline at end of file
<div class="loadingWrap p">
<div class="spinner">
<div class="rect1"></div>
<div class="rect2"></div>
<div class="rect3"></div>
<div class="rect4"></div>
<div class="rect5"></div>
</div>
</div>
\ No newline at end of file
<div class="nodataTxt">NO DATA</div>
\ No newline at end of file
<div class="dialogWin tipwin" ng-show="status==true">
<div class="dialogTitle">
<label>{{title}}</label>
</div>
<div class="dialogContent">
<div class="formInfo">
<p class="ptip" ng-transclude></p>
<div class="btnTwoWrap clearfix" style="margin-top: 20px;width:80px;">
<div class="btn5 mr10" ng-click="crmWin()" style="width:70px;text-align: center;">确定</div>
</div>
</div>
</div>
</div>
\ No newline at end of file
<select-list style="width:140px;" meau-info="infoList" meau-id="profileid" meau-data="profileinit" meau-name="profileinitname" class="cldItem" keyid="attr" keyname="attrAlias" meau-red="attrnull"></select-list>
<select-list meau-info="operationList" meau-id="operationId" meau-data="operationinit" style="width:100px;" class="cldItem" nosearch="true"></select-list>
<div class="iptform moredata p" class="cldItem" ng-show="showtype=='string' || !showtype" ng-class="{'iptnull':valnull}" ng-mouseleave="showsel=false" ng-mouseenter="showsel=true">
<span>
<span class="valLabel delLabel" ng-repeat="val in valueList track by $index" ng-click="removeValue($index)" title="{{val}}">{{val}}</span>
</span>
<input type="text" class="iptform nobr" id="valTxt" ng-class="{'hasletter':valueList.length>0}" ng-model="valTxt" ng-enter="setValue(valTxt)" ng-keydown="writeValue(valTxt)" placeholder="{{txtTip}}" style="padding-left:0px;" ng-style="valStyle" stop-event ng-mouseenter="getValueList()"/>
<div class="optionList" ng-show="showsel">
<ul>
<li ng-click="setValue(valTxt)" ng-show="valTxt && valTxt!=''">{{valTxt}}</li>
<li ng-repeat="val in valueSelList | filter:valTxt track by $index" ng-click="setValue(val)" ng-class="{'active':valueList.indexOf(val)>-1}">{{val}}</li>
</ul>
</div>
</div>
<span ng-show="showtype=='number'">
<input type="text" class="iptform" ng-model="valTxt1" style="width:100px;" ng-change="setNumberVal()" number-txt min="0" ng-class="{'iptnull':valnull&&(!valTxt1 || valTxt1=='')}">
<div class="numIconWrap">
<div class="upNumIcon" ng-click="addNumber(1,1)"></div>
<div class="downNumIcon" ng-click="addNumber(1,-1)"></div>
</div>
<span ng-show="valflag==2">
<span class="ml5 mr5 label">-</span>
<input type="text" class="iptform" ng-model="valTxt2" style="width:100px;" ng-change="setNumberVal()" min="0" number-txt ng-class="{'iptnull':valnull&&(!valTxt2 || valTxt2=='')}">
<div class="numIconWrap">
<div class="upNumIcon" ng-click="addNumber(2,1)"></div>
<div class="downNumIcon" ng-click="addNumber(2,-1)"></div>
</div>
</span>
</span>
<span ng-show="showtype=='date'">
<single-datepicker class="dateRange single" options="dateOps" date-name="sdate"><span>{{sdate}}</span></single-datepicker>
<span ng-show="valflag==2">
<span class="ml5 mr5 label">-</span>
<single-datepicker class="dateRange single" options="dateOps" date-name="edate"><span>{{edate}}</span></single-datepicker>
</span>
</span>
\ No newline at end of file
<div class="searchGroup p" ng-class="{'active':isactive}" ng-mouseenter="isactive=true" ng-mouseleave="isactive=false;">
<input type="text" ng-model="srhTxt" placeholder="输入搜索关键词">
<div class="btns" ng-click="query()">搜索</div>
<div class="removeTxt" ng-if="srhTxt!=''" ng-click="doNull()"></div>
</div>
\ No newline at end of file
<div class="selList app-type" ng-class="{'active':selme && operSel,'iptnull':meauRed,'dis':!operSel}" ng-click="selme=!selme;" ng-mouseleave="selme=false;">
<span>
<b ng-if="currentInfo.platform" ng-class="{'Android':'android','iOS':'apple','H5':'web'}[currentInfo.platform]"></b>
<em ng-if="currentInfo.platform" class="iconfont" ng-class="{'Android':'icon-android','iOS':'icon-ios','H5':'icon-wrap'}[currentInfo.platform]" style="color:#fff;"></em>
{{selName}}</span>
<div ng-class="{'whiteArrowIcon':iconType=='white','arrowIcon':!iconType,'blueArrow':iconType=='blue'}" ng-style="{'margin-top':selId=='line' || selId=='columnstack' || selId=='pie' || selId=='table'?'10px':''}"></div>
<div class="optionList" ng-show="selme && operSel" ng-class="{'chartType':selId=='line' || selId=='columnstack' || selId=='pie' || selId=='table'}">
<div ng-show="meauInfo.length>5 && showsearch && !meauInfo[0].dsflag" class="searchWrap" style="width: 100%;margin-top:5px;margin-bottom: 5px;float:left;box-sizing: border-box;padding:0px 5px;" stop-event>
<input type="text" class="searchIpt selectIpt" ng-model="searchlitxt" placeholder="关键字搜索" style="width:100%;border:1px solid #c9c9c9;">
</div>
<div class="clear"></div>
<ul style="max-height: 170px;">
<li ng-repeat="m in meauInfo | filterList:searchlitxt:keyname track by $index" ng-click="clickMeau(m)" ng-class="{'active':selId == m[keyid]}" title="{{m[keyname]}}" ng-style="{'border-bottom': m.border?'1px solid #dcdcdc':'','height':'35px'}" ng-if="m.attr!='usergroup'">
<i ng-if="m.platform" ng-class="{'Android':'android','iOS':'apple','H5':'web','line':'line','columnstack':'columnstack','pie':'pie','table':'table'}[m.platform]"></i>
<em ng-if="m.platform" class="iconfont" ng-class="{'Android':'icon-android','iOS':'icon-ios','H5':'icon-wrap','line':'icon-line','columnstack':'icon-columnstack','pie':'icon-pie','table':'icon-table'}[m.platform]"></em>
{{m[keyname]}}<em ng-if="m.templates && m.categoryName" class="label">({{m.categoryName}})</em>
</li>
</ul>
</div>
</div>
\ No newline at end of file
<div class="selList" ng-class="{'active':selme && operSel,'iptnull':meauRed,'dis':!operSel}" ng-click="selme=!selme;" ng-mouseleave="selme=false;">
<span>{{selName}}</span>
<div class="arrowIcon"></div>
<div class="optionList even" ng-show="selme && operSel">
<div ng-show="meauInfo.length>5 && typeName.length==2" class="searchWrap" style="width: 100%;margin-top:5px;margin-bottom: 5px;float:left;box-sizing: border-box;padding:0px 5px;" stop-event>
<input type="text" class="searchIpt selectIpt" ng-model="searchlitxt" placeholder="关键字搜索" style="width:100%;border:1px solid #c9c9c9;">
</div>
<div ng-repeat="type in typeKey track by $index" ng-class="{'border':$index>0 && haslist(type)}" ng-show="haslist(type)">
<div class="liTypeTitle" ng-if="typeName[$index]!='' && ((virtual==type || nature==type) || !searchlitxt)">{{typeName[$index]}}</div>
<ul>
<li ng-repeat="m in meauInfo | filterList:searchlitxt:keyname track by $index" ng-click="clickMeau(m)" ng-class="{'active':selId == m[keyid] && (meauType == m.type || !meauType)}" title="{{m[keyname]}}" ng-if="m.type == type || m.dimensionType == type">
{{m[keyname]}}
</li>
</ul>
</div>
</div>
</div>
\ No newline at end of file
<div class="selList" ng-class="{'active':selme,'iptnull':meauRed}" ng-click="selme=true;" ng-mouseleave="selme=false;">
<span ng-if="selIDS.length>0" title="{{selNames.join(',')}}">{{selNames.join(",")}}</span>
<span ng-if="selIDS.length==0">{{selName}}</span>
<div class="arrowIcon"></div>
<div class="optionList" ng-show="selme" stop-event>
<div class="searchWrap ml10" style="float: left;" ng-show="meauInfo.length>5">
<input type="text" class="searchIpt" ng-model="searchlitxt" placeholder="输入搜索关键字" style="border:1px solid #c9c9c9;">
</div>
<div class="clear"></div>
<ul>
<li ng-show="meauInfo.length>1">
<span ng-click="checkAll()">
<span class="checkbox" ng-class="{'active':ischeckall}" style="margin-right: 6px;"></span>全选
</span>
</li>
<li ng-repeat="m in meauInfo | filterList:searchlitxt:keyname track by $index" ng-click="clickMeau(m)" ng-class="{'active':selId == m[keyid]}" title="{{m[keyname]}}">
<span class="checkbox" style="margin-right: 6px;" ng-class="{'active':selIDS.indexOf(m[keyid])>-1}"></span>{{m[keyname]}}
</li>
</ul>
<div style="padding:10px;width:60px;margin:0 auto;" class="clearfix" ng-show="keyid=='id'">
<div class="btn4" ng-click="okSelect()">确定</div>
</div>
</div>
</div>
\ No newline at end of file
<div class="selList" ng-class="{'active':selme}" ng-click="showSelWin()" stop-event>
<span>{{selName}}</span>
<div class="arrowIcon"></div>
<div class="optionList" ng-show="selme">
<div class="searchWrap ml10">
<input type="text" class="searchIpt" ng-model="seclitxt" placeholder="输入搜索关键字">
</div>
<div class="clear"></div>
<ul style="max-height: 170px;">
<div class="darklabel ml10">通用事件属性</div>
<li ng-repeat="m in meauInfo | filter:{name:seclitxt} track by $index" ng-click="clickMeau(m)" title="{{m.name}}">
<span class="radio" ng-class="{'active':selId == m.id}" style="margin-right: 6px;"></span>{{m.name}}
</li>
</ul>
</div>
<div class="optionList" ng-show="secondSel" ng-style="secondStyle" stop-event>
<div class="searchWrap ml10">
<input type="text" class="searchIpt" ng-model="searchlitxt" placeholder="输入搜索关键字">
</div>
<div class="clear"></div>
<ul style="max-height: 170px;">
<li ng-repeat="v in secondList | filter:searchlitxt track by $index" ng-click="clickSecMeau(v,$index)" title="{{v}}">
<span class="checkbox" style="margin-right: 6px;" ng-class="{'active':secIDS.indexOf(v)>-1}"></span>{{v}}
</li>
</ul>
<div style="padding:10px;width:100px;margin:0 auto;" class="clearfix">
<div class="btn4" ng-click="okSelect()">确定</div>
<div class="btn2" ng-click="selme=false;secondSel=false">取消</div>
</div>
</div>
</div>
<div class="dialogWin tipwin" ng-show="status==true">
<div class="dialogTitle">
<label>{{title}}</label>
<div class="closeBtn right mr10" ng-click="hideWin()"></div>
</div>
<div class="dialogContent">
<div class="formInfo">
<p class="ptip" ng-transclude></p>
<div class="btnTwoWrap clearfix">
<div class="btn5 mr10" ng-click="crmWin()" style="width:70px;text-align: center;">{{okTitle}}</div>
<div class="btn6" ng-click="hideWin()" style="width:70px;text-align: center;">{{noTitle}}</div>
</div>
</div>
</div>
</div>
\ No newline at end of file
<div class="content padBottom80">
<div class="demoListTitle">TrackingIO目前提供了下面五个产品体验Demo,点击即可查看。</div>
<div class="demoListNotes">注:Demo数据为非真实业务数据,仅为企业提供可适用的业务场景参考。</div>
<div class="demoList">电商产品<span><a href ng-click="goDemo('5eb29a7e239537f4bedef93f8289d1c6')">点击查看>></a></span></div>
<div class="demoListWarp">
<div class="demoListLeft">
<li>
<p class="num">689573</p>
<p class="name">推广点击量</p>
</li>
<li>
<p class="num">84562</p>
<p class="name">推广激活量</p>
</li>
<li>
<p class="num">37935</p>
<p class="name">自然量激活</p>
</li>
<li>
<p class="num">56723</p>
<p class="name">作弊点击量</p>
</li>
<li>
<p class="num">5623</p>
<p class="name">作弊激活量</p>
</li>
</div>
<div class="demoListright">
<li>
<p class="num">21</p>
<p class="name">事件种类数</p>
</li>
<li>
<p class="num">68</p>
<p class="name">事件属性数</p>
</li>
<li>
<p class="num">15</p>
<p class="name">用户属性数</p>
</li>
<li>
<p class="num">59832</p>
<p class="name">本月事件总次数</p>
</li>
<li>
<p class="num">61234</p>
<p class="name">上月事件总次数</p>
</li>
</div>
<div class="clear"></div>
</div>
<div class="demoList">金融产品<span><a href ng-click="goDemo('f4c6764d10bec9a3c4bd4f79a442a947')">点击查看>></a></span></div>
<div class="demoListWarp">
<div class="demoListLeft">
<li>
<p class="num">944672</p>
<p class="name">推广点击量</p>
</li>
<li>
<p class="num">69234</p>
<p class="name">推广激活量</p>
</li>
<li>
<p class="num">52338</p>
<p class="name">自然量激活</p>
</li>
<li>
<p class="num">92343</p>
<p class="name">作弊点击量</p>
</li>
<li>
<p class="num">9235</p>
<p class="name">作弊激活量</p>
</li>
</div>
<div class="demoListright">
<li>
<p class="num">22</p>
<p class="name">事件种类数</p>
</li>
<li>
<p class="num">72</p>
<p class="name">事件属性数</p>
</li>
<li>
<p class="num">18</p>
<p class="name">用户属性数</p>
</li>
<li>
<p class="num">89235</p>
<p class="name">本月事件总次数</p>
</li>
<li>
<p class="num">83472</p>
<p class="name">上月事件总次数</p>
</li>
</div>
<div class="clear"></div>
</div>
<div class="demoList">直播产品<span><a href ng-click="goDemo('022da4f8bd53ac212141bd7fdfa9532d')">点击查看>></a></span></div>
<div class="demoListWarp">
<div class="demoListLeft">
<li>
<p class="num">589239</p>
<p class="name">推广点击量</p>
</li>
<li>
<p class="num">57093</p>
<p class="name">推广激活量</p>
</li>
<li>
<p class="num">48756</p>
<p class="name">自然量激活</p>
</li>
<li>
<p class="num">56723</p>
<p class="name">作弊点击量</p>
</li>
<li>
<p class="num">5623</p>
<p class="name">作弊激活量</p>
</li>
</div>
<div class="demoListright">
<li>
<p class="num">18</p>
<p class="name">事件种类数</p>
</li>
<li>
<p class="num">39</p>
<p class="name">事件属性数</p>
</li>
<li>
<p class="num">12</p>
<p class="name">用户属性数</p>
</li>
<li>
<p class="num">93886</p>
<p class="name">本月事件总次数</p>
</li>
<li>
<p class="num">89659</p>
<p class="name">上月事件总次数</p>
</li>
</div>
<div class="clear"></div>
</div>
<div class="demoList">H5产品<span><a href ng-click="goDemo('e0b3000ebd3f54b791a405f68d3e520c')">点击查看>></a></span></div>
<div class="demoListWarp">
<div class="demoListLeft">
<li>
<p class="num">78342</p>
<p class="name">推广点击量</p>
</li>
<li>
<p class="num">6098</p>
<p class="name">推广注册量</p>
</li>
<li>
<p class="num">4033</p>
<p class="name">自然注册量</p>
</li>
<li>
<p class="num">92124</p>
<p class="name">PV</p>
</li>
<li>
<p class="num">80934</p>
<p class="name">UV</p>
</li>
</div>
<div class="demoListright">
<li>
<p class="num">10</p>
<p class="name">事件种类数</p>
</li>
<li>
<p class="num">80</p>
<p class="name">事件属性数</p>
</li>
<li>
<p class="num">15</p>
<p class="name">用户属性数</p>
</li>
<li>
<p class="num">120834</p>
<p class="name">本月事件总次数</p>
</li>
<li>
<p class="num">140934</p>
<p class="name">上月事件总次数</p>
</li>
</div>
<div class="clear"></div>
</div>
<div class="demoList">常规产品<span><a ng-click="goDemo('e31caee07ebedf8c172267e73204802f')">点击查看>></a></span></div>
<div class="demoListWarp">
<div class="demoListLeft">
<li>
<p class="num">628765</p>
<p class="name">推广点击量</p>
</li>
<li>
<p class="num">78564</p>
<p class="name">推广激活量</p>
</li>
<li>
<p class="num">52378</p>
<p class="name">自然量激活</p>
</li>
<li>
<p class="num">42783</p>
<p class="name">作弊点击量</p>
</li>
<li>
<p class="num">4892</p>
<p class="name">作弊激活量</p>
</li>
</div>
<div class="demoListright">
<li>
<p class="num">14</p>
<p class="name">事件种类数</p>
</li>
<li>
<p class="num">28</p>
<p class="name">事件属性数</p>
</li>
<li>
<p class="num">8</p>
<p class="name">用户属性数</p>
</li>
<li>
<p class="num">67235</p>
<p class="name">本月事件总次数</p>
</li>
<li>
<p class="num">71542</p>
<p class="name">上月事件总次数</p>
</li>
</div>
<div class="clear"></div>
</div>
</div>
\ No newline at end of file
<div class="trackingiobg">
<div class="trackingioview">
<p class="tkiotilte">TrackingIO<span>(广告与行为分析平台)</span></p>
<p class="tkiotext">广告效果监测与用户行为分析平台,帮市场省钱,助产品赚钱</p>
<div class="tkiobutton">
<a href="login.html"><div class="btn1 button">登录使用</div></a>
<a href="/home.html#/home/demolist"><div class="btn2 button">体验DEMO</div></a>
</div>
</div>
</div>
<div class="mainTitle">TrackingIO优势</div>
<div class="content">
<div class="advantage">
<img src="images/ys1.png">
<p class="adTitle">数据中立</p>
<div class="adText">
TrackingIO独立于渠道方和开发者,帮您做精准的广告效果数据统计,使用自有研究的一套完善的反作弊体系,提供中立的广告效果监测服务。
</div>
</div>
<div class="advantage">
<img src="images/ys2.png">
<p class="adTitle">科学算法</p>
<div class="adText">
科学的分析方法才是评估广告推广的唯一方法,TrackingIO帮您做更深入的数据探究,发现优质的推广渠道,让您的广告费花有所值,帮您省钱。
</div>
</div>
<div class="advantage">
<img src="images/ys3.png">
<p class="adTitle">统计多维</p>
<div class="adText">
TrackingIO为您提供了一系列的统计工具,旨在帮您分析不同时间,不同地域,不同渠道的用户质量,便于您为产品的发展做决策,帮您挣钱。
</div>
</div>
<div class="advantage">
<img src="images/ys4.png">
<p class="adTitle">技术保障</p>
<div class="adText">
目前我们的整套系统建立在Hadoop生态之上,使用自有研发的ETL执行引擎来对任务进行调度,为您使用TrackingIO系统提供优质的技术保障。
</div>
</div>
<div class="clear"></div>
</div>
<div class="gruybg">
<div class="mainTitle">产品功能</div>
<div class="proWrap pro1">
<div class="proLeft">
<p class="proTitle">广告效果监测</p>
<p class="proText">监测,实时数据监测,帮您实时监控推广数据,及时调整广告策略;<br>效果,渠道价值分析,帮您深入分析渠道数据,筛选优质的推广渠道。</p>
</div>
</div>
<div class="proWrap pro2">
<div class="proRight">
<p class="proTitle">用户行为分析</p>
<p class="proText">看单,行业概览查看,帮您整理行业数据报表,快速了解产品用户情况;工具,事件分析工具,分析app的事件,留存,漏斗,用户画像等数据,详细了解用户行为。</p>
</div>
</div>
</div>
<div class="mainTitle">有哪些企业正在使用</div>
<div class="content">
<div class="userWrap">
<img ng-repeat="idx in [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]" src="images/logo/u{{idx}}.png">
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
<div class="gruybg">
<div class="mainTitle gruybg">我们已经合作了180家渠道</div>
<div class="content flexslider">
<ul class="slides">
<li>
<img ng-repeat="imgs in [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24]" src="images/coop/h{{imgs}}.png">
</li>
<li>
<img ng-repeat="imgs in [25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48]" src="images/coop/h{{imgs}}.png">
</li>
<li>
<img ng-repeat="imgs in [49,50]" src="images/coop/h{{imgs}}.png">
</li>
</ul>
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
\ No newline at end of file
<div class="bodyWrap demoWrap">
<div class="content">
<div class="demoLeft">
<div class="demoTitle">演示内容</div>
<div class="demoText">
<div class="blueCricle">1</div>渠道效果数据分析
</div>
<div class="demoText">
<div class="blueCricle">2</div>反作弊数据分析
</div>
<div class="demoText">
<div class="blueCricle">3</div>行业看单数据分析
</div>
<div class="demoText">
<div class="blueCricle">4</div>事件留存漏斗分析
</div>
</div>
<div class="demoRight" ng-show="!demoSuccess">
<div class="demoTitle">申请商务免费现场演示</div>
<div class="demoText">我们专业的商务用半小时给您讲解trackingio产品,</div>
<div class="demoText">让您快速的了解产品的功能和使用。</div>
<div class="demoText">请输入联系方式,我们会尽快联系您,并预约现场</div>
<div class="demoText">演示时间。</div>
<div class="demoForm">
<div class="demoLine">
<input type="text" name="name" ng-model="name" placeholder="姓名">
</div>
<div class="must">*</div>
<div class="errorWrap">
<div class="error" ng-if="tip.name.status">{{tip.name.txt}}</div>
</div>
<div class="demoLine">
<input type="text" name="phone" ng-model="phone" placeholder="手机号码">
</div>
<div class="must">*</div>
<div class="errorWrap">
<div class="error" ng-if="tip.phone.status">{{tip.phone.txt}}</div>
</div>
<div class="demoLine">
<input type="text" class="code" name="code" ng-model="code" placeholder="手机验证码" style="width: 180px;">
</div>
<div class="must">*</div>
<div class="errorWrap">
<div class="error" ng-if="tip.code.status">{{tip.code.txt}}</div>
</div>
<div class="codeClick" ng-show="sendtype==1" ng-click="send()">获取验证码</div>
<div class="codeClick gruy" ng-show="sendtype==2">{{time/1000}}秒后可发送</div>
<div class="btn" ng-click="save()">提交信息并预约</div>
</div>
</div>
<div class="demoRight" ng-show="demoSuccess">
<div class="demoIs">提交成功</div>
<div class="demoText">商务演示已提交申请,请等待公司的商务人员联系您。</div>
</div>
</div>
</div>
<div class="openBgDiv" ng-cloak ng-show="noActive==1"></div>
<div class="openTipWin" ng-cloak ng-show="noActive==1">
<div class="closeGray" ng-click="closeWin()"></div>
<p class="titleLogin">{{errorText}}</p>
</div>
<div class="openBgDiv" ng-cloak ng-show="noCode==1"></div>
<div class="openTipWin" ng-cloak ng-show="noCode==1">
<div class="closeGray" ng-click="closeCode()"></div>
<div class="imgCode">
<input type="text" class="iptform yma" ng-model="yema" placeholder="请输入验证码">
<div class="yawarp hand" ng-click="getImgInfo()">
<img src="" alt="" id="imgMa">
</div>
<div class="errorWrap">
<div class="error" ng-if="tip.yema.status">{{tip.yema.txt}}</div>
</div>
<div class="sendMessage" ng-click="sendMessage()">确定</div>
</div>
</div>
\ No newline at end of file
<div class="clearfix longTip rightTip tip0">
<ul class="customNav custleft">
<li ng-click="goPage('collect.event')">APP事件管理</li>
<li class="active" ng-click="goPage('collect.activityevent')">虚拟事件管理</li>
</ul>
</div>
<div class="chartWrap clearfix" style="margin-top: 20px;">
<div class="chartWrapItem grayhm titleChart nothborder">
<div class="chartModule">
<span>虚拟事件管理</span>
<div class="searchWrap">
<input type="text" class="searchIpt" ng-model="searchTxt" placeholder="输入包含事件搜索">
</div>
<div class="btn10 mr10" style="float: right;margin-top: 9px;" ng-click="gopage()" ng-if="hasEditPower()">
<span class="formAddIcon"></span>新增虚拟事件
</div>
</div>
<div class="tableList">
<table>
<tr>
<th>序号</th>
<th>虚拟事件名称</th>
<th>包含事件</th>
<th ng-if="hasEditPower()">操作</th>
</tr>
<tr ng-repeat="info in eventList | filterList:searchTxt:'eventListName' track by $index" ng-if="$index>flipPage.start && $index < flipPage.end">
<td>{{$index+1}}</td>
<td>{{info.ch_name}}</td>
<td>{{info.eventListName}}</td>
<td class="formOper" ng-if="hasEditPower()">
<div class="formBtn" ng-click="gopage(info)">
<span class="editIcon"></span>编辑
</div>
<div class="btn4" ng-if="info.enable==false && info.type=='userdefine'" ng-click="onUser(info.id)">启用</div>
<div class="btn2" ng-if="info.enable==true && info.type=='userdefine'" ng-click="offUser(info.id)">停用</div>
</td>
</tr>
</table>
<flip-info list-info="eventList" search-txt="searchTxt" search-name="eventList"></flip-info>
</div>
</div>
</div>
\ No newline at end of file
<ul class="tabMenu formTab">
<li class="ckblue" ng-click="cancel()"><span class="doBackIcon doBackIconBlue"></span>返回</li>
<li>{{title}}</li>
</ul>
<div class="formDetailInfo label150">
<div class="clear"></div>
<div class="formDetailItem">
<div class="iptlabel must">名称:</div>
<input type="text" class="iptform" ng-model="name" placeholder="请输入名称" ng-disabled="inputdis">
<em class="error" ng-if="tip.name.status">{{tip.name.txt}}</em>
</div>
<div class="formDetailItem">
<div class="iptlabel must">事件:</div>
<div class="powerSelectData" style="display: inline-block;">
<div class="campaign">
<div class="pt">未选事件</div>
<div class="datawrap one">
<div class="clear"></div>
<ul class="campaignList">
<!-- <li><span class="checkbox" ng-class="{'active':selAll}" ng-click="selectAllEvent()"></span>全选</li> -->
<li ng-repeat="params in eventList track by $index" ng-click="chooseItem(params)" ng-if="params.ischeck!=true" title="{{params.eventNameAlias}}">
<span class="checkbox"></span>{{params.eventNameAlias}}
</li>
</ul>
</div>
</div>
<div class="campaign">
<div class="pt">已选事件</div>
<div class="datawrap one">
<ul class="campaignList">
<li ng-repeat="params in eventList track by $index" ng-click="cancelItem(params)" ng-if="params.ischeck==true" title="{{params.eventNameAlias}}">
<span class="checkbox active" ng-if="specialEvents.indexOf(params.eventName)==-1"></span>{{params.eventNameAlias}}
</li>
</ul>
</div>
</div>
<em class="error" ng-if="tip.moreparams.status" style="vertical-align: bottom;">{{tip.moreparams.txt}}</em>
</div>
</div>
<div class="formsaveBtnWrap clearfix">
<div class="btn6" ng-click="cancel()">取消</div>
<div class="btn5" ng-click="save()">保存</div>
</div>
</div>
\ No newline at end of file
<div class="btn3 mb20" ng-click="gopage()" ng-if="(appAlllistInfo.length<limitInfo.appNum || limitInfo.appNum==-1) && (isManage || isSuper)"><span class="formAddIcon"></span>新建产品</div>
<div class="btn2 big dis mb20" ng-if="(appAlllistInfo.length>=limitInfo.appNum && limitInfo.appNum!=-1) || (!isSuper && !isManage)"><span class="formAddIcon dis"></span>新建产品</div>
<span class="tiplabel" ng-if="limitInfo.appNum!=-1">主账号仅允许创建{{limitInfo.appNum}}个产品,如需升级请联系商务。</span>
<div class="clear"></div>
<div class="wrapTitle formTitleWrap">
<span>产品管理</span>
<div class="searchWrap">
<input type="text" class="searchIpt" ng-model="searchTxt" placeholder="搜索产品名称或APPKEY">
</div>
</div>
<div class="tableList yeswrap">
<table>
<tr>
<th>序号</th>
<th>平台</th>
<th>产品名称</th>
<th>APPKEY</th>
<th style="width:150px;">创建时间</th>
<th style="width:110px;">操作</th>
</tr>
<tr ng-repeat="info in appAlllistInfo | filterList:searchTxt:'name,appkey' track by $index" ng-if="$index>flipPage.start && $index < flipPage.end">
<td>{{$index+1}}</td>
<td>
<div class="appicon" style="margin-left: 0px;" ng-class="{'iOS':'apple','Android':'android','H5':'web'}[info.platform]"></div>
</td>
<td ng-if="!info.isDebug">
<span class="ckblue" ng-click="goReport(info)">{{info.name}}</span>
<span class="copyBtnIcon copyBtn" data-clipboard-text="{{info.name}}" title="点击复制"></span>
</td>
<td ng-if="info.isDebug">
{{info.name}}
</td>
<td>{{info.appkey}}</td>
<td>{{info.createTime | date:'yyyy-MM-dd HH:mm:ss'}}</td>
<td class="formOper">
<div class="formBtn" ng-click="gopage(info.id)" style="margin-right: 10px;"><span class="editIcon"></span>编辑</div>
<div class="formBtn" ng-click="doRemove(info.id)" ng-if="specialsAppkey.indexOf(info.appkey)==-1" style="margin-right: 10px;"><span class="removeIcon"></span>删除</div>
<!-- <div class="formBtn" ng-click="gopage(info.id,1)" ng-if="info.isDebug" style="margin-right: 10px;">调试</div> -->
<!-- <span class="label" ng-if="!info.isDebug" style="color:#999">已调试</span> -->
</td>
</tr>
</table>
<del-tip status="delstatus" delfn="removeInfo()">确定删除该产品?<br><b class="error">此应用的数据将彻底删除,无法恢复!</b></del-tip>
</div>
<flip-info list-info="appAlllistInfo" search-txt="searchTxt" search-name="name,appkey"></flip-info>
<div class="formDetailInfo appPageWrap">
<div class="formDetailTitle" style="margin-bottom: 30px;">
<a class="pretitle hand" ng-click="cancel()">产品中心</a>
<span ng-if="!infoId"> > 新建产品</span>
<span ng-if="infoId"> > 修改产品</span>
</div>
<div class="clear"></div>
<div class="circlewrap" ng-show="isLog || !infoId">
<span class="active">
<span class="circle">1</span>
<span class="circlelabel" ng-if="!infoId"> 新建产品</span>
<span class="circlelabel" ng-if="infoId"> 修改产品</span>
</span>
<span class="circleline"></span>
<span ng-class="{'active':stepflag>1}" class="hand"> <!--ng-click="changeStep()"-->
<span class="circle">2</span>
<span class="circlelabel">嵌入SDK</span>
</span>
<!-- <span class="circleline"></span>
<span ng-class="{'active':stepflag>2}">
<span class="circle">3</span>
<span class="circlelabel">数据调试</span>
</span> -->
</div>
<div ng-show="stepflag==1">
<div class="formDetailItem">
<div class="iptlabel must">产品名称:</div>
<input type="text" class="iptform" ng-model="name" ng-blur="exixtName()" placeholder="请输入应用名称">
<em class="error" ng-if="tip.name.status">{{tip.name.txt}}</em>
</div>
<div class="formDetailItem">
<div class="iptlabel must">平台:</div>
<div class="radioWrap" ng-show="!id">
<div class="radiolabel" ng-click="platform='iOS'">
<span class="radio" ng-class="{'active':platform=='iOS'}"></span>
iOS
</div>
<div class="radiolabel" ng-click="platform='Android'">
<span class="radio" ng-class="{'active':platform=='Android'}"></span>
Android
</div>
<div class="radiolabel" ng-click="platform='H5'">
<span class="radio" ng-class="{'active':platform=='H5'}"></span>
H5
</div>
<!-- <div class="radiolabel" ng-click="platform='web'">
<span class="radio" ng-class="{'active':platform=='web'}"></span>
web
</div> -->
</div>
<div class="radioWrap" ng-show="id">
<span class="label">{{platform}}</span>
</div>
</div>
<div class="formDetailItem" ng-show="platform=='iOS'">
<div class="iptlabel must">apple_appid:</div>
<input type="text" class="iptform" ng-model="bundleid" ng-blur="existBundleid()" placeholder="请输入apple_appid">
<em class="error" ng-if="tip.bundleid.status">{{tip.bundleid.txt}}</em>
<div class="iptwrap desc">例:https://itunes.apple.com/cn/app/xxxxx/id1032170871
则apple_appid为1032170871,如果apple_appid暂时无法获取,请输入任意9-10位的数字,待应用上线后,请修改</div>
</div>
<div class="formDetailItem">
<div class="iptlabel must">产品类别:</div>
<input type="text" class="iptform" ng-model="appGenreName" ng-disabled="true" ng-if="id">
<select-list meau-info="typeList" meau-id="appGenre" meau-data="appGenreInit" keyid="categoryid" ng-show="!id"></select-list>
</div>
<div class="formDetailItem" ng-show="showGame">
<div class="iptlabel must">游戏类别:</div>
<input type="text" class="iptform" ng-model="gameGenreName" ng-disabled="true" ng-if="id">
<select-list meau-info="gameList" meau-id="gameGenre" meau-data="gameGenreInit" keyid="categoryid" ng-show="!id"></select-list>
</div>
<div class="formDetailItem">
<div class="iptlabel must">下载地址:</div>
<input type="text" class="iptform" ng-model="url" placeholder="请输入下载地址">
<em class="error" ng-if="tip.url.status">{{tip.url.txt}}</em>
</div>
<div class="formsaveBtnWrap clearfix">
<div class="btn5" ng-click="save()">
<span ng-if="!id">立即创建</span>
<span ng-if="id">保存</span>
</div>
<div class="btn6" ng-click="cancel()">取消</div>
</div>
</div>
<div ng-show="stepflag==2">
<div class="appsdk">
<div class="appTitle">产品名称:</div>
<div class="appText">{{name}}</div>
</div>
<div class="appsdk">
<div class="appTitle">您的APPKEY:</div>
<div class="appText appid">
<span id="appidCopy">{{appkey}}</span>
<button class="sdkAppid" data-clipboard-action="copy" data-clipboard-target="#appidCopy">复制</button>
</div>
</div>
<div class="appsdk idenText">
<div class="appTitle">&nbsp;</div>
<div class="appText iden">(APPKEY是应用的唯一标识,用来集成到SDK中。)</div>
</div>
<div class="appsdk">
<a href="http://doc.trackingio.com/sdkwen-dang.html" target="_blank"><div class="sdkButton" ng-click="downloadsdk()">查看集成文档并下载SDK</div></a>
</div>
<div class="useSdk">
<p class="userTitle">使用流程:</p>
<p class="userText">
1.下载SDK<span class="circleline"></span>
2.集成SDK
<!-- <span class="circleline"></span> -->
<!-- 3.数据调试 -->
</p>
</div>
<!-- <p class="userText error" style="padding-left: 38px; margin-top: 20px">数据调试结束后上报的数据才进入正常的数据统计。</p> -->
<div class="btn3 stepBtn" ng-click="nextStep()">
完成
</div>
</div>
<div ng-show="stepflag == 3">
<div class="btn6 sdkLast" ng-click="changeStep()" style="width: 120px;">上一步</div>
<div class="btn3 sdkSave" ng-click="finisStep()" style="width: 130px;" ng-if="hasZeroEvt==0">
完成调试,保存新建
</div>
<div class="btn2 big dis sdkSave" style="width: 150px;" ng-if="hasZeroEvt>0">完成调试,保存新建</div>
<div class="clearfix">
<div class="btn10 mr10" ng-click="queryLogInfo()" style="float: right;">
<span class="f5IconGray"></span>数据刷新
</div>
<span style="float: right;" class="error lh32" ng-if="(platform=='H5' && hasZeroEvt==1) || hasZeroEvt==2">我们还没有接收到来自您的任何数据,请继续进行集成工作。</span>
</div>
<div class="applogWrap clearfix">
<div class="logTestWrap mr10">
<div class="logTestTitle">LogTest</div>
<div class="logTestCont">
<div class="appsdk">
<div class="appTitle">您的APPKEY:</div>
<div class="appText appid">
<span>{{appkey}}</span>
</div>
</div>
<dl class="tipsList">
<dt>说明</dt>
<dd>1.打开集成好的客户端,SDK将自动帮助收集数据。</dd>
<dd>2.在任意平台有数据量产生后,您可随时完成调试,进入正式数据报表。</dd>
<dd>3.一个APP最多显示1W条测试数据,且保留最近7天数据。</dd>
</dl>
<div class="appEvtWrap hm-scroll">
<div class="appEvtItem" ng-repeat="test in testInfos track by $index">
<span>{{test.eventNameAlias}}</span>
<em>{{test.eventNumber}}</em>
</div>
</div>
</div>
</div>
<div class="logTestWrap">
<div class="logTestTitle">日志
<select-list meau-info="deviceList" meau-id="deviceId" meau-data="deviceInit" style="float:right;width:230px;" ng-show="logInfos.length>0"></select-list>
</div>
<div class="logTestCont">
<dl class="tipsList" ng-if="logInfos.length==0">
<dt>已经集成,依然查阅不到任何数据?请仔细检查下述事项: </dt>
<dd>1.仔细检查APPKEY是否填写正确,是否多输入了空格等字符。</dd>
<dd>2.检查您的测试设备是否网络正常。</dd>
</dl>
<ul class="chainWrap hm-scroll">
<li ng-repeat="log in logInfos | filter:{'deviceId':deviceTxt} track by $index">
<i></i>
<span>{{log.xcontext._deviceid}}</span>
<h6 ng-click="lookEvents(log)" stop-event>{{log.eventName}}</h6>
<em>{{log.xwhen}}</em>
</li>
</ul>
</div>
</div>
</div>
<div class="chartWrap clearfix">
<div class="chartWrapItem nothborder" ng-if="platform!='H5'">
<div class="chartModule">
<span>调试设备列表</span>
</div>
<div class="tableList">
<table>
<tr>
<th>平台</th>
<th>设备ID</th>
<!-- <th>分包渠道</th> -->
<th>最后测试时间</th>
<th>测试日志总数</th>
</tr>
<tr ng-repeat="total in totalInfos track by $index">
<td>
<b class="platformIcon" ng-class="getPlatClass(total.os)"></b>
</td>
<td>{{total.deviceId}}</td>
<!-- <td>
<span ng-if="total.packetChannel!='_default_' && total.packetChannel!='unknown'">{{total.packetChannel}}</span>
</td> -->
<td>{{total.latestTime}}</td>
<td>{{total.number}}</td>
</tr>
</table>
</div>
</div>
</div>
</div>
<div class="leftTipsSlider" ng-class="{'sliderLog':logFlag>0}" stop-event>
<div class="slideHeader" ng-show="logFlag==1">
日志详情
<div class="whiteClose" ng-click="hideDetails()"></div>
</div>
<div class="slideHeader" ng-show="logFlag==2">
<div class="backLog left" ng-click="logFlag=1">返回</div>
事件属性
<div class="whiteClose" ng-click="hideDetails()"></div>
</div>
<div class="tableList hm-scroll" style="max-height: 90%;overflow-y: auto;">
<table ng-show="logFlag==1">
<tr ng-repeat="event in eventDetails track by $index">
<td>{{event.name}}</td>
<td ng-if="!event.isevent">
<span ng-if="event.second">
{{curEvtLogInfo.xcontext[event.key]}}
</span>
<span ng-if="!event.second">
<span ng-if="!event.value">{{curEvtLogInfo[event.key]}}</span>
<span ng-if="event.value">{{event.value}}</span>
</span>
</td>
<td class="ckEvt" ng-click="lookParams()" ng-if="event.isevent">{{curEvtLogInfo[event.key]}}</td>
</tr>
</table>
<table ng-show="logFlag==2">
<tr ng-repeat="param in paramsList track by $index">
<td>{{param.name}}</td>
<td>{{param.value}}</td>
</tr>
</table>
</div>
</div>
</div>
<div class="chartWrap clearfix">
<div class="chartWrapItem grayhm titleChart nothborder">
<div class="chartModule">
<span>子账户管理</span>
<div class="searchWrap" style="float: right;">
<input type="text" class="searchIpt" ng-model="searchTxt" placeholder="输入账户名或姓名搜索">
</div>
<div class="campaginAction">
<select-list meau-info="deviceList" meau-id="deviceId" meau-data="deviceInit" class="whitebg mr10" style="width:100px;"></select-list>
<div class="btn10 mr10" ng-click="gopage()">
<span class="formAddIcon"></span>
<span>新建子账号</span>
</div>
</div>
</div>
<div class="tableList">
<table>
<tr>
<th>序号</th>
<th>账户名</th>
<th>姓名</th>
<th>角色</th>
<th>状态</th>
<th>操作</th>
<th>操作记录</th>
</tr>
<tr ng-repeat="info in authList | filterList:searchTxt:'name,email' track by $index" ng-if="$index>flipPage.start && $index < flipPage.end">
<td>{{$index+1}}</td>
<td>{{info.email}}</td>
<td>{{info.name}}</td>
<td ng-if="accountFlag!='channel'">{{info.roleName}}</td>
<td>
<span ng-if="info.status==-3">未激活</span>
<span ng-if="info.status!=-3 && info.valid">激活</span>
<span ng-if="info.status!=-3 && !info.valid">已过期</span>
</td>
<td class="formOper">
<div ng-hide="(info.roleCategory == 1 && !isSuper) || info.email == 'demo@reyun.com' || (info.roleCategory==2 && isAppManage)">
<div class="formBtn" ng-class="{'dis':!info.valid}" ng-click="gopage(info)" ng-show="info.status==1 && findName=='enable'"><span class="editIcon"></span>编辑</div>
<div class="btn4" ng-if="info.status!=-3 && findName=='disable' && info.valid" ng-click="onUser(info.id)">启用</div>
<div class="btn2" ng-if="info.status!=-3 && findName=='enable' && info.valid" ng-click="offUser(info.id)">停用</div>
<div class="formBtn" ng-if="info.status==-3 && !info.send" ng-click="sendEmailAgain(info)">重新发送激活邮件</div>
<div class="formBtn dis" ng-if="info.status==-3 && info.send == 1">发送成功</div>
<div class="formBtn" ng-click="deleteAuth(info)" ng-if="info.status==-3"><span class="removeIcon"></span>删除</div>
</div>
<div class="nopower" ng-if="info.roleCategory==2 && isAppManage" title="您已无此授权权限,请联系管理员">
</div>
</td>
<td>
<div class="formBtn" ng-click="showDetails(info)" stop-event><span class="lookIcon"></span></div>
</td>
</tr>
</table>
<flip-info list-info="authList" search-txt="searchTxt" search-name="name,email"></flip-info>
</div>
</div>
</div>
<div class="openTipWin" ng-show="wantDelete">
<div class="closeGray" ng-click="closeWin()"></div>
<div class="tipCont">
您正在删除&nbsp;&nbsp;“{{delInfo.name}}”&nbsp;&nbsp;
<span>子账户</span>,请确认。
</div>
<div class="openBtnGroup clearfix">
<div class="btn8 mr20" ng-click="closeWin()">取消</div>
<div class="btn8" ng-click="doDelete()">确定</div>
</div>
</div>
<div class="leftTipsSlider" ng-class="{'sliderSw':isdetail}" stop-event>
<div class="slideHeader">
操作记录
<div class="whiteClose" ng-click="hideDetails()"></div>
</div>
<div class="slideSub">账户名:{{detailInfo.email}}</div>
<ul class="tipsInfo">
<li>创建人:{{detailInfo.createAccountName}}</li>
<li>创建时间:{{detailInfo.createTime | date:'yyyy-MM-dd HH:mm:ss'}}</li>
<li>最后编辑人:{{detailInfo.modifyAccountName}}</li>
<li>最后编辑时间:{{detailInfo.modifyTime | date:'yyyy-MM-dd HH:mm:ss'}}</li>
</ul>
</div>
<ul class="tabMenu formTab smallTab">
<li class="ckblue" ng-click="cancel()"><span class="doBackIcon doBackIconBlue"></span>返回</li>
<li ng-if="accountFlag=='account'">
<span ng-if="id">修改子账号</span>
<span ng-if="!id">新建子账号</span>
</li>
</ul>
<div class="clear"></div>
<div class="formDetailInfo" ng-class="{'notopr':!id}">
<div class="formDetailItem">
<div class="iptlabel must">邮箱&nbsp;<help-tip class="help" name="邮箱" style="margin-left: 0px;"></help-tip> :</div>
<input type="text" class="iptform" ng-model="email" placeholder="请输入邮箱" ng-disabled="id">
<em class="error" ng-if="tip.email.status">{{tip.email.txt}}</em>
</div>
<div class="formDetailItem">
<div class="iptlabel must">姓名 :</div>
<input type="text" class="iptform" ng-model="name" placeholder="请输入姓名" ng-disabled="accountFlag=='channel' && id && nameNofix">
<em class="error" ng-if="tip.name.status">{{tip.name.txt}}</em>
</div>
<div class="formDetailItem">
<div class="iptlabel">备注 :</div>
<textarea class="iptform" ng-model="remark" style="height: 100px;line-height: 25px;"></textarea>
<em class="error" ng-if="tip.remark.status">{{tip.remark.txt}}</em>
</div>
<div class="authPowerWrap">
<div class="powerHeader">
<span>角色设置</span>
</div>
<ul class="roleList">
<li ng-show="isSuper && (!parentRole || parentRole < 1)">
<div class="radiolabel" ng-click="changeRole(1)">
<span class="radio" ng-class="{'active':roleCategory==1}"></span>
<em>管理员</em>
</div>
请谨慎勾选,该种用户将拥有公司下所有应用管理、查看权限,以及产品、成员、渠道管理、推广参数管理权限,且最多可新建3个管理员。
</li>
<li ng-show="!isAppManage && (!parentRole || parentRole < 2 || roleCategory==2)">
<div class="radiolabel" ng-click="changeRole(2)">
<span class="radio" ng-class="{'active':roleCategory==2}"></span>
<em>子应用管理员</em>
</div>
您可以为子应用选择该权限,该种用户拥有公司下某些应用的管理、查看权限,以及成员管理权限。
</li>
</ul>
<div class="powerInfoWrap" ng-show="roleCategory>1">
<p>产品权限:</p>
<div class="powerSelectWrap" ng-show="steps==1">
<div class="leftSelectWrap">
<div class="powerHeader bR">
<div class="left ml10 hand" ng-click="doCheck('app')">
<span class="checkbox mr5" ng-class="{'active':isAllCheck}"></span>全选
</div>
应用
</div>
<div class="searchWrap">
<input type="text" class="searchIpt" ng-model="searchTxt" placeholder="搜索产品">
</div>
<div class="scrollItem">
<ul class="selInfosWrap w3">
<li ng-repeat="app in authapplist | filter:{'name':searchTxt} track by $index" ng-click="selectApp(app)" ng-class="{'checked checkedText':app.ischeck}" title="{{getTips(app)}}">
<span class="checkbox"></span>
<span class="nopower" ng-if="app.nopower"></span>
{{app.name}}
</li>
</ul>
</div>
</div>
<div class="rightSelectWrap">
<div class="powerHeader">已选择应用</div>
<ul class="selInfosWrap scrollItem" style="max-height: 350px;">
<li ng-repeat="app in authapplist track by $index" ng-click="removeApp(app)" ng-if="app.ischeck" title="{{getTips(app)}}" ng-class="{'checked checkedText':app.nopower}">
<span class="checkbox active"></span>
<span class="nopower" ng-if="app.nopower"></span>
{{app.name}}
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="formsaveBtnWrap clearfix">
<div class="btn6" ng-click="cancel()">取消</div>
<div class="btn5" ng-click="save()">
<span ng-if="!id">完成</span>
<span ng-if="id">保存</span>
</div>
</div>
</div>
<div class="clearfix longTip rightTip tip0">
<ul class="customNav custleft">
<li class="active" ng-click="goPage('collect.event')">APP事件管理</li>
<li ng-click="goPage('collect.activityevent')">虚拟事件管理</li>
</ul>
</div>
<div class="chartWrap clearfix" style="margin-top: 20px;">
<div class="chartWrapItem grayhm titleChart nothborder">
<div ng-show="isevent">
<div class="chartModule">
<span>APP事件管理</span>
<div class="searchWrap">
<input type="text" class="searchIpt" ng-model="searchTxt" placeholder="输入事件名称搜索">
</div>
</div>
<div class="tableList">
<table>
<tr>
<th>序号</th>
<th>事件ID</th>
<th>事件名称</th>
<th>操作</th>
</tr>
<tr ng-repeat="info in eventList | filter:{eventNameAlias:searchTxt} track by $index" ng-if="$index>flipPage.start && $index < flipPage.end">
<td>{{$index+1}}</td>
<td>{{info.eventName}}</td>
<td>
<div ng-show="info.eventName!=eventEditId">
{{info.eventNameAlias}}<div class="formBtn" ng-click="doEdit(info,1)" ng-if="hasEditPower() && info.common!=true"><span class="editIcon ml5"></span></div>
</div>
<div ng-show="info.eventName==eventEditId">
<input type="text" class="iptform" ng-model="info.editname"><div class="btn3 ml5 toblock" ng-click="updateEvent(info)">确定</div>
</div>
</td>
<td class="formOper">
<div class="formBtn" ng-click="clickEvent(info)">
<span class="viewIcon"></span>详情
</div>
<div class="btn4" ng-if="info.status==false && info.common!=true && hasEditPower()" ng-click="onOff(info.eventName)">启用</div>
<div class="btn2" ng-if="info.status==true && info.common!=true && hasEditPower()" ng-click="onOff(info.eventName,1)">停用</div>
</td>
</tr>
</table>
<flip-info list-info="eventList" search-txt="searchTxt" search-name="eventNameAlias"></flip-info>
</div>
</div>
<div ng-show="!isevent">
<div class="wrapTitle formTitleWrap">
<span class="ckhand" ng-click="isevent=true">事件管理</span> >
<select-list meau-info="eventSelList" meau-id="eventpid" meau-data="eventpidInit" keyid="eventName" keyname="eventNameAlias" meau-refresh="eventpidF5" style="margin-top:-4px;"></select-list>
<div class="searchWrap">
<input type="text" class="searchIpt" ng-model="searchKey" placeholder="输入属性名称搜索">
</div>
</div>
<div class="tableList">
<table>
<tr>
<th>序号</th>
<th>属性ID</th>
<th>属性名称</th>
<th>类型</th>
<th ng-if="hasEditPower()">操作</th>
</tr>
<tr ng-repeat="info in paramsList | filter:{attrAlias:searchKey} track by $index" ng-if="$index>pflipPage.start && $index < pflipPage.end">
<td>{{$index+1}}</td>
<td>{{info.attr}}</td>
<td>
<div ng-show="info.attr!=eventParamsId">
{{info.attrAlias}}
<div class="formBtn" ng-click="doEdit(info,2)" ng-show="info.common!=true && hasEditPower()">
<span class="editIcon ml5"></span>
</div>
</div>
<div ng-show="info.attr==eventParamsId">
<input type="text" class="iptform" ng-model="info.editname"><div class="btn3 toblock ml5" ng-click="updateParams(info)">确定</div>
</div>
</td>
<td>{{info.dataType}}</td>
<td ng-if="hasEditPower()" class="formOper" style="width: 200px;">
<div class="btn4" ng-if="info.status==false && info.common!=true" ng-click="pramesOnOff(info.attr)">启用</div>
<div class="btn2" ng-if="info.status==true && info.common!=true" ng-click="pramesOnOff(info.attr,1)">停用</div>
<!-- <div class="btn4" ng-if="info.addStatsView==false && info.common!=true && info.dataType=='number'" ng-click="changeStatus(1,info.attr)">加入统计</div>
<div class="btn2" ng-if="info.addStatsView==true && info.common!=true && info.dataType=='number'" ng-click="changeStatus(2,info.attr)">取消统计</div> -->
<div class="btn4" ng-if="info.addStatsCondition==false && info.common!=true" ng-click="changeStatus(3,info.attr)">加入筛选</div>
<div class="btn2" ng-if="info.addStatsCondition==true && info.common!=true" ng-click="changeStatus(4,info.attr)">取消筛选</div>
</td>
</tr>
</table>
<flip-info list-info="paramsList" search-txt="searchKey" search-name="attrAlias" list-key="paramTab"></flip-info>
</div>
</div>
</div>
</div>
\ No newline at end of file
<div>
<img class="nobehavior" src="../images/behavior.png">
<div class="nobehaviorTitle">还未开通权限</div>
<div class="nobehaviorText">
"行为分析"模块,提供事件、漏斗、留存、智能路径等多维度分析功能,帮您提升<br>产品转化,为产品决策提供数据支持。<br><br>
您的账号还没开通"行为分析"部分权限,如需要使用该部分功能,请联系热云商务。
</div>
</div>
<div class="wrapTitle formTitleWrap">
<span>用户属性管理</span>
<div class="searchWrap">
<input type="text" class="searchIpt" ng-model="searchTxt" placeholder="输入用户属性名称搜索">
</div>
</div>
<div class="tableList">
<table>
<tr>
<th>序号</th>
<th>用户属性ID</th>
<th>用户属性名称</th>
<th>类型</th>
<th ng-if="hasEditPower()">操作</th>
</tr>
<tr ng-repeat="info in profileList | filter:{'attrAlias':searchTxt} track by $index" ng-if="$index>flipPage.start && $index < flipPage.end">
<td>{{$index+1}}</td>
<td>{{info.attr}}</td>
<td>
<div ng-show="$index!=infoEditId">
{{info.attrAlias}}<div class="formBtn" ng-click="doEdit(info,$index)" ng-if="hasEditPower() && info.common!=true"><span class="editIcon ml5"></span></div>
</div>
<div ng-show="$index==infoEditId">
<input type="text" class="iptform" ng-model="info.editname"><div class="btn3 ml5 toblock" ng-click="updateProfile(info)">确定</div>
</div>
</td>
<td>{{info.dataType}}</td>
<td class="formOper" ng-if="hasEditPower()">
<div class="btn4" ng-if="info.status==false && info.common!=true" ng-click="onOff(info)">启用</div>
<div class="btn2" ng-if="info.status==true && info.common!=true" ng-click="onOff(info,1)">停用</div>
<div class="btn4" ng-if="info.add_stats_condition==false && info.common!=true" ng-click="changeStatus(1,info.attr)">加入筛选</div>
<div class="btn2" ng-if="info.add_stats_condition==true && info.common!=true" ng-click="changeStatus(2,info.attr)">取消筛选</div>
</td>
</tr>
</table>
<flip-info list-info="profileList" search-txt="searchTxt" search-name="attrAlias"></flip-info>
</div>
\ No newline at end of file
<div class="btn3 mb20" ng-click="gopage()" ng-if="(usergroupList.length < limitInfo.dataUserGroupNum || limitInfo.dataUserGroupNum == -1) && hasEditPower()"><span class="formAddIcon"></span>新建分群</div>
<div class="clear"></div>
<div class="wrapTitle formTitleWrap">
<span>分群管理<help-tip class="help" name="分群管理"></help-tip></span>
<div class="searchWrap">
<input type="text" class="searchIpt" ng-model="searchTxt" placeholder="输入名称搜索">
</div>
</div>
<div class="tableList">
<table>
<tr>
<th>序号</th>
<th>名称</th>
<th>分群人数</th>
<th>分群数据更新时间</th>
<th>创建者</th>
<th>编辑者</th>
<th>编辑时间</th>
<th ng-if="hasEditPower()">操作</th>
</tr>
<tr ng-repeat="info in usergroupList | filter:{name:searchTxt} track by $index" ng-if="$index>flipPage.start && $index < flipPage.end">
<td>{{$index+1}}</td>
<td>{{info.name}}</td>
<td>
<span ng-if="info.status == 0">计算中</span>
<span ng-if="info.status == 1">{{info.number}}</span>
<span ng-if="info.status == 2">计算失败</span>
</td>
<td>{{info.dataUpdateTime | date:'yyyy-MM-dd'}}</td>
<td>{{info.cAccount}}</td>
<td>{{info.mAccount}}</td>
<td>{{info.modifyTime | date:'yyyy-MM-dd'}}</td>
<td class="formOper" ng-if="hasEditPower()">
<!-- <div class="formBtn" ng-click="refreshExport(info)">
<span class="f5Icon"></span>更新
</div> -->
<div class="formBtn" ng-click="gopage(info)">
<span class="editIcon"></span>编辑
</div>
<div class="formBtn" ng-click="doRemove(info.id)">
<span class="removeIcon"></span>删除
</div>
</td>
</tr>
</table>
<flip-info list-info="usergroupList" search-txt="searchTxt" search-name="name"></flip-info>
<del-tip status="delstatus" delfn="removeInfo()">确定删除该数据?</del-tip>
</div>
\ No newline at end of file
<div class="formDetailInfo">
<div class="formDetailTitle">
<a class="pretitle" ui-sref="collect.usergroup">分群管理</a>
<span ng-if="!id"> >新建分群</span>
<span ng-if="id"> >修改分群</span>
</div>
<div class="clear"></div>
<div class="formDetailItem">
<div class="iptlabel must">名称:</div>
<input type="text" class="iptform" ng-model="name" ng-blur="exixtName()" placeholder="请输入用户群名称">
<em class="error" ng-if="tip.name.status">{{tip.name.txt}}</em>
</div>
<div class="formDetailItem">
<div class="iptlabel">备注:</div>
<input type="text" class="iptform" ng-model="mark" placeholder="请输入用户群备注">
<em class="error" ng-if="tip.mark.status">{{tip.mark.txt}}</em>
</div>
<div class="formDetailItem">
<div class="iptlabel must">时间:</div>
<my-datepicker class="dateRange" options="dateOps" init-day="mydate"><span>{{datestr}}</span></my-datepicker>
<div class="radioWrap" style="margin-left: 30px;">
<div class="radiolabel" ng-click="userType=0">
<span class="radio" ng-class="{'active':userType==0}"></span>
所有用户
</div>
<div class="radiolabel" ng-click="userType=1">
<span class="radio" ng-class="{'active':userType==1}"></span>
新增用户
</div>
</div>
</div>
<div class="profileWrap datawrap">
<div>用户属性</div>
<div class="profileItemWrap p">
<div class="operInfo" ng-show="getProfileNum()>0">
<div class="operBtn" ng-click="changeRel(1)">{{profileRel}}</div>
</div>
<div class="profileItem" ng-repeat="pro in profileInfo track by $index" id="{{pro.id}}" ng-show="pro.show!=false">
<profile-item info-list="profileList" item-info="pro" item-type="profile"></profile-item>
<span class="delItemIcon cldItem" ng-click="removeProfile(pro)"></span>
</div>
</div>
<div class="addItemIcon" ng-click="addProfile()" ng-class="{'dis':getProfileNum()>=5}"></div>
</div>
<div class="relationWrap">
<div class="pcenter label">AND</div>
</div>
<div class="profileWrap datawrap">
<div>触发事件<em class="error ml10" ng-if="tip.params.status">{{tip.params.txt}}</em></div>
<div class="profileItemWrap p">
<div class="operInfo" ng-show="getEventNum()>0">
<div class="operBtn" ng-click="changeRel(2)">{{eventRel}}</div>
</div>
<div class="eventItem ugItem clearfix p" ng-repeat="event in eventInfo track by $index" ng-show="event.show!=false" ng-style="event.style" style="margin-bottom: 10px;">
<select-list meau-info="eventList" meau-id2="event.eventid" meau-data="event.eventinit" meau-name="eventinitname" class="eventItemsel" keyid="eventName" keyname="eventNameAlias" meau-red="event.nullevent"></select-list>
<div class="profileItemWrap p" style="margin-left: 220px;padding-top: 10px;">
<div class="operInfo" style="bottom:15px;" ng-show="event.params && getEventParamsNum(event)>0">
<div class="operBtn" ng-click="changeRel(3,event)">{{event.relation}}</div>
</div>
<div class="profileItem" ng-repeat="item in event.params track by $index" ng-show="item.show!=false">
<profile-item info-list="event.paramsList" item-info="item" item-type="event" item-event="event.event"></profile-item>
<span class="removeSpan" ng-click="removeEventParams(event,item)">取消</span>
</div>
<span class="ml10 addAttrBtn" ng-click="addEventParams(event)" ng-class="{'dis':getEventParamsNum(event)>=3}">
<span class="addAttrIcon"></span><span class="ckhand">添加事件属性筛选</span>
</span>
</div>
<span class="delItemIcon right" ng-click="removeEvent(event)"></span>
</div>
</div>
<div class="addItemIcon" ng-click="addEvent()" ng-class="{'dis':getEventNum()>=5}"></div>
</div>
<div class="formsaveBtnWrap clearfix">
<div class="btn5" ng-click="exixtName(1)">
<span ng-if="!id">立即创建</span>
<span ng-if="id">保存</span>
</div>
<div class="btn6" ng-click="cancel()">取消</div>
</div>
</div>
\ No newline at end of file
<div class="wrapTitle formTitleWrap">
<span>账号管理</span>
</div>
<div class="formDetailInfo">
<div class="formhalf">
<div class="formline">账户信息
<div class="formBtn right" ng-click="toedit=true" ng-show="!toedit">
<span class="editIcon"></span>编辑</div>
</div>
<div class="formDetailItem">
<div class="iptlabel">账号:</div>
<div class="toblock">{{email}}</div>
</div>
<div class="formDetailItem">
<div class="iptlabel">姓名:</div>
<div class="iptformdis" ng-show="!toedit">{{name}}</div>
<input type="text" class="iptform" ng-model="name" placeholder="姓名" ng-show="toedit">
<em class="error errorInfo" ng-if="tip.name.status">{{tip.name.txt}}</em>
</div>
<div class="formDetailItem">
<div class="iptlabel">公司:</div>
<div class="iptformdis" ng-show="!toedit">{{company}}</div>
<input type="text" class="iptform" ng-model="company" placeholder="公司" ng-show="toedit">
<em class="error errorInfo" ng-if="tip.company.status">{{tip.company.txt}}</em>
</div>
<div class="formDetailItem">
<div class="iptlabel">手机:</div>
<div class="iptformdis" ng-show="!toedit">{{phone}}</div>
<input type="text" class="iptform" ng-model="phone" placeholder="手机" ng-show="toedit">
<em class="error errorInfo" ng-if="tip.phone.status">{{tip.phone.txt}}</em>
</div>
<div class="formDetailItem">
<div class="iptlabel">微信:</div>
<div class="iptformdis" ng-show="!toedit">{{wechat}}</div>
<input type="text" class="iptform" ng-model="wechat" placeholder="微信" ng-show="toedit">
<em class="error errorInfo" ng-if="tip.wechat.status">{{tip.wechat.txt}}</em>
</div>
<div class="formDetailItem">
<div class="iptlabel">QQ:</div>
<div class="iptformdis" ng-show="!toedit">{{qq}}</div>
<input type="text" class="iptform" ng-model="qq" placeholder="QQ" ng-show="toedit">
<em class="error errorInfo" ng-if="tip.qq.status">{{tip.qq.txt}}</em>
</div>
<div class="formDetailItem" ng-show="toedit">
<div class="iptlabel">&nbsp;</div>
<div class="btn5 toblock" style="padding:0px 20px;" ng-click="save()">提交修改</div>
</div>
</div>
<div class="formhalf" style="padding-right: 0px;" ng-show="isDemo">
</div>
<div class="formhalf" style="padding-right: 0px;" ng-show="!isDemo">
<div class="formline">修改密码</div>
<div class="formDetailItem">
<div class="iptlabel">原密码:</div>
<input type="password" class="iptform" ng-model="pwd" placeholder="输入原密码">
<em class="error" ng-if="tip.pwd.status" style="margin-left: 110px;display: block;line-height: 20px">{{tip.pwd.txt}}</em>
</div>
<div class="formDetailItem">
<div class="iptlabel">新密码:</div>
<input type="password" class="iptform" ng-model="newpwd" placeholder="*6-18位至少包含数字、大小写字母中的两种">
<em class="error" ng-if="tip.newpwd.status" style="margin-left: 110px;display: block;line-height: 20px">{{tip.newpwd.txt}}</em>
</div>
<div class="formDetailItem" >
<div class="iptlabel">确认密码:</div>
<input type="password" class="iptform" ng-model="crmpwd" placeholder="*6-18位至少包含数字、大小写字母中的两种">
<em class="error" ng-if="tip.crmpwd.status" style="margin-left: 110px;display: block;line-height: 20px">{{tip.crmpwd.txt}}</em>
</div>
<div class="formDetailItem">
<div class="iptlabel">&nbsp;</div>
<div class="btn5 toblock" style="padding:0px 20px;" ng-click="savepwd()">提交修改</div>
</div>
</div>
<div class="formhalf mt20">
<div class="formline">登录信息</div>
<div class="formDetailItem">
<div class="iptlabel">注册日期:</div>
{{createTime | date:'yyyy-MM-dd'}}
</div>
<div class="formDetailItem">
<div class="iptlabel" style="vertical-align: top;">近期登录:</div>
<ul class="toblock">
<li ng-repeat="log in logList track by $index">
<span class="mr10">{{log.pubDate | date:'yyyy-MM-dd HH:mm:ss'}}</span>
<span class="mr10">IP:{{log.ip}}</span>
<span>{{log.location}}</span>
</li>
</ul>
</div>
</div>
</div>
\ No newline at end of file
<div ng-if="!unfoldFlag" class="leftBig">
<ul class="sidebarNav" ng-if="mainMenu=='behavior'">
<li class="p" ng-class="{'active':pagePath=='custommenu'}" ng-if="showMenu('custommenu')" ng-click="goPage('collect.custommenu')">
<i class="iconfont icon-custommenu"></i>
<a>行业看单</a>
</li>
<li ng-class="{'active':pagePath=='eventstats'}" ng-if="showMenu('eventstats')" ng-click="goPage('collect.eventstats')">
<i class="iconfont icon-eventstats"></i>
<a>事件分析</a>
</li>
<li ng-class="{'active':pagePath=='funnel'}" ng-if="showMenu('funnel')" ng-click="goPage('collect.funnel')">
<i class="iconfont icon-funnel"></i>
<a>漏斗转化</a>
</li>
<li ng-class="{'active':pagePath=='retention'}" ng-if="showMenu('retention')" ng-click="goPage('collect.retention')">
<i class="iconfont icon-retention"></i>
<a>留存分析</a>
</li>
<li ng-class="{'active':pagePath=='intelligentpath'}" ng-if="showMenu('intelligentpath')" ng-click="goPage('collect.intelligentpath')">
<i class="iconfont icon-intelligentpath"></i>
<a>智能路径</a>
</li>
<li ng-class="{'active':pagePath=='usergroup'}" ng-if="showMenu('usergroup')" ng-click="goPage('collect.usergroup')">
<i class="iconfont icon-usergroup"></i>
<a>用户分群</a>
</li>
<li ng-click="getSubMenu('eventmanage')" ng-class="{'activemore':subflag=='eventmanage'}" ng-if="showMenu('eventmanage',1)">
<i class="iconfont icon-event"></i>
<a>埋点管理</a>
<span class="downicon"></span>
</li>
<div class="subliWrap" ng-class="{'subshow':subflag=='eventmanage'}" ng-if="showMenu('eventmanage',1)">
<li class="subli" ng-class="{'active':pagePath=='event'}" ng-click="goPage('collect.event')" ng-if="showMenu('event')">
<a>APP事件管理</a>
</li>
<li class="subli" ng-class="{'active':pagePath=='profile'}" ng-click="goPage('collect.profile')" ng-if="showMenu('profile')">
<a>用户属性管理</a>
</li>
</div>
</ul>
<ul class="sidebarNav" ng-if="mainMenu=='export'">
<!-- <li ng-class="{'active':pagePath=='logtool'}" ng-click="goPage('collect.logtool')" ng-if="showMenu('logtool')">
<i class="iconfont icon-logtool"></i>
<a>日志流</a>
</li> -->
<li ng-class="{'active':pagePath=='report'}" ng-click="goPage('collect.report')" ng-if="showMenu('report')">
<i class="iconfont icon-report"></i>
<a>下载报表</a>
</li>
</ul>
<ul class="sidebarNav" ng-if="mainMenu=='management'">
<li ng-click="goPage('collect.app')" ng-class="{'active':pagePath=='app'}" ng-if="showMenu('app') && !demoU">
<i class="iconfont icon-app"></i>
<a>产品中心</a>
</li>
<li ng-click="goPage('collect.auth')" ng-class="{'active':pagePath=='auth'}" ng-if="showMenu('auth') && !demoU">
<i class="iconfont icon-auth"></i>
<a>成员管理</a>
</li>
</ul>
</div>
<div ng-if="unfoldFlag" class="leftSmall">
<ul class="sidebarNav" ng-if="mainMenu=='behavior'">
<li class="p" ng-class="{'active':pagePath=='custommenu'}" ng-if="showMenu('custommenu')" ng-mouseenter="hoverMenu='行业看单'" ng-mouseleave="hoverMenu=''" ng-click="goPage('collect.custommenu')">
<i class="iconfont icon-custommenu"></i>
<div class="outDiv" ng-if="hoverMenu=='行业看单'">
<span class="arrIcon"></span>
<ul class="smallMenu">
<li ng-class="{'active':pagePath=='custommenu'}"><a>行业看单</a></li>
</ul>
</div>
</li>
<li ng-class="{'active':pagePath=='eventstats'}" ng-if="showMenu('eventstats')" ng-click="goPage('collect.eventstats')" ng-mouseenter="hoverMenu='事件分析'" ng-mouseleave="hoverMenu=''">
<i class="iconfont icon-eventstats"></i>
<div class="outDiv" ng-if="hoverMenu=='事件分析'">
<span class="arrIcon"></span>
<ul class="smallMenu">
<li ng-class="{'active':pagePath=='eventstats'}"><a>事件分析</a></li>
</ul>
</div>
</li>
<li ng-class="{'active':pagePath=='intelligentpath'}" ng-if="showMenu('intelligentpath')" ng-click="goPage('collect.intelligentpath')" ng-mouseenter="hoverMenu='智能路径'" ng-mouseleave="hoverMenu=''">
<i class="iconfont icon-intelligentpath"></i>
<div class="outDiv" ng-if="hoverMenu=='智能路径'">
<span class="arrIcon"></span>
<ul class="smallMenu">
<li ng-class="{'active':pagePath=='intelligentpath'}"><a>智能路径</a></li>
</ul>
</div>
</li>
<li ng-class="{'active':pagePath=='retention'}" ng-if="showMenu('retention')" ng-click="goPage('collect.retention')" ng-mouseenter="hoverMenu='留存分析'" ng-mouseleave="hoverMenu=''" >
<i class="iconfont icon-retention"></i>
<div class="outDiv" ng-if="hoverMenu=='留存分析'">
<span class="arrIcon"></span>
<ul class="smallMenu">
<li ng-class="{'active':pagePath=='retention'}"><a>留存分析</a></li>
</ul>
</div>
</li>
<li ng-class="{'active':pagePath=='funnel'}" ng-if="showMenu('funnel')" ng-click="goPage('collect.funnel')" ng-mouseenter="hoverMenu='漏斗转化'" ng-mouseleave="hoverMenu=''" >
<i class="iconfont icon-funnel"></i>
<div class="outDiv" ng-if="hoverMenu=='漏斗转化'">
<span class="arrIcon"></span>
<ul class="smallMenu">
<li ng-class="{'active':pagePath=='funnel'}"><a>漏斗转化</a></li>
</ul>
</div>
</li>
<li ng-class="{'active':pagePath=='usergroup'}" ng-if="showMenu('usergroup')" ng-click="goPage('collect.usergroup')" ng-mouseenter="hoverMenu='用户分群'" ng-mouseleave="hoverMenu=''" >
<i class="iconfont icon-usergroup"></i>
<div class="outDiv" ng-if="hoverMenu=='用户分群'">
<span class="arrIcon"></span>
<ul class="smallMenu">
<li ng-class="{'active':pagePath=='usergroup'}"><a>用户分群</a></li>
</ul>
</div>
</li>
<li ng-click="getSubMenu('eventmanage')" ng-class="{'activemore':subflag=='eventmanage'}" ng-if="showMenu('eventmanage',1)" ng-mouseenter="hoverMenu='埋点管理'" ng-mouseleave="hoverMenu=''">
<i class="iconfont icon-event"></i>
<div class="outDiv" ng-if="hoverMenu=='埋点管理'">
<span class="arrIcon"></span>
<ul class="smallMenu">
<a style="padding-left:10px;">埋点管理</a>
<div class="subliWrap subshow">
<li class="subli" ng-class="{'active':pagePath=='event'}" ng-click="goPage('collect.event')" ng-if="showMenu('event')">
<a>APP事件管理</a>
</li>
<li class="subli" ng-class="{'active':pagePath=='profile'}" ng-click="goPage('collect.profile')" ng-if="showMenu('profile')">
<a>用户属性管理</a>
</li>
</div>
</ul>
</div>
</li>
</ul>
<ul class="sidebarNav" ng-if="mainMenu=='export'">
<!-- <li ng-class="{'active':pagePath=='logtool'}" ng-click="goPage('collect.logtool')" ng-if="showMenu('logtool')" ng-mouseenter="hoverMenu='日志流'" ng-mouseleave="hoverMenu=''" >
<i class="iconfont icon-logtool"></i>
<div class="outDiv" ng-if="hoverMenu=='日志流'">
<span class="arrIcon"></span>
<ul class="smallMenu">
<li ng-class="{'active':pagePath=='logtool'}"><a>日志流</a></li>
</ul>
</div>
</li> -->
<li ng-class="{'active':pagePath=='report'}" ng-click="goPage('collect.report')" ng-if="showMenu('report')" ng-mouseenter="hoverMenu='下载报表'" ng-mouseleave="hoverMenu=''" >
<i class="iconfont icon-report"></i>
<div class="outDiv" ng-if="hoverMenu=='下载报表'">
<span class="arrIcon"></span>
<ul class="smallMenu">
<li ng-class="{'active':pagePath=='report'}"><a>下载报表</a></li>
</ul>
</div>
</li>
</ul>
<ul class="sidebarNav" ng-if="mainMenu=='management'">
<li ng-click="goPage('collect.app')" ng-class="{'active':pagePath=='app'}" ng-if="showMenu('app') && !demoU && !isAppManage" ng-mouseenter="hoverMenu='产品中心'" ng-mouseleave="hoverMenu=''" >
<i class="iconfont icon-app"></i>
<div class="outDiv" ng-if="hoverMenu=='产品中心'">
<span class="arrIcon"></span>
<ul class="smallMenu">
<li ng-class="{'active':pagePath=='app'}"><a>产品中心</a></li>
</ul>
</div>
</li>
<li ng-click="goPage('collect.auth')" ng-class="{'active':pagePath=='auth'}" ng-if="showMenu('auth') && !demoU" ng-mouseenter="hoverMenu='成员管理'" ng-mouseleave="hoverMenu=''" >
<i class="iconfont icon-auth"></i>
<div class="outDiv" ng-if="hoverMenu=='成员管理'">
<span class="arrIcon"></span>
<ul class="smallMenu">
<li ng-class="{'active':pagePath=='auth'}"><a>成员管理</a></li>
</ul>
</div>
</li>
</ul>
</div>
<div class="bigBtn" ng-show="!unfoldFlag" ng-click="toggleMenu()">
<span class="unfold"></span><div >收起菜单</div>
</div>
<div class="smallBtn" ng-show="unfoldFlag" ng-click="toggleMenu()">
<span class="nounfold"></span>
</div>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment