!11 修改部分bug

Merge pull request !11 from 聆听/develop
This commit is contained in:
聆听 2018-11-30 16:04:02 +08:00
commit c8fd9c676c
21 changed files with 131 additions and 68 deletions

View File

@ -36,7 +36,7 @@ class Login extends SystemBasic
//检验验证码 //检验验证码
if(!captcha_check($verify)) return $this->failed('验证码错误,请重新输入'); if(!captcha_check($verify)) return $this->failed('验证码错误,请重新输入');
$error = Session::get('login_error')?:['num'=>0,'time'=>time()]; $error = Session::get('login_error')?:['num'=>0,'time'=>time()];
if($error['num'] >=5 && $error['time'] < strtotime('+ 5 minutes')) if($error['num'] >=5 && $error['time'] > strtotime('- 5 minutes'))
return $this->failed('错误次数过多,请稍候再试!'); return $this->failed('错误次数过多,请稍候再试!');
//检验帐号密码 //检验帐号密码
$res = SystemAdmin::login($account,$pwd); $res = SystemAdmin::login($account,$pwd);

View File

@ -4,6 +4,7 @@ namespace app\admin\controller\store;
use app\admin\controller\AuthController; use app\admin\controller\AuthController;
use service\FormBuilder as Form; use service\FormBuilder as Form;
use service\JsonService;
use service\UtilService as Util; use service\UtilService as Util;
use service\JsonService as Json; use service\JsonService as Json;
use service\UploadService as Upload; use service\UploadService as Upload;
@ -27,18 +28,51 @@ class StoreCategory extends AuthController
*/ */
public function index() public function index()
{ {
$pid = $this->request->param('pid')?$this->request->param('pid'):0; $this->assign('pid',$this->request->get('pid',0));
$where = Util::getMore([
['is_show',''],
['pid',$pid],
['cate_name',''],
],$this->request);
$this->assign('where',$where);
$this->assign('cate',CategoryModel::getTierList()); $this->assign('cate',CategoryModel::getTierList());
$this->assign(CategoryModel::systemPage($where));
return $this->fetch(); return $this->fetch();
} }
/*
* 异步获取分类列表
* @return json
*/
public function category_list(){
$where = Util::getMore([
['is_show',''],
['pid',$this->request->param('pid','')],
['cate_name',''],
['page',1],
['limit',20],
['order','']
]);
return JsonService::successlayui(CategoryModel::CategoryList($where));
}
/**
* 设置单个产品上架|下架
*
* @return json
*/
public function set_show($is_show='',$id=''){
($is_show=='' || $id=='') && JsonService::fail('缺少参数');
$res=CategoryModel::where(['id'=>$id])->update(['is_show'=>(int)$is_show]);
if($res){
return JsonService::successful($is_show==1 ? '显示成功':'隐藏成功');
}else{
return JsonService::fail($is_show==1 ? '显示失败':'隐藏失败');
}
}
/**
* 快速编辑
*
* @return json
*/
public function set_category($field='',$id='',$value=''){
$field=='' || $id=='' || $value=='' && JsonService::fail('缺少参数');
if(CategoryModel::where(['id'=>$id])->update([$field=>$value]))
return JsonService::successful('保存成功');
else
return JsonService::fail('保存失败');
}
/** /**
* 显示创建资源表单页. * 显示创建资源表单页.
* *
@ -60,7 +94,7 @@ class StoreCategory extends AuthController
Form::number('sort','排序'), Form::number('sort','排序'),
Form::radio('is_show','状态',1)->options([['label'=>'显示','value'=>1],['label'=>'隐藏','value'=>0]]) Form::radio('is_show','状态',1)->options([['label'=>'显示','value'=>1],['label'=>'隐藏','value'=>0]])
]; ];
$form = Form::make_post_form('添加产品',$field,Url::build('save')); $form = Form::make_post_form('添加分类',$field,Url::build('save'),2);
$this->assign(compact('form')); $this->assign(compact('form'));
return $this->fetch('public/form-builder'); return $this->fetch('public/form-builder');
} }
@ -119,7 +153,7 @@ class StoreCategory extends AuthController
{ {
$c = CategoryModel::get($id); $c = CategoryModel::get($id);
if(!$c) return Json::fail('数据不存在!'); if(!$c) return Json::fail('数据不存在!');
$form = Form::create(Url::build('update',array('id'=>$id)),[ $field = [
Form::select('pid','父级',(string)$c->getData('pid'))->setOptions(function() use($id){ Form::select('pid','父级',(string)$c->getData('pid'))->setOptions(function() use($id){
$list = CategoryModel::getTierList(CategoryModel::where('id','<>',$id)); $list = CategoryModel::getTierList(CategoryModel::where('id','<>',$id));
// $list = (Util::sortListTier(CategoryModel::where('id','<>',$id)->select()->toArray(),'顶级','pid','cate_name')); // $list = (Util::sortListTier(CategoryModel::where('id','<>',$id)->select()->toArray(),'顶级','pid','cate_name'));
@ -133,8 +167,9 @@ class StoreCategory extends AuthController
Form::frameImageOne('pic','分类图标',Url::build('admin/widget.images/index',array('fodder'=>'pic')),$c->getData('pic'))->icon('image'), Form::frameImageOne('pic','分类图标',Url::build('admin/widget.images/index',array('fodder'=>'pic')),$c->getData('pic'))->icon('image'),
Form::number('sort','排序',$c->getData('sort')), Form::number('sort','排序',$c->getData('sort')),
Form::radio('is_show','状态',$c->getData('is_show'))->options([['label'=>'显示','value'=>1],['label'=>'隐藏','value'=>0]]) Form::radio('is_show','状态',$c->getData('is_show'))->options([['label'=>'显示','value'=>1],['label'=>'隐藏','value'=>0]])
]); ];
$form->setMethod('post')->setTitle('添加分类'); $form = Form::make_post_form('编辑分类',$field,Url::build('update',array('id'=>$id)),2);
$this->assign(compact('form')); $this->assign(compact('form'));
return $this->fetch('public/form-builder'); return $this->fetch('public/form-builder');
} }

View File

@ -17,9 +17,7 @@ use think\Request;
use app\admin\model\store\StoreCategory as CategoryModel; use app\admin\model\store\StoreCategory as CategoryModel;
use app\admin\model\store\StoreProduct as ProductModel; use app\admin\model\store\StoreProduct as ProductModel;
use think\Url; use think\Url;
use app\admin\model\ump\StoreSeckill as StoreSeckillModel;
use app\admin\model\order\StoreOrder as StoreOrderModel;
use app\admin\model\ump\StoreBargain as StoreBargainModel;
use app\admin\model\system\SystemAttachment; use app\admin\model\system\SystemAttachment;
@ -145,13 +143,13 @@ class StoreProduct extends AuthController
Form::input('store_info','产品简介')->type('textarea'), Form::input('store_info','产品简介')->type('textarea'),
Form::input('keyword','产品关键字')->placeholder('多个用英文状态下的逗号隔开'), Form::input('keyword','产品关键字')->placeholder('多个用英文状态下的逗号隔开'),
Form::input('unit_name','产品单位','件'), Form::input('unit_name','产品单位','件'),
Form::frameImageOne('image','产品主图片(305*305px)',Url::build('admin/widget.images/index',array('fodder'=>'image')))->icon('image')->width('100%')->height('550px'), Form::frameImageOne('image','产品主图片(305*305px)',Url::build('admin/widget.images/index',array('fodder'=>'image')))->icon('image')->width('100%')->height('500px'),
Form::frameImages('slider_image','产品轮播图(640*640px)',Url::build('admin/widget.images/index',array('fodder'=>'slider_image')))->maxLength(5)->icon('images')->width('100%')->height('550px')->spin(0), Form::frameImages('slider_image','产品轮播图(640*640px)',Url::build('admin/widget.images/index',array('fodder'=>'slider_image')))->maxLength(5)->icon('images')->width('100%')->height('500px')->spin(0),
Form::number('price','产品售价')->min(0)->col(8), Form::number('price','产品售价')->min(0)->col(8),
Form::number('ot_price','产品市场价')->min(0)->col(8), Form::number('ot_price','产品市场价')->min(0)->col(8),
Form::number('give_integral','赠送积分')->min(0)->precision(0)->col(8), Form::number('give_integral','赠送积分')->min(0)->precision(0)->col(8),
Form::number('postage','邮费')->min(0)->col(Form::col(8)), Form::number('postage','邮费')->min(0)->col(Form::col(8)),
Form::number('sales','销量')->min(0)->precision(0)->col(8), Form::number('sales','销量',0)->min(0)->precision(0)->col(8)->readonly(1),
Form::number('ficti','虚拟销量')->min(0)->precision(0)->col(8), Form::number('ficti','虚拟销量')->min(0)->precision(0)->col(8),
Form::number('stock','库存')->min(0)->precision(0)->col(8), Form::number('stock','库存')->min(0)->precision(0)->col(8),
Form::number('cost','产品成本价')->min(0)->col(8), Form::number('cost','产品成本价')->min(0)->col(8),
@ -163,8 +161,7 @@ class StoreProduct extends AuthController
Form::radio('is_new','首发新品',0)->options([['label'=>'是','value'=>1],['label'=>'否','value'=>0]])->col(8), Form::radio('is_new','首发新品',0)->options([['label'=>'是','value'=>1],['label'=>'否','value'=>0]])->col(8),
Form::radio('is_postage','是否包邮',0)->options([['label'=>'是','value'=>1],['label'=>'否','value'=>0]])->col(8) Form::radio('is_postage','是否包邮',0)->options([['label'=>'是','value'=>1],['label'=>'否','value'=>0]])->col(8)
]; ];
$form = Form::create(Url::build('save')); $form = Form::make_post_form('添加产品',$field,Url::build('save'),2);
$form->setMethod('post')->setTitle('添加产品')->components($field)->setSuccessScript('parent.$(".J_iframe:visible")[0].contentWindow.location.reload();');
$this->assign(compact('form')); $this->assign(compact('form'));
return $this->fetch('public/form-builder'); return $this->fetch('public/form-builder');
} }
@ -265,7 +262,7 @@ class StoreProduct extends AuthController
if(!$id) return $this->failed('数据不存在'); if(!$id) return $this->failed('数据不存在');
$product = ProductModel::get($id); $product = ProductModel::get($id);
if(!$product) return Json::fail('数据不存在!'); if(!$product) return Json::fail('数据不存在!');
$form = Form::create(Url::build('update',array('id'=>$id)),[ $field = [
Form::select('cate_id','产品分类',explode(',',$product->getData('cate_id')))->setOptions(function(){ Form::select('cate_id','产品分类',explode(',',$product->getData('cate_id')))->setOptions(function(){
$list = CategoryModel::getTierList(); $list = CategoryModel::getTierList();
$menus=[]; $menus=[];
@ -278,13 +275,13 @@ class StoreProduct extends AuthController
Form::input('store_info','产品简介',$product->getData('store_info'))->type('textarea'), Form::input('store_info','产品简介',$product->getData('store_info'))->type('textarea'),
Form::input('keyword','产品关键字',$product->getData('keyword'))->placeholder('多个用英文状态下的逗号隔开'), Form::input('keyword','产品关键字',$product->getData('keyword'))->placeholder('多个用英文状态下的逗号隔开'),
Form::input('unit_name','产品单位',$product->getData('unit_name')), Form::input('unit_name','产品单位',$product->getData('unit_name')),
Form::frameImageOne('image','产品主图片(305*305px)',Url::build('admin/widget.images/index',array('fodder'=>'image')),$product->getData('image'))->icon('image')->width('100%')->height('550px'), Form::frameImageOne('image','产品主图片(305*305px)',Url::build('admin/widget.images/index',array('fodder'=>'image')),$product->getData('image'))->icon('image')->width('100%')->height('500px'),
Form::frameImages('slider_image','产品轮播图(640*640px)',Url::build('admin/widget.images/index',array('fodder'=>'slider_image')),json_decode($product->getData('slider_image'),1))->maxLength(5)->icon('images')->width('100%')->height('550px'), Form::frameImages('slider_image','产品轮播图(640*640px)',Url::build('admin/widget.images/index',array('fodder'=>'slider_image')),json_decode($product->getData('slider_image'),1))->maxLength(5)->icon('images')->width('100%')->height('500px'),
Form::number('price','产品售价',$product->getData('price'))->min(0)->precision(2)->col(8), Form::number('price','产品售价',$product->getData('price'))->min(0)->precision(2)->col(8),
Form::number('ot_price','产品市场价',$product->getData('ot_price'))->min(0)->col(8), Form::number('ot_price','产品市场价',$product->getData('ot_price'))->min(0)->col(8),
Form::number('give_integral','赠送积分',$product->getData('give_integral'))->min(0)->precision(0)->col(8), Form::number('give_integral','赠送积分',$product->getData('give_integral'))->min(0)->precision(0)->col(8),
Form::number('postage','邮费',$product->getData('postage'))->min(0)->col(8), Form::number('postage','邮费',$product->getData('postage'))->min(0)->col(8),
Form::number('sales','销量',$product->getData('sales'))->min(0)->precision(0)->col(8), Form::number('sales','销量',$product->getData('sales'))->min(0)->precision(0)->col(8)->readonly(1),
Form::number('ficti','虚拟销量',$product->getData('ficti'))->min(0)->precision(0)->col(8), Form::number('ficti','虚拟销量',$product->getData('ficti'))->min(0)->precision(0)->col(8),
Form::number('stock','库存',ProductModel::getStock($id)>0?ProductModel::getStock($id):$product->getData('stock'))->min(0)->precision(0)->col(8), Form::number('stock','库存',ProductModel::getStock($id)>0?ProductModel::getStock($id):$product->getData('stock'))->min(0)->precision(0)->col(8),
Form::number('cost','产品成本价',$product->getData('cost'))->min(0)->col(8), Form::number('cost','产品成本价',$product->getData('cost'))->min(0)->col(8),
@ -295,8 +292,8 @@ class StoreProduct extends AuthController
Form::radio('is_best','精品推荐',$product->getData('is_best'))->options([['label'=>'是','value'=>1],['label'=>'否','value'=>0]])->col(8), Form::radio('is_best','精品推荐',$product->getData('is_best'))->options([['label'=>'是','value'=>1],['label'=>'否','value'=>0]])->col(8),
Form::radio('is_new','首发新品',$product->getData('is_new'))->options([['label'=>'是','value'=>1],['label'=>'否','value'=>0]])->col(8), Form::radio('is_new','首发新品',$product->getData('is_new'))->options([['label'=>'是','value'=>1],['label'=>'否','value'=>0]])->col(8),
Form::radio('is_postage','是否包邮',$product->getData('is_postage'))->options([['label'=>'是','value'=>1],['label'=>'否','value'=>0]])->col(8) Form::radio('is_postage','是否包邮',$product->getData('is_postage'))->options([['label'=>'是','value'=>1],['label'=>'否','value'=>0]])->col(8)
]); ];
$form->setMethod('post')->setTitle('编辑产品')->setSuccessScript('parent.$(".J_iframe:visible")[0].contentWindow.location.reload();'); $form = Form::make_post_form('编辑产品',$field,Url::build('update',array('id'=>$id)),2);
$this->assign(compact('form')); $this->assign(compact('form'));
return $this->fetch('public/form-builder'); return $this->fetch('public/form-builder');
} }
@ -325,7 +322,7 @@ class StoreProduct extends AuthController
'price', 'price',
'sort', 'sort',
'stock', 'stock',
'sales', // 'sales',
'ficti', 'ficti',
['give_integral',0], ['give_integral',0],
['is_show',0], ['is_show',0],
@ -350,7 +347,7 @@ class StoreProduct extends AuthController
if($data['postage'] == '' || $data['postage'] < 0) return Json::fail('请输入邮费'); if($data['postage'] == '' || $data['postage'] < 0) return Json::fail('请输入邮费');
if($data['cost'] == '' || $data['cost'] < 0) return Json::fail('请输入产品成本价'); if($data['cost'] == '' || $data['cost'] < 0) return Json::fail('请输入产品成本价');
if($data['stock'] == '' || $data['stock'] < 0) return Json::fail('请输入库存'); if($data['stock'] == '' || $data['stock'] < 0) return Json::fail('请输入库存');
if($data['sales'] == '' || $data['sales'] < 0) return Json::fail('请输入销量'); // if($data['sales'] == '' || $data['sales'] < 0) return Json::fail('请输入销量');
if($data['give_integral'] < 0) return Json::fail('请输入赠送积分'); if($data['give_integral'] < 0) return Json::fail('请输入赠送积分');
$data['image'] = $data['image'][0]; $data['image'] = $data['image'][0];
$data['slider_image'] = json_encode($data['slider_image']); $data['slider_image'] = json_encode($data['slider_image']);
@ -442,11 +439,17 @@ class StoreProduct extends AuthController
public function delete($id) public function delete($id)
{ {
if(!$id) return $this->failed('数据不存在'); if(!$id) return $this->failed('数据不存在');
$data['is_del'] = 1; if(!ProductModel::be(['id'=>$id])) return $this->failed('产品数据不存在');
if(!ProductModel::edit($data,$id)) if(ProductModel::be(['id'=>$id,'is_del'=>1])){
return Json::fail(ProductModel::getErrorInfo('删除失败,请稍候再试!')); return Json::fail(ProductModel::getErrorInfo('暂不支持回收站删除产品!'));
else }else{
return Json::successful('删除成功!'); $data['is_del'] = 1;
if(!ProductModel::edit($data,$id))
return Json::fail(ProductModel::getErrorInfo('删除失败,请稍候再试!'));
else
return Json::successful('成功移到回收站!');
}
} }

View File

@ -25,8 +25,15 @@ class UserNotice extends AuthController
*/ */
public function index() public function index()
{ {
$this->assign(UserNoticeModel::getList()); if($this->request->isAjax()){
return $this->fetch(); $where=Util::getMore([
['page',1],
['limit',20]
]);
return Json::successlayui(UserNoticeModel::getList($where));
}else{
return $this->fetch();
}
} }
/** /**
@ -289,8 +296,9 @@ class UserNotice extends AuthController
public function send_user($id = 0,$uid = '') public function send_user($id = 0,$uid = '')
{ {
if(!$id || $uid == '') return JsonService::fail('参数错误'); if(!$id || $uid == '') return JsonService::fail('参数错误');
$uid = ",".$uid.","; $uids = UserNoticeModel::where(['id'=>$id])->value('uid');
UserNoticeModel::edit(array("is_send"=>1,"send_time"=>time(),'uid'=>$uid),$id); $uid = rtrim($uids,',').",".$uid.",";
UserNoticeModel::edit(array("send_time"=>time(),'uid'=>$uid),$id);
return Json::successful('发送成功!'); return Json::successful('发送成功!');
} }
} }

View File

@ -44,7 +44,6 @@ class Images extends AuthController
public function upload() public function upload()
{ {
$pid = input('pid')!= NULL ?input('pid'):session('pid'); $pid = input('pid')!= NULL ?input('pid'):session('pid');
$res = Upload::image('file','attach'.DS.date('Y').DS.date('m').DS.date('d')); $res = Upload::image('file','attach'.DS.date('Y').DS.date('m').DS.date('d'));
$thumbPath = Upload::thumb($res->dir); $thumbPath = Upload::thumb($res->dir);
//产品图片上传记录 //产品图片上传记录
@ -62,7 +61,7 @@ class Images extends AuthController
// "type" => $fileInfo['type'], // "type" => $fileInfo['type'],
// "state" => "SUCCESS" // "state" => "SUCCESS"
'code' =>200, 'code' =>200,
'msg' =>'SUCCESS', 'msg' =>'上传成功',
'src' =>$res->dir 'src' =>$res->dir
); );
echo json_encode($info); echo json_encode($info);

View File

@ -24,9 +24,23 @@ class UserNotice extends ModelBasic
/** /**
* @return array * @return array
*/ */
public static function getList(){ public static function getList($where=[]){
$model = new self; $model = new self;
$model->order('id desc'); $model->order('id desc');
if(!empty($where)){
$data=($data=$model->page((int)$where['page'],(int)$where['limit'])->select()) && count($data) ? $data->toArray() : [];
foreach ($data as &$item){
if($item["uid"] != ''){
$uids = explode(",",$item["uid"]);
array_splice($uids,0,1);
array_splice($uids,count($uids)-1,1);
$item["uid"] = $uids;
}
$item['send_time']=date('Y-m-d H:i:s',$item['send_time']);
}
$count=self::count();
return compact('data','count');
}
return self::page($model,function($item,$key){ return self::page($model,function($item,$key){
if($item["uid"] != ''){ if($item["uid"] != ''){
$uids = explode(",",$item["uid"]); $uids = explode(",",$item["uid"]);
@ -46,7 +60,7 @@ class UserNotice extends ModelBasic
$model = new self; $model = new self;
if(isset($where['title']) && $where['title'] != '') $model = $model->where('title','LIKE',"%".$where['title']."%"); if(isset($where['title']) && $where['title'] != '') $model = $model->where('title','LIKE',"%".$where['title']."%");
$model = $model->where('type',2); $model = $model->where('type',2);
$model = $model->where('is_send',0); // $model = $model->where('is_send',0);
$model = $model->order('id desc'); $model = $model->order('id desc');
return self::page($model,$where); return self::page($model,$where);
} }

View File

@ -200,7 +200,7 @@ use service\SystemConfigService;
->ExcelSave(); ->ExcelSave();
} }
return self::page($model,function ($item){ return self::page($model,function ($item){
$item['qr_code'] = QrcodeService::getForeverQrcode('spread',$item['uid']); $item['qr_code'] = QrcodeService::getForeverQrcode('spread',$item['uid'])?:'';
$item['extract_count_price'] = UserExtract::getUserCountPrice($item['uid']);//累计提现 $item['extract_count_price'] = UserExtract::getUserCountPrice($item['uid']);//累计提现
$item['extract_count_num'] = UserExtract::getUserCountNum($item['uid']);//提现次数 $item['extract_count_num'] = UserExtract::getUserCountNum($item['uid']);//提现次数
},$where); },$where);

File diff suppressed because one or more lines are too long

View File

@ -110,14 +110,14 @@
<button type="button" class="layui-btn layui-btn-xs btn-success" onclick="$eb.createModalFrame('{{d.store_name}}-属性','{:Url('attr')}?id={{d.id}}',{h:700,w:800})"> <button type="button" class="layui-btn layui-btn-xs btn-success" onclick="$eb.createModalFrame('{{d.store_name}}-属性','{:Url('attr')}?id={{d.id}}',{h:700,w:800})">
属性 属性
</button> </button>
<button type="button" class="layui-btn layui-btn-xs layui-btn-normal" onclick="$eb.createModalFrame('{{d.store_name}}-编辑','{:Url('edit')}?id={{d.id}}',{h:760,w:1100})"> <button type="button" class="layui-btn layui-btn-xs layui-btn-normal" onclick="$eb.createModalFrame('{{d.store_name}}-编辑','{:Url('edit')}?id={{d.id}}',{h:700,w:1100})">
编辑 编辑
</button> </button>
<button type="button" class="layui-btn layui-btn-xs" onclick="dropdown(this)">操作 <span class="caret"></span></button> <button type="button" class="layui-btn layui-btn-xs" onclick="dropdown(this)">操作 <span class="caret"></span></button>
<ul class="layui-nav-child layui-anim layui-anim-upbit"> <ul class="layui-nav-child layui-anim layui-anim-upbit">
<li> <li>
<a href="javascript:void(0);" class="" onclick="$eb.createModalFrame(this.innerText,'{:Url('edit_content')}?id={{d.id}}')"> <a href="javascript:void(0);" class="" onclick="$eb.createModalFrame(this.innerText,'{:Url('edit_content')}?id={{d.id}}')">
<i class="fa fa-pencil"></i> 编辑内容</a> <i class="fa fa-pencil"></i> 产品详情</a>
</li> </li>
<li> <li>
<a href="javascript:void(0);" onclick="$eb.createModalFrame(this.innerText,'{:Url('ump.store_seckill/seckill')}?id={{d.id}}')""> <a href="javascript:void(0);" onclick="$eb.createModalFrame(this.innerText,'{:Url('ump.store_seckill/seckill')}?id={{d.id}}')"">
@ -197,7 +197,7 @@
{field: 'stock', title: '库存',edit:'stock'}, {field: 'stock', title: '库存',edit:'stock'},
{field: 'sort', title: '排序',edit:'sort'}, {field: 'sort', title: '排序',edit:'sort'},
{field: 'sales', title: '销量',sort: true,event:'sales'}, {field: 'sales', title: '销量',sort: true,event:'sales'},
{field: 'status', title: '状态',templet:"#checkboxstatus"}, // {field: 'status', title: '状态',templet:"#checkboxstatus"},
{field: 'right', title: '操作',align:'center',toolbar:'#act',width:'14%'}, {field: 'right', title: '操作',align:'center',toolbar:'#act',width:'14%'},
]; ];
break; break;

View File

@ -117,12 +117,12 @@
break; break;
case 'warning': case 'warning':
window.t = $(this); window.t = $(this);
var _this = $(this),url =layList.U({a:'delete',p:{id:data.id}}); var _this = obj,url =layList.U({a:'delete',p:{id:data.id}});
$eb.$swal('delete',function(){ $eb.$swal('delete',function(){
$eb.axios.get(url).then(function(res){ $eb.axios.get(url).then(function(res){
if(res.status == 200 && res.data.code == 200) { if(res.status == 200 && res.data.code == 200) {
$eb.$swal('success',res.data.msg); $eb.$swal('success',res.data.msg);
_this.parents('tr').remove(); _this.del();
}else }else
return Promise.reject(res.data.msg || '删除失败') return Promise.reject(res.data.msg || '删除失败')
}).catch(function(err){ }).catch(function(err){

View File

@ -79,10 +79,10 @@
{volist name="list" id="vo"} {volist name="list" id="vo"}
<div class="image-item"> <div class="image-item">
<div class="image-delete" data-url="{:Url('delete',array('att_id'=>$vo.att_id))}"></div> <div class="image-delete" data-url="{:Url('delete',array('att_id'=>$vo.att_id))}"></div>
{if condition="$Request.param.big eq 1"} {if condition="$Request.param.small eq 1"}
<img class="pic" src="{$vo.att_dir|ltrim='.'}" id="{$vo.att_id}"/>
{else/}
<img class="pic" src="{$vo.satt_dir|ltrim='.'}" id="{$vo.att_id}"/> <img class="pic" src="{$vo.satt_dir|ltrim='.'}" id="{$vo.att_id}"/>
{else/}
<img class="pic" src="{$vo.att_dir|ltrim='.'}" id="{$vo.att_id}"/>
{/if} {/if}
</div> </div>
{/volist} {/volist}

View File

@ -27,8 +27,12 @@ class StoreCart extends ModelBasic
{ {
if($cart_num < 1) $cart_num = 1; if($cart_num < 1) $cart_num = 1;
if($seckill_id){ if($seckill_id){
if(!StoreSeckill::getValidProduct($seckill_id)) $StoreSeckillinfo = StoreSeckill::getValidProduct($seckill_id);
if(!$StoreSeckillinfo)
return self::setErrorInfo('该产品已下架或删除'); return self::setErrorInfo('该产品已下架或删除');
$userbuycount = StoreOrder::where(['uid'=>$uid,'paid'=>1,'seckill_id'=>$seckill_id])->count();
if($StoreSeckillinfo['num'] <= $userbuycount)
return self::setErrorInfo('每人限购'.$StoreSeckillinfo['num'].'一件');
if(StoreSeckill::getProductStock($seckill_id) < $cart_num) if(StoreSeckill::getProductStock($seckill_id) < $cart_num)
return self::setErrorInfo('该产品库存不足'.$cart_num); return self::setErrorInfo('该产品库存不足'.$cart_num);
$where = ['type'=>$type,'uid'=>$uid,'product_id'=>$product_id,'product_attr_unique'=>$product_attr_unique,'is_new'=>$is_new,'is_pay'=>0,'is_del'=>0,'seckill_id'=>$seckill_id]; $where = ['type'=>$type,'uid'=>$uid,'product_id'=>$product_id,'product_attr_unique'=>$product_attr_unique,'is_new'=>$is_new,'is_pay'=>0,'is_del'=>0,'seckill_id'=>$seckill_id];

View File

@ -1,2 +1,2 @@
version=CRMEB-DTKY v2.5.2 version=CRMEB-DTKY v2.5.3
version_code=129 version_code=129

View File

@ -33,7 +33,7 @@ $(function(){
$.ajax({ $.ajax({
type: "POST", type: "POST",
url: "http://shop.crmeb.net/index.php/admin/server.upgrade_api/updatewebinfo", url: "http://shop.crmeb.net/index.php/admin/server.upgrade_api/updatewebinfo",
data: {host:'<?php echo $host;?>',https:'<?php echo 'http://'.$host;?>',version:'CRMEB-DTKY v2.5.2',ip:'<?php echo $_SERVER[HTTP_CLIENT_IP];?>'}, data: {host:'<?php echo $host;?>',https:'<?php echo 'http://'.$host;?>',version:'CRMEB-DTKY v2.5.3',ip:'<?php echo $_SERVER[HTTP_CLIENT_IP];?>'},
dataType: 'json', dataType: 'json',
success: function(){} success: function(){}
}); });

View File

@ -1,5 +1,5 @@
express_icon.jpgexpress_icon.jpgexpress_{ {
"pages": [ "pages": [
"pages/loading/loading", "pages/loading/loading",
"pages/load/load", "pages/load/load",
"pages/login-status/login-status", "pages/login-status/login-status",
@ -80,4 +80,4 @@ express_icon.jpgexpress_icon.jpgexpress_{
} }
] ]
} }
} }

View File

@ -14,7 +14,7 @@
.list-ul .tiao-red{width:40%;background-color:#FF3D3D;height:100%;display:inline-block;position:absolute;top:0;left:0;border-radius:50rpx;} .list-ul .tiao-red{width:40%;background-color:#FF3D3D;height:100%;display:inline-block;position:absolute;top:0;left:0;border-radius:50rpx;}
.list-ul .text-but{color:#FFFFFF;font-size:24rpx;background-color:#FF3D3D;width:120rpx;height:50rpx;line-height:50rpx;text-align:center;border-radius:7rpx;margin-top:40rpx;} .list-ul .text-but{color:#FFFFFF;font-size:24rpx;background-color:#FF3D3D;width:120rpx;height:50rpx;line-height:50rpx;text-align:center;border-radius:7rpx;margin-top:40rpx;}
.list-pos{position:relative;} .list-pos{position:relative;}
.list-time{position:absolute;bottom:10rpx;font-size:45rpx;left:18rpx;} .list-time{position:absolute;bottom:10rpx;font-size:25rpx;left:18rpx;}
.list-time>text{width:38rpx;height:38rpx;line-height:38rpx;text-align:center;display:inline-block;vertical-align:middle;background-color:#333333;color:#FFFFFF;font-size:20rpx;border-radius:5rpx;margin-right: 16rpx;} .list-time>text{width:38rpx;height:38rpx;line-height:38rpx;text-align:center;display:inline-block;vertical-align:middle;background-color:#333333;color:#FFFFFF;font-size:20rpx;border-radius:5rpx;margin-right: 16rpx;}
.list-time-top{background-color:rgba(255, 255, 255, 0.5);position:absolute;bottom:0;width:100%;height:60rpx;} .list-time-top{background-color:rgba(255, 255, 255, 0.5);position:absolute;bottom:0;width:100%;height:60rpx;}
@import "/pages/home/home.wxss"; @import "/pages/home/home.wxss";

View File

@ -113,7 +113,7 @@
<view class='foot'> <view class='foot'>
<view class='pay-btn' data-id="{{ordercon.order_id}}" bindtap='getPay' wx:if="{{ordercon._status._type==0}}">立即付款</view> <view class='pay-btn' data-id="{{ordercon.order_id}}" bindtap='getPay' wx:if="{{ordercon._status._type==0}}">立即付款</view>
<navigator wx:elif="{{ordercon._status._type==1}}" hover-class="none" url='/pages/refund-page/refund-page?orderId={{ordercon.order_id}}'><view class='delete-btn'>申请退款</view></navigator> <navigator wx:elif="{{ordercon._status._type==1}}" hover-class="none" url='/pages/refund-page/refund-page?orderId={{ordercon.order_id}}'><view class='delete-btn'>申请退款</view></navigator>
<view wx:if="{{ordercon._status._type==1 && ordercon.combination_id}}" class='pay-btn' bindtap='goJoinPink' data-uni='{{ordercon.pink_id}}'>查看拼团</view> <view wx:if="{{ordercon._status._type==1 && ordercon.combination_id > 0}}" class='pay-btn' bindtap='goJoinPink' data-uni='{{ordercon.pink_id}}'>查看拼团</view>
<navigator wx:if="{{ordercon._status._type==2 && ordercon.delivery_type == 'express'}}" hover-class="none" url='/pages/logistics/logistics?orderId={{ordercon.order_id}}'><view class='delete-btn' >查看物流</view></navigator> <navigator wx:if="{{ordercon._status._type==2 && ordercon.delivery_type == 'express'}}" hover-class="none" url='/pages/logistics/logistics?orderId={{ordercon.order_id}}'><view class='delete-btn' >查看物流</view></navigator>
<view wx:if="{{ordercon._status._type==2}}" class='pay-btn' bindtap='confirmOrder' data-uni='{{ordercon.order_id}}'>确认收货</view> <view wx:if="{{ordercon._status._type==2}}" class='pay-btn' bindtap='confirmOrder' data-uni='{{ordercon.order_id}}'>确认收货</view>
<view wx:if="{{ordercon._status._type==4 || ordercon._status._type==0}}" class='delete-btn' bindtap='delOrder' data-uni='{{ordercon.order_id}}'>删除订单</view> <view wx:if="{{ordercon._status._type==4 || ordercon._status._type==0}}" class='delete-btn' bindtap='delOrder' data-uni='{{ordercon.order_id}}'>删除订单</view>

View File

@ -78,10 +78,10 @@
<view class='txt-msg'>{{reply.comment}}</view> <view class='txt-msg'>{{reply.comment}}</view>
<view class='time-bar'>{{reply.add_time}}</view> <view class='time-bar'>{{reply.add_time}}</view>
</view> </view>
<view> <view wx:if="{{reply.merchant_reply_content != null}}">
<view>管理员回复:</view> <view></view>
<view class='txt-msg'>{{reply.merchant_reply_content}}</view> <view class='time-bar'>回复:{{reply.merchant_reply_time}}</view>
<view class='time-bar'>{{reply.merchant_reply_time}}</view> <view class='txt-msg'>{{reply.merchant_reply_content}}</view>
</view> </view>
<navigator wx:if="{{replyCount > 0}}" hover-class="none" url="/pages/comment/comment?productId={{storeInfo.id}}">查看全部评价</navigator> <navigator wx:if="{{replyCount > 0}}" hover-class="none" url="/pages/comment/comment?productId={{storeInfo.id}}">查看全部评价</navigator>
</view> </view>

View File

@ -6,7 +6,7 @@ swiper-item{position: relative; width: 100%;}
.pro-wrapper .pro-infos .price-wrapper{margin-top: 10rpx; align-items:center;} .pro-wrapper .pro-infos .price-wrapper{margin-top: 10rpx; align-items:center;}
.pro-wrapper .pro-infos .price-wrapper .price{font-size: 48rpx; color: #ff3d3d;} .pro-wrapper .pro-infos .price-wrapper .price{font-size: 48rpx; color: #ff3d3d;}
.pro-wrapper .pro-infos .price-wrapper .price text{font-size: 28rpx;} .pro-wrapper .pro-infos .price-wrapper .price text{font-size: 28rpx;}
.pro-wrapper .pro-infos .price-wrapper .small-txt{font-size: 24rpx; width: 66rpx; color: #fff; border-radius: 3px; height: 40rpx; line-height: 40rpx; text-align: center;margin-left: 10rpx;} .pro-wrapper .pro-infos .price-wrapper .small-txt{font-size: 24rpx; color: #fff; border-radius: 3px; height: 40rpx; line-height: 40rpx; text-align: center;margin-left: 10rpx;padding:0rpx 7rpx}
.pro-wrapper .pro-infos .price-wrapper .red{background-color: #ff3d3d;} .pro-wrapper .pro-infos .price-wrapper .red{background-color: #ff3d3d;}
.pro-wrapper .pro-infos .price-wrapper .lv{background-color: #4eb047; } .pro-wrapper .pro-infos .price-wrapper .lv{background-color: #4eb047; }
.pro-wrapper .pro-infos .price-wrapper .chen{background-color: #ff8000; } .pro-wrapper .pro-infos .price-wrapper .chen{background-color: #ff8000; }

View File

@ -39,7 +39,7 @@ swiper-item{position: relative; width: 100%;}
.foot .btns-wrapper .buy-btn{background-color: #ff7000;} .foot .btns-wrapper .buy-btn{background-color: #ff7000;}
.foot .btns-wrapper .payment-btn{background-color: #ff3d3d;} .foot .btns-wrapper .payment-btn{background-color: #ff3d3d;}
.countdown-wrapper{width: 100%; height:100rpx; padding: 0 20rpx; background-color: #ff3d3d;color: #fff; box-sizing: border-box; justify-content: space-between; align-items: center;} .countdown-wrapper{width: 100%; height:100rpx; padding: 0 20rpx; background-color: #ff3d3d;color: #fff; box-sizing: border-box; justify-content: space-between; align-items: center;margin-bottom: 0rpx;}
.price-txt{align-items: center;} .price-txt{align-items: center;}
.price-txt .number{font-size: 48rpx;} .price-txt .number{font-size: 48rpx;}
.price-txt .number text{font-size: 28rpx;} .price-txt .number text{font-size: 28rpx;}

View File

@ -10,7 +10,7 @@
"compileType": "miniprogram", "compileType": "miniprogram",
"libVersion": "1.9.94", "libVersion": "1.9.94",
"appid": "wx7bc36cccc15e4be2", "appid": "wx7bc36cccc15e4be2",
"projectname": "crmeb", "projectname": "git%E6%B5%8B%E8%AF%95",
"condition": { "condition": {
"search": { "search": {
"current": -1, "current": -1,