This commit is contained in:
iborvs
2017-06-18 14:26:54 +08:00
29 changed files with 508 additions and 314 deletions
+2 -2
View File
@@ -58,9 +58,9 @@ Route::group(['middleware' => ['web']],function () {
Route::post('/register/2', "UserController@completeUser");
Route::get('/register/3', "UserController@regUserInfo");
Route::get('user/userinfo', "UserController@userInfo");
Route::get('/user/userinfo', "UserController@userInfo");
Route::get('/user/userinfo/create', "UserController@createUserInfo");
Route::post('user/userinfo', "UserController@storeUserInfo");
Route::post('/user/userinfo', "UserController@storeUserInfo");
Route::get('/user/fav', "UserController@getFavlist");
Route::get('/user/fav/edit', "UserController@editFavlist");
+2 -2
View File
@@ -1,11 +1,11 @@
/*!
* Cropper v3.0.0-alpha.1
* Cropper v3.0.0-rc.2
* https://github.com/fengyuanchen/cropper
*
* Copyright (c) 2017 Fengyuan Chen
* Released under the MIT license
*
* Date: 2017-01-21T11:58:14.219Z
* Date: 2017-05-30T05:04:38.958Z
*/
.cropper-container{font-size:0;line-height:0;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;direction:ltr;-ms-touch-action:none;touch-action:none}.cropper-container img{display:block;min-width:0!important;max-width:none!important;min-height:0!important;max-height:none!important;width:100%;height:100%;image-orientation:0deg}.cropper-canvas,.cropper-crop-box,.cropper-drag-box,.cropper-modal,.cropper-wrap-box{position:absolute;top:0;right:0;bottom:0;left:0}.cropper-wrap-box{overflow:hidden}.cropper-drag-box{opacity:0;background-color:#fff}.cropper-modal{opacity:.5;background-color:#000}.cropper-view-box{display:block;overflow:hidden;width:100%;height:100%;outline:1px solid #39f;outline-color:rgba(51,153,255,.75)}.cropper-dashed{position:absolute;display:block;opacity:.5;border:0 dashed #eee}.cropper-dashed.dashed-h{top:33.33333%;left:0;width:100%;height:33.33333%;border-top-width:1px;border-bottom-width:1px}.cropper-dashed.dashed-v{top:0;left:33.33333%;width:33.33333%;height:100%;border-right-width:1px;border-left-width:1px}.cropper-center{position:absolute;top:50%;left:50%;display:block;width:0;height:0;opacity:.75}.cropper-center:after,.cropper-center:before{position:absolute;display:block;content:" ";background-color:#eee}.cropper-center:before{top:0;left:-3px;width:7px;height:1px}.cropper-center:after{top:-3px;left:0;width:1px;height:7px}.cropper-face,.cropper-line,.cropper-point{position:absolute;display:block;width:100%;height:100%;opacity:.1}.cropper-face{top:0;left:0;background-color:#fff}.cropper-line{background-color:#39f}.cropper-line.line-e{top:0;right:-3px;width:5px;cursor:e-resize}.cropper-line.line-n{top:-3px;left:0;height:5px;cursor:n-resize}.cropper-line.line-w{top:0;left:-3px;width:5px;cursor:w-resize}.cropper-line.line-s{bottom:-3px;left:0;height:5px;cursor:s-resize}.cropper-point{width:5px;height:5px;opacity:.75;background-color:#39f}.cropper-point.point-e{top:50%;right:-3px;margin-top:-3px;cursor:e-resize}.cropper-point.point-n{top:-3px;left:50%;margin-left:-3px;cursor:n-resize}.cropper-point.point-w{top:50%;left:-3px;margin-top:-3px;cursor:w-resize}.cropper-point.point-s{bottom:-3px;left:50%;margin-left:-3px;cursor:s-resize}.cropper-point.point-ne{top:-3px;right:-3px;cursor:ne-resize}.cropper-point.point-nw{top:-3px;left:-3px;cursor:nw-resize}.cropper-point.point-sw{bottom:-3px;left:-3px;cursor:sw-resize}.cropper-point.point-se{right:-3px;bottom:-3px;width:20px;height:20px;cursor:se-resize;opacity:1}@media (min-width:768px){.cropper-point.point-se{width:15px;height:15px}}@media (min-width:992px){.cropper-point.point-se{width:10px;height:10px}}@media (min-width:1200px){.cropper-point.point-se{width:5px;height:5px;opacity:.75}}.cropper-point.point-se:before{position:absolute;right:-50%;bottom:-50%;display:block;width:200%;height:200%;content:" ";opacity:0;background-color:#39f}.cropper-invisible{opacity:0}.cropper-bg{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC")}.cropper-hide{position:absolute;display:block;width:0;height:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}
+5 -24
View File
@@ -6,7 +6,7 @@ a:hover, a:focus {
position: absolute;
top: 0;
left: 0;
height: 152px;
height: 137px;
width: 100%;
z-index: -2;
overflow: hidden;
@@ -20,23 +20,17 @@ a:hover, a:focus {
top: -10px;
left: -20px;
padding: 0 20px;
height: 152px;
height: 137px;
width: 100%;
box-sizing: content-box;
}
.navbar {
box-shadow: rgba(0, 0, 0, 0.1) 0 1px 2px;
border: none;
background: none;
}
.navbar-back {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
height: 56px;
z-index: -1;
overflow: hidden;
}
@@ -65,19 +59,6 @@ a:hover, a:focus {
box-sizing: content-box;
}
@media (max-width: 749px) {
.navbar a {
color: #eeeeee !important;
}
.navbar a:hover {
color: #ffffff !important;
}
}
.navbar-nav > .open > a {
background-color: transparent !important;
}
.navbar-avatar {
padding: 0 !important;
}
@@ -103,7 +84,7 @@ a:hover, a:focus {
}
.page-content {
margin-top: 75px;
margin-top: 85px;
}
.footer ul {
@@ -127,4 +108,4 @@ a:hover, a:focus {
.col-centered{
float: none;
margin: 0 auto;
}
}
+3 -3
View File
File diff suppressed because one or more lines are too long
+11 -12
View File
@@ -8,14 +8,14 @@
.login-card {
width:400px;
}
.row-first {
margin-top:130px;
margin-bottom:50px;
}
}
</style>
<script>
if (matchMedia) {
var mq = window.matchMedia("(min-width: 992px)");
mq.addListener(WidthChange);
WidthChange(mq);
}
match_media = "(min-width:992px)";
function WidthChange(mq) {
if (mq.matches) {
@@ -30,13 +30,12 @@
@endsection
@section('content')
<div class="row row-first" style="margin-top:130px;margin-bottom:50px">
<div class="mx-auto row row-second">
<div class="hidden-md-down" style="width:380px;margin-right:20px">
<br/><br/>
<h2 style="text-align:right"><b>旧很靠谱</b></h2>
<div class="row-first">
<div class="mx-auto row-second">
<div class="hidden-md-down my-auto" style="width:380px;margin-right:20px:height:100%">
<h2 style="text-align:center"><b>旧很靠谱</b></h2>
<br/><br/><br/>
<h4 style="text-align:right">自主研发 | 校卡绑定 | 安全便捷</h4>
<h4 style="text-align:center">自主研发 | 校卡绑定 | 安全便捷</h4>
</div>
<div class="card login-card">
<div class="card-header">登录</div>
@@ -50,7 +49,7 @@
<form action="/login" method="POST">
<div class="form-group">
<label for="username">用户名/邮箱</label>
<input type="text" name="username" id="username" class="form-control" placeholder="如果都没有的话,就用校卡登录吧" tabindex="1">
<input type="text" name="username" id="username" class="form-control" placeholder="你也可以使用校卡平台登录" tabindex="1">
</div>
<div class="form-group">
<label for="password">密码(<a href="/iforgotit">忘记密码?</a>)</label>
@@ -4,19 +4,17 @@
@section('asset')
<style>
@media (min-width: 992px) {
@media (min-width: 768px) {
.reset-card {
width:400px;
}
.row-first {
margin-top:130px;
margin-bottom:50px;
}
}
</style>
<script>
if (matchMedia) {
var mq = window.matchMedia("(min-width: 992px)");
mq.addListener(WidthChange);
WidthChange(mq);
}
function WidthChange(mq) {
if (mq.matches) {
$('.row-first').attr('class','row row-first');
@@ -28,7 +26,7 @@
@endsection
@section('content')
<div class="row row-first">
<div class="row-first">
<div class="mx-auto">
<div class="card reset-card">
<div class="card-header">重置密码</div>
+1 -1
View File
@@ -3,7 +3,7 @@
@section('title', "注册")
@section('content')
Poor!!!!!!
<div class="row card">
<div class="large-4 large-centered medium-6 medium-centered small-12 small-centered columns card-section">
@if (count($errors) > 0)
+49 -20
View File
@@ -2,32 +2,61 @@
@section('title', "欢迎")
@section('content')
@section('asset')
<style>
#preview, #avatarpreview {
max-width: 100%;
height:230px;
}
@media (min-width: 768px) {
.register-card {
width:768px;
}
.register-input {
width:300px;
}
}
</style>
<script>
$(document).ready(function() {
$('.nickname-input').attr('placeholder','你可以随时修改你的昵称');
});
<div class="card">
<div class="card-block">
<div class="row">
<div class="col-10 offset-1 col-md-8 offset-md-2">
function WidthChange(mq) {
if (mq.matches) {
$('.row-first').attr('class','row row-first');
$('.nickname-form').attr('class','nickname-form row');
} else {
$('.row-first').attr('class','row-first');
$('.nickname-form').attr('class','nickname-form');
}
}
</script>
@endsection
@section('content')
<div class="row-first" style="margin-top:20px">
<div class="mx-auto">
<div class="card register-card">
<form action="/register/2" method="POST" enctype="multipart/form-data">
<div class="card-block">
<div class="alert alert-success" role="alert">
<span class="fa fa-check" aria-hidden="true"></span>
你已经成为了先锋市场的一分子啦!现在你可以为自己取一个昵称,以及上传一个头像。
你已经成为了先锋市场的一份子啦!现在你可以为自己上传一个头像,以及取一个昵称。
</div>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="33" aria-valuemin="0" aria-valuemax="100" style="width: 33%;">
</div>
</div><br/>
<form action="/register/2" method="POST" enctype="multipart/form-data">
<div class="container">
@include('user.editUserExtra')
<br/>
<div class="float-left">
<input class="btn btn-primary" type="submit" name="submit" value="保存">
</div>
</div>
<div class="card-footer">
<div class="row">
<div class="ml-auto" style="margin-right:5px">
<input class="btn btn-success" type="submit" name="submit" value="下一步">
</div>
<div class="float-right">
<a href="/register/3" class="ml-auto btn btn-secondary">跳过</a>
</div>
</form>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
@endsection
+61 -49
View File
@@ -2,59 +2,71 @@
@section('title', "即将打开新的大门")
@section('content')
@section('asset')
<style>
@media (min-width: 768px) {
.register-card {
width:768px;
}
#modify_user_info_form {
width:300px;
}
}
@media (max-width: 767px) {
.address-th {
max-width: 200px;
}
}
.table {
table-layout: fixed;
}
.table td {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
</style>
<script>
function WidthChange(mq) {
if (mq.matches) {
$('.row-first').attr('class','row row-first');
$('.table').attr('class','table table-hover');
$('.row-form').attr('class','row row-form');
} else {
$('.row-first').attr('class','row-first');
$('.table').attr('class','table table-hover table-responsive');
$('.row-form').attr('class','row-form');
}
}
<div class="card">
<div class="card-block">
<div class="row">
<div class="col-10 offset-1 col-md-8 offset-md-2">
<div class="alert alert-success" role="alert">
如果你希望在先锋市场出售物品,你还<b>需要</b>添加至少一种联系方式。其他用户会在与你开始某件商品的交易时将可以看到你的联系方式。
</div>
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="67" aria-valuemin="0" aria-valuemax="100" style="width: 67%;">
</div>
</div>
<div id="userinfo-container">
@include('user.userInfo')
</div>
<div class="float-right">
<a href="/" class="btn btn-secondary">完成</a>
</div>
$(function () {
$('[data-toggle="popover"]').popover()
})
</script>
@endsection
@section('content')
<div class="row row-first" style="margin-top:20px">
<div class="mx-auto">
<div class="card register-card">
<div class="card-block">
<div class="alert alert-warning" role="alert">
如果你希望在先锋市场出售或购买物品,你还需要添加至少一种联系方式。系统会在你的交易开始时交换你与对方的联系方式。
</div>
<div id="userinfo-container">
@include('user.userInfo')
</div>
</div>
<div class="card-footer">
<div class="row">
<div class="ml-auto" style="margin-right:5px">
<button onclick="window.location.href='/'" class="btn btn-success">完成</a>
</div>
</div>
</div>
</div>
</div>
<script>
function createUserInfo() {
$.ajax({
type: "GET",
url: "/user/userinfo/create",
success: function (msg) {
$('#userinfo-container').html(msg);
}
})
}
function addUserInfo() {
var str_data = $("#create_user_info_form input,#create_user_info_form textarea").map(function () {
return ($(this).attr("name") + '=' + encodeURIComponent($(this).val()));
}).get().join("&");
$.ajax({
type: "POST",
url: "/user/userinfo",
data: str_data,
success: function (msg) {
$.ajax({
type: "GET",
url: "/user/userinfo",
success: function (msg) {
window.location.href = "/";
}
})
}
})
}
</script>
</div>
</div>
@endsection
+1 -1
View File
@@ -5,7 +5,7 @@
@section('content')
<div class="jumbotron">
<p>先锋市场当前仅允许校内人员注册使用。如果这是你第一次使用本网站,请点击下面的按钮,前往校园统一身份认证服务平台进行认证注册。</p>
<center><a href="/sso" class="btn btn-primary">校园统一身份认证服务平台</a></center><br/>
<p><center><a href="/sso" class="btn btn-primary">校园统一身份认证服务平台</a></center></p>
<p>友情提示:校园统一身份认证服务平台的初始密码为校园卡查询密码。注意:此密码与校园卡是否修改过卡片的消费密码无关。这个密码可能是以下几种之一:校园卡身份证号后六位(“X”用“0”代替),学号后六位,「000000」。为了您的账号安全,强烈建议您修改校园统一身份认证服务平台(SSO)的密码。</p>
<p>初次登录后,你可以为自己设置一个用户名,或者绑定你的邮箱,以使用它们进行登录。你也可以继续使用校卡平台进行快捷登录。</p>
</div>
+4 -3
View File
@@ -23,9 +23,10 @@
@endsection
@section('content')
<p>
<div class="row">
<div class="col-12 col-md-5">
<a id="pic" href="/good/{{ sha1($good->id) }}/titlepic"><img class="card" src="/good/{{ sha1($good->id) }}/titlepic" style="max-width:100%"/></a><br/>
<p><a id="pic" href="/good/{{ sha1($good->id) }}/titlepic"><img class="card" src="/good/{{ sha1($good->id) }}/titlepic" style="max-width:100%"/></a></p>
</div>
<div class="col-12 col-md-7">
<div>
@@ -49,7 +50,7 @@
@endif
<div><!-- 放tag 和更多图片缩略图 --></div>
<div>售价:<h3 style="display:inline-block"><b class="text-warning">¥{{ $good->price }}</b></h3></div>
<div @if($good->count==0) class="text-danger" @endif>@if($good->count>0) 库存:{{ $good->count }}件 @else 没库存了QAQ @endif</div><br/>
<p><div @if($good->count==0) class="text-danger" @endif>@if($good->count>0) 库存:{{ $good->count }}件 @else 没库存了QAQ @endif</div></p>
@if (count($errors) > 0)
<div class="alert alert-danger" role="alert">
<span class="fa fa-exclamation-circle" aria-hidden="true"></span>
@@ -85,7 +86,7 @@
@endif
</div>
</div>
<br/>
</p>
<div class="card">
<div class="card-header">
<h4>商品介绍</h4>
+6 -4
View File
@@ -69,10 +69,12 @@
</div>
</div>
--}}
<p>
<div>
<label for="goodTitleUpload" class="btn btn-primary">上传封面</label>
<div id="preview"></div>
</div><br/>
<p><div id="preview"></div></p>
</div>
</p>
<div style="display: none">
<input type="file" id="goodTitleUpload" class="show-for-sr" name="goodTitlePic"
onchange="preview(this)"/>
@@ -96,7 +98,7 @@
var prreader = new FileReader();
var reader = new FileReader();
reader.onload = function (evt) {
prevDiv.innerHTML = '<br/><img id="goodimgpreview" src="' + evt.target.result + '" />';
prevDiv.innerHTML = '<img id="goodimgpreview" src="' + evt.target.result + '" />';
$('#goodimgpreview').cropper({
aspectRatio: 16 / 9,
crop: function (e) {
@@ -122,7 +124,7 @@
prreader.readAsArrayBuffer(file.files[0]);
}
else {
prevDiv.innerHTML = '<br/><div class="img" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src=\'' + file.value + '\'"></div>';
prevDiv.innerHTML = '<div class="img" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src=\'' + file.value + '\'"></div>';
}
}
// WYSIWYG Editor
@@ -1,34 +1,35 @@
<div class="col-6 col-lg-4">
<div class="good" style="margin-bottom:20px;">
<a href="/good/{{ $good->id }}">
<div class="card">
<div class="card-img-top">
<div style="position:absolute;z-index:201">
<input type="checkBox" name="del_goods[]" value="0" id="box{{ $good->good_id }}" class="cb" onclick="{setValue({{ $good->good_id }})}" style="visibility:hidden;width:20%;z-index:203" />
</div>
<img src="/good/{{ sha1($good->id) }}/titlepic" class="titlepic"/>
<div class="details" style="position:absolute;z-index:200;width:100%;display:none;">
<div class="det-d hidden-sm-down" style="position:absolute;z-index:200;top:-37px;left:5px;color:white;font-size:12px;">
售价:¥{{ $good->price }}<br/>
@if($good->count==0)
无库存QAQ
@else
库存:{{ $good->count }}
@endif
<div class="good" style="margin-bottom:20px;">
<a href="/good/{{ $good->id }}">
<div class="card">
<div class="card-img-top">
<div style="position:absolute;z-index:201">
<input type="checkBox" name="del_goods[]" value="0" id="box{{ $good->good_id }}" class="cb" onclick="{setValue({{ $good->good_id }})}" style="visibility:hidden;width:20%;z-index:203" />
</div>
<img src="/good/{{ sha1($good->id) }}/titlepic" class="titlepic"/>
<div class="details" style="position:absolute;z-index:200;width:100%;display:none;">
<div class="det-d hidden-sm-down" style="position:absolute;z-index:200;top:-37px;left:5px;color:white;font-size:12px;">
<p>售价:¥{{ $good->price }}</p>
<p>@if($good->count==0)
无库存QAQ
@else
库存:{{ $good->count }}
@endif</p>
</div>
<div class="det-d hidden-md-up" style="position:absolute;z-index:200;top:-43px;left:5px;color:white;font-size:15px;">
<p>售价:¥{{ $good->price }}</p>
<p>@if($good->count==0)
无库存QAQ
@else
库存:{{ $good->count }}
@endif</p>
</div>
</div>
</div>
</div>
<div class="card-block" style="word-break:break-all;">
{{ $good->good_name }}
<div class="hidden-md-up" style="font-size:14px;color:black"> 售价:¥{{ $good->price }}<br/>
@if($good->count==0)
无库存QAQ
@else
库存:{{ $good->count }}
@endif
<div class="card-block" style="word-break:break-all">
{{ $good->good_name }}
</div>
</div>
</div>
</a>
</div>
</a>
</div>
</div>
+2 -1
View File
@@ -11,6 +11,7 @@
@include('layout.catlist')
<div class="hidden-md-up">&nbsp;</div>
<div class="col-12 col-md-10">
<p>
<div class="row">
<div class="col-12 col-md-2">
<div class="dropdown">
@@ -34,7 +35,7 @@
<a>库存下限</a> <input id="pricec" style="display:inline-block" maxlength="9" class="form-control" value="@if(isset($_GET['start_count'])){{ $_GET['start_count'] }}@endif"/>&nbsp;<button class="btn btn-primary" id="subs" onclick="setc('a')">确定</button>
</div>
</div>
<br/>
</p>
<div class="row">
@foreach($goods as $good)
<div class="col-6 col-md-4 col-lg-3">
@@ -5,6 +5,6 @@
@section('content')
<h2>{{ $announcement->title }}</h2>
{{ $announcement->content }}
{!! $announcement->content !!}
@endsection
+2 -2
View File
@@ -1,8 +1,8 @@
<div class="col-md-2 hidden-sm-down" style="position:sticky;top:0">
<div class="col-md-2 hidden-sm-down" style="position:sticky;top:0;left:0">
<ul class="nav nav-pills flex-column">
<li class="nav-item"><a href="/good" class="nav-link @if(isset($cat_id)&&$cat_id == 0) active @endif" style="white-space:nowrap;overflow:hidden">所有商品</a></li>
@foreach($cats as $cat)
<li class="nav-item"><a href="/good?cat_id={{ $cat->id }}" class="nav-link @if(isset($cat_id)&&$cat_id == $cat->id) active @endif" style="white-space:nowrap;overflow:hidden">{{ $cat->cat_name }}</a></li>
<li class="nav-item"><a href="/good?cat_id={{ $cat->id }}" class="nav-link @if(isset($cat_id)&&$cat_id == $cat->id) active @endif" style="white-space:nowrap;overflow:hidden;text-overflow:ellipsis;">{{ $cat->cat_name }}</a></li>
@endforeach
</ul>
</div>
+2 -3
View File
@@ -20,9 +20,8 @@
<div class="col-10 offset-1 columns">
<span>
<center>
@if(env('APP_DEBUG'))当前处于调试模式<br>@endif
@if(env('SHOW_VER'))程序版本:{{ config('app.version') }}&nbsp;&nbsp; 文件版本:<a
href="https://github.com/NEUP-Net-Depart/NEUP-FleaMarket/commit/{{ explode(' ', exec('git log --pretty=oneline -1'))[0] }}">{{ exec('git log --abbrev-commit --pretty=oneline -1') }}</a>
@if(env('APP_DEBUG'))<p>当前处于调试模式</p>@endif
@if(env('SHOW_VER'))<p>程序版本:{{ config('app.version') }}&nbsp;&nbsp; 文件版本:<a href="https://github.com/NEUP-Net-Depart/NEUP-FleaMarket/commit/{{ explode(' ', exec('git log --pretty=oneline -1'))[0] }}">{{ exec('git log --abbrev-commit --pretty=oneline -1') }}</a></p>
@endif
</center>
</span>
+37 -12
View File
@@ -1,22 +1,47 @@
<div class="navbar-back" style="height:56px">
<div class="navbar-bg"></div>
<div class="navbar-filter"></div>
</div>
<div class="navbar-back">
<div class="navbar-bg"></div>
<div class="navbar-filter"></div>
</div>
<div class="container">
<nav class="navbar navbar-toggleable-sm navbar-inverse" style="box-shadow:#ffffff 0 0 0">
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbar" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<nav class="navbar navbar-toggleable navbar-inverse" style="box-shadow:#ffffff 0 0 0">
<div class="nav-item">
<a class="navbar-toggler navbar-toggler-right nav-link" href="#" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
<span class="navbar-toggler-icon"></span>
</button>
</a>
<div class="dropdown-menu dropdown-menu-right">
@if(Session::has('user_id'))
<a href="/user" class="dropdown-item">
<img src="/avatar/{{ Session::get('user_id') }}/110/110" class="avatar"/>
<label class="dropdown-header"><center>{{ Session::get('nickname') }}</center></label>
</a>
<a href="/logout" class="dropdown-item">登出</a>
<div class="dropdown-divider"></div>
<a href="/user/fav" class="dropdown-item">收藏夹</a>
<a href="/user/trans" class="dropdown-item">我的购买</a>
<a href="/user/sell" class="dropdown-item">我的出售</a>
@if(Session::get('is_admin') >= 1)
<a href="/admin" class="dropdown-item">管理中心</a>
@endif
<div class="dropdown-divider"></div>
<a href="/good/add" class="dropdown-item">出售</a>
@else
<a href="/login" class="dropdown-item">普通登录</a>
<a href="/sso" class="dropdown-item">校卡平台快捷登录</a>
<div class="dropdown-divider"></div>
<a href="/register" class="dropdown-item">注册</a>
@endif
</div>
</div>
<a class="navbar-brand" href="/">先锋市场</a>
<div class="collapse navbar-collapse" id="navbar">
<ul class="navbar-nav ml-auto">
@if(Session::has('user_id'))
<li class="nav-item dropdown">
<a class="nav-link navbar-avatar dropdown-toggle" href="#" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
<img src="/avatar/{{ Session::get('user_id') }}/40/40" class="avatar"/>
<img src="/avatar/{{ Session::get('user_id') }}/40/40" class="avatar"/> <span class="caret"></span>
</a>
<div class="dropdown-menu dropdown-menu-right">
<h6 class="dropdown-header">{{ Session::get('nickname') }}</h6>
<label class="dropdown-header"><center>{{ Session::get('nickname') }}</center></label>
<a href="/user" class="dropdown-item">个人中心</a>
<a href="/user/fav" class="dropdown-item">收藏夹</a>
<a href="/user/trans" class="dropdown-item">我的购买</a>
@@ -47,8 +72,7 @@
<div class="banner-back"><div class="banner"></div></div>
<br/>
<p>
<div class="container hidden-sm-down">
<form action="/good" method="GET">
<div class="input-group float-right search-group" style="width:250px">
@@ -68,4 +92,5 @@
</span>
</div>
</form>
</div>
</div>
</p>
+21 -3
View File
@@ -8,24 +8,42 @@
<link rel="stylesheet" href="/css/font-awesome.min.css">
<link rel="stylesheet" href="/css/main.css">
<link rel="stylesheet" href="/css/cropper.min.css">
<script src="/js/jquery-3.2.1.min.js"></script>
<script src="/js/tether.min.js"></script>
<link rel="stylesheet" href="/css/froala_editor.min.css">
<link rel="stylesheet" href="/css/froala_editor.pkgd.min.css">
<script src="/js/jquery-3.2.1.min.js"></script>
<script src="/js/tether.min.js"></script>
<script src="/js/cropper.min.js"></script>
<script src="/js/jquery.slides.min.js"></script>
<script src="/js/popper.min.js"></script>
<script src="/js/bootstrap.min.js"></script>
@yield('asset')
<script src="/js/froala_editor.pkgd.min.js"></script>
<script>
var match_media;
function WidthChange(mq) {
}
</script>
@yield('asset')
<script>
$(document).ready(function() {
if (match_media === undefined) match_media = "(min-width:768px)";
if (matchMedia) {
var mq = window.matchMedia(match_media);
mq.addListener(WidthChange);
WidthChange(mq);
}
$('.load-part').attr('style','display:block');
});
</script>
<title>@yield('title') - 先锋市场 Powered by NEUPioneer</title>
</head>
<body>
@include('layout.header')
<div class="load-part" style="display:none">
<div class="page-content container">
@yield('content')
</div>
@yield('navbm')
@include('layout.footer')
</div>
</body>
</html>
+1 -1
View File
@@ -79,7 +79,7 @@
</transition-group>
</ul>
<p class="err-msg" v-if="errorMessage">@{{ errorMessage }}</p>
<textarea placeholder="键入要发送的内容:" v-model="inputMessage" class="form-control"></textarea><br/>
<p><textarea placeholder="键入要发送的内容:" v-model="inputMessage" class="form-control"></textarea></p>
<input type="button" class="btn btn-primary" value="发送" v-on:click="sendMessage"/>
<input id="token" type="hidden" value="{{ csrf_token() }}"/>
{{--<a v-on:click="getNewMessage">!!!</a>--}}
@@ -6,11 +6,11 @@
<div class="page-content">
<form action="/message" method="post">
Title:<input type="text" name="title"><br/>
Content:<textarea name="content" row="15" cols="45"></textarea><br/>
Receiver:<input type="text" name="receiver"><br/>
<p>Title:<input type="text" name="title"></p>
<p>Content:<textarea name="content" row="15" cols="45"></textarea></p>
<p>Receiver:<input type="text" name="receiver"></p>
{!! csrf_field() !!}
<input type="submit" value="Send"><br/>
<p><input type="submit" value="Send"></p>
</form>
</div>
+9 -19
View File
@@ -1,22 +1,12 @@
<form id="create_user_info_form">
<div class="form-group col-10 offset-1 col-md-6 offset-md-3">
<label for="tel_num">手机</label>
<input type="text" name="tel_num" id="tel_num" class="form-control">
</div>
<div class="form-group col-10 offset-1 col-md-6 offset-md-3">
<label for="QQ">QQ</label>
<input type="text" name="QQ" id="QQ" class="form-control">
</div>
<div class="form-group col-10 offset-1 col-md-6 offset-md-3">
<label for="wechat">微信</label>
<input type="text" name="wechat" id="wechat" class="form-control">
</div>
<div class="form-group col-10 offset-1 col-md-6 offset-md-3">
<label for="address">地址</label>
<textarea name="address" id="address" class="form-control"></textarea>
</div>
<form id="create_user_info_form" style="width:300px">
<p><input type="text" name="tel_num" id="tel_num" class="form-control" placeholder="手机"></p>
<p><input type="text" name="QQ" id="QQ" class="form-control" placeholder="QQ"></p>
<p><input type="text" name="wechat" id="wechat" class="form-control" placeholder="微信"></p>
<p><textarea name="address" id="address" class="form-control" placeholder="地址"></textarea></p>
{!! csrf_field() !!}
<div class="form-group col-10 offset-1 col-md-6 offset-md-3">
<input type="button" onclick="addUserInfo()" class="btn btn-primary" value="保存">
<div class="row">
<div class="mx-auto">
<input type="button" onclick="addUserInfo()" class="btn btn-primary" value="保存">
</div>
</div>
</form>
+39 -20
View File
@@ -1,4 +1,16 @@
<div class="col-12 col-md-4">
<div class="row">
<div class="mx-auto">
@if (count($errors) > 0)
<div class="alert alert-danger" role="alert">
<span class="fa fa-exclamation-circle" aria-hidden="true"></span>
{!! $errors->first() !!}
</div>
@endif
</div>
</div>
<div class="row">
<div class="mx-auto">
<p>
<form action="/user/edit/username" method="POST">
{{ csrf_field() }}
@if($user->username=='')
@@ -8,9 +20,11 @@
<input type="submit" class="btn btn-primary" value="设置">
</div>
@else
<label>用户名:{{$user->username}}</label>
<label style="font-size:13px;line-height:38px">用户名:{{$user->username}}</label>
@endif
</form>
</p>
<p>
<form action="/user/edit/stuid" method="POST">
{{ csrf_field() }}
@if($user->stuid=='')
@@ -20,41 +34,46 @@
</div>
<input type="submit" class="btn btn-primary" name="stuid_submit" value="绑定">
@else
<label>学号:{{$user->stuid}}</label>
<label style="font-size:13px;line-height:38px">学号: {{$user->stuid}}</label>
@endif
</p>
</form>
<p>
<form action="/user/edit/email" method="POST">
{{ csrf_field() }}
@if($user->email=='')
<div class="form-group">
<label for="email">邮箱</label>
<input type="email" name="email" id="email" class="form-control" value="{{$user->email}}" required>
<p><input type="email" name="email" id="email" class="form-control" value="{{$user->email}}" placeholder="邮箱" required></p>
<div class="row">
<div class="mx-auto">
<input type="submit" class="btn btn-primary" name="email_submit" value="绑定">
</div>
</div>
@else
<div class="form-group">
<label>邮箱:{{$user->email}}(@if($user->havecheckedemail) 已验证 @else 未验证 @endif)</label>
<label style="font-size:13px">邮箱: {{$user->email}}(@if($user->havecheckedemail)已验证@else未验证@endif)</label>
<input type="hidden" name="email" id="email" class="form-control" value="{{$user->email}}">
<input type="submit" class="btn btn-primary" value="解绑">
<input type="submit" class="btn btn-warning" value="解绑">
</div>
@endif
</form>
<form action="/user/edit/password" method="POST">
</p>
</div>
</div>
<hr>
<div class="row row-password">
<div class="mx-auto">
<form action="/user/edit/password" method="POST" class="password-form">
{{ csrf_field() }}
@if($user->password!='')
<div class="form-group">
<label for="password">当前密码</label>
<input type="password" name="password" id="password" class="form-control" placeholder="必填" required>
</div>
<p><input type="password" name="password" id="password" class="form-control" placeholder="当前密码" required></p>
@endif
<div class="form-group">
<label for="newPassword">新密码</label>
<input type="password" name="newPassword" id="newPassword" class="form-control" placeholder="必填" required>
<p><input type="password" name="newPassword" id="newPassword" class="form-control" placeholder="新密码" required></p>
<p><input type="password" name="newPassword_confirmation" id="newPassword_confirmation" class="form-control" placeholder="确认新密码" required></p>
<div class="row">
<div class="mx-auto">
<input type="submit" class="btn btn-success" name="password_submit" value="保存">
</div>
<div class="form-group">
<label for="newPassword_confirmation">确认新密码</label>
<input type="password" name="newPassword_confirmation" id="newPassword_confirmation" class="form-control" placeholder="必填" required>
</div>
<input type="submit" class="btn btn-primary" name="password_submit" value="保存">
</form>
</div>
</div>
+48 -34
View File
@@ -1,33 +1,45 @@
@if (count($errors) > 0)
<div class="alert alert-danger" role="alert">
<span class="fa fa-exclamation-circle" aria-hidden="true"></span>
{!! $errors->first() !!}
<style>
.cropper-crop-box, .cropper-view-box {
border-radius: 50%;
}
.cropper-view-box {
box-shadow: 0 0 0 1px #39f;
outline: 0;
}
</style>
<div class="row">
<div class="mx-auto">
<div id="preview"><img id="avatarpreview" class="avatar" src="/avatar/{{Session::get('user_id')}}"/></div>
<div style="display: none">
<input type="file" id="avatarUpload" name="avatarPic" onchange="preview(this)"/>
</div>
@endif
@if(isset($user->nickname))
<div class="form-group col-md-4 col-sm-8">
<label for="nickname">昵称</label>
<input type="text" name="nickname" id="nickname" class="form-control" value="{{ $user->nickname }}"></label>
</div>
@else
<div class="form-group col-md-4">
<label for="nickname">昵称</label>
<input type="text" name="nickname" id="nickname" class="form-control"></label>
</div>
@endif
{!! csrf_field() !!}
<div class="col-md-12">
<label for="avatarUpload" class="btn btn-primary">选择头像</label>
<div id="preview"></div>
<div style="display: none">
<input type="file" id="avatarUpload" class="show-for-sr" name="avatarPic"
onchange="preview(this)"/>
</div>
<input id="avatarUploadCpWidth" type="hidden" name="crop_width">
<input id="avatarUploadCpHeight" type="hidden" name="crop_height">
<input id="avatarUploadCpX" type="hidden" name="crop_x">
<input id="avatarUploadCpY" type="hidden" name="crop_y">
</div>
<input id="avatarUploadCpWidth" type="hidden" name="crop_width">
<input id="avatarUploadCpHeight" type="hidden" name="crop_height">
<input id="avatarUploadCpX" type="hidden" name="crop_x">
<input id="avatarUploadCpY" type="hidden" name="crop_y">
<p>
<div class="row">
<div class="mx-auto">
<label for="avatarUpload" class="btn btn-secondary">更改头像</label>
</div>
</div>
</p>
{!! csrf_field() !!}
<div class="nickname-form">
<div class="mx-auto">
<div class="form-group">
<label for="nickname">昵称</label>
@if(isset($user->nickname))
<input type="text" name="nickname" id="nickname" class="form-control nickname-input" value="{{ $user->nickname }}">
@else
<input type="text" name="nickname" id="nickname" class="form-control nickname-input">
@endif
</div>
</div>
</div>
<script>
function preview(file) {
var prevDiv = document.getElementById('preview');
@@ -35,9 +47,11 @@
var prreader = new FileReader();
var reader = new FileReader();
reader.onload = function (evt) {
prevDiv.innerHTML = '<img id="avatarpreview" src="' + evt.target.result + '" />';
prevDiv.innerHTML = '<img id="avatarpreview" class="avatar" src="' + evt.target.result + '"/>';
$('#avatarpreview').cropper({
aspectRatio: 1 / 1,
autoCropArea: 1,
dragCrop: false,
crop: function (e) {
$('#avatarUploadCpX').val(e.x);
$('#avatarUploadCpY').val(e.y);
@@ -49,16 +63,16 @@
prreader.onload = function (evt) {
var fileBuf = new Uint8Array(evt.target.result.slice(0, 11));
/*var mime = isImage(fileBuf);
if (mime == null) {
alert("Please open image!");
return;
} else {*/
reader.readAsDataURL(file.files[0]);
if (mime == null) {
alert("Please open image!");
return;
} else {*/
reader.readAsDataURL(file.files[0]);
//}
};
prreader.readAsArrayBuffer(file.files[0]);
} else {
prevDiv.innerHTML = '<div class="img" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src=\'' + file.value + '\'"></div>';
prevDiv.innerHTML = '<div class="img" class="avatar" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src=\'' + file.value + '\'"></div>';
}
}
</script>
+26 -6
View File
@@ -1,9 +1,29 @@
<div class="row-form">
<div class="mx-auto">
<form id="modify_user_info_form">
<input type="hidden" type="text" name="id" value="{{$userinfo[0]->id}}">
<label>手机<input type="text" name="tel_num" value="{{$userinfo[0]->tel_num}}"></label>
<label>QQ<input type="text" name="QQ" value="{{$userinfo[0]->QQ}}"></label>
<label>微信<input type="text" name="wechat" value="{{$userinfo[0]->wechat}}"></label>
<label>地址<textarea name="address">{{$userinfo[0]->address}}</textarea></label>
<div class="form-group">
<label for="tel_num">手机</label>
<input type="text" name="tel_num" id="tel_num" class="form-control" value="{{$userinfo[0]->tel_num}}">
</div>
<div class="form-group">
<label for="QQ">QQ</label>
<input type="text" name="QQ" id="QQ" class="form-control" value="{{$userinfo[0]->QQ}}">
</div>
<div class="form-group">
<label for="wechat">微信</label>
<input type="text" name="wechat" id="wechat" class="form-control" value="{{$userinfo[0]->wechat}}">
</div>
<div class="form-group">
<label for="address">地址</label>
<textarea name="address" id="address" class="form-control">{{$userinfo[0]->address}}</textarea>
</div>
{!! csrf_field() !!}
<input type="button" onclick="updateUserInfo()" class="hollow button" value="保存">
</form>
<div class="row">
<div class="mx-auto">
<input type="button" onclick="updateUserInfo()" class="btn btn-primary" value="保存">
</div>
</div>
</form>
</div>
</div>
+1 -1
View File
@@ -10,7 +10,7 @@
<form method="POST" id="favdel">
<div class="row">
<div class="col-md-2">
<h4>收藏商品</h4><br/>
<p><h4>收藏商品</h4></p>
</div>
<div class="col-md-7">
{!! csrf_field() !!}
+105 -36
View File
@@ -3,52 +3,121 @@
@section('title', "用户")
@section('asset')
<style>
.avatarpreview {
#preview, #avatarpreview {
max-width: 100%;
height: 230px;
}
@media (min-width: 992px) {
.nickname-input {
width:300px;
}
.main-card {
width: 992px;
}
.col-card {
max-width:130px;
}
.nav-pills {
width:100px;
}
.password-form {
width:300px;
}
.register-card {
width:768px;
}
#modify_user_info_form {
width:300px;
}
}
@media (max-width: 991px) {
.address-th {
max-width: 200px;
}
}
.table {
table-layout: fixed;
}
.table td {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
</style>
<script>
match_media = "(min-width:992px)";
function WidthChange(mq) {
if (mq.matches) {
$('.row-first').attr('class','row row-first');
$('.row-card').attr('class','row row-card');
$('.row-password').attr('class','row row-password');
$('.nickname-form').attr('class','nickname-form row');
$('.nav-pills').attr('class','nav nav-pills flex-column');
$('.paowa').attr('class','paowa');
$('.table').attr('class','table table-hover');
$('.row-form').attr('class','row row-form');
} else {
$('.row-first').attr('class','row-first');
$('.row-card').attr('class','row-card');
$('.row-password').attr('class','row-password');
$('.nickname-form').attr('class','nickname-form');
$('.nav-pills').attr('class','nav nav-pills');
$('.paowa').attr('class','row paowa');
$('.table').attr('class','table table-hover table-responsive');
$('.row-form').attr('class','row-form');
}
}
</script>
@endsection
@section('content')
@if (count($errors) > 0)
<label>
<span class="form-error is-visible">{{$errors->first()}}</span>
</label>
@endif
<div class="card" style="min-height:400px">
<div class="card-header">
<ul class="nav nav-tabs card-header-tabs" role="tablist">
<li class="nav-item"><a class="nav-link @if($tab == "profile") active @endif" href="#profile" aria-controls="profile" role="tab" data-toggle="tab">个人信息</a></li>
<li class="nav-item"><a class="nav-link @if($tab == "account") active @endif" href="#account" aria-controls="account" role="tab" data-toggle="tab">用户帐户</a></li>
<li class="nav-item"><a class="nav-link @if($tab == "contact") active @endif" href="#contact" aria-controls="contact" role="tab" data-toggle="tab">联系方式</a></li>
</ul>
</div>
<div class="tab-content card-block">
<div role="tabpanel" class="tab-pane @if($tab == 'profile') active @endif" id="profile">
<div class="card-section">
<form action="/user" method="POST" enctype="multipart/form-data">
@include('user.editUserExtra')
<br/>
<div class="col-md-12">
<input class="btn btn-primary" type="submit" name="submit" value="保存">
<div class="row-first" style="margin-top:20px">
<div class="mx-auto">
<div class="card main-card">
<div class="card-block">
<div class="row-card">
<div class="col col-card">
<div class="row paowa">
<div class="mx-auto">
<ul class="nav nav-pills">
<li class="nav-item"><a class="nav-link @if(!isset($tab) || ($tab != 'account') && ($tab != 'contact')) active @endif" href="/user">个人信息</a></li>
<li class="nav-item"><a class="nav-link @if($tab == 'account') active @endif" href="/user?tab=account">用户帐户</a></li>
<li class="nav-item"><a class="nav-link @if($tab == 'contact') active @endif" href="/user?tab=contact">联系方式</a></li>
</ul>
</div>
</div>
</div>
<p>
<div class="col">
@if(!isset($tab) || $tab == 'profile')
<div id="profile">
<form action="/user" method="POST" enctype="multipart/form-data">
@include('user.editUserExtra')
<div class="row">
<div class="mx-auto">
<input class="btn btn-success" type="submit" name="submit" value="保存">
</div>
</div>
</form>
</div>
@endif
@if($tab == 'account')
<div id="account">
@include('user.editUserAccount')
</div>
@endif
@if($tab == 'contact')
<div id="contact">
@include('user.userInfo')
</div>
@endif
</div>
</p>
</div>
</form>
</div>
</div>
</div>
<div role="tabpanel" class="tab-pane @if($tab == 'account') active @endif" id="account">
<div class="card-section">
@include('user.editUserAccount')
</div>
</div>
<div role="tabpanel" class="tab-pane @if($tab == 'contact') active @endif" id="contact">
<div id="userinfo-container" class="card-section">
@include('user.userInfo')
</div>
</div>
</div>
</div>
@endsection
+29 -13
View File
@@ -1,11 +1,11 @@
@if(count($userinfos) != 0)
<table class="table table-hover table-responsive">
<div id="userinfo-container">
<table class="table table-hover table-responsive" style="width:100%">
<tr>
<th>手机</th>
<th>QQ</th>
<th>微信</th>
<th style="width:130px">手机</th>
<th style="width:110px">QQ</th>
<th style="width:110px">微信</th>
<th>地址</th>
<th>操作</th>
<th style="width:165px">操作</th>
</tr>
@foreach($userinfos as $userinfo)
@@ -13,19 +13,31 @@
<td>{{ isset($userinfo->tel_num) ? $userinfo->tel_num : "" }}</td>
<td>{{ isset($userinfo->QQ) ? $userinfo->QQ : "" }}</td>
<td>{{ isset($userinfo->wechat) ? $userinfo->wechat : "" }}</td>
<td>{{ isset($userinfo->address) ? $userinfo->address : "" }}</td>
<td class="address-th">{{ isset($userinfo->address) ? $userinfo->address : "" }}</td>
<td>
<button type="button" class="btn btn-primary" onclick="editUserInfo({{$userinfo->id}})">修改</button>
<button type="button" class="btn btn-primary" onclick="deleteUserInfo({{$userinfo->id}})">删除</button>
<button type="button" class="btn btn-danger" onclick="deleteUserInfo({{$userinfo->id}})">删除</button>
</td>
</tr>
@endforeach
</table>
@endif
<a href="javascript: createUserInfo()">
<center>添加联系方式</center>
</a>
<div class="row">
<div class="mx-auto">
<button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#add-form" aria-expanded="false" aria-controls="add-form"><span class="fa fa-plus"> 添加联系方式</span></button>
</div>
</div>
<div class="row">
<div class="mx-auto">
<div class="collapse" id="add-form">
<p>
<div class="card card-block">
@include('user.createUserInfo')
</div>
</p>
</div>
</div>
</div>
</div>
<script>
function editUserInfo(userinfo_id) {
$.ajax({
@@ -33,6 +45,7 @@
url: "/user/userinfo/edit/" + userinfo_id,
success: function (msg) {
$('#userinfo-container').html(msg);
WidthChange(window.matchMedia(match_media));
}
})
}
@@ -52,6 +65,7 @@
url: "/user/userinfo",
success: function (msg) {
$('#userinfo-container').html(msg);
WidthChange(window.matchMedia(match_media));
}
})
},
@@ -76,6 +90,7 @@
url: "/user/userinfo",
success: function (msg) {
$('#userinfo-container').html(msg);
WidthChange(window.matchMedia(match_media));
}
})
},
@@ -109,6 +124,7 @@
url: "/user/userinfo",
success: function (msg) {
$('#userinfo-container').html(msg);
WidthChange(window.matchMedia(match_media));
}
})
},
+1 -1
View File
@@ -54,7 +54,7 @@
<div class="card-header"><h4>公告</h4></div>
<div class="list-group list-group-flush">
@foreach($announces as $announce)
<a tabindex="0" class="list-group-item" role="button" data-toggle="popover" data-trigger="focus" data-placement="left" data-content=" {{ $announce->content }} " style="outline:none">{{ $announce->title }}</a>
<a class="list-group-item" href="/notice/{{$announce->id}}">{{ $announce->title }}</a>
@endforeach
</div>
</div>