Browse Source

userrank

master
ZLW-PC\Administrator 7 years ago
parent
commit
e6d0600d66
  1. 21
      app/Http/Controllers/Admin/ArticleController.php
  2. 69
      app/Http/Controllers/Admin/UserController.php
  3. 92
      app/Http/Controllers/Admin/UserRankController.php
  4. 16
      app/Http/Controllers/Admin/UserWithdrawController.php
  5. 63
      app/Http/Controllers/Home/IndexController.php
  6. 2
      app/Http/Controllers/Weixin/WxPayController.php
  7. 8
      public/css/style.css
  8. BIN
      public/images/logo.png
  9. BIN
      public/images/logo2.png
  10. 2
      resources/views/admin/UserWithdraw/index.blade.php
  11. 31
      resources/views/admin/user/edit.blade.php
  12. 4
      resources/views/admin/user/index.blade.php
  13. 54
      resources/views/admin/user/manualRecharge.blade.php
  14. 119
      resources/views/admin/userrank/add.blade.php
  15. 119
      resources/views/admin/userrank/edit.blade.php
  16. 26
      resources/views/admin/userrank/index.blade.php
  17. 19
      resources/views/home/common/header.blade.php
  18. 13
      resources/views/home/index/arclist.blade.php
  19. 8
      resources/views/home/index/goodslist.blade.php
  20. 52
      resources/views/home/index/index.blade.php
  21. 11
      routes/web.php

21
app/Http/Controllers/Admin/ArticleController.php

@ -81,16 +81,6 @@ class ArticleController extends CommonController
public function add()
{
$validate = new ArticleRequest();
$validator = Validator::make($_REQUEST, $validate->getSceneRules('add'), $validate->getSceneRulesMessages());
if ($validator->fails())
{
//$validator->errors()->first();
//$validator->errors()->all();
error_jump('参数错误');
}
$data = '';
if(!empty($_REQUEST["catid"])){$data['catid'] = $_REQUEST["catid"];}else{$data['catid'] = 0;}
@ -99,6 +89,17 @@ class ArticleController extends CommonController
public function doadd()
{
//数据验证
/* $validate = new ArticleRequest();
$validator = Validator::make($_REQUEST, $validate->getSceneRules('add'), $validate->getSceneRulesMessages());
if ($validator->fails())
{
//$validator->errors()->first();
//$validator->errors()->all();
error_jump('参数错误');
} */
$litpic="";if(!empty($_POST["litpic"])){$litpic = $_POST["litpic"];}else{$_POST['litpic']="";} //缩略图
if(empty($_POST["description"])){if(!empty($_POST["body"])){$_POST['description']=cut_str($_POST["body"]);}} //description
$content="";if(!empty($_POST["body"])){$content = $_POST["body"];}

69
app/Http/Controllers/Admin/UserController.php

@ -4,6 +4,7 @@ namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Admin\CommonController;
use DB;
use App\Http\Model\User;
use App\Common\Helper;
class UserController extends CommonController
{
@ -52,6 +53,44 @@ class UserController extends CommonController
return view('admin.user.money', $data);
}
//人工充值
public function manualRecharge()
{
if(Helper::isPostRequest())
{
if(!is_numeric($_POST["money"]) || $_POST["money"]==0){error_jump('金额格式不正确');}
unset($_POST["_token"]);
if($_POST["money"]>0)
{
DB::table('user')->where(['id'=>$_POST["id"]])->increment('money', $_POST["money"]);
$user_money['type'] = 0;
}
else
{
DB::table('user')->where(['id'=>$_POST["id"]])->decrement('money', abs($_POST["money"]));
$user_money['type'] = 1;
}
$user_money['user_id'] = $_POST["id"];
$user_money['add_time'] = time();
$user_money['money'] = abs($_POST["money"]);
$user_money['des'] = '后台充值';
$user_money['user_money'] = DB::table('user')->where(array('id'=>$_POST["id"]))->value('money');
//添加用户余额记录
DB::table('user_money')->insert($user_money);
success_jump('操作成功', route('admin_user'));
}
$data['user'] = object_to_array(DB::table('user')->select('user_name', 'mobile', 'money', 'id')->where('id', $_REQUEST["user_id"])->first(), 1);
if(!$data['user']){error_jump('参数错误');}
return view('admin.user.manualRecharge', $data);
}
public function add()
{
return view('admin.user.add');
@ -72,6 +111,21 @@ class UserController extends CommonController
public function edit()
{
if(Helper::isPostRequest())
{
if(!empty($_POST["id"])){$id = $_POST["id"];unset($_POST["id"]);}else {$id="";exit;}
unset($_POST["_token"]);
if(DB::table('user')->where('id', $id)->update($_POST))
{
success_jump('修改成功!', route('admin_user'));
}
else
{
error_jump('修改失败!');
}
}
if(!empty($_GET["id"])){$id = $_GET["id"];}else{$id="";}
if(preg_match('/[0-9]*/',$id)){}else{exit;}
@ -81,21 +135,6 @@ class UserController extends CommonController
return view('admin.user.edit', $data);
}
public function doedit()
{
if(!empty($_POST["id"])){$id = $_POST["id"];unset($_POST["id"]);}else {$id="";exit;}
unset($_POST["_token"]);
if(DB::table('user')->where('id', $id)->update($_POST))
{
success_jump('修改成功!', route('admin_user'));
}
else
{
error_jump('修改失败!');
}
}
public function del()
{
if(!empty($_GET["id"])){$id = $_GET["id"];}else{error_jump('删除失败!请重新提交');}

92
app/Http/Controllers/Admin/UserRankController.php

@ -0,0 +1,92 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Admin\CommonController;
use DB;
use App\Http\Model\UserRank;
use App\Common\Helper;
class UserRankController extends CommonController
{
public function __construct()
{
parent::__construct();
}
public function index()
{
$data['posts'] = parent::pageList('user_rank', '', [['listorder', 'asc']]);
if($data['posts'])
{
foreach($data['posts'] as $k=>$v)
{
}
}
return view('admin.userrank.index', $data);
}
public function add()
{
if(Helper::isPostRequest())
{
if(isset($_POST['editorValue'])){unset($_POST['editorValue']);}
unset($_POST["_token"]);
if(DB::table('user_rank')->insert(array_filter($_POST)))
{
success_jump('添加成功!', route('admin_slide'));
}
else
{
error_jump('添加失败!请修改后重新添加');
}
}
return view('admin.userrank.add');
}
public function edit()
{
if(Helper::isPostRequest())
{
if(!empty($_POST["id"])){$id = $_POST["id"];unset($_POST["id"]);}else{$id="";exit;}
if(isset($_POST['editorValue'])){unset($_POST['editorValue']);}
unset($_POST["_token"]);
if(DB::table('user_rank')->where('id', $id)->update($_POST))
{
success_jump('修改成功!', route('admin_slide'));
}
else
{
error_jump('修改失败!');
}
}
if(!empty($_GET["id"])){$id = $_GET["id"];}else{$id="";}
if(preg_match('/[0-9]*/',$id)){}else{exit;}
$data['id'] = $id;
$data['post'] = object_to_array(DB::table('user_rank')->where('id', $id)->first(), 1);
return view('admin.userrank.edit', $data);
}
public function del()
{
if(!empty($_GET["id"])){$id = $_GET["id"];}else{error_jump('删除失败!请重新提交');}
if(DB::table('user_rank')->whereIn("id", explode(',', $id))->delete())
{
success_jump('删除成功');
}
else
{
error_jump('删除失败!请重新提交');
}
}
}

16
app/Http/Controllers/Admin/UserWithdrawController.php

@ -21,7 +21,7 @@ class UserWithdrawController extends CommonController
{
foreach($posts as $k=>$v)
{
$posts[$k]->user = DB::table('user')->where('id', $v->id)->first();
$posts[$k]->user = DB::table('user')->where('id', $v->user_id)->first();
$posts[$k]->status_text = UserWithdraw::getStatusText(['status'=>$v->status]);
}
}
@ -72,16 +72,22 @@ class UserWithdrawController extends CommonController
{
$data['status'] = 4;
//增加用户余额
DB::table('user')->where(array('id'=>$user_withdraw->user_id))->increment('money', $user_withdraw->money);
//添加用户余额记录
DB::table('user_money')->insert(array('user_id'=>$user_withdraw->user_id,'type'=>0,'money'=>$user_withdraw->money,'des'=>'提现失败-返余额','user_money'=>DB::table('user')->where(array('id'=>$user_withdraw->user_id))->value('money'),'add_time'=>time()));
}
elseif($_POST["type"]==1)
{
$data['status'] = 2;
}
if(!isset($data)){$res = DB::table('user_withdraw')->where('id', $id)->update($data);}
if(!isset($res)){return ReturnData::create(ReturnData::SYSTEM_FAIL);}
if(isset($data))
{
$res = DB::table('user_withdraw')->where('id', $id)->update($data);
if(!$res){return ReturnData::create(ReturnData::SYSTEM_FAIL);}
}
return ReturnData::create(ReturnData::SUCCESS);
}

63
app/Http/Controllers/Home/IndexController.php

@ -28,20 +28,20 @@ class IndexController extends CommonController
//商品列表页
public function goodslist(Request $request)
{
$cat = $request->input('id', '');
$typeid = $request->input('id', '');
$page = $request->input('page', '');
//推荐
$tuijian = $request->input('tuijian', '');
if($tuijian){$where['tuijian'] = $tuijian;}
if($request->input('tuijian', '') != ''){$where['tuijian'] = $request->input('tuijian');}
if($request->input('brand_id', '') != ''){$where['brand_id'] = $request->input('brand_id');}
$pagenow = $page;
$post = '';
if($cat)
if($typeid)
{
$where['typeid'] = $cat;
$post = object_to_array(DB::table('goods_type')->where('id', $cat)->first(), 1);
$where['typeid'] = $typeid;
$post = object_to_array(DB::table('goods_type')->where('id', $typeid)->first(), 1);
}
$data['post'] = $post;
@ -49,6 +49,8 @@ class IndexController extends CommonController
$goods = DB::table("goods");
if(isset($where)){$goods = $goods->where($where);}
if($request->input('keyword', '') != ''){$goods = $goods->where('title', 'like', '%'.$request->input('keyword').'%');}
$counts = $goods->count();
if($counts>sysconfig('CMS_MAXARC')){$counts=sysconfig('CMS_MAXARC');}
$pagesize = sysconfig('CMS_PAGESIZE');$page=0;
@ -67,7 +69,7 @@ class IndexController extends CommonController
$data['pagenav'] = '';if($nextpage<=$pages && $nextpage>0){$data['pagenav'] = $this->listpageurl(route('home_goodslist'),$_SERVER['QUERY_STRING'],$nextpage);}
$data['goods_type_list'] = object_to_array(DB::table('goods_type')->where(['pid'=>0,'status'=>1])->select('id','name')->take(30)->orderBy('listorder','asc')->get());
$data['id'] = $cat;
$data['id'] = $typeid;
return view('home.index.goodslist', $data);
}
@ -111,7 +113,9 @@ class IndexController extends CommonController
if($page==1 || $page==0){}else{$res['page'] = $page;}
return $http_host.'?'.http_build_query($res);
if($res){$res = $http_host.'?'.http_build_query($res);}
return $res;
}
//列表页
@ -151,6 +155,49 @@ class IndexController extends CommonController
return view('home.index.'.$post['templist'], $data);
}
//文章列表页
public function arclist(Request $request)
{
$cat = $request->input('id', '');
$page = $request->input('page', '');
$pagenow = $page;
$post = '';
if($cat)
{
$where['typeid'] = $cat;
$post = object_to_array(DB::table('arctype')->where('id', $cat)->first(), 1);
}
$data['post'] = $post;
$article = DB::table("article");
if(isset($where)){$article = $article->where($where);}
$counts = $article->count();
if($counts>sysconfig('CMS_MAXARC')){$counts=sysconfig('CMS_MAXARC');dd($counts);}
$pagesize = sysconfig('CMS_PAGESIZE');$page=0;
if($counts % $pagesize){//取总数据量除以每页数的余数
$pages = intval($counts/$pagesize) + 1; //如果有余数,则页数等于总数据量除以每页数的结果取整再加一,如果没有余数,则页数等于总数据量除以每页数的结果
}else{$pages = $counts/$pagesize;}
if(!empty($pagenow)){if($pagenow==1 || $pagenow>$pages){return redirect()->route('page404');}$page = $pagenow-1;$nextpage=$pagenow+1;$previouspage=$pagenow-1;}else{$page = 0;$nextpage=2;$previouspage=0;}
$data['page'] = $page;
$data['pages'] = $pages;
$data['counts'] = $counts;
$start = $page*$pagesize;
$posts = object_to_array($article->skip($start)->take($pagesize)->get());
$data['posts'] = $posts; //获取列表
$data['pagenav'] = '';if($nextpage<=$pages && $nextpage>0){$data['pagenav'] = $this->listpageurl(route('home_arclist'),$_SERVER['QUERY_STRING'],$nextpage);}
$data['arctype_list'] = object_to_array(DB::table('arctype')->where(['pid'=>0,'is_show'=>0])->select('id','name')->take(30)->orderBy('listorder','asc')->get());
$data['id'] = $cat;
return view('home.index.arclist', $data);
}
//文章详情页
public function detail($id)
{

2
app/Http/Controllers/Weixin/WxPayController.php

@ -47,7 +47,7 @@ class WxPayController extends CommonController
//更新充值支付记录状态
DB::table('user_recharge')->where(array('recharge_sn'=>$post_data['out_trade_no'],'status'=>0))->update(array('pay_time'=>$pay_time_timestamp,'pay_type'=>1,'status'=>1,'trade_no'=>$post_data['transaction_id'],'pay_money'=>$pay_money));
//增加用户余额
DB::table('user')->where(array('id'=>$user_recharge->user_id))->decrement('money', $pay_money);
DB::table('user')->where(array('id'=>$user_recharge->user_id))->increment('money', $pay_money);
//添加用户余额记录
DB::table('user_money')->insert(array('user_id'=>$user_recharge->user_id,'type'=>0,'money'=>$pay_money,'des'=>'充值','user_money'=>DB::table('user')->where(array('id'=>$user_recharge->user_id))->value('money'),'add_time'=>time()));
}

8
public/css/style.css

@ -32,6 +32,12 @@ a{color:#313131;text-decoration:none;}a:hover{text-decoration:none;color:#22ac38
.pul .dock .sold-num {filter: none;display: inline-block;line-height: 20px;padding: 0 6px;background-color: rgba(0,0,0,.1);filter: progid:DXImageTransform.Microsoft.gradient(enabled='true', startColorstr='#19000000', endColorstr='#19000000');-webkit-border-radius: 3px;-webkit-background-clip: padding-box;-moz-border-radius: 3px;-moz-background-clip: padding;border-radius: 3px;background-clip: padding-box;color: #fff;font-size: 12px;}
.pul .dock .sold-num em {font-size: 14px;color: #fff;font-weight: 700;line-height: 17px;}
.list{padding:20px 0;border-bottom:1px solid #e5e5e5;}
.tit{display:block;font-weight:normal;font-size:24px;line-height:1.3;}
.list p{margin-top:10px;word-break:break-all;color:#999;font-size:14px;line-height:1.5;}.list p a{color:#e74c3c;}.list p:after{content:"..";}
.info{margin-top:8px;color:#bbb;font-size:12px;}.info a{color:#ea5a3d;margin-right:8px;}.info .fr{color:#444;}
.list .limg{width:169px;height:119px;float:left;margin-right:20px;}.list .limg img{width:169px;height:119px;vertical-align:top;}
.page,.pages{text-align:center;padding:15px 0px;}.page a:hover{background:#FF5E52;color:#fff;}
.page a{display:inline-block;height:32px;line-height:32px;padding:0 45px;font-size:14px;color:#fff;background:#22ac38;margin-right:8px;border-radius:3px;box-shadow:1px 1px 2px #eee;}
@ -56,7 +62,7 @@ a{color:#313131;text-decoration:none;}a:hover{text-decoration:none;color:#22ac38
.ju-naver a {display: block;text-decoration: none;}
.ju-naver .nav-menu {float: right;margin-top: 28px;}
.ju-naver .nav-menu li {display: inline-block;position: relative;margin-right: 2px;}
.ju-naver .nav-menu a {color: #4A4A4A;font-size: 16px;position: relative;height: 26px;line-height: 26px;padding: 0 6px;-webkit-border-radius: 3px;-webkit-background-clip: padding-box;-moz-border-radius: 3px;-moz-background-clip: padding;border-radius: 3px;background-clip: padding-box;}
.ju-naver .nav-menu a {color: #4A4A4A;font-size: 16px;position: relative;padding:2px 6px;-webkit-border-radius: 3px;-webkit-background-clip: padding-box;-moz-border-radius: 3px;-moz-background-clip: padding;border-radius: 3px;background-clip: padding-box;}
.ju-naver .nav-menu a:hover {background-color: #EDEDED;}
#slideBox{width:740px;height:347px;overflow:hidden;position:relative;}

BIN
public/images/logo.png

Binary file not shown.

Before

Width: 80  |  Height: 80  |  Size: 3.0 KiB

After

Width: 150  |  Height: 80  |  Size: 3.1 KiB

BIN
public/images/logo2.png

Binary file not shown.

After

Width: 150  |  Height: 80  |  Size: 2.8 KiB

2
resources/views/admin/UserWithdraw/index.blade.php

@ -19,7 +19,7 @@
<tbody>
<?php if($posts){foreach($posts as $row){ ?><tr>
<td><?php echo $row->id; ?></td>
<td><?php echo $row->user->user_name; ?><br><?php if($row->user->mobile){echo 'TEL:'.$row->user->mobile;} ?></td>
<td><?php echo $row->user->user_name; ?><?php if($row->user->mobile){echo '<br>TEL:'.$row->user->mobile;} ?></td>
<td><font color="red"><?php echo $row->money; ?></font></td>
<td><?php echo $row->name; ?></td>
<td><?php echo $row->method; ?></td>

31
resources/views/admin/user/edit.blade.php

@ -1,34 +1,23 @@
@extends('admin.layouts.app')
@section('title', '管理员修改')
@section('title', '会员信息修改')
@section('content')
<h5 class="sub-header"><a href="<?php echo route('admin_admin'); ?>">管理员列表</a> > 管理员修改</h5>
<h5 class="sub-header"><a href="<?php echo route('admin_user'); ?>">员列表</a> > 会员信息修改</h5>
<form id="addarc" method="post" action="<?php echo route('admin_admin_doedit'); ?>" role="form" enctype="multipart/form-data" class="table-responsive">{{ csrf_field() }}
<form id="addarc" method="post" action="" role="form" enctype="multipart/form-data" class="table-responsive">{{ csrf_field() }}
<input style="display:none;" type="text" name="id" id="id" value="<?php echo $id; ?>">
<table class="table table-striped table-bordered">
<tbody>
<tr>
<td align="right">用户名</td>
<td><input name="username" type="text" id="username" value="<?php echo $post["username"]; ?>" class="required" style="width:30%" placeholder="在此输入用户名"><input style="display:none;" type="text" name="id" id="id" value="<?php echo $id; ?>"></td>
<td align="right">昵称</td>
<td><input name="nickname" type="text" id="nickname" value="<?php echo $post["nickname"]; ?>" style="width:30%"></td>
</tr>
<tr>
<td align="right">密码:</td>
<td><input name="pwd" type="password" id="pwd" value="" class="required" style="width:30%"></td>
</tr>
<tr>
<td align="right">邮箱:</td>
<td><input name="email" type="text" id="email" value="<?php echo $post["email"]; ?>" style="width:30%"></td>
</tr>
<tr>
<td align="right">角色:</td>
<td align="right">性别:</td>
<td>
<select name="role_id" id="role_id">
<?php if($rolelist){foreach($rolelist as $row){ ?>
<?php if($post["role_id"]==$row["id"]){ ?>
<option selected value="<?php echo $row["id"]; ?>"><?php echo $row["name"]; ?></option>
<?php }else{ ?>
<option value="<?php echo $row["id"]; ?>"><?php echo $row["name"]; ?></option>
<?php }}} ?>
<select name="sex" id="sex">
<option<?php if($post["sex"]==1){ echo ' selected'; } ?> value="1">男</option>
<option<?php if($post["sex"]==2){ echo ' selected'; } ?> value="2">女</option>
</select>
</td>
</tr>

4
resources/views/admin/user/index.blade.php

@ -2,7 +2,7 @@
@section('title', '会员列表')
@section('content')
<h2 class="sub-header">会员列表</h2>[ <a href="<?php echo route('admin_user_add'); ?>">添加会员</a> ] [ <a href="<?php echo route('admin_user_money'); ?>">账户记录</a> ]<br><br>
<h2 class="sub-header">会员列表</h2>[ <a href="<?php echo route('admin_user_add'); ?>">添加会员</a> ] [ <a href="<?php echo route('admin_user_money'); ?>">账户记录</a> ] [ <a href="<?php echo route('admin_userrank'); ?>">会员等级</a> ]<br><br>
<form name="listarc"><div class="table-responsive"><table class="table table-hover">
<thead><tr class="info">
@ -28,7 +28,7 @@
<td><font color="red"><?php echo $row->commission; ?></font></td>
<td><?php echo date('Y-m-d H:i:s',$row->add_time); ?></td>
<td><?php echo $row->status_text; ?></td>
<td><a href="">人工充值</a> | <a href="<?php echo route('admin_user_money',array('user_id'=>$row->id)); ?>">帐户记录</a> | <a href="<?php echo route('admin_user_edit'); ?>?id=<?php echo $row->id; ?>">修改</a><?php if($row->id<>1){ ?> | <a onclick="delconfirm('<?php echo route('admin_user_del'); ?>?id=<?php echo $row->id; ?>')" href="javascript:;">删除</a><?php } ?></td>
<td><a href="<?php echo route('admin_user_manual_recharge',array('user_id'=>$row->id)); ?>">人工充值</a> | <a href="<?php echo route('admin_user_money',array('user_id'=>$row->id)); ?>">帐户记录</a> | <a href="<?php echo route('admin_user_edit'); ?>?id=<?php echo $row->id; ?>">修改</a><?php if($row->status==1){ ?> | <a onclick="delconfirm('<?php echo route('admin_user_del'); ?>?id=<?php echo $row->id; ?>')" href="javascript:;">删除</a><?php } ?></td>
</tr><?php }} ?>
</tbody></table></div><!-- 表格结束 --></form><!-- 表单结束 -->

54
resources/views/admin/user/manualRecharge.blade.php

@ -0,0 +1,54 @@
@extends('admin.layouts.app')
@section('title', '人工充值')
@section('content')
<h2 class="sub-header">人工充值</h2>
<form id="addarc" method="post" action="" role="form" enctype="multipart/form-data" class="table-responsive">{{ csrf_field() }}
<table class="table table-striped table-bordered">
<tbody>
<tr>
<td colspan="2">当前充值用户:<?php if($user['user_name']){echo $user['user_name'];}else{echo $user['mobile'];} ?>,账户余额<font color="red"><?php echo $user['money']; ?></font>元</td>
</tr>
<tr>
<td colspan="2">说明:正数为增加,负数为扣除</td>
</tr>
<tr>
<td align="right" width="150px">充值金额:</td>
<td>
<input name="money" class="required" type="text" id="money" value="" /><input name="id" type="hidden" value="<?php echo $user['id']; ?>" />
</td>
</tr>
<tr>
<td colspan="2"><button type="submit" class="btn btn-success" value="Submit">保存(Submit)</button>&nbsp;&nbsp;<button type="reset" class="btn btn-default" value="Reset">重置(Reset)</button></td>
</tr>
</tbody></table></form><!-- 表单结束 -->
<script>
$(function(){
$(".required").blur(function(){
var $parent = $(this).parent();
$parent.find(".formtips").remove();
if(this.value=="")
{
$parent.append(' <small class="formtips onError"><font color="red">不能为空!</font></small>');
}
else
{
$parent.append(' <small class="formtips onSuccess"><font color="green">OK</font></small>');
}
});
//重置
$('#addarc input[type="reset"]').click(function(){
$(".formtips").remove();
});
$("#addarc").submit(function(){
$(".required").trigger('blur');
var numError = $('#addarc .onError').length;
if(numError){return false;}
});
});
</script>
@endsection

119
resources/views/admin/userrank/add.blade.php

@ -0,0 +1,119 @@
@extends('admin.layouts.app')
@section('title', '轮播图添加')
@section('content')
<h5 class="sub-header"><a href="/fladmin/slide">轮播图列表</a> > 添加轮播图</h5>
<form id="addarc" method="post" action="/fladmin/slide/doadd" role="form" enctype="multipart/form-data" class="table-responsive">{{ csrf_field() }}
<table class="table table-striped table-bordered">
<tbody>
<tr>
<td align="right">标题:</td>
<td><input name="title" type="text" id="title" value="" class="required" style="width:30%" placeholder="在此输入关键词"></td>
</tr>
<tr>
<td align="right">链接网址:</td>
<td><input name="url" type="text" id="url" value="http://" style="width:60%" class="required"> (请用绝对地址)</td>
</tr>
<tr>
<td align="right">跳转方式:</td>
<td>
<input type="radio" value='0' name="target" checked />&nbsp;_blank&nbsp;&nbsp;
<input type="radio" value='1' name="target" />&nbsp;_self
</td>
</tr>
<tr>
<td align="right">显示平台:</td>
<td>
<input type="radio" value='0' name="type" checked />&nbsp;pc&nbsp;&nbsp;
<input type="radio" value='1' name="type" />&nbsp;weixin&nbsp;&nbsp;
<input type="radio" value='2' name="type" />&nbsp;app&nbsp;&nbsp;
<input type="radio" value='3' name="type" />&nbsp;wap
</td>
</tr>
<tr>
<td align="right">是否显示:</td>
<td>
<input type="radio" value='0' name="is_show" checked />&nbsp;&nbsp;&nbsp;
<input type="radio" value='1' name="is_show" />&nbsp;
</td>
</tr>
<tr>
<td align="right">排序:</td>
<td>
<input name="listorder" type="text" id="listorder" value="50" size="3" />
</td>
</tr>
<tr>
<td align="right">所属的组:</td>
<td>
<input name="group_id" type="text" id="group_id" value="0" size="3" />
</td>
</tr>
<tr>
<td style="vertical-align:middle;" align="right">图片:</td>
<td style="vertical-align:middle;"><button type="button" onclick="upImage();">选择图片</button> <input class="required" name="pic" type="text" id="pic" value="" style="width:40%"> <img style="margin-left:20px;display:none;" src="" width="120" height="80" id="picview"></td>
</tr>
<!-- 配置文件 --><script type="text/javascript" src="/other/flueditor/ueditor.config.js"></script>
<!-- 编辑器源码文件 --><script type="text/javascript" src="/other/flueditor/ueditor.all.js"></script>
<script type="text/javascript">
var _editor;
$(function() {
//重新实例化一个编辑器,防止在上面的editor编辑器中显示上传的图片或者文件
_editor = UE.getEditor('ueditorimg');
_editor.ready(function () {
//设置编辑器不可用
_editor.setDisabled('insertimage');
//隐藏编辑器,因为不会用到这个编辑器实例,所以要隐藏
_editor.hide();
//侦听图片上传
_editor.addListener('beforeInsertImage', function (t, arg) {
//将地址赋值给相应的input,只取第一张图片的路径
$('#pic').val(arg[0].src);
//图片预览
$('#picview').attr("src",arg[0].src).css("display","inline-block");
})
});
});
//弹出图片上传的对话框
function upImage()
{
var myImage = _editor.getDialog("insertimage");
myImage.render();
myImage.open();
}
</script>
<script type="text/plain" id="ueditorimg"></script>
<tr>
<td colspan="2"><button type="submit" class="btn btn-success" value="Submit">保存(Submit)</button>&nbsp;&nbsp;<button type="reset" class="btn btn-default" value="Reset">重置(Reset)</button></td>
</tr>
</tbody></table></form><!-- 表单结束 -->
<script>
$(function(){
$(".required").blur(function(){
var $parent = $(this).parent();
$parent.find(".formtips").remove();
if(this.value=="")
{
$parent.append(' <small class="formtips onError"><font color="red">不能为空!</font></small>');
}
else
{
$parent.append(' <small class="formtips onSuccess"><font color="green">OK</font></small>');
}
});
//重置
$('#addarc input[type="reset"]').click(function(){
$(".formtips").remove();
});
$("#addarc").submit(function(){
$(".required").trigger('blur');
var numError = $('#addarc .onError').length;
if(numError){return false;}
});
});
</script>
@endsection

119
resources/views/admin/userrank/edit.blade.php

@ -0,0 +1,119 @@
@extends('admin.layouts.app')
@section('title', '轮播图修改')
@section('content')
<h5 class="sub-header"><a href="/fladmin/slide">轮播图列表</a> > 轮播图修改</h5>
<form id="addarc" method="post" action="/fladmin/slide/doedit" role="form" enctype="multipart/form-data" class="table-responsive">{{ csrf_field() }}
<table class="table table-striped table-bordered">
<tbody>
<tr>
<td align="right">标题:</td>
<td><input name="title" type="text" id="title" value="<?php echo $post['title']; ?>" class="required" style="width:30%" placeholder="在此输入关键词"><input style="display:none;" name="id" type="text" id="id" value="<?php echo $id; ?>"></td>
</tr>
<tr>
<td align="right">链接网址:</td>
<td><input name="url" type="text" id="url" value="<?php echo $post['url']; ?>" style="width:60%" class="required"> (请用绝对地址)</td>
</tr>
<tr>
<td align="right">跳转方式:</td>
<td>
<input type="radio" value='0' name="target" <?php if(isset($post['target']) && $post['target']==0){echo 'checked';} ?> />&nbsp;_blank&nbsp;&nbsp;
<input type="radio" value='1' name="target" <?php if(isset($post['target']) && $post['target']==1){echo 'checked';} ?> />&nbsp;_self
</td>
</tr>
<tr>
<td align="right">显示平台:</td>
<td>
<input type="radio" value='0' name="type" <?php if(isset($post['type']) && $post['type']==0){echo 'checked';} ?> />&nbsp;pc&nbsp;&nbsp;
<input type="radio" value='1' name="type" <?php if(isset($post['type']) && $post['type']==1){echo 'checked';} ?> />&nbsp;weixin&nbsp;&nbsp;
<input type="radio" value='2' name="type" <?php if(isset($post['type']) && $post['type']==2){echo 'checked';} ?> />&nbsp;app&nbsp;&nbsp;
<input type="radio" value='3' name="type" <?php if(isset($post['type']) && $post['type']==3){echo 'checked';} ?> />&nbsp;wap
</td>
</tr>
<tr>
<td align="right">是否显示:</td>
<td>
<input type="radio" value='0' name="is_show" <?php if(isset($post['is_show']) && $post['is_show']==0){echo 'checked';} ?> />&nbsp;是&nbsp;&nbsp;
<input type="radio" value='1' name="is_show" <?php if(isset($post['is_show']) && $post['is_show']==1){echo 'checked';} ?> />&nbsp;否
</td>
</tr>
<tr>
<td align="right">排序:</td>
<td>
<input name="listorder" type="text" id="listorder" value="<?php echo $post['listorder']; ?>" size="3" />
</td>
</tr>
<tr>
<td align="right">所属的组:</td>
<td>
<input name="group_id" type="text" id="group_id" value="<?php echo $post['group_id']; ?>" size="3" />
</td>
</tr>
<tr>
<td style="vertical-align:middle;" align="right">图片:</td>
<td style="vertical-align:middle;"><button type="button" onclick="upImage();">选择图片</button> <input name="pic" type="text" id="pic" value="<?php echo $post['pic']; ?>" style="width:40%"> <img style="margin-left:20px;<?php if(empty($post["pic"]) || !imgmatch($post["pic"])){ echo "display:none;"; } ?>" src="<?php if(imgmatch($post["pic"])){echo $post["pic"];} ?>" width="120" height="80" id="picview"></td>
</tr>
<!-- 配置文件 --><script type="text/javascript" src="/other/flueditor/ueditor.config.js"></script>
<!-- 编辑器源码文件 --><script type="text/javascript" src="/other/flueditor/ueditor.all.js"></script>
<script type="text/javascript">
var _editor;
$(function() {
//重新实例化一个编辑器,防止在上面的editor编辑器中显示上传的图片或者文件
_editor = UE.getEditor('ueditorimg');
_editor.ready(function () {
//设置编辑器不可用
_editor.setDisabled('insertimage');
//隐藏编辑器,因为不会用到这个编辑器实例,所以要隐藏
_editor.hide();
//侦听图片上传
_editor.addListener('beforeInsertImage', function (t, arg) {
//将地址赋值给相应的input,只取第一张图片的路径
$('#pic').val(arg[0].src);
//图片预览
$('#picview').attr("src",arg[0].src).css("display","inline-block");
})
});
});
//弹出图片上传的对话框
function upImage()
{
var myImage = _editor.getDialog("insertimage");
myImage.render();
myImage.open();
}
</script>
<script type="text/plain" id="ueditorimg"></script>
<tr>
<td colspan="2"><button type="submit" class="btn btn-success" value="Submit">保存(Submit)</button>&nbsp;&nbsp;<button type="reset" class="btn btn-default" value="Reset">重置(Reset)</button></td>
</tr>
</tbody></table></form><!-- 表单结束 -->
<script>
$(function(){
$(".required").blur(function(){
var $parent = $(this).parent();
$parent.find(".formtips").remove();
if(this.value=="")
{
$parent.append(' <small class="formtips onError"><font color="red">不能为空!</font></small>');
}
else
{
$parent.append(' <small class="formtips onSuccess"><font color="green">OK</font></small>');
}
});
//重置
$('#addarc input[type="reset"]').click(function(){
$(".formtips").remove();
});
$("#addarc").submit(function(){
$(".required").trigger('blur');
var numError = $('#addarc .onError').length;
if(numError){return false;}
});
});
</script>
@endsection

26
resources/views/admin/userrank/index.blade.php

@ -0,0 +1,26 @@
@extends('admin.layouts.app')
@section('title', '会员等级列表')
@section('content')
<h2 class="sub-header">会员等级管理</h2>[ <a href="<?php echo route('admin_userrank_add'); ?>">添加会员等级</a> ]<br><br>
<form name="listarc"><div class="table-responsive"><table class="table table-hover">
<thead><tr class="info">
<th>ID</th>
<th>等级名称</th>
<th>等级</th>
<th>排序</th>
<th>管理</th>
</tr></thead>
<tbody>
<?php if($posts){foreach($posts as $row){ ?><tr>
<td><?php echo $row->id; ?></td>
<td><?php echo $row->title; ?></td>
<td><?php echo $row->rank; ?></td>
<td><?php echo $row->listorder; ?></td>
<td><a href="<?php echo route('admin_userrank_edit',array('id'=>$row->id)); ?>">修改</a> | <a onclick="delconfirm('<?php echo route('admin_userrank_del',array('id'=>$row->id)); ?>')" href="javascript:;">删除</a></td>
</tr><?php }} ?>
</tbody></table></div><!-- 表格结束 --></form><!-- 表单结束 -->
<nav aria-label="Page navigation">{{ $posts->links() }}</nav>
@endsection

19
resources/views/home/common/header.blade.php

@ -25,22 +25,15 @@
</ul>
</div>
</div>
<div class="ju-naver">
<div class="ju-naver">
<div class="box">
<h1 class="logo mouseleave"><a class="ju-logo ju-logo-show" href="<?php echo route('home'); ?>" title="聚划算"><img src="https://img.alicdn.com/tfs/TB1gFOyJVXXXXXLXpXXXXXXXXXX-150-118.png"></a></h1>
<h1 class="logo mouseleave"><a class="ju-logo ju-logo-show" href="<?php echo route('home'); ?>" title="logo"><img src="<?php echo env('APP_URL'); ?>/images/logo.png"></a></h1>
<ul id="J_NavMenu" class="nav-menu">
<li class="menu-home"><a class="menu-link" href="<?php echo route('home'); ?>">首页</a></li>
<li class="menu-brands">
<a class="menu-link" href="//ju.taobao.com/tg/brand.htm">品牌团</a>
</li>
<li class="menu-fcdp">
<a class="menu-link" href="//ju.taobao.com/jusp/nv/fcdppc/tp.htm">非常大牌</a>
</li>
<li class="menu-jump">
<a class="menu-link" href="//ju.taobao.com/jusp/other/mingpin/tp.htm">聚名品</a>
</li>
<li class="menu-home"><a class="menu-link" href="<?php echo route('home'); ?>">首页</a></li>
<li class="menu-brands"><a class="menu-link" href="<?php echo route('home_brandlist'); ?>">品牌团</a></li>
<li class="menu-goodslist"><a class="menu-link" href="<?php echo route('home_goodslist'); ?>">每日上新</a></li>
<li class="menu-qqjx">
<a class="menu-link" href="">动态</a>
<a class="menu-link" href="<?php echo route('home_arclist'); ?>">动态</a>
</li>
<li class="menu-liangfan">
<a class="menu-link" href="<?php echo route('home_singlepage',array('id'=>'about')); ?>">关于我们</a>

13
resources/views/home/index/arclist.blade.php

@ -0,0 +1,13 @@
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title><?php if($post){echo $post["name"].'_'.sysconfig('CMS_WEBNAME');}else{echo '动态';} ?></title><meta name="keywords" content="{dede:field.keywords/}" /><meta name="description" content="{dede:field.description function='html2text(@me)'/}" /><link rel="stylesheet" href="<?php echo sysconfig('CMS_BASEHOST'); ?>/css/style.css"><script type="text/javascript" src="<?php echo sysconfig('CMS_BASEHOST'); ?>/js/ad.js"></script></head><body>
@include('home.common.header')
<div class="box" style="padding-top:20px;">
<?php if(!empty($posts)){foreach($posts as $row){ ?><div class="list"><?php if(!empty($row['litpic'])){ ?><a class="limg" href="<?php echo get_front_url(array("id"=>$row['id'],"catid"=>$row['typeid'],"type"=>'content')); ?>"><img alt="<?php echo $row['title']; ?>" src="<?php echo $row['litpic']; ?>"></a><?php } ?>
<strong class="tit"><a href="<?php echo get_front_url(array("id"=>$row['id'],"catid"=>$row['typeid'],"type"=>'content')); ?>"><?php echo $row['title']; ?></a></strong><p><?php echo mb_strcut($row['description'],0,150,'UTF-8'); ?>..</p>
<div class="info"><span class="fl"><?php $taglist=taglist($row['id']);if($taglist){foreach($taglist as $row){ ?><a href="<?php echo get_front_url(array("tagid"=>$row['id'],"type"=>'tags')); ?>"><?php echo $row['tag']; ?></a><?php }} ?><em><?php echo date("m-d H:i",$row['pubdate']); ?></em></span><span class="fr"><em><?php echo $row['click']; ?></em>人阅读</span></div><div class="cl"></div></div><?php }} ?>
</div>
<?php if($pagenav){ ?><div class="pages"><ul><li style="width:180px;"><a href="<?php echo $pagenav; ?>">获取更多</a></li></ul><div class="cl"></div></div><?php } ?>
@include('home.common.footer')</body></html>

8
resources/views/home/index/goodslist.blade.php

@ -20,19 +20,19 @@
<li><a class="forecast" href="<?php echo route('home_goodslist',array('tuijian'=>1)); ?>"> [推荐] </a></li>
</ul>
<form method="get" target="_blank" class="m-sch fr" name="formsearch" action="/plus/search.php"><input class="sch-txt" name="q" type="text" value="搜索 按Enter键" onfocus="if(value=='搜索 按Enter键') {value=''}" onblur="if(value=='') {value='搜索 按Enter键'}"></form>
<form method="get" class="m-sch fr" name="formsearch" action="<?php echo route('home_goodslist'); ?>"><input class="sch-txt" name="keyword" type="text" value="搜索 按Enter键" onfocus="if(value=='搜索 按Enter键') {value=''}" onblur="if(value=='') {value='搜索 按Enter键'}"></form>
<div class="cl"></div></div>
</div>
<div style="background-color:#f6f6f6;padding:15px 0;">
<div style="background-color:#F3F3F3;padding:15px 0;">
<div class="box">
<ul class="pul">
<?php if($posts){foreach($posts as $k=>$v){ ?>
<li><a href="<?php echo route('home_goods',array('id'=>$v['id'])); ?>" target="_blank"><img src="<?php echo $v['litpic']; ?>" alt="<?php echo $v['title']; ?>">
<p class="title"><?php echo $v['title']; ?></p>
<p class="desc"><span class="price-point"><i></i>库存(<?php echo $v['goods_number']; ?>)</span> <?php echo $v['description']; ?></p>
<div class="item-prices red"><div class="item-link">立即<br>抢购</div><div class="item-info"><div class="price"><i>¥</i><em class="J_actPrice"><span class="yen"><?php echo $v['price']; ?></span></em></div>
<div class="dock"><div class="dock-price"><del class="orig-price">¥<?php echo $v['market_price']; ?></del> <span class="benefit">退货赔运费</span></div><div class="prompt"><div class="sold-num"><em><?php echo $v['sale']; ?></em> 件已付款</div></div></div>
<div class="item-prices red"><div class="item-link">立即<br>抢购</div><div class="item-info"><div class="price"><i>¥</i><em class="J_actPrice"><span class="yen"><?php echo ceil($v['price']); ?></span></em></div>
<div class="dock"><div class="dock-price"><del class="orig-price">¥<?php echo $v['market_price']; ?></del> <span class="benefit">包邮</span></div><div class="prompt"><div class="sold-num"><em><?php echo $v['sale']; ?></em> 件已付款</div></div></div>
</div></div>
</a></li>
<?php }} ?>

52
resources/views/home/index/index.blade.php

@ -32,11 +32,54 @@
<li><a class="forecast" href="<?php echo route('home_goodslist',array('tuijian'=>1)); ?>"> [推荐] </a></li>
</ul>
<form method="get" target="_blank" class="m-sch fr" name="formsearch" action="/plus/search.php"><input class="sch-txt" name="q" type="text" value="搜索 按Enter键" onfocus="if(value=='搜索 按Enter键') {value=''}" onblur="if(value=='') {value='搜索 按Enter键'}"></form>
<form method="get" class="m-sch fr" name="formsearch" action="<?php echo route('home_goodslist'); ?>"><input class="sch-txt" name="keyword" type="text" value="搜索 按Enter键" onfocus="if(value=='搜索 按Enter键') {value=''}" onblur="if(value=='') {value='搜索 按Enter键'}"></form>
<div class="cl"></div></div>
</div>
<style>
.brandul{margin-right:-10px;}
.brandul li{margin: 0 10px 10px 0;-webkit-box-shadow: 0 1px 0 rgba(0,0,0,.1);-moz-box-shadow: 0 1px 0 rgba(0,0,0,.1);box-shadow: 0 1px 0 rgba(0,0,0,.1);float: left;}
.brandul li a{display: block;overflow: hidden;width: 100%;height: 100%;text-decoration: none;}
.brandul li .brand-pic{width: 475px;height: 186px;}
.brandul .brand-des{vertical-align: top;line-height: 26px;height: 26px;padding-left: 10px;border-left: 1px solid #F3F3F3;border-right: 1px solid #F3F3F3;color: #000;}
.brandul .brand-des em{color:#e61414;}
.brandul .brand-des .fl{margin-left:10px;}
.brandul .brand-des .fr{margin-right:20px;}
</style>
<div class="box" style="margin-bottom:5px;">
<ul class="brandul">
<li>
<a href="http://ju.taobao.com/tg/brand_items.htm?act_sign_id=28794165&amp;seller_id=880734502" target="_blank">
<img class="brand-pic" src="/images/3.jpg">
<div class="brand-des"><span class="fl"></span>
<span class="fr"><em>234100</em>件已付款 &nbsp; <em>仅剩1天</em></span></div></a>
</li>
<li>
<a href="http://ju.taobao.com/tg/brand_items.htm?act_sign_id=28794165&amp;seller_id=880734502" target="_blank">
<img class="brand-pic" src="/images/3.jpg">
<div class="brand-des"><span class="fl"></span>
<span class="fr"><em>234100</em>件已付款 &nbsp; <em>仅剩1天</em></span></div></a>
</li>
<li>
<a href="http://ju.taobao.com/tg/brand_items.htm?act_sign_id=28794165&amp;seller_id=880734502" target="_blank">
<img class="brand-pic" src="/images/3.jpg">
<div class="brand-des"><span class="fl"></span>
<span class="fr"><em>234100</em>件已付款 &nbsp; <em>仅剩1天</em></span></div></a>
</li>
<li>
<a href="http://ju.taobao.com/tg/brand_items.htm?act_sign_id=28794165&amp;seller_id=880734502" target="_blank">
<img class="brand-pic" src="/images/3.jpg">
<div class="brand-des"><span class="fl"></span>
<span class="fr"><em>234100</em>件已付款 &nbsp; <em>仅剩1天</em></span></div></a>
</li>
<li>
<a href="http://ju.taobao.com/tg/brand_items.htm?act_sign_id=28794165&amp;seller_id=880734502" target="_blank">
<img class="brand-pic" src="/images/3.jpg">
<div class="brand-des"><span class="fl"></span>
<span class="fr"><em>234100</em>件已付款 &nbsp; <em>仅剩1天</em></span></div></a>
</li>
</ul>
</div>
<div style="background-color:#f6f6f6;padding:15px 0;">
<div class="box">
<ul class="pul">
<?php if($goods_list){foreach($goods_list as $k=>$v){ ?>
@ -44,13 +87,12 @@
<p class="title"><?php echo $v['title']; ?></p>
<p class="desc"><span class="price-point"><i></i>库存(<?php echo $v['goods_number']; ?>)</span> <?php echo $v['description']; ?></p>
<div class="item-prices red"><div class="item-link">立即<br>抢购</div><div class="item-info"><div class="price"><i>¥</i><em class="J_actPrice"><span class="yen"><?php echo ceil($v['price']); ?></span></em></div>
<div class="dock"><div class="dock-price"><del class="orig-price">¥<?php echo $v['market_price']; ?></del> <span class="benefit">退货赔运费</span></div><div class="prompt"><div class="sold-num"><em><?php echo $v['sale']; ?></em> 件已付款</div></div></div>
<div class="dock"><div class="dock-price"><del class="orig-price">¥<?php echo $v['market_price']; ?></del> <span class="benefit">包邮</span></div><div class="prompt"><div class="sold-num"><em><?php echo $v['sale']; ?></em> 件已付款</div></div></div>
</div></div>
</a></li>
<?php }} ?>
</ul></div>
</div><!-- box end -->@include('home.common.footer')
@include('home.common.footer')
<script>//图片幻灯
var glide =new function(){
function $id(id){return document.getElementById(id);};

11
routes/web.php

@ -36,11 +36,13 @@ Route::group(['namespace' => 'Home'], function () {
Route::get('/p/{id}', 'IndexController@detail')->name('home_detail'); //详情页
Route::get('/cat{cat}/{page}', 'IndexController@category'); //分类页,分页
Route::get('/cat{cat}', 'IndexController@category')->name('home_category'); //分类页
Route::get('/arclist', 'IndexController@arclist')->name('home_arclist'); //文章列表
Route::get('/tag{tag}/{page}', 'IndexController@tag'); //标签页,分页
Route::get('/tag{tag}', 'IndexController@tag')->name('home_tag'); //标签页
Route::get('/page/{id}', 'IndexController@page')->name('home_singlepage'); //单页
Route::get('/goods/{id}', 'IndexController@goods')->name('home_goods'); //商品详情页
Route::get('/goodslist', 'IndexController@goodslist')->name('home_goodslist'); //产品分类页
Route::get('/brandlist', 'IndexController@brandList')->name('home_brandlist'); //品牌列表
Route::get('/sitemap.xml', 'IndexController@sitemap')->name('home_sitemap');//sitemap
Route::get('/test', 'IndexController@test')->name('home_test'); //测试
@ -355,10 +357,15 @@ Route::group(['prefix' => 'fladmin', 'namespace' => 'Admin', 'middleware' => ['w
Route::get('/user', 'UserController@index')->name('admin_user');
Route::get('/user/add', 'UserController@add')->name('admin_user_add');
Route::post('/user/doadd', 'UserController@doadd')->name('admin_user_doadd');
Route::get('/user/edit', 'UserController@edit')->name('admin_user_edit');
Route::post('/user/doedit', 'UserController@doedit')->name('admin_user_doedit');
Route::any('/user/edit', 'UserController@edit')->name('admin_user_edit');
Route::get('/user/del', 'UserController@del')->name('admin_user_del');
Route::get('/user/money', 'UserController@money')->name('admin_user_money'); //会员账户记录
Route::any('/user/manual_recharge', 'UserController@manualRecharge')->name('admin_user_manual_recharge'); //人工充值
//会员管理
Route::get('/userrank', 'UserRankController@index')->name('admin_userrank');
Route::any('/userrank/add', 'UserRankController@add')->name('admin_userrank_add');
Route::any('/userrank/edit', 'UserRankController@edit')->name('admin_userrank_edit');
Route::get('/userrank/del', 'UserRankController@del')->name('admin_userrank_del');
//提现申请
Route::get('/userwithdraw', 'UserWithdrawController@index')->name('admin_userwithdraw');
Route::get('/userwithdraw/edit', 'UserWithdrawController@edit')->name('admin_userwithdraw_edit');

Loading…
Cancel
Save