chore: 重写初始提交(清空历史,整理后全量提交)
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,172 @@
|
||||
#LAY_app,body,html {
|
||||
height: 100%
|
||||
}
|
||||
|
||||
.layui-layout-body {
|
||||
overflow: auto
|
||||
}
|
||||
|
||||
#LAY-user-login,.layadmin-user-display-show {
|
||||
display: block!important
|
||||
}
|
||||
|
||||
.layadmin-user-login {
|
||||
position: relative;
|
||||
left: 0;
|
||||
top: 0;
|
||||
padding: 110px 0;
|
||||
min-height: 100%;
|
||||
box-sizing: border-box
|
||||
}
|
||||
|
||||
.layadmin-user-login-main {
|
||||
width: 375px;
|
||||
margin: 0 auto;
|
||||
box-sizing: border-box
|
||||
}
|
||||
|
||||
.layadmin-user-login-box {
|
||||
padding: 20px
|
||||
}
|
||||
|
||||
.layadmin-user-login-header {
|
||||
text-align: center
|
||||
}
|
||||
|
||||
.layadmin-user-login-header h2 {
|
||||
margin-bottom: 10px;
|
||||
font-weight: 300;
|
||||
font-size: 30px;
|
||||
color: #000
|
||||
}
|
||||
|
||||
.layadmin-user-login-header p {
|
||||
font-weight: 300;
|
||||
color: #999
|
||||
}
|
||||
|
||||
.layadmin-user-login-body .layui-form-item {
|
||||
position: relative
|
||||
}
|
||||
|
||||
.layadmin-user-login-icon {
|
||||
position: absolute;
|
||||
left: 1px;
|
||||
top: 1px;
|
||||
width: 38px;
|
||||
line-height: 36px;
|
||||
text-align: center;
|
||||
color: #d2d2d2
|
||||
}
|
||||
|
||||
.layadmin-user-login-body .layui-form-item .layui-input {
|
||||
padding-left: 38px
|
||||
}
|
||||
|
||||
.layadmin-user-login-codeimg {
|
||||
max-height: 38px;
|
||||
width: 100%;
|
||||
cursor: pointer;
|
||||
box-sizing: border-box
|
||||
}
|
||||
|
||||
.layadmin-user-login-other {
|
||||
position: relative;
|
||||
font-size: 0;
|
||||
line-height: 38px;
|
||||
padding-top: 20px
|
||||
}
|
||||
|
||||
.layadmin-user-login-other>* {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
margin-right: 10px;
|
||||
font-size: 14px
|
||||
}
|
||||
|
||||
.layadmin-user-login-other .layui-icon {
|
||||
position: relative;
|
||||
top: 2px;
|
||||
font-size: 26px
|
||||
}
|
||||
|
||||
.layadmin-user-login-other a:hover {
|
||||
opacity: .8
|
||||
}
|
||||
|
||||
.layadmin-user-jump-change {
|
||||
float: right
|
||||
}
|
||||
|
||||
.layadmin-user-login-footer {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
line-height: 30px;
|
||||
padding: 20px;
|
||||
text-align: center;
|
||||
box-sizing: border-box;
|
||||
color: rgba(0,0,0,.5)
|
||||
}
|
||||
|
||||
.layadmin-user-login-footer span {
|
||||
padding: 0 5px
|
||||
}
|
||||
|
||||
.layadmin-user-login-footer a {
|
||||
padding: 0 5px;
|
||||
color: rgba(0,0,0,.5)
|
||||
}
|
||||
|
||||
.layadmin-user-login-footer a:hover {
|
||||
color: #000
|
||||
}
|
||||
|
||||
.layadmin-user-login-main[bgimg] {
|
||||
background-color: #fff;
|
||||
box-shadow: 0 0 5px rgba(0,0,0,.05)
|
||||
}
|
||||
|
||||
.ladmin-user-login-theme {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
text-align: center
|
||||
}
|
||||
|
||||
.ladmin-user-login-theme ul {
|
||||
display: inline-block;
|
||||
padding: 5px;
|
||||
background-color: #fff
|
||||
}
|
||||
|
||||
.ladmin-user-login-theme ul li {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
width: 64px;
|
||||
height: 43px;
|
||||
cursor: pointer;
|
||||
transition: all .3s;
|
||||
-webkit-transition: all .3s;
|
||||
background-color: #f2f2f2
|
||||
}
|
||||
|
||||
.ladmin-user-login-theme ul li:hover {
|
||||
opacity: .9
|
||||
}
|
||||
|
||||
@media screen and (max-width: 768px) {
|
||||
.layadmin-user-login {
|
||||
padding-top:60px
|
||||
}
|
||||
|
||||
.layadmin-user-login-main {
|
||||
width: 300px
|
||||
}
|
||||
|
||||
.layadmin-user-login-box {
|
||||
padding: 10px
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,179 @@
|
||||
/**
|
||||
* admin.templte.css
|
||||
*/
|
||||
|
||||
/********************************
|
||||
|
||||
模板开始
|
||||
|
||||
*******************************/
|
||||
|
||||
|
||||
/* 产品版本选择面板 */
|
||||
.layadmin-panel-selection{width: 768px; margin: 30px auto;}
|
||||
.layadmin-panel-selection .layui-panel-window{padding: 30px 50px; border-top-color: #ddd; text-align: center;}
|
||||
.layadmin-panel-selection .layui-panel-window h2{padding-bottom: 15px; font-size: 18px;}
|
||||
.layadmin-panel-selection .layui-panel-window ul{margin-top: 15px; text-align: left;}
|
||||
.layadmin-panel-selection .layui-btn-container{margin-top: 30px;}
|
||||
.layadmin-panel-selection .layui-btn-container .layui-btn{width: 100%;}
|
||||
|
||||
/* 通讯录面板 */
|
||||
.layadmin-maillist-fluid .layadmin-contact-box{padding:20px;background-color: #fff;
|
||||
border: 1px solid #e7eaec;overflow: hidden;}
|
||||
.layadmin-maillist-fluid .layadmin-text-center{text-align: center;}
|
||||
.layadmin-maillist-fluid .layadmin-text-center img{max-width: 80%;border-radius: 50%;margin-top: 5px;}
|
||||
.layadmin-maillist-fluid .layadmin-font-blod{font-weight: 600;}
|
||||
.layadmin-maillist-fluid .layadmin-maillist-img{margin-top: 5px;}
|
||||
.layadmin-maillist-fluid .layadmin-title{margin:5px 0 10px 0;}
|
||||
.layadmin-maillist-fluid .layadmin-textimg{line-height: 25px;margin-bottom: 10px;}
|
||||
.layadmin-maillist-fluid .layadmin-address{line-height: 1.5;margin-bottom: 20px;}
|
||||
.layadmin-maillist-fluid .layadmin-padding-left20{padding-left: 20px;}
|
||||
|
||||
/* 个人主页 */
|
||||
.layadmin-homepage-shadow{box-shadow: 0 1px 1px rgba(0,0,0,.05);background-color: #fff;border-bottom: 1px solid rgba(0,0,0,0.17);border-radius: 0;border: 1px solid #e7ecf3;}
|
||||
.layadmin-homepage-panel{margin-bottom: 15px;}
|
||||
.layadmin-homepage-panel .text-center{text-align: center;}
|
||||
.layadmin-homepage-information{padding: 15px; border-bottom: 1px solid #e9e9e9;}
|
||||
.layadmin-homepage-pad-ver{ padding-top: 15px;padding-bottom: 15px;}
|
||||
.layadmin-homepage-pad-img{box-shadow: 0 0 0 4px rgba(0,0,0,0.1);border-radius: 50%;}
|
||||
.layadmin-homepage-font{font-weight: 600;color: #2b425b;font-size: 1.2em;}
|
||||
.layadmin-homepage-min-font{margin:5px 0 10px 0;font-size: 0.9em;color: #afb9c3;}
|
||||
.layadmin-homepage-pad-ver a{line-height: 1.1em;font-size: 1.3em;vertical-align: middle; cursor: pointer;background-color: transparent;color: inherit;padding: 6px 12px;}
|
||||
.layadmin-homepage-pad-ver a:hover{background: #16b777; color:#fff;}
|
||||
|
||||
.layadmin-homepage-about{padding: 15px;font-weight: 600;color: #2b425b;}
|
||||
.layadmin-homepage-list-group{font-size: 0.9em;line-height: 1.25;margin-bottom: 5px;}
|
||||
.layadmin-homepage-list-group li{ padding: 5px 15px;border: 1px solid #ddd;margin-bottom: -1px;border-width: 1px 0;border-radius: 0; background-color: transparent;border-color: transparent;color: inherit;}
|
||||
.layadmin-homepage-list-group li i{font-size: 1.333em;line-height: 1.095em;vertical-align: middle; margin-right: 4px;}
|
||||
.layadmin-homepage-list-group li a.color{color:#337ab7;}
|
||||
.layadmin-homepage-pad-hor{ padding-left: 15px; padding-right: 15px;border-bottom: 15px;color: #758697; text-indent:20px;}
|
||||
.layadmin-homepage-list-inline{margin-left: 15px;margin-right: 15px;padding-bottom: 20px}
|
||||
.layadmin-homepage-list-inline a{display: inline-block;}
|
||||
.layadmin-homepage-list-inline .layui-btn{font-size: .9em;line-height: 1.42857;vertical-align: middle;height: auto;padding:4px 7px;margin-left: 0px;margin:0 10px 10px 0;}
|
||||
|
||||
/* 左侧个人信息区域 */
|
||||
.layadmin-homepage-text-center{text-align: center;margin-bottom: 15px;}
|
||||
.layadmin-homepage-padding15{padding:15px;margin-bottom: 15px;}
|
||||
.layadmin-homepage-padding8{padding: 0 8px;}
|
||||
.layadmin-homepage-paddingmb{margin-bottom: 15px;margin: 0 -7.5px;}
|
||||
.layadmin-homepage-content{margin-left: 15px;padding: 0;}
|
||||
.layadmin-homepage-content .new-section-xs{margin: 12px 0;color: inherit;border: 0!important;height: 0px;box-sizing: content-box;}
|
||||
.layadmin-homepage-content .h4{font-size: 16px;font-weight: 600;color: #2b425b;}
|
||||
.layadmin-homepage-content small{color: #afb9c3}
|
||||
.layadmin-homepage-text-center .layui-icon{color:#FFB800;padding-right:5px;}
|
||||
.layadmin-homepage-padding15 .layui-col-sm5 a{font-size: 11px;height: auto;line-height: 1.5;padding:5px 10px;float: right;}
|
||||
.layadmin-homepage-padding15 .layui-btn-normal{margin:0 15px;}
|
||||
.layadmin-homepage-list-imgtxt .layui-col-sm10,.layadmin-homepage-list-imgtxt .layui-col-sm2{background: none}
|
||||
.layadmin-homepage-list-imgtxt .panel-body{padding: 15px 20px 25px;overflow: hidden;margin-bottom: 15px;}
|
||||
.layadmin-homepage-list-imgtxt .panel-body .media-left{display: block;float: left;vertical-align: top;padding-right: 10px;}
|
||||
.layadmin-homepage-list-imgtxt .panel-body .media-left img{border-radius: 50%;}
|
||||
.layadmin-homepage-list-imgtxt .media-body{width: auto;display: block;overflow: hidden;}
|
||||
.layadmin-homepage-list-imgtxt .media-body .pad-btm{padding-bottom: 15px;}
|
||||
.layadmin-homepage-list-imgtxt .media-body .pad-btm p:first-child{padding-bottom: 5px;}
|
||||
.layadmin-homepage-list-imgtxt .media-body .min-font{margin-bottom: 10px;}
|
||||
.layadmin-homepage-list-imgtxt .media-body .min-font .layui-breadcrumb a{font-size: 11px;}
|
||||
.layui-breadcrumb span[lay-separator]{margin:0 5px;}
|
||||
.layadmin-homepage-list-imgtxt .media-body .pad-btm .fontColor a{font-weight: 600;color: #337ab7;}
|
||||
.layadmin-homepage-list-imgtxt .media-body .pad-btm .fontColor span{color: #758697;font-weight: 600;}
|
||||
.layadmin-homepage-list-imgtxt .media-body .h-img{display: block;max-width: 100%;height: auto;margin-top: 10px;}
|
||||
.layadmin-homepage-list-imgtxt .img-xs{width: 32px;height: 32px;border-radius: 50%;}
|
||||
.layadmin-homepage-list-imgtxt .media-body .media{margin-top: 15px;overflow: hidden;}
|
||||
.layadmin-homepage-list-imgtxt .media-body .media .media-right{float: right;padding-top: 10px;}
|
||||
.layadmin-homepage-list-imgtxt .media-body .media .media-right .list-inline{margin-bottom: 10px;}
|
||||
.layadmin-homepage-list-imgtxt .media-body .media .list-inline li{padding:0 5px;display: inline-block;}
|
||||
.layadmin-homepage-list-imgtxt .media-body .media .media-right .list-inline li span{font-weight: 600;}
|
||||
.layadmin-homepage-list-imgtxt .media-body .media .media-left{display: block;overflow: hidden;width: auto;}
|
||||
.layadmin-homepage-list-imgtxt .media-body .media .media-left .font-blod{font-weight: 700;color: #758697;}
|
||||
.layadmin-homepage-list-imgtxt .media-body .media-list{padding-top: 15px;margin-top: 15px;border-top: 1px solid #e9e9e9;}
|
||||
.layadmin-homepage-list-imgtxt .media-body .media-list .media-item{padding-bottom: 15px;margin-top: 15px;}
|
||||
.layadmin-homepage-list-imgtxt .media-body .media-list .media-item-left{display:inline-block;padding-right: 10px;margin-bottom: 5px;}
|
||||
.layadmin-homepage-list-imgtxt .media-body .media-list .media-item-left img{display: block;float: left;}
|
||||
.layadmin-homepage-list-imgtxt .media-body .media-list .media-text{overflow: hidden;width: auto;display: inline-block;}
|
||||
.layadmin-homepage-list-imgtxt .media-body .media-list .media-text a{margin-right: 10px;font-weight: 600;display: inline-block;}
|
||||
.layadmin-homepage-list-imgtxt .media-body .media-list .media-text div:nth-child(2){margin-top: 5px;}
|
||||
.layadmin-homepage-list-imgtxt .media-body .media-list .layui-btn{height: 24px;line-height: 24px;font-size: 12px;padding:0 20px;margin-bottom: 10px;}
|
||||
.layadmin-homepage-list-imgtxt .media-body .media-list .layui-btn{height: 24px;line-height: 24px;font-size: 12px;padding:0 20px;margin-bottom: 10px;}
|
||||
|
||||
/* 个人内容区域 */
|
||||
|
||||
.homepage-top .layui-card-body img{width: 100%}
|
||||
.homepage-top .layui-card-body .margin-top10{margin-top: 10px;}
|
||||
.homepage-top .layui-card-body .layui-btn{width: 100%;display: block;}
|
||||
.homepage-top{padding-bottom: 20px;}
|
||||
.layadmin-privateletterlist-item{position: relative;display: block;padding: 10px 15px;}
|
||||
.homepage-bottom .layui-card-body{padding:0;}
|
||||
.homepage-bottom .layui-card-body img{width: 32px;height: 32px;border-radius: 50%;margin-top: 10px;}
|
||||
.homepage-bottom .layui-card-body .meida-left{display: table-cell;padding-right: 10px;}
|
||||
.homepage-bottom .layui-card-body .meida-right{display: table-cell;vertical-align: top;}
|
||||
.homepage-bottom .layui-card-body a:hover{background: #F2F2F2;}
|
||||
.homepage-bottom .layui-card-body{background: #fff;}
|
||||
.layui-card-header .panel-title .layui-icon{position: relative;left: 0;right: 0px;}
|
||||
|
||||
/* 右侧信息栏 */
|
||||
.layadmin-cmdlist-fluid{padding-bottom: 60px;}
|
||||
.cmdlist-container{background: #fff;border:1px solid transparent;}
|
||||
.cmdlist-container:hover{border:1px solid #e8e8e8;}
|
||||
.cmdlist-container img{width: 100%;}
|
||||
.cmdlist-text{padding:20px;}
|
||||
.cmdlist-text .info{height: 40px;font-size: 14px;line-height: 20px;width: 100%;overflow: hidden;color: #5F5F5F;margin-bottom:10px;}
|
||||
.cmdlist-text .price{font-size: 14px;}
|
||||
.cmdlist-text .price b{margin-right: 20px;}
|
||||
.cmdlist-text .price p{display: inline-block;}
|
||||
.cmdlist-text .flow{text-align: right;float: right;}
|
||||
#demo0{text-align: center;}
|
||||
|
||||
/* 商品列表 */
|
||||
.layadmin-message-fluid .layui-col-md12{background: #fff;height: auto;padding-bottom: 50px;}
|
||||
.layadmin-message-fluid .layui-input-block{margin-left: 0;}
|
||||
.layadmin-message-fluid .layui-form{padding:45px 40px 0 40px;}
|
||||
.layadmin-message-fluid .layui-form-label{text-align: left;font-size: 18px;padding-left: 10px;}
|
||||
.layadmin-message-fluid .layui-textarea{min-height: 100px;font-size: 16px;}
|
||||
.layadmin-message-fluid .layui-input-right{float: right;}
|
||||
.layadmin-messag-icon{overflow: hidden;float: left;}
|
||||
.layadmin-messag-icon .layui-icon{font-size: 24px;line-height: 30px;margin-right: 15px;color: #C4CBCF;}
|
||||
.layadmin-messag-icon{margin-top: 4px;}
|
||||
.message-content{padding:0 40px;}
|
||||
.message-content .media-body{margin-bottom: 60px;}
|
||||
.message-content .media-body .pad-btm{padding-bottom: 0;}
|
||||
.message-content .media-left{float: left;margin-right: 10px;}
|
||||
.message-content .media-left img{border-radius: 50%;}
|
||||
.message-text{padding-top: 10px;}
|
||||
.message-content-btn{text-align: center;}
|
||||
.message-content .layui-btn{height: auto;line-height: 26px; padding: 5px 30px; font-size: 16px;}
|
||||
|
||||
/* 搜索结果页面 */
|
||||
.layadmin-serach-main .layui-card-header{height: auto; line-height: 24px; padding: 15px;}
|
||||
.layadmin-serach-list{margin-bottom: 10px; padding: 10px 0; border-bottom: 1px solid #f6f6f6;}
|
||||
.layadmin-serach-list h3{padding: 10px 0;}
|
||||
.layadmin-serach-list h3 .layui-badge{top: -2px;}
|
||||
.layadmin-serach-list p{color: #5F5F5F;}
|
||||
.layadmin-serach-list li{margin-bottom: 20px; padding-bottom: 20px; clear: both;}
|
||||
.layui-serachlist-cover{float: left; margin-right: 15px;}
|
||||
.layui-serachlist-cover img{width: 90px; height: 90px;}
|
||||
|
||||
|
||||
|
||||
/* 用户列表开始 */
|
||||
.layadmin-caller{background: #fff;padding: 30px;}
|
||||
.layadmin-caller em{font-style: normal;}
|
||||
.layadmin-caller .caller-fl{float: left;}
|
||||
.layadmin-caller .caller-fr{float: right;}
|
||||
.layadmin-caller .caller-seach{position: relative;padding-bottom:40px;}
|
||||
.layadmin-caller .caller-seach .caller-icon{font-size: 18px;position: absolute;top: 9px;}
|
||||
.layadmin-caller .caller-seach-icon{left: 6px;}
|
||||
.layadmin-caller .caller-dump-icon{right: 6px;cursor: pointer;}
|
||||
.layadmin-caller .caller-pl32{padding:0 32px;}
|
||||
.layadmin-caller .caller-tab{margin:0;}
|
||||
.layadmin-caller .caller-contar{padding-bottom:20px;}
|
||||
.layadmin-caller .caller-contar .caller-item{padding:25px 0;overflow: hidden;border-bottom: 1px solid #e0e0e0;}
|
||||
.layadmin-caller .caller-contar .caller-item .caller-main{margin-left: 20px;}
|
||||
.layadmin-caller .caller-contar .caller-item .caller-main p{line-height: 100%;padding:8px 0;}
|
||||
.layadmin-caller .caller-contar .caller-item .caller-main p:first-child{padding-top:0;}
|
||||
.layadmin-caller .caller-contar .caller-item .caller-main em{margin-left: 5px;}
|
||||
.layadmin-caller .caller-contar .caller-item .caller-main .caller-adds i{padding-right: 5px;margin:0;}
|
||||
.layadmin-caller .caller-contar .caller-item .caller-main .caller-adds{padding-bottom:12px;}
|
||||
.layadmin-caller .caller-contar .caller-iconset i{margin:0 5px;}
|
||||
.layadmin-caller .caller-contar .caller-iconset i:first-child{margin-left: 0;}
|
||||
.layadmin-caller .caller-contar button{margin-top: 22px;}
|
||||
.layadmin-caller .caller-contar .caller-img{width: 40px;height: 40px;border-radius: 100%;}
|
||||
/****** 模板结束 ******/
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 6.6 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.8 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 6.6 KiB |
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"code": 0
|
||||
,"msg": ""
|
||||
,"count": "100"
|
||||
,"data": [{
|
||||
"prograss": "开会"
|
||||
,"time": "一小时"
|
||||
,"complete": "已完成"
|
||||
,"LAY_CHECKED": true
|
||||
},{
|
||||
"prograss": "项目开发"
|
||||
,"time": "两小时"
|
||||
,"complete": "进行中"
|
||||
,"LAY_CHECKED": true
|
||||
},{
|
||||
"prograss": "陪吃饭"
|
||||
,"time": "一小时"
|
||||
,"complete": "未完成"
|
||||
},{
|
||||
"prograss": "修改小bug"
|
||||
,"time": "半小时"
|
||||
,"complete": "未完成"
|
||||
},{
|
||||
"prograss": "修改大bug"
|
||||
,"time": "两小时"
|
||||
,"complete": "未完成"
|
||||
},{
|
||||
"prograss": "修改小bug"
|
||||
,"time": "半小时"
|
||||
,"complete": "未完成"
|
||||
},{
|
||||
"prograss": "修改大bug"
|
||||
,"time": "两小时"
|
||||
,"complete": "未完成"
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
{
|
||||
"code": 0
|
||||
,"msg": ""
|
||||
,"count": "100"
|
||||
,"data": [{
|
||||
"id": 111
|
||||
,"title": "热帖测试"
|
||||
,"username": "test"
|
||||
,"channel": "公告"
|
||||
,"href": "http://www.baidu.com/jie/15697/"
|
||||
,"crt": 61632
|
||||
},{
|
||||
"id": 222
|
||||
,"title": "一周年"
|
||||
,"username": "猫吃"
|
||||
,"channel": "讨论"
|
||||
,"href": "http://www.baidu.com/jie/16622/"
|
||||
,"crt": 61632
|
||||
},{
|
||||
"id": 333
|
||||
,"title": "四个月的前端"
|
||||
,"username": "fd"
|
||||
,"channel": "分享"
|
||||
,"href": "http://www.baidu.com/jie/16651/"
|
||||
,"crt": 61632
|
||||
},{
|
||||
"id": 333
|
||||
,"title": "如何评价前端 UI 框架"
|
||||
,"username": "张三"
|
||||
,"channel": "提问"
|
||||
,"href": "http://www.baidu.com/jie/9352/"
|
||||
,"crt": 61632
|
||||
},{
|
||||
"id": 333
|
||||
,"title": "如何评价前端 UI 框架"
|
||||
,"username": "张三"
|
||||
,"channel": "提问"
|
||||
,"href": "http://www.baidu.com/jie/9352/"
|
||||
,"crt": 61632
|
||||
},{
|
||||
"id": 333
|
||||
,"title": "如何评价前端 UI 框架"
|
||||
,"username": "张三"
|
||||
,"channel": "提问"
|
||||
,"href": "http://www.baidu.com/jie/9352/"
|
||||
,"crt": 61632
|
||||
},{
|
||||
"id": 333
|
||||
,"title": "如何评价前端 UI 框架"
|
||||
,"username": "张三"
|
||||
,"channel": "提问"
|
||||
,"href": "http://www.baidu2.com/jie/9352/"
|
||||
,"crt": 61632
|
||||
},{
|
||||
"id": 333
|
||||
,"title": "如何评价前端 UI 框架"
|
||||
,"username": "张三"
|
||||
,"channel": "提问"
|
||||
,"href": "http://www.baidu.com/jie/9352/"
|
||||
,"crt": 61632
|
||||
},{
|
||||
"id": 333
|
||||
,"title": "如何评价前端 UI 框架"
|
||||
,"username": "张三"
|
||||
,"channel": "提问"
|
||||
,"href": "http://www.baidu.com/jie/9352/"
|
||||
,"crt": 61632
|
||||
},{
|
||||
"id": 333
|
||||
,"title": "如何评价前端 UI 框架"
|
||||
,"username": "张三"
|
||||
,"channel": "提问"
|
||||
,"href": "http://www.baidu.com/jie/9352/"
|
||||
,"crt": 61632
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"code": 0
|
||||
,"msg": ""
|
||||
,"count": "100"
|
||||
,"data": [{
|
||||
"keywords": "UI"
|
||||
,"frequency": 8520
|
||||
,"userNums": 2216
|
||||
},{
|
||||
"keywords": "layer 弹出层组件"
|
||||
,"frequency": 777
|
||||
,"userNums": 333
|
||||
},{
|
||||
"keywords": "此表格是静态模拟数据"
|
||||
,"frequency": 777
|
||||
,"userNums": 333
|
||||
},{
|
||||
"keywords": "前端 UI"
|
||||
,"frequency": 777
|
||||
,"userNums": 333
|
||||
},{
|
||||
"keywords": "前端 UI"
|
||||
,"frequency": 777
|
||||
,"userNums": 333
|
||||
},{
|
||||
"keywords": "前端 UI"
|
||||
,"frequency": 777
|
||||
,"userNums": 333
|
||||
},{
|
||||
"keywords": "前端 UI"
|
||||
,"frequency": 777
|
||||
,"userNums": 333
|
||||
},{
|
||||
"keywords": "前端 UI"
|
||||
,"frequency": 777
|
||||
,"userNums": 333
|
||||
},{
|
||||
"keywords": "前端 UI"
|
||||
,"frequency": 777
|
||||
,"userNums": 333
|
||||
},{
|
||||
"keywords": "前端 UI"
|
||||
,"frequency": 777
|
||||
,"userNums": 333
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"code": 0
|
||||
,"msg": ""
|
||||
,"count": "100"
|
||||
,"data": [{
|
||||
"id": "001"
|
||||
,"reviewers": "赵"
|
||||
,"content": "我又爱上编程了"
|
||||
,"commtime": 20160312
|
||||
},{
|
||||
"id": "002"
|
||||
,"reviewers": "钱"
|
||||
,"content": "心内容内容内容"
|
||||
,"commtime": 20160821
|
||||
},{
|
||||
"id": "003"
|
||||
,"reviewers": "孙"
|
||||
,"content": "评论评论评论"
|
||||
,"commtime": 20161212
|
||||
},{
|
||||
"id": "004"
|
||||
,"reviewers": "李"
|
||||
,"content": "心姐是男是女?"
|
||||
,"commtime": 20170311
|
||||
},{
|
||||
"id": "005"
|
||||
,"reviewers": "周"
|
||||
,"content": "希望明天是个好天气"
|
||||
,"commtime": 20170612
|
||||
},{
|
||||
"id": "006"
|
||||
,"reviewers": "吴"
|
||||
,"content": "我又爱上编程了"
|
||||
,"commtime": 20171112
|
||||
},{
|
||||
"id": "007"
|
||||
,"reviewers": "郑"
|
||||
,"content": "心内容内容内容"
|
||||
,"commtime": 20171230
|
||||
},{
|
||||
"id": "008"
|
||||
,"reviewers": "王"
|
||||
,"content": "评论评论评论"
|
||||
,"commtime": 20180112
|
||||
},{
|
||||
"id": "009"
|
||||
,"reviewers": "冯"
|
||||
,"content": "心姐是男是女?"
|
||||
,"commtime": 20180221
|
||||
},{
|
||||
"id": "010"
|
||||
,"reviewers": "陈"
|
||||
,"content": "希望明天是个好天气"
|
||||
,"commtime": 20180312
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"code": 0
|
||||
,"msg": ""
|
||||
,"count": "100"
|
||||
,"data": [{
|
||||
"id": "001"
|
||||
,"label": "美食"
|
||||
,"title": "舌尖上的中国第一季"
|
||||
,"author": "作者-1"
|
||||
,"content": "通过中华美食的多个侧面,来展现食物给中国人生活带来的仪式、伦理等方面的文化;见识中国特色食材以及与食物相关、构成中国美食特有气质的一系列元素;了解中华饮食文化的精致和源远流长"
|
||||
,"uploadtime": 20121204
|
||||
,"status": true
|
||||
},{
|
||||
"id": "002"
|
||||
,"label": "美食"
|
||||
,"title": "舌尖上的中国第二季"
|
||||
,"author": "作者-2"
|
||||
,"content": "以食物为窗口,读懂中国——通过美食,使人们可以有滋有味地认知这个古老的东方国度。“一方水土一方人”,本片将通过展示人们日常生活中与美食相关的多重侧面,描绘与感知中国人的文化传统、家族观念、生活态度与故土难离。人们收获、保存、烹饪、生产美食,并在其过程中留存和传承食物所承载的味觉记忆、饮食习俗、文化样态与家常情感。"
|
||||
,"uploadtime": 20141204
|
||||
,"status": false
|
||||
},{
|
||||
"id": "003"
|
||||
,"label": "美食"
|
||||
,"title": "舌尖上的中国第三季"
|
||||
,"author": "作者-3"
|
||||
,"content": "以食物为窗口,读懂中国——通过美食,使人们可以有滋有味地认知这个古老的东方国度。“一方水土一方人”,本片将通过展示人们日常生活中与美食相关的多重侧面,描绘与感知中国人的文化传统、家族观念、生活态度与故土难离。人们收获、保存、烹饪、生产美食,并在其过程中留存和传承食物所承载的味觉记忆、饮食习俗、文化样态与家常情感将世界美食和中国美食进行比照。春耕、夏耘、秋收、冬藏,天人合一的东方哲学让中国饮食依时而变,智慧灵动,中医营养摄生学说创造了食材运用的新天地,儒家人伦道德则把心意和家的味道端上我们的餐桌。淘洗历史,糅合时光,一代又一代的中国人在天地间升起烟火,用至精至诚的心意烹制食物,一餐一食之间,中国人展示个性,确认归属,构建文明,理解和把握着世界的奥妙。"
|
||||
,"uploadtime": 20161204
|
||||
,"status": false
|
||||
},{
|
||||
"id": "004"
|
||||
,"label": "历史"
|
||||
,"title": "诸葛亮骂王朗"
|
||||
,"author": "作者-1"
|
||||
,"content": "皓首匹夫!苍髯老贼!你即将命归于九泉之下,届时,有何面目见汉朝二十四代先帝?二臣贼子!你枉活七十有六,一生未立寸功,只会摇唇舞舌,助曹为虐!一条断脊之犬,还敢在我军阵前狺狺狂吠!我从未见过如此厚颜无耻之人!!!"
|
||||
,"uploadtime": 20180201
|
||||
,"status": false
|
||||
},{
|
||||
"id": "005"
|
||||
,"label": "新闻"
|
||||
,"title": "新时代特色中国梦"
|
||||
,"author": "作者-1"
|
||||
,"content": "今天,我们比历史上任何时期都更接近、更有信心和能力实现中华民族伟大复兴的目标。新时代已经到来,蓝图已经绘就,中国梦离我们越来越近了。"
|
||||
,"uploadtime": 20180512
|
||||
,"status": false
|
||||
},{
|
||||
"id": "006"
|
||||
,"label": "新闻"
|
||||
,"title": "新时代特色中国梦"
|
||||
,"author": "作者-2"
|
||||
,"content": "梦想不会主动走向我们,只有我们去主动实现梦想。行百里者半九十。虽然中国梦离我们越来越近了,但是要实现中国梦,还要靠我们以永不懈怠的精神状态、功在不舍的坚强意志,不忘初心,继续前进。"
|
||||
,"uploadtime": 20180514
|
||||
,"status": false
|
||||
},{
|
||||
"id": "007"
|
||||
,"label": "体育"
|
||||
,"title": "皇马大战利物浦"
|
||||
,"author": "作者-3"
|
||||
,"content": "对欧足联而言,更想要产生个新冠军。连续三年都是同一个冠军队,这会毁掉欧冠……”格里姆表态,“皇马有梦幻般的阵容,但从促进竞争的角度而言,另一支球队获胜会更好。"
|
||||
,"uploadtime": 20180515
|
||||
,"status": false
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"code": 0
|
||||
,"msg": ""
|
||||
,"count": "100"
|
||||
,"data": [{
|
||||
"id": "001"
|
||||
,"tags": "美食"
|
||||
},{
|
||||
"id": "002"
|
||||
,"tags": "新闻"
|
||||
},{
|
||||
"id": "003"
|
||||
,"tags": "八卦"
|
||||
},{
|
||||
"id": "004"
|
||||
,"tags": "体育"
|
||||
},{
|
||||
"id": "005"
|
||||
,"tags": "音乐"
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"code": 0
|
||||
,"msg": ""
|
||||
,"count": "100"
|
||||
,"data": [{
|
||||
"id": "1001"
|
||||
,"poster": "赵"
|
||||
,"avatar": "https://unpkg.com/outeres/demo/avatar/0.png"
|
||||
,"content": "为什么花儿这么么红"
|
||||
,"posttime": 20160805
|
||||
,"top": false
|
||||
},{
|
||||
"id": "1002"
|
||||
,"poster": "钱"
|
||||
,"avatar": "https://unpkg.com/outeres/demo/avatar/0.png"
|
||||
,"content": "喜欢张三,赞赞赞"
|
||||
,"posttime": 20161205
|
||||
,"top": true
|
||||
},{
|
||||
"id": "1003"
|
||||
,"poster": "孙"
|
||||
,"avatar": "https://unpkg.com/outeres/demo/avatar/0.png"
|
||||
,"content": "明天就要考试了,好紧张,求保佑"
|
||||
,"posttime": 20170405
|
||||
,"top": false
|
||||
},{
|
||||
"id": "1004"
|
||||
,"poster": "李"
|
||||
,"avatar": "https://unpkg.com/outeres/demo/avatar/0.png"
|
||||
,"content": "希望明天是个好天气"
|
||||
,"posttime": 20171005
|
||||
,"top": false
|
||||
},{
|
||||
"id": "1005"
|
||||
,"poster": "周"
|
||||
,"avatar": "https://unpkg.com/outeres/demo/avatar/0.png"
|
||||
,"content": "女追男隔层纱,是不是真的"
|
||||
,"posttime": 20180205
|
||||
,"top": false
|
||||
},{
|
||||
"id": "1006"
|
||||
,"poster": "吴"
|
||||
,"avatar": "https://unpkg.com/outeres/demo/avatar/0.png"
|
||||
,"content": "竟然有人!"
|
||||
,"posttime": 20180512
|
||||
,"top": false
|
||||
},{
|
||||
"id": "1007"
|
||||
,"poster": "郑"
|
||||
,"avatar": "https://unpkg.com/outeres/demo/avatar/0.png"
|
||||
,"content": "咋了"
|
||||
,"posttime": 20180512
|
||||
,"top": false
|
||||
},{
|
||||
"id": "1008"
|
||||
,"poster": "王"
|
||||
,"avatar": "https://unpkg.com/outeres/demo/avatar/0.png"
|
||||
,"content": "想知道南昌哪里有好吃的西安肉夹馍"
|
||||
,"posttime": 20180514
|
||||
,"top": false
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
{
|
||||
"code": 0
|
||||
,"msg": ""
|
||||
,"count": "100"
|
||||
,"data": [{
|
||||
"id": "001"
|
||||
,"replyer": "吴"
|
||||
,"cardid": "1002"
|
||||
,"avatar": "https://unpkg.com/outeres/demo/avatar/0.png"
|
||||
,"content": "有眼光,我也喜欢张三!"
|
||||
,"replytime": 20161205
|
||||
},{
|
||||
"id": "002"
|
||||
,"replyer": "郑"
|
||||
,"cardid": "1002"
|
||||
,"avatar": "https://unpkg.com/outeres/demo/avatar/0.png"
|
||||
,"content": "同上同上。"
|
||||
,"replytime": 20161205
|
||||
},{
|
||||
"id": "003"
|
||||
,"replyer": "王"
|
||||
,"cardid": "1003"
|
||||
,"avatar": "https://unpkg.com/outeres/demo/avatar/0.png"
|
||||
,"content": "能过一定过,不能过紧张也没用"
|
||||
,"replytime": 20170405
|
||||
},{
|
||||
"id": "004"
|
||||
,"replyer": "冯"
|
||||
,"cardid": "1001"
|
||||
,"avatar": "https://unpkg.com/outeres/demo/avatar/0.png"
|
||||
,"content": "可能因为你。"
|
||||
,"replytime": 20170405
|
||||
},{
|
||||
"id": "005"
|
||||
,"replyer": "陈"
|
||||
,"cardid": "1003"
|
||||
,"avatar": "https://unpkg.com/outeres/demo/avatar/0.png"
|
||||
,"content": "加油加油,看好你"
|
||||
,"replytime": 20170405
|
||||
},{
|
||||
"id": "006"
|
||||
,"replyer": "褚"
|
||||
,"cardid": "1005"
|
||||
,"avatar": "https://unpkg.com/outeres/demo/avatar/0.png"
|
||||
,"content": "纯属喜爱"
|
||||
,"replytime": 20180207
|
||||
},{
|
||||
"id": "007"
|
||||
,"replyer": "卫"
|
||||
,"cardid": "1005"
|
||||
,"avatar": "https://unpkg.com/outeres/demo/avatar/0.png"
|
||||
,"content": "可以试试"
|
||||
,"replytime": 20180207
|
||||
},{
|
||||
"id": "006"
|
||||
,"replyer": "蒋"
|
||||
,"cardid": "1006"
|
||||
,"avatar": "https://unpkg.com/outeres/demo/avatar/0.png"
|
||||
,"content": "是啊是啊,太棒了。"
|
||||
,"replytime": 20180512
|
||||
},{
|
||||
"id": "007"
|
||||
,"replyer": "沈"
|
||||
,"cardid": "1008"
|
||||
,"avatar": "https://unpkg.com/outeres/demo/avatar/0.png"
|
||||
,"content": "魏家凉皮不错奥。"
|
||||
,"replytime": 20180515
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
{
|
||||
"code": 0
|
||||
,"msg": ""
|
||||
,"data": {
|
||||
"mine": {
|
||||
"username": "测试名称"
|
||||
,"id": "100000"
|
||||
,"status": "online"
|
||||
,"sign": "测试"
|
||||
,"avatar": ""
|
||||
}
|
||||
,"friend": [{
|
||||
"groupname": "测试分组一"
|
||||
,"id": 0
|
||||
,"list": [{
|
||||
"username": "测试1"
|
||||
,"id": "100001"
|
||||
,"avatar": ""
|
||||
,"sign": "测试内容1"
|
||||
,"status": "online"
|
||||
},{
|
||||
"username": "测试2"
|
||||
,"id": "100001222"
|
||||
,"sign": "测试内容2"
|
||||
,"avatar": ""
|
||||
},{
|
||||
"username": "测试3"
|
||||
,"id": "10034001"
|
||||
,"avatar": ""
|
||||
,"sign": ""
|
||||
},{
|
||||
"username": "测试4"
|
||||
,"id": "168168"
|
||||
,"avatar": ""
|
||||
,"sign": "测试内容4"
|
||||
},{
|
||||
"username": "测试5"
|
||||
,"id": "777777"
|
||||
,"avatar": ""
|
||||
,"sign": "测试内容5"
|
||||
}]
|
||||
},{
|
||||
"groupname": "测试分组二"
|
||||
,"id": 1
|
||||
,"list": [{
|
||||
"username": "测试6"
|
||||
,"id": "121286"
|
||||
,"avatar": ""
|
||||
,"sign": "测试内容6"
|
||||
},{
|
||||
"username": "测试7"
|
||||
,"id": "108101"
|
||||
,"avatar": ""
|
||||
,"sign": "微电商达人"
|
||||
},{
|
||||
"username": "测试8"
|
||||
,"id": "12123454"
|
||||
,"avatar": ""
|
||||
,"sign": "测试内容8"
|
||||
},{
|
||||
"username": "测试9"
|
||||
,"id": "102101"
|
||||
,"avatar": ""
|
||||
,"sign": ""
|
||||
},{
|
||||
"username": "测试10"
|
||||
,"id": "3435343"
|
||||
,"avatar": ""
|
||||
,"sign": ""
|
||||
}]
|
||||
},{
|
||||
"groupname": "测试分组三"
|
||||
,"id": 2
|
||||
,"list": [{
|
||||
"username": "测试11"
|
||||
,"id": "76543"
|
||||
,"avatar": ""
|
||||
,"sign": "测试内容11"
|
||||
},{
|
||||
"username": "测试12"
|
||||
,"id": "4803920"
|
||||
,"avatar": ""
|
||||
,"sign": "测试内容12"
|
||||
}]
|
||||
}]
|
||||
,"group": [{
|
||||
"groupname": "测试群组一"
|
||||
,"id": "101"
|
||||
,"avatar": ""
|
||||
},{
|
||||
"groupname": "测试群组二"
|
||||
,"id": "102"
|
||||
,"avatar": ""
|
||||
}]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"code": 0
|
||||
,"msg": ""
|
||||
,"count": 60
|
||||
,"data": [{
|
||||
"id": 123
|
||||
,"title": "Hello World"
|
||||
,"time": 1510363800000
|
||||
}, {
|
||||
"id": 111
|
||||
,"title": "一段模拟的测试私信"
|
||||
,"time": 1510212370000
|
||||
}, {
|
||||
"id": 111
|
||||
,"title": "一段模拟的测试私信"
|
||||
,"time": 1510212370000
|
||||
}, {
|
||||
"id": 111
|
||||
,"title": "一段模拟的测试私信"
|
||||
,"time": 1510212370000
|
||||
}, {
|
||||
"id": 111
|
||||
,"title": "一段模拟的测试私信"
|
||||
,"time": 1510212370000
|
||||
}, {
|
||||
"id": 111
|
||||
,"title": "一段模拟的测试私信"
|
||||
,"time": 1510212370000
|
||||
}, {
|
||||
"id": 111
|
||||
,"title": "一段模拟的测试私信"
|
||||
,"time": 1510212370000
|
||||
}, {
|
||||
"id": 111
|
||||
,"title": "一段模拟的测试私信"
|
||||
,"time": 1510212370000
|
||||
}, {
|
||||
"id": 111
|
||||
,"title": "一段模拟的测试私信"
|
||||
,"time": 1510212370000
|
||||
}, {
|
||||
"id": 111
|
||||
,"title": "一段模拟的测试私信"
|
||||
,"time": 1507447570000
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"code": 0
|
||||
,"msg": ""
|
||||
,"count": 60
|
||||
,"data": [{
|
||||
"id": 123
|
||||
,"title": "一段模拟的测试私信"
|
||||
,"time": 1510363800000
|
||||
}, {
|
||||
"id": 111
|
||||
,"title": "一段模拟的测试私信"
|
||||
,"time": 1510212370000
|
||||
}, {
|
||||
"id": 111
|
||||
,"title": "一段模拟的测试私信"
|
||||
,"time": 1510212370000
|
||||
}, {
|
||||
"id": 111
|
||||
,"title": "一段模拟的测试私信"
|
||||
,"time": 1510212370000
|
||||
}, {
|
||||
"id": 111
|
||||
,"title": "一段模拟的测试私信"
|
||||
,"time": 1510212370000
|
||||
}, {
|
||||
"id": 111
|
||||
,"title": "一段模拟的测试私信"
|
||||
,"time": 1510212370000
|
||||
}, {
|
||||
"id": 111
|
||||
,"title": "一段模拟的测试私信"
|
||||
,"time": 1510212370000
|
||||
}, {
|
||||
"id": 111
|
||||
,"title": "一段模拟的测试私信"
|
||||
,"time": 1510212370000
|
||||
}, {
|
||||
"id": 111
|
||||
,"title": "一段模拟的测试私信"
|
||||
,"time": 1510212370000
|
||||
}, {
|
||||
"id": 111
|
||||
,"title": "一段模拟的测试私信"
|
||||
,"time": 1507447570000
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"code": 0
|
||||
,"msg": ""
|
||||
,"count": 60
|
||||
,"data": [{
|
||||
"id": 123
|
||||
,"title": "一段模拟的测试私信"
|
||||
,"time": 1510363800000
|
||||
}, {
|
||||
"id": 111
|
||||
,"title": "一段模拟的测试私信"
|
||||
,"time": 1510212370000
|
||||
}, {
|
||||
"id": 111
|
||||
,"title": "一段模拟的测试私信"
|
||||
,"time": 1510212370000
|
||||
}, {
|
||||
"id": 111
|
||||
,"title": "一段模拟的测试私信"
|
||||
,"time": 1510212370000
|
||||
}, {
|
||||
"id": 111
|
||||
,"title": "一段模拟的测试私信"
|
||||
,"time": 1510212370000
|
||||
}, {
|
||||
"id": 111
|
||||
,"title": "一段模拟的测试私信"
|
||||
,"time": 1510212370000
|
||||
}, {
|
||||
"id": 111
|
||||
,"title": "一段模拟的测试私信"
|
||||
,"time": 1510212370000
|
||||
}, {
|
||||
"id": 111
|
||||
,"title": "一段模拟的测试私信"
|
||||
,"time": 1510212370000
|
||||
}, {
|
||||
"id": 111
|
||||
,"title": "一段模拟的测试私信"
|
||||
,"time": 1510212370000
|
||||
}, {
|
||||
"id": 111
|
||||
,"title": "一段模拟的测试私信"
|
||||
,"time": 1507447570000
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"code": 0
|
||||
,"msg": ""
|
||||
,"count": "100"
|
||||
,"data": [{
|
||||
"orderid": 111
|
||||
,"title": "张三是谁?"
|
||||
,"attr": "公告"
|
||||
,"progress": "25%"
|
||||
,"submit": "tester"
|
||||
,"accept": "员工-1"
|
||||
,"state": "处理中"
|
||||
},{
|
||||
"orderid": 222
|
||||
,"title": "Layui 怎么实现表单设计器?"
|
||||
,"attr": "讨论"
|
||||
,"progress": "100%"
|
||||
,"submit": "张三"
|
||||
,"accept": "员工-1"
|
||||
,"state": "已处理"
|
||||
},{
|
||||
"orderid": 333
|
||||
,"title": "张三是如何自学前端开发的"
|
||||
,"attr": "分享"
|
||||
,"progress": "0%"
|
||||
,"submit": "张三"
|
||||
,"accept": ""
|
||||
,"state": "未分配"
|
||||
},{
|
||||
"orderid": 444
|
||||
,"title": "PS 软件怎么安装与卸载?"
|
||||
,"attr": "提问"
|
||||
,"progress": "0%"
|
||||
,"submit": "张三"
|
||||
,"accept": ""
|
||||
,"state": "未分配"
|
||||
},{
|
||||
"orderid": 555
|
||||
,"title": "只会 PS 软件安装与卸载能找到工作吗?"
|
||||
,"attr": "提问"
|
||||
,"progress": "50%"
|
||||
,"submit": "张三"
|
||||
,"accept": "员工-2"
|
||||
,"state": "处理中"
|
||||
},{
|
||||
"orderid": 55555
|
||||
,"title": "无题"
|
||||
,"attr": "公告"
|
||||
,"progress": "25%"
|
||||
,"submit": "张三"
|
||||
,"accept": "员工-3"
|
||||
,"state": "处理中"
|
||||
},{
|
||||
"orderid": 777
|
||||
,"title": "前端岗位还有戏吗?"
|
||||
,"attr": "提问"
|
||||
,"progress": "100%"
|
||||
,"submit": "张三"
|
||||
,"accept": "员工-1"
|
||||
,"state": "已处理"
|
||||
},{
|
||||
"orderid": 888
|
||||
,"title": "提问提问提问"
|
||||
,"attr": "提问"
|
||||
,"progress": "0%"
|
||||
,"submit": "张三"
|
||||
,"accept": ""
|
||||
,"state": "未分配"
|
||||
},{
|
||||
"orderid": 999
|
||||
,"title": "提问提问提问"
|
||||
,"attr": "提问"
|
||||
,"progress": "50%"
|
||||
,"submit": "张三"
|
||||
,"accept": "员工-2"
|
||||
,"state": "处理中"
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,257 @@
|
||||
/**
|
||||
* Layui Admin Index Module - Theme v2.7.1
|
||||
* 功能:处理后台管理系统的标签页(Tabs)逻辑,包括打开新标签、切换标签、URL路由监听等。
|
||||
*/
|
||||
layui.define(["ywxapp", "http"], function (exports) {
|
||||
|
||||
// 获取 Layui 核心模块引用
|
||||
var $ = layui.$;
|
||||
var element = layui.element;
|
||||
var ywxapp = layui.ywxapp;
|
||||
var http = layui.http;
|
||||
var setter = layui.setter;
|
||||
var view = layui.view;
|
||||
var util = layui.util;
|
||||
|
||||
// 状态与配置常量
|
||||
var tabsPageState = ywxapp.tabsPage; // 当前标签页状态
|
||||
var TABS_CONTAINER_ID = "layadmin-layout-tabs"; // 标签容器ID
|
||||
|
||||
/**
|
||||
* 核心函数:打开或切换标签页
|
||||
* @param {Object} options - 配置对象
|
||||
* @param {String} options.url - 页面URL
|
||||
* @param {String} options.title - 页面标题
|
||||
* @param {Boolean} options.escape - 是否转义标题(默认true)
|
||||
* @param {String} options.highlight - 标题高亮样式
|
||||
*/
|
||||
function openOrSwitchTab(options) {
|
||||
// 合并默认配置
|
||||
options = $.extend({
|
||||
url: "",
|
||||
escape: true
|
||||
}, options);
|
||||
|
||||
var isTabExists = false;
|
||||
var tabHeaders = $("#LAY_app_tabsheader > li");
|
||||
|
||||
// 提取用于匹配的唯一标识(去除协议头和查询参数)
|
||||
var matchKey = options.url.replace(/(^http(s*):)|(\?[\s\S]*$)/g, "");
|
||||
|
||||
// 1. 检查标签是否已存在
|
||||
tabHeaders.each(function (index) {
|
||||
if ($(this).attr("lay-id") === options.url) {
|
||||
isTabExists = true;
|
||||
tabsPageState.index = index; // 更新当前激活标签索引
|
||||
}
|
||||
});
|
||||
|
||||
// 设置默认标题
|
||||
if (!options.title) {
|
||||
options.title = (tabsPageState.index === 0) ? "" : "\u65b0\u6807\u7b7e\u9875"; // "新标签页"
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行标签切换动作
|
||||
*/
|
||||
function performTabChange() {
|
||||
element.tabChange(TABS_CONTAINER_ID, options.url);
|
||||
ywxapp.tabsBodyChange(tabsPageState.index, {
|
||||
url: options.url,
|
||||
title: options.title
|
||||
});
|
||||
}
|
||||
|
||||
// 2. 根据配置决定是新增标签还是刷新现有iframe
|
||||
if (setter.pageTabs) {
|
||||
// 如果开启了多标签模式
|
||||
if (!isTabExists) {
|
||||
// 延迟添加DOM,确保渲染顺序
|
||||
setTimeout(function () {
|
||||
var iframeHtml = [
|
||||
'<div class="layadmin-tabsbody-item layui-show">',
|
||||
'<iframe src="' + options.url + '" frameborder="0" class="layadmin-iframe"></iframe>',
|
||||
"</div>"
|
||||
].join("");
|
||||
|
||||
$("#LAY_app_body").append(iframeHtml);
|
||||
performTabChange();
|
||||
}, 10);
|
||||
|
||||
// 添加标签头
|
||||
var displayTitle = options.title;
|
||||
if (options.escape) {
|
||||
displayTitle = util.escape(displayTitle);
|
||||
}
|
||||
|
||||
// 处理标题高亮
|
||||
var titleHtml = displayTitle;
|
||||
if (options.highlight) {
|
||||
titleHtml = '<span style="' + options.highlight + '">' + displayTitle + "</span>";
|
||||
}
|
||||
|
||||
element.tabAdd(TABS_CONTAINER_ID, {
|
||||
title: "<span>" + titleHtml + "</span>",
|
||||
id: options.url,
|
||||
attr: matchKey
|
||||
});
|
||||
|
||||
// 更新索引为新添加的标签
|
||||
tabsPageState.index = tabHeaders.length;
|
||||
} else {
|
||||
// 标签已存在,直接切换
|
||||
performTabChange();
|
||||
}
|
||||
} else {
|
||||
// 如果未开启多标签模式,直接在当前iframe中跳转
|
||||
var currentIframe = ywxapp.tabsBody(ywxapp.tabsPage.index).find(".layadmin-iframe")[0];
|
||||
if (currentIframe && currentIframe.contentWindow) {
|
||||
currentIframe.contentWindow.location.href = options.url;
|
||||
}
|
||||
// 即使不新增标签,也可能需要更新内部状态
|
||||
performTabChange();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 递归构建侧边菜单的HTML结构(无限极)
|
||||
* 约定:有 child 且非空 => 父节点(可展开);否则 => 叶子节点(可点击跳转 lay-href)
|
||||
* @param {Array} data 当前层级菜单数组
|
||||
* @param {Number} depth 递归深度(0 为顶级 <li>,>=1 为 <dd> 子项)
|
||||
* @returns {String}
|
||||
*/
|
||||
function buildSideMenu(data, depth) {
|
||||
depth = depth || 0;
|
||||
var html = '';
|
||||
$.each(data, function (i, item) {
|
||||
var hasChild = item.child && item.child.length > 0;
|
||||
var iconHtml = item.icon
|
||||
? '<i class="layui-icon ' + item.icon + '"></i>'
|
||||
: '';
|
||||
var titleHtml = '<cite>' + item.title + '</cite>';
|
||||
|
||||
if (depth === 0) {
|
||||
// 顶级:<li>
|
||||
if (hasChild) {
|
||||
html += '<li data-name="' + item.name + '" class="layui-nav-item' + (item.spread ? ' layui-nav-itemed' : '') + '">';
|
||||
html += ' <a href="javascript:;" lay-tips="' + item.title + '" lay-direction="2">';
|
||||
html += ' ' + iconHtml + titleHtml;
|
||||
html += ' </a>';
|
||||
html += ' <dl class="layui-nav-child">';
|
||||
html += buildSideMenu(item.child, depth + 1);
|
||||
html += ' </dl>';
|
||||
html += '</li>';
|
||||
} else {
|
||||
html += '<li data-name="' + item.name + '" class="layui-nav-item">';
|
||||
html += ' <a lay-href="' + item.route + '" lay-tips="' + item.title + '" lay-direction="2">';
|
||||
html += ' ' + iconHtml + titleHtml;
|
||||
html += ' </a>';
|
||||
html += '</li>';
|
||||
}
|
||||
} else {
|
||||
// 子级:<dd>
|
||||
if (hasChild) {
|
||||
html += '<dd data-name="' + item.name + '">';
|
||||
html += ' <a href="javascript:;">' + iconHtml + item.title + '</a>';
|
||||
html += ' <dl class="layui-nav-child">';
|
||||
html += buildSideMenu(item.child, depth + 1);
|
||||
html += ' </dl>';
|
||||
html += '</dd>';
|
||||
} else {
|
||||
html += '<dd data-name="' + item.name + '">';
|
||||
html += ' <a lay-href="' + item.route + '">' + iconHtml + item.title + '</a>';
|
||||
html += '</dd>';
|
||||
}
|
||||
}
|
||||
});
|
||||
return html;
|
||||
}
|
||||
|
||||
// 加载侧边菜单(与后端菜单保持一致:使用绝对路径命中会员菜单接口,并始终拉取最新数据)
|
||||
var _appShown = false;
|
||||
function showApp() {
|
||||
if (_appShown) return;
|
||||
_appShown = true;
|
||||
$('#' + setter.container).css('visibility', 'visible');
|
||||
}
|
||||
|
||||
function renderMenu(data) {
|
||||
var html = buildSideMenu(data || []);
|
||||
$('#LAY-system-side-menu').html(html);
|
||||
element.init(); // 重新渲染导航
|
||||
showApp(); // 菜单就绪后立即显示主体,消除白屏等待
|
||||
}
|
||||
|
||||
// 菜单接口不可用时的兜底静态菜单(仅保证框架可点击,避免侧栏留白)
|
||||
var FALLBACK_MENU = [
|
||||
{ name: 'console', title: '控制台', icon: 'layui-icon-console', route: '/static/member/views/console/index.html' },
|
||||
{ name: 'profile', title: '账户中心', icon: 'layui-icon-user', child: [
|
||||
{ name: 'info', title: '个人资料', route: '/user/profile/index' },
|
||||
{ name: 'avatar', title: '头像设置', route: '/user/profile/avatar' },
|
||||
{ name: 'password', title: '密码修改', route: '/user/profile/password' },
|
||||
{ name: 'settings', title: '账户设置', route: '/user/settings/index' }
|
||||
]},
|
||||
{ name: 'payment', title: '充值中心', icon: 'layui-icon-rmb', route: '/user/payment/index' }
|
||||
];
|
||||
|
||||
http.get('/user/index/menu').then(function (res) {
|
||||
if (res.code === 0 && res.data && res.data.length > 0) {
|
||||
renderMenu(res.data);
|
||||
} else {
|
||||
if (res.code !== 0) {
|
||||
layer.msg('菜单加载失败,已使用默认菜单: ' + (res.msg || ''), { icon: 2 });
|
||||
}
|
||||
renderMenu(FALLBACK_MENU);
|
||||
}
|
||||
}).catch(function (error) {
|
||||
layer.msg('菜单加载失败,已使用默认菜单: ' + error, { icon: 2 });
|
||||
renderMenu(FALLBACK_MENU);
|
||||
});
|
||||
/**
|
||||
* 初始化路由监听与自动渲染
|
||||
*/
|
||||
(function initRouter() {
|
||||
// 自动渲染视图
|
||||
view().autoRender();
|
||||
|
||||
// 监听 Hash 变化
|
||||
var hashObj = layui.url().hash;
|
||||
var recordConfig = setter.record || {};
|
||||
var path = hashObj.href.replace(/^\//, ""); // 去除开头的斜杠
|
||||
|
||||
// 尝试从本地存储获取标题
|
||||
var storedData = layui.data(setter.tableName).record || {};
|
||||
var savedTitle = storedData[path] || "";
|
||||
|
||||
// 如果配置了记录功能且路径有效
|
||||
if (recordConfig.url && path) {
|
||||
var cleanPath = $.trim(path);
|
||||
|
||||
// 安全检查:如果是外部链接且不属于当前域名,则通过 openOrSwitchTab 处理
|
||||
// 注意:原代码逻辑中,正则测试失败(即不是外部链接)或者属于当前域名时,可能不走这个分支,
|
||||
// 但原代码结构是:如果满足条件则调用 n (即 openOrSwitchTab)。
|
||||
// 原逻辑:/^(\w*:)*\/\/.+/.test(i) && -1 === i.indexOf(location.hostname)
|
||||
// 意思是:如果是绝对路径且域名不同,则作为新标签打开。
|
||||
if (/^(\w*:)*\/\/.+/.test(cleanPath) && cleanPath.indexOf(location.hostname) === -1) {
|
||||
openOrSwitchTab({
|
||||
url: cleanPath,
|
||||
title: savedTitle
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// 保护超时:即便菜单接口异常,最多等待 1.2s 也显示主体(正常情况由 renderMenu 提前显示)
|
||||
setTimeout(showApp, 1200);
|
||||
})();
|
||||
|
||||
// 导出模块接口
|
||||
var exportsData = {
|
||||
openTabsPage: openOrSwitchTab
|
||||
};
|
||||
|
||||
// 扩展 ywxapp 模块的功能
|
||||
$.extend(ywxapp, exportsData);
|
||||
|
||||
// 完成模块定义
|
||||
exports("index",{});
|
||||
});
|
||||
@@ -0,0 +1,44 @@
|
||||
layui.define(['form', 'http'], function (exports) {
|
||||
var form = layui.form;
|
||||
function refreshVerifyCode() {
|
||||
const verifyImg = document.querySelector('[lay-filter="verifyCode"]');
|
||||
if (verifyImg) {
|
||||
verifyImg.style.opacity = '0.7';
|
||||
setTimeout(() => {
|
||||
const baseSrc = verifyImg.src.split('?')[0];
|
||||
verifyImg.src = baseSrc + '?' + Date.now();
|
||||
verifyImg.style.opacity = '1';
|
||||
}, 100);
|
||||
}
|
||||
}
|
||||
const verifyImg = document.querySelector('[lay-filter="verifyCode"]');
|
||||
if (verifyImg) {
|
||||
verifyImg.addEventListener('click', refreshVerifyCode);
|
||||
}
|
||||
form.on('submit(dataSubmit)', function (obj) {
|
||||
let data = obj.field;
|
||||
layui.http.post("save", data)
|
||||
.then(function (res) {
|
||||
if (res.code != 0) {
|
||||
layer.msg(res.message);
|
||||
refreshVerifyCode();
|
||||
} else {
|
||||
layer.alert('请稍后!', {
|
||||
time: 1500,
|
||||
end: function () {
|
||||
if (window.self !== window.top) {
|
||||
// 在 iframe 中,跳转顶级页面
|
||||
window.top.location.href = "/user";
|
||||
} else {
|
||||
// 顶级窗口,直接跳转
|
||||
window.location.href = "/user";
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
});
|
||||
|
||||
return false;
|
||||
});
|
||||
exports('login', {});
|
||||
})
|
||||
@@ -0,0 +1,65 @@
|
||||
layui.define(['form', 'http', 'layer'], function (exports) {
|
||||
var $ = layui.$, form = layui.form, layer = layui.layer;
|
||||
var sending = false;
|
||||
|
||||
// 获取短信验证码
|
||||
$('#LAY-user-getsmscode').on('click', function () {
|
||||
var cellphone = $('#LAY-user-login-cellphone').val();
|
||||
if (!/^1[3-9]\d{9}$/.test(cellphone)) {
|
||||
return layer.msg('请输入正确的手机号');
|
||||
}
|
||||
if (sending) return;
|
||||
sending = true;
|
||||
var $btn = $(this);
|
||||
layui.http.post('sendsms', { cellphone: cellphone, event: 'register' })
|
||||
.then(function (res) {
|
||||
if (res.code !== 0) {
|
||||
layer.msg(res.message || '发送失败');
|
||||
sending = false;
|
||||
return;
|
||||
}
|
||||
if (res.data && res.data.debug_code) {
|
||||
layer.alert('开发模式验证码:' + res.data.debug_code, { title: '调试' });
|
||||
} else {
|
||||
layer.msg('验证码已发送');
|
||||
}
|
||||
var sec = 60;
|
||||
var timer = setInterval(function () {
|
||||
sec--;
|
||||
$btn.text(sec + '秒后重发');
|
||||
if (sec <= 0) {
|
||||
clearInterval(timer);
|
||||
$btn.text('获取验证码');
|
||||
sending = false;
|
||||
}
|
||||
}, 1000);
|
||||
})
|
||||
.catch(function () { sending = false; layer.msg('请求失败'); });
|
||||
return false;
|
||||
});
|
||||
|
||||
// 提交注册
|
||||
form.on('submit(LAY-user-reg-submit)', function (obj) {
|
||||
var field = obj.field;
|
||||
if (field.password !== field.repass) {
|
||||
return layer.msg('两次密码输入不一致');
|
||||
}
|
||||
if (!field.agreement) {
|
||||
return layer.msg('你必须同意用户协议才能注册');
|
||||
}
|
||||
layui.http.post('save', field)
|
||||
.then(function (res) {
|
||||
if (res.code !== 0) {
|
||||
layer.msg(res.message || '注册失败');
|
||||
} else {
|
||||
layer.msg('注册成功', { icon: 1, time: 1000 }, function () {
|
||||
location.hash = "{:url('login/index')}";
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch(function () { layer.msg('请求失败'); });
|
||||
return false;
|
||||
});
|
||||
|
||||
exports('register', {});
|
||||
});
|
||||
@@ -0,0 +1,102 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>控制台</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<link href="/assets/layui/css/layui.css" rel="stylesheet">
|
||||
<link href="/assets/ywxapp/css/ywxapp.css" rel="stylesheet">
|
||||
<script type="text/javascript">
|
||||
//console.log("layui:",layui);
|
||||
console.log("top.layui:", top.layui);
|
||||
console.log("top.top.layui:", top.top.layui);
|
||||
var layui = top.layui || top.top.layui;
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="layui-fluid" style="padding:15px;">
|
||||
<!-- 欢迎区 -->
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-md12">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">欢迎回来,<span id="nickname">会员</span></div>
|
||||
<div class="layui-card-body layui-text" style="height:auto;">
|
||||
<p class="layuiadmin-text">这里是您的个人中心控制台,可快速进入资料管理、订单与发布等常用功能。</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 快捷入口 -->
|
||||
<div class="layui-row layui-col-space15" style="margin-top:15px;">
|
||||
<div class="layui-col-sm6 layui-col-md3">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">个人资料</div>
|
||||
<div class="layui-card-body">
|
||||
<p class="layuiadmin-text">管理昵称、头像与登录密码。</p>
|
||||
<a class="layui-btn layui-btn-sm layui-btn-normal" href="javascript:;" lay-href="user/profile/index">前往</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-sm6 layui-col-md3">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">我的订单</div>
|
||||
<div class="layui-card-body">
|
||||
<p class="layuiadmin-text">查看购买与支付记录。</p>
|
||||
<a class="layui-btn layui-btn-sm layui-btn-normal" href="javascript:;" lay-href="user/payment/index">前往</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-sm6 layui-col-md3">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">账户设置</div>
|
||||
<div class="layui-card-body">
|
||||
<p class="layuiadmin-text">调整账户偏好与安全选项。</p>
|
||||
<a class="layui-btn layui-btn-sm layui-btn-normal" href="javascript:;" lay-href="user/settings/index">前往</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-sm6 layui-col-md3">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">退出登录</div>
|
||||
<div class="layui-card-body">
|
||||
<p class="layuiadmin-text">结束当前会话并返回登录页。</p>
|
||||
<a class="layui-btn layui-btn-sm layui-btn-danger" href="javascript:;" id="logoutBtn2">退出</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
layui.use(['jquery'], function () {
|
||||
var $ = layui.$;
|
||||
// 取右上角注入的昵称(来自 /user/index 模板变量 user.nickname)
|
||||
try {
|
||||
var app = layui.app|| {};
|
||||
} catch (e) {}
|
||||
// 退出登录(与框架 index 页逻辑一致)
|
||||
$('#logoutBtn2').on('click', function () {
|
||||
$.post("{:url('login/logout')}", {}, function () {
|
||||
location.href = "{:url('login/index')}";
|
||||
}, 'json').fail(function () {
|
||||
location.href = "{:url('login/index')}";
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<script src="/assets/layui/layui.js"></script>
|
||||
<script src="/assets/ywxapp/ywxapp.js" module="member"></script>
|
||||
<script>
|
||||
layui.use(['index', 'jquery'], function () {
|
||||
var $ = layui.$;
|
||||
// 若框架层已注入成员昵称,则同步到欢迎区
|
||||
try {
|
||||
if (layui.app && layui.app.user && layui.app.user.nickname) {
|
||||
$('#nickname').text(layui.app.user.nickname);
|
||||
}
|
||||
} catch (e) {}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user