chore: 重写初始提交(清空历史,整理后全量提交)

This commit is contained in:
ywxapp
2026-08-16 16:54:14 +08:00
commit 6c1a106bc1
1808 changed files with 238144 additions and 0 deletions
File diff suppressed because it is too large Load Diff
+172
View File
@@ -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
}
}
+179
View File
@@ -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
}]
}
+62
View File
@@ -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
}]
}
+21
View File
@@ -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": "音乐"
}]
}
+62
View File
@@ -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
}]
}
+69
View File
@@ -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": ""
}]
}
}
+46
View File
@@ -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": "处理中"
}]
}
+257
View File
@@ -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",{});
});
+44
View File
@@ -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', {});
})
+65
View File
@@ -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>