Init Repo
23
hyhproject/home/behavior/InitConfig.php
Executable file
@ -0,0 +1,23 @@
|
||||
<?php
|
||||
namespace wstmart\home\behavior;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 初始化基础数据
|
||||
*/
|
||||
class InitConfig
|
||||
{
|
||||
public function run(&$params){
|
||||
WSTConf('protectedUrl',model('HomeMenus')->getMenusUrl());
|
||||
// 检测手机端访问
|
||||
$request = request();
|
||||
$currModel = $request->module();
|
||||
|
||||
hook('initConfigHook',['getParams'=>input()]);
|
||||
|
||||
if($request->isMobile() && $currModel=='home'){
|
||||
$url = url('mobile/index/index');
|
||||
header("location:$url");
|
||||
die;
|
||||
}
|
||||
}
|
||||
}
|
49
hyhproject/home/behavior/ListenProtectedUrl.php
Executable file
@ -0,0 +1,49 @@
|
||||
<?php
|
||||
namespace wstmart\home\behavior;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 检测用户有没有登录和访问权限
|
||||
*/
|
||||
class ListenProtectedUrl
|
||||
{
|
||||
public function run(&$params){
|
||||
$request = request();
|
||||
$urls = WSTConf('protectedUrl');
|
||||
$visit = strtolower($request->module()."/".$request->controller()."/".$request->action());
|
||||
|
||||
//受保护资源进来检测身份
|
||||
if(isset($urls[$visit])){
|
||||
$menuType = (int)$urls[$visit];
|
||||
$userType = -1;
|
||||
if((int)session('WST_USER.userId')>0)$userType = 0;
|
||||
//if((int)session('WST_USER.shopId')>0)$userType = 1;
|
||||
if((int)session('WST_USER.userType')>0)$userType = 1;
|
||||
//未登录不允许访问受保护的资源
|
||||
if($userType==-1){
|
||||
if($request->isAjax()){
|
||||
echo json_encode(['status'=>-999,'msg'=>'对不起,您还没有登录,请先登录']);
|
||||
}else{
|
||||
header("Location:".url('home/users/login'));
|
||||
}
|
||||
exit();
|
||||
}
|
||||
//已登录但不是商家 则不允许访问受保护的商家资源
|
||||
if($userType==0 && $menuType==1){
|
||||
if($request->isAjax()){
|
||||
echo json_encode(['status'=>-999,'msg'=>'对不起,您不是商家,请先申请为商家再访问']);
|
||||
}else{
|
||||
header("Location:".url('home/shops/login'));
|
||||
}
|
||||
exit();
|
||||
}
|
||||
//商家角色权限
|
||||
if(((int)session('WST_USER.roleId')>0) && $userType==1 && $menuType==1){
|
||||
$shopMenuUrls = model('HomeMenus')->getShopMenusUrl();
|
||||
if(!in_array($visit,$shopMenuUrls)){
|
||||
header("Location:".url('home/error/index'));
|
||||
exit();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
171
hyhproject/home/common/function.php
Executable file
@ -0,0 +1,171 @@
|
||||
<?php
|
||||
use think\Db;
|
||||
use think\Session;
|
||||
/**
|
||||
* ============================================================================
|
||||
*/
|
||||
/**
|
||||
* 查询网站帮助
|
||||
* @param $pnum 父级记录数
|
||||
* @param $cnum 子记录数
|
||||
*/
|
||||
function WSTHelps($pnum = 5,$cnum = 5){
|
||||
$cats = Db::table('__ARTICLE_CATS__')->where(['catType'=>1, 'dataFlag'=>1, 'isShow' => 1, 'parentId'=>7])
|
||||
->field("catName,catId")->order('catSort asc')->limit($pnum)->select();
|
||||
if(!empty($cats)){
|
||||
foreach($cats as $key =>$v){
|
||||
$cats[$key]['articlecats'] = Db::table('__ARTICLES__')->where(['dataFlag'=>1,'isShow' => 1,'catId'=>$v['catId']])
|
||||
->field("articleId, catId, articleTitle")->order('createTime asc')->limit($cnum)->select();
|
||||
}
|
||||
}
|
||||
return $cats;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取前台菜单
|
||||
*/
|
||||
function WSTHomeMenus($menuType){
|
||||
$m1 = array();
|
||||
if($menuType==1){
|
||||
$m1 = model('home/HomeMenus')->getShopMenus();
|
||||
}else{
|
||||
$m1 = model('home/HomeMenus')->getMenus();
|
||||
}
|
||||
$menuId1 = (int)input("get.homeMenuId");
|
||||
$menus = [];
|
||||
$menus['menus'] = $m1[$menuType];
|
||||
//判断menuId1是否有效
|
||||
if($menuId1==0){
|
||||
$menuId1 = (int)session('WST_MENID'.$menuType);
|
||||
}else{
|
||||
session('WST_MENID'.$menuType,$menuId1);
|
||||
}
|
||||
//检测第一级菜单是否有效
|
||||
$tmpMenuId1 = 0;
|
||||
$isFind = false;
|
||||
foreach ($menus['menus'] as $key => $v){
|
||||
if($tmpMenuId1==0)$tmpMenuId1 = $key;
|
||||
if($key==$menuId1)$isFind = true;
|
||||
}
|
||||
if($isFind){
|
||||
$menus['menuId1'] = $menuId1;
|
||||
}else{
|
||||
$menus['menuId1'] = $tmpMenuId1;
|
||||
}
|
||||
$menus['menuId3'] = session('WST_MENUID3'.$menuType);
|
||||
return $menus;
|
||||
}
|
||||
/**
|
||||
* 获取指定父级的商家店铺分类
|
||||
*/
|
||||
function WSTShopCats($parentId){
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$dbo = Db::table('__SHOP_CATS__')->where(['dataFlag'=>1, 'isShow' => 1,'parentId'=>$parentId,'shopId'=>$shopId]);
|
||||
// return $dbo->field("catName,catId")->order('catSort asc')->select();
|
||||
// mark 20180518 by zl
|
||||
return $dbo->field("catName,catId,provName")->order('catSort asc')->select();
|
||||
}
|
||||
/**
|
||||
* 获取商城搜索关键字
|
||||
*/
|
||||
function WSTSearchKeys(){
|
||||
$keys = WSTConf("CONF.hotWordsSearch");
|
||||
if($keys!='')$keys = explode(',',$keys);
|
||||
return $keys;
|
||||
}
|
||||
/**
|
||||
* 获取首页左侧分类、推荐品牌和广告
|
||||
*/
|
||||
function WSTSideCategorys(){
|
||||
$data = cache('WST_SIDE_CATS');
|
||||
if(!$data){
|
||||
$cats1 = Db::table('__GOODS_CATS__')->where(['dataFlag'=>1, 'isShow' => 1,'parentId'=>0])->field("catName,catId,catImg")->order('catSort asc')->select();
|
||||
if(count($cats1)>0){
|
||||
$ids1 = [];$ids2 = [];$cats2 = [];$cats3 = [];$mcats3 = [];$mcats2 = [];
|
||||
foreach ($cats1 as $key =>$v){
|
||||
$ids1[] = $v['catId'];
|
||||
}
|
||||
$tmp2 = Db::table('__GOODS_CATS__')->where(['dataFlag'=>1, 'isShow' => 1,'parentId'=>['in',$ids1]])->field("catName,catId,parentId,catImg")->order('catSort asc')->select();
|
||||
if(count($tmp2)>0){
|
||||
foreach ($tmp2 as $key =>$v){
|
||||
$ids2[] = $v['catId'];
|
||||
}
|
||||
$tmp3 = Db::table('__GOODS_CATS__')->where(['dataFlag'=>1, 'isShow' => 1,'parentId'=>['in',$ids2]])->field("catName,catId,parentId,catImg")->order('catSort asc')->select();
|
||||
if(count($tmp3)>0){
|
||||
//组装第三级
|
||||
foreach ($tmp3 as $key =>$v){
|
||||
$mcats3[$v['parentId']][] = $v;
|
||||
}
|
||||
}
|
||||
//组装第二级
|
||||
foreach ($tmp2 as $key =>$v){
|
||||
if(isset($mcats3[$v['catId']]))$v['list'] = $mcats3[$v['catId']];
|
||||
$mcats2[$v['parentId']][] = $v;
|
||||
}
|
||||
//组装第一级
|
||||
foreach ($cats1 as $key =>$v){
|
||||
if(isset($mcats2[$v['catId']]))$cats1[$key]['list'] = $mcats2[$v['catId']];
|
||||
}
|
||||
}
|
||||
unset($ids1,$ids2,$cats2,$cats3,$mcats3,$mcats2);
|
||||
}
|
||||
cache('WST_SIDE_CATS',$cats1);
|
||||
return $cats1;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取导航菜单
|
||||
*/
|
||||
function WSTNavigations($navType){
|
||||
$data = cache('WST_NAVS');
|
||||
if(!$data){
|
||||
$rs = Db::table('__NAVS__')->where(['isShow'=>1,'navType'=>$navType])->order('navSort asc')->select();
|
||||
foreach ($rs as $key => $v){
|
||||
if(stripos($v['navUrl'],'https://')===false && stripos($v['navUrl'],'http://')===false){
|
||||
$rs[$key]['navUrl'] = str_replace('/index.php','',\think\Request::instance()->root())."/".$v['navUrl'];
|
||||
}
|
||||
}
|
||||
cache('WST_NAVS',$data);
|
||||
return $rs;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
/**
|
||||
* 根据指定的商品分类获取其路径
|
||||
*/
|
||||
function WSTPathGoodsCat($catId,$data = array()){
|
||||
$rs = Db::table('__GOODS_CATS__')->where(['isShow'=>1,'dataFlag'=>1,'catId'=>$catId])->field("parentId,catName,catId")->find();
|
||||
$data[] = $rs;
|
||||
if($rs['parentId']==0){;
|
||||
krsort($data);
|
||||
return $data;
|
||||
}else{
|
||||
return WSTPathGoodsCat($rs['parentId'],$data);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 处理商家结算信息提示
|
||||
*/
|
||||
function WSTShopMessageBox(){
|
||||
$USER = session('WST_USER');
|
||||
$msg = [];
|
||||
if($USER['shopMoney']<0){
|
||||
$msg[] = '您的账户欠费¥'.$USER['shopMoney'].',请及时充值。';
|
||||
}
|
||||
if(($USER['noSettledOrderFee']+$USER['paymentMoney'])<0 && (($USER['shopMoney']+$USER['noSettledOrderFee']+$USER['paymentMoney'])<0)){
|
||||
$msg[] = '您的账户余额【¥'.$USER['shopMoney'].'】不足以缴纳订单佣金【¥'.(-1*($USER['noSettledOrderFee']+$USER['paymentMoney'])).'】,请及时充值。';
|
||||
}
|
||||
return implode('||',$msg);
|
||||
}
|
||||
/**
|
||||
* 根据商品id,返回是否已关注商品
|
||||
*/
|
||||
function WSTCheckFavorite($goodsId,$type=0){
|
||||
$userId = (int)session('WST_USER.userId');
|
||||
if($userId>0){
|
||||
return model('common/favorites')->checkFavorite($goodsId,$type);
|
||||
}
|
||||
return false;
|
||||
}
|
19
hyhproject/home/conf/config.php
Executable file
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2006~2016 http://thinkphp.cn All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: liu21st <liu21st@gmail.com>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
return [
|
||||
//分页配置
|
||||
'paginate' => [
|
||||
'type' => 'bootstrap',
|
||||
'var_page' => 'p',
|
||||
'list_rows' => 15,
|
||||
],
|
||||
];
|
76
hyhproject/home/controller/Base.php
Executable file
@ -0,0 +1,76 @@
|
||||
<?php
|
||||
namespace wstmart\home\controller;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 基础控制器
|
||||
*/
|
||||
use think\Controller;
|
||||
class Base extends Controller {
|
||||
protected $is_icp = 1;
|
||||
public function __construct(){
|
||||
|
||||
parent::__construct();
|
||||
$this->assign("v",WSTConf('CONF.wstVersion')."_".WSTConf('CONF.wstPCStyleId'));
|
||||
|
||||
hook('homeControllerBase');
|
||||
|
||||
if(WSTConf('CONF.seoMallSwitch')==0){
|
||||
$this->redirect('home/switchs/index');
|
||||
exit;
|
||||
}
|
||||
$this->assign('is_icp',$this->is_icp);
|
||||
}
|
||||
|
||||
protected function fetch($template = '', $vars = [], $replace = [], $config = [])
|
||||
{
|
||||
$style = WSTConf('CONF.wsthomeStyle')?WSTConf('CONF.wsthomeStyle'):'default';
|
||||
$replace['__STYLE__'] = str_replace('/index.php','',\think\Request::instance()->root()).'/hyhproject/home/view/'.WSTConf('CONF.wsthomeStyle');
|
||||
return $this->view->fetch($style."/".$template, $vars, $replace, $config);
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传图片
|
||||
*/
|
||||
public function uploadPic(){
|
||||
return WSTUploadPic(0);
|
||||
}
|
||||
/**
|
||||
* 编辑器上传文件
|
||||
*/
|
||||
public function editorUpload(){
|
||||
return WSTEditUpload(0);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取验证码
|
||||
*/
|
||||
public function getVerify(){
|
||||
WSTVerify();
|
||||
}
|
||||
|
||||
// 登录验证方法--用户
|
||||
protected function checkAuth(){
|
||||
$USER = session('WST_USER');
|
||||
if(empty($USER)){
|
||||
if(request()->isAjax()){
|
||||
die('{"status":-999,"msg":"您还未登录"}');
|
||||
}else{
|
||||
$this->redirect('home/users/login');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
//登录验证方法--商家
|
||||
protected function checkShopAuth(){
|
||||
$USER = session('WST_USER');
|
||||
if(empty($USER) || $USER['userType']!=1){
|
||||
if(request()->isAjax()){
|
||||
die('{"status":-999,"msg":"您还未登录"}');
|
||||
}else{
|
||||
$this->redirect('home/shops/login');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
706
hyhproject/home/controller/Goods.php
Executable file
@ -0,0 +1,706 @@
|
||||
<?php
|
||||
namespace wstmart\home\controller;
|
||||
use wstmart\home\model\Goods as M;
|
||||
use wstmart\common\model\Goods as CM;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 商品控制器
|
||||
*/
|
||||
class Goods extends Base{
|
||||
protected $beforeActionList = [
|
||||
'checkShopAuth' => ['except'=>'search,lists,detail,historybygoods,contrastgoods,contrastdel,contrast']
|
||||
];
|
||||
/**
|
||||
* 批量删除商品
|
||||
*/
|
||||
public function batchDel(){
|
||||
$m = new M();
|
||||
return $m->batchDel();
|
||||
}
|
||||
/**
|
||||
* 修改商品库存/价格
|
||||
*/
|
||||
public function editGoodsBase(){
|
||||
$m = new M();
|
||||
return $m->editGoodsBase();
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改商品状态
|
||||
*/
|
||||
public function changSaleStatus(){
|
||||
$m = new M();
|
||||
return $m->changSaleStatus();
|
||||
}
|
||||
/**
|
||||
* 修改商品店长推荐状态
|
||||
*/
|
||||
public function changStoreRecom(){
|
||||
$m = new M();
|
||||
return $m->changStoreRecom();
|
||||
}
|
||||
/**
|
||||
* 批量修改商品状态 新品/精品/热销/推荐
|
||||
*/
|
||||
public function changeGoodsStatus(){
|
||||
$m = new M();
|
||||
return $m->changeGoodsStatus();
|
||||
}
|
||||
/**
|
||||
* 批量修改商品状态 店长推荐
|
||||
*/
|
||||
public function changeStoreStatus(){
|
||||
$m = new M();
|
||||
return $m->changeStoreStatus();
|
||||
}
|
||||
/**
|
||||
* 批量上(下)架
|
||||
*/
|
||||
public function changeSale(){
|
||||
$m = new M();
|
||||
return $m->changeSale();
|
||||
}
|
||||
/**
|
||||
* 上架商品列表
|
||||
*/
|
||||
public function sale(){
|
||||
return $this->fetch('shops/goods/list_sale');
|
||||
}
|
||||
/**
|
||||
* 获取上架商品列表
|
||||
*/
|
||||
public function saleByPage(){
|
||||
$m = new M();
|
||||
$rs = $m->saleByPage();
|
||||
$rs['status'] = 1;
|
||||
return $rs;
|
||||
}
|
||||
/**
|
||||
* 仓库中商品
|
||||
*/
|
||||
public function store(){
|
||||
return $this->fetch('shops/goods/list_store');
|
||||
}
|
||||
/**
|
||||
* 审核中的商品
|
||||
*/
|
||||
public function audit(){
|
||||
return $this->fetch('shops/goods/list_audit');
|
||||
}
|
||||
/**
|
||||
* 获取审核中的商品
|
||||
*/
|
||||
public function auditByPage(){
|
||||
$m = new M();
|
||||
$rs = $m->auditByPage();
|
||||
$rs['status'] = 1;
|
||||
return $rs;
|
||||
}
|
||||
/**
|
||||
* 获取仓库中的商品
|
||||
*/
|
||||
public function storeByPage(){
|
||||
$m = new M();
|
||||
$rs = $m->storeByPage();
|
||||
$rs['status'] = 1;
|
||||
return $rs;
|
||||
}
|
||||
/**
|
||||
* 违规商品
|
||||
*/
|
||||
public function illegal(){
|
||||
return $this->fetch('shops/goods/list_illegal');
|
||||
}
|
||||
/*
|
||||
* 设置商品特定价格
|
||||
* */
|
||||
public function limitPrice(){
|
||||
$shopId=(int)session('WST_USER.shopId');
|
||||
$where['shopId'] = $shopId;
|
||||
$where['goodsStatus'] = 1;
|
||||
$where['dataFlag'] = 1;
|
||||
$where['isSale'] = 1;
|
||||
if (Request()->isPost()) {
|
||||
$goodsType = input('goodsType');
|
||||
if ($goodsType != '') $where['goodsType'] = (int)$goodsType;
|
||||
$c1Id = (int)input('cat1');
|
||||
$c2Id = (int)input('cat2');
|
||||
$goodsName = input('goodsName');
|
||||
if ($goodsName != '') {
|
||||
$where['goodsName'] = ['like', "%$goodsName%"];
|
||||
}
|
||||
if ($c2Id != 0 && $c1Id != 0) {
|
||||
$where['shopCatId2'] = $c2Id;
|
||||
} else if ($c1Id != 0) {
|
||||
$where['shopCatId1'] = $c1Id;
|
||||
}
|
||||
}
|
||||
$lists=db('goods')->where($where)->field('goodsId,goodsName,goodsType')->select();
|
||||
//dump($lists);
|
||||
if (Request()->isAjax()) {
|
||||
//dump($lists);
|
||||
exit(json_encode(WSTReturn('',1,$lists)));
|
||||
}
|
||||
$this->assign('lists',$lists);
|
||||
return $this->fetch('shops/goods/list_limitprice');
|
||||
}
|
||||
//获取商品货号
|
||||
public function getGoodsProduct(){
|
||||
$goodsId = (int)input('goodsId');
|
||||
$res['specs'] = db('goods_specs')->where(['goodsId'=>$goodsId])->field('productNo,specIds')->select();
|
||||
$res['goods'] = db('goods')->where(['goodsId'=>$goodsId])->field('marketPrice')->find();
|
||||
// dump($res);die;
|
||||
exit(json_encode($res));
|
||||
}
|
||||
|
||||
//获取商品规格
|
||||
public function getGoodsSpecs(){
|
||||
$productNo = input('productNo');
|
||||
$res = db('goods_specs')->where(['productNo'=>$productNo])->field('specIds,marketPrice')->find();
|
||||
$specs = explode(':',$res['specIds']);
|
||||
$data = db('spec_items')->where(['itemId'=>['in',$specs]])->select();
|
||||
$rs['itemName'] = implode(',',array_column($data,'itemName'));
|
||||
$rs['marketPrice'] = $res['marketPrice'];
|
||||
exit(json_encode($rs));
|
||||
|
||||
}
|
||||
/**
|
||||
* 获取违规的商品
|
||||
*/
|
||||
public function illegalByPage(){
|
||||
$m = new M();
|
||||
$rs = $m->illegalByPage();
|
||||
$rs['status'] = 1;
|
||||
return $rs;
|
||||
}
|
||||
/**
|
||||
* 获取已设置限时价格的商品
|
||||
*/
|
||||
public function limitPriceByPage(){
|
||||
$m = new M();
|
||||
$rs = $m->limitPriceByPage();
|
||||
$rs['status'] = 1;
|
||||
return $rs;
|
||||
}
|
||||
/**
|
||||
* 获取指定显示价格的商品的商品
|
||||
*/
|
||||
public function getLimitGoods(){
|
||||
$m = new M();
|
||||
$rs = $m->getLimitGoods();
|
||||
return $rs;
|
||||
}
|
||||
/**
|
||||
* 跳去新增限时价格商品页面
|
||||
*/
|
||||
public function addLimitGoods(){
|
||||
$m = new M();
|
||||
$rs = $m->addLimitGoods();
|
||||
return $rs;
|
||||
}
|
||||
/**
|
||||
* 跳去编辑限时价格商品页面
|
||||
*/
|
||||
public function editLimitGoods(){
|
||||
$m = new M();
|
||||
$rs = $m->editLimitGoods();
|
||||
return $rs;
|
||||
}
|
||||
/**
|
||||
* 删除显示价格商品
|
||||
*/
|
||||
public function delLimitGoods(){
|
||||
$m = new M();
|
||||
$rs = $m->delLimitGoods();
|
||||
return $rs;
|
||||
}
|
||||
/**
|
||||
* 跳去新增页面
|
||||
*/
|
||||
public function add(){
|
||||
$m = new M();
|
||||
$object = $m->getEModel('goods');
|
||||
$shopId=(int)session('WST_USER.shopId');
|
||||
// $object['pay']=db('shop_pay')->where(['shopId'=>$shopId,'status'=>1])->find();
|
||||
// $object['isEct']=0;
|
||||
$object['ectPayRatio'] = db('payments')->where(['payCode'=>'ect'])->value('payRatio');
|
||||
$object['goodsSn'] = WSTGoodsNo();
|
||||
$object['productNo'] = WSTGoodsNo();
|
||||
$object['goodsImg'] = WSTConf('CONF.goodsLogo');
|
||||
$object['ectPay']=0;//db('goods')->alias('g')->join('goods_ectpay ge','ge.goodsId=g.goodsId','left')->value('ectPay');
|
||||
$object['alone'] =0;
|
||||
$object['basicsMoney'] = 0;
|
||||
// $aloneShop = db('alone_shops')->alias('as')->join('__SHOPS__ s','as.shopId=s.shopId')->where(['as.dataFlag'=>'1','as.shopId'=>$shopId])->value('as.shopId');
|
||||
// if($aloneShop){
|
||||
// $object['alone'] =1;
|
||||
// }
|
||||
//dump($object);
|
||||
$data = ['object'=>$object,'src'=>'add'];
|
||||
return $this->fetch('shops/goods/edit',$data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增商品
|
||||
*/
|
||||
public function toAdd(){
|
||||
$m = new M();
|
||||
return $m->add();
|
||||
}
|
||||
|
||||
/**
|
||||
* 跳去编辑页面
|
||||
*/
|
||||
public function edit(){
|
||||
$m = new M();
|
||||
$object = $m->getById(input('get.id'));
|
||||
$shopId=(int)session('WST_USER.shopId');
|
||||
// $object['pay']=db('shop_pay')->where(['shopId'=>$shopId,'status'=>1])->find();
|
||||
// //$object['pay']=1;
|
||||
// if($object['pay']){
|
||||
// $object['isEct']=db('goods_pay')->where('goodsId',$object['goodsId'])->value('ectPay');
|
||||
// //$object['isOnline']=db('goods_pay')->where('goodsId',$object['goodsId'])->value('onlinePay');
|
||||
// }
|
||||
$object['ectPayRatio'] = db('payments')->where(['payCode'=>'ect'])->value('payRatio');
|
||||
if($object['goodsImg']=='')$object['goodsImg'] = WSTConf('CONF.goodsLogo');
|
||||
$object['ectPay']=0;
|
||||
if($object['basicsMoney'] == '') $object['basicsMoney'] = 0;
|
||||
$object['alone'] =0;
|
||||
// $aloneShop = db('alone_shops')->alias('as')->join('__SHOPS__ s','as.shopId=s.shopId')->where(['as.dataFlag'=>'1','as.shopId'=>$shopId])->value('as.shopId');
|
||||
// if($aloneShop){
|
||||
// $object['alone'] =1;
|
||||
// }
|
||||
$data = ['object'=>$object,'src'=>input('src')];
|
||||
return $this->fetch('shops/goods/edit',$data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑商品
|
||||
*/
|
||||
public function toEdit(){
|
||||
$m = new M();
|
||||
return $m->edit();
|
||||
}
|
||||
/**
|
||||
* 删除商品
|
||||
*/
|
||||
public function del(){
|
||||
$m = new M();
|
||||
return $m->del();
|
||||
}
|
||||
/**
|
||||
* 获取商品规格属性
|
||||
*/
|
||||
public function getSpecAttrs(){
|
||||
$m = new M();
|
||||
return $m->getSpecAttrs();
|
||||
}
|
||||
/**
|
||||
* 进行商品搜索
|
||||
*/
|
||||
public function search(){
|
||||
//获取商品记录
|
||||
$m = new M();
|
||||
$data = [];
|
||||
$data['isStock'] = Input('isStock/d');
|
||||
$data['isNew'] = Input('isNew/d');
|
||||
$data['isFreeShipping'] = input('isFreeShipping/d');
|
||||
$data['orderBy'] = Input('orderBy/d');
|
||||
$data['order'] = Input('order/d',1);
|
||||
$data['keyword'] = input('keyword');
|
||||
$data['sprice'] = Input('sprice/d');
|
||||
$data['eprice'] = Input('eprice/d');
|
||||
|
||||
$data['areaId'] = (int)Input('areaId');
|
||||
$aModel = model('home/areas');
|
||||
|
||||
// 获取地区
|
||||
$data['area1'] = $data['area2'] = $data['area3'] = $aModel->listQuery(); // 省级
|
||||
|
||||
// 如果有筛选地区 获取上级地区信息
|
||||
if($data['areaId']!==0){
|
||||
$areaIds = $aModel->getParentIs($data['areaId']);
|
||||
/*
|
||||
2 => int 440000
|
||||
1 => int 440100
|
||||
0 => int 440106
|
||||
*/
|
||||
$selectArea = [];
|
||||
$areaName = '';
|
||||
foreach($areaIds as $k=>$v){
|
||||
$a = $aModel->getById($v);
|
||||
$areaName .=$a['areaName'];
|
||||
$selectArea[] = $a;
|
||||
}
|
||||
// 地区完整名称
|
||||
$selectArea['areaName'] = $areaName;
|
||||
// 当前选择的地区
|
||||
$data['areaInfo'] = $selectArea;
|
||||
|
||||
$data['area2'] = $aModel->listQuery($areaIds[2]); // 广东的下级
|
||||
|
||||
$data['area3'] = $aModel->listQuery($areaIds[1]); // 广州的下级
|
||||
}
|
||||
|
||||
|
||||
$data['goodsPage'] = $m->pageQuery();
|
||||
return $this->fetch("goods_search",$data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取商品列表
|
||||
*/
|
||||
public function lists(){
|
||||
$catId = Input('cat/d');
|
||||
$goodsCatIds = model('GoodsCats')->getParentIs($catId);
|
||||
reset($goodsCatIds);
|
||||
//填充参数
|
||||
$data = [];
|
||||
$data['catId'] = $catId;
|
||||
$data['isStock'] = Input('isStock/d');
|
||||
$data['isNew'] = Input('isNew/d');
|
||||
$data['isFreeShipping'] = input('isFreeShipping/d');
|
||||
$data['orderBy'] = Input('orderBy/d');
|
||||
$data['order'] = Input('order/d',1);
|
||||
$data['sprice'] = Input('sprice');
|
||||
$data['eprice'] = Input('eprice');
|
||||
$data['attrs'] = [];
|
||||
|
||||
$data['areaId'] = (int)Input('areaId');
|
||||
$aModel = model('home/areas');
|
||||
|
||||
// 获取地区
|
||||
$data['area1'] = $data['area2'] = $data['area3'] = $aModel->listQuery(); // 省级
|
||||
|
||||
// 如果有筛选地区 获取上级地区信息
|
||||
if($data['areaId']!==0){
|
||||
$areaIds = $aModel->getParentIs($data['areaId']);
|
||||
/*
|
||||
2 => int 440000
|
||||
1 => int 440100
|
||||
0 => int 440106
|
||||
*/
|
||||
$selectArea = [];
|
||||
$areaName = '';
|
||||
foreach($areaIds as $k=>$v){
|
||||
$a = $aModel->getById($v);
|
||||
$areaName .=$a['areaName'];
|
||||
$selectArea[] = $a;
|
||||
}
|
||||
// 地区完整名称
|
||||
$selectArea['areaName'] = $areaName;
|
||||
// 当前选择的地区
|
||||
$data['areaInfo'] = $selectArea;
|
||||
|
||||
$data['area2'] = $aModel->listQuery($areaIds[2]); // 广东的下级
|
||||
|
||||
$data['area3'] = $aModel->listQuery($areaIds[1]); // 广州的下级
|
||||
}
|
||||
|
||||
$vs = input('vs');
|
||||
$vs = ($vs!='')?explode(',',$vs):[];
|
||||
foreach ($vs as $key => $v){
|
||||
if($v=='' || $v==0)continue;
|
||||
$v = (int)$v;
|
||||
$data['attrs']['v_'.$v] = input('v_'.$v);
|
||||
}
|
||||
$data['vs'] = $vs;
|
||||
|
||||
$brandIds = Input('brand');
|
||||
|
||||
|
||||
$bgIds = [];// 品牌下的商品Id
|
||||
if(!empty($vs)){
|
||||
// 存在筛选条件,取出符合该条件的商品id,根据商品id获取可选品牌
|
||||
$goodsId = model('goods')->filterByAttributes();
|
||||
$data['brandFilter'] = model('Brands')->canChoseBrands($goodsId);
|
||||
}else{
|
||||
// 取出分类下包含商品的品牌
|
||||
$data['brandFilter'] = model('Brands')->goodsListQuery((int)current($goodsCatIds));
|
||||
}
|
||||
if(!empty($brandIds))$bgIds = model('Brands')->getGoodsIds($brandIds);
|
||||
|
||||
|
||||
|
||||
|
||||
$data['price'] = Input('price');
|
||||
//封装当前选中的值
|
||||
$selector = [];
|
||||
//处理品牌
|
||||
$brandIds = explode(',',$brandIds);
|
||||
$bIds = $brandNames = [];
|
||||
foreach($brandIds as $bId){
|
||||
if($bId>0){
|
||||
foreach ($data['brandFilter'] as $key =>$v){
|
||||
if($v['brandId']==$bId){
|
||||
array_push($bIds, $v['brandId']);
|
||||
array_push($brandNames, $v['brandName']);
|
||||
}
|
||||
}
|
||||
$selector[] = ['id'=>join(',',$bIds),'type'=>'brand','label'=>"品牌","val"=>join('、',$brandNames)];
|
||||
}
|
||||
}
|
||||
// 当前是否有品牌筛选
|
||||
if(!empty($selector)){
|
||||
$_s[] = $selector[count($selector)-1];
|
||||
$selector = $_s;
|
||||
unset($data['brandFilter']);
|
||||
}
|
||||
$data['brandId'] = Input('brand');
|
||||
|
||||
//处理价格
|
||||
if($data['sprice']!='' && $data['eprice']!=''){
|
||||
$selector[] = ['id'=>0,'type'=>'price','label'=>"价格","val"=>$data['sprice']."-".$data['eprice']];
|
||||
}
|
||||
if($data['sprice']!='' && $data['eprice']==''){
|
||||
$selector[] = ['id'=>0,'type'=>'price','label'=>"价格","val"=>$data['sprice']."以上"];
|
||||
}
|
||||
if($data['sprice']=='' && $data['eprice']!=''){
|
||||
$selector[] = ['id'=>0,'type'=>'price','label'=>"价格","val"=>"0-".$data['eprice']];
|
||||
}
|
||||
//处理已选属性
|
||||
$goodsFilter = model('Attributes')->listQueryByFilter($catId);
|
||||
$ngoodsFilter = [];
|
||||
if(!empty($vs)){
|
||||
// 存在筛选条件,取出符合该条件的商品id,根据商品id获取可选属性进行拼凑
|
||||
$goodsId = model('goods')->filterByAttributes();
|
||||
// 如果同时有筛选品牌,则与品牌下的商品Id取交集
|
||||
if(!empty($bgIds))$goodsId = array_intersect($bgIds,$goodsId);
|
||||
|
||||
|
||||
$attrs = model('Attributes')->getAttribute($goodsId);
|
||||
// 去除已选择属性
|
||||
foreach ($attrs as $key =>$v){
|
||||
if(!in_array($v['attrId'],$vs))$ngoodsFilter[] = $v;
|
||||
}
|
||||
}else{
|
||||
if(!empty($bgIds))$goodsFilter = model('Attributes')->getAttribute($bgIds);// 存在品牌筛选
|
||||
// 当前无筛选条件,取出分类下所有属性
|
||||
foreach ($goodsFilter as $key =>$v){
|
||||
if(!in_array($v['attrId'],$vs))$ngoodsFilter[] = $v;
|
||||
}
|
||||
}
|
||||
if(count($vs)>0){
|
||||
$_vv = [];
|
||||
$_attrArr = [];
|
||||
foreach ($goodsFilter as $key =>$v){
|
||||
if(in_array($v['attrId'],$vs)){
|
||||
foreach ($v['attrVal'] as $key2 =>$vv){
|
||||
if(strstr(input('v_'.$v['attrId']),$vv)!==false){
|
||||
array_push($_vv, $vv);
|
||||
$_attrArr[$v['attrId']]['attrName'] = $v['attrName'];
|
||||
$_attrArr[$v['attrId']]['val'] = $_vv;
|
||||
}
|
||||
}
|
||||
$_vv = [];
|
||||
}
|
||||
}
|
||||
foreach($_attrArr as $k1=>$v1){
|
||||
$selector[] = ['id'=>$k1,'type'=>'v_'.$k1,'label'=>$v1['attrName'],"val"=>join('、',$v1['val'])];
|
||||
}
|
||||
}
|
||||
$data['selector'] = $selector;
|
||||
$data['goodsFilter'] = $ngoodsFilter;
|
||||
//获取商品记录
|
||||
$m = new M();
|
||||
$data['priceGrade'] = $m->getPriceGrade($goodsCatIds);
|
||||
$data['goodsPage'] = $m->pageQuery($goodsCatIds);
|
||||
$catPaths = model('goodsCats')->getParentNames($catId);
|
||||
$data['catNamePath'] = '全部商品分类';
|
||||
if(!empty($catPaths))$data['catNamePath'] = implode(' - ',$catPaths);
|
||||
// 商品分类下级
|
||||
$where = ['parentId'=>0,'dataFlag'=>1];
|
||||
if($catId!='')$where['parentId']=$catId;
|
||||
$goodsCats = model('goodsCats')->field('catId,catName')->where($where)->select();
|
||||
$this->assign('goodsCats',$goodsCats);
|
||||
return $this->fetch("goods_list",$data);
|
||||
}
|
||||
/**
|
||||
* 查看商品详情
|
||||
*/
|
||||
public function detail(){
|
||||
$m = new M();
|
||||
$goods = $m->getBySale(input('id/d',0));
|
||||
$key=input('key');
|
||||
if(!empty($goods)){
|
||||
//判断是否药品
|
||||
$goods_cat=strpos($goods['goodsCatIdPath'],'389');
|
||||
if($goods_cat!==false && $key==''){
|
||||
return $this->fetch("error_lost");
|
||||
}
|
||||
if((int)session('WST_USER.userId')!=""){
|
||||
$history_data['userId']=(int)session('WST_USER.userId');
|
||||
$history_data['goodsId']=$goods['goodsId'];
|
||||
$history_data['path']='1';
|
||||
$history_data['create_time']=time();
|
||||
$result=db('page_view')->insert($history_data);
|
||||
}
|
||||
$history = cookie("history_goods");
|
||||
$history = is_array($history)?$history:[];
|
||||
array_unshift($history, (string)$goods['goodsId']);
|
||||
$history = array_values(array_unique($history));
|
||||
|
||||
if(!empty($history)){
|
||||
cookie("history_goods",$history,25920000);
|
||||
}
|
||||
// 商品详情延迟加载
|
||||
$goods['goodsDesc']=htmlspecialchars_decode($goods['goodsDesc']);
|
||||
//修改匹配规则 适应oss 地址 mark 20180615 by zl
|
||||
// $rule = '/<img src="\/(upload.*?)"/';
|
||||
$rule = '/<img src=".*?\/(upload.*?)"/';
|
||||
preg_match_all($rule, $goods['goodsDesc'], $images);
|
||||
foreach($images[0] as $k=>$v){
|
||||
//mark by cheng商品详情换成远程oss图片20180313
|
||||
//$goods['goodsDesc'] = str_replace($v, "<img class='goodsImg' data-original=\"__ROOT__/".WSTImg($images[1][$k],3)."\"", $goods['goodsDesc']);
|
||||
$goods['goodsDesc'] = str_replace($v, "<img class='goodsImg' data-original=\"__IMGURL__/".WSTImg($images[1][$k],0)."\"", $goods['goodsDesc']);
|
||||
|
||||
}
|
||||
hook('afterGetGoods',['params'=>&$goods]);
|
||||
$goods['is_seckilling']=isset($goods['is_seckilling'])?$goods['is_seckilling']:0;
|
||||
$this->assign('goods',$goods);
|
||||
$this->assign('shop',$goods['shop']);
|
||||
return $this->fetch("goods_detail");
|
||||
}else{
|
||||
return $this->fetch("error_lost");
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 预警库存
|
||||
*/
|
||||
public function stockwarnbypage(){
|
||||
return $this->fetch("shops/stockwarn/list");
|
||||
}
|
||||
/**
|
||||
* 获取预警库存列表
|
||||
*/
|
||||
public function stockByPage(){
|
||||
$m = new M();
|
||||
$rs = $m->stockByPage();
|
||||
$rs['status'] = 1;
|
||||
return $rs;
|
||||
}
|
||||
/**
|
||||
* 修改预警库存
|
||||
*/
|
||||
public function editwarnStock(){
|
||||
$m = new M();
|
||||
return $m->editwarnStock();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取商品浏览记录
|
||||
*/
|
||||
public function historyByGoods(){
|
||||
$rs = model('Tags')->historyByGoods(8);
|
||||
return WSTReturn('',1,$rs);
|
||||
}
|
||||
/**
|
||||
* 记录对比商品
|
||||
*/
|
||||
public function contrastGoods(){
|
||||
$id = (int)input('post.id');
|
||||
$contras = cookie("contras_goods");
|
||||
if($id>0){
|
||||
$m = new M();
|
||||
$goods = $m->getBySale($id);
|
||||
$catId = explode('_',$goods['goodsCatIdPath']);
|
||||
$catId = $catId[0];
|
||||
if(isset($contras['catId']) && $catId!=$contras['catId'])return WSTReturn('请选择同分类对比',-1);
|
||||
if(isset($contras['list']) && count($contras['list'])>3)return WSTReturn('对比栏已满',-1);
|
||||
if(!isset($contras['catId']))$contras['catId'] = $catId;
|
||||
$contras['list'][$id] = $id;
|
||||
cookie("contras_goods",$contras,25920000);
|
||||
}
|
||||
if(isset($contras['list'])){
|
||||
$m = new M();
|
||||
$list = [];
|
||||
foreach($contras['list'] as $k=>$v){
|
||||
$list[] = $m->getBySale($v);
|
||||
}
|
||||
return WSTReturn('',1,$list);
|
||||
}else{
|
||||
return WSTReturn('',1);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 删除对比商品
|
||||
*/
|
||||
public function contrastDel(){
|
||||
$id = (int)input('post.id');
|
||||
$contras = cookie("contras_goods");
|
||||
if($id>0 && isset($contras['list'])){
|
||||
unset($contras['list'][$id]);
|
||||
cookie("contras_goods",$contras,25920000);
|
||||
}else{
|
||||
cookie("contras_goods", null);
|
||||
}
|
||||
return WSTReturn('删除成功',1);
|
||||
}
|
||||
/**
|
||||
* 商品对比
|
||||
*/
|
||||
public function contrast(){
|
||||
$contras = cookie("contras_goods");
|
||||
$list = [];
|
||||
$list = $lists= $saleSpec = $shop = $score = $brand = $spec = [];
|
||||
if(isset($contras['list'])){
|
||||
$m = new M();
|
||||
foreach($contras['list'] as $key=>$value){
|
||||
$dara = $m->getBySale($value);
|
||||
if(isset($dara['saleSpec'])){
|
||||
foreach($dara['saleSpec'] as $ks=>$vs){
|
||||
if($vs['isDefault']==1){
|
||||
$dara['defaultSpec'] = $vs;
|
||||
$dara['defaultSpec']['ids'] = explode(':',$ks);
|
||||
}
|
||||
}
|
||||
$saleSpec[$value] = $dara['saleSpec'];
|
||||
}
|
||||
$list[] = $dara;
|
||||
}
|
||||
//第一个商品信息
|
||||
$goods = $list[0];
|
||||
//对比处理
|
||||
$shops['identical'] = $scores['identical'] = $brands['identical'] = 1;
|
||||
foreach($list as $k=>$v){
|
||||
$shop[$v['goodsId']] = $v['shop']['shopName'];
|
||||
if($goods['shop']['shopId']!=$v['shop']['shopId'])$shops['identical'] = 0;
|
||||
$score[$v['goodsId']] = $v['scores']['totalScores'];
|
||||
if($goods['scores']['totalScores']!=$v['scores']['totalScores'])$scores['identical'] = 0;
|
||||
$brand[$v['goodsId']] = $v['brandName'];
|
||||
if($goods['brandId']!=$v['brandId'])$brands['identical'] = 0;
|
||||
if(isset($v['spec'])){
|
||||
foreach($v['spec'] as $k2=>$v2){
|
||||
$spec[$k2]['identical'] = 0;
|
||||
$spec[$k2]['type'] = 'spec';
|
||||
$spec[$k2]['name'] = $v2['name'];
|
||||
$spec[$k2]['catId'] = $k2;
|
||||
foreach($v2['list'] as $ks22=>$vs22){
|
||||
$v['spec'][$k2]['list'][$ks22]['isDefault'] = (in_array($vs22['itemId'],$v['defaultSpec']['ids']))?1:0;
|
||||
}
|
||||
$spec[$k2]['info'][$v['goodsId']] = $v['spec'][$k2];
|
||||
}
|
||||
}
|
||||
}
|
||||
$shops['name'] = '店铺';
|
||||
$shops['type'] = 'shop';
|
||||
$shops['info'] = $shop;
|
||||
$lists[] = $shops;
|
||||
$scores['name'] = '商品评分';
|
||||
$scores['type'] = 'score';
|
||||
$scores['info'] = $score;
|
||||
$lists[] = $scores;
|
||||
$brands['name'] = '品牌';
|
||||
$brands['type'] = 'brand';
|
||||
$brands['info'] = $brand;
|
||||
$lists[] = $brands;
|
||||
foreach($spec as $k3=>$v3){
|
||||
$lists[] = $v3;
|
||||
}
|
||||
}
|
||||
$data['list'] = $list;
|
||||
$data['lists'] = $lists;
|
||||
$data['saleSpec'] = $saleSpec;
|
||||
$this->assign('data',$data);
|
||||
return $this->fetch("goods_contrast");
|
||||
}
|
||||
}
|
18
hyhproject/home/controller/Goodscats.php
Executable file
@ -0,0 +1,18 @@
|
||||
<?php
|
||||
namespace wstmart\home\controller;
|
||||
use wstmart\common\model\GoodsCats as M;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 商品分类控制器
|
||||
*/
|
||||
class Goodscats extends Base{
|
||||
/**
|
||||
* 获取列表
|
||||
*/
|
||||
public function listQuery(){
|
||||
$m = new M();
|
||||
$rs = $m->listQuery(input('parentId/d',0));
|
||||
return WSTReturn("", 1,$rs);
|
||||
}
|
||||
|
||||
}
|
72
hyhproject/home/controller/Index.php
Executable file
@ -0,0 +1,72 @@
|
||||
<?php
|
||||
namespace wstmart\home\controller;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 默认控制器
|
||||
*/
|
||||
class Index extends Base{
|
||||
protected $beforeActionList = [
|
||||
'checkAuth' => ['only'=>'getsysmessages']
|
||||
];
|
||||
public function index(){
|
||||
$pay['needPay'] =200;
|
||||
$userId=1;//$this->getUserId()
|
||||
//产品券
|
||||
$buyerMaxProductScale = round(dataConf('buyerMaxProductScale')*0.01,2);
|
||||
$pay['maxProduct'] = $pay['needPay'] * $buyerMaxProductScale;//最大可用产品券
|
||||
$pay['productHandlingFee'] = round(dataConf('useHasProductHandlingFee')*0.01,2);//产品券手续费
|
||||
$pay['productTaxFee'] = round(dataConf('useHasProductTaxFee')*0.01,2);//产品券税费
|
||||
$pay['maxAllProduct'] = $this->getMaxNum($pay['maxProduct'],(1-$pay['productHandlingFee']-$pay['productTaxFee'] ));//加上手续费,税费最多扣除产品券
|
||||
|
||||
//优惠券
|
||||
$pay['maxCoupons'] = $pay['needPay'] - $pay['maxProduct'] ;//最大可用其他券,优惠券+旺旺券+现金券
|
||||
$pay['coupousHandlingFee'] = round(dataConf('useHasCoupousHandlingFee')*0.01,2);//优惠券手续费
|
||||
$pay['coupousTaxFee'] = round(dataConf('useHasCoupousTaxFee')*0.01,2);//优惠券税费
|
||||
$pay['maxAllCoupons'] = $this->getMaxNum($pay['maxCoupons'],(1-$pay['coupousHandlingFee']-$pay['coupousTaxFee'] ));//加上手续费,税费最多扣除优惠券
|
||||
|
||||
$pay['money']['useMoney'] = 0;
|
||||
$pay['wang']['useWang'] = 0;
|
||||
//实际应用最大的产品券
|
||||
$userInfo = getUserInfo(['userId'=>$userId],'couponsNum,productNum,wangNum');
|
||||
$pay['product']['useProduct'] = $userInfo['productNum'] >= $pay['maxAllProduct'] ? $pay['maxAllProduct'] : $userInfo['productNum'];
|
||||
$pay['product']['useProductHandlingFee'] = $pay['product']['useProduct'] * $pay['productHandlingFee'];//产品券手续费
|
||||
$pay['product']['useProductTaxFee'] = $pay['product']['useProduct'] * $pay['productTaxFee'];
|
||||
$pay['product']['useProductOk'] = $pay['product']['useProduct'] - $pay['product']['useProductHandlingFee'] - $pay['product']['useProductTaxFee'];
|
||||
|
||||
//实际应用最大的优惠券
|
||||
$pay['coupons']['useCoupons'] = $userInfo['couponsNum'] >= $pay['maxAllCoupons'] ? $pay['maxAllCoupons'] : $userInfo['couponsNum'];
|
||||
$pay['coupons']['useCouponsHandlingFee'] = round($pay['coupons']['useCoupons'] * $pay['coupousHandlingFee'],2);//产品券手续费
|
||||
$pay['coupons']['useCouponsTaxFee'] = round($pay['coupons']['useCoupons'] * $pay['coupousTaxFee'],2);
|
||||
$pay['coupons']['useCouponsOk'] = $pay['coupons']['useCoupons'] - $pay['coupons']['useCouponsHandlingFee'] - $pay['coupons']['useCouponsTaxFee'];
|
||||
$remNum = $pay['needPay'] - $pay['product']['useProduct'] - $pay['coupons']['useCouponsHandlingFee'];
|
||||
if($remNum > 0 ){
|
||||
//旺旺券
|
||||
$pay['wang']['useWang'] = $userInfo['wangNum'] >= $remNum ? $remNum : $userInfo['wangNum'];
|
||||
$remNum = $pay['needPay'] - $pay['product']['useProduct'] - $pay['coupons']['useCouponsHandlingFee']-$pay['wang']['useWang'];
|
||||
if($remNum > 0 ){
|
||||
$pay['money']['useMoney'] = $remNum;
|
||||
}
|
||||
}
|
||||
|
||||
// dump($pay);
|
||||
|
||||
return $this->fetch('index');
|
||||
}
|
||||
/**
|
||||
* 获取除去比例的最大值
|
||||
* @param [type] $num [description]
|
||||
* @param [type] $scale [description]
|
||||
* @return [type] [description]
|
||||
*/
|
||||
private function getMaxNum($num,$scale){
|
||||
return round($num/$scale,2);
|
||||
}
|
||||
/**
|
||||
* 保存目录ID
|
||||
*/
|
||||
public function getMenuSession(){
|
||||
$menuId = input("post.menuId");
|
||||
$menuType = session('WST_USER.loginTarget');
|
||||
session('WST_MENUID3'.$menuType,$menuId);
|
||||
}
|
||||
}
|
98
hyhproject/home/controller/Shopcats.php
Executable file
@ -0,0 +1,98 @@
|
||||
<?php
|
||||
namespace wstmart\home\controller;
|
||||
use wstmart\common\model\ShopCats as M;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 门店分类控制器
|
||||
*/
|
||||
class Shopcats extends Base{
|
||||
protected $beforeActionList = ['checkShopAuth'];
|
||||
|
||||
/**
|
||||
* 列表
|
||||
*/
|
||||
public function index(){
|
||||
$m = new M();
|
||||
$list = $m->getCatAndChild(session('WST_USER.shopId'),input('post.parentId/d'));
|
||||
// mark 添加省份 20180518 by zl
|
||||
$areas = $m->getAreas();
|
||||
$this->assign('areas',$areas);
|
||||
// 判断是否是自营 如果是自营就显示省份
|
||||
$shopId = (int)session('WST_USER.shopId');;
|
||||
$this->assign('shopId',$shopId);
|
||||
// end
|
||||
$this->assign('list',$list);
|
||||
return $this->fetch("shops/shopcats/list");
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改名称
|
||||
*/
|
||||
public function editName(){
|
||||
$m = new M();
|
||||
$rs = array();
|
||||
if(input('post.id/d')>0){
|
||||
$rs = $m->editName();
|
||||
}
|
||||
return $rs;
|
||||
}
|
||||
/**
|
||||
* 修改排序
|
||||
*/
|
||||
public function editSort(){
|
||||
$m = new M();
|
||||
$rs = array();
|
||||
if(input('post.id/d')>0){
|
||||
$rs = $m->editSort();
|
||||
}
|
||||
return $rs;
|
||||
}
|
||||
/**
|
||||
* 批量保存商品分类
|
||||
*/
|
||||
public function batchSaveCats(){
|
||||
$m = new M();
|
||||
$rs = $m->batchSaveCats();
|
||||
return $rs;
|
||||
}
|
||||
/**
|
||||
* 删除操作
|
||||
*/
|
||||
public function del(){
|
||||
$m = new M();
|
||||
$rs = $m->del();
|
||||
return $rs;
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
*/
|
||||
public function listQuery(){
|
||||
$m = new M();
|
||||
$list = $m->listQuery((int)session('WST_USER.shopId'),input('post.parentId/d'));
|
||||
$rs = array();
|
||||
$rs['status'] = 1;
|
||||
$rs['list'] = $list;
|
||||
return $rs;
|
||||
}
|
||||
|
||||
public function changeCatStatus(){
|
||||
$m = new M();
|
||||
$rs = $m->changeCatStatus();
|
||||
return $rs;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 设置分类特产省份 mark 20180515
|
||||
*/
|
||||
public function setSpecial(){
|
||||
$m = new M();
|
||||
$rs = $m->setSpecial();
|
||||
return $rs;
|
||||
}
|
||||
|
||||
}
|
31
hyhproject/home/controller/Shopconfigs.php
Executable file
@ -0,0 +1,31 @@
|
||||
<?php
|
||||
namespace wstmart\home\controller;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 门店配置控制器
|
||||
*/
|
||||
class Shopconfigs extends Base{
|
||||
protected $beforeActionList = ['checkShopAuth'];
|
||||
/**
|
||||
* 店铺设置
|
||||
*/
|
||||
public function toShopCfg(){
|
||||
//获取商品信息
|
||||
$m = model('ShopConfigs');
|
||||
$this->assign('object',$m->getShopCfg((int)session('WST_USER.shopId')));
|
||||
return $this->fetch('shops/shopconfigs/shop_cfg');
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增/修改 店铺设置
|
||||
*/
|
||||
public function editShopCfg(){
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$m = model('ShopConfigs');
|
||||
if($shopId>0){
|
||||
$rs = $m->editShopCfg($shopId);
|
||||
}
|
||||
return $rs;
|
||||
}
|
||||
|
||||
}
|
38
hyhproject/home/controller/Shopfreights.php
Executable file
@ -0,0 +1,38 @@
|
||||
<?php
|
||||
namespace wstmart\home\controller;
|
||||
use wstmart\home\model\ShopFreights as M;
|
||||
use wstmart\home\model\Areas;
|
||||
use wstmart\home\model\Shops;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 运费控制器
|
||||
*/
|
||||
class Shopfreights extends Base{
|
||||
protected $beforeActionList = ['checkShopAuth'];
|
||||
/**
|
||||
* 查看运费设置
|
||||
*/
|
||||
public function index(){
|
||||
$shops = new Shops();
|
||||
$shopId = session('WST_USER.shopId');
|
||||
$shFreight = $shops->getShopsFreight($shopId);
|
||||
$this->assign('shFreight',$shFreight);//默认运费
|
||||
return $this->fetch('shops/freights/list');
|
||||
}
|
||||
/**
|
||||
* 运费列表
|
||||
*/
|
||||
public function listProvince(){
|
||||
$m = new M();
|
||||
return $m->listProvince();
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*/
|
||||
public function edit(){
|
||||
$m = new M();
|
||||
$rs = $m->edit();
|
||||
return $rs;
|
||||
}
|
||||
}
|
74
hyhproject/home/controller/Shoproles.php
Executable file
@ -0,0 +1,74 @@
|
||||
<?php
|
||||
namespace wstmart\home\controller;
|
||||
use wstmart\home\model\ShopRoles as M;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 门店角色控制器
|
||||
*/
|
||||
class Shoproles extends Base{
|
||||
protected $beforeActionList = ['checkShopAuth'];
|
||||
|
||||
/**
|
||||
* 列表
|
||||
*/
|
||||
public function index(){
|
||||
$m = new M();
|
||||
$list = $m->pageQuery();
|
||||
$this->assign('list',$list);
|
||||
return $this->fetch("shops/shoproles/list");
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询
|
||||
*/
|
||||
public function pageQuery(){
|
||||
$m = new M();
|
||||
return $m->pageQuery();
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增角色
|
||||
*/
|
||||
public function add(){
|
||||
$m = new M();
|
||||
$object = $m->getEModel('shop_roles');
|
||||
$data = ['object'=>$object];
|
||||
return $this->fetch('shops/shoproles/edit',$data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增角色
|
||||
*/
|
||||
public function toAdd(){
|
||||
$m = new M();
|
||||
return $m->add();
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改角色
|
||||
*/
|
||||
public function edit(){
|
||||
$m = new M();
|
||||
$object = $m->getById((int)input('get.id'));
|
||||
$data = ['object'=>$object];
|
||||
return $this->fetch('shops/shoproles/edit',$data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改角色
|
||||
*/
|
||||
public function toEdit(){
|
||||
$m = new M();
|
||||
return $m->edit();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除操作
|
||||
*/
|
||||
public function del(){
|
||||
$m = new M();
|
||||
$rs = $m->del();
|
||||
return $rs;
|
||||
}
|
||||
|
||||
}
|
357
hyhproject/home/controller/Shops.php
Executable file
@ -0,0 +1,357 @@
|
||||
<?php
|
||||
namespace wstmart\home\controller;
|
||||
use wstmart\home\model\Goods;
|
||||
use wstmart\common\model\GoodsCats;
|
||||
use think\Loader;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 门店控制器
|
||||
*/
|
||||
|
||||
class Shops extends Base{
|
||||
protected $beforeActionList = [
|
||||
'checkShopAuth' => ['only'=>'editinfo,getshopmoney'],
|
||||
'checkAuth'=>['only'=>'join,joinstep1,joinstep2,savestep2,joinstep3,savestep3,joinstep4,savestep4,joinstep5,savestep5,joinsuccess']
|
||||
];
|
||||
/**
|
||||
* 店铺公告页
|
||||
*/
|
||||
public function notice(){
|
||||
$notice = model('shops')->getNotice();
|
||||
$this->assign('notice',$notice);
|
||||
return $this->fetch('shops/shops/notice');
|
||||
}
|
||||
/**
|
||||
* 修改店铺公告
|
||||
*/
|
||||
public function editNotice(){
|
||||
$s = model('shops');
|
||||
return $s->editNotice();
|
||||
}
|
||||
/**
|
||||
* 商家登录
|
||||
*/
|
||||
public function login(){
|
||||
$USER = session('WST_USER');
|
||||
if(!empty($USER) && isset($USER['shopId'])){
|
||||
$this->redirect("shops/index");
|
||||
}
|
||||
$loginName = cookie("loginName");
|
||||
if(!empty($loginName)){
|
||||
$this->assign('loginName',cookie("loginName"));
|
||||
}else{
|
||||
$this->assign('loginName','');
|
||||
}
|
||||
return $this->fetch('shop_login');
|
||||
}
|
||||
/**
|
||||
* 商家中心
|
||||
*/
|
||||
public function index(){
|
||||
session('WST_MENID1',null);
|
||||
session('WST_MENUID31',null);
|
||||
$s = model('shops');
|
||||
$data = $s->getShopSummary((int)session('WST_USER.shopId'));
|
||||
$this->assign('data',$data);
|
||||
return $this->fetch('shops/index');
|
||||
}
|
||||
/**
|
||||
* 店铺街
|
||||
*/
|
||||
public function shopStreet(){
|
||||
$g = new GoodsCats();
|
||||
$goodsCats = $g->listQuery(0);
|
||||
$this->assign('goodscats',$goodsCats);
|
||||
//店铺街列表
|
||||
$s = model('shops');
|
||||
$pagesize = 10;
|
||||
$selectedId = input("get.id/d");
|
||||
$this->assign('selectedId',$selectedId);
|
||||
$list = $s->pageQuery($pagesize);
|
||||
$this->assign('list',$list);
|
||||
$this->assign('keyword',input('keyword'));
|
||||
$this->assign('keytype',1);
|
||||
return $this->fetch('shop_street');
|
||||
}
|
||||
/**
|
||||
* 店铺详情
|
||||
*/
|
||||
public function home(){
|
||||
$shopId = (int)input("param.shopId/d");
|
||||
hook("homeBeforeGoShopHome",["shopId"=>$shopId]);
|
||||
hook("goShopAfterAddView",["shopId"=>$shopId,'path'=>1]);
|
||||
$s = model('shops');
|
||||
$data['shop'] = $s->getShopInfo($shopId);
|
||||
$ct1 = input("param.ct1/d",0);
|
||||
$ct2 = input("param.ct2/d",0);
|
||||
$goodsName = input("param.goodsName");
|
||||
if(1778 != $shopId && !empty($this->is_icp)) return $this->fetch('error_lost');
|
||||
if(($data['shop']['shopId']==1 || $shopId==0) && $ct1==0 && !isset($goodsName)){
|
||||
$params = input();
|
||||
unset($params["shopId"]);
|
||||
$this->redirect(Url('home/shops/selfShop'),$params);
|
||||
}
|
||||
if(empty($data['shop']))return $this->fetch('error_lost');
|
||||
$data['shopcats'] = $f = model('ShopCats','model')->getShopCats($shopId);
|
||||
$g = model('goods');
|
||||
$data['list'] = $g->shopGoods($shopId);
|
||||
//dump($data['list']);die;
|
||||
$this->assign('msort',input("param.msort/d",0));//筛选条件
|
||||
$this->assign('mdesc',input("param.mdesc/d",1));//升降序
|
||||
$this->assign('sprice',input("param.sprice"));//价格范围
|
||||
$this->assign('eprice',input("param.eprice"));
|
||||
$this->assign('ct1',$ct1);//一级分类
|
||||
$this->assign('ct2',$ct2);//二级分类
|
||||
$this->assign('goodsName',urldecode($goodsName));//搜索
|
||||
$this->assign('data',$data);
|
||||
|
||||
return $this->fetch('shop_home');
|
||||
}
|
||||
|
||||
/**
|
||||
* 店铺分类
|
||||
*/
|
||||
public function cat(){
|
||||
$s = model('shops');
|
||||
$shopId = (int)input("param.shopId/d");
|
||||
$data['shop'] = $s->getShopInfo($shopId);
|
||||
|
||||
$ct1 = input("param.ct1/d",0);
|
||||
$ct2 = input("param.ct2/d",0);
|
||||
$goodsName = input("param.goodsName");
|
||||
if(($data['shop']['shopId']==1 || $shopId==0) && $ct1==0 && !isset($goodsName)){
|
||||
$params = input();
|
||||
unset($params["shopId"]);
|
||||
$this->redirect('shops/selfShop',$params);
|
||||
}
|
||||
if(empty($data['shop']))return $this->fetch('error_lost');
|
||||
$data['shopcats'] = $f = model('ShopCats','model')->getShopCats($shopId);
|
||||
$g = model('goods');
|
||||
$data['list'] = $g->shopGoods($shopId);
|
||||
$this->assign('msort',input("param.msort/d",0));//筛选条件
|
||||
$this->assign('mdesc',input("param.mdesc/d",1));//升降序
|
||||
$this->assign('sprice',input("param.sprice"));//价格范围
|
||||
$this->assign('eprice',input("param.eprice"));
|
||||
$this->assign('ct1',$ct1);//一级分类
|
||||
$this->assign('ct2',$ct2);//二级分类
|
||||
$this->assign('goodsName',urldecode($goodsName));//搜索
|
||||
$this->assign('data',$data);
|
||||
return $this->fetch('shop_home');
|
||||
}
|
||||
|
||||
/**
|
||||
* 查看店铺设置
|
||||
*/
|
||||
public function info(){
|
||||
$s = model('shops');
|
||||
$object = $s->getByView((int)session('WST_USER.shopId'));
|
||||
$bankList= model('banks')->listQuery();
|
||||
$this->assign('bankList',$bankList);
|
||||
$this->assign('object',$object);
|
||||
return $this->fetch('shops/shops/view');
|
||||
}
|
||||
/**
|
||||
* 自营店铺
|
||||
*/
|
||||
public function selfShop(){
|
||||
hook("homeBeforeGoSelfShop",["shopId"=>1]);
|
||||
$s = model('shops');
|
||||
$data['shop'] = $s->getShopInfo(1);
|
||||
if(empty($data['shop']))return $this->fetch('error_lost');
|
||||
$this->assign('selfShop',1);
|
||||
$data['shopcats'] = model('ShopCats')->getShopCats(1);
|
||||
$this->assign('goodsName',urldecode(input("param.goodsName")));//搜索
|
||||
// 店长推荐
|
||||
$data['rec'] = $s->getRecGoods('rec',6);
|
||||
// 热销商品
|
||||
$data['hot'] = $s->getRecGoods('hot',6);
|
||||
$this->assign('data',$data);
|
||||
return $this->fetch('self_shop');
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑店铺资料
|
||||
*/
|
||||
public function editInfo(){
|
||||
|
||||
$rs = model('shops')->editInfo();
|
||||
return $rs;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取店铺金额
|
||||
*/
|
||||
public function getShopMoney(){
|
||||
$rs = model('shops')->getFieldsById((int)session('WST_USER.shopId'),'shopMoney,lockMoney,rechargeMoney');
|
||||
$urs = model('users')->getFieldsById((int)session('WST_USER.userId'),'payPwd');
|
||||
$rs['isSetPayPwd'] = ($urs['payPwd']=='')?0:1;
|
||||
$rs['isDraw'] = ((float)WSTConf('CONF.drawCashShopLimit')<=$rs['shopMoney'])?1:0;
|
||||
unset($urs);
|
||||
return WSTReturn('',1,$rs);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 跳去商家入驻
|
||||
*/
|
||||
public function join(){
|
||||
$rs = model('shops')->checkApply();
|
||||
$this->assign('isApply',(!empty($rs) && $rs['applyStatus']>=1)?1:0);
|
||||
$this->assign('applyStep',empty($rs)?1:$rs['applyStep']);
|
||||
$articles = model('Articles')->getArticlesByCat(53);
|
||||
// 防止不存在入驻文章时报错
|
||||
if(!isset($articles['105']))$articles['105']['articleContent'] = '无相关说明,请咨询商城客服~';
|
||||
if(!isset($articles['106']))$articles['106']['articleContent'] = '无相关说明,请咨询商城客服~';
|
||||
if(!isset($articles['107']))$articles['107']['articleContent'] = '无相关说明,请咨询商城客服~';
|
||||
if(!isset($articles['108']))$articles['108']['articleContent'] = '无相关说明,请咨询商城客服~';
|
||||
$this->assign('artiles',$articles);
|
||||
return $this->fetch('shop_join');
|
||||
}
|
||||
|
||||
public function joinStep1(){
|
||||
session('apply_step',1);
|
||||
$rs = model('shops')->checkApply();
|
||||
$articles = model('Articles')->getArticlesByCat(53);
|
||||
// 防止不存在入驻文章时报错
|
||||
if(!isset($articles['109']))$articles['109']['articleContent'] = '无相关说明,请咨询商城客服~';
|
||||
$this->assign('artiles',$articles);
|
||||
return $this->fetch('shop_join_step1');
|
||||
}
|
||||
public function joinStep2(){
|
||||
$step = (int)session('apply_step');
|
||||
if($step<1){
|
||||
$this->redirect(Url('home/shops/joinStep1'));
|
||||
exit();
|
||||
}
|
||||
session('apply_step',2);
|
||||
$apply = model('shops')->getShopApply();
|
||||
$this->assign('apply',$apply);
|
||||
return $this->fetch('shop_join_step2');
|
||||
}
|
||||
public function saveStep2(){
|
||||
$step = (int)session('apply_step');
|
||||
if($step<2){
|
||||
return WSTReturn('请勿跳过申请步骤');
|
||||
}
|
||||
$data = input('post.');
|
||||
$validate = Loader::validate('Shops');
|
||||
if(!$validate->check($data,[],'applyStep1')){
|
||||
return WSTReturn($validate->getError());
|
||||
}else{
|
||||
return model('shops')->saveStep2($data);
|
||||
}
|
||||
}
|
||||
public function joinStep3(){
|
||||
$step = (int)session('apply_step');
|
||||
if($step<2){
|
||||
$this->redirect(Url('home/shops/joinStep1'));
|
||||
exit();
|
||||
}
|
||||
session('apply_step',3);
|
||||
$areas = model('Areas')->listQuery();
|
||||
$this->assign('areaList',$areas);
|
||||
$apply = model('shops')->getShopApply();
|
||||
$this->assign('apply',$apply);
|
||||
return $this->fetch('shop_join_step3');
|
||||
}
|
||||
public function saveStep3(){
|
||||
$step = (int)session('apply_step');
|
||||
if($step<3){
|
||||
return WSTReturn('请勿跳过申请步骤');
|
||||
}
|
||||
$data = input('post.');
|
||||
$validate = Loader::validate('Shops');
|
||||
if(!$validate->check($data,[],'applyStep2')){
|
||||
return WSTReturn($validate->getError());
|
||||
}else{
|
||||
return model('shops')->saveStep3($data);
|
||||
}
|
||||
}
|
||||
public function joinStep4(){
|
||||
$step = (int)session('apply_step');
|
||||
if($step<3){
|
||||
$this->redirect(Url('home/shops/joinStep4'));
|
||||
exit();
|
||||
}
|
||||
session('apply_step',4);
|
||||
$areas = model('Areas')->listQuery();
|
||||
$this->assign('areaList',$areas);
|
||||
$banks = model('banks')->listQuery();
|
||||
$this->assign('bankList',$banks);
|
||||
$apply = model('shops')->getShopApply();
|
||||
$this->assign('apply',$apply);
|
||||
return $this->fetch('shop_join_step4');
|
||||
}
|
||||
public function saveStep4(){
|
||||
$step = (int)session('apply_step');
|
||||
if($step<4){
|
||||
return WSTReturn('请勿跳过申请步骤');
|
||||
}
|
||||
$data = input('post.');
|
||||
$validate = Loader::validate('Shops');
|
||||
if(!$validate->check($data,[],'applyStep3')){
|
||||
return WSTReturn($validate->getError());
|
||||
}else{
|
||||
return model('shops')->saveStep4($data);
|
||||
}
|
||||
}
|
||||
public function joinStep5(){
|
||||
$step = (int)session('apply_step');
|
||||
if($step<4){
|
||||
$this->redirect(Url('home/shops/joinStep1'));
|
||||
exit();
|
||||
}
|
||||
session('apply_step',5);
|
||||
$shopLicense=db('shop_license')->alias('a')
|
||||
->join('shops b','b.shopId= a.shopId')
|
||||
->where('b.userId',(int)session("WST_USER.userId"))->find();
|
||||
$this->assign('shopLicense',$shopLicense);
|
||||
$goodsCatList = model('goodsCats')->listQuery(0);
|
||||
$this->assign('goodsCatList',$goodsCatList);
|
||||
$apply = model('shops')->getShopApply();
|
||||
$this->assign('apply',$apply);
|
||||
return $this->fetch('shop_join_step5');
|
||||
}
|
||||
public function saveStep5(){
|
||||
$step = (int)session('apply_step');
|
||||
if($step<5){
|
||||
return WSTReturn('请勿跳过申请步骤');
|
||||
}
|
||||
$data = input('post.');
|
||||
$validate = Loader::validate('Shops');
|
||||
if(!$validate->check($data,[],'applyStep4')){
|
||||
return WSTReturn($validate->getError());
|
||||
}else{
|
||||
return model('shops')->saveStep5($data);
|
||||
}
|
||||
}
|
||||
public function joinSuccess(){
|
||||
$step = (int)session('apply_step');
|
||||
if($step<5){
|
||||
$this->redirect(Url('home/shops/joinStep1'));
|
||||
}
|
||||
session('apply_step',5);
|
||||
$apply = model('shops')->getShopApply();
|
||||
$this->assign('apply',$apply);
|
||||
return $this->fetch('shop_join_success');
|
||||
}
|
||||
/**
|
||||
* 入驻进度查询
|
||||
*/
|
||||
public function checkapplystatus(){
|
||||
$apply = model('shops')->getShopApply();
|
||||
if(empty($apply)){
|
||||
$this->redirect(Url('home/shops/joinStep1'));
|
||||
exit();
|
||||
}else{
|
||||
if($apply['applyStatus']==0){
|
||||
session('apply_step',$apply['applyStep']);
|
||||
$this->redirect(Url('home/shops/joinStep'.$apply['applyStep']));
|
||||
exit();
|
||||
}else{
|
||||
$this->assign('apply',$apply);
|
||||
return $this->fetch('shop_join_success');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
76
hyhproject/home/controller/Shopusers.php
Executable file
@ -0,0 +1,76 @@
|
||||
<?php
|
||||
namespace wstmart\home\controller;
|
||||
use wstmart\home\model\ShopUsers as M;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 门店角色控制器
|
||||
*/
|
||||
class Shopusers extends Base{
|
||||
protected $beforeActionList = ['checkShopAuth'];
|
||||
|
||||
/**
|
||||
* 列表
|
||||
*/
|
||||
public function index(){
|
||||
$m = new M();
|
||||
$list = $m->pageQuery();
|
||||
$this->assign('list',$list);
|
||||
return $this->fetch("shops/shopusers/list");
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询
|
||||
*/
|
||||
public function pageQuery(){
|
||||
$m = new M();
|
||||
return $m->pageQuery();
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增店铺管理员
|
||||
*/
|
||||
public function add(){
|
||||
$m = new M();
|
||||
$object = $m->getEModel('shop_roles');
|
||||
$roles = model("ShopRoles")->listQuery();
|
||||
$data = ['object'=>$object,"roles"=>$roles];
|
||||
return $this->fetch('shops/shopusers/add',$data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增店铺管理员
|
||||
*/
|
||||
public function toAdd(){
|
||||
$m = new M();
|
||||
return $m->add();
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改店铺管理员
|
||||
*/
|
||||
public function edit(){
|
||||
$m = new M();
|
||||
$object = $m->getById(input('get.id'));
|
||||
$roles = model("ShopRoles")->listQuery();
|
||||
$data = ['object'=>$object,"roles"=>$roles];
|
||||
return $this->fetch('shops/shopusers/edit',$data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑店铺管理员
|
||||
*/
|
||||
public function toEdit(){
|
||||
$m = new M();
|
||||
return $m->edit();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除操作
|
||||
*/
|
||||
public function del(){
|
||||
$m = new M();
|
||||
$rs = $m->del();
|
||||
return $rs;
|
||||
}
|
||||
|
||||
}
|
974
hyhproject/home/controller/Users.php
Executable file
@ -0,0 +1,974 @@
|
||||
<?php
|
||||
namespace wstmart\home\controller;
|
||||
use wstmart\common\model\Users as MUsers;
|
||||
use wstmart\common\model\LogSms;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 用户控制器
|
||||
*/
|
||||
class Users extends Base{
|
||||
protected $beforeActionList = [
|
||||
'checkAuth' => ['except'=>'getverify,login,logout,regist,toregist,checklogin,getphoneverifycode,checkloginkey,checkemail,checkfindkey,protocol,forgetpass,forgetpasst,resetpass,forgetpasss,forgetpassf,findpass,getfindphone,checkfindphone,getfindemail,tologinbox']
|
||||
];
|
||||
/**
|
||||
* 去登录
|
||||
*/
|
||||
public function login(){
|
||||
$USER = session('WST_USER');
|
||||
//如果已经登录了则直接跳去用户中心
|
||||
if(!empty($USER) && !empty($USER['userId'])){
|
||||
$this->redirect("users/index");
|
||||
}
|
||||
$loginName = cookie("loginName");
|
||||
if(!empty($loginName)){
|
||||
$this->assign('loginName',cookie("loginName"));
|
||||
}else{
|
||||
$this->assign('loginName','');
|
||||
}
|
||||
return $this->fetch('user_login');
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户退出
|
||||
*/
|
||||
public function logout(){
|
||||
session('WST_USER',null);
|
||||
setcookie("loginPwd", null);
|
||||
session('WST_HO_CURRENTURL', null);
|
||||
hook('afterUserLogout');
|
||||
return WSTReturn("退出成功",1);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户注册
|
||||
*
|
||||
*/
|
||||
public function regist(){
|
||||
$USER = session('WST_USER');
|
||||
//如果已经登录了则直接跳去用户中心
|
||||
if(!empty($USER) && $USER['userId']!=''){
|
||||
$this->redirect("users/index");
|
||||
}
|
||||
$loginName = cookie("loginName");
|
||||
if(!empty($loginName)){
|
||||
$this->assign('loginName',cookie("loginName"));
|
||||
}else{
|
||||
$this->assign('loginName','');
|
||||
}
|
||||
return $this->fetch('regist');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新用户注册
|
||||
*/
|
||||
public function toRegist(){
|
||||
$m = new MUsers();
|
||||
$rs = $m->regist();
|
||||
$rs['url'] = session('WST_HO_CURRENTURL');
|
||||
return $rs;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证登录
|
||||
*
|
||||
*/
|
||||
public function checkLogin(){
|
||||
$m = new MUsers();
|
||||
$rs = $m->checkLogin();
|
||||
$rs['url'] = session('WST_HO_CURRENTURL');
|
||||
return $rs;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取验证码
|
||||
*/
|
||||
public function getPhoneVerifyCode(){
|
||||
$userPhone = input("post.userPhone");
|
||||
$rs = array();
|
||||
if(!WSTIsPhone($userPhone)){
|
||||
return WSTReturn("手机号格式不正确!");
|
||||
exit();
|
||||
}
|
||||
$m = new MUsers();
|
||||
$rs = $m->checkUserPhone($userPhone,(int)session('WST_USER.userId'));
|
||||
if($rs["status"]!=1){
|
||||
return WSTReturn("手机号已存在!");
|
||||
exit();
|
||||
}
|
||||
$phoneVerify = rand(100000,999999);
|
||||
$rv = ['status'=>-1,'msg'=>'短信发送失败'];
|
||||
$tpl = WSTMsgTemplates('PHONE_USER_REGISTER_VERFIY');
|
||||
if( $tpl['tplContent']!='' && $tpl['status']=='1'){
|
||||
$params = ['tpl'=>$tpl,'params'=>['MALL_NAME'=>WSTConf("CONF.mallName"),'VERFIY_CODE'=>$phoneVerify,'VERFIY_TIME'=>10]];
|
||||
$m = new LogSms();
|
||||
$rv = $m->sendSMS(0,$userPhone,$params,'getPhoneVerify',$phoneVerify);
|
||||
}
|
||||
if($rv['status']==1){
|
||||
session('VerifyCode_userPhone',$phoneVerify);
|
||||
session('VerifyCode_userPhone_Time',time());
|
||||
}
|
||||
return $rv;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 判断手机或邮箱是否存在
|
||||
*/
|
||||
public function checkLoginKey(){
|
||||
$m = new MUsers();
|
||||
if(input("post.loginName"))$val=input("post.loginName");
|
||||
if(input("post.userPhone"))$val=input("post.userPhone");
|
||||
if(input("post.userEmail"))$val=input("post.userEmail");
|
||||
$userId = (int)session('WST_USER.userId');
|
||||
$rs = WSTCheckLoginKey($val,$userId);
|
||||
if($rs["status"]==1){
|
||||
return array("ok"=>"");
|
||||
}else{
|
||||
return array("error"=>$rs["msg"]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断邮箱是否存在
|
||||
*/
|
||||
public function checkEmail(){
|
||||
$data = $this->checkLoginKey();
|
||||
if(isset($data['error']))$data['error'] = '对不起,该邮箱已存在';
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断用户名是否存在/忘记密码
|
||||
*/
|
||||
public function checkFindKey(){
|
||||
$m = new MUsers();
|
||||
$userId = (int)session('WST_USER.userId');
|
||||
$rs = WSTCheckLoginKey(input("post.loginName"),$userId);
|
||||
if($rs["status"]==1){
|
||||
return array("error"=>"该用户不存在!");
|
||||
}else{
|
||||
return array("ok"=>"");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 跳到用户注册协议
|
||||
*/
|
||||
public function protocol(){
|
||||
return $this->fetch("user_protocol");
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户中心
|
||||
*/
|
||||
public function index(){
|
||||
session('WST_MENID0',0);
|
||||
session('WST_MENUID30',0);
|
||||
// 待付款 待收货 待评价
|
||||
$info = model('home/Users')->getStatusNum();
|
||||
$this->assign($info);
|
||||
$m = new MUsers();
|
||||
$data = $m->getById((int)session('WST_USER.userId'));
|
||||
$this->assign('data',$data);
|
||||
return $this->fetch('users/index');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 跳去修改个人资料
|
||||
*/
|
||||
public function edit(){
|
||||
$m = new MUsers();
|
||||
//获取用户信息
|
||||
$userId = (int)session('WST_USER.userId');
|
||||
$data = $m->getById($userId);
|
||||
$this->assign('data',$data);
|
||||
return $this->fetch('users/user_edit');
|
||||
}
|
||||
/**
|
||||
* 跳去修改密码页
|
||||
*/
|
||||
public function editPass(){
|
||||
$m = new MUsers();
|
||||
//获取用户信息
|
||||
$userId = (int)session('WST_USER.userId');
|
||||
$data = $m->getById($userId);
|
||||
$this->assign('data',$data);
|
||||
return $this->fetch('users/security/user_pass');
|
||||
}
|
||||
/**
|
||||
* 修改密码
|
||||
*/
|
||||
public function passedit(){
|
||||
$userId = (int)session('WST_USER.userId');
|
||||
$m = new MUsers();
|
||||
$rs = $m->editPass($userId);
|
||||
return $rs;
|
||||
}
|
||||
/**
|
||||
* 修改
|
||||
*/
|
||||
public function toEdit(){
|
||||
$m = new MUsers();
|
||||
$rs = $m->edit();
|
||||
return $rs;
|
||||
}
|
||||
/**
|
||||
* 安全设置页
|
||||
*/
|
||||
public function security(){
|
||||
//获取用户信息
|
||||
$m = new MUsers();
|
||||
$data = $m->getById((int)session('WST_USER.userId'));
|
||||
if($data['userPhone']!='')$data['userPhone'] = WSTStrReplace($data['userPhone'],'*',3);
|
||||
if($data['userEmail']!='')$data['userEmail'] = WSTStrReplace($data['userEmail'],'*',2,'@');
|
||||
$this->assign('data',$data);
|
||||
return $this->fetch('users/security/index');
|
||||
}
|
||||
/**
|
||||
* 修改邮箱页
|
||||
*/
|
||||
public function editEmail(){
|
||||
hook('homeControllerUsersEditEmail');
|
||||
//获取用户信息
|
||||
$userId = (int)session('WST_USER.userId');
|
||||
$m = new MUsers();
|
||||
$data = $m->getById($userId);
|
||||
if($data['userEmail']!='')$data['userEmail'] = WSTStrReplace($data['userEmail'],'*',2,'@');
|
||||
$this->assign('data',$data);
|
||||
$process = 'One';
|
||||
$this->assign('process',$process);
|
||||
if($data['userEmail']){
|
||||
return $this->fetch('users/security/user_edit_email');
|
||||
}else{
|
||||
return $this->fetch('users/security/user_email');
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 发送验证邮件/绑定邮箱
|
||||
*/
|
||||
public function getEmailVerify(){
|
||||
$userEmail = input('post.userEmail');
|
||||
if(!$userEmail){
|
||||
return WSTReturn('请输入邮箱!',-1);
|
||||
}
|
||||
$code = input("post.verifyCode");
|
||||
$process = input("post.process");
|
||||
if(!WSTVerifyCheck($code)){
|
||||
return WSTReturn('验证码错误!',-1);
|
||||
}
|
||||
$rs = WSTCheckLoginKey($userEmail,(int)session('WST_USER.userId'));
|
||||
if($rs["status"]!=1){
|
||||
return WSTReturn("邮箱已存在!");
|
||||
exit();
|
||||
}
|
||||
$code = rand(0,999999);
|
||||
$sendRs = ['status'=>-1,'msg'=>'邮件发送失败'];
|
||||
$tpl = WSTMsgTemplates('EMAIL_BIND');
|
||||
if( $tpl['tplContent']!='' && $tpl['status']=='1'){
|
||||
$find = ['${LOGIN_NAME}','${SEND_TIME}','${VERFIY_CODE}','${VERFIY_TIME}'];
|
||||
$replace = [session('WST_USER.loginName'),date('Y-m-d H:i:s'),$code,30];
|
||||
$sendRs = WSTSendMail($userEmail,'绑定邮箱',str_replace($find,$replace,$tpl['content']));
|
||||
}
|
||||
if($sendRs['status']==1){
|
||||
// 绑定的邮箱
|
||||
session('email.val',$userEmail);
|
||||
// 验证码
|
||||
session("email.key", $code);
|
||||
// 发起绑定邮箱的时间;
|
||||
session('email.time',time());
|
||||
return WSTReturn("发送成功",1);
|
||||
}else{
|
||||
return WSTReturn($sendRs['msg'],-1);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 绑定邮箱
|
||||
*/
|
||||
public function emailEdit(){
|
||||
$USER = session('WST_USER');
|
||||
if(empty($USER) && $USER['userId']==''){
|
||||
$this->redirect("home/users/login");
|
||||
}
|
||||
$bindTime = session('email.time');
|
||||
$code = session('email.key');
|
||||
$bindEmail = session('email.val');
|
||||
|
||||
if(time()>floatval($bindTime)+30*60)$this->error('验证码已失效!');
|
||||
$rs = WSTCheckLoginKey($bindEmail,(int)session('WST_USER.userId'));
|
||||
|
||||
if($rs["status"]!=1){
|
||||
$this->error('邮箱已存在!');
|
||||
exit();
|
||||
}
|
||||
$secretCode = input('secretCode');
|
||||
|
||||
if($code!=$secretCode)return WSTReturn('校验码错误',-1);
|
||||
|
||||
$m = new MUsers();
|
||||
$rs = $m->editEmail((int)session('WST_USER.userId'),$bindEmail);
|
||||
if($rs['status'] == 1){
|
||||
// 清空session
|
||||
session('email',null);
|
||||
return WSTReturn('验证通过',1);
|
||||
}
|
||||
$this->error('绑定邮箱失败');
|
||||
}
|
||||
/**
|
||||
* 完成邮箱绑定
|
||||
*/
|
||||
public function doneEmailBind(){
|
||||
$this->assign('process','Three');
|
||||
return $this->fetch('users/security/user_email');
|
||||
}
|
||||
/**
|
||||
* 发送验证邮件/修改邮箱
|
||||
*/
|
||||
public function getEmailVerifyt(){
|
||||
$m = new MUsers();
|
||||
$data = $m->getById(session('WST_USER.userId'));
|
||||
$userEmail = $data['userEmail'];
|
||||
if(!$userEmail){
|
||||
return WSTReturn('请输入邮箱!',-1);
|
||||
}
|
||||
$code = input("post.verifyCode");
|
||||
if(!WSTVerifyCheck($code)){
|
||||
return WSTReturn('验证码错误!',-1);
|
||||
}
|
||||
|
||||
$code = rand(0,999999);
|
||||
$sendRs = ['status'=>-1,'msg'=>'邮件发送失败'];
|
||||
$tpl = WSTMsgTemplates('EMAIL_EDIT');
|
||||
if( $tpl['tplContent']!='' && $tpl['status']=='1'){
|
||||
$find = ['${LOGIN_NAME}','${SEND_TIME}','${VERFIY_CODE}','${VERFIY_TIME}'];
|
||||
$replace = [session('WST_USER.loginName'),date('Y-m-d H:i:s'),$code,30];
|
||||
$sendRs = WSTSendMail($userEmail,'绑定邮箱',str_replace($find,$replace,$tpl['content']));
|
||||
}
|
||||
if($sendRs['status']==1){
|
||||
// 修改的用户
|
||||
session('email.uId',(int)session('WST_USER.userId'));
|
||||
// 绑定的邮箱
|
||||
session('email.val',$userEmail);
|
||||
// 验证码
|
||||
session("email.key", $code);
|
||||
// 发起绑定邮箱的时间;
|
||||
session('email.time',time());
|
||||
return WSTReturn("发送成功",1);
|
||||
}else{
|
||||
return WSTReturn($sendRs['msg'],-1);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 修改邮箱
|
||||
*/
|
||||
public function emailEditt(){
|
||||
$USER = session('WST_USER');
|
||||
if(empty($USER) && $USER['userId']!=''){
|
||||
$this->redirect("home/users/login");
|
||||
}
|
||||
|
||||
$bindTime = session('email.time');
|
||||
$code = session('email.key');
|
||||
$bindEmail = session('email.val');
|
||||
$uId = (int)session('email.uId');
|
||||
|
||||
if(time()>floatval($bindTime)+30*60)$this->error('验证码已失效!');
|
||||
$rs = WSTCheckLoginKey($bindEmail,(int)session('WST_USER.userId'));
|
||||
|
||||
if($rs["status"]!=1){
|
||||
$this->error('邮箱已存在!');
|
||||
exit();
|
||||
}
|
||||
$secretCode = input('secretCode');
|
||||
|
||||
if($code!=$secretCode)return WSTReturn('校验码错误',-1);
|
||||
|
||||
$m = new MUsers();
|
||||
$data = $m->getById($uId);
|
||||
if($data['userId']==session('WST_USER.userId')){
|
||||
return WSTReturn('验证通过',1);
|
||||
}
|
||||
$this->error('无效的用户!');
|
||||
}
|
||||
/**
|
||||
* 修改邮箱第二步
|
||||
*/
|
||||
public function editEmail2(){
|
||||
$this->assign('process','Two');
|
||||
return $this->fetch('users/security/user_edit_email');
|
||||
}
|
||||
/**
|
||||
* 修改邮箱第三步
|
||||
*/
|
||||
public function editEmail3(){
|
||||
$this->assign('process','Three');
|
||||
return $this->fetch('users/security/user_edit_email');
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 修改手机页
|
||||
*/
|
||||
public function editPhone(){
|
||||
//获取用户信息
|
||||
$userId = (int)session('WST_USER.userId');
|
||||
$m = new MUsers();
|
||||
$data = $m->getById($userId);
|
||||
if($data['userPhone']!='')$data['userPhone'] = WSTStrReplace($data['userPhone'],'*',3);
|
||||
$this->assign('data',$data);
|
||||
$process = 'One';
|
||||
$this->assign('process',$process);
|
||||
if($data['userPhone']){
|
||||
return $this->fetch('users/security/user_edit_phone');
|
||||
}else{
|
||||
return $this->fetch('users/security/user_phone');
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 跳到发送手机验证
|
||||
*/
|
||||
public function toApply(){
|
||||
return $this->fetch("user_verify_phone");
|
||||
}
|
||||
/**
|
||||
* 绑定手机/获取验证码
|
||||
*/
|
||||
public function getPhoneVerifyo(){
|
||||
$userPhone = input("post.userPhone");
|
||||
if(!WSTIsPhone($userPhone)){
|
||||
return WSTReturn("手机号格式不正确!");
|
||||
exit();
|
||||
}
|
||||
$rs = array();
|
||||
$m = new MUsers();
|
||||
$rs = WSTCheckLoginKey($userPhone,(int)session('WST_USER.userId'));
|
||||
if($rs["status"]!=1){
|
||||
return WSTReturn("手机号已存在!");
|
||||
exit();
|
||||
}
|
||||
$data = $m->getById(session('WST_USER.userId'));
|
||||
$phoneVerify = rand(100000,999999);
|
||||
$rv = ['status'=>-1,'msg'=>'短信发送失败'];
|
||||
$tpl = WSTMsgTemplates('PHONE_EDIT');
|
||||
if( $tpl['tplContent']!='' && $tpl['status']=='1'){
|
||||
$params = ['tpl'=>$tpl,'params'=>['LOGIN_NAME'=>$data['loginName'],'VERFIY_CODE'=>$phoneVerify,'VERFIY_TIME'=>10]];
|
||||
$m = new LogSms();
|
||||
$rv = $m->sendSMS(0,$userPhone,$params,'getPhoneVerifyo',$phoneVerify);
|
||||
}
|
||||
if($rv['status']==1){
|
||||
$USER = [];
|
||||
$USER['userPhone'] = $userPhone;
|
||||
$USER['phoneVerify'] = $phoneVerify;
|
||||
session('Verify_info',$USER);
|
||||
session('Verify_userPhone_Time',time());
|
||||
return WSTReturn('短信发送成功!',1);
|
||||
}
|
||||
return $rv;
|
||||
}
|
||||
/**
|
||||
* 绑定手机
|
||||
*/
|
||||
public function getPhoneVerifyb(){
|
||||
$userPhone = input("post.userPhone");
|
||||
if(!WSTIsPhone($userPhone)){
|
||||
return WSTReturn("手机号格式不正确!");
|
||||
exit();
|
||||
}
|
||||
$rs = array();
|
||||
$m = new MUsers();
|
||||
$rs = WSTCheckLoginKey($userPhone,(int)session('WST_USER.userId'));
|
||||
if($rs["status"]!=1){
|
||||
return WSTReturn("手机号已存在!");
|
||||
exit();
|
||||
}
|
||||
$data = $m->getById(session('WST_USER.userId'));
|
||||
$phoneVerify = rand(100000,999999);
|
||||
$rv = ['status'=>-1,'msg'=>'短信发送失败'];
|
||||
$tpl = WSTMsgTemplates('PHONE_BIND');
|
||||
if( $tpl['tplContent']!='' && $tpl['status']=='1'){
|
||||
$params = ['tpl'=>$tpl,'params'=>['LOGIN_NAME'=>$data['loginName'],'VERFIY_CODE'=>$phoneVerify,'VERFIY_TIME'=>10]];
|
||||
$m = new LogSms();
|
||||
$rv = $m->sendSMS(0,$userPhone,$params,'getPhoneVerifyb',$phoneVerify);
|
||||
}
|
||||
if($rv['status']==1){
|
||||
$USER = [];
|
||||
$USER['userPhone'] = $userPhone;
|
||||
$USER['phoneVerify'] = $phoneVerify;
|
||||
session('Verify_info',$USER);
|
||||
session('Verify_userPhone_Time',time());
|
||||
return WSTReturn('短信发送成功!',1);
|
||||
}
|
||||
return $rv;
|
||||
}
|
||||
/**
|
||||
* 绑定手机
|
||||
*/
|
||||
public function phoneEdito(){
|
||||
$phoneVerify = input("post.Checkcode");
|
||||
$process = input("post.process");
|
||||
$timeVerify = session('Verify_userPhone_Time');
|
||||
if(!session('Verify_info.phoneVerify') || time()>floatval($timeVerify)+10*60){
|
||||
return WSTReturn("地址已失效,请重新验证身份!");
|
||||
exit();
|
||||
}
|
||||
if($phoneVerify==session('Verify_info.phoneVerify')){
|
||||
$m = new MUsers();
|
||||
$rs = $m->editPhone((int)session('WST_USER.userId'),session('Verify_info.userPhone'));
|
||||
if($process=='Two'){
|
||||
$rs['process'] = $process;
|
||||
}else{
|
||||
$rs['process'] = '0';
|
||||
}
|
||||
return $rs;
|
||||
}
|
||||
return WSTReturn("校验码不一致,请重新输入!");
|
||||
}
|
||||
public function editPhoneSu(){
|
||||
$pr = input("get.pr");
|
||||
$process = 'Three';
|
||||
$this->assign('process',$process);
|
||||
if($pr == 'Two'){
|
||||
return $this->fetch('users/security/user_edit_phone');
|
||||
}else{
|
||||
return $this->fetch('users/security/user_phone');
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 修改手机/获取验证码
|
||||
*/
|
||||
public function getPhoneVerifyt(){
|
||||
$m = new MUsers();
|
||||
$data = $m->getById(session('WST_USER.userId'));
|
||||
$userPhone = $data['userPhone'];
|
||||
$phoneVerify = rand(100000,999999);
|
||||
$rv = ['status'=>-1,'msg'=>'短信发送失败'];
|
||||
$tpl = WSTMsgTemplates('PHONE_EDIT');
|
||||
if( $tpl['tplContent']!='' && $tpl['status']=='1'){
|
||||
$params = ['tpl'=>$tpl,'params'=>['LOGIN_NAME'=>$data['loginName'],'VERFIY_CODE'=>$phoneVerify,'VERFIY_TIME'=>10]];
|
||||
$m = new LogSms();
|
||||
$rv = $m->sendSMS(0,$userPhone,$params,'getPhoneVerifyt',$phoneVerify);
|
||||
}
|
||||
if($rv['status']==1){
|
||||
$USER = [];
|
||||
$USER['userPhone'] = $userPhone;
|
||||
$USER['phoneVerify'] = $phoneVerify;
|
||||
session('Verify_info2',$USER);
|
||||
session('Verify_userPhone_Time2',time());
|
||||
return WSTReturn('短信发送成功!',1);
|
||||
}
|
||||
return $rv;
|
||||
}
|
||||
/**
|
||||
* 修改手机
|
||||
*/
|
||||
public function phoneEditt(){
|
||||
$phoneVerify = input("post.Checkcode");
|
||||
$timeVerify = session('Verify_userPhone_Time2');
|
||||
if(!session('Verify_info2.phoneVerify') || time()>floatval($timeVerify)+10*60){
|
||||
return WSTReturn("校验码已失效,请重新发送!");
|
||||
exit();
|
||||
}
|
||||
if($phoneVerify==session('Verify_info2.phoneVerify')){
|
||||
return WSTReturn("验证成功",1);
|
||||
}
|
||||
return WSTReturn("校验码不一致,请重新输入!",-1);
|
||||
}
|
||||
public function editPhoneSut(){
|
||||
$process = 'Two';
|
||||
$this->assign('process',$process);
|
||||
if(session('Verify_info2.phoneVerify')){
|
||||
return $this->fetch('users/security/user_edit_phone');
|
||||
}
|
||||
$this->error('地址已失效,请重新验证身份');
|
||||
}
|
||||
/**
|
||||
* 处理图像裁剪
|
||||
*/
|
||||
// public function editUserPhoto(){
|
||||
// $imageSrc = trim(input('post.photoSrc'),'/');
|
||||
// $image = \image\Image::open($imageSrc);
|
||||
// $x = (int)input('post.x');
|
||||
// $y = (int)input('post.y');
|
||||
// $w = (int)input('post.w',150);
|
||||
// $h = (int)input('post.h',150);
|
||||
// $rs = $image->crop($w, $h, $x, $y, 150, 150)->save($imageSrc);
|
||||
// if($rs){
|
||||
// return WSTReturn('',1,$imageSrc);
|
||||
// exit;
|
||||
// }
|
||||
// return WSTReturn('发生未知错误.',-1);
|
||||
|
||||
// }
|
||||
|
||||
/**
|
||||
* 处理图像裁剪 修改适应oss mark 201080612 by zl
|
||||
*/
|
||||
public function editUserPhoto(){
|
||||
$imageSrc = trim(input('post.photoSrc'),'/');
|
||||
//判断图片是否缩放了
|
||||
$res = strpos($imageSrc,'?x-oss-process=');
|
||||
$x = (int)input('post.x');
|
||||
$y = (int)input('post.y');
|
||||
$w = (int)input('post.w',150);
|
||||
$h = (int)input('post.h',150);
|
||||
//判断是否缩放 如果缩放了就不加'?x-oss-process='
|
||||
if($res){
|
||||
$imageSrc=$imageSrc.',image/crop,x_'.$x.',y_'.$y.',w_'.$w.',h_'.$h.',image/resize,w_150,h_150';
|
||||
}else{
|
||||
$imageSrc=$imageSrc.'?x-oss-process=image/crop,x_'.$x.',y_'.$y.',w_'.$w.',h_'.$h.',image/resize,w_150,h_150';
|
||||
}
|
||||
|
||||
return WSTReturn('',1,$imageSrc);
|
||||
|
||||
}
|
||||
/****************************************************** 忘记密码 **********************************************************/
|
||||
/**
|
||||
* 忘记支付密码
|
||||
*/
|
||||
public function backPayPass(){
|
||||
$m = new MUsers();
|
||||
$userId = (int)session('WST_USER.userId');
|
||||
$user = $m->getById($userId);
|
||||
$userPhone = $user['userPhone'];
|
||||
$user['userPhone'] = WSTStrReplace($user['userPhone'],'*',3);
|
||||
$user['phoneType'] = empty($userPhone)?0:1;
|
||||
$backType = (int)session('Type_backPaypwd');
|
||||
$timeVerify = session('Verify_backPaypwd_Time');
|
||||
$process = 'One';
|
||||
$this->assign('data', $user);
|
||||
$this->assign('process', $process);
|
||||
return $this->fetch('users/security/user_edit_pay');
|
||||
}
|
||||
/**
|
||||
* 忘记支付密码:发送短信
|
||||
*/
|
||||
public function getphoneverifypay(){
|
||||
$m = new MUsers();
|
||||
$data = $m->getById(session('WST_USER.userId'));
|
||||
$userPhone = $data['userPhone'];
|
||||
$phoneVerify = rand(100000,999999);
|
||||
$rv = ['status'=>-1,'msg'=>'短信发送失败'];
|
||||
$tpl = WSTMsgTemplates('PHONE_FOTGET_PAY');
|
||||
if( $tpl['tplContent']!='' && $tpl['status']=='1'){
|
||||
$params = ['tpl'=>$tpl,'params'=>['LOGIN_NAME'=>$data['loginName'],'VERFIY_CODE'=>$phoneVerify,'VERFIY_TIME'=>10]];
|
||||
$m = new LogSms();
|
||||
$rv = $m->sendSMS(0,$userPhone,$params,'getPhoneVerifyt',$phoneVerify);
|
||||
}
|
||||
if($rv['status']==1){
|
||||
$USER = [];
|
||||
$USER['userPhone'] = $userPhone;
|
||||
$USER['phoneVerify'] = $phoneVerify;
|
||||
session('Verify_backPaypwd_info',$USER);
|
||||
session('Verify_backPaypwd_Time',time());
|
||||
return WSTReturn('短信发送成功!',1);
|
||||
}
|
||||
return $rv;
|
||||
}
|
||||
/**
|
||||
* 忘记支付密码:验证
|
||||
*/
|
||||
public function payEditt(){
|
||||
$payVerify = input("post.Checkcode");
|
||||
$timeVerify = session('Verify_backPaypwd_Time');
|
||||
if(!session('Verify_backPaypwd_info.phoneVerify') || time()>floatval($timeVerify)+10*60){
|
||||
return WSTReturn("校验码已失效,请重新发送!");
|
||||
exit();
|
||||
}
|
||||
if($payVerify==session('Verify_backPaypwd_info.phoneVerify')){
|
||||
return WSTReturn("验证成功",1);
|
||||
}
|
||||
return WSTReturn("校验码不一致,请重新输入!",-1);
|
||||
}
|
||||
public function editPaySut(){
|
||||
$process = 'Two';
|
||||
$this->assign('process',$process);
|
||||
if(session('Verify_backPaypwd_info.phoneVerify')){
|
||||
return $this->fetch('users/security/user_edit_pay');
|
||||
}
|
||||
$this->error('地址已失效,请重新验证身份');
|
||||
}
|
||||
/**
|
||||
* 忘记支付密码:设置
|
||||
*/
|
||||
public function payEdito(){
|
||||
$process = input("post.process");
|
||||
$timeVerify = session('Verify_backPaypwd_Time');
|
||||
if(!session('Verify_backPaypwd_info.phoneVerify') || time()>floatval($timeVerify)+10*60){
|
||||
return WSTReturn("地址已失效,请重新验证身份!");
|
||||
exit();
|
||||
}
|
||||
$m = new MUsers();
|
||||
$rs = $m->resetbackPay();
|
||||
if($process=='Two'){
|
||||
$rs['process'] = $process;
|
||||
}else{
|
||||
$rs['process'] = '0';
|
||||
}
|
||||
return $rs;
|
||||
}
|
||||
/**
|
||||
* 忘记支付密码:完成
|
||||
*/
|
||||
public function editPaySu(){
|
||||
$pr = input("get.pr");
|
||||
$process = 'Three';
|
||||
$this->assign('process',$process);
|
||||
if($pr == 'Two'){
|
||||
return $this->fetch('users/security/user_edit_pay');
|
||||
}else{
|
||||
return $this->fetch('users/security/user_pay_pass');
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 忘记密码
|
||||
*/
|
||||
public function forgetPass(){
|
||||
return $this->fetch('forget_pass');
|
||||
}
|
||||
public function forgetPasst(){
|
||||
if(time()<floatval(session('findPass.findTime'))+30*60){
|
||||
$userId = session('findPass.userId');
|
||||
$m = new MUsers();
|
||||
$info = $m->getById($userId);
|
||||
if($info['userPhone']!='')$info['userPhone'] = WSTStrReplace($info['userPhone'],'*',3);
|
||||
if($info['userEmail']!='')$info['userEmail'] = WSTStrReplace($info['userEmail'],'*',2,'@');
|
||||
$this->assign('forgetInfo',$info);
|
||||
return $this->fetch('forget_pass2');
|
||||
}else{
|
||||
$this->error('页面已过期!');
|
||||
}
|
||||
}
|
||||
// 重置密码
|
||||
public function resetPass(){
|
||||
if(!session('findPass')){
|
||||
$this->error('连接已失效!',url('home/users/index'));
|
||||
}
|
||||
if(time()>floatval(session('REST_Time'))+30*60)$this->error('连接已失效!');
|
||||
return $this->fetch('forget_pass3');
|
||||
}
|
||||
// 验证校验码
|
||||
public function forgetPasss(){
|
||||
if(!session('findPass')){
|
||||
$this->error('连接已失效!');
|
||||
}
|
||||
if(time()>floatval(session('REST_Time'))+30*60)$this->error('连接已失效!');
|
||||
$USER = session('findPass');
|
||||
if(empty($USER) && $USER['userId']!=''){
|
||||
$this->error('请在同一浏览器操作!');
|
||||
}
|
||||
$USER = session('findPass');
|
||||
if(empty($USER) && $USER['userId']!=''){
|
||||
$this->expire('请在同一浏览器操作!');
|
||||
}
|
||||
$uId = session('findPass.userId');
|
||||
$key = session("findPass.key");
|
||||
// 验证邮箱中的验证码
|
||||
$secretCode = input('secretCode');
|
||||
if($key==$secretCode){
|
||||
session('REST_userId',$uId);
|
||||
session('REST_success','1');
|
||||
return WSTReturn('验证成功',1);
|
||||
}else{
|
||||
return WSTReturn('校验码错误',-1);
|
||||
}
|
||||
|
||||
}
|
||||
public function forgetPassf(){
|
||||
return $this->fetch('forget_pass4');
|
||||
}
|
||||
/**
|
||||
* 找回密码
|
||||
*/
|
||||
public function findPass(){
|
||||
//禁止缓存
|
||||
header('Cache-Control:no-cache,must-revalidate');
|
||||
header('Pragma:no-cache');
|
||||
$code = input("post.verifyCode");
|
||||
$step = input("post.step/d");
|
||||
switch ($step) {
|
||||
case 1:#第一步,验证身份
|
||||
if(!WSTVerifyCheck($code)){
|
||||
return WSTReturn('验证码错误!',-1);
|
||||
}
|
||||
$loginName = input("post.loginName");
|
||||
$rs = WSTCheckLoginKey($loginName);
|
||||
if($rs["status"]==1){
|
||||
return WSTReturn("用户名不存在!");
|
||||
exit();
|
||||
}
|
||||
$m = new MUsers();
|
||||
$info = $m->checkAndGetLoginInfo($loginName);
|
||||
if ($info != false) {
|
||||
session('findPass',array('userId'=>$info['userId'],'loginName'=>$loginName,'userPhone'=>$info['userPhone'],'userEmail'=>$info['userEmail'],'loginSecret'=>$info['loginSecret'],'findTime'=>time()));
|
||||
return WSTReturn("操作成功",1);
|
||||
}else return WSTReturn("用户名不存在!");
|
||||
break;
|
||||
case 2:#第二步,验证方式
|
||||
if (session('findPass.loginName') != null ){
|
||||
if(input("post.modes")==1){
|
||||
if ( session('findPass.userPhone') == null) {
|
||||
return WSTReturn('你没有预留手机号码,请通过邮箱方式找回密码!',-1);
|
||||
}
|
||||
$phoneVerify = input("post.Checkcode");
|
||||
if(!$phoneVerify){
|
||||
return WSTReturn('校验码不能为空!',-1);
|
||||
}
|
||||
return $this->checkfindPhone($phoneVerify);
|
||||
}else{
|
||||
if (session('findPass.userEmail')==null) {
|
||||
return WSTReturn('你没有预留邮箱,请通过手机号码找回密码!',-1);
|
||||
}
|
||||
if(!WSTVerifyCheck($code)){
|
||||
return WSTReturn('验证码错误!',-1);
|
||||
}
|
||||
return $this->getfindEmail();
|
||||
}
|
||||
}else $this->error('页面已过期!');
|
||||
break;
|
||||
case 3:#第三步,设置新密码
|
||||
$resetPass = session('REST_success');
|
||||
if($resetPass != 1)$this->error("页面已失效!");
|
||||
$loginPwd = input("post.loginPwd");
|
||||
$repassword = input("post.repassword");
|
||||
$decrypt_data = WSTRSA($loginPwd);
|
||||
$decrypt_data2 = WSTRSA($repassword);
|
||||
if($decrypt_data['status']==1 && $decrypt_data2['status']==1){
|
||||
$loginPwd = $decrypt_data['data'];
|
||||
$repassword = $decrypt_data2['data'];
|
||||
}else{
|
||||
return WSTReturn('设置失败');
|
||||
}
|
||||
if ($loginPwd == $repassword) {
|
||||
$m = new MUsers();
|
||||
$rs = $m->resetPass();
|
||||
if($rs['status']==1){
|
||||
return $rs;
|
||||
}else{
|
||||
return $rs;
|
||||
}
|
||||
}else return WSTReturn('两次密码不同!',-1);
|
||||
break;
|
||||
default:
|
||||
$this->error('页面已过期!');
|
||||
break;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 手机验证码获取
|
||||
*/
|
||||
public function getfindPhone(){
|
||||
session('WST_USER',session('findPass.userId'));
|
||||
if(session('findPass.userPhone')==''){
|
||||
return WSTReturn('你没有预留手机号码,请通过邮箱方式找回密码!',-1);
|
||||
}
|
||||
$phoneVerify = rand(100000,999999);
|
||||
session('WST_USER',null);
|
||||
$rv = ['status'=>-1,'msg'=>'短信发送失败'];
|
||||
$tpl = WSTMsgTemplates('PHONE_FOTGET');
|
||||
if( $tpl['tplContent']!='' && $tpl['status']=='1'){
|
||||
$params = ['tpl'=>$tpl,'params'=>['VERFIY_CODE'=>$phoneVerify,'VERFIY_TIME'=>10]];
|
||||
$m = new LogSms();
|
||||
$rv = $m->sendSMS(0,session('findPass.userPhone'),$params,'getPhoneVerify',$phoneVerify);
|
||||
}
|
||||
if($rv['status']==1){
|
||||
// 记录发送短信的时间,用于验证是否过期
|
||||
session('REST_Time',time());
|
||||
$USER = [];
|
||||
$USER['phoneVerify'] = $phoneVerify;
|
||||
$USER['time'] = time();
|
||||
session('findPhone',$USER);
|
||||
return WSTReturn('短信发送成功!',1);
|
||||
}
|
||||
return $rv;
|
||||
}
|
||||
/**
|
||||
* 手机验证码检测
|
||||
* -1 错误,1正确
|
||||
*/
|
||||
public function checkfindPhone($phoneVerify){
|
||||
if(!session('findPhone.phoneVerify') || time()>floatval(session('findPhone.time'))+10*60){
|
||||
return WSTReturn("校验码已失效,请重新发送!");
|
||||
exit();
|
||||
}
|
||||
if (session('findPhone.phoneVerify') == $phoneVerify ) {
|
||||
$fuserId = session('findPass.userId');
|
||||
if(!empty($fuserId)){
|
||||
session('REST_userId',$fuserId);
|
||||
session('REST_success','1');
|
||||
$rs['status'] = 1;
|
||||
$rs['url'] = url('home/users/resetPass');
|
||||
return $rs;
|
||||
}
|
||||
return WSTReturn('无效用户',-1);
|
||||
}
|
||||
return WSTReturn('校验码错误!',-1);
|
||||
}
|
||||
/**
|
||||
* 发送验证邮件/找回密码
|
||||
*/
|
||||
public function getfindEmail(){
|
||||
$code = rand(0,999999);
|
||||
$sendRs = ['status'=>-1,'msg'=>'邮件发送失败'];
|
||||
$tpl = WSTMsgTemplates('EMAIL_FOTGET');
|
||||
if( $tpl['tplContent']!='' && $tpl['status']=='1'){
|
||||
$find = ['${LOGIN_NAME}','${SEND_TIME}','${VERFIY_CODE}','${VERFIY_TIME}'];
|
||||
$replace = [session('findPass.loginName'),date('Y-m-d H:i:s'),$code,30];
|
||||
$sendRs = WSTSendMail(session('findPass.userEmail'),'密码重置',str_replace($find,$replace,$tpl['content']));
|
||||
}
|
||||
if($sendRs['status']==1){
|
||||
$uId = session('findPass.userId');
|
||||
session("findPass.key", $code);
|
||||
// 发起重置密码的时间;
|
||||
session('REST_Time',time());
|
||||
return WSTReturn("发送成功",1);
|
||||
}else{
|
||||
return WSTReturn($sendRs['msg'],-1);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载登录小窗口
|
||||
*/
|
||||
public function toLoginBox(){
|
||||
return $this->fetch('box_login');
|
||||
}
|
||||
|
||||
/**
|
||||
* 跳去修改支付密码页
|
||||
*/
|
||||
public function editPayPass(){
|
||||
$m = new MUsers();
|
||||
//获取用户信息
|
||||
$userId = (int)session('WST_USER.userId');
|
||||
$data = $m->getById($userId);
|
||||
$this->assign('data',$data);
|
||||
return $this->fetch('users/security/user_pay_pass');
|
||||
}
|
||||
/**
|
||||
* 修改支付密码
|
||||
*/
|
||||
public function payPassEdit(){
|
||||
$userId = (int)session('WST_USER.userId');
|
||||
$m = new MUsers();
|
||||
$rs = $m->editPayPass($userId);
|
||||
return $rs;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户金额
|
||||
*/
|
||||
public function getUserMoney(){
|
||||
$m = new MUsers();
|
||||
$rs = $m->getFieldsById((int)session('WST_USER.userId'),'userMoney,lockMoney,rechargeMoney,payPwd');
|
||||
$rs['isSetPayPwd'] = ($rs['payPwd']=='')?0:1;
|
||||
$rs['isDraw'] = ((float)WSTConf('CONF.drawCashUserLimit')<=$rs['userMoney'])?1:0;
|
||||
unset($rs['payPwd']);
|
||||
return WSTReturn('',1,$rs);
|
||||
}
|
||||
}
|
||||
|
229
hyhproject/home/model/Articles.php
Executable file
@ -0,0 +1,229 @@
|
||||
<?php
|
||||
namespace wstmart\home\model;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 文章类
|
||||
*/
|
||||
use think\Db;
|
||||
class Articles extends Base{
|
||||
/**
|
||||
* 获取帮助左侧列表
|
||||
*/
|
||||
public function helpList(){
|
||||
$arts = cache('arts');
|
||||
if(!$arts){
|
||||
$rs = $this->alias('a')->join('article_cats ac','a.catId=ac.catId','inner')
|
||||
->field('a.articleId,a.catId,a.articleTitle,ac.catName')
|
||||
->where(['a.dataFlag'=>1,
|
||||
'a.isshow'=>1,
|
||||
'ac.dataFlag'=>1,
|
||||
'ac.isShow'=>1,
|
||||
'ac.parentId'=>7])
|
||||
->cache(true)
|
||||
->select();
|
||||
//同一分类下的文章放一起
|
||||
$catName = [];
|
||||
$arts = [];
|
||||
foreach($rs as $k=>$v){
|
||||
if(in_array($v['catName'],$catName)){
|
||||
$arts[$v['catName'].'-'.$v['catId']][] = $v;
|
||||
}else{
|
||||
$catName[] = $v['catName'];
|
||||
$arts[$v['catName'].'-'.$v['catId']][] = $v;
|
||||
}
|
||||
}
|
||||
cache('arts',$arts,86400);
|
||||
}
|
||||
return $arts;
|
||||
}
|
||||
/**
|
||||
* 根据id获取帮助文章
|
||||
*/
|
||||
public function getHelpById(){
|
||||
$id = (int)input('id');
|
||||
WSTArticleVisitorNum($id);// 统计文章访问量
|
||||
return $this->alias('a')->join('__ARTICLE_CATS__ ac','a.catId=ac.catId','inner')->where('ac.parentId=7 and a.dataFlag=1 and a.isShow=1')->cache(true)->find($id);
|
||||
}
|
||||
/**
|
||||
* 根据id获取资讯文章
|
||||
*/
|
||||
public function getNewsById($id = 0){
|
||||
$id = $id>0?$id:(int)input('id');
|
||||
WSTArticleVisitorNum($id);// 统计文章访问量
|
||||
return $this->alias('a')
|
||||
->field('a.*,ac.catName')
|
||||
->join('__ARTICLE_CATS__ ac','a.catId=ac.catId','inner')
|
||||
->where('a.catId<>7 and ac.parentId<>7 and a.dataFlag=1 and a.isShow=1')
|
||||
->cache(true)
|
||||
->find($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取资讯列表【左侧分类】
|
||||
*/
|
||||
public function NewsList(){
|
||||
$list = $this->getTree();
|
||||
foreach($list as $k=>$v){
|
||||
if(!empty($v['children'])){
|
||||
foreach($v['children'] as $k1=>$v1){
|
||||
// 二级分类下的文章总条数
|
||||
$list[$k]['children'][$k1]['newsCount'] = $this->where(['catId'=>$v1['catId'],
|
||||
'dataFlag'=>1,'isShow'=>1])->cache(true)->count();
|
||||
}
|
||||
}
|
||||
}
|
||||
return $list;
|
||||
}
|
||||
|
||||
public function getTree(){
|
||||
$artTree = cache('artTree');
|
||||
if(!$artTree){
|
||||
$data = Db::name('article_cats')->field('catName,catId,parentId')->where('parentId <> 7 and catId <> 7 and dataFlag=1 and isShow=1')->cache(true)->select();
|
||||
$artTree = $this->_getTree($data, 0);
|
||||
cache('artTree',$artTree,86400);
|
||||
}
|
||||
return $artTree;
|
||||
}
|
||||
public function _getTree($data,$parentId){
|
||||
$tree = [];
|
||||
foreach($data as $k=>$v){
|
||||
if($v['parentId']==$parentId){
|
||||
// 再找其下级分类
|
||||
$v['children'] = $this->_getTree($data,$v['catId']);
|
||||
$tree[] = $v;
|
||||
}
|
||||
}
|
||||
return $tree;
|
||||
}
|
||||
/**
|
||||
* 根据分类id获取文章列表
|
||||
*/
|
||||
public function nList(){
|
||||
$catId = (int)input('catId');
|
||||
$rs = $this->alias('a')
|
||||
->join('__ARTICLE_CATS__ ac','a.catId=ac.catId','inner')
|
||||
->field('a.*')
|
||||
->where(['a.catId'=>$catId,
|
||||
'a.dataFlag'=>1,
|
||||
'a.isShow'=>1,
|
||||
'ac.dataFlag'=>1,
|
||||
'ac.isShow'=>1,
|
||||
'ac.parentId'=>['<>',7],
|
||||
])
|
||||
->cache(true)
|
||||
->paginate();
|
||||
return $rs;
|
||||
}
|
||||
/**
|
||||
* 面包屑导航
|
||||
*/
|
||||
public function bcNav(){
|
||||
$catId = (int)input('catId'); //分类id
|
||||
$artId = (int)input('id'); //文章id
|
||||
$data = Db::name('article_cats')->field('catId,parentId,catName')->cache(true)->select();
|
||||
if($artId){
|
||||
$catId = $this->where('articleId',$artId)->value('catId');
|
||||
}
|
||||
$bcNav = $this->getParents($data,$catId,$isClear=true);
|
||||
return $bcNav;
|
||||
|
||||
}
|
||||
/**
|
||||
* 获取父级分类
|
||||
*/
|
||||
public function getParents($data, $catId,$isClear=false){
|
||||
static $bcNav = [];
|
||||
if($isClear)
|
||||
$bcNav = [];
|
||||
foreach($data as $k=>$v){
|
||||
if($catId == $v['catId']){
|
||||
if($catId!=0){
|
||||
$this->getParents($data, $v['parentId']);
|
||||
$bcNav[] = $v;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $bcNav;
|
||||
}
|
||||
|
||||
/**
|
||||
* 记录解决情况
|
||||
*/
|
||||
public function recordSolve(){
|
||||
$articleId = (int)input('id');
|
||||
$status = (int)input('status');
|
||||
if($status==1){
|
||||
$rs = $this->where('articleId',$articleId)->setInc('solve');
|
||||
}else{
|
||||
$rs = $this->where('articleId',$articleId)->setInc('unsolve');
|
||||
}
|
||||
if($rs!==false){
|
||||
return WSTReturn('操作成功',1);
|
||||
}else{
|
||||
return WSTReturn('操作失败',-1);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取资讯中心的子集分类id
|
||||
*/
|
||||
public function getChildIds(){
|
||||
$ids = [];
|
||||
$data = Db::name('article_cats')->cache(true)->select();
|
||||
foreach($data as $k=>$v){
|
||||
if($v['parentId']!=7 && $v['catId']!=7 && $v['parentId']!=0 ){
|
||||
$ids[] = $v['catId'];
|
||||
}
|
||||
}
|
||||
return $ids;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取咨询中中心所有文章
|
||||
*/
|
||||
public function getArticles(){
|
||||
// 获取咨询中心下的所有分类id
|
||||
$ids = $this->getChildIds();
|
||||
$rs = $this->alias('a')
|
||||
->field('a.*')
|
||||
->join('__ARTICLE_CATS__ ac','a.catId=ac.catId','inner')
|
||||
->where(['a.catId'=>['in',$ids],
|
||||
'a.dataFlag'=>1,
|
||||
'a.isShow'=>1,
|
||||
'ac.dataFlag'=>1,
|
||||
'ac.isShow'=>1,
|
||||
'ac.parentId'=>['<>',7],
|
||||
])
|
||||
->distinct(true)
|
||||
->cache(true)
|
||||
->paginate(15);
|
||||
return $rs;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取指定分类下的文章
|
||||
*/
|
||||
public function getArticlesByCat($catId){
|
||||
$ids = $this->getChildIds();
|
||||
$rs = $this->alias('a')
|
||||
->field('a.*')
|
||||
->join('__ARTICLE_CATS__ ac','a.catId=ac.catId','inner')
|
||||
->where(['a.catId'=>['in',$ids],
|
||||
'a.dataFlag'=>1,
|
||||
'a.isShow'=>1,
|
||||
'ac.dataFlag'=>1,
|
||||
'ac.isShow'=>1,
|
||||
'ac.parentId'=>['<>',7],
|
||||
])
|
||||
->distinct(true)
|
||||
->cache(true)
|
||||
->select();
|
||||
$data = [];
|
||||
if(!empty($rs)){
|
||||
foreach($rs as $key =>$v){
|
||||
$data[$v['articleId']] = $v;
|
||||
}
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
}
|
61
hyhproject/home/model/Attributes.php
Executable file
@ -0,0 +1,61 @@
|
||||
<?php
|
||||
namespace wstmart\home\model;
|
||||
use wstmart\common\model\GoodsCats as M;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 商品属性分类
|
||||
*/
|
||||
class Attributes extends Base{
|
||||
/**
|
||||
* 获取可供筛选的商品属性
|
||||
*/
|
||||
public function listQueryByFilter($catId){
|
||||
$m = new M();
|
||||
$ids = $m->getParentIs($catId);
|
||||
if(!empty($ids)){
|
||||
$catIds = [];
|
||||
foreach ($ids as $key =>$v){
|
||||
$catIds[] = $v;
|
||||
}
|
||||
/*$attrs = $this->alias('a')
|
||||
->join('__GOODS_ATTRIBUTES__ ga','ga.attrId=a.attrId','inner')
|
||||
->where(['a.goodsCatId'=>['in',$catIds],'a.isShow'=>1,'a.dataFlag'=>1,'a.attrType'=>['<>',0]])
|
||||
->field('a.attrId,a.attrName,a.attrVal')->order('a.attrSort asc')->select();*/
|
||||
|
||||
// 取出分类下有设置的属性。
|
||||
$attrs = $this->alias('a')
|
||||
->join('__GOODS_ATTRIBUTES__ ga','ga.attrId=a.attrId','inner')
|
||||
->field('ga.attrId,GROUP_CONCAT(distinct ga.attrVal) attrVal,a.attrName')
|
||||
->where(['a.goodsCatId'=>['in',$catIds],'a.isShow'=>1,'a.dataFlag'=>1,'a.attrType'=>['<>',0]])
|
||||
->group('ga.attrId')
|
||||
->order('a.attrSort asc')
|
||||
->select();
|
||||
foreach ($attrs as $key =>$v){
|
||||
$attrs[$key]['attrVal'] = explode(',',$v['attrVal']);
|
||||
}
|
||||
return $attrs;
|
||||
}
|
||||
return [];
|
||||
}
|
||||
/**
|
||||
* 根据商品id获取可供选择的属性
|
||||
*/
|
||||
public function getAttribute($goodsId){
|
||||
if(empty($goodsId))return [];
|
||||
$attrs = $this->alias('a')
|
||||
->join('__GOODS_ATTRIBUTES__ ga','ga.attrId=a.attrId','inner')
|
||||
->field('ga.attrId,GROUP_CONCAT(distinct ga.attrVal) attrVal,a.attrName')
|
||||
->where(['ga.goodsId'=>['in',$goodsId],
|
||||
'a.isShow'=>1,
|
||||
'a.dataFlag'=>1,
|
||||
'a.attrType'=>['<>',0]])
|
||||
->group('ga.attrId')
|
||||
->order('a.attrSort asc')
|
||||
->select();
|
||||
if(empty($attrs))return [];
|
||||
foreach ($attrs as $key =>$v){
|
||||
$attrs[$key]['attrVal'] = explode(',',$v['attrVal']);
|
||||
}
|
||||
return $attrs;
|
||||
}
|
||||
}
|
9
hyhproject/home/model/Base.php
Executable file
@ -0,0 +1,9 @@
|
||||
<?php
|
||||
namespace wstmart\home\model;
|
||||
use wstmart\common\model\Base as CBase;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 基础模型器
|
||||
*/
|
||||
|
||||
class Base extends CBase {}
|
1315
hyhproject/home/model/Goods.php
Executable file
174
hyhproject/home/model/GoodsVirtuals.php
Executable file
@ -0,0 +1,174 @@
|
||||
<?php
|
||||
namespace wstmart\home\model;
|
||||
use wstmart\common\model\Goods as CGoodsVirtuals;
|
||||
use think\Db;
|
||||
use think\Loader;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 虚拟商品卡券模型
|
||||
*/
|
||||
class GoodsVirtuals extends CGoodsVirtuals{
|
||||
/**
|
||||
* 导入
|
||||
*/
|
||||
public function importCards($data){
|
||||
Loader::import('phpexcel.PHPExcel.IOFactory');
|
||||
$objReader = \PHPExcel_IOFactory::load(WSTRootPath().json_decode($data)->route.json_decode($data)->name);
|
||||
$objReader->setActiveSheetIndex(0);
|
||||
$sheet = $objReader->getActiveSheet();
|
||||
$rows = $sheet->getHighestRow();
|
||||
$cells = $sheet->getHighestColumn();
|
||||
//数据集合
|
||||
$readData = [];
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$goodsId = (int)input('goodsId');
|
||||
$importNum = 0;
|
||||
//生成订单
|
||||
Db::startTrans();
|
||||
try{
|
||||
//读取现有的卡券
|
||||
$goodscards = Db::name('goods_virtuals')->where(['dataFlag'=>1,'goodsId'=>$goodsId])->field('cardNo')->select();
|
||||
$goodscardsMap = [];
|
||||
if(count($goodscards)>0){
|
||||
foreach($goodscards as $v){
|
||||
$goodscardsMap[] = $v['cardNo'];
|
||||
}
|
||||
}
|
||||
//循环读取每个单元格的数据
|
||||
for ($row = 2; $row <= $rows; $row++){//行数是以第2行开始
|
||||
$cards = [];
|
||||
$cards['shopId'] = $shopId;
|
||||
$cards['goodsId'] = $goodsId;
|
||||
$cardNo = trim($sheet->getCell("A".$row)->getValue());
|
||||
if($cardNo=='')break;//如果某一行第一列为空则停止导入
|
||||
$cards['cardNo'] = $cardNo;
|
||||
$cards['cardPwd'] = trim($sheet->getCell("B".$row)->getValue());
|
||||
$cards['createTime'] = date('Y-m-d H:i:s');
|
||||
if(in_array($cardNo,$goodscardsMap))continue;
|
||||
$goodscardsMap[] = $cardNo;
|
||||
$readData[] = $cards;
|
||||
$importNum++;
|
||||
}
|
||||
if(count($readData)>0){
|
||||
model('GoodsVirtuals')->saveAll($readData);
|
||||
$this->updateGoodsStock($goodsId);
|
||||
}
|
||||
Db::commit();
|
||||
return json_encode(['status'=>1,'importNum'=>$importNum]);
|
||||
}catch (\Exception $e) {
|
||||
Db::rollback();errLog($e);
|
||||
return json_encode(WSTReturn('导入商品卡券失败',-1));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
public function del(){
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$ids = input('ids');
|
||||
$id = input('id');
|
||||
if($ids=='')return WSTReturn('请选择要删除的卡券号');
|
||||
try{
|
||||
$this->where(['shopId'=>$shopId,'id'=>['in',$ids],'goodsId'=>$id])->update(['dataFlag'=>-1]);
|
||||
$this->updateGoodsStock($id);
|
||||
Db::commit();
|
||||
}catch (\Exception $e) {
|
||||
Db::rollback();errLog($e);
|
||||
return WSTReturn('操作失败');
|
||||
}
|
||||
return WSTReturn('操作成功',1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*/
|
||||
public function edit(){
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$id = (int)input('id');
|
||||
//判断卡券是否有效
|
||||
$rs = $this->where(['id'=>$id,'shopId'=>$shopId,'dataFlag'=>1,'isUse'=>0])->find();
|
||||
if(empty($rs))return WSTReturn('非法的卡券');
|
||||
$cardNo = input('cardNo');
|
||||
$cardPwd = input('cardPwd');
|
||||
if($cardNo=='' || $cardPwd=='')return WSTReturn('请输入完整卡券信息');
|
||||
$conts = $this->where(['shopId'=>$shopId,'dataFlag'=>1,'cardNo'=>$cardNo,'id'=>['<>',$id]])->Count();
|
||||
if($conts>0)return WSTReturn('该卡券号已存在,请重新输入');
|
||||
$rs->cardNo = $cardNo;
|
||||
$rs->cardPwd = $cardPwd;
|
||||
$rs->save();
|
||||
return WSTReturn('操作成功',1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取虚拟商品库存列表
|
||||
*/
|
||||
public function stockByPage(){
|
||||
$key = input('cardNo');
|
||||
$id = (int)input('id');
|
||||
$isUse = (int)input('isUse',-1);
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$where = ['shopId'=>$shopId,'goodsId'=>$id,'dataFlag'=>1];
|
||||
if($key !='')$where['cardNo'] = ['like','%'.$key.'%'];
|
||||
if(in_array($isUse,[0,1]))$where['isUse'] = $isUse;
|
||||
$page = $this->field('orderNo,orderId,cardNo,id,cardPwd,isUse')
|
||||
->where($where)->order('id desc')
|
||||
->paginate(20)->toArray();
|
||||
return $page;
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成卡券号
|
||||
*/
|
||||
public function getCardNo($shopId){
|
||||
$cardNo = date('Ymd').sprintf("%08d", rand(0,99999999));
|
||||
$conts = $this->where(['shopId'=>$shopId,'dataFlag'=>1,'cardNo'=>$cardNo])->Count();
|
||||
if($conts==0){
|
||||
return $cardNo;
|
||||
}else{
|
||||
return $this->getCardNo($shopId);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成卡券
|
||||
*/
|
||||
public function add(){
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$goodsId = (int)input('goodsId');
|
||||
//判断商品是否有效
|
||||
$goods = model('goods')->where(['goodsId'=>$goodsId,'shopId'=>$shopId,'goodsType'=>1])->find();
|
||||
if(empty($goods))return WSTReturn('非法的卡券商品');
|
||||
$cardNo = input('cardNo');
|
||||
$cardPwd = input('cardPwd');
|
||||
if($cardNo=='' || $cardPwd=='')return WSTReturn('请输入完整卡券信息');
|
||||
$conts = $this->where(['shopId'=>$shopId,'dataFlag'=>1,'cardNo'=>$cardNo])->Count();
|
||||
if($conts>0)return WSTReturn('该卡券号已存在,请重新输入');
|
||||
$data = [];
|
||||
$data['cardNo'] = $cardNo;
|
||||
$data['cardPwd'] = $cardPwd;
|
||||
$data['dataFlag'] = 1;
|
||||
$data['shopId'] = $shopId;
|
||||
$data['goodsId'] = $goodsId;
|
||||
$data['createTime'] = date('Y-m-d H:i:s');
|
||||
Db::startTrans();
|
||||
try{
|
||||
$this->save($data);
|
||||
$this->updateGoodsStock($goodsId);
|
||||
Db::commit();
|
||||
}catch (\Exception $e) {
|
||||
Db::rollback();errLog($e);
|
||||
return WSTReturn('新增失败');
|
||||
}
|
||||
return WSTReturn('新增成功',1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新商品数量
|
||||
*/
|
||||
public function updateGoodsStock($id){
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$counts = $this->where(['dataFlag'=>1,'goodsId'=>$id,'shopId'=>$shopId,'isUse'=>0])->Count();
|
||||
Db::name('goods')->where('goodsId',$id)->setField('goodsStock',$counts);
|
||||
}
|
||||
}
|
205
hyhproject/home/model/HomeMenus.php
Executable file
@ -0,0 +1,205 @@
|
||||
<?php
|
||||
namespace wstmart\home\model;
|
||||
use wstmart\common\model\HomeMenus as CHomeMenus;
|
||||
use think\Db;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 菜单业务处理
|
||||
*/
|
||||
class HomeMenus extends CHomeMenus{
|
||||
/**
|
||||
* 获取菜单树
|
||||
*/
|
||||
public function getMenus(){
|
||||
$data = cache('WST_HOME_MENUS');
|
||||
if(!$data){
|
||||
$rs = $this->where(['isShow'=>1,'dataFlag'=>1])
|
||||
->field('menuId,parentId,menuName,menuUrl,menuType')->order('menuSort asc,menuId asc')->select();
|
||||
$m1 = ['0'=>[],'1'=>[]];
|
||||
$tmp = [];
|
||||
|
||||
//获取第一级
|
||||
foreach ($rs as $key => $v){
|
||||
if($v['parentId']==0){
|
||||
$m1[$v['menuType']][$v['menuId']] = ['menuId'=>$v['menuId'],'parentId'=>$v['parentId'],'menuName'=>$v['menuName'],'menuUrl'=>$v['menuUrl']];
|
||||
}else{
|
||||
$tmp[$v['parentId']][] = ['menuId'=>$v['menuId'],'parentId'=>$v['parentId'],'menuName'=>$v['menuName'],'menuUrl'=>$v['menuUrl']];
|
||||
}
|
||||
}
|
||||
//获取第二级
|
||||
foreach ($m1 as $key => $v){
|
||||
foreach ($v as $key1 => $v1){
|
||||
if(isset($tmp[$v1['menuId']]))$m1[$key][$key1]['list'] = $tmp[$v1['menuId']];
|
||||
}
|
||||
}
|
||||
//获取第三级
|
||||
foreach ($m1 as $key => $v){
|
||||
foreach ($v as $key1 => $v1){
|
||||
if(isset($v1['list'])){
|
||||
foreach ($v1['list'] as $key2 => $v2){
|
||||
if(isset($tmp[$v2['menuId']]))$m1[$key][$key1]['list'][$key2]['list'] = $tmp[$v2['menuId']];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
cache('WST_HOME_MENUS',$m1,31536000);
|
||||
return $m1;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取店铺菜单树
|
||||
*/
|
||||
public function getShopMenus(){
|
||||
$m1 = $this->getMenus();
|
||||
$userType = (int)session('WST_USER.userType');
|
||||
$menuUrls = array();
|
||||
if($userType==1){
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$roleId = (int)session('WST_USER.roleId');
|
||||
if($roleId>0){
|
||||
$role = model("home/ShopRoles")->getById($roleId);
|
||||
$menuUrls = json_decode($role["privilegeUrls"],true);
|
||||
foreach ($m1[1] as $k1 => $menus1) {
|
||||
if(!array_key_exists($menus1["menuId"],$menuUrls)){
|
||||
unset($m1[1][$k1]);
|
||||
}else{
|
||||
if(isset($menus1["list"])){
|
||||
if(count($menus1["list"])>0){
|
||||
foreach ($menus1["list"] as $k2 => $menus2) {
|
||||
if(!array_key_exists($menus2["menuId"],$menuUrls[$menus1["menuId"]])){
|
||||
unset($m1[1][$k1]["list"][$k2]);
|
||||
}else{
|
||||
if(isset($menus2["list"])){
|
||||
if(count($menus2["list"])>0){
|
||||
foreach ($menus2["list"] as $k3 => $menus3) {
|
||||
$purls = $menuUrls[$menus1["menuId"]][$menus2["menuId"]];
|
||||
$urls = $purls["urls"];
|
||||
if(!in_array(strtolower($menus3["menuUrl"]),$urls)){
|
||||
unset($m1[1][$k1]["list"][$k2]["list"][$k3]);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
unset($m1[1][$k1]["list"][$k2]);
|
||||
}
|
||||
}else{
|
||||
unset($m1[1][$k1]["list"][$k2]);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(count($m1[1][$k1]["list"])==0){
|
||||
unset($m1[1][$k1]);
|
||||
}
|
||||
}else{
|
||||
unset($m1[1][$k1]);
|
||||
}
|
||||
}else{
|
||||
unset($m1[1][$k1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return $m1;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取菜单URL
|
||||
*/
|
||||
public function getMenusUrl(){
|
||||
$wst_user = session('WST_USER');
|
||||
$data = array();
|
||||
if(!empty($wst_user)){
|
||||
$data = cache('WST_PRO_MENUS');
|
||||
if(!$data){
|
||||
$list = $this->where('dataFlag',1)->order('menuType asc')->select();
|
||||
$menus = [];
|
||||
foreach($list as $key => $v){
|
||||
$menus[strtolower($v['menuUrl'])] = $v['menuType'];
|
||||
if($v['menuOtherUrl']!=''){
|
||||
$str = explode(',',$v['menuOtherUrl']);
|
||||
foreach ($str as $vkey => $vv){
|
||||
if($vv=='')continue;
|
||||
$menus[strtolower($vv)] = $v['menuType'];
|
||||
}
|
||||
}
|
||||
}
|
||||
cache('WST_PRO_MENUS',$menus,31536000);
|
||||
return $menus;
|
||||
}
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* 角色可访问url
|
||||
*/
|
||||
public function getShopMenusUrl(){
|
||||
$wst_user = session('WST_USER');
|
||||
|
||||
if(!empty($wst_user)){
|
||||
$roleId = isset($wst_user["roleId"])?(int)$wst_user["roleId"]:0;
|
||||
if($roleId>0){
|
||||
$role = model("home/ShopRoles")->getById($roleId);
|
||||
$menuUrls = $role["menuUrls"];
|
||||
$menuOtherUrls = $role["menuOtherUrls"];
|
||||
$shopUrls = array_merge($menuUrls,$menuOtherUrls);
|
||||
}
|
||||
}
|
||||
$shopUrls[] = "home/shops/index";
|
||||
$shopUrls[] = "home/reports/getstatsales";
|
||||
return $shopUrls;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取菜单父ID
|
||||
*/
|
||||
public function getParentId($menuId){
|
||||
$data = cache('WST_HOME_MENUS_PARENT');
|
||||
if(!$data){
|
||||
$rs = $this->where(['isShow'=>1,'dataFlag'=>1])
|
||||
->field('menuId,parentId,menuType')->order('menuSort asc,menuId asc')->select();
|
||||
$tmp = [];
|
||||
foreach ($rs as $key => $v) {
|
||||
$tmp[$v['menuId']] = $v;
|
||||
}
|
||||
$data = [];
|
||||
foreach ($tmp as $key => $v) {
|
||||
if($v['parentId']==0){
|
||||
$data[$v['menuId']] = $v;
|
||||
}else{
|
||||
$data[$v['menuId']] = $tmp[$v['parentId']];
|
||||
}
|
||||
}
|
||||
cache('WST_HOME_MENUS_PARENT',$data,31536000);
|
||||
}
|
||||
return $data[$menuId];
|
||||
}
|
||||
/**
|
||||
* 获取店铺角色菜单
|
||||
*/
|
||||
public function getRoleMenus(){
|
||||
$data = cache('WST_HOME_MENUS_SHOPROLE');
|
||||
if(!$data){
|
||||
$rs = $this->alias('m1')
|
||||
->join("__HOME_MENUS__ m2","m1.parentId=m2.menuId")
|
||||
->where(['m1.isShow'=>1,'m1.dataFlag'=>1,"m1.menuType"=>1,"m2.parentId"=>[">",0]])
|
||||
->field('m1.menuId,m1.parentId,m2.parentId grandpaId,m1.menuName,m1.menuUrl,m1.menuOtherUrl,m1.menuType')
|
||||
->order('m1.menuSort asc,m1.menuId asc')
|
||||
->select();
|
||||
$m = array();
|
||||
//获取第一级
|
||||
foreach ($rs as $key => $v){
|
||||
$m[$v['menuId']] = ['menuId'=>$v['menuId'],'parentId'=>$v['parentId'],'grandpaId'=>$v['grandpaId'],'menuName'=>$v['menuName'],'menuUrl'=>$v['menuUrl'],'menuOtherUrl'=>$v['menuOtherUrl']];
|
||||
}
|
||||
cache('WST_HOME_MENUS_SHOPROLE',$m,31536000);
|
||||
return $m;
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
148
hyhproject/home/model/Imports.php
Executable file
@ -0,0 +1,148 @@
|
||||
<?php
|
||||
namespace wstmart\home\model;
|
||||
use think\Db;
|
||||
use think\Loader;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 导入类
|
||||
*/
|
||||
class Imports{
|
||||
/**
|
||||
* 上传商品数据
|
||||
*/
|
||||
public function importGoods($data){
|
||||
Loader::import('phpexcel.PHPExcel.IOFactory');
|
||||
$objReader = \PHPExcel_IOFactory::load(WSTRootPath().json_decode($data)->route.json_decode($data)->name);
|
||||
$objReader->setActiveSheetIndex(0);
|
||||
$sheet = $objReader->getActiveSheet();
|
||||
$rows = $sheet->getHighestRow();
|
||||
$cells = $sheet->getHighestColumn();
|
||||
//数据集合
|
||||
$readData = [];
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$importNum = 0;
|
||||
$goodsCatMap = []; //记录最后一级商品分类
|
||||
$goodsCatPathMap = [];//记录商品分类路径
|
||||
$shopCatMap = [];//记录店铺分类
|
||||
$goodsCat1Map = [];//记录最后一级商品分类对应的一级分类
|
||||
$tmpGoodsCatId = 0;
|
||||
$goodsCatBrandMap = [];//商品分类和品牌的对应关系
|
||||
//生成订单
|
||||
Db::startTrans();
|
||||
try{
|
||||
//循环读取每个单元格的数据
|
||||
for ($row = 3; $row <= $rows; $row++){//行数是以第3行开始
|
||||
$tmpGoodsCatId = 0;
|
||||
$goods = [];
|
||||
$goods['shopId'] = $shopId;
|
||||
$goods['goodsName'] = trim($sheet->getCell("A".$row)->getValue());
|
||||
if($goods['goodsName']=='')break;//如果某一行第一列为空则停止导入
|
||||
$goods['goodsSn'] = trim($sheet->getCell("B".$row)->getValue());
|
||||
$goods['productNo'] = trim($sheet->getCell("C".$row)->getValue());
|
||||
$goods['marketPrice'] = trim($sheet->getCell("D".$row)->getValue());
|
||||
if(floatval($goods['marketPrice'])<0.01)$goods['marketPrice'] = 0.01;
|
||||
$goods['shopPrice'] = trim($sheet->getCell("E".$row)->getValue());
|
||||
if(floatval($goods['shopPrice'])<0.01)$goods['shopPrice'] = 0.01;
|
||||
$goods['goodsStock'] = trim($sheet->getCell("F".$row)->getValue());
|
||||
if(intval($goods['goodsStock'])<=0)$goods['goodsStock'] = 0;
|
||||
$goods['warnStock'] = trim($sheet->getCell("G".$row)->getValue());
|
||||
if(intval($goods['warnStock'])<=0)$goods['warnStock'] = 0;
|
||||
$goods['goodsImg'] = '';
|
||||
$goods['shopCatId1'] = 0;
|
||||
$goods['shopCatId2'] = 0;
|
||||
$goods['goodsUnit'] = trim($sheet->getCell("H".$row)->getValue());
|
||||
$goods['goodsSeoKeywords'] = trim($sheet->getCell("I".$row)->getValue());
|
||||
$goods['goodsTips'] = trim($sheet->getCell("J".$row)->getValue());
|
||||
$goods['isRecom'] = (trim($sheet->getCell("K".$row)->getValue())!='')?1:0;
|
||||
$goods['isBest'] = (trim($sheet->getCell("L".$row)->getValue())!='')?1:0;
|
||||
$goods['isNew'] = (trim($sheet->getCell("M".$row)->getValue())!='')?1:0;
|
||||
$goods['isHot'] = (trim($sheet->getCell("N".$row)->getValue())!='')?1:0;
|
||||
$goods['goodsCatId'] = 0;
|
||||
//查询商城分类
|
||||
$goodsCat = trim($sheet->getCell("O".$row)->getValue());
|
||||
if(!empty($goodsCat)){
|
||||
//先判断集合是否存在,不存在的时候才查数据库
|
||||
if(isset($goodsCatMap[$goodsCat])){
|
||||
$goods['goodsCatId'] = $goodsCatMap[$goodsCat];
|
||||
$goods['goodsCatIdPath'] = $goodsCatPathMap[$goodsCat];
|
||||
$tmpGoodsCatId = $goodsCat1Map[$goodsCat];
|
||||
}else{
|
||||
$goodsCatId = Db::name('goods_cats')->where(['catName'=>$goodsCat,'dataFlag'=>1])->field('catId')->find();
|
||||
if(!empty($goodsCatId['catId'])){
|
||||
$goodsCats = model('GoodsCats')->getParentIs($goodsCatId['catId']);
|
||||
$goods['goodsCatId'] = $goodsCatId['catId'];
|
||||
$goods['goodsCatIdPath'] = implode('_',$goodsCats)."_";
|
||||
//放入集合
|
||||
$goodsCatMap[$goodsCat] = $goodsCatId['catId'];
|
||||
$goodsCatPathMap[$goodsCat] = implode('_',$goodsCats)."_";
|
||||
$goodsCat1Map[$goodsCat] = $goodsCats[0];
|
||||
$tmpGoodsCatId = $goodsCats[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
//查询店铺分类
|
||||
$shopGoodsCat = trim($sheet->getCell("P".$row)->getValue());
|
||||
if(!empty($shopGoodsCat)){
|
||||
//先判断集合是否存在,不存在的时候才查数据库
|
||||
if(isset($shopCatMap[$shopGoodsCat])){
|
||||
$goods['shopCatId1'] = $shopCatMap[$shopGoodsCat]['s1'];
|
||||
$goods['shopCatId2'] = $shopCatMap[$shopGoodsCat]['s2'];
|
||||
}else{
|
||||
$shopCat= Db::name("shop_cats")->alias('sc1')
|
||||
->join('__SHOP_CATS__ sc2','sc2.parentId=sc1.catId','left')
|
||||
->field('sc1.catId catId1,sc2.catId catId2,sc2.catName')
|
||||
->where(['sc1.shopId'=> $shopId,'sc1.dataFlag'=>1,'sc2.catName'=>$shopGoodsCat])
|
||||
->find();
|
||||
if(!empty($shopCat)){
|
||||
$goods['shopCatId1'] = $shopCat['catId1'];
|
||||
$goods['shopCatId2'] = $shopCat['catId2'];
|
||||
//放入集合
|
||||
$shopCatMap[$shopGoodsCat] = [];
|
||||
$shopCatMap[$shopGoodsCat]['s1'] = $goods['shopCatId1'];
|
||||
$shopCatMap[$shopGoodsCat]['s2'] = $goods['shopCatId2'];
|
||||
}
|
||||
}
|
||||
}
|
||||
//查询品牌
|
||||
$brand = trim($sheet->getCell("Q".$row)->getValue());
|
||||
if(!empty($brand)){
|
||||
if(isset($goodsCatBrandMap[$brand])){
|
||||
$goods['brandId'] = $goodsCatBrandMap[$brand];
|
||||
}else{
|
||||
$brands = Db::name('brands')->alias('a')->join('__CAT_BRANDS__ cb','a.brandId=cb.brandId','inner')
|
||||
->where(['catId'=>$tmpGoodsCatId,'brandName'=>$brand,'dataFlag'=>1])->field('a.brandId')->find();
|
||||
if(!empty($brands)){
|
||||
$goods['brandId'] = $brands['brandId'];
|
||||
$goodsCatBrandMap[$brand] = $brands['brandId'];
|
||||
}
|
||||
}
|
||||
}
|
||||
$goods['goodsDesc'] = trim($sheet->getCell("R".$row)->getValue());
|
||||
$goods['isSale'] = 0;
|
||||
$goods['goodsStatus'] = (WSTConf("CONF.isGoodsVerify")==1)?0:1;
|
||||
$goods['dataFlag'] = 1;
|
||||
$goods['saleTime'] = date('Y-m-d H:i:s');
|
||||
$goods['createTime'] = date('Y-m-d H:i:s');
|
||||
$readData[] = $goods;
|
||||
$importNum++;
|
||||
}
|
||||
if(count($readData)>0){
|
||||
$list = model('Goods')->saveAll($readData);
|
||||
//建立商品评分记录
|
||||
$goodsScores = [];
|
||||
foreach ($list as $key =>$v){
|
||||
$gs = [];
|
||||
$gs['goodsId'] = $v['goodsId'];
|
||||
$gs['shopId'] = $shopId;
|
||||
$goodsScores[] = $gs;
|
||||
}
|
||||
if(count($goodsScores)>0)Db::name('goods_scores')->insertAll($goodsScores);
|
||||
}
|
||||
Db::commit();
|
||||
return json_encode(['status'=>1,'importNum'=>$importNum]);
|
||||
}catch (\Exception $e) {
|
||||
Db::rollback();errLog($e);
|
||||
return json_encode(WSTReturn('导入商品失败',-1));
|
||||
}
|
||||
}
|
||||
}
|
97
hyhproject/home/model/Reports.php
Executable file
@ -0,0 +1,97 @@
|
||||
<?php
|
||||
namespace wstmart\home\model;
|
||||
use think\Db;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 报表模型类
|
||||
*/
|
||||
class Reports{
|
||||
/**
|
||||
* 获取商品销售排行
|
||||
*/
|
||||
public function getTopSaleGoods(){
|
||||
$start = date('Y-m-d 00:00:00',strtotime(input('startDate')));
|
||||
$end = date('Y-m-d 23:59:59',strtotime(input('endDate')));
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$rs = Db::field('og.goodsId,g.goodsName,goodsSn,sum(og.goodsNum) goodsNum,g.goodsImg')->name('order_goods')->alias('og')
|
||||
->join('__ORDERS__ o','og.orderId=o.orderId')
|
||||
->join('__GOODS__ g','og.goodsId=g.goodsId')
|
||||
->order('goodsNum desc')
|
||||
->whereTime('o.createTime','between',[$start,$end])
|
||||
->where('(payType=0 or (payType=1 and isPay=1)) and o.dataFlag=1 and o.shopId='.$shopId)->group('og.goodsId')
|
||||
->limit(10)->select();
|
||||
return WSTReturn('',1,$rs);
|
||||
}
|
||||
/**
|
||||
* 获取销售额统计
|
||||
*/
|
||||
public function getStatSales(){
|
||||
$start = date('Y-m-d 00:00:00',strtotime(input('startDate')));
|
||||
$end = date('Y-m-d 23:59:59',strtotime(input('endDate')));
|
||||
$payType = (int)input('payType',-1);
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$rs = Db::field('left(createTime,10) createTime,sum(totalMoney) totalMoney,count(orderId) orderNum')->name('orders')->whereTime('createTime','between',[$start,$end])
|
||||
->where('shopId',$shopId)
|
||||
->where('(payType=0 or (payType=1 and isPay=1)) and dataFlag=1 '.(in_array($payType,[0,1])?" and payType=".$payType:''))
|
||||
->order('createTime asc')
|
||||
->group('left(createTime,10)')->select();
|
||||
$rdata = [];
|
||||
if(count($rs)>0){
|
||||
$days = [];
|
||||
$tmp = [];
|
||||
foreach($rs as $key => $v){
|
||||
$days[] = $v['createTime'];
|
||||
$rdata['dayVals'][] = $v['totalMoney'];
|
||||
$rdata['list'][] = ['day'=>$v['createTime'],'val'=>$v['totalMoney'],'num'=>$v['orderNum']];
|
||||
}
|
||||
$rdata['days'] = $days;
|
||||
}
|
||||
return WSTReturn('',1,$rdata);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取商家订单情况
|
||||
*/
|
||||
public function getStatOrders(){
|
||||
$start = date('Y-m-d 00:00:00',strtotime(input('startDate')));
|
||||
$end = date('Y-m-d 23:59:59',strtotime(input('endDate')));
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$rs = Db::field('left(createTime,10) createTime,orderStatus,count(orderId) orderNum')->name('orders')->whereTime('createTime','between',[$start,$end])
|
||||
->where('shopId',$shopId)
|
||||
->order('createTime asc')
|
||||
->group('left(createTime,10),orderStatus')->select();
|
||||
$rdata = [];
|
||||
if(count($rs)>0){
|
||||
$days = [];
|
||||
$tmp = [];
|
||||
$map = ['-3'=>0,'-1'=>0,'1'=>0];
|
||||
foreach($rs as $key => $v){
|
||||
if(!in_array($v['createTime'],$days))$days[] = $v['createTime'];
|
||||
$tmp[$v['orderStatus'].'_'.$v['createTime']] = $v['orderNum'];
|
||||
}
|
||||
foreach($days as $v){
|
||||
$total = 0;
|
||||
$ou = 0;
|
||||
$o_3 = isset($tmp['-3_'.$v])?$tmp['-3_'.$v]:0;
|
||||
$o_1 = isset($tmp['-1_'.$v])?$tmp['-1_'.$v]:0;
|
||||
if(isset($tmp['0_'.$v]))$ou += $tmp['0_'.$v];
|
||||
if(isset($tmp['1_'.$v]))$ou += $tmp['1_'.$v];
|
||||
if(isset($tmp['2_'.$v]))$ou += $tmp['2_'.$v];
|
||||
$rdata['-3'][] = $o_3;
|
||||
$rdata['-1'][] = $o_1;
|
||||
$rdata['1'][] = $ou;
|
||||
$map['-3'] += $o_3;
|
||||
$map['-1'] += $o_1;
|
||||
$map['1'] += $ou;
|
||||
$total += $o_3;
|
||||
$total += $o_1;
|
||||
$total += $ou;
|
||||
$rdata['total'][] = $total;
|
||||
$rdata['list'][] = ['day'=>$v,'o3'=>$o_3,'o1'=>$o_1,'ou'=>$ou];
|
||||
}
|
||||
$rdata['days'] = $days;
|
||||
$rdata['map'] = $map;
|
||||
}
|
||||
return WSTReturn('',1,$rdata);
|
||||
}
|
||||
}
|
246
hyhproject/home/model/Settlements.php
Executable file
@ -0,0 +1,246 @@
|
||||
<?php
|
||||
namespace wstmart\home\model;
|
||||
use think\Db;
|
||||
use think\Loader;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 结算类
|
||||
*/
|
||||
class Settlements extends Base{
|
||||
/**
|
||||
* 获取已结算的结算单列表
|
||||
*/
|
||||
public function pageQuery(){
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$where = [];
|
||||
$where['shopId'] = $shopId;
|
||||
if(input('settlementNo')!='')$where['settlementNo'] = ['like','%'.input('settlementNo').'%'];
|
||||
if((int)input('isFinish')>=0)$where['settlementStatus'] = (int)input('isFinish');
|
||||
return Db::name('settlements')->alias('s')->where($where)->order('settlementId', 'desc')
|
||||
->paginate(input('pagesize/d'));
|
||||
}
|
||||
/**
|
||||
* 获取未结算订单列表
|
||||
*/
|
||||
public function pageUnSettledQuery(){
|
||||
$where = [];
|
||||
if(input('orderNo')!='')$where['orderNo'] = ['like','%'.input('orderNo').'%'];
|
||||
$where['dataFlag'] = 1;
|
||||
$where['orderStatus'] = 2;
|
||||
$where['settlementId'] = 0;
|
||||
$where['shopId'] = (int)session('WST_USER.shopId');
|
||||
$page = Db::name('orders')->where($where)->order('orderId', 'desc')
|
||||
->field('orderId,orderNo,createTime,payType,goodsMoney,deliverMoney,totalMoney,commissionFee,realTotalMoney')
|
||||
->paginate(input('pagesize/d'))->toArray();
|
||||
if(count($page['Rows'])){
|
||||
foreach ($page['Rows'] as $key => $v) {
|
||||
$page['Rows'][$key]['payTypeNames'] = WSTLangPayType($v['payType']);
|
||||
}
|
||||
}
|
||||
return $page;
|
||||
}
|
||||
/**
|
||||
* 结算指定的订单
|
||||
*/
|
||||
public function settlement(){
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$ids = input('ids');
|
||||
$where['dataFlag'] = 1;
|
||||
$where['orderStatus'] = 2;
|
||||
$where['settlementId'] = 0;
|
||||
$where['orderId'] = ['in',$ids];
|
||||
$where['shopId'] = $shopId;
|
||||
$orders = Db::name('orders')->where($where)->field('orderId,payType,realTotalMoney,scoreMoney,commissionFee')->select();
|
||||
if(empty($orders))return WSTReturn('没有需要结算的订单,请刷新后再核对!');
|
||||
$settlementMoney = 0;
|
||||
$commissionFee = 0; //平台要收的佣金
|
||||
$ids = [];
|
||||
foreach ($orders as $key => $v) {
|
||||
$ids[] = $v['orderId'];
|
||||
if($v['payType']==1){
|
||||
$settlementMoney += $v['realTotalMoney']+$v['scoreMoney'];
|
||||
}else{
|
||||
$settlementMoney += $v['scoreMoney'];
|
||||
}
|
||||
$commissionFee += abs($v['commissionFee']);
|
||||
}
|
||||
|
||||
$shops = model('shops')->get($shopId);
|
||||
if(empty($shops))WSTReturn('无效的店铺结算账号!');
|
||||
Db::startTrans();
|
||||
try{
|
||||
$areaNames = model('areas')->getParentNames($shops['bankAreaId']);
|
||||
$data = [];
|
||||
$data['settlementType'] = 0;
|
||||
$data['shopId'] = $shopId;
|
||||
$data['settlementMoney'] = $settlementMoney;
|
||||
$data['commissionFee'] = $commissionFee;
|
||||
$data['backMoney'] = $settlementMoney-$commissionFee;
|
||||
$data['settlementStatus'] = 0;
|
||||
$data['createTime'] = date('Y-m-d H:i:s');
|
||||
$data['settlementNo'] = '';
|
||||
$result = $this->save($data);
|
||||
if(false !== $result){
|
||||
$this->settlementNo = $this->settlementId.(fmod($this->settlementId,7));
|
||||
$this->save();
|
||||
Db::name('orders')->where(['orderId'=>['in',$ids]])->update(['settlementId'=>$this->settlementId]);
|
||||
//修改商家订单情况
|
||||
$commissionFee = -1*$commissionFee;//平台要收的佣金就等于商家要付的钱
|
||||
$shops->noSettledOrderNum = $shops->noSettledOrderNum-count($orders);
|
||||
$shops->paymentMoney = $shops->paymentMoney + $commissionFee;
|
||||
$shops->noSettledOrderFee = $shops->noSettledOrderFee-$commissionFee;
|
||||
$shops->save();
|
||||
Db::commit();
|
||||
return WSTReturn('提交结算申请成功,请留意结算信息~',1);
|
||||
}
|
||||
}catch (\Exception $e) {
|
||||
Db::rollback();errLog($e);
|
||||
}
|
||||
return WSTReturn('提交结算申请失败',-1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取已结算订单
|
||||
*/
|
||||
public function pageSettledQuery(){
|
||||
$where = [];
|
||||
if(input('settlementNo')!='')$where['settlementNo'] = ['like','%'.input('settlementNo').'%'];
|
||||
if(input('orderNo')!='')$where['orderNo'] = ['like','%'.input('orderNo').'%'];
|
||||
if((int)input('isFinish')>=0)$where['settlementStatus'] = (int)input('isFinish');
|
||||
$where['dataFlag'] = 1;
|
||||
$where['orderStatus'] = 2;
|
||||
$where['o.shopId'] = (int)session('WST_USER.shopId');
|
||||
$page = Db::name('orders')->alias('o')
|
||||
->join('__SETTLEMENTS__ s','o.settlementId=s.settlementId')
|
||||
->join('__PAYMENTS__ p','o.payFrom=p.payCode')->where($where)
|
||||
->field('orderId,orderNo,payType,goodsMoney,deliverMoney,totalMoney,o.commissionFee,realTotalMoney,s.settlementTime,s.settlementNo,p.payName')->order('s.settlementTime desc')->paginate(input('pagesize/d'))->toArray();
|
||||
if(count($page['Rows'])){
|
||||
foreach ($page['Rows'] as $key => $v) {
|
||||
$page['Rows'][$key]['commissionFee'] = abs($v['commissionFee']);
|
||||
$page['Rows'][$key]['payTypeNames'] = WSTLangPayType($v['payType']);
|
||||
}
|
||||
}
|
||||
return $page;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取结算订单详情
|
||||
*/
|
||||
public function getById(){
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$settlementId = (int)input('id');
|
||||
$object = Db::name('settlements')->alias('st')->where(['settlementId'=>$settlementId,'st.shopId'=>$shopId])->join('__SHOPS__ s','s.shopId=st.shopId','left')->field('s.shopName,st.*')->find();
|
||||
if(!empty($object)){
|
||||
$object['list'] = Db::name('orders')->where(['settlementId'=>$settlementId])
|
||||
->field('orderId,orderNo,payType,goodsMoney,deliverMoney,realTotalMoney,totalMoney,scoreMoney,commissionFee,createTime')
|
||||
->order('payType desc,orderId desc')->select();
|
||||
}
|
||||
return $object;
|
||||
}
|
||||
/**
|
||||
* 导出订单
|
||||
*/
|
||||
public function toExport(){
|
||||
$name='已结算订单表';
|
||||
$where = [];
|
||||
if(input('settlementNo')!='')$where['settlementNo'] = ['like','%'.input('settlementNo').'%'];
|
||||
if(input('orderNo')!='')$where['orderNo'] = ['like','%'.input('orderNo').'%'];
|
||||
if((int)input('isFinish')>=0)$where['settlementStatus'] = (int)input('isFinish');
|
||||
$where['dataFlag'] = 1;
|
||||
$where['orderStatus'] = 2;
|
||||
$where['o.shopId'] = (int)session('WST_USER.shopId');
|
||||
$page = Db::name('orders')->alias('o')
|
||||
->join('__SETTLEMENTS__ s','o.settlementId=s.settlementId')
|
||||
->join('__PAYMENTS__ p','o.payFrom=p.payCode')->where($where)
|
||||
->field('orderId,orderNo,payType,goodsMoney,deliverMoney,totalMoney,o.commissionFee,realTotalMoney,s.settlementTime,s.settlementNo,p.payName')->order('s.settlementTime desc')->select();
|
||||
if(count($page)){
|
||||
foreach ($page as $key => $v) {
|
||||
$page[$key]['commissionFee'] = abs($v['commissionFee']);
|
||||
$page[$key]['payTypeNames'] = WSTLangPayType($v['payType']);
|
||||
}
|
||||
}
|
||||
Loader::import('phpexcel.PHPExcel.IOFactory');
|
||||
$objPHPExcel = new \PHPExcel();
|
||||
// 设置excel文档的属性
|
||||
$objPHPExcel->getProperties()->setCreator("WSTMart")//创建人
|
||||
->setLastModifiedBy("WSTMart")//最后修改人
|
||||
->setTitle($name)//标题
|
||||
->setSubject($name)//题目
|
||||
->setDescription($name)//描述
|
||||
->setKeywords("订单")//关键字
|
||||
->setCategory("Test result file");//种类
|
||||
|
||||
// 开始操作excel表
|
||||
$objPHPExcel->setActiveSheetIndex(0);
|
||||
// 设置工作薄名称
|
||||
$objPHPExcel->getActiveSheet()->setTitle(iconv('gbk', 'utf-8', 'Sheet'));
|
||||
// 设置默认字体和大小
|
||||
$objPHPExcel->getDefaultStyle()->getFont()->setName(iconv('gbk', 'utf-8', ''));
|
||||
$objPHPExcel->getDefaultStyle()->getFont()->setSize(11);
|
||||
$styleArray = array(
|
||||
'font' => array(
|
||||
'bold' => true,
|
||||
'color'=>array(
|
||||
'argb' => 'ffffffff',
|
||||
)
|
||||
),
|
||||
'borders' => array (
|
||||
'outline' => array (
|
||||
'style' => \PHPExcel_Style_Border::BORDER_THIN, //设置border样式
|
||||
'color' => array ('argb' => 'FF000000'), //设置border颜色
|
||||
)
|
||||
)
|
||||
);
|
||||
//设置宽
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(12);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(12);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(12);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(25);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(12);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(12);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(12);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(20);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(30);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(30);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(12);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(12);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('M')->setWidth(20);
|
||||
$objPHPExcel->getActiveSheet()->getColumnDimension('N')->setWidth(20);
|
||||
$objPHPExcel->getActiveSheet()->getStyle('A1:N1')->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID);
|
||||
$objPHPExcel->getActiveSheet()->getStyle('A1:N1')->getFill()->getStartColor()->setARGB('333399');
|
||||
|
||||
$objPHPExcel->getActiveSheet()->setCellValue('A1', '订单编号')->setCellValue('B1', '支付方式')->setCellValue('C1', '商品总金额')->setCellValue('D1', '运费')->setCellValue('E1', '订单总金额')
|
||||
->setCellValue('F1', '实付金额')->setCellValue('G1', '应付佣金')->setCellValue('H1', '结算方式')->setCellValue('I1', '结算单号')->setCellValue('J1', '结算时间');
|
||||
$objPHPExcel->getActiveSheet()->getStyle('A1:J1')->applyFromArray($styleArray);
|
||||
|
||||
for ($row = 0; $row < count($page); $row++){
|
||||
$i = $row+2;
|
||||
$objPHPExcel->getActiveSheet()
|
||||
->setCellValue('A'.$i, $page[$row]['orderNo'])
|
||||
->setCellValue('B'.$i, $page[$row]['payTypeNames'])
|
||||
->setCellValue('C'.$i, $page[$row]['goodsMoney'])
|
||||
->setCellValue('D'.$i, $page[$row]['deliverMoney'])
|
||||
->setCellValue('E'.$i, $page[$row]['totalMoney'])
|
||||
->setCellValue('F'.$i, $page[$row]['realTotalMoney'])
|
||||
->setCellValue('G'.$i, $page[$row]['commissionFee'])
|
||||
->setCellValue('H'.$i, $page[$row]['payName'])
|
||||
->setCellValue('I'.$i, $page[$row]['settlementNo'])
|
||||
->setCellValue('J'.$i, $page[$row]['settlementTime']);
|
||||
}
|
||||
|
||||
//输出EXCEL格式
|
||||
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
|
||||
// 从浏览器直接输出$filename
|
||||
header('Content-Type:application/csv;charset=UTF-8');
|
||||
header("Pragma: public");
|
||||
header("Expires: 0");
|
||||
header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
|
||||
header("Content-Type:application/force-download");
|
||||
header("Content-Type:application/vnd.ms-excel;");
|
||||
header("Content-Type:application/octet-stream");
|
||||
header("Content-Type:application/download");
|
||||
header('Content-Disposition: attachment;filename="'.$name.'.xls"');
|
||||
header("Content-Transfer-Encoding:binary");
|
||||
$objWriter->save('php://output');
|
||||
}
|
||||
}
|
62
hyhproject/home/model/ShopConfigs.php
Executable file
@ -0,0 +1,62 @@
|
||||
<?php
|
||||
namespace wstmart\home\model;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 门店配置类
|
||||
*/
|
||||
use think\Db;
|
||||
class ShopConfigs extends Base{
|
||||
/**
|
||||
* 店铺设置
|
||||
*/
|
||||
public function getShopCfg($id){
|
||||
$rs = $this->where("shopId=".$id)->find();
|
||||
if($rs != ''){
|
||||
//图片
|
||||
$rs['shopAds'] = ($rs['shopAds']!='')?explode(',',$rs['shopAds']):null;
|
||||
//图片的广告地址
|
||||
$rs['shopAdsUrl'] = ($rs['shopAdsUrl']!='')?explode(',',$rs['shopAdsUrl']):null;
|
||||
return $rs;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改店铺设置
|
||||
*/
|
||||
public function editShopCfg($shopId){
|
||||
$data = input('post.');
|
||||
//加载商店信息
|
||||
Db::startTrans();
|
||||
try{
|
||||
$shopcg = $this->where('shopId='.$shopId)->find();
|
||||
$scdata = array();
|
||||
$scdata["shopKeywords"] = Input("shopKeywords");
|
||||
$scdata["shopBanner"] = Input("shopBanner");
|
||||
$scdata["shopDesc"] = Input("shopDesc");
|
||||
$scdata["shopAds"] = Input("shopAds");
|
||||
$scdata["shopAdsUrl"] = Input("shopAdsUrl");
|
||||
$scdata["shopHotWords"] = Input("shopHotWords");
|
||||
$scdata["shopStreetImg"] = Input("shopStreetImg");
|
||||
WSTUseImages(0, $shopcg['configId'], $scdata['shopStreetImg'],'shop_configs','shopStreetImg');
|
||||
WSTUseImages(0, $shopcg['configId'], $scdata['shopBanner'],'shop_configs','shopBanner');
|
||||
WSTUseImages(0, $shopcg['configId'], $scdata['shopAds'],'shop_configs','shopAds');
|
||||
$rs = $this->where("shopId=".$shopId)->update($scdata);
|
||||
if($rs!==false){
|
||||
Db::commit();
|
||||
return WSTReturn('操作成功',1);
|
||||
}
|
||||
}catch (\Exception $e) {
|
||||
Db::rollback();errLog($e);
|
||||
}
|
||||
return WSTReturn('操作失败',-1);
|
||||
}
|
||||
/**
|
||||
* 获取商城搜索关键字
|
||||
*/
|
||||
public function searchShopkey($shopId){
|
||||
$rs = $this->where('shopId='.$shopId)->field('configId,shopHotWords')->find();
|
||||
$keys = [];
|
||||
if($rs['shopHotWords']!='')$keys = explode(',',$rs['shopHotWords']);
|
||||
return $keys;
|
||||
}
|
||||
}
|
63
hyhproject/home/model/ShopFreights.php
Executable file
@ -0,0 +1,63 @@
|
||||
<?php
|
||||
namespace wstmart\home\model;
|
||||
use think\Db;
|
||||
use wstmart\home\model\Shops;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 运费管理类
|
||||
*/
|
||||
class ShopFreights extends Base{
|
||||
/**
|
||||
* 运费列表
|
||||
*/
|
||||
public function listProvince(){
|
||||
$shopId = session('WST_USER.shopId');
|
||||
$listCity = Db::name('areas')->where(['isShow'=>1,'dataFlag'=>1,'areaType'=>0])->field('areaId,areaName')->order('areaKey desc')->select();
|
||||
for ($i = 0; $i < count($listCity); $i++) {
|
||||
$parentId = $listCity[$i]["areaId"];
|
||||
$listPro = Db::name('areas')->alias('a')
|
||||
->join('__SHOP_FREIGHTS__ s','a.areaId= s.areaId2 and s.shopId='.$shopId,'left')
|
||||
->where(['a.isShow'=>1,'a.dataFlag'=>1,'a.areaType'=>1,'a.parentId'=>$parentId])
|
||||
->field('a.areaId,a.areaName,a.parentId,s.freightId,s.freight')
|
||||
->order('a.areaKey desc')
|
||||
->select();
|
||||
$listCity[$i]['listProvince'] = $listPro;
|
||||
}
|
||||
return $listCity;
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*/
|
||||
public function edit(){
|
||||
$shopId = session('WST_USER.shopId');
|
||||
$info = input("post.");
|
||||
$areas = Db::name('areas')->where('isShow=1 AND dataFlag = 1 AND areaType=1')->field('areaId')->select();
|
||||
Db::startTrans();
|
||||
if(count($areas)==0)return WSTReturn('无效的城市');
|
||||
try{
|
||||
$dataList = [];
|
||||
foreach ($areas as $key => $v) {
|
||||
$m = model('ShopFreights')->where(['shopId'=>$shopId,'areaId2'=>$v['areaId']])->find();
|
||||
$freight = ((int)input('post.'.$v['areaId'])>0)?(int)input('post.'.$v['areaId']):0;
|
||||
if($m){
|
||||
$m->freight = $freight;
|
||||
$m->save();
|
||||
}else{
|
||||
$data = [];
|
||||
$data['shopId'] = $shopId;
|
||||
$data['areaId2'] = $v['areaId'];
|
||||
$data['freight'] = $freight;
|
||||
$data['createTime'] = date('Y-m-d H:i:s');
|
||||
$dataList[] = $data;
|
||||
}
|
||||
}
|
||||
if(count($dataList)>0)model('ShopFreights')->saveAll($dataList);
|
||||
Db::commit();
|
||||
return WSTReturn("操作成功", 1);
|
||||
}catch (\Exception $e) {
|
||||
Db::rollback();errLog($e);
|
||||
return WSTReturn('操作失败',-1);
|
||||
}
|
||||
}
|
||||
}
|
153
hyhproject/home/model/ShopRoles.php
Executable file
@ -0,0 +1,153 @@
|
||||
<?php
|
||||
namespace wstmart\home\model;
|
||||
use think\Db;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 门店色务类
|
||||
*/
|
||||
class ShopRoles extends Base{
|
||||
/**
|
||||
* 角色列表
|
||||
*/
|
||||
public function pageQuery(){
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$roleName = input("roleName/s");
|
||||
$where = ["shopId"=>$shopId,"dataFlag"=>1];
|
||||
if($roleName != ""){
|
||||
$where["roleName"] = ["like","%".$roleName."%"];
|
||||
}
|
||||
$page = $this
|
||||
->field('id,shopId,roleName,createTime')
|
||||
->where($where)
|
||||
->paginate(input('pagesize/d'))->toArray();
|
||||
return $page;
|
||||
}
|
||||
|
||||
public function listQuery(){
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$where = ["shopId"=>$shopId,"dataFlag"=>1];
|
||||
$list = $this
|
||||
->field('id,shopId,roleName,createTime')
|
||||
->where($where)
|
||||
->select();
|
||||
return $list;
|
||||
}
|
||||
/**
|
||||
* 根据id获取店铺角色
|
||||
*/
|
||||
public function getById($id){
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$role = $this->field('id,shopId,roleName,createTime,privilegeUrls,privilegeMsgs')
|
||||
->where(["id"=>$id,"shopId"=>$shopId,"dataFlag"=>1])
|
||||
->find();
|
||||
$menuList = json_decode($role["privilegeUrls"],true);
|
||||
$menuUrls = array();
|
||||
$menuOtherUrls = array();
|
||||
foreach ($menuList as $k1 => $menus1) {
|
||||
foreach ($menus1 as $k2 => $menus2) {
|
||||
$menuUrls = array_merge($menuUrls,$menus2["urls"]);
|
||||
$otherUrls = $menus2["otherUrls"];
|
||||
foreach ($otherUrls as $ko => $ourls) {
|
||||
$othurls = explode(',',$ourls);
|
||||
$menuOtherUrls = array_merge($menuOtherUrls,$othurls);
|
||||
}
|
||||
}
|
||||
}
|
||||
$role["privilegeMsgs"] = explode(",",$role["privilegeMsgs"]);
|
||||
$role["menuUrls"] = array_filter($menuUrls);
|
||||
$role["menuOtherUrls"] = array_filter($menuOtherUrls);
|
||||
return $role;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增店铺角色
|
||||
*/
|
||||
public function add(){
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$data["shopId"] = $shopId;
|
||||
$data["roleName"] = input('roleName/s');
|
||||
if($data["roleName"]==""){
|
||||
return WSTReturn('请输入角色名称',-1);
|
||||
}
|
||||
$data["privilegeMsgs"] = input('privilegeMsgs/s');
|
||||
$menuIds = input('menuIds/s');
|
||||
$urls = [];
|
||||
$otherUrls = [];
|
||||
if($menuIds==""){
|
||||
return WSTReturn('请选择权限',-1);
|
||||
}else{
|
||||
$roleMenus = model("HomeMenus")->getRoleMenus();
|
||||
$menuIds = explode(",",$menuIds);
|
||||
$menuList = array();
|
||||
for($i=0,$j=count($menuIds);$i<$j;$i++){
|
||||
$menu = $roleMenus[$menuIds[$i]];
|
||||
$menuList[$menu["grandpaId"]][$menu["parentId"]]["urls"][] = strtolower($menu["menuUrl"]);
|
||||
$menuList[$menu["grandpaId"]][$menu["parentId"]]["otherUrls"][] = strtolower($menu["menuOtherUrl"]);
|
||||
}
|
||||
}
|
||||
$data["privilegeUrls"] = json_encode($menuList);
|
||||
$data["createTime"] = date("Y-m-d H:i:s");
|
||||
$result = $this->save($data);
|
||||
if(false !== $result){
|
||||
return WSTReturn("新增成功", 1);
|
||||
}
|
||||
return WSTReturn('新增失败',-1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改店铺角色
|
||||
*/
|
||||
public function edit(){
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$id = (int)input('id');
|
||||
$data["roleName"] = input('roleName/s');
|
||||
if($data["roleName"]==""){
|
||||
return WSTReturn('请输入角色名称',-1);
|
||||
}
|
||||
$data["privilegeMsgs"] = input('privilegeMsgs/s');
|
||||
$menuIds = input('menuIds/s');
|
||||
$urls = [];
|
||||
$otherUrls = [];
|
||||
if($menuIds==""){
|
||||
return WSTReturn('请选择权限',-1);
|
||||
}else{
|
||||
$roleMenus = model("HomeMenus")->getRoleMenus();
|
||||
$menuIds = explode(",",$menuIds);
|
||||
$menuList = array();
|
||||
for($i=0,$j=count($menuIds);$i<$j;$i++){
|
||||
$menu = $roleMenus[$menuIds[$i]];
|
||||
$menuList[$menu["grandpaId"]][$menu["parentId"]]["urls"][] = strtolower($menu["menuUrl"]);
|
||||
$menuList[$menu["grandpaId"]][$menu["parentId"]]["otherUrls"][] = strtolower($menu["menuOtherUrl"]);
|
||||
}
|
||||
}
|
||||
$data["privilegeUrls"] = json_encode($menuList);
|
||||
$result = $this->where(["id"=>$id,"shopId"=>$shopId])->update($data);
|
||||
if(false !== $result){
|
||||
return WSTReturn("修改成功", 1);
|
||||
}
|
||||
return WSTReturn('删除失败',-1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除店铺角色
|
||||
*/
|
||||
public function del(){
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$id = input('post.id/d');
|
||||
$data = [];
|
||||
$data['dataFlag'] = -1;
|
||||
Db::startTrans();
|
||||
try{
|
||||
$result = $this->where(["id"=>$id,"shopId"=>$shopId])->update($data);
|
||||
if(false !== $result){
|
||||
//删除关联记录
|
||||
Db::name("shop_users")->where(["roleId"=>$id,"shopId"=>$shopId])->update($data);
|
||||
Db::commit();
|
||||
return WSTReturn("删除成功", 1);
|
||||
}
|
||||
}catch (\Exception $e) {
|
||||
Db::rollback();errLog($e);
|
||||
}
|
||||
return WSTReturn('删除失败',-1);
|
||||
}
|
||||
}
|
202
hyhproject/home/model/ShopUsers.php
Executable file
@ -0,0 +1,202 @@
|
||||
<?php
|
||||
namespace wstmart\home\model;
|
||||
use think\Db;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 门店管理员类
|
||||
*/
|
||||
class ShopUsers extends Base{
|
||||
/**
|
||||
* 角色列表
|
||||
*/
|
||||
public function pageQuery(){
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$userName = input("userName/s");
|
||||
$where = ["s.shopId"=>$shopId,"s.dataFlag"=>1];
|
||||
if($userName != ""){
|
||||
$where["loginName"] = ["like","%".$userName."%"];
|
||||
}
|
||||
$page = $this->alias('s')
|
||||
->join("__SHOP_ROLES__ r","s.roleId=r.id","LEFT")
|
||||
->join("__USERS__ u", "u.userId=s.userId and u.dataFlag=1")
|
||||
->field('s.id,s.shopId,s.roleId,u.userName,u.loginName,u.createTime,u.userStatus,r.roleName')
|
||||
->where($where)
|
||||
->paginate(input('pagesize/d'))->toArray();
|
||||
return $page;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id获取店铺用户
|
||||
*/
|
||||
public function getById(){
|
||||
$id = (int)input('id');
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$user = $this->alias('s')
|
||||
->join("__SHOP_ROLES__ r","s.roleId=r.id","LEFT")
|
||||
->join("__USERS__ u", "u.userId=s.userId and u.dataFlag=1")
|
||||
->field('s.id,s.shopId,s.roleId,u.userName,u.loginName,u.createTime,u.userStatus,r.roleName')
|
||||
->where(["s.id"=>$id,"s.shopId"=>$shopId,"s.dataFlag"=>1])
|
||||
->find();
|
||||
return $user;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增店铺用户
|
||||
*/
|
||||
public function add(){
|
||||
$data = array();
|
||||
$roleId = (int)input("roleId");
|
||||
$data['loginName'] = input("post.loginName");
|
||||
$data['loginPwd'] = input("post.loginPwd");
|
||||
$data['reUserPwd'] = input("post.reUserPwd");
|
||||
$loginName = $data['loginName'];
|
||||
if($roleId<=0){
|
||||
return WSTReturn('非法操作');
|
||||
}
|
||||
//检测账号是否存在
|
||||
$crs = WSTCheckLoginKey($loginName);
|
||||
if($crs['status']!=1)return $crs;
|
||||
$decrypt_data = WSTRSA($data['loginPwd']);
|
||||
$decrypt_data2 = WSTRSA($data['reUserPwd']);
|
||||
if($decrypt_data['status']==1 && $decrypt_data2['status']==1){
|
||||
$data['loginPwd'] = $decrypt_data['data'];
|
||||
$data['reUserPwd'] = $decrypt_data2['data'];
|
||||
}else{
|
||||
return WSTReturn('新增失败');
|
||||
}
|
||||
if($data['loginPwd']!=$data['reUserPwd']){
|
||||
return WSTReturn("两次输入密码不一致!");
|
||||
}
|
||||
foreach ($data as $v){
|
||||
if($v ==''){
|
||||
return WSTReturn("信息不完整!");
|
||||
}
|
||||
}
|
||||
if($loginName=='')return WSTReturn("新增失败!");//分派不了登录名
|
||||
|
||||
unset($data['reUserPwd']);
|
||||
//检测账号,邮箱,手机是否存在
|
||||
$data["loginSecret"] = rand(1000,9999);
|
||||
$data['loginPwd'] = md5($data['loginPwd'].$data['loginSecret']);
|
||||
$data['userName'] = input("post.userName");
|
||||
$data['userQQ'] = "";
|
||||
$data['userScore'] = 0;
|
||||
$data['createTime'] = date('Y-m-d H:i:s');
|
||||
$data['dataFlag'] = 1;
|
||||
$data['userType'] = 1;
|
||||
Db::startTrans();
|
||||
try{
|
||||
$userId = Db::name("users")->insertGetId($data);
|
||||
if(false !== $userId){
|
||||
//添加门店用户
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$data = array();
|
||||
$data["shopId"] = $shopId;
|
||||
$data["userId"] = $userId;
|
||||
$data["roleId"] = (int)input("roleId");
|
||||
Db::name('shop_users')->insert($data);
|
||||
$user = model("common/Users")->get($userId);
|
||||
//注册成功后执行钩子
|
||||
hook('afterUserRegist',['user'=>$user]);
|
||||
//发送消息
|
||||
$tpl = WSTMsgTemplates('USER_REGISTER');
|
||||
if( $tpl['tplContent']!='' && $tpl['status']=='1'){
|
||||
$find = ['${LOGIN_NAME}','${MALL_NAME}'];
|
||||
$replace = [$user['loginName'],WSTConf('CONF.mallName')];
|
||||
WSTSendMsg($userId,str_replace($find,$replace,$tpl['tplContent']),['from'=>0,'dataId'=>0]);
|
||||
}
|
||||
|
||||
Db::commit();
|
||||
return WSTReturn("新增成功",1);
|
||||
}
|
||||
}catch (\Exception $e) {
|
||||
Db::rollback();errLog($e);
|
||||
}
|
||||
return WSTReturn("新增失败!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改店铺用户
|
||||
*/
|
||||
public function edit(){
|
||||
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
Db::startTrans();
|
||||
try{
|
||||
$data = array();
|
||||
$roleId = (int)input("post.roleId");
|
||||
$id = (int)input("post.id");
|
||||
$newPass = input("post.newPass/s");
|
||||
if($newPass!=""){
|
||||
$decrypt_data = WSTRSA($newPass);
|
||||
if($decrypt_data['status']==1){
|
||||
$newPass = $decrypt_data['data'];
|
||||
}else{
|
||||
return WSTReturn('修改失败');
|
||||
}
|
||||
if(!$newPass){
|
||||
return WSTReturn('密码不能为空',-1);
|
||||
}
|
||||
$roleUser = $this->where(["id"=>$id,"shopId"=>$shopId])->find();
|
||||
$userId = $roleUser["userId"];
|
||||
$rs = model("users")->where(["userId"=>$userId])->find();
|
||||
//核对密码
|
||||
|
||||
$oldPass = input("post.oldPass");
|
||||
$decrypt_data2 = WSTRSA($oldPass);
|
||||
if($decrypt_data2['status']==1){
|
||||
$oldPass = $decrypt_data2['data'];
|
||||
}else{
|
||||
return WSTReturn('修改失败');
|
||||
}
|
||||
if($rs['loginPwd']==md5($oldPass.$rs['loginSecret'])){
|
||||
|
||||
$data["loginPwd"] = md5($newPass.$rs['loginSecret']);
|
||||
$rs = model("users")->update($data,['userId'=>$userId]);
|
||||
if(false !== $rs){
|
||||
$this->where(["id"=>$id,"shopId"=>$shopId,"roleId"=>[">",0]])->update(["roleId"=>$roleId]);
|
||||
hook("afterEditPass",["userId"=>$userId]);
|
||||
}else{
|
||||
return WSTReturn("修改失败", -1);
|
||||
}
|
||||
Db::commit();
|
||||
return WSTReturn("修改成功", 1);
|
||||
|
||||
}else{
|
||||
return WSTReturn('原始密码错误',-1);
|
||||
}
|
||||
}else{
|
||||
$this->where(["id"=>$id,"shopId"=>$shopId,"roleId"=>[">",0]])->update(["roleId"=>$roleId]);
|
||||
Db::commit();
|
||||
return WSTReturn("修改成功", 1);
|
||||
}
|
||||
}catch (\Exception $e) {
|
||||
Db::rollback();errLog($e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 删除店铺用户
|
||||
*/
|
||||
public function del(){
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$id = input('post.id/d');
|
||||
$data = [];
|
||||
$data['dataFlag'] = -1;
|
||||
Db::startTrans();
|
||||
try{
|
||||
$role = $this->where(["id"=>$id,"shopId"=>$shopId])->field("userId,id")->find();
|
||||
$result = $this->where(["id"=>$id,"shopId"=>$shopId,"roleId"=>[">",0]])->update($data);
|
||||
if(false !== $result){
|
||||
Db::name("users")->where(["userId"=>$role["userId"]])->update(["userType"=>0]);
|
||||
return WSTReturn("删除成功", 1);
|
||||
}
|
||||
}catch (\Exception $e) {
|
||||
Db::rollback();errLog($e);
|
||||
}
|
||||
return WSTReturn('删除失败',-1);
|
||||
}
|
||||
}
|
561
hyhproject/home/model/Shops.php
Executable file
@ -0,0 +1,561 @@
|
||||
<?php
|
||||
namespace wstmart\home\model;
|
||||
use wstmart\common\model\Shops as CShops;
|
||||
use wstmart\home\validate\Shops as VShop;
|
||||
use think\Db;
|
||||
use think\Loader;
|
||||
use think\Validate;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 门店类
|
||||
*/
|
||||
class Shops extends CShops{
|
||||
/**
|
||||
* 获取店铺的默认运费
|
||||
*/
|
||||
public function getShopsFreight($shopId){
|
||||
return $this->where(["dataFlag"=>1,"shopId"=>$shopId])->field('freight')->find();
|
||||
}
|
||||
/**
|
||||
* 获取店铺公告
|
||||
*/
|
||||
public function getNotice(){
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
return model('shops')->where(['shopId'=>$shopId])->value('shopNotice');
|
||||
}
|
||||
/**
|
||||
* 修改店铺公告
|
||||
*/
|
||||
public function editNotice(){
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$shopNotice = input('shopNotice');
|
||||
if(strlen($shopNotice)>450){
|
||||
return WSTReturn('店铺公告不能超过150字');
|
||||
}
|
||||
$rs = $this->where("shopId=$shopId")->setField('shopNotice',$shopNotice);
|
||||
if($rs!==false)return WSTReturn('设置成功',1);
|
||||
return WSTReturn('设置失败',-1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 店铺街列表
|
||||
*/
|
||||
public function pageQuery($pagesize){
|
||||
$catId = input("get.id/d");
|
||||
$keyword = input("keyword");
|
||||
$userId = (int)session('WST_USER.userId');
|
||||
$rs = $this->alias('s');
|
||||
$where = [];
|
||||
$where['s.dataFlag'] = 1;
|
||||
$where['s.shopStatus'] = 1;
|
||||
$where['s.applyStatus'] = 2;
|
||||
if($keyword!='')$where['s.shopName'] = ['like','%'.$keyword.'%'];
|
||||
if($catId>0){
|
||||
$rs->join('__CAT_SHOPS__ cs','cs.shopId = s.shopId','left');
|
||||
$where['cs.catId'] = $catId;
|
||||
}
|
||||
$page = $rs->join('__SHOP_SCORES__ ss','ss.shopId = s.shopId','left')
|
||||
->join('__USERS__ u','u.userId = s.userId','left')
|
||||
->join('__FAVORITES__ f','f.userId = '.$userId.' and f.favoriteType=1 and f.targetId=s.shopId','left')
|
||||
->where($where)
|
||||
->order('s.shopId asc')
|
||||
->field('s.shopId,s.shopImg,s.shopName,s.shopTel,s.shopQQ,s.shopWangWang,s.shopWangWangType,s.shopCompany,ss.totalScore,ss.totalUsers,ss.goodsScore,ss.goodsUsers,ss.serviceScore,ss.serviceUsers,ss.timeScore,ss.timeUsers,.u.loginName,f.favoriteId,s.areaIdPath')
|
||||
->paginate($pagesize)->toArray();
|
||||
if(empty($page['Rows']))return $page;
|
||||
$shopIds = [];
|
||||
$areaIds = [];
|
||||
foreach ($page['Rows'] as $key =>$v){
|
||||
$shopIds[] = $v['shopId'];
|
||||
$tmp = explode('_',$v['areaIdPath']);
|
||||
$areaIds[] = $tmp[1];
|
||||
$page['Rows'][$key]['areaId'] = $tmp[1];
|
||||
//总评分
|
||||
$page['Rows'][$key]['totalScore'] = WSTScore($v["totalScore"], $v["totalUsers"]);
|
||||
$page['Rows'][$key]['goodsScore'] = WSTScore($v['goodsScore'],$v['goodsUsers']);
|
||||
$page['Rows'][$key]['serviceScore'] = WSTScore($v['serviceScore'],$v['serviceUsers']);
|
||||
$page['Rows'][$key]['timeScore'] = WSTScore($v['timeScore'],$v['timeUsers']);
|
||||
//商品列表
|
||||
$goods = Db::name('goods')->alias('g')->join('store_recom sr','sr.goodsId=g.goodsId','left')
|
||||
->where(['dataFlag'=> 1,'goodsStatus'=>1,'isSale'=>1,'sr.storeStatus'=>1,'shopId'=> $v["shopId"]])->field('g.goodsId,goodsName,shopPrice,goodsImg')->limit(10)->order('saleTime desc')->select();
|
||||
if(count($goods)<=3){
|
||||
$goods = Db::name('goods')->alias('g')
|
||||
->where(['dataFlag'=> 1,'goodsStatus'=>1,'isSale'=>1,'shopId'=> $v["shopId"]])->field('g.goodsId,goodsName,shopPrice,goodsImg')->limit(10)->order('saleTime desc')->select();
|
||||
}
|
||||
$page['Rows'][$key]['goods'] = $goods;
|
||||
//店铺商品总数
|
||||
$page['Rows'][$key]['goodsTotal'] = count($goods);
|
||||
}
|
||||
$rccredMap = [];
|
||||
$goodsCatMap = [];
|
||||
$areaMap = [];
|
||||
//认证、地址、分类
|
||||
if(!empty($shopIds)){
|
||||
$rccreds = Db::name('shop_accreds')->alias('sac')->join('__ACCREDS__ a','a.accredId=sac.accredId and a.dataFlag=1','left')
|
||||
->where('shopId','in',$shopIds)->field('sac.shopId,accredName,accredImg')->select();
|
||||
foreach ($rccreds as $v){
|
||||
$rccredMap[$v['shopId']][] = $v;
|
||||
}
|
||||
$goodsCats = Db::name('cat_shops')->alias('cs')->join('__GOODS_CATS__ gc','cs.catId=gc.catId and gc.dataFlag=1','left')
|
||||
->where('shopId','in',$shopIds)->field('cs.shopId,gc.catName')->select();
|
||||
foreach ($goodsCats as $v){
|
||||
$goodsCatMap[$v['shopId']][] = $v['catName'];
|
||||
}
|
||||
$areas = Db::name('areas')->alias('a')->join('__AREAS__ a1','a1.areaId=a.parentId','left')
|
||||
->where('a.areaId','in',$areaIds)->field('a.areaId,a.areaName areaName2,a1.areaName areaName1')->select();
|
||||
foreach ($areas as $v){
|
||||
$areaMap[$v['areaId']] = $v;
|
||||
}
|
||||
}
|
||||
foreach ($page['Rows'] as $key =>$v){
|
||||
$page['Rows'][$key]['accreds'] = (isset($rccredMap[$v['shopId']]))?$rccredMap[$v['shopId']]:[];
|
||||
$page['Rows'][$key]['catshops'] = (isset($goodsCatMap[$v['shopId']]))?implode(',',$goodsCatMap[$v['shopId']]):'';
|
||||
$page['Rows'][$key]['areas']['areaName1'] = (isset($areaMap[$v['areaId']]['areaName1']))?$areaMap[$v['areaId']]['areaName1']:'';
|
||||
$page['Rows'][$key]['areas']['areaName2'] = (isset($areaMap[$v['areaId']]['areaName2']))?$areaMap[$v['areaId']]['areaName2']:'';
|
||||
}
|
||||
return $page;
|
||||
}
|
||||
/**
|
||||
* 获取卖家中心信息
|
||||
*/
|
||||
public function getShopSummary($shopId){
|
||||
$shop = $this->alias('s')->join('__SHOP_SCORES__ cs','cs.shopId = s.shopId','left')
|
||||
->where(['s.shopId'=>$shopId,'dataFlag'=>1])
|
||||
->field('s.shopMoney,s.noSettledOrderFee,s.paymentMoney,s.shopId,shopImg,shopName,shopAddress,shopQQ,shopWangWang,shopTel,serviceStartTime,serviceEndTime,cs.*')
|
||||
->find();
|
||||
//评分
|
||||
$scores['totalScore'] = WSTScore($shop['totalScore'],$shop['totalUsers']);
|
||||
$scores['goodsScore'] = WSTScore($shop['goodsScore'],$shop['goodsUsers']);
|
||||
$scores['serviceScore'] = WSTScore($shop['serviceScore'],$shop['serviceUsers']);
|
||||
$scores['timeScore'] = WSTScore($shop['timeScore'],$shop['timeUsers']);
|
||||
WSTUnset($shop, 'totalUsers,goodsUsers,serviceUsers,timeUsers');
|
||||
$shop['scores'] = $scores;
|
||||
//认证
|
||||
$accreds = $this->shopAccreds($shopId);
|
||||
$shop['accreds'] = $accreds;
|
||||
//商家访问量
|
||||
$shop['view']=db('shop_view')->where('shopId',$shopId)->field('count(shopId)view,path')->group('path')->select();
|
||||
//查看商家钱包是否足够钱
|
||||
$USER = session('WST_USER');
|
||||
$USER['shopMoney'] = $shop['shopMoney'];
|
||||
$USER['noSettledOrderFee'] = $shop['noSettledOrderFee'];
|
||||
$USER['paymentMoney'] = $shop['paymentMoney'];
|
||||
session('WST_USER',$USER);
|
||||
$stat = array();
|
||||
$date = date("Y-m-d");
|
||||
$userId = session('WST_USER.userId');
|
||||
/**********今日动态**********/
|
||||
//待查看消息数
|
||||
$stat['messageCnt'] = Db::name('messages')->where(['receiveUserId'=>$userId,'msgStatus'=>0,'dataFlag'=>1])->count();
|
||||
//今日销售金额
|
||||
$stat['saleMoney'] = Db::name('orders')->where(['shopId'=>$shopId,'orderStatus'=>['egt',0],'dataFlag'=>1])->whereTime('createTime', 'between', [$date.' 00:00:00', $date.' 23:59:59'])->sum("goodsMoney");
|
||||
//今日订单数
|
||||
$stat['orderCnt'] = Db::name('orders')->where(['shopId'=>$shopId,'orderStatus'=>['egt',0],'dataFlag'=>1])->whereTime('createTime', 'between', [$date.' 00:00:00', $date.' 23:59:59'])->count();
|
||||
//待发货订单
|
||||
$stat['waitDeliveryCnt'] = Db::name('orders')->where(['shopId'=>$shopId,'orderStatus'=>0,'dataFlag'=>1])->count();
|
||||
//待收货订单
|
||||
$stat['waitReceiveCnt'] = Db::name('orders')->where(['shopId'=>$shopId,'orderStatus'=>1,'dataFlag'=>1])->count();
|
||||
//取消/拒收
|
||||
$stat['cancel'] = Db::name('orders')->where(['shopId'=>$shopId,'orderStatus'=>['in',[-1,-3]],'dataFlag'=>1])->count();
|
||||
//库存预警
|
||||
$goodsn = Db::name('goods')->where('shopId ='.$shopId.' and dataFlag = 1 and goodsStock <= warnStock and isSpec = 0 and warnStock>0')->cache('stockWarnCnt1'.$shopId,3600)->count();
|
||||
$specsn = Db::name('goods_specs')->where('shopId ='.$shopId.' and dataFlag = 1 and specStock <= warnStock and warnStock>0')->cache('stockWarnCnt2'.$shopId,3600)->count();
|
||||
$stat['stockWarnCnt'] = $goodsn+$specsn;
|
||||
|
||||
/**********商品信息**********/
|
||||
//商品总数
|
||||
$stat['goodsCnt'] = Db::name('goods')->where(['shopId'=>$shopId,'dataFlag'=>1])->cache('goodsCnt'.$shopId,3600)->count();
|
||||
//上架商品
|
||||
$stat['onSaleCnt'] = Db::name('goods')->where(['shopId'=>$shopId,'dataFlag'=>1,'goodsStatus'=>1,'isSale'=>1])->cache('onSaleCnt'.$shopId,3600)->count();
|
||||
//待审核商品
|
||||
$stat['waitAuditCnt'] = Db::name('goods')->where(['shopId'=>$shopId,'dataFlag'=>1,'goodsStatus'=>0])->cache('waitAuditCnt'.$shopId,3600)->count();
|
||||
//仓库中的商品
|
||||
$stat['unSaleCnt'] = Db::name('goods')->where(['shopId'=>$shopId,'dataFlag'=>1,'goodsStatus'=>1,'isSale'=>0])->cache('unSaleCnt'.$shopId,3600)->count();
|
||||
//违规商品
|
||||
$stat['illegalCnt'] = Db::name('goods')->where(['shopId'=>$shopId,'dataFlag'=>1,'goodsStatus'=>-1])->cache('illegalCnt'.$shopId,3600)->count();
|
||||
//今日新品
|
||||
$stat['newGoodsCnt'] = Db::name('goods')->where(['shopId'=>$shopId,'dataFlag'=>1,'goodsStatus'=>1,'isSale'=>1,'isNew'=>1])->cache('newGoodsCnt'.$shopId,3600)->count();
|
||||
|
||||
/**********订单信息**********/
|
||||
//待付款订单
|
||||
$stat['orderNeedpayCnt'] = Db::name('orders')->where(['userId'=>$userId,'orderStatus'=>-2,'dataFlag'=>1])->count();
|
||||
//待结束订单
|
||||
$stat['orderWaitCloseCnt'] = Db::name('orders')->where(['userId'=>$userId,'orderStatus'=>2,'dataFlag'=>1,'isClosed'=>0])->cache('orderWaitCloseCnt'.$shopId,3600)->count();
|
||||
//退货退款订单
|
||||
$stat['orderRefundCnt'] = Db::name('orders')->alias('o')->join('order_refunds orf','orf.orderId=o.orderId')->where(['shopId'=>$shopId,'refundStatus'=>0,'o.dataFlag'=>1])->count();
|
||||
//待评价订单
|
||||
$stat['orderWaitAppraisesCnt'] = Db::name('orders')->where(['shopId'=>$shopId,'orderStatus'=>2,'dataFlag'=>1,'isAppraise'=>0])->cache('orderWaitAppraisesCnt'.$shopId,3600)->count();
|
||||
// 投诉订单数
|
||||
$stat['complainNum'] = Db::name('order_complains')->where(['respondTargetId'=>$shopId,'complainStatus'=>1])->count();
|
||||
// 近七天销售排行
|
||||
$start = date('Y-m-d H:i:s',strtotime("-7 day"));
|
||||
$end = date('Y-m-d H:i:s');
|
||||
$stat['goodsTop'] = $rs = Db::field('og.goodsId,g.goodsName,goodsSn,sum(og.goodsNum) goodsNum,g.goodsImg')
|
||||
->name('order_goods')
|
||||
->alias('og')
|
||||
->join('__ORDERS__ o','og.orderId=o.orderId')
|
||||
->join('__GOODS__ g','og.goodsId=g.goodsId')
|
||||
->order('goodsNum desc')
|
||||
->whereTime('o.createTime','between',[$start,$end])
|
||||
->where('(payType=0 or (payType=1 and isPay=1)) and o.dataFlag=1 and o.shopId='.$shopId)->group('og.goodsId')
|
||||
->limit(10)->select();
|
||||
return ['shop'=>$shop,'stat'=>$stat];
|
||||
}
|
||||
/**
|
||||
* 获取店铺信息
|
||||
*/
|
||||
public function getByView($id){
|
||||
$shop = $this->alias('s')->join('__BANKS__ b','b.bankId=s.bankId','left')
|
||||
->where(['s.dataFlag'=>1,'shopId'=>$id])
|
||||
->field('s.*,b.bankName')->find();
|
||||
$areaIds = [];
|
||||
$areaMaps = [];
|
||||
$tmp = explode('_',$shop['areaIdPath']);
|
||||
foreach ($tmp as $vv){
|
||||
if($vv=='')continue;
|
||||
if(!in_array($vv,$areaIds))$areaIds[] = $vv;
|
||||
}
|
||||
if(!empty($areaIds)){
|
||||
$areas = Db::name('areas')->where(['dataFlag'=>1,'areaId'=>['in',$areaIds]])->field('areaId,areaName')->select();
|
||||
foreach ($areas as $v){
|
||||
$areaMaps[$v['areaId']] = $v['areaName'];
|
||||
}
|
||||
$tmp = explode('_',$shop['areaIdPath']);
|
||||
$areaNames = [];
|
||||
foreach ($tmp as $vv){
|
||||
if($vv=='')continue;
|
||||
$areaNames[] = @$areaMaps[$vv];
|
||||
$shop['areaName'] = implode('',$areaNames);
|
||||
}
|
||||
}
|
||||
|
||||
//获取经营范围
|
||||
$goodsCats = Db::name('goods_cats')->where(['parentId'=>0,'isShow'=>1,'dataFlag'=>1])->field('catId,catName')->select();
|
||||
$catshops = Db::name('cat_shops')->where('shopId',$id)->select();
|
||||
$catshopMaps = [];
|
||||
foreach ($goodsCats as $v){
|
||||
$catshopMaps[$v['catId']] = $v['catName'];
|
||||
}
|
||||
$catshopNames = [];
|
||||
foreach ($catshops as $key =>$v){
|
||||
if(isset($catshopMaps[$v['catId']]))$catshopNames[] = $catshopMaps[$v['catId']];
|
||||
}
|
||||
$shop['catshopNames'] = implode('、',$catshopNames);
|
||||
//获取认证类型
|
||||
$shop['accreds'] =Db::name('shop_accreds')->alias('sac')->join('__ACCREDS__ a','sac.accredId=a.accredId and a.dataFlag=1','inner')
|
||||
->where('sac.shopId',$id)->field('accredName,accredImg')->select();
|
||||
//开卡地址
|
||||
$areaNames = model('areas')->getParentNames($shop['bankAreaId']);
|
||||
$shop['bankAreaName'] = implode('',$areaNames);
|
||||
return $shop;
|
||||
}
|
||||
/**
|
||||
* 获取店铺指定字段
|
||||
*/
|
||||
public function getFieldsById($shopId,$fields){
|
||||
return $this->where(['shopId'=>$shopId,'dataFlag'=>1])->field($fields)->find();
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑店铺资料mark huang 20180312 限制银行卡信息只能修改一次
|
||||
*/
|
||||
public function editInfo(){
|
||||
//添加旺旺类型mark by cheng 20180314
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$shop_data['shopImg'] = input('post.shopImg');
|
||||
$shop_data['isInvoice'] = input('post.isInvoice');
|
||||
$shop_data['invoiceRemarks'] = input('post.invoiceRemarks');
|
||||
$shop_data['serviceStartTime'] = input('post.serviceStartTime');
|
||||
$shop_data['serviceEndTime'] = input('post.serviceEndTime');
|
||||
$shop_data['freight'] = input('post.freight');
|
||||
$shop_data['shopQQ'] = input('post.shopQQ');
|
||||
$shop_data['shopWangWang'] = input('post.shopWangWang');
|
||||
$shop_data['shopWangWangType'] = input('post.shopWangWangType');
|
||||
$result = $this->validate('Shops.editInfo')->allowField(['shopImg','isInvoice','invoiceRemarks','serviceStartTime','serviceEndTime','freight','shopQQ','shopWangWang','shopWangWangType'])->save($shop_data,['shopId'=>$shopId]);
|
||||
$bank_info = Db::name('shops')->where('shopId',$shopId)->field('bankNo,changeNum')->find();
|
||||
$bank_data['bankNo'] = input('post.bankNo');
|
||||
$result2 = true;
|
||||
if($bank_info['changeNum'] == 0 && $bank_data['bankNo'] != $bank_info['bankNo']){
|
||||
$bank_data['bankUserName'] = input('post.bankUserName');
|
||||
$bank_data['bankId'] = input('post.bankId');
|
||||
$bank_data['changeNum'] = $bank_info['changeNum'] + 1;
|
||||
$result2 = $this->allowField(['bankNo','bankUserName','shopId','bankId','changeNum'])->save($bank_data,['shopId'=>$shopId]);
|
||||
}elseif($bank_info['changeNum'] > 0){
|
||||
if($bank_data['bankNo'] != $bank_info['bankNo'] ){
|
||||
$result2 = false;
|
||||
}else{
|
||||
$result2 = true;
|
||||
}
|
||||
}
|
||||
if(false !== $result){
|
||||
if(false == $result2){
|
||||
$msg='银行卡修改失败!';
|
||||
}else{
|
||||
$msg='!';
|
||||
}
|
||||
return WSTReturn('店铺相关信息保存成功'.$msg,1);
|
||||
}else{
|
||||
return WSTReturn($this->getError());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取店铺提现账号
|
||||
*/
|
||||
public function getShopAccount(){
|
||||
$shopId = (int)session('WST_USER.shopId');
|
||||
$shops = Db::name('shops')->alias('s')->join('banks b','b.bankId=s.bankId','inner')->where('s.shopId',$shopId)->field('b.bankName,s.bankAreaId,bankNo,bankUserName')->find();
|
||||
return $shops;
|
||||
}
|
||||
/**
|
||||
* 保存入驻资料
|
||||
*/
|
||||
public function saveStep2($data = []){
|
||||
$userId = (int)session('WST_USER.userId');
|
||||
//判断是否存在入驻申请
|
||||
$shops = $this->where('userId',$userId)->find();
|
||||
//新增入驻申请
|
||||
Db::startTrans();
|
||||
try{
|
||||
if(empty($shops)){
|
||||
$vshop = new VShop();
|
||||
$shop = ['userId'=>$userId,'applyStatus'=>0,'applyStep'=>2];
|
||||
$this->save($shop);
|
||||
WSTAllow($data,implode(',',$vshop->scene['applyStep1']));
|
||||
$data['shopId'] = $this->shopId;
|
||||
$result = Db::name('shop_extras')->insert($data);
|
||||
$shopId = $this->shopId;
|
||||
$WST_USER = session('WST_USER');
|
||||
$WST_USER['tempShopId'] = $shopId;
|
||||
session('WST_USER',$WST_USER);
|
||||
Db::commit();
|
||||
return WSTReturn('保存成功',1);
|
||||
}else{
|
||||
if($shops['applyStatus']>=1)return WSTReturn('请勿重复申请入驻');
|
||||
if($shops->applyStep<2){
|
||||
$shops->applyStep = 2;
|
||||
$shops->save();
|
||||
}
|
||||
$vshop = new VShop();
|
||||
WSTAllow($data,implode(',',$vshop->scene['applyStep1']));
|
||||
$result = Db::name('shop_extras')->where('shopId',$shops['shopId'])->update($data);
|
||||
if(false !== $result){
|
||||
Db::commit();
|
||||
return WSTReturn('保存成功',1);
|
||||
}else{
|
||||
return WSTReturn('保存失败');
|
||||
}
|
||||
}
|
||||
}catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
return WSTReturn('保存失败',-1);
|
||||
}
|
||||
}
|
||||
public function saveStep3($data = []){
|
||||
/*
|
||||
legalCertificateImg
|
||||
businessLicenceImg
|
||||
bankAccountPermitImg
|
||||
organizationCodeImg
|
||||
*/
|
||||
$auxiliary=explode(',',$data['shopAds']);
|
||||
$shopId = (int)session('WST_USER.tempShopId');
|
||||
if($shopId==0)return WSTReturn('非法的操作');
|
||||
$shops = model('shops')->get($shopId);
|
||||
if($shops['applyStatus']>=1)return WSTReturn('请勿重复申请入驻');
|
||||
//判断是否存在入驻申请
|
||||
$vshop = new VShop();
|
||||
WSTAllow($data,implode(',',$vshop->scene['applyStep2']));
|
||||
//获取地区
|
||||
$areaIds = model('Areas')->getParentIs($data['businessAreaPath0']);
|
||||
if(!empty($areaIds))$data['businessAreaPath'] = implode('_',$areaIds)."_";
|
||||
$areaIds = model('Areas')->getParentIs($data['areaIdPath0']);
|
||||
if(!empty($areaIds))$data['areaIdPath'] = implode('_',$areaIds)."_";
|
||||
//if($data['isLongbusinessDate']==1)unset($data['businessEndDate']);
|
||||
//if($data['isLonglegalCertificateDate']==1)unset($data['legalCertificateEndDate']);
|
||||
//if($data['isLongOrganizationCodeDate']==1)unset($data['organizationCodeEndDate']);
|
||||
Db::startTrans();
|
||||
try{
|
||||
if($shops->applyStep<3){
|
||||
$shops->applyStep = 3;
|
||||
$shops->save();
|
||||
}
|
||||
$validate = Loader::validate('Shops');
|
||||
if(!$validate->scene('applyStep2')->check($data))return WSTReturn($validate->getError());
|
||||
$seModel = model('ShopExtras');
|
||||
$seModel->allowField(true)->save($data,['shopId'=>$shopId]);
|
||||
$Id = $seModel->where(['shopId'=>$shopId])->value('id');// 获取主键
|
||||
//启用上传图片
|
||||
WSTUseImages(0, $Id, $data['legalCertificateImg'],'shopextras');
|
||||
WSTUseImages(0, $Id, $data['businessLicenceImg'],'shopextras');
|
||||
WSTUseImages(0, $Id, $data['bankAccountPermitImg'],'shopextras');
|
||||
WSTUseImages(0, $Id, $data['organizationCodeImg'],'shopextras');
|
||||
$auxiliary_data=[];
|
||||
$shopAuxiliary = Db::name('shop_auxiliary')->where('shopId='.$shopId)->find();
|
||||
WSTUseImages(0, $shopAuxiliary['id'], $auxiliary,'shopauxiliary');
|
||||
Db::name('shop_auxiliary')->where('shopId='.$shopId)->delete();
|
||||
foreach($auxiliary as $k=>$v){
|
||||
$auxiliary_data[$k]['shopId']=$shopId;
|
||||
$auxiliary_data[$k]['auxiliaryImg']=$v;
|
||||
}
|
||||
Db::name('shop_auxiliary')->insertAll($auxiliary_data);
|
||||
$this->allowField(true)->save($data,['shopId'=>$shopId]);
|
||||
Db::commit();
|
||||
return WSTReturn('保存成功',1);
|
||||
}catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
return WSTReturn('保存失败',-1);
|
||||
}
|
||||
}
|
||||
public function saveStep4($data = []){
|
||||
/*
|
||||
taxRegistrationCertificateImg
|
||||
taxpayerQualificationImg
|
||||
*/
|
||||
$shopId = (int)session('WST_USER.tempShopId');
|
||||
if($shopId==0)return WSTReturn('非法的操作');
|
||||
$shops = model('shops')->get($shopId);
|
||||
if($shops['applyStatus']>=1)return WSTReturn('请勿重复申请入驻');
|
||||
//判断是否存在入驻申请
|
||||
$vshop = new VShop();
|
||||
WSTAllow($data,implode(',',$vshop->scene['applyStep3']));
|
||||
$areaIds = model('Areas')->getParentIs($data['bankAreaId']);
|
||||
if(!empty($areaIds))$data['bankAreaIdPath'] = implode('_',$areaIds)."_";
|
||||
Db::startTrans();
|
||||
try{
|
||||
if($shops->applyStep<4){
|
||||
$shops->applyStep = 4;
|
||||
$shops->save();
|
||||
}
|
||||
$seModel = model('ShopExtras');
|
||||
$seModel->allowField(true)->save($data,['shopId'=>$shopId]);
|
||||
/*--------取消上传图片选项 mark hsf 20180104----------*/
|
||||
//$Id = $seModel->where(['shopId'=>$shopId])->value('id');
|
||||
//启用上传图片
|
||||
//WSTUseImages(0, $Id, $data['taxRegistrationCertificateImg'],'shopextras');
|
||||
// WSTUseImages(0, $Id, $data['taxpayerQualificationImg'],'shopextras');
|
||||
/*-------------------------end---------------------------*/
|
||||
$this->allowField(true)->save($data,['shopId'=>$shopId]);
|
||||
Db::commit();
|
||||
return WSTReturn('保存成功',1);
|
||||
}catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
return WSTReturn('保存失败',-1);
|
||||
}
|
||||
}
|
||||
public function saveStep5($data = []){
|
||||
$shopId = (int)session('WST_USER.tempShopId');
|
||||
if($shopId==0)return WSTReturn('非法的操作');
|
||||
$shops = model('shops')->get($shopId);
|
||||
if($shops['applyStatus']>=1)return WSTReturn('请勿重复申请入驻');
|
||||
//判断是否存在入驻申请
|
||||
$vshop = new VShop();
|
||||
$filters = $vshop->scene['applyStep4'];
|
||||
$filters[] = 'shopQQ';
|
||||
$filters[] = 'shopWangWang';
|
||||
WSTAllow($data,implode(',',$filters));
|
||||
$shopLicense=input('shopLicense');
|
||||
if((strpos($data['goodsCatIds'],'393')!==false)||$data['goodsCatIds']=='393'){
|
||||
if($shopLicense==""){
|
||||
|
||||
return WSTReturn('食品许可证不能为空');
|
||||
}
|
||||
}else{
|
||||
$shopLicense='';
|
||||
}
|
||||
Db::startTrans();
|
||||
try{
|
||||
$data['applyStatus'] = 1;
|
||||
$data['applyTime'] = date('Y-m-d H:i:s');
|
||||
$find=$this->where('shopName',$data['shopName'])->find();
|
||||
if($find) return WSTReturn('此商铺名称已存在,请重新填写');
|
||||
$result = $this->allowField(true)->save($data,['shopId'=>$shopId]);
|
||||
$row=db('shop_license')->insert(['shopId'=>$shopId,'shopLicense'=>$shopLicense]);
|
||||
// // // 启用图片
|
||||
WSTUseImages(0, $shopId, $data['shopImg'],'shops','shopImg');
|
||||
//WSTUseImages(0, $shopId, $shopLicense,'shoplicense','shopLicense');
|
||||
|
||||
if($shops->applyStep<5){
|
||||
$shops->applyStep = 5;
|
||||
$shops->save();
|
||||
}
|
||||
if(false !== $result){
|
||||
//经营范围
|
||||
$goodsCats = explode(',',$data['goodsCatIds']);
|
||||
foreach ($goodsCats as $v){
|
||||
if((int)$v>0)Db::name('cat_shops')->insert(['shopId'=>$shopId,'catId'=>$v]);
|
||||
}
|
||||
Db::commit();
|
||||
return WSTReturn('保存成功',1);
|
||||
}else{
|
||||
return WSTReturn('保存失败');
|
||||
}
|
||||
}catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
return WSTReturn('保存失败',-1);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取商家入驻资料
|
||||
*/
|
||||
public function getShopApply(){
|
||||
$userId = (int)session('WST_USER.userId');
|
||||
$rs = $this->alias('s')
|
||||
->join('__SHOP_EXTRAS__ ss','s.shopId=ss.shopId','inner')
|
||||
->where('s.userId',$userId)
|
||||
->find();
|
||||
if(!empty($rs)){
|
||||
$rs = $rs->toArray();
|
||||
$goodscats = Db::name('cat_shops')->where('shopId',$rs['shopId'])->select();
|
||||
$rs['catshops'] = [];
|
||||
foreach ($goodscats as $v){
|
||||
$rs['catshops'][$v['catId']] = true;
|
||||
}
|
||||
$rs['taxRegistrationCertificateImgVO'] = ($rs['taxRegistrationCertificateImg']!='')?explode(',',$rs['taxRegistrationCertificateImg']):[];
|
||||
|
||||
}else{
|
||||
$rs = [];
|
||||
$data1 = $this->getEModel('shops');
|
||||
$data2 = $this->getEModel('shop_extras');
|
||||
$rs = array_merge($data1,$data2);
|
||||
$rs['taxRegistrationCertificateImgVO'] = [];
|
||||
}
|
||||
$rs['auxiliary']=db('shop_auxiliary')->where('shopId',$rs['shopId'])->select();
|
||||
return $rs;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否申请入驻过
|
||||
*/
|
||||
public function checkApply(){
|
||||
$userId = (int)session('WST_USER.userId');
|
||||
$rs = $this->where(['userId'=>$userId])->find();
|
||||
if(!empty($rs)){
|
||||
$WST_USER = session('WST_USER');
|
||||
$WST_USER['tempShopId'] = $rs->shopId;
|
||||
session('WST_USER',$WST_USER);
|
||||
session('apply_step',$rs['applyStep']);
|
||||
}
|
||||
return $rs;
|
||||
}
|
||||
/**
|
||||
* 首页店铺街列表
|
||||
*/
|
||||
public function indexShopQuery($num=4){
|
||||
/** 添加返回店铺街商店 mark hsf 20180223 */
|
||||
$shop_list = model('common/Tags')->listShop(0,$num,0);
|
||||
foreach ($shop_list as &$v) {
|
||||
$v['shopAddress'] = Db::name('shops')->where(['shopId'=>$v['shopId']])->value('shopAddress');
|
||||
$v['shopStreetImg'] = Db::name('shop_configs')->where(['shopId'=>$v['shopId']])->value('shopStreetImg');
|
||||
}
|
||||
return $shop_list;
|
||||
/** end */
|
||||
$rs = $this->alias('s')
|
||||
->join('__SHOP_CONFIGS__ sc','s.shopId=sc.shopId','inner')
|
||||
->field('s.shopId,s.shopName,s.shopAddress,sc.shopStreetImg')
|
||||
->limit($num)
|
||||
->select();
|
||||
return $rs;
|
||||
}
|
||||
}
|
10
hyhproject/home/model/SpecItems.php
Executable file
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
namespace wstmart\home\model;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 商品规格值类
|
||||
*/
|
||||
use think\Db;
|
||||
class SpecItems extends Base{
|
||||
|
||||
}
|
33
hyhproject/home/model/Users.php
Executable file
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
namespace wstmart\home\model;
|
||||
use wstmart\common\model\Users as CUsers;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 用户类
|
||||
*/
|
||||
use think\Db;
|
||||
class Users extends CUsers{
|
||||
/**
|
||||
* 获取各订单状态数、未读消息数、账户安全等级
|
||||
*/
|
||||
function getStatusNum(){
|
||||
$userId = (int)session('WST_USER.userId');
|
||||
$data = [];
|
||||
// 用户消息
|
||||
$data['message'] = Db::name('messages')->where(['receiveUserId'=>$userId,'msgStatus'=>0,'dataFlag'=>1])->count();
|
||||
//获取用户订单状态
|
||||
$data['waitPay'] = Db::name('orders')->where(['userId'=>$userId,'orderStatus'=>-2,'dataFlag'=>1])->count();
|
||||
$data['waitReceive'] = Db::name('orders')->where(['userId'=>$userId,'orderStatus'=>['in',[0,1]],'dataFlag'=>1])->count();
|
||||
$data['received'] = Db::name('orders')->where(['userId'=>$userId,'orderStatus'=>2,'dataFlag'=>1])->count();
|
||||
$data['waitAppr'] = Db::name('orders')->where(['userId'=>$userId,'orderStatus'=>2,'isAppraise'=>0,'dataFlag'=>1])->count();
|
||||
// 账户安全等级
|
||||
$level = 1;
|
||||
$users = $this->field('userPhone,userEmail')->find($userId);
|
||||
if(!empty($users['userPhone']))++$level;
|
||||
if(!empty($users['userEmail']))++$level;
|
||||
$data['level'] = $level;
|
||||
//关注商品
|
||||
$data['gfavorite'] = Db::name('favorites')->where(['userId'=>$userId,'favoriteType'=>0])->count();
|
||||
return $data;
|
||||
}
|
||||
}
|
97
hyhproject/home/validate/Goods.php
Executable file
@ -0,0 +1,97 @@
|
||||
<?php
|
||||
namespace wstmart\home\validate;
|
||||
use think\Validate;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 商品验证器
|
||||
*/
|
||||
class Goods extends Validate{
|
||||
protected $rule = [
|
||||
['goodsName' ,'require|max:300','请输入商品名称|商品名称不能超过100个字符'],
|
||||
['goodsImg' ,'require','请上传商品图片'],
|
||||
['goodsType' ,'in:,0,1','无效的商品类型'],
|
||||
['goodsSn' ,'checkGoodsSn:1','请输入商品编号'],
|
||||
['productNo' ,'checkProductNo:1','请输入商品货号'],
|
||||
['marketPrice' ,'checkMarketPrice:1','请输入市场价格'],
|
||||
['shopPrice' ,'checkShopPrice:1','请输入店铺价格'],
|
||||
['goodsUnit' ,'require','请输入商品单位'],
|
||||
['isSale' ,'in:,0,1','无效的上架状态'],
|
||||
['isRecom' ,'in:,0,1','无效的推荐状态'],
|
||||
['isBest' ,'in:,0,1','无效的精品状态'],
|
||||
['isNew' ,'in:,0,1','无效的新品状态'],
|
||||
['isHot' ,'in:,0,1','无效的热销状态'],
|
||||
['isFreeShipping','in:,0,1','无效的包邮状态'],
|
||||
['goodsCatId' ,'require','请选择完整商品分类'],
|
||||
['goodsDesc','require','请输入商品描述'],
|
||||
['specsIds','checkSpecsIds:1','请填写完整商品规格信息']
|
||||
];
|
||||
/**
|
||||
* 检测商品编号
|
||||
*/
|
||||
protected function checkGoodsSn($value){
|
||||
$goodsId = Input('post.goodsId/d',0);
|
||||
$key = Input('post.goodsSn');
|
||||
if($key=='')return '请输入商品编号';
|
||||
$isChk = model('Goods')->checkExistGoodsKey('goodsSn',$key,$goodsId);
|
||||
if($isChk)return '对不起,该商品编号已存在';
|
||||
return true;
|
||||
}
|
||||
/**
|
||||
* 检测商品货号
|
||||
*/
|
||||
protected function checkProductNo($value){
|
||||
$goodsId = Input('post.goodsId/d',0);
|
||||
$key = Input('post.productNo');
|
||||
if($key=='')return '请输入商品货号';
|
||||
$isChk = model('Goods')->checkExistGoodsKey('productNo',$key,$goodsId);
|
||||
if($isChk)return '对不起,该商品货号已存在';
|
||||
return true;
|
||||
}
|
||||
/**
|
||||
* 检测价格
|
||||
*/
|
||||
public function checkMarketPrice(){
|
||||
$marketPrice = floatval(input('post.marketPrice'));
|
||||
if($marketPrice<0.01)return '市场价格不能小于0.01';
|
||||
return true;
|
||||
}
|
||||
public function checkShopPrice(){
|
||||
$shopPrice = floatval(input('post.shopPrice'));
|
||||
if($shopPrice<0.01)return '店铺价格不能小于0.01';
|
||||
return true;
|
||||
}
|
||||
/**
|
||||
* 检测商品规格是否填写完整
|
||||
*/
|
||||
public function checkSpecsIds(){
|
||||
$specsIds = input('post.specsIds');
|
||||
if($specsIds!=''){
|
||||
$str = explode(',',$specsIds);
|
||||
$specsIds = [];
|
||||
foreach ($str as $v){
|
||||
$vs = explode('-',$v);
|
||||
foreach ($vs as $vv){
|
||||
if(!in_array($vv,$specsIds))$specsIds[] = $vv;
|
||||
}
|
||||
}
|
||||
//检测规格名称是否填写完整
|
||||
foreach ($specsIds as $v){
|
||||
if(input('post.specName_'.$v)=='')return '请填写完整商品规格值';
|
||||
}
|
||||
//检测销售规格是否完整
|
||||
foreach ($str as $v){
|
||||
if(input('post.productNo_'.$v)=='')return '请填写完整商品销售规格-货号';
|
||||
if(input('post.marketPrice_'.$v)=='')return '请填写完整商品销售规格-市场价';
|
||||
if(floatval(input('post.marketPrice_'.$v))<0.01)return '商品销售规格-市场价不能小于0.01';
|
||||
if(input('post.specPrice_'.$v)=='')return '请填写完整商品销售规格-本店价';
|
||||
if(floatval(input('post.specPrice_'.$v))<0.01)return '商品销售规格-本店价不能小于0.01';
|
||||
if(input('post.specStock_'.$v)=='')return '请填写完整商品销售规格-库存';
|
||||
if(intval(input('post.specStock_'.$v))<0)return '商品销售规格-库存不能小于0';
|
||||
if(input('post.warnStock_'.$v)=='')return '请填写完整商品销售规格-预警库存';
|
||||
if(intval(input('post.warnStock_'.$v))<0)return '商品销售规格-预警库存不能小于0';
|
||||
}
|
||||
if(input('post.defaultSpec')=='')return '请选择推荐规格';
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
118
hyhproject/home/validate/Shops.php
Executable file
@ -0,0 +1,118 @@
|
||||
<?php
|
||||
namespace wstmart\home\validate;
|
||||
use think\Validate;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 店铺验证器
|
||||
*/
|
||||
class Shops extends Validate{
|
||||
protected $rule = [
|
||||
//入驻步骤1
|
||||
['applyLinkMan','require','请输入联系人姓名'],
|
||||
['applyLinkTel','require','请输入联系人手机'],
|
||||
// ['applyLinkEmail','require','请输入联系人邮箱'],
|
||||
['isInvestment','in:0,1','无效的对接商城招商人参数'],
|
||||
['investmentStaff','checkInvestment:1','请输入商城招商人员姓名'],
|
||||
//入驻步骤2
|
||||
['businessLicenceType','require','请选择执照类型'],
|
||||
['businessLicence','require','请输入营业执照注册号'],
|
||||
['legalPersonName','require','请输入法定代表人姓名'],
|
||||
//['businessAreaPath0','require','请选择营业执照所在地'],
|
||||
//['licenseAddress','require','请输入营业执照详细地址'],
|
||||
//['establishmentDate','require','请选择成立日期'],
|
||||
//['businessStartDate','require','请输入营业期限开始日期'],
|
||||
//['businessEndDate','checkBusinessEndDate:1','请输入营业期限结束日期'],
|
||||
//['isLongbusinessDate','in:0,1','无效的营业期限参数'],
|
||||
//['registeredCapital','require','请输入注册资本'],
|
||||
//['empiricalRange','require','请输入经营范围'],
|
||||
['areaIdPath0','require','请选择公司所在地'],
|
||||
['shopCompany','require','请输入公司名称'],
|
||||
['shopAddress','require','请输入公司详细地址'],
|
||||
['shopTel','require','请输入公司电话'],
|
||||
// mark by cheng 添加开店必须输入旺旺和qq20130318
|
||||
//['shopWangWang','require','请输入店铺客服旺旺'],
|
||||
//['shopQQ','require','请输入店铺客服QQ'],
|
||||
['shopkeeper','require','请输入公司紧急联系人'],
|
||||
['telephone','require','请输入公司紧急联系人电话'],
|
||||
['legalCertificateType','require','请选择法人代表证件类型'],
|
||||
['legalCertificate','require','请输入法定代表人证件号'],
|
||||
//['legalCertificateStartDate','require','请选择法定代表人证件有效期开始日期'],
|
||||
//['legalCertificateEndDate','checkLegalCertificateEndDate:1','请选择法定代表人证件有效期结束日期'],
|
||||
//['isLonglegalCertificateDate','in:0,1','无效的代表人证件有效期参数'],
|
||||
['legalCertificateImg','require','请上传法人证件电子版'],
|
||||
['businessLicenceImg','require','请上传营业执照电子版'],
|
||||
['bankAccountPermitImg','require','请上传银行开户许可证电子版'],
|
||||
// ['organizationCode','require','请输入组织机构代码'],
|
||||
// ['organizationCodeStartDate','require','请输入商标注册证有效期开始日期'],
|
||||
// ['organizationCodeEndDate','checkOrganizationCodeEndDate:1','请输入商标注册证有效期结束日期'],
|
||||
// ['isLongOrganizationCodeDate','in:0,1','无效的商标注册证有效期参数'],
|
||||
['organizationCodeImg','require','请上传商标注册证电子版'],
|
||||
//入驻步骤3
|
||||
/*--------取消上传图片选项 mark hsf 20180104----------*/
|
||||
//['taxpayerType','require','请选择纳税人类型'],
|
||||
//['taxpayerNo','require','请输入纳税人识别号'],
|
||||
//['taxRegistrationCertificateImg','require','请上传税务登记证电子版'],
|
||||
//['taxpayerQualificationImg','require','请上传一般纳税人资格证电子版'],
|
||||
/*-------------------------end-------------------------*/
|
||||
['bankUserName' ,'require|max:100','请输入持卡人名称|持卡人名称长度不能能超过50个字符'],
|
||||
['bankNo' ,'require','请选择银行账号'],
|
||||
['bankId' ,'require','请选择结算银行'],
|
||||
//['bankAreaId' ,'require','请选择开户所地区'],
|
||||
//入驻步骤4
|
||||
['shopName' ,'require','请输入店铺名称'],
|
||||
['shopImg' ,'require','请上传店铺图标'],
|
||||
['goodsCatIds' ,'require','请选择经营类目'],
|
||||
['isInvoice' ,'in:0,1','无效的发票类型'],
|
||||
['invoiceRemarks','checkInvoiceRemark:1','请输入发票说明'],
|
||||
['freight','integer','请输入运费'],
|
||||
['serviceStartTime','require','请选择服务开始时间'],
|
||||
['serviceEndTime','require','请选择服务结束时间']
|
||||
];
|
||||
/*
|
||||
public $scene = [
|
||||
'editInfo' =>['shopImg','isInvoice','serviceStartTime','serviceEndTime','freight'],
|
||||
'editBank' =>['bankId','bankAreaId','bankNo','bankUserName'],
|
||||
'applyStep1'=>['applyLinkMan','applyLinkTel','applyLinkEmail','isInvestment','investmentStaff'],
|
||||
'applyStep2'=>['businessLicenceType','businessLicence','legalPersonName','businessAreaPath0','licenseAddress','establishmentDate','businessStartDate','businessEndDate','isLongbusinessDate','registeredCapital','empiricalRange','areaIdPath0','shopCompany','shopAddress','shopTel','shopkeeper','telephone','shopEmergencyLinkMan','legalCertificateType','legalCertificate','legalCertificateStartDate','legalCertificateEndDate','isLonglegalCertificateDate','legalCertificateImg','businessLicenceImg','bankAccountPermitImg','organizationCode','organizationCodeStartDate','organizationCodeEndDate','organizationCodeImg'],
|
||||
'applyStep3'=>['taxpayerType','taxpayerNo','taxRegistrationCertificateImg','taxpayerQualificationImg','bankUserName','bankNo','bankId','bankAreaId'],
|
||||
'applyStep4'=>['shopName','shopImg','goodsCatIds','isInvoice','invoiceRemarks','freight','serviceStartTime','serviceEndTime']
|
||||
];
|
||||
*/
|
||||
//添加旺旺和qq非空验证 mark by cheng 20170318
|
||||
public $scene = [
|
||||
'editInfo' =>['shopImg','isInvoice','serviceStartTime','serviceEndTime','freight'],
|
||||
'editBank' =>['bankId','bankAreaId','bankNo','bankUserName'],
|
||||
'applyStep1'=>['applyLinkMan','applyLinkTel','applyLinkEmail','isInvestment','investmentStaff'],
|
||||
'applyStep2'=>['businessLicenceType','businessLicence','legalPersonName','businessAreaPath0','licenseAddress','establishmentDate','businessStartDate','businessEndDate','isLongbusinessDate','registeredCapital','empiricalRange','areaIdPath0','shopCompany','shopAddress','shopTel','shopkeeper','telephone','shopEmergencyLinkMan','legalCertificateType','legalCertificate','legalCertificateStartDate','legalCertificateEndDate','isLonglegalCertificateDate','legalCertificateImg','businessLicenceImg','bankAccountPermitImg','organizationCode','organizationCodeStartDate','organizationCodeEndDate','organizationCodeImg'],
|
||||
'applyStep3'=>['taxpayerType','taxpayerNo','taxRegistrationCertificateImg','taxpayerQualificationImg','bankUserName','bankNo','bankId','bankAreaId'],
|
||||
'applyStep4'=>['shopName','shopImg','goodsCatIds','isInvoice','invoiceRemarks','freight','serviceStartTime','serviceEndTime']
|
||||
];
|
||||
|
||||
protected function checkInvoiceRemark($value){
|
||||
$isInvoice = input('post.isInvoice/d',0);
|
||||
$key = Input('post.invoiceRemarks');
|
||||
return ($isInvoice==1 && $key=='')?'请输入发票说明':true;
|
||||
}
|
||||
|
||||
protected function checkInvestment($value){
|
||||
$isInvestment = input('post.isInvestment/d',0);
|
||||
$key = Input('post.investmentStaff');
|
||||
return ($isInvestment==1 && $key=='')?'请输入商城招商人员姓名':true;
|
||||
}
|
||||
|
||||
protected function checkBusinessEndDate($value){
|
||||
$isLongbusinessDate = input('post.isLongbusinessDate/d',0);
|
||||
$key = Input('post.businessEndDate');
|
||||
return ($isLongbusinessDate==0 && $key=='')?'请输入营业期限结束日期':true;
|
||||
}
|
||||
protected function checkLegalCertificateEndDate($value){
|
||||
$isLonglegalCertificateDate = input('post.isLonglegalCertificateDate/d',0);
|
||||
$key = Input('post.legalCertificateEndDate');
|
||||
return ($isLonglegalCertificateDate==0 && $key=='')?'请选择法定代表人证件有效期结束日期':true;
|
||||
}
|
||||
protected function checkOrganizationCodeEndDate($value){
|
||||
// $isLonglegalCertificateDate = input('post.isLongOrganizationCodeDate/d',0);
|
||||
// $key = Input('post.organizationCodeEndDate');
|
||||
// return ($isLonglegalCertificateDate==0 && $key=='')?'请输入商标注册证有效期结束日期':true;
|
||||
}
|
||||
}
|
47
hyhproject/home/view/default/base.html
Executable file
@ -0,0 +1,47 @@
|
||||
<!doctype html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>{block name="title"}{:WSTConf('CONF.mallTitle')}{/block}</title>
|
||||
{block name="meta"}{/block}
|
||||
<link href="__STYLE__/css/common.css?v={$v}" rel="stylesheet">
|
||||
{block name="css"}{/block}
|
||||
<script type="text/javascript" src="__STATIC__/js/jquery.min.js?v={$v}"></script>
|
||||
<script type="text/javascript" src="__STATIC__/plugins/layer/layer.js?v={$v}"></script>
|
||||
<script type='text/javascript' src='__STATIC__/js/common.js?v={$v}'></script>
|
||||
{block name="depend_common_js"}{/block}
|
||||
<script type='text/javascript' src='__STYLE__/js/common.js?v={$v}'></script>
|
||||
|
||||
{/*未登录的话加载登录框所需要的文件*/}
|
||||
{if ((int)session('WST_USER.userId')<=0) }
|
||||
<link href="__STATIC__/plugins/validator/jquery.validator.css?v={$v}" rel="stylesheet">
|
||||
<link href="__STYLE__/css/login.css?v={$v}" rel="stylesheet">
|
||||
<script type="text/javascript" src="__STATIC__/plugins/validator/jquery.validator.min.js?v={$v}"></script>
|
||||
<script type="text/javascript" src="__STATIC__/js/rsa.js"></script>
|
||||
<script type='text/javascript' src='__STYLE__/js/login.js?v={$v}'></script>
|
||||
{/if}
|
||||
<script>
|
||||
window.conf = {"ROOT":"__ROOT__","IMGURL":"__IMGURL__","APP":"__APP__","STATIC":"__STATIC__","SUFFIX":"{:config('url_html_suffix')}","SMS_VERFY":"{:WSTConf('CONF.smsVerfy')}","SMS_OPEN":"{:WSTConf('CONF.smsOpen')}","GOODS_LOGO":"{:WSTConf('CONF.goodsLogo')}","SHOP_LOGO":"{:WSTConf('CONF.shopLogo')}","MALL_LOGO":"{:WSTConf('CONF.mallLogo')}","USER_LOGO":"{:WSTConf('CONF.userLogo')}","IS_LOGIN":"{if (int)session('WST_USER.userId')>0 }1{else}0{/if}","TIME_TASK":"1","ROUTES":'{:WSTRoute()}',"IS_CRYPT":"{:WSTConf('CONF.isCryptPwd')}"}
|
||||
$(function() {
|
||||
WST.initVisitor();
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{block name="top"}
|
||||
{include file="default/top" /}
|
||||
{/block}
|
||||
{block name="header"}
|
||||
{if isset($selfShop)}
|
||||
{include file="default/self_shop_header" /}
|
||||
{else /}
|
||||
{include file="default/header" /}
|
||||
{/if}
|
||||
{/block}
|
||||
{block name="main"}主内容{/block}
|
||||
{block name="footer"}
|
||||
{include file="default/footer" /}
|
||||
{/block}
|
||||
{block name="js"}{/block}
|
||||
</body>
|
||||
</html>
|
46
hyhproject/home/view/default/css/articles.css
Executable file
@ -0,0 +1,46 @@
|
||||
.bc-nav{width:100%;height:35px;border-bottom:1px solid lightgreen}
|
||||
.help-box{width:1200px;margin:0 auto;min-height:600px}
|
||||
.help-left{width:210px;margin:15px;margin-left:0;float:left;background:#fff}
|
||||
.help-right{width:970px;overflow-x:hidden;min-height:400px;background:white;float:left;margin-top:15px}
|
||||
.h-content{padding:10px;width:950px;min-height:370px;text-indent:7px;font-family:"microsoft yahei"}
|
||||
.h-content .head{padding-bottom:26px}
|
||||
.h-content .head p{float:left;min-width:230px;font-size:16px;height:36px;line-height:36px;border-bottom:2px solid #8b8b8b}
|
||||
.h-content .head p span{font-size:28px}
|
||||
.h-title{height:36px;line-height:36px;text-align:center;font-size:16px;color:white;font-weight:bold}
|
||||
.h-hide ul{display:none}
|
||||
.h-hide p{margin:14px 5px 0 0;float:right;display:inline-block;width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid#ccc}
|
||||
#parent>li>span{display:block;padding-left:10px;background:#eaeaea;border-bottom:1px solid #fff}#parent>li>span:hover{cursor:pointer;background:#dadada}
|
||||
#parent>li{line-height:33px;display:block}
|
||||
.h-show ul{display:block}
|
||||
.h-show p{margin:14px 5px 0 0;float:right;display:inline-block;width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid#ccc}
|
||||
.h-list{border:1px solid #dedede}
|
||||
.h-list li{width:177px;line-height:20px;margin:5px 0 5px 10px;padding:2px 0;padding-left:20px;cursor:pointer}
|
||||
.h-list .h-curr{margin-left:10px}
|
||||
.h-curr{background:rgba(0,0,0,0) linear-gradient(to right,#eaeaea,#fff) repeat scroll 0 0;border-color:#dedede;border-image:none;border-width:1px;color:green;font-weight:bold}
|
||||
.h-list a:hover li{color:green;font-weight:bold}
|
||||
.bc-nav{line-height:35px}
|
||||
.bc-nav>p{width:1200px;margin:0 auto}
|
||||
.bc-nav>p>a{color:gray}
|
||||
.b{border:1px solid #e0dddd}
|
||||
.h-right-title{width:100%;height:25px;margin-left:5px;margin-top:15px}
|
||||
.h-right-title>h4{float:left;font-size:19px}#square{margin:5px;width:6px;height:6px;background:#df2003;float:left}
|
||||
.b-99{background:#7dd589}
|
||||
.h-record{padding:5px;width:100%;height:100px;margin-top:20px;border-top:1px solid #e0dddd}
|
||||
.h-record>p{padding:5px}
|
||||
.h-button{width:100px;height:25px;color:#6f6666;margin-left:5px}
|
||||
.h-content h1{text-align:center}
|
||||
.h-content .cat-time{text-align:center;padding:10px 0}
|
||||
.c{clear:both}
|
||||
.b-lg{background:#7dd589}
|
||||
.news-list a,.list-time{font-size:13px;letter-spacing:2px;color:#333}
|
||||
.news-list li{padding:8px 5px;border-bottom:1px dashed #ccc}
|
||||
.news-list a:hover{font-size:13px;letter-spacing:2px;color:#40bb6a}
|
||||
.list-time{display:block;float:right}
|
||||
#g-square{margin:8px 0;width:3px;height:3px;background:#333;float:left}
|
||||
.n-content{width:100%;min-height:300px;overflow:hidden}
|
||||
.h-page{position:relative;width:100%;height:100px;background:url(../img/img_yingyin.png) 0 68px no-repeat}
|
||||
.h-page .pagination .active{background:#3fba6a;color:white}
|
||||
.h-page .pagination .disabled span,.h-page .pagination .active span{left:30px;line-height:28px;padding-left:4px}
|
||||
.h-page .pagination{position:relative;top:32px;left:30%;width:100%;height:30px}
|
||||
.h-page .pagination li{margin:0 auto;width:28px;height:28px;border:1px solid #bfbfbf;float:left;margin-left:10px}
|
||||
.h-page .pagination li a{line-height:28px;padding-left:4px}
|
44
hyhproject/home/view/default/css/brandslist.css
Executable file
@ -0,0 +1,44 @@
|
||||
@CHARSET "UTF-8";.wst-brand-cat{margin:10px 0 20px 0;padding:10px 20px;border:1px solid #dddbdb}
|
||||
.wst-brand-cat{margin:10px 0 0px 0;padding:10px 20px;border:1px solid #dddbdb}
|
||||
.wst-brand-catt{height:23px;color:#333;border-bottom:1px dashed #b5b5b5}
|
||||
.wst-brand-cat span{float:left;margin:8px 60px 0 0;padding:8px 5px}
|
||||
.wst-brand-cat span:hover{cursor:pointer;color:#fff;background:#fc6047;border-radius:3px}
|
||||
.js-selected{cursor:pointer;color:#fff;background:#fc6047;border-radius:3px}
|
||||
.wst-brands{float:left;margin:10px 20px}
|
||||
.wst-brand-img{width:200px;height:200px;text-align:center;vertical-align:middle;display:block;position:relative}
|
||||
.wst-brand-img a{width:200px;height:200px;display:table-cell;vertical-align:middle}
|
||||
.wst-brand-img a img{max-width:200px;max-height:200px}
|
||||
.wst-brand-name{position:relative;text-align:center;height:30px;line-height:30px;color:#353535;font-family:fantasy}
|
||||
.brandsPaging{padding:20px 0 50px 480px}
|
||||
.wst-brands-list li{-webkit-perspective:400px;perspective:400px}
|
||||
.info{-webkit-transform:rotate3d(1,0,0,90deg);transform:rotate3d(1,0,0,90deg);width:100%;height:100%;padding:20px;position:absolute;top:0;left:0;border-radius:4px;pointer-events:none;background-color:#000;opacity:.6}
|
||||
.in-top .info{-webkit-transform-origin:50% 0;transform-origin:50% 0;-webkit-animation:in-top 300ms ease 0ms 1 forwards;animation:in-top 300ms ease 0ms 1 forwards}
|
||||
.in-right .info{-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-animation:in-right 300ms ease 0ms 1 forwards;animation:in-right 300ms ease 0ms 1 forwards}
|
||||
.in-bottom .info{-webkit-transform-origin:50% 100%;transform-origin:50% 100%;-webkit-animation:in-bottom 300ms ease 0ms 1 forwards;animation:in-bottom 300ms ease 0ms 1 forwards}
|
||||
.in-left .info{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-animation:in-left 300ms ease 0ms 1 forwards;animation:in-left 300ms ease 0ms 1 forwards}
|
||||
.out-top .info{-webkit-transform-origin:50% 0;transform-origin:50% 0;-webkit-animation:out-top 300ms ease 0ms 1 forwards;animation:out-top 300ms ease 0ms 1 forwards}
|
||||
.out-right .info{-webkit-transform-origin:100% 50%;transform-origin:100% 50%;-webkit-animation:out-right 300ms ease 0ms 1 forwards;animation:out-right 300ms ease 0ms 1 forwards}
|
||||
.out-bottom .info{-webkit-transform-origin:50% 100%;transform-origin:50% 100%;-webkit-animation:out-bottom 300ms ease 0ms 1 forwards;animation:out-bottom 300ms ease 0ms 1 forwards}
|
||||
.out-left .info{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-animation:out-left 300ms ease 0ms 1 forwards;animation:out-left 300ms ease 0ms 1 forwards}
|
||||
@-webkit-keyframes in-top{from{-webkit-transform:rotate3d(-1,0,0,90deg);transform:rotate3d(-1,0,0,90deg)}to{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}
|
||||
}@keyframes in-top{from{-webkit-transform:rotate3d(-1,0,0,90deg);transform:rotate3d(-1,0,0,90deg)}to{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}
|
||||
}@-webkit-keyframes in-right{from{-webkit-transform:rotate3d(0,-1,0,90deg);transform:rotate3d(0,-1,0,90deg)}to{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}
|
||||
}@keyframes in-right{from{-webkit-transform:rotate3d(0,-1,0,90deg);transform:rotate3d(0,-1,0,90deg)}to{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}
|
||||
}@-webkit-keyframes in-bottom{from{-webkit-transform:rotate3d(1,0,0,90deg);transform:rotate3d(1,0,0,90deg)}to{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}
|
||||
}@keyframes in-bottom{from{-webkit-transform:rotate3d(1,0,0,90deg);transform:rotate3d(1,0,0,90deg)}to{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}
|
||||
}@-webkit-keyframes in-left{from{-webkit-transform:rotate3d(0,1,0,90deg);transform:rotate3d(0,1,0,90deg)}to{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}
|
||||
}@keyframes in-left{from{-webkit-transform:rotate3d(0,1,0,90deg);transform:rotate3d(0,1,0,90deg)}to{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}
|
||||
}@-webkit-keyframes out-top{from{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}to{-webkit-transform:rotate3d(-1,0,0,104deg);transform:rotate3d(-1,0,0,104deg)}
|
||||
}@keyframes out-top{from{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}to{-webkit-transform:rotate3d(-1,0,0,104deg);transform:rotate3d(-1,0,0,104deg)}
|
||||
}@-webkit-keyframes out-right{from{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}to{-webkit-transform:rotate3d(0,-1,0,104deg);transform:rotate3d(0,-1,0,104deg)}
|
||||
}@keyframes out-right{from{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}to{-webkit-transform:rotate3d(0,-1,0,104deg);transform:rotate3d(0,-1,0,104deg)}
|
||||
}@-webkit-keyframes out-bottom{from{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}to{-webkit-transform:rotate3d(1,0,0,104deg);transform:rotate3d(1,0,0,104deg)}
|
||||
}@keyframes out-bottom{from{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}to{-webkit-transform:rotate3d(1,0,0,104deg);transform:rotate3d(1,0,0,104deg)}
|
||||
}@-webkit-keyframes out-left{from{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}to{-webkit-transform:rotate3d(0,1,0,104deg);transform:rotate3d(0,1,0,104deg)}
|
||||
}@keyframes out-left{from{-webkit-transform:rotate3d(0,0,0,0deg);transform:rotate3d(0,0,0,0deg)}to{-webkit-transform:rotate3d(0,1,0,104deg);transform:rotate3d(0,1,0,104deg)}
|
||||
}
|
||||
.wst-brands-list:after{content:"";display:table;clear:both}
|
||||
.wst-brands-list li{position:relative;float:left;width:200px;height:200px;margin:10px 20px 30px 20px;padding:0;list-style:none}
|
||||
.wst-brands-list span{float:left;width:100%;color:#fff;margin:35px 0 10px 70px}
|
||||
.wst-brands-list p{float:left;width:100%;color:#fff;font-size:20px;text-align:center}
|
||||
.info,.info:after,.info:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}
|
210
hyhproject/home/view/default/css/carts.css
Executable file
@ -0,0 +1,210 @@
|
||||
.stepflex{float:right;border-top:5px solid #ccc;text-align:center;width:480px;margin:60px 0px 0px 50px;}
|
||||
.stepflex dl{border-top:5px solid #ccc;float:left;position:relative;top:-5px;width:160px;}
|
||||
dl.doing{border-top-color:#04bd3d;}
|
||||
.doing .s-num{background-position:-23px 0;}
|
||||
.s-num,.s-num1{color:#fff;font-weight: 700;height:23px;line-height:23px;margin:-15px auto 0;position:relative;width:23px;border-radius:25px;}
|
||||
.s-num{background:#04bd3d;}
|
||||
.s-num1{background:#ccc;}
|
||||
.s-text1{line-height:30px;}
|
||||
.s-text{line-height:30px;color:#04bd3d;}
|
||||
/**购物车**/
|
||||
.main-head{font-size:17px;font-weight:bold;height:35px;line-height:35px;}
|
||||
.cart-box{width:100%;border-top:2px solid #FC7A64;}
|
||||
.cart-head{background: #f3f3f3;display: block;height: 25px;line-height: 25px;margin: 0 0 5px;padding: 5px 0;}
|
||||
.cart-head .chk{float:left;width:100px;padding-left:10px;}
|
||||
.cart-head .goods{float:left;width:550px;}
|
||||
.cart-head .price{float:left;width:105px;}
|
||||
.cart-head .stock{float:left;width:105px;}
|
||||
.cart-head .num{float:left;width:120px;}
|
||||
.cart-head .t-price{float:left;width:105px;}
|
||||
.cart-head .action{float:left;width:95px;}
|
||||
.cart-box .shop{padding-left:10px;line-height:25px;border-bottom:2px solid #d0e2ff;padding-bottom:5px;}
|
||||
.cart-box .shop .shop-title{width:40%;float:left;}
|
||||
.cart-box .goods-list{width:100%;}
|
||||
.cart-box .item{display:block;padding-top:10px;padding-bottom:10px;border-bottom:1px solid #ECECEC;}
|
||||
.cart-box .item .chk{float:left;width:20px;padding-left:10px;}
|
||||
.cart-box .item .goods{float:left;width:630px;}
|
||||
.cart-box .item .goods .img{float:left;width:80px;height:80px;margin-left:10px;}
|
||||
.cart-box .item .goods .name{float:left;width:340px;height:80px;padding-left:5px;}
|
||||
.cart-box .item .goods .spec{float:left;width:180px;padding-left:5px;}
|
||||
.cart-box .item .price{float:left;width:105px;}
|
||||
.cart-box .item .stock{float:left;width:105px;}
|
||||
.cart-box .item .num{float:left;width:120px;}
|
||||
.buy-btn{color:#666;background:#eeeeee;cursor: pointer;float:left;;display:block;height:20px;line-height:20px;padding:0px 5px;border:1px solid #ddd;}
|
||||
input[type="text"].buy-num{height:16px;text-align:center;width:40px;float:left;border-left:0px;border-right:0px;border-top:1px solid #ddd;border-bottom:1px solid #ddd;}
|
||||
.item .t-price{float:left;width:105px;}
|
||||
.item .action{float:left;width:95px;}
|
||||
.selected{background:#fbfcff;}
|
||||
.selected2{background:#f2f7ff;}
|
||||
.cart-footer{margin-bottom:15px;}
|
||||
.cart-footer .summarys1{float:left;width:360px;}
|
||||
.cart-footer .summarys2{float:left;width:360px;}
|
||||
.cart-footer .summarys3{float:right;width:1180px;border-top:1px dotted #ddd;padding-top:10px;}
|
||||
.cart-summary{border-bottom:1px solid #eeeeee;display:block;height:50px;line-height:50px;}
|
||||
.summary{float:right;height:50px;line-height:50px;padding-right:10px;}
|
||||
#totalMoney{color:#C00;font-size:16px;margin-left:5px;}
|
||||
.cart-btn{margin:20px 0px;padding-right:20px;}
|
||||
.wst-contnue{float:left;margin-left:20px;width:105px;height:33px;line-height:33px;}
|
||||
.wst-next{float:right;margin-right:20px;width:118px;height:33px;line-height:33px;}
|
||||
.wst-order-success{width:135px;height:35px;line-height:35px;display: block;}
|
||||
.empty-cart{height:80px;line-height:80px;font-size:20px;text-align:center;}
|
||||
.empty-cart a{color:blue;font-size:20px;}
|
||||
/**结算页面**/
|
||||
.box-head{font-weight:bold;height:30px;line-height:30px;}
|
||||
.box-head2{font-weight:bold;height:30px;line-height:30px;padding-left:5px;}
|
||||
.cart-box2{width:100%;border:1px solid #eeeeee;padding:5px 0px 10px 0px;}
|
||||
.cart-head2{border-top:2px solid #e7e7e7;background: #f3f3f3;display: block;height: 25px;line-height: 25px;padding: 5px 0;}
|
||||
.cart-head2 .goods2{float:left;width:745px;padding-left:15px;}
|
||||
.cart-head2 .price2{float:left;width:105px;}
|
||||
.cart-head2 .stock2{float:left;width:105px;}
|
||||
.cart-head2 .num2{float:left;width:120px;}
|
||||
.cart-head2 .t-price2{float:left;width:195px;text-align:right;}
|
||||
.cart-box2 .shop2{padding-left:15px;height:35px;line-height:35px;border-bottom:2px solid #d0e2ff;color:#E55356;font-weight:bold;font-size:15px;}
|
||||
.cart-box2 .item{padding:5px 0px 5px 0px}
|
||||
.cart-box2 .item .goods2{float:left;width:745px;padding-left:15px;}
|
||||
.cart-box2 .item .goods2 .img2{float:left;width:80px;height:80px;}
|
||||
.cart-box2 .item .goods2 .name2{float:left;width:470px;height:80px;margin-left:5px;}
|
||||
.cart-box2 .item .goods2 .spec2{float:left;width:180px;margin-left:5px;}
|
||||
.cart-box2 .item .price2{float:left;width:105px;}
|
||||
.cart-box2 .item .stock2{float:left;width:105px;}
|
||||
.cart-box2 .item .num2{float:left;width:120px;}
|
||||
.cart-box2 .item .t-price2{float:left;width:195px;font-weight: bold;color: #E55356;text-align:right;}
|
||||
.cart-summary2{margin-top:10px;}
|
||||
.summary2{height:30px;line-height:30px;}
|
||||
.shop-remark{padding:0px 5px 0px 15px}
|
||||
.shop-remark .shop-remark-box{width:500px;padding-top:20px;padding-bottom:30px;display: inline-block;position: relative;vertical-align: top;}
|
||||
.shop-remark .shop-summary{width:650px;padding-top:20px;padding-bottom:30px;padding-left:10px;display: inline-block;border-left:1px solid #fff;}
|
||||
.shop-remark .shop-summary .row{height:25px;line-height: 25px;}
|
||||
.shop-remark .shop-summary dt{width:140px;display:inline-block;text-align: right}
|
||||
.shop-remark .shop-summary dd{width:500px;display:inline-block}
|
||||
#totalPrice{color:#FE0000;font-size:16px;margin-left:5px;}
|
||||
#deliverMoney{color:#FE0000;font-size:16px;margin-left:5px;}
|
||||
#orderScore{margin-right:5px;}
|
||||
.wst-prev{float:left;margin-left:10px;}
|
||||
.wst-order{float:right;}
|
||||
/**用户地址**/
|
||||
.add-addr{font-weight: normal;color:#005ea7;display: block;float:right;margin-right: 5px;}
|
||||
.add-addr:hover{color:red;}
|
||||
.address-box{border-top:2px solid #FC7A64;border-left:1px solid #eeeeee;border-right:1px solid #eeeeee;padding:5px 0px 10px 5px;}
|
||||
.j-show-box,.j-edit-box,.j-list-box,.wst-list-box{padding:5px 0px 20px 15px;}
|
||||
.j-list-box li{height:40px;line-height:40px;}
|
||||
.j-edit-box .rows{width:auto;height:auto;}
|
||||
.j-edit-box .label{float:left;width:120px;text-align:right;padding:2px 0px 2px 0px;}
|
||||
.j-edit-box .field{float:left;padding:2px 0px 2px 0px;}
|
||||
.field label{margin-right:20px;}
|
||||
#saveAddressBtn{margin-left:120px;}
|
||||
.j-show-box .address{line-height:36px;}
|
||||
.j-show-box .address a{color: #1c9eff;}
|
||||
.j-show-box .address a:hover{text-decoration:underline;}
|
||||
.j-default{padding:5px;background:#ccc;}
|
||||
.wst-frame1{float: left;width:180px;margin: 2px 8px 2px 0px;background: #fff;border: 1px solid #ccc;padding:7px;cursor: pointer;text-align:center;overflow: hidden;position: relative;}
|
||||
.wst-frame2{float: left;min-width:120px;margin: 2px 20px 2px 0px;background: #fff;border: 1px solid #ccc;padding:7px;cursor: pointer;text-align:center;overflow: hidden;position: relative;}
|
||||
.wst-frame1.j-selected i,.wst-frame2.j-selected i{font-size: 0;line-height: 0;background: url(../img/img_gd_sel.png) no-repeat 0 0;display: block; width: 11px;height: 11px;position: absolute;z-index: 1;right: -1px;bottom: -1px;}
|
||||
.wst-frame1.j-selected,.wst-frame2.j-selected{border: 2px solid #e4393c;padding:6px;}
|
||||
/**支付方式**/
|
||||
.pay-box{border-left:1px solid #eeeeee;border-right:1px solid #eeeeee;border-top:1px solid #eeeeee;padding:5px 0px 10px 5px;}
|
||||
.pay-boxs{padding:10px 0px 5px 5px;}
|
||||
.pay-box ul{padding-left:15px;}
|
||||
.pay-box ul li{width:1185px;}
|
||||
.pay-box .label{width:200px;float:left;height:30px;line-height:30px;}
|
||||
.pay-box .txt{height:auto;line-height:30px;width:985px;float:left;color:#999999;}
|
||||
.pay-sbox{border:1px solid #eeeeee;padding:5px 0px;}
|
||||
.pay-sbox-head{border-bottom: 2px solid #ddd;line-height:35px;}
|
||||
.pay-tip1{height:37px;width:760px;text-align: center;margin:10px auto;background: url(../img/pay_liucheng.png) no-repeat 0px -10px;background-size: cover; }
|
||||
.pay-tip2{height:37px;width:760px;text-align: center;margin:10px auto;background: url(../img/pay_liucheng.png) no-repeat 0px -71px;background-size: cover; }
|
||||
.pay-tip3{height:37px;width:760px;text-align: center;margin:10px auto;background: url(../img/pay_liucheng.png) no-repeat 0px -132px;background-size: cover; }
|
||||
.pay-sbox .qrcode-box{min-height: 300px;height: auto;}
|
||||
.pay-sbox .tips-box{line-height:35px;text-align: left;font-weight: bold;padding:5px 10px;}
|
||||
.pay-sbox .qrcode-box .pbox{text-align: center;margin-top: 10px;font-weight: bold;}
|
||||
.pay-sbox .wst-qrcode{width:260px;height:260px;text-align:center;margin:0 auto;}
|
||||
.pay-sbox .wst-qrcode img{width:260px;height:260px;}
|
||||
.pay-sbox .bnt-box{line-height:35px;text-align:center;font-weight: bold;padding:5px 10px;line-height:50px;}
|
||||
.pay-sbox .pay-type{line-height:35px;text-align: left;font-weight: bold;padding:5px 10px;}
|
||||
.pay-sbox .pay-list{text-align: left;font-weight: bold;padding:5px 10px;}
|
||||
.pay-sbox .succ-box{text-align: center;padding: 50px;}
|
||||
.wst-payCode-weixinpays {height:69px;width:167px;text-align: center;margin:10px auto;background: url(../img/weixinpays.png) no-repeat 0px 0px;background-size: cover;float: left;margin-right:10px;cursor:pointer;}
|
||||
.wst-payCode-weixinpays-curr {height:69px;width:167px;text-align: center;margin:10px auto;background: url(../img/weixinpays.png) no-repeat 0px -75px;background-size: cover;float: left;margin-right:10px;cursor:pointer;}
|
||||
.wst-payCode-alipays {height:69px;width:167px;text-align: center;margin:10px auto;background: url(../img/alipays.png) no-repeat 0px 0px;background-size: cover;float: left;margin-right:10px;cursor:pointer;}
|
||||
.wst-payCode-alipays-curr {height:69px;width:167px;text-align: center;margin:10px auto;background: url(../img/alipays.png) no-repeat 0px -75px;background-size: cover;float: left;margin-right:10px;cursor:pointer;}
|
||||
.wst-payCode-wallets {height:69px;width:167px;text-align: center;margin:10px auto;background: url(../img/wallets.png) no-repeat 0px 0px;background-size: cover;float: left;margin-right:10px;cursor:pointer;}
|
||||
.wst-payCode-wallets-curr {height:69px;width:167px;text-align: center;margin:10px auto;background: url(../img/wallets.png) no-repeat 0px -75px;background-size: cover;float: left;margin-right:10px;cursor:pointer;}
|
||||
.wst-payCode-unionpays {height:69px;width:167px;text-align: center;margin:10px auto;background: url(../img/unionpays.png) no-repeat 0px 0px;background-size: cover;float: left;margin-right:10px;cursor:pointer;}
|
||||
.wst-payCode-unionpays-curr {height:69px;width:167px;text-align: center;margin:10px auto;background: url(../img/unionpays.png) no-repeat 0px -75px;background-size: cover;float: left;margin-right:10px;cursor:pointer;}
|
||||
.pay-sbox .balance-box{min-height: 300px;height: auto;}
|
||||
.pay-sbox .balance-box .pbox{text-align: center;padding-top: 40px;font-weight: bold;}
|
||||
.pay-sbox .balance-box .pbox2{text-align: center;padding-top: 10px;font-weight: bold;}
|
||||
.pbox-tip{color:#0ae;margin-left:10px;}
|
||||
.pay-btn{background: #eb5f43 none repeat scroll 0 0;border: 1px solid #d33110;border-radius: 3px;color: #ffffff;cursor: pointer;outline: medium none;}
|
||||
.pay-sbox .wst-pay-bnt {height:40px;width:132px;text-align: center;margin:10px auto;background: url(../img/btn_pay.png) no-repeat 0px 0px;cursor:pointer;}
|
||||
.pay-sbox .wst-pay-bnt:hover {height:40px;width:132px;text-align: center;margin:10px auto;background: url(../img/btn_pay.png) no-repeat 0px -57px;cursor:pointer;}
|
||||
.wst-wallet-box{border:1px solid #ddd;margin:10px;padding:5px;line-height: 35px;height:40px;}
|
||||
.wst-wallet-box .wst-wallte-item{background:url("../img/icon_qianbaoyue.png") no-repeat;padding-left:30px;height:30px;margin-top:5px;float:left;}
|
||||
/**送货方式**/
|
||||
.shipping-box{border-left:1px solid #eeeeee;border-right:1px solid #eeeeee;border-top:1px solid #eeeeee;padding:5px 0px 10px 5px;}
|
||||
.shipping-box ul{padding-left:15px;}
|
||||
.shipping-box ul li{height:auto;line-height:30px;}
|
||||
/**发票**/
|
||||
.invoice-box{border-left:1px solid #eeeeee;border-right:1px solid #eeeeee;border-top:1px solid #eeeeee;padding:5px 0px 10px 5px;}
|
||||
.invoice-box ul{padding-left:15px;}
|
||||
.invoice-box ul li{height:auto;line-height:30px;}
|
||||
/**订单成功**/
|
||||
.success-box{border:1px solid #ddd;height:300px;margin-bottom:30px;text-align:center;}
|
||||
.success-box .imgs{margin: 0 auto;padding-top:72px;width:18%;}
|
||||
.success-box .imgs span{color:#11cd6e;font-family:"microsoft yahei";font-size: 22px;line-height:65px;margin-left:8x}
|
||||
.success-box .info{margin: 6px auto;padding-top:16px;width:100%;font-size: 20px;}
|
||||
.success-box .info a{color:#51cff5;font-size: 20px;}
|
||||
.success-box .info span{color:#f33d2f;font-size: 20px;}
|
||||
.success-box .go{margin: 26px auto;width:12%;}
|
||||
/*按钮*/
|
||||
.wst-cart-reda{font-size: 14px;color:#ffffff;background: #df2003;text-align:center;border-radius:3px;font-family:"microsoft yahei";box-shadow: 0 1px 1px rgba(0, 0, 0, 0.3);}
|
||||
.wst-cart-reda:hover{color:#ffffff;background:#ea3232;box-shadow: 0 0px 0px rgba(0, 0, 0, 0.3);}
|
||||
.wst-cart-asha{font-size: 14px;background: #ffffff;text-align:center;border-radius: 3px;border: 1px solid #dad7d7;font-family:"microsoft yahei";box-shadow: 0 0px 1px rgba(0, 0, 0, 0.3);}
|
||||
.wst-cart-asha:hover{background:#f1f1f1;box-shadow: 0 0px 0px rgba(0, 0, 0, 0.3);}
|
||||
/*自定义单选框样式*/
|
||||
.wst-radio + label {-webkit-appearance: none;background-color: #fafafa;border: 1px solid gray;padding: 6px;border-radius: 50px;display: inline-block;position: relative;}
|
||||
.wst-radio + label:after {content: ' ';width: 6px;height: 6px;border-radius: 50px;position: absolute;top: 3px;background: #99a1a7;box-shadow: inset 0px 0px 10px rgba(0,0,0,0.3);text-shadow: 0px;left: 3px;font-size: 32px;}
|
||||
.wst-radio:checked + label{border: 1px solid #fc6047;}
|
||||
.wst-radio:checked + label:after {content: ' ';width: 6px;height: 6px;border-radius: 50px;position: absolute;top: 3px;background: #fc6047;box-shadow: inset 0px 0px 10px #fc6047;text-shadow: 0px;left: 3px;font-size: 32px;z-index:100;}
|
||||
.radio-box .wst-radio{position:relative;z-index:-100;left:0px;top:0px;}
|
||||
.radio-box-hover{background: #fff3f3;}
|
||||
.operate-box a{color:#1c9eff;}
|
||||
.operate-box a:hover{color:red;}
|
||||
.operate-box{float:right;display: none;margin-right: 5px;}
|
||||
.mt-1{position:relative;top:1px;left:-16px;cursor:pointer;}
|
||||
/**订单列表**/
|
||||
.wst-check-orders{color:#1D94D7;cursor:pointer;}
|
||||
.wst-order-list{width:100%;border-collapse:collapse;border-color:grey;}
|
||||
.wst-order-list .head{height: 32px;line-height: 32px;text-align: center;background: #f5f5f5;color: #666;font-weight: 400;}
|
||||
.wst-order-list .goods-img{width:60px; height:60px;text-align:center;vertical-align:middle;display:block;position:relative;float:left;}
|
||||
.wst-order-list .goods-img a{display:table-cell;vertical-align:middle;width:60px;height:60px;}
|
||||
.wst-order-list .goods-img a img{max-width:60px;max-height:60px;}
|
||||
.wst-order-list .goods-name{float:left;margin-left:5px;line-height:25px;width:500px;}
|
||||
.wst-order-list .goods-extra{float:right;margin-left:5px;}
|
||||
.wst-order-list .line{border-bottom:1px solid #ddd;margin-bottom:2px;padding-bottom:2px;}
|
||||
.order-box{margin-bottom:5px;border-bottom:1px solid #ddd;}
|
||||
.order-box .box-head{font-weight:bold;height:30px;line-height:30px;}
|
||||
.wst-order-list td,.wst-order-list th {padding: 5px 10px;border: 1px solid #e5e5e5;border-top: 0px;}
|
||||
.wst-order-list td,.wst-order-list th.wst-left-noborder{border-left:0;}
|
||||
.wst-order-list td,.wst-order-list th.wst-right-noborder{border-right:0;}
|
||||
.wst-order-list .otbody{text-align: center;}
|
||||
/* 发票信息 */
|
||||
.invoice_box{margin-top: 30px;}
|
||||
.invoice_item{width:85%;margin:0 auto;overflow: hidden;padding-top: 10px;}
|
||||
.invoice_left{width:25%;float: left;text-align: right;color: #666;font-size: 14px;padding: 4px 0px;}
|
||||
.tc{text-align: center}
|
||||
.invoice_right{width: 70%;float: left;}
|
||||
.inv_ul{width: 100%;overflow-y: scroll;max-height: 132px;}
|
||||
.inv_li{position: relative;border:1px solid #eee;padding:5px;margin-bottom: 10px;padding:6px;cursor: pointer;}
|
||||
.inv_li_curr i{font-size: 0;line-height: 0;background: url(../img/img_gd_sel.png) no-repeat 0 0;display: block; width: 11px;height: 11px;position: absolute;z-index: 1;right: -1px;bottom: -1px;}
|
||||
.inv_li_curr{border: 2px solid #e4393c!important;padding:6px!important;}
|
||||
.inv_li:hover .inv_opabox{display: block;}
|
||||
.inv_opabox{display:none;position: absolute;right: 10%;top: 8px;}
|
||||
.inv_add,.inv_opabox a{color: #00a0d5;cursor: pointer;}
|
||||
.inv_add:hover,.inv_opabox a:hover{color: red}
|
||||
.inv_opabox a{display: inline-block;margin-right: 15px;}
|
||||
.inv_li1{position: relative;border:1px solid #eee;padding:5px;margin-bottom: 10px;padding:6px;cursor: pointer;float: left;margin-right:5px;}
|
||||
.inv_codebox{display: none;}
|
||||
.invoice_input{height:21px!important;padding: 1px;border:none!important;}
|
||||
.inv_btn{display: inline-block;padding: 5px 10px;color: #fff;background: #e74649;margin-right: 10px;border: 1px solid #e74649;}
|
||||
.inv_cancel{color: #323333;text-decoration: none;border: 1px solid #ddd;box-shadow: 0 1px 1px rgba(0,1,1,.08);background-color: #f7f7f7;}
|
||||
|
297
hyhproject/home/view/default/css/common.css
Executable file
@ -0,0 +1,297 @@
|
||||
@CHARSET "UTF-8";body{color:#333;font:12px/150% "Hiragino Sans GB","Microsoft Yahei",arial,宋体,"Helvetica Neue",Helvetica,STHeiTi,sans-serif}
|
||||
*{padding:0;margin:0}
|
||||
ol,ul{list-style:none}
|
||||
a{color:#333;text-decoration:none}
|
||||
a:hover{text-decoration:none}
|
||||
img{border:0}
|
||||
select{background-color:#fff;border:1px solid #ccc;border-radius:2px;height:24px;margin:2px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 1px rgba(0,0,0,0.075) inset}
|
||||
input[type=text],input[type=password]{border:1px solid #ccc;height:23px;line-height:17px;padding:2px}input[type="radio"],input[type="checkbox"]{margin:2px}
|
||||
input[type=button]{cursor:pointer}
|
||||
.wst-relative{position: relative;}
|
||||
.wst-clear{clear:both}
|
||||
.wst-lfloat{float:left}
|
||||
.wst-rfloat{float:right}
|
||||
.wst-hide{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:4px 5px}
|
||||
.wst-redlink{width:95%;display:block;cursor:pointer}
|
||||
.wst-redlink:hover{color:red}
|
||||
.wst-fred{color:#df2003}
|
||||
.wst-align-center{text-align:center}
|
||||
.wst-align-left{text-align:left}
|
||||
.wst-align-right{text-align:right}
|
||||
.hide{display:none}
|
||||
.layui-layer-icowst1,.layui-layer-icowst2,.layui-layer-icowst3{background-image:url(../../../../../static/images/wst_icon.png)!important;background-repeat:no-repeat!important;background-size:cover!important}
|
||||
.layui-layer-icowst2{background-position:-40px 0!important}
|
||||
.layui-layer-icowst3{background-position:-80px -1px!important}
|
||||
.layui-layer-icowstloading{background-image:url(../../../../../static/images/loading.gif)!important;background-repeat:no-repeat!important;background-size:206% auto!important;background-position:-16px -16px!important}
|
||||
.wst-header{margin:0 auto;width:100%;border-bottom:1px solid #eee;background:#fafafa}
|
||||
.wst-header ul li{float:left}
|
||||
.wst-w,.wst-main{margin:0 auto;width:100%;padding-bottom:5px;margin-bottom:5px}
|
||||
.wst-footer{text-align:center;line-height:25px;width:1210px;margin:0 auto}
|
||||
.index-top-ads{margin:0 auto;height:100px;width:100%;position:relative}
|
||||
.index-top-ads img{width:100%;height:100px;overflow:hidden}
|
||||
.close-ads{width:35px;height:12px;background:url(../img/close_ads.gif) no-repeat;position:absolute;top:10px;right:20px;float:right;z-index:199}
|
||||
.wst-header .wst-nav,.wst-container,.wst-search-container,.wst-nav-menus .nav-w,.wst-lite-container{width:1200px;margin:0 auto}
|
||||
.wst-header .wst-nav{height:30px}
|
||||
.headlf{float:left;width:500px;font-family:Arial,"宋体";font-size:12px}
|
||||
.headrf li{float:left;height:30px;line-height:30px}
|
||||
.headrf li a{font-family:Arial,"宋体";font-size:12px;color:#777}
|
||||
.headlf li{height:30px;line-height:30px;padding-left:0;padding-right:0}
|
||||
.headlf li.spacer{color:#ddd;width:10px;text-align:center}
|
||||
.headrf li.spacer{color:#ddd;width:10px;text-align:center}
|
||||
.wst-header .wst-nav .j-dorpdown{position:relative;width:91px;border:1px solid #fafafa;border-top:0;border-bottom:0}
|
||||
.wst-header .wst-nav .j-dorpdown .nowrap{white-space:nowrap}
|
||||
.wst-header .wst-nav .j-dorpdown:hover{background-color:#fff;border-left:1px solid #ddd;border-right:1px solid #ddd;border-bottom:0;z-index:10000}
|
||||
.wst-header .wst-nav .j-dorpdown-layer{position:absolute;z-index:1000;margin-top:-1px;background:#fff;cursor:pointer;left:-1px;border:1px solid #ddd;border-top:0;display:none}
|
||||
.wst-header .last-menu{float:right;right:0;white-space:nowrap}
|
||||
.wst-header .wst-nav .drop-info{position:relative;padding:0 8px;border:1px solid #fafafa;border-top:0;border-bottom:0}
|
||||
.wst-header .wst-nav .drop-infos a{color:#fe6047}
|
||||
.wst-header .wst-nav .dorpdown-user{position:absolute;z-index:1000;cursor:pointer;left:-1px;display:none}
|
||||
.wst-tag{width:280px;height:180px;border-bottom:1px solid #dedbdb;border-left:1px solid #dedbdb;border-right:1px solid #dedbdb;position:relative;background-color:#fafafa;box-shadow:0 1px 1px rgba(0,0,0,0.3)}
|
||||
.wst-tag:after{top:-16px;border-color:transparent transparent #f7f7f6}
|
||||
.wst-tagt{padding:10px 0}
|
||||
.wst-tagt .userImg{margin-left:10px;float:left;width:60px;height:60px}
|
||||
.wst-tagt .userImg img{width:60px;height:60px;border-radius:1000px}
|
||||
.wst-tagt-n{float:left;width:190px;margin-left:5px}
|
||||
.wst-tagt-na{float:left;color:#fe6047;font-size:15px;margin-left:12px}
|
||||
.wst-tagt-n img{float:left;width:18px;margin-top:5px;margin-left:6px}
|
||||
.wst-tagt-ip{float:left;width:190px;line-height:18px;margin-left:12px;color:#3d3d3e}
|
||||
.wst-tagb{float:left;padding:10px 0 0 30px}
|
||||
.wst-tagb a{float:left;width:70px;margin-left:30px}
|
||||
.wst-tagb a:hover{color:#fd5940}
|
||||
.wst-tags{width:190px;padding-left:10px;clear:both}
|
||||
.wst-header .wst-nav .j-dorpdown .order-list{width:86px}
|
||||
.wst-header .wst-nav .j-dorpdown .product-list{width:91px}
|
||||
.wst-header .wst-nav .j-dorpdown .des-list{width:91px}
|
||||
.wst-header .wst-nav .j-dorpdown .foucs-list{width:91px}
|
||||
.wst-header .wst-nav .j-dorpdown .sweep-list{width:215px}
|
||||
.pdl5{padding-left:5px!important}
|
||||
.pdr5{padding-right:5px!important}
|
||||
.wst-header .wst-nav .j-dorpdown-layer div{text-align:center;line-height:24px}
|
||||
.wst-header .wst-nav .j-dorpdown-layer div a:hover,.wst-header .wst-nav .drop-down a:hover{color:#df2003}
|
||||
.wst-header .wst-nav .drop-down{position:relative;padding:0 18px;width:55px;margin:0 auto}
|
||||
.wst-header .wst-nav .drop-down1{background:url(../img/img_icon.png) -13px -33px no-repeat}
|
||||
.wst-header .wst-nav .drop-down1:hover{background:url(../img/img_icon.png) -13px -183px no-repeat}
|
||||
.wst-header .wst-nav .drop-down2{background:url(../img/img_icon.png) -13px -83px no-repeat}
|
||||
.wst-header .wst-nav .drop-down2:hover{background:url(../img/img_icon.png) -13px -233px no-repeat}
|
||||
.wst-header .wst-nav .drop-down3{background:url(../img/img_icon.png) -12px -134px no-repeat}
|
||||
.wst-header .wst-nav .drop-down3:hover{background:url(../img/img_icon.png) -12px -284px no-repeat}
|
||||
.wst-header .wst-nav .drop-down4{background:url(../img/img_icon.png) -13px -108px no-repeat}
|
||||
.wst-header .wst-nav .drop-down4:hover{background:url(../img/img_icon.png) -13px -258px no-repeat}
|
||||
.wst-header .wst-nav .drop-down5{background:url(../img/img_icon.png) -13px -57px no-repeat}
|
||||
.wst-header .wst-nav .drop-down5:hover{background:url(../img/img_icon.png) -13px -207px no-repeat}
|
||||
.wst-header .wst-nav .drop-down6{background:url(../img/img_icon.png) -13px -8px no-repeat}
|
||||
.wst-header .wst-nav .drop-down6:hover{background:url(../img/img_icon.png) -13px -158px no-repeat}
|
||||
.j-dorpdown-layer .qrcodea .qrcodeal{float:left;margin-top:5px}
|
||||
.j-dorpdown-layer .qrcodea .qrcodear{float:right;margin-right:3px}
|
||||
.j-dorpdown-layer .qrcodea .qrcodear p{color:#fa8a42;font-weight:bold;text-align:center;width:88px}
|
||||
.j-dorpdown-layer .qrcodea .qrcodear a{float:right;width:75px;border:1px solid #ededed;padding:0 5px;margin:0 3px 3px 0;background:#f5f5f5}
|
||||
.wst-nav .headrf .drop-down .di-right{top:12px;right:0;height:7px;overflow:hidden;font-style:normal;color:#6a6a6a;display:block;position:absolute}
|
||||
.wst-nav .headrf .drop-down .di-left{top:12px;left:0;height:7px;overflow:hidden;font-style:normal;display:block;position:absolute}
|
||||
.wst-nav .headrf .drop-down .di-right s{position:relative;top:-14px;text-decoration:none}
|
||||
.wst-nav .headrf .drop-down:hover .di-right s{top:-7}
|
||||
.drop-down a{width:auto}
|
||||
.wst-header .wst-nav .normal{position:relative;padding:0 8px;border:1px solid #fafafa;border-top:0;border-bottom:0}
|
||||
.wst-lite-container{height:auto}
|
||||
.wst-logo{margin:5px 5px 5px 0;float:left;height:auto}
|
||||
.wst-search-box{float:left;position:relative;width:670px}
|
||||
.wst-search{border:2px solid #e23c3d;height:36px;margin-left:20px;margin-top:50px;position:relative}
|
||||
.wst-search .j-search-type{width:78px;top:0;line-height:36px;position:absolute;padding:0;border-right:2px solid #e23c3d;border-left:2px solid #e23c3d;cursor:pointer;left:-2px;text-align:center}
|
||||
.wst-search .j-type-list{width:70px;top:35px;line-height:36px;position:absolute;padding:0 4px;border:2px solid #e23c3d;cursor:pointer;background-color:#fff;left:-2px;z-index:100;border-top:0;display:none;text-align:center}
|
||||
.wst-search .j-search-type i{color:#6a6a6a;display:block;font-style:normal;height:7px;overflow:hidden;position:absolute;right:6px;top:16px;width:0}
|
||||
.j-search-type i{-moz-border-bottom-colors:none;-moz-border-left-colors:none;-moz-border-right-colors:none;-moz-border-top-colors:none;border-color:#999 transparent transparent;border-image:none;border-style:solid dashed dashed;border-width:5px;font-size:0;line-height:0}
|
||||
.arrow{transition:all .2s ease-in 0s}
|
||||
.over{top:10px!important;transform:rotate(180deg);transform-origin:50% 30% 0}
|
||||
.over-cat{display:none}
|
||||
.wst-search .j-search-type s{position:relative;top:-17px;text-decoration:none}
|
||||
.wst-search .j-type-list div:hover{color:#e23c3d}
|
||||
.wst-search .search-ipt{border:0 none;color:#565656;float:left;font-family:Microsoft Yahei;font-size:14px;line-height:18px;overflow:hidden;padding:0;width:560px;height:36px;border:36px;outline:0;padding-left:84px}
|
||||
.wst-search .search-btn{background-color:#df2003;color:#fff;cursor:pointer;font-size:15px;font-weight:bolder;height:38px;line-height:36px;position:absolute;right:-1px;text-align:center;top:-1px;width:80px}
|
||||
.wst-search-keys{color:#6c6c6c;height:25px;line-height:28px;overflow:hidden;padding-left:20px}
|
||||
.wst-search-keys a{color:#6c6c6c}
|
||||
.wst-cart-box{float:right;width:163px;height:40px;margin-top:50px;background-color:#df2003;position:relative;cursor:pointer}
|
||||
.wst-cart-box .word{float:left;width:112px;margin-top:10px;margin-left:20px;padding-left:28px;color:#fff;font-size:14px;font-family:"microsoft yahei";background:url(../img/icon_gouwuche.png) no-repeat left center;position:relative}
|
||||
.wst-cart-box .num{font-size:14pxpx;color:#fff;line-height:24px;text-align:center;position:absolute;display:block;width:27px;height:25px;background:url(../img/icon_number.png) no-repeat;right:15px;top:-18px}
|
||||
.wst-cart-boxs{width:332px;margin-top:22px;border:1px solid #dedbdb;position:absolute;z-index:1200;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,0.3);left:-171px;top:18px}
|
||||
.wst-cart-boxs:after{top:-16px;border-color:transparent transparent #fff}
|
||||
.wst-cart-boxs .carts{background:url(../img/top_icon_cartdown.png) 28px 47px no-repeat;width:332px;height:130px;text-indent:4.5em;line-height:130px;font-size:15px;color:#b9b6b6}
|
||||
.wst-cart-box .goods{float:left;width:96.666666%;border-bottom:1px dashed #bfbfbf;padding:5px}
|
||||
.wst-cart-box .goods .imgs{float:left;width:72px;height:72px;text-align:center;vertical-align:middle;display:block;position:relative}
|
||||
.wst-cart-box .goods .imgs a{width:72px;height:72px;display:table-cell;vertical-align:middle}
|
||||
.wst-cart-box .goods .imgs img{max-width:72px;max-height:72px}
|
||||
.wst-cart-box .goods .number{float:left;width:50%}
|
||||
.wst-cart-box .goods .number p{float:left;width:92%;margin-top:10px;padding-left:10px}
|
||||
.wst-cart-box .goods .price{float:right;text-align:right}
|
||||
.wst-cart-box .goods .price p{float:right;width:100%;line-height:20px;font-weight:bold;color:#df2003}
|
||||
.wst-cart-box .goods .price span{float:right;width:100%;line-height:20px}
|
||||
.wst-cart-box .goods .price span a:hover,.wst-cart-box .goods .number p a:hover{color:#df2003}
|
||||
.wst-cart-box .comm{float:left;width:100%;font-weight:bold;line-height:32px}
|
||||
.wst-cart-box .comm span{font-size:15px;color:#df2003}
|
||||
.wst-cart-box .comm .span2{float:right;margin-right:10px}
|
||||
.wst-cart-box .btn{color:#fff;cursor:pointer;display:block;font-size:16px;font-weight:400;line-height:30px;margin:10px 0 16px 72px;max-width:200px;position:relative;text-align:center;text-decoration:none;text-transform:uppercase;vertical-align:middle;width:100%;border-radius:5px}
|
||||
@media(min-width:400px){.wst-cart-box .btn{display:inline-block;margin-right:2.5em}
|
||||
.wst-cart-box .btn:nth-of-type(even){margin-right:0}}@media(min-width:600px){.wst-cart-box .btn:nth-of-type(even){margin-right:2.5em}
|
||||
.wst-cart-box .btn:nth-of-type(5){margin-right:0}}
|
||||
.wst-cart-box .btn:hover{text-decoration:none}
|
||||
.wst-cart-box .btn-3{background:#e3403a;border:1px solid #da251f;box-shadow:0 1px 0 #d6251f,1px 1px 1px #e02a24;font-weight:900;letter-spacing:1px;-webkit-transition:all 150ms linear;transition:all 150ms linear}
|
||||
.wst-cart-box .btn-3:hover{background:#e02c26;border:1px solid rgba(0,0,0,0.05);box-shadow:1px 1px 2px rgba(255,255,255,0.2);color:#ec817d;text-decoration:none;text-shadow:-1px -1px 0 #c2211c;-webkit-transition:all 250ms linear;transition:all 250ms linear}
|
||||
.wst-lite-title{float:left;padding-top:90px;padding-left:10px}
|
||||
.wst-lite-index{padding-top:90px;float:right}
|
||||
.wst-table td{height:35px}
|
||||
.wst-footer-frd{color:#e23e3d;font-weight:bolder;font-size:18px}
|
||||
.wst-footer-pno{color:red;font-weight:bolder;font-size:18px}
|
||||
.wst-footer{text-align:center;line-height:25px;width:1200px;margin:0 auto}
|
||||
.wst-footer-fl-box{text-align:center;margin-top:45px}
|
||||
.wst-footer-cld-box{border-bottom:1px solid #d5d5d5;height:auto;line-height:30px;text-align:left;padding-bottom:20px;margin-bottom:20px}
|
||||
.wst-footer-fl{font-weight:bolder;padding-top:7px;color:#fc6047;font-size:14px}
|
||||
.wst-footer-hp-box{background-color:#f7f7f7;text-align:center;margin-top:20px}
|
||||
.wst-footer-hp-ck1{line-height:30px;text-align:left;border-top:1px solid #f5f5f5;border-bottom:1px solid #f5f5f5;min-width:1200px}
|
||||
.wst-footer-hp-ck3{margin-top:20px;padding-bottom:10px}
|
||||
.wst-footer-hp-ck3 a{color:#666}
|
||||
.wst-footer-hp-ck3 .copyright{color:#666}
|
||||
.wst-footer-pno{color:red;font-weight:bolder;font-size:18px}
|
||||
.wst-footer-wz-ca{padding-top:20px;float:left;width:180px;height:180px}
|
||||
.wst-footer-wz-pt{padding-top:5px;line-height:25px}
|
||||
.wst-footer-wz-pn{font-weight:bolder;margin-left:10px;font:600 16px/20px "microsoft yahei";color:#666}
|
||||
.wst-footer-wz-clt{float:left;width:160px;height:180px;margin-left:6px}
|
||||
.wst-footer-wz-kf{font-weight:bolder;margin-left:10px}
|
||||
.wst-footer-wz-ent{color:green;font-size:16px}
|
||||
.wst-footer-wz-ca a{color:#999}
|
||||
.flink-hover{font-size:13px;color:#434343;margin-left:10px;margin-right:10px}
|
||||
.flink-hover:hover{text-decoration:underline;color:#1e84da}
|
||||
.wst-footer-info{margin:0 auto;width:1200px;height:100px}
|
||||
.wst-footer-info>li{width:180px;height:80px;float:left;margin-right:60px}
|
||||
.wst-footer-info-img{float:left; margin-top:15px; width: 70px; height: 70px; box-sizing: border-box; background-image: url(../img/footer_icon.png); background-repeat: no-repeat; }
|
||||
.wst-fimg1{background-position: -1px -1px;}
|
||||
.wst-fimg2{background-position: -241px -1px;}
|
||||
.wst-fimg3{background-position: -481px -1px;}
|
||||
.wst-fimg4{background-position: -721px -2px;}
|
||||
.wst-fimg5{background-position: -961px -1px;}
|
||||
|
||||
.wst-footer-info-text{float:left;margin-top:25px;margin-left:10px}
|
||||
.wst-footer-info-text>h1{margin-bottom:5px;font-size:16px;color:#505050}
|
||||
.wst-footer-info-text>p{color:#6c6c6c;font-size:}
|
||||
.wst-nav-menus{border-bottom:2px solid #df2003;height:36px;margin:0 auto;min-width:1200px}#wst-categorys{float:left;height:36px;overflow:visible;position:relative;width:210px;z-index:10;top:2px}
|
||||
#wst-categorys .dt a{background:url(../img/icon_fenleitubiao.png) no-repeat 16px;background-color:#df2003;color:#fff;text-indent:30px;display:block;font:400 15px/36px "microsoft yahei";height:36px;padding:0 10px;text-decoration:none;width:190px}
|
||||
#wst-categorys .dd{background:rgba(38,38,38,0.7) none repeat scroll 0 0;min-height:400px}
|
||||
#wst-categorys .dd-inner .item{color:#ff2706;height:35px;position:relative;z-index:1;transition:padding 100ms ease-in;-moz-transition:padding 100ms ease-in;-webkit-transition:padding 100ms ease-in;-o-transition:padding 100ms ease-in}
|
||||
#wst-categorys .dd-inner .item a{color:#fff}
|
||||
#wst-categorys .dd-inner h3{font-size:13px;font-weight:400;height:31px;line-height:31px;padding:0 10px;position:absolute;z-index:2}
|
||||
#wst-categorys .dd-inner i{font:400 9px/14px consolas;height:14px;position:absolute;right:14px;top:9px;width:4px;z-index:1}
|
||||
#wst-categorys .dd-inner .hover{height:33px;border-left:1px solid #eee;border-top:1px solid #eee;border-bottom:1px solid #eee;background:#f7f7f7 none repeat scroll 0 0;color:#b61d1d}
|
||||
#wst-categorys .dd-inner .hover a{color:#ff0c00}#wst-categorys .dd-inner .hover i{background:#f7f7f7 none repeat scroll 0 0;height:31px;left:205px;line-height:200px;overflow:hidden;top:0;width:14px}
|
||||
#wst-categorys .dorpdown-layer{background:#f7f7f7 none repeat scroll 0 0;border:1px solid #eee;display:none;left:209px;overflow:hidden;position:absolute;top:36px;width:779px;min-height:600px}
|
||||
#wst-categorys .dorpdown-layer .hover{display:block}
|
||||
#wst-categorys .item-sub{display:block;overflow:hidden}
|
||||
.cat2_tit{color:#333;font-weight:bold}
|
||||
.cat2_tit i{font-style:normal;}
|
||||
#wst-categorys .item-sub::after{clear:both;content:".";display:block;height:0}
|
||||
#wst-categorys .subitems{background:#f7f7f7 none repeat scroll 0 0;float:left;margin-bottom:-10px;padding:6px 0 10px 20px;width:570px}#wst-categorys .subitems dl{line-height:2em;overflow:hidden;width:100%}
|
||||
#wst-categorys .subitems dl.fore1 dd{border-top:medium none}#wst-categorys .subitems dt{background:#3B3B3B none repeat scroll 0 0;color:#fff;display:inline-block;line-height:24px;height:24px;margin-right:10px;padding:0 0 0 8px;white-space:nowrap}
|
||||
#wst-categorys .subitems dt a{color:#fff}#wst-categorys .subitems dt i{font:400 9px/14px consolas;height:24px;margin-left:8px;width:23px;display:inline-block;color:#fff}
|
||||
#wst-categorys .subitems dd{border-bottom:1px dashed #eee;padding:6px 0;width:570px}
|
||||
#wst-categorys .subitems dd a{float:left;height:16px;line-height:16px;margin:4px 0;padding:0 8px;white-space:nowrap;color:#666}
|
||||
#wst-categorys .subitems dd a:hover{color:#ff0c00}
|
||||
#wst-categorys .item-brands{display:inline;float:right;margin:10px 10px 10px 0;overflow:hidden;width:178px}
|
||||
#wst-categorys .item-brands .brands-inner{height:270px}#wst-categorys .item-brands .shops-inner{height:180px}#wst-categorys .item-brands a{display:inline;float:left;margin:7px 0 0 6px}
|
||||
#wst-categorys .item-promotions{display:inline;float:right;margin-right:20px;width:168px}#wst-categorys .item-promotions a{display:block;margin-bottom:1px}
|
||||
#wst-nav-items{float:left;position:relative;z-index:2}#wst-nav-items .spacer,#wst-nav-items a,#wst-nav-items li,#wst-nav-items ul{float:left}#wst-nav-items ul{width:990px;overflow:hidden;height:36px}
|
||||
#wst-nav-items .spacer{display:none}
|
||||
#wst-nav-items a{color:#333;font:400 16px/36px "microsoft yahei";height:36px;padding:0 20px;text-align:center;text-decoration:none}
|
||||
#wst-nav-items a:hover{color:#ff2708}#wst-nav-items .spacer{background:#ddd none repeat scroll 0 0;height:24px;margin:10px 0 0;overflow:hidden;width:1px}
|
||||
.wst-right-panel{height:418px;width:210px;}
|
||||
.cat-icon-1,.cat-icon-2,.cat-icon-3,.cat-icon-4,.cat-icon-5,.cat-icon-6,.cat-icon-7,.cat-icon-8,.cat-icon-9,.cat-icon-10,.cat-icon-11,.cat-icon-12,.over-cat-icon{float:left;background:url(../img/icon_goodsclass_list.png) no-repeat;width:25px;height:25px;margin-top:5px;margin-right:5px; background-size: 457%; }
|
||||
.cat-icon-1{background-position:-17px -19px}
|
||||
.cat-icon-1-hover{background-position:-76px -19px}
|
||||
.cat-icon-2{background-position:-17px -78px}
|
||||
.cat-icon-2-hover{background-position:-76px -78px}
|
||||
.cat-icon-3{background-position:-17px -140px}
|
||||
.cat-icon-3-hover{background-position:-76px -140px}
|
||||
.cat-icon-4{background-position:-17px -200px}
|
||||
.cat-icon-4-hover{background-position:-76px -200px}
|
||||
.cat-icon-5{background-position:-17px -259px}
|
||||
.cat-icon-5-hover{background-position:-76px -259px}
|
||||
.cat-icon-6{background-position:-17px -318px}
|
||||
.cat-icon-6-hover{background-position:-76px -318px}
|
||||
.cat-icon-7{background-position:-17px -378px}
|
||||
.cat-icon-7-hover{background-position:-76px -378px}
|
||||
.cat-icon-8{background-position:-17px -438px}
|
||||
.cat-icon-8-hover{background-position:-76px -438px}
|
||||
.cat-icon-9{background-position:-17px -500px}
|
||||
.cat-icon-9-hover{background-position:-76px -500px}
|
||||
.cat-icon-10{background-position:-17px -562px}
|
||||
.cat-icon-10-hover{background-position:-76px -562px}
|
||||
.cat-icon-11{background-position:-17px -623px}
|
||||
.cat-icon-11-hover{background-position:-76px -623px}
|
||||
.cat-icon-12{background-position:-17px -682px}
|
||||
.cat-icon-12-hover{background-position:-76px -682px}
|
||||
.over-cat-icon{background-position:-17px -682px}
|
||||
.over-cat-icon-hover{background-position:-76px -682px}
|
||||
.wst-route{padding:10px 0}
|
||||
.wst-route,.wst-route a{color:#6c6c6c;font-size:14px;font-family:fantasy}
|
||||
.wst-route a:hover{color:#eb5f43;cursor:pointer}
|
||||
.wst-grey-btn{display:inline-block;border-radius:2px;background:#f7f7f7;text-align:center;text-decoration:none;cursor:pointer;border:1px solid #DDD;padding:3px 13px 3px;color:#666;background-color:#f7f7f7;background-repeat:repeat-x;background-image:-moz-linear-gradient(top,#f7f7f7,#f2f2f2);background-image:-webkit-linear-gradient(top,#f7f7f7,#f2f2f2);background-image:-o-linear-gradient(top,#f7f7f7,#f2f2f2);background-image:linear-gradient(top,#f7f7f7,#f2f2f2);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f7f7f7',endColorstr='#f2f2f2',GradientType=0)}
|
||||
.wst-grey-btn:hover{color:red}#wst-pager{text-align:center;margin-top:20px}
|
||||
.icon-phone,.icon-email{background:url(../img/iconfont_fotter.png) no-repeat}
|
||||
.icon-phone{width:40px;height:30px;background-position:2px 5px;float:left}
|
||||
.icon-email{width:40px;height:30px;background-position:-34px 2px;float:left}
|
||||
.qr-code{width:100%;height:85px}
|
||||
.qr-code img{float:left;margin-right:5px}
|
||||
.call-wst{font-size:15px;color:#080808;float:left;line-height:30px;font-weight:bold}
|
||||
.email-wst{font-size:25px;color:#000;float:left;line-height:30px;text-indent:16px;font-family:"microsoft yahei"}
|
||||
.mb-wst{float:left;width:110px;height:90px;margin-top:10px}
|
||||
.focus-wst{float:left;height:100%;width:158px}
|
||||
.focus-wst-qr{height:20px;color:#171717;margin-top:2px;font-weight:bold}
|
||||
.focus-wst-qra{height:20px;margin:6px 0 6px 0}
|
||||
.focus-wst-qre{height:20px;margin-top:3px;font-size:15px}
|
||||
.wst-contact{float:left;width:275px;height:165px;margin-left:6px;margin-top:5px}#verifyImg,#verifyImg2,#verifyImg3{cursor:pointer}
|
||||
.wst-empty{width:650px;height:510px;margin:0 auto}
|
||||
.empty1{background:url(../img/bgimg_error_ymcc.png) 0 123px no-repeat}
|
||||
.empty2{background:url(../img/bgimg_error_xtcc.png) 0 123px no-repeat}
|
||||
.empty3{background:url(../img/bgimg_error_spcc.png) 0 123px no-repeat}
|
||||
.wst-empty .prompt{padding-top:123px;width:600px;margin:0 auto;text-align:center}
|
||||
.wst-empty .prompt p,.wst-empty .prompt2 p,.wst-empty .prompt3 p{color:#2fc474;font-size:18px;line-height:26px;font-family:"microsoft yahei"}
|
||||
.wst-empty .button{padding-top:250px;width:320px;margin:0 auto}
|
||||
.wst-empty-btn{color:#fff;cursor:pointer;float:left;font-size:16px;font-weight:400;line-height:38px;width:123px;position:relative;text-decoration:none;text-transform:uppercase;vertical-align:middle;text-align:center;font-family:"microsoft yahei";border-radius:3px;margin:0 10px}
|
||||
.wst-empty-btn1{background:#f9a818;font-weight:100}
|
||||
.wst-empty-btn1:hover{background:#f6bd57;font-weight:900;letter-spacing:1px}
|
||||
.wst-empty .prompt2{padding-top:160px;width:475px;margin:0 auto}
|
||||
.wst-empty .prompt2 span{color:#fa3e3f;font-weight:bold;font-size:20px;line-height:52px;font-family:"microsoft yahei"}
|
||||
.button2{padding-top:160px;width:520px;margin:0 auto}
|
||||
.wst-empty .prompt3{padding-top:355px;width:588px;margin:0 auto}
|
||||
.button3{padding-top:23px;width:520px;margin:0 auto}
|
||||
.wst-loading-img{vertical-align:middle}
|
||||
.lbel{border-radius:.25em;color:#fff;display:inline;font-weight:700;line-height:1;padding:.2em .6em .3em;text-align:center;vertical-align:baseline;white-space:nowrap}
|
||||
a.lbel:hover,a.lbel:focus{color:#fff;cursor:pointer;text-decoration:none}
|
||||
.lbel:empty{display:none}
|
||||
.lbel-default{background-color:#777}
|
||||
.lbel-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}
|
||||
.lbel-primary{background-color:#428bca}
|
||||
.lbel-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}
|
||||
.lbel-success{background-color:#5cb85c}
|
||||
.lbel-success[href]:hover,.label-success[href]:focus{background-color:#449d44}
|
||||
.lbel-info{background-color:#5bc0de}
|
||||
.lbel-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}
|
||||
.lbel-warning{background-color:#f0ad4e}
|
||||
.lbel-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}
|
||||
.lbel-danger{background-color:#d9534f}
|
||||
.lbel-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}
|
||||
.lbel-gray{background-color:#e6e6e6}
|
||||
.lbel-gray[href]:hover,.label-danger[href]:focus{background-color:#eee}
|
||||
.wst-tips-box{height:auto;line-height:25px;-moz-border-radius:5px;-webkit-border-radius:5px;color:red;border:1px dotted #f0a869;background:#ffc;padding:5px 5px 5px 15px;margin-left:10px;margin-bottom:5px;margin-top:10px}
|
||||
.wst-tips-box .icon{width:20px;height:20px;float:left;background:url('../img/icon_tstb.png') no-repeat;background-size:100%}
|
||||
.wst-tips-box .tips{float:left;padding-left:5px}
|
||||
.s-wst-slide-items li{overflow:hidden}
|
||||
.s-wst-slide-numbox{position:absolute;bottom:10px;width:100%}
|
||||
.s-wst-slide-items{max-width:100%}
|
||||
.s-wst-slide-controls{width:200px;text-align:center;margin:0 auto;z-index:10}
|
||||
.s-wst-slide-controls span{width:13px;height:13px;text-align:center;display:inline-block;border-radius:12px;background-color:#ccc;color:white;cursor:pointer}
|
||||
.s-wst-slide-controls .curr{background-color:#eadfdf;border-radius:12px;color:white;cursor:pointer}
|
||||
.s-wst-slide{position:relative}
|
||||
.line-break{word-break:break-all;word-wrap:break-word}
|
||||
.btn-submit{width:100px;height:32px;line-height:32px;display:inline-block;position:relative;background:#e45050;color:#fff;text-align:center;font-family:'Ubuntu',sans-serif;font-size:15px;font-weight:bold;text-decoration:none;border-radius:3px;overflow:hidden;-webkit-transition:all .15s ease-in;transition:all .15s ease-in}
|
||||
.btn-submit:before{content:' ';position:absolute;background:#fff;width:25px;height:50px;top:0;left:-45px;opacity:.3;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;-webkit-transform:skewX(-25deg);transform:skewX(-25deg)}
|
||||
.btn-submit:hover:before{width:45px;left:205px}
|
||||
.btn-cancel{width:100px;height:32px;line-height:32px;display:inline-block;position:relative;background:#f0efef;border:solid 1px #f0f0f0;color:#555;text-align:center;font-family:'Ubuntu',sans-serif;font-size:15px;font-weight:bold;text-decoration:none;border-radius:3px;overflow:hidden;-webkit-transition:all .15s ease-in;transition:all .15s ease-in}
|
||||
.wst-stript{width: 100%;height: 20px;color: #666;}
|
||||
.wst-stript .stript-left{width: 36%;height: 1px;background: RGB(51,51,51);display: inline-block;margin-bottom: 5px;}
|
||||
.wst-stript .stript-right{width: 36%;height: 1px;background: RGB(51,51,51);display: inline-block;margin-bottom: 5px;}
|
1432
hyhproject/home/view/default/css/goods.css
Executable file
243
hyhproject/home/view/default/css/goodslist.css
Executable file
@ -0,0 +1,243 @@
|
||||
@CHARSET "UTF-8";
|
||||
.wst-hot-sales{background:#f1f1f1;width:1200px;margin-left: auto; margin-right: auto;margin-top:10px;padding:15px 0px;overflow:hidden;height:112px;}
|
||||
.wst-hot-sales .wst-sales-logo{width:60px;float:left;text-align: center;position:relative;}
|
||||
.wst-hot-sales .wst-sales-box{float:left;width:1130px;overflow:hidden;}
|
||||
.wst-hot-sales .wst-sales-logo .wst-hot-icon{position: absolute;top:0;left:20px;width:19px;height: 70px;padding:2px 10px;background:url(../img/img_bg_goodslist_tjrm.png) 4px 0px no-repeat;text-align: center;writing-mode:tb-rl;}
|
||||
.wst-hot-sales .wst-sales-box .item{height:120px;width:263px;background:#fff;margin-left:17px;float:left;}
|
||||
.wst-hot-sales .wst-sales-box .item .img{float:left;width:120px;height: 120px;margin:0 auto;text-align:center;vertical-align:middle;display:block;position:relative;display:table-cell;}
|
||||
.wst-hot-sales .wst-sales-box .item .img a{display:table-cell;vertical-align:middle;width:120px; height:120px; padding:5px;}
|
||||
.wst-hot-sales .wst-sales-box .item .img a img{max-width:110px;max-height:110px; }
|
||||
.wst-hot-sales .wst-sales-box .item .des{float:left;width:130px;height: 120px; padding:5px;line-height:20px;}
|
||||
.wst-hot-sales .wst-sales-box .item .des .p-sale{font-weight: bold;color:#C00;}
|
||||
.wst-hot-sales .wst-sales-box .item .des .p-name{height: 40px;line-height: 20px;overflow: hidden;}
|
||||
.wst-hot-sales .wst-sales-box .item .des .p-price{font-weight: bold;color:#C00;}
|
||||
.wst-hot-sales .wst-sales-box .item .des .p-buy a {display: inline-block;line-height: 14px;height: 14px;border-radius: 2px;background: #F7F7F7;text-align: center;text-decoration: none;cursor: pointer;border: 1px solid #DDD;padding: 4px 13px 5px;color: #666;background-color: #f7f7f7;background-repeat: repeat-x;background-image: -moz-linear-gradient(top,#f7f7f7,#f2f2f2);background-image: -webkit-linear-gradient(top,#f7f7f7,#f2f2f2);background-image: -o-linear-gradient(top,#f7f7f7,#f2f2f2);background-image: linear-gradient(top,#f7f7f7,#f2f2f2);filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f7f7f7', endColorstr='#f2f2f2', GradientType=0);}
|
||||
.wst-hot-sales .wst-sales-box .item .des .p-buy a:hover{color:#df2003;}
|
||||
.wst-filters{width:1200px;margin-left: auto;margin-right: auto;margin-top:10px;color:#999;}
|
||||
.wst-filters div.item,.wst-address div.item{float:left;margin-right:6px;position:relative;}
|
||||
.wst-filters .arrow,.wst-address .arrow{float:left;position: relative;top:2px;padding-right:12px;font-style: normal;}
|
||||
.wst-filters .item .link,.wst-address .item .link{color:#666;float:left;border:0px;margin-right:5px;height:22px;line-height: 22px;}
|
||||
.wst-filters .item .drop-down,.wst-address .item .drop-down{float:left;margin-right:5px;border: 1px solid #eee;display: inline-block;height: 23px;line-height: 23px;padding: 0 4px 0 8px;vertical-align: top;position: relative;background-color: #fff; }
|
||||
.wst-filters .item .drop-down .drop-down-arrow,.wst-address .item .drop-down .drop-down-arrow{display: inline-block;width: 20px;height: 20px;vertical-align: top;background: url(../img/search.png) no-repeat 4px 7px;-webkit-transition: background-position .15s ease-in-out;-moz-transition: background-position .15s ease-in-out;transition: background-position .15s ease-in-out;}
|
||||
.wst-filters .item .drop-down.hover{border-color:#df2003;border-bottom:0;z-index: 100}
|
||||
.wst-address .item .drop-down.hover{border-color:#ddd;border-bottom:0;z-index: 2}
|
||||
.wst-filters .item .drop-down.hover .drop-down-arrow,.wst-address .item .drop-down.hover .drop-down-arrow{background-position: 4px -44px;}
|
||||
.wst-filters .item .dorp-down-layer{border: 1px solid #ddd;border-top:0;display:none;left:0px;top:22px;position:absolute;z-index: 99;background:#fff;min-width: 320px;border: 1px solid #df2003;}
|
||||
.wst-address .item .dorp-down-layer{padding:10px;border: 1px solid #ddd;border-top:0;display:none;left:0px;top:22px;position:absolute;z-index: 1;background:#fff;min-width: 320px;border: 1px solid #ddd;}
|
||||
.wst-filters .item .dorp-down-layer div.cat1,.wst-address .item .dorp-down-layer div.cat1{float:left;width:140px; overflow: hidden;text-overflow: ellipsis;white-space: nowrap;padding: 4px 8px;}
|
||||
.wst-filters .item .dorp-down-layer div.cat2,.wst-address .item .dorp-down-layer div.cat2{float:left;width:80px; overflow: hidden;text-overflow: ellipsis;white-space: nowrap;padding: 4px 8px;}
|
||||
.wst-filters .item .dorp-down-layer div:hover,.wst-filters .item .dorp-down-layer a:hover{color:#df2003;cursor:pointer;}
|
||||
.wst-address .item .dorp-down-layer div:hover,.wst-address .item .dorp-down-layer a:hover{color:#ff8043;;cursor:pointer;}
|
||||
.wst-filters .item .v-item,.wst-address .item .v-item{float:left;color:#666;border: 1px solid #ddd;cursor: pointer;display: inline-block;font-size: 12px;height: 22px;line-height: 22px;margin: 0 5px 5px 0;padding: 0 30px 0 4px;position: relative;vertical-align: top;}
|
||||
.wst-filters .item .v-item:hover,.wst-address .item .v-item:hover{border-color: #e4393c;}
|
||||
.wst-filters .item .v-item i,.wst-address .item .v-item i{ display: block;position: absolute; width: 25px;height: 22px;right: 0;text-align:center;font-style: normal;top: 0;}
|
||||
.wst-filters .item .v-item:hover i,.wst-address .item .v-item:hover i{background-color: #e4393c;color: #fff;}
|
||||
.wst-filters .keyword,.wst-address .keyword{height:22px;line-height:22px;}
|
||||
.wst-selector{width:1200px;margin-left: auto;margin-right: auto;margin-top:10px;color:#999;}
|
||||
.wst-selector .head{padding-left:10px;background: #f1f1f1 none repeat scroll 0 0;border-bottom: 1px solid #ddd;height: 34px;line-height: 34px;overflow: hidden;}
|
||||
.wst-selector .main{}
|
||||
.wst-selector .item{border-bottom: 1px solid #ddd;line-height: 90px;width:1200px;height:auto;border-bottom: 1px solid #ddd;}
|
||||
.wst-selector .label{float:left;width:90px;padding-left:10px;}
|
||||
.wst-selector .content{float:left;width:990px;height: 90px;overflow: hidden;}
|
||||
.wst-selector .content .s-item{float:left;margin-right:50px;color:#666;cursor:pointer}
|
||||
.wst-selector .extra{float:left;width:110px;margin-top: 5px;}
|
||||
.extra_more{float: left;margin-right: 10px;position: relative;width: 39px;height: 23px;line-height: 23px;padding: 0 7px 0 4px;background: #fff;visibility: hidden;color: #333;border: 1px solid #ddd;}
|
||||
.extra_multi{float: left;height: 23px;line-height: 23px;border: 1px solid #DDD;padding: 0 3px 0 18px;position: relative;background: #fff;color: #333;}
|
||||
.extra_multi i,.extra_more i{position: absolute;display: block;font-style: normal;width: 13px;height: 20px;background-image: url(../img/search.png);transition:all ease 0.2s;}
|
||||
.extra_more i{top: 1px;right: 2px;width: 20px;background-position: 4px 7px;}
|
||||
.extra_more:hover,.extra_more:hover i{color:red;background-position: 4px -10px;}
|
||||
.extra_multi:hover,.extra_multi:hover i{border-color: red;color:red;background-position: 0px -84px;}
|
||||
.extra_more_on i{background-position: 4px -27px!important}
|
||||
.extra_more_on:hover i{background-position: 4px -44px!important}
|
||||
.extra_multi i{left: 3px;top: 1px;background-position: 0 -63px;}
|
||||
.multi_on{border: 2px solid #edd28b!important;background: #fffdee;height: 120px;width:1195px!important;}
|
||||
.multi_btns{width: 100%;text-align: center;margin: 10px 0;}
|
||||
.multi_btns a{display: inline-block;padding: 0px 7px;border: 1px solid #ddd;color: #666;background-color: #f7f7f7;border-radius: 2px;}
|
||||
.multi_btns .confirm_btn{background-color: #E74649;color: #fff;margin-right: 10px;visibility:hidden;}
|
||||
.multi_btns .disable_btn{background-color: #ddd;color: #fff;}
|
||||
.s-item i{position: absolute;left: 0;top: 2px;background: url(../img/search.png) no-repeat 9999px 9999px;display: inline-block;height: 12px;width: 12px;background-color: #fff;border: 1px solid #ccc;font-size: 0;visibility: hidden;}
|
||||
.selected i{border-color: #e4393c;background-position: -1px -107px!important;}
|
||||
.multi_on .s-item i{visibility: visible;}
|
||||
.s_chk{padding-left: 18px;position:relative}
|
||||
.brand_itembox{padding: 1px 0!important;height: 70px;margin: 10px 0;}
|
||||
.brand_item{width: 10%;border: 1px solid #DDD;margin: -1px -1px 0 0!important;height:80px;overflow:hidden;text-align: center;background-color: #fff;}
|
||||
.brand_item a.s_chk{visibility: hidden!important;}
|
||||
.brand_itembox .selected{position: relative;z-index: 10;border-color: #e4393c!important;}
|
||||
.brand_itembox .selected .g_bd_imgbox{border-color: #e4393c;}
|
||||
.brand_item:hover{position: relative;z-index: 10;border-color: #e4393c;box-shadow: 2px 2px 3px rgba(0,0,0,.12);}
|
||||
.brand_item:hover .g_bd_imgbox{border-color: #e4393c;color:#e4393c}
|
||||
.brand_item:hover .g_bd_img{display: none;}
|
||||
.g_bd_img{width: 100%;height: 100%;}
|
||||
.g_bd_imgbox{border:1px solid transparent;width:98%;height:80px;line-height: 80px;}
|
||||
.wst-selector .item-more-box{border-top: 1px solid #ddd;position: relative;text-align: center;top: -1px;transition: border-color 0.15s ease-in-out 0s;}
|
||||
.wst-selector .item-more-box .item-more{position: relative;top:-1px;border-top:0px;padding:0 40px 0 20px;background: #fff none repeat scroll 0 0;border-color: #fff #ddd #ddd; border-style: solid;border-width: 1px;color: #333;cursor: pointer;display: inline-block;height: 28px;line-height: 28px;position:relative;}
|
||||
.wst-selector .item-more-box .item-more i{display: inline-block;width: 20px;height: 20px;vertical-align: top;background: url(../img/search.png) no-repeat;position:absolute;top:3px;}
|
||||
.wst-selector .item-more-box .item-more i.drop-down{background-position: 4px 7px;}
|
||||
.wst-selector .item-more-box .item-more i.down-hover{background-position: 4px -11px;}
|
||||
.wst-selector .item-more-box .item-more i.drop-up{background-position: 4px -27px;}
|
||||
.wst-selector .item-more-box .item-more i.up-hover{background-position: 4px -44px;}
|
||||
.wst-selector .item-more-box .item-more i.drop-down-icon{background-position: 4px -9px;}
|
||||
.wst-selector .item-more-box:hover {border-color: #e4393c;}
|
||||
.wst-selector .item-more-box:hover .item-more {border-color: #fff #e4393c #e4393c;color: #e4393c;}
|
||||
.wst-container .goods-side{float:left;width:210px;margin-top:10px;margin-right:5px;}
|
||||
.wst-container .goods-side .title{line-height:35px;background-color: #f7f7f7;text-align: center;}
|
||||
.wst-container .goods-side .guess-like{min-height:300px;border:1px solid #eee;padding-bottom:10px;}
|
||||
.wst-container .goods-side .item{padding-top:10px;}
|
||||
.wst-container .goods-side .item .img{width:200px;margin:0 auto;text-align:center;vertical-align:middle;display:block;position:relative; display:table-cell; padding:4px;}
|
||||
.wst-container .goods-side .item .img a{display:table-cell;vertical-align:middle;width:200px; height:200px;}
|
||||
.wst-container .goods-side .item .img a img{max-width:190px;max-height:190px;}
|
||||
.wst-container .goods-side .item .p-price{padding:5px;font-weight: bold;color:#C00;font-size:14px;}
|
||||
.wst-container .goods-side .item .v-price{text-decoration: line-through;color:#999;margin-left: 10px;font-weight: normal;font-size:12px}
|
||||
.wst-container .goods-side .hot-goods{min-height:300px;border:1px solid #eee;margin-top: 15px;padding-bottom:10px;}
|
||||
.wst-container .goods-main{float:right;width:980px;margin-top:10px;position: relative;}
|
||||
.goods-main .goods-filters{border-top: 1px solid #ddd;margin-bottom: 5px;position: relative;z-index:4;}
|
||||
.goods-main .goods-filters .line{padding:5px;height:25px;border-bottom: 1px solid #e5e5e5;}
|
||||
.goods-main .goods-filters .line2{background:#f7f7f7;}
|
||||
.goods-filters .line2 a{background: #fff none repeat scroll 0 0;border: 1px solid #e9e7e7;color: #333;float: left;height: 23px;line-height: 23px;padding: 0 20px;}
|
||||
.goods-filters .line2 a:hover{border:1px solid #DF2003;}
|
||||
.goods-filters .line .city{float:left;width:auto;}
|
||||
.goods-filters .line .chk{float:left;height: 23px;line-height: 23px;margin-right:10px;}
|
||||
.goods-filters .line a.curr {background: #DF2003 none repeat scroll 0 0;border: 1px solid #DF2003;color: #fff;}
|
||||
.goods-filters .line .store,.goods-filters .line .store2,.goods-filters .line .store3{float:right;width:16px;height:13px;margin:5px 0px 0px 3px;}
|
||||
.goods-filters .line .store{background:url(../img/store_icon_sx.png) 0px 0px no-repeat;}
|
||||
.goods-filters .line .store2{background:url(../img/store_icon_sx_sel.png) 0px 0px no-repeat;}
|
||||
.goods-filters .line .store3{background:url(../img/store_icon_sx_sel_up.png) 0px 0px no-repeat;}
|
||||
.wst-price-ipts{float:left;position: relative;}
|
||||
input.wst-price-ipt{width:66px;height: 19px;outline: none;padding-left:18px;border: 1px solid #e9e7e7;}
|
||||
input.wst-price-ipt:focus{border: 1px solid #ff8043;}
|
||||
.wst-price-ipt1{position: absolute;left: 14px;top: 4px;}
|
||||
.wst-price-ipt2{position: absolute;right: 74px;top: 4px;}
|
||||
.wst-price-but{outline: none;background:#f7f7f7;color: #9f9696;border: 1px solid #dad7d7;cursor:pointer;}
|
||||
.wst-price-but:not(.disabled):not(:disabled):active, .wst-price-but.active{background: #f1f1f1;background-clip: padding-box;}
|
||||
.goods-list{width:100%;}
|
||||
.goods-list .goods{width:233px;margin:5px 4px 5px 6px;border:1px solid #eee;float:left;height:430px;}
|
||||
.goods-list .goods:hover{border:1px solid #ddd;-webkit-box-shadow:0 0 10px #ddd; -moz-box-shadow:0 0 10px #ddd; box-shadow:0 0 10px #ddd;}
|
||||
.goods-list .goods .img{width:233px;margin:0 auto;text-align:center;vertical-align:middle;display:block;position:relative; display:table-cell; padding:4px;}
|
||||
.goods-list .goods .img a{display:table-cell;vertical-align:middle;width:233px; height:233px;}
|
||||
.goods-list .goods .img a img{max-width:210px;max-height:210px;}
|
||||
.goods-list .goods .p-price{height:26px;line-height:26px;padding:5px 0px 5px 12px;font-weight: bold;color:#C00;font-size:14px;width:113px;float:left;overflow: hidden;}
|
||||
.goods-list .goods .p-hsale{padding:5px 12px 5px 0;width:93px;float:right;text-align: right;}
|
||||
.goods-list .goods .p-hsale span{font-weight: bold;color:#df2003;}
|
||||
.goods-list .goods .p-hsale .p-add-cart{line-height: 24px;display: block;border: 1px solid #DF2003;width: 75px;height: 24px;text-align: center;color: #DF2003;float: right;}
|
||||
.goods-list .goods .p-hsale .p-add-cart:hover{background: #DF2003;color: white;}
|
||||
.goods-list .goods .p-name{height: 40px;line-height: 20px;overflow: hidden;width:210px;margin-left:12px;}
|
||||
.goods-list .goods .p-shop{padding:5px 5px 5px 12px;position: relative;}
|
||||
.goods-list .goods .p-shop .contrast{position: absolute;padding-left: 17px;top:5px;right:10px;z-index: 1;}
|
||||
.goods-list .goods .p-shop .contrast:hover{color:#e4393c;}
|
||||
.goods-list .goods .p-shop .contrast i{position: absolute;top: 3px;left: 0;width: 14px;height: 14px;background: url(../img/contrast.png) 0 0 no-repeat;background-size: 100%;}
|
||||
.goods-list .goods .p-mprice{color:#999;padding:5px 0px 5px 12px;width:113px;float:left;}
|
||||
.goods-list .goods .p-mprice span{text-decoration: line-through;}
|
||||
.goods-list .goods .p-appraise{padding:5px 5px 5px 0px;width:100px;float:right;text-align: right;}
|
||||
.goods-list .goods .p-appraise span{font-weight: bold;color:#1499E5;}
|
||||
.goods-list .goods .tags{padding-left:10px;}
|
||||
.goods-list .goods .tags .tag{background:#DF2003;color:#ffffff;padding:0px 4px 1px 4px;margin-right:5px;border-radius:8%}
|
||||
.img_list{padding-left: 5px;}
|
||||
.img_list li{float:left;width: 25px;height: 25px;margin-right: 2px;box-sizing:border-box;}
|
||||
.img_list li.curr{border: 1px solid red;}
|
||||
.img_list li img{max-width: 100%;max-height: 100%;}
|
||||
.wst-recommend,.wst-relook{margin-bottom: 20px;height:410px;border:1px solid #ddd;}
|
||||
.wst-recommend .title,.wst-relook .title, .wst-gview .title{line-height:35px;background-color: #f7f7f7;padding:0 10px;border-top:2px solid #ddd;}
|
||||
.tgoods-list{width:100%;}
|
||||
.tgoods-list .goods{width:230px;margin:5px 0px 5px 6px;border:1px solid #ddd;float:left;}
|
||||
.tgoods-list .goods:hover{border:1px solid #ddd;-webkit-box-shadow:0 0 10px #ddd; -moz-box-shadow:0 0 10px #ddd; box-shadow:0 0 10px #ddd; }
|
||||
.tgoods-list .goods .img{width:230px;margin:0 auto;text-align:center;vertical-align:middle;display:block;position:relative; display:table-cell; padding:4px;}
|
||||
.tgoods-list .goods .img a{display:table-cell;vertical-align:middle;width:230px; height:230px;}
|
||||
.tgoods-list .goods .img a img{max-width:223px;max-height:223px;}
|
||||
.tgoods-list .goods .p-price{padding:5px 0px 5px 5px;font-weight: bold;color:#df2003;width:120px;float:left;font-size:14px;}
|
||||
.tgoods-list .goods .p-hsale{padding:5px 5px 5px 0;width:100px;float:right;text-align: right;}
|
||||
.tgoods-list .goods .p-hsale span{font-weight: bold;color:#df2003;}
|
||||
.tgoods-list .goods .p-hsale .p-add-cart{line-height: 15px;display: block;border: 1px solid #ff6a53;width: 75px;height: 15px;text-align: center;color: #ff6a53;float: right;}
|
||||
.tgoods-list .goods .p-hsale .p-add-cart:hover{background: #ff6a53;color: white;}
|
||||
.tgoods-list .goods .p-name{height: 40px;line-height: 20px;overflow: hidden;padding:0 5px;}
|
||||
.tgoods-list .goods .p-shop{padding:5px;}
|
||||
.tgoods-list .goods .p-mprice{color:#999;padding:5px 0px 5px 5px;width:120px;float:left;}
|
||||
.tgoods-list .goods .p-mprice span{text-decoration: line-through;margin-left: 10px;font-weight: normal;}
|
||||
.tgoods-list .goods .p-appraise{padding:5px 5px 5px 0;width:100px;float:right;text-align: right;}
|
||||
.tgoods-list .goods .p-appraise span{font-weight: bold;color:#1499E5;}
|
||||
.wst-gview{margin-top:10px;]margin-bottom: 20px;height:270px;border:1px solid #ddd;}
|
||||
.wst-gview .view-goods .item{float:left;position:relative;width:162px; margin: 5px 0px 5px 6px;border:1px solid #eeeeee;float:left;}
|
||||
.wst-gview .view-goods .item:hover{border:1px solid #ddd;-webkit-box-shadow:0 0 10px #ddd; -moz-box-shadow:0 0 10px #ddd; box-shadow:0 0 10px #ddd; }
|
||||
.wst-gview .view-goods .item .img{width:156px;margin:0 auto;text-align:center;vertical-align:middle;display:block;position:relative; display:table-cell; padding:4px;}
|
||||
.wst-gview .view-goods .item .img a{display:table-cell;vertical-align:middle;width:156px; height:156px;}
|
||||
.wst-gview .view-goods .item .img a img{max-width:156px;max-height:156px;}
|
||||
.wst-gview .view-goods .item .p-price{padding:5px;font-weight: bold;color:#df2003;}
|
||||
.wst-gview .view-goods .item .v-price{text-decoration: line-through;color:#999;margin-left: 6px;font-weight: normal;}
|
||||
/*自定义复选框-列*/
|
||||
.checkbox-box-s{float:left;width:15px;height:20px;margin-top: 3px;}
|
||||
.wst-checkbox-s + label {-webkit-appearance: none;background-color: #ffffff;border: 1px solid #d5d5d5;padding: 6px;display: inline-block;position: relative;}
|
||||
.wst-checkbox-s + label:after {content: '\2714';color: #ccc;font-size: 13px;position: absolute;top: -5px;left: 1px;}
|
||||
.wst-checkbox-s:checked + label{border: 1px solid #ff8043;/* 修改选框选中颜色*/}
|
||||
.wst-checkbox-s:checked + label:after {content: '\2714';color: #ff8043;font-size: 13px;position: absolute;top: -5px;left: 1px;}
|
||||
.checkbox-box-s .wst-checkbox-s{position:relative;z-index:-654;left:-6px;top:-1px;}
|
||||
.checkbox-box-s label{position: relative;top:-24px;left:-4px;}
|
||||
.wst-no-goods{height: 50px;line-height:50px;color:red;text-align:center;font-weight:bold;}
|
||||
.wst-no-goods span{color:#999;}
|
||||
/*发货地*/
|
||||
.tab-header{border-bottom:2px solid #df2003;width: 100%;height:20px;background: #fff;}
|
||||
.tab li{display:block;margin:0px;float:left;background-color:#fff;height:20px;}
|
||||
.tab-item1 a{background: #fff;color:gray;border:1px solid #ddd;float:left;min-width:80px;width:auto;text-align: center;}
|
||||
.j-tab-selected1 a{background: #fff;border:2px solid #df2003;border-bottom: #fff solid 2px;}
|
||||
.area{float: left;overflow: hidden;padding: 4px 8px;text-overflow: ellipsis;white-space: nowrap;width: 80px;}
|
||||
.area-box li{float:left;width:80px;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;padding: 4px 8px;}
|
||||
/*商品对比*/
|
||||
.wst-contrast{width: 100%;padding-top: 20px;padding-bottom: 29px;}
|
||||
.wst-contrast .goods{background: #fff;}
|
||||
.wst-contrast .goods .table,.wst-contrast .table2{width: 100%;border-collapse: collapse;table-layout: fixed;border-top: 1px solid #e4e4e4;border-left: 1px solid #e4e4e4;margin-top: -1px;}
|
||||
.wst-contrast .goods .table td,.wst-contrast .goods .table th{padding: 20px 0 16px;border-right: 1px solid #e4e4e4;border-bottom: 1px solid #e4e4e4;line-height: 24px;font-family: SimSun;background: #fff;}
|
||||
.wst-contrast .goods .table th{width: 125px;text-align: right;font-weight: 400;background: #f7f7f7;color: #999;}
|
||||
.wst-contrast .choice{margin-left: 10px;margin-bottom: 10px;text-align: left;}
|
||||
.wst-contrast .choice input{margin-right: 5px;vertical-align: middle;}
|
||||
.wst-contrast .choice label {display: inline-block;height: 16px;line-height: 16px;vertical-align: middle;color: #666;}
|
||||
.wst-contrast .goods-item{width: 200px;margin: 0 auto;}
|
||||
.wst-contrast .goods-item:hover .operation .del{opacity: 1;}
|
||||
.wst-contrast .goods-item .img{width: 100%;height: 160px;text-align: center;}
|
||||
.wst-contrast .goods-item .img img{width: 160px;border: 0;vertical-align: middle;}
|
||||
.wst-contrast .goods-item .name{height: 32px;overflow: hidden;margin-top: 10px;line-height: 16px;color: #333;}
|
||||
.wst-contrast .goods-item .price{height: 28px;line-height: 28px;margin-top: 10px;font-family: "Microsoft YaHei";font-size: 14px;color: #e4393c;}
|
||||
.wst-contrast .goods-item .price span{font-size: 20px;font-weight: 400;}
|
||||
.wst-contrast .goods-item .operation{position: relative;width: 100%;height: 30px;margin-top: 13px;}
|
||||
.wst-contrast .goods-item .operation .see{display: block;margin-bottom: 10px;width: 80px;height: 30px;line-height: 30px;text-align: center;background: #e4393c;color: #fff;}
|
||||
.wst-contrast .goods-item .operation .see:hover{background: #e75153;}
|
||||
.wst-contrast .goods-item .operation .del{position: absolute;right: 0;top: 5px;font: 12px/20px SimSun;opacity: 0;}
|
||||
.wst-contrast .goods-item .operation .del:hover{color: #e4393c;}
|
||||
.wst-contrast .goods-fixed{position: fixed;top: 0;z-index: 100;left: 50%;width: 1200px;margin-left: -600px;}
|
||||
.wst-contrast .goods-fixed .img{float:left;width: 100px;height: 100px;}
|
||||
.wst-contrast .goods-fixed .img img{width: 90px;margin-top: 5px;}
|
||||
.wst-contrast .goods-fixed .name{display: none;}
|
||||
.wst-contrast .goods-fixed .price,.wst-contrast .goods-fixed .operation{float:left;width: 100px;}
|
||||
.wst-contrast .goods-fixed .operation .del{right:-16px;}
|
||||
.wst-contrast .goods-fixed2{display: none;}
|
||||
.wst-contrast .goods-fixed2 th{height: 126px;}
|
||||
.wst-contrast .table2 td,.wst-contrast .table2 th{padding: 20px 0 16px;border-right: 1px solid #e4e4e4;border-bottom: 1px solid #e4e4e4;line-height: 24px;font-family: SimSun;background: #fff;}
|
||||
.wst-contrast .table2 th {width: 125px;text-align: right;font-weight: 400;background: #f7f7f7;color: #999;}
|
||||
.wst-contrast .table2 .left-title{margin-right: 36px;}
|
||||
.wst-contrast .table2 .right-title{padding-left: 35px;width: 200px;overflow: hidden;word-wrap: break-word;}
|
||||
.wst-contrast .table2 .list-box{width: 200px;padding-left: 35px;}
|
||||
.wst-contrast .table2 .list-box li{float: left;height: 29px;line-height: 29px;padding: 0 13px;border: 1px solid #d7d7d7;margin-right: 6px;margin-bottom: 6px;cursor: pointer;}
|
||||
.wst-contrast .table2 .list-box li.img{padding:0;height: 40px;}
|
||||
.wst-contrast .table2 .list-box li img{width: 40px;height: 40px;}
|
||||
.wst-contrast .table2 .list-box li:hover{color: #e4393c;}
|
||||
.wst-contrast .table2 .list-box li.active{color: #e4393c;border-color: #e4393c;}
|
||||
.wst-contrast .table2 .identical_0.active td{background: #f4f9fd;}
|
||||
.wst-contrast .table2 .identical_1.active{display: none;}
|
||||
/*商品对比*/
|
||||
.wst-cont-frame{position: fixed;bottom: -200px;right: 50%;margin-right: -602px;z-index: 100;width: 986px;height: 139px;background: #fff;-moz-box-shadow: 0 0 15px rgba(221,221,221,0.8);-webkit-box-shadow: 0 0 15px rgba(221,221,221,0.8);box-shadow: 0 0 15px rgba(221,221,221,0.8);-webkit-transition: all .2s linear;transition: all .2s linear;}
|
||||
.wst-cont-frame.show{bottom: 0;}
|
||||
.wst-cont-frame .head{height: 32px;border: 1px solid #ddd;border-bottom: 2px solid #e23c3d;position: relative;}
|
||||
.wst-cont-frame .head span{float: left;width: 80px;height: 36px;line-height: 30px;text-align: center;font: 14px/30px 'microsoft yahei';position: relative;left: -1px;margin-top: -4px;background: #fff;border: 2px solid #e23c3d;border-bottom: 0;color: #e23c3d}
|
||||
.wst-cont-frame .head .close{text-align: right;position: absolute;right: 0;top: 0;padding-right: 22px;height: 30px;line-height: 30px;color: #005aa0;}
|
||||
.wst-cont-frame .list{border: 2px solid #e23c3d;border-top: none;position: relative;}
|
||||
.wst-cont-frame .goods{padding: 6px;color: #ccc;height: 90px;overflow: hidden;}
|
||||
.wst-cont-frame .term{float: left;overflow: hidden;margin-right: 10px;padding: 17px 10px 12px 0;border-right: 1px dotted #e23c3d;}
|
||||
.wst-cont-frame .term:hover .info .price a{opacity: 1;}
|
||||
.wst-cont-frame .term .img{float: left;margin-right: 5px;width: 48px;height: 48px;text-align: center;border: 1px solid #fff;overflow: hidden;}
|
||||
.wst-cont-frame .term .info,.wst-cont-frame .list .term-empty .info{float: left;width: 140px;}
|
||||
.wst-cont-frame .term .info .name{height:36px;line-height: 18px;overflow: hidden;display: block;color: #333;}
|
||||
.wst-cont-frame .term .info .price span{color: #e4393c;font-size: 14px;font-family: Verdana;font-weight: bold;}
|
||||
.wst-cont-frame .term .info .price a{padding-left: 10px;color: #005aa0;opacity: 0;}
|
||||
.wst-cont-frame .term-empty{float: left;overflow: hidden;margin-right: 10px;padding: 17px 10px 12px 0;border-right: 1px dotted #e23c3d;}
|
||||
.wst-cont-frame .term-empty .img{float: left;margin-right: 5px;width: 48px;height: 48px;text-align: center;color: #ccc;border: 1px solid #fff;font: 36px/48px arial;overflow: hidden;background: #f6f6f6;}
|
||||
.wst-cont-frame .term-contrast{position: absolute;right: 22px;top: 22px;width: 85px;text-align: center;}
|
||||
.wst-cont-frame .term-contrast .contrast{display: block;margin: 0 auto;margin-bottom: 10px;font: bold 14px/30px verdana;width: 60px;height: 30px;line-height: 30px;text-align: center;background: #e4393c;color: #fff;}
|
||||
.wst-cont-frame .term-contrast .contrast:hover{background: #e75153;}
|
||||
.wst-cont-frame .term-contrast .empty{color: #005aa0;}
|
2299
hyhproject/home/view/default/css/index.css
Executable file
84
hyhproject/home/view/default/css/login.css
Executable file
@ -0,0 +1,84 @@
|
||||
@CHARSET "UTF-8";
|
||||
/*登录*/
|
||||
body{margin: 0;
|
||||
padding: 0;}
|
||||
.wst-login_l{width: 99.9%; height:525px; background: url(../img/img_user.png) no-repeat top center;}
|
||||
.wst-login_l_shop{width: 99.9%; height:475px; background: url(../img/img_shop.png) no-repeat top center;}
|
||||
.wst-login_r{margin-top:3%; margin-right: 4%; padding:30px 100px 20px 46px; float:right; border:1px solid #dad7d7; background: white;box-shadow: 0 0 30px 5px rgba(0,0,0,.4);}
|
||||
.wst-login-u{margin: 0 auto; width:120px; height:36px; display: block; font-size: 25px; }
|
||||
input.wst-login-input-1{margin: 1px;float: left; padding:2px; padding-left:5px; font-size: 15px; outline: none; width:269px; height:36px;border:0;}
|
||||
input.wst-login-input{padding:0px; padding-left:5px; font-size: 15px; outline: none; width:300px; height:36px; border:1px solid #eee;}
|
||||
input.wst-regist-input{margin: 1px;float: left; padding:2px; padding-left:5px; font-size: 15px; outline: none; width:269px; height:36px;border:1px solid #eee;}
|
||||
.wst-login-input:focus,.wst-login-input-1:focus,.wst-regist-input:focus,.wst-login-codein-1:focus,.wst-login-codein:focus,.wst-regist-codein:focus,.wst-regist-codemo:focus{ border:1px solid #eb654a; }
|
||||
.wst-table{margin-top:20px; color: #333;font: 12px/150% "Hiragino Sans GB","Microsoft Yahei",arial,宋体,"Helvetica Neue",Helvetica,STHeiTi,sans-serif;}
|
||||
.wst-login-tr{height:30px;}
|
||||
.wst-login-code-1,.wst-regist-code{height:36px; } input.wst-login-codein-1,input.wst-regist-codein{padding:0px; padding-left:5px; width:150px; height:36px; position:absolute;left: 38px; font-size: 15px; outline: none; border:0; }
|
||||
.wst-login-codeim-1{margin-left:148px; }
|
||||
.wst-login-ch{border:1px solid #eb654a; }
|
||||
.wst-login-but{display: block; position: relative; background:#E45050; color: #ffffff; text-align: center; font-family: 'Ubuntu', sans-serif; font-size: 15px; font-weight: bold; text-decoration: none; border-radius: 3px; overflow: hidden; -webkit-transition: all 0.15s ease-in; transition: all 0.15s ease-in; }
|
||||
.wst-login-but:hover {background: #ea3232; }
|
||||
.wst-login-but:before {content: ' '; position: absolute; background: #ffffff; width: 25px; height: 50px; top: 0; left: -45px; opacity: 0.3; -webkit-transition: all 0.25s ease-out; transition: all 0.25s ease-out; -webkit-transform: skewX(-25deg); transform: skewX(-25deg); }
|
||||
.wst-login-but:hover:before {width: 45px; left: 205px; }
|
||||
.wst-login-three{height: 30px; display: block; margin-top: 15px; } /*注册*/ .wst-regist{padding:100px 20px 60px 20px; }
|
||||
.wst-regist-b{background:url(../img/img_regist.png) no-repeat; background-size: cover; margin-top:3px; border-top: 2px solid #eee;border-bottom: 2px solid #eee;}
|
||||
.wst-regist-c{width: 760px; margin: 0 auto; padding:20px; border-radius:5px; }
|
||||
.wst-regist-head{font-size:28px; font-family:"楷体"; color:#E45050; text-align:center; } input.wst-regist-input{width:400px; margin-left:20px; }
|
||||
.wst-regist-td{text-align:right; width: 150px; font-size: 15px; color:#626262; }
|
||||
.wst-regist-code-1{margin-left:20px; } input.wst-regist-codein{width:150px;}
|
||||
.wst-regist-codeim{margin-left:288px; } input.wst-regist-codemo{padding:0px; margin-left: 20px; padding-left:5px; font-size: 15px; outline: none; width:260px; height:36px; border:1px solid #eee; }
|
||||
.wst-regist-obtain{width:134px; background:#f0efef; border-radius: 3px; border: 1px solid #eee; padding:10px 0px; cursor:pointer; color: #110f0f; border:1px solid #eee;}
|
||||
.wst-regist-but{outline: none; background:#e45050; color: #ffffff; border: 1px solid #ea3232; border-radius:3px; cursor:pointer; }
|
||||
.wst-regist-but:hover{background: #ea3232; }
|
||||
.wst-regist-but:not(.disabled):not(:disabled):active, .wst-regist-but.active{background: #ea3232; background-clip: padding-box; } /*找回密码*/ .stepflex{float:right; border-top: 5px solid #ccc; text-align: center; width: 640px; margin: 60px 0px 0px 50px; }
|
||||
.stepflex dl{border-top: 5px solid #ccc; float: left; position: relative; top: -5px; width: 160px; } dl.doing{border-top-color: #04bd3d; }
|
||||
.doing .s-num{background-position: -23px 0; }
|
||||
.s-num,.s-num1{color: #fff; font-weight: 700; height: 23px; line-height: 23px; margin: -15px auto 0; position: relative; width: 23px; border-radius:25px; }
|
||||
.s-num{background: #04bd3d; }
|
||||
.s-num1{background: #ccc; }
|
||||
.s-text{line-height:30px; }
|
||||
.forget-pwd{width: 750px; margin:50px auto 50px; padding:25px 0px 48px 0px; border:1px solid #bac4c3; border-radius:6px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); } input.wst-forget-input{padding: 0px; margin-left:20px; padding-left:5px; font-size: 15px; outline: none; width:300px; height:36px; border-radius:3px; border:1px solid #bac4c3; }
|
||||
.wst-forget-code,.wst-forget-code2{float:left; width:300px; height:36px; border-radius:3px; margin-left:20px; border:1px solid #bac4c3; } input.wst-forget-codein,input.wst-forget-codein2{padding: 0px; padding-left:5px; width:180px; height:36px; position:absolute; font-size: 15px; outline: none; border:0; border-radius:6px; }
|
||||
.wst-forget-input:focus,.wst-forget-codein:focus,.wst-forget-codein2:focus{border-radius:3px; border:1px solid #eb654a; }
|
||||
.wst-forget-codeim,.wst-forget-codeim2{width:116px; border-top-right-radius:6px; border-bottom-right-radius:6px; margin-left:183px; }
|
||||
.wst-forget-code2{width:230px; } input.wst-forget-codein2{width:120px; }
|
||||
.wst-forget-codeim2{width:112px; margin-left:118px; }
|
||||
.email-verify{display:none; }
|
||||
.wst-forget-td{text-align:right; width: 260px; font-size: 15px; color:#626262; }
|
||||
.wst-forget-te{margin-left:20px; font-size: 15px; }
|
||||
.wst-forget-select{margin-left:20px; font-size: 15px; outline: none; width:230px; height:36px; border-radius:3px; border:1px solid #bac4c3; }
|
||||
.wst-forget-obtain{width:134px; height: 36px; background:#f0efef; border-radius: 3px; border: 1px solid #d3c8c7; padding:10px 0px; cursor:pointer; color: #110f0f; }
|
||||
.wst-forget-c{text-align:center; }
|
||||
.wst-forget-ct{font-size: 16px; color:#2d2727; }
|
||||
.wst-icon-banner{width: 1200px;margin:0 auto;}
|
||||
.wst-icon{width: 120px;height: 30px; display: inline-block;float: right;}
|
||||
.wst-icon li{float:left;}
|
||||
.wst-icon .wst-remind{color:red;font-size: 12px;padding-left: 10px;height: 30px;line-height: 30px;}
|
||||
.wst-img-icon{width: 23px;height: 23px; background: url(../img/icon_login02.png) no-repeat;background-size: contain;margin-top: 3px;}
|
||||
.wst-login-banner{width: 99.9%;height: 160px; }
|
||||
.wst-login-banner .img-banner{height:130px; margin: 10px 10px 10px 120px; float: left;}
|
||||
.wst-login-banner .img-banner img{height: 100%;}
|
||||
.wst-login-banner .wst-stript{width: 2px;height: 110px;margin-top: 25px;margin-left: 20px; background: #eee;float: left;}
|
||||
.wst-login-banner .wst-login-action{width:630px;height: 130px; float: right; margin: 10px 10px 10px 10px;}
|
||||
.wst-login-action .wst-left{width: 200px;height: 130px; float: left;text-align: center;line-height: 130px;font-family:微软雅黑;font-weight: bold;font-size: 25px;}
|
||||
.wst-login-action .wst-right-action{width: 200px;height: 130px;float: right;}
|
||||
.wst-login-action .action-box{padding-top: 50px; line-height: 27px;}
|
||||
.action-box .wst-location{width: 100px;height: 25px;float: right;line-height: 25px;font-size: 12px;margin-right: 40px;}
|
||||
.wst-login-middle{height: 527px; background: rgba(255,76,76,0.78);}
|
||||
.wst-login-middle-shop{height: 477px; background: rgb(86,169,253);}
|
||||
.wst-color{background: white;}
|
||||
.wst-login-banner-regist{width: 99.9%;height: 100px; }
|
||||
.wst-login-banner-regist .img-banner{height:90px; margin: 10px 10px 10px 100px; float: left;}
|
||||
.wst-login-banner-regist .img-banner img{height: 100%;}
|
||||
.wst-login-banner-regist .wst-login-action{width:400px;height: 80px; float: right; margin: 10px 10px 10px 10px;}
|
||||
.wst-item{position: relative;margin-bottom: 20px;}
|
||||
.wst-item-box{border: 1px solid #eee;height: 38px;width: 310px;}
|
||||
.wst-item-box .login-img{ position: relative;z-index: 3;top: 0;left: 0; width: 28px;height: 28px;margin-top: 5px; margin-left: 4px;margin-right: 2px; border-right: 1px solid #eee;background: url(../img/icon_name.png) 1px no-repeat;background-size: 85%;float: left;}
|
||||
.password-img{position: relative;z-index: 3;top: 0;left: 0; width: 28px;height: 28px;margin-top: 5px;margin-left: 4px; margin-right: 2px; border-right: 1px solid #eee;float: left;background: url(../img/icon_passard.png) 1px no-repeat;background-size: 85%;}
|
||||
.yanzheng-img{position: relative;z-index: 3;top: 0;left: 0; width: 28px;height: 28px;margin-top: 5px; margin-left: 4px;margin-right: 2px; border-right: 1px solid #eee;float: left;background: url(../img/icon_yanzhengma.png) 1px no-repeat;background-size: 85%;}
|
||||
.bottom-stript{width: 100%;height: 20px;border:1px solid red;}
|
||||
.regist-border{border:1px solid #eee;}
|
||||
|
||||
|
||||
.wst-login-code,.wst-regist-code{height:36px; border:1px solid #eee; }
|
||||
.wst-login-codeim{margin-left:188px; }
|
||||
input.wst-login-codein{padding:0px; padding-left:5px; width:180px; height:36px; position:absolute; font-size: 15px; outline: none;border:0; }
|
49
hyhproject/home/view/default/css/recharge.css
Executable file
@ -0,0 +1,49 @@
|
||||
|
||||
/**支付方式**/
|
||||
.pay-box{border-left:1px solid #eeeeee;border-right:1px solid #eeeeee;border-top:1px solid #eeeeee;padding:5px 0px 10px 5px;}
|
||||
.pay-boxs{padding:10px 0px 5px 5px;}
|
||||
.pay-box ul{padding-left:15px;}
|
||||
.pay-box ul li{width:1185px;}
|
||||
.pay-box .label{width:200px;float:left;height:30px;line-height:30px;}
|
||||
.pay-box .txt{height:auto;line-height:30px;width:985px;float:left;color:#999999;}
|
||||
.pay-sbox{padding:5px 0px;}
|
||||
.pay-sbox-head{border-bottom: 2px solid #ddd;line-height:35px;}
|
||||
.pay-tip1{height:37px;width:760px;text-align: center;margin:10px auto;background: url(../img/pay_liucheng.png) no-repeat 0px -10px;background-size: cover; }
|
||||
.pay-tip2{height:37px;width:760px;text-align: center;margin:10px auto;background: url(../img/pay_liucheng.png) no-repeat 0px -71px;background-size: cover; }
|
||||
.pay-tip3{height:37px;width:760px;text-align: center;margin:10px auto;background: url(../img/pay_liucheng.png) no-repeat 0px -132px;background-size: cover; }
|
||||
.pay-sbox .qrcode-box{min-height: 300px;height: auto;}
|
||||
.pay-sbox .tips-box{line-height:35px;text-align: left;font-weight: bold;padding:5px 10px;}
|
||||
.pay-sbox .qrcode-box .pbox{text-align: center;margin-top: 10px;font-weight: bold;}
|
||||
.pay-sbox .wst-qrcode{width:260px;height:260px;text-align:center;margin:0 auto;}
|
||||
.pay-sbox .wst-qrcode img{width:260px;height:260px;}
|
||||
.pay-sbox .bnt-box{line-height:35px;text-align:center;font-weight: bold;padding:5px 10px;line-height:50px;}
|
||||
.pay-sbox .pay-type{text-align: left;font-weight: bold;padding:5px 10px;}
|
||||
.pay-sbox .pay-list{text-align: left;font-weight: bold;padding:5px 20px;}
|
||||
.pay-sbox .succ-box{text-align: center;padding: 50px;}
|
||||
.wst-payCode-weixinpays {height:69px;width:167px;text-align: center;margin:10px auto;background: url(../img/weixinpays.png) no-repeat 0px 0px;background-size: cover;float: left;margin-right:10px;cursor:pointer;}
|
||||
.wst-payCode-weixinpays-curr {height:69px;width:167px;text-align: center;margin:10px auto;background: url(../img/weixinpays.png) no-repeat 0px -75px;background-size: cover;float: left;margin-right:10px;cursor:pointer;}
|
||||
.wst-payCode-alipays {height:69px;width:167px;text-align: center;margin:10px auto;background: url(../img/alipays.png) no-repeat 0px 0px;background-size: cover;float: left;margin-right:10px;cursor:pointer;}
|
||||
.wst-payCode-alipays-curr {height:69px;width:167px;text-align: center;margin:10px auto;background: url(../img/alipays.png) no-repeat 0px -75px;background-size: cover;float: left;margin-right:10px;cursor:pointer;}
|
||||
.pay-sbox .wst-pay-bnt {height:40px;width:132px;text-align: center;margin:10px auto;background: url(../img/btn_pay.png) no-repeat 0px 0px;cursor:pointer;}
|
||||
.pay-sbox .wst-pay-bnt:hover {height:40px;width:132px;text-align: center;margin:10px auto;background: url(../img/btn_pay.png) no-repeat 0px -57px;cursor:pointer;}
|
||||
.charge-money{font-size:18px;}
|
||||
.charge-alone{line-height:50px; }
|
||||
.charge-doub{padding-top: 8px;}
|
||||
.charge-othermoney{width:80px;}
|
||||
.j-charge-money{display: none;}
|
||||
.j-show-box,.j-edit-box,.j-list-box,.wst-list-box{padding:5px 0px 20px 15px;}
|
||||
.j-list-box li{height:40px;line-height:40px;}
|
||||
.j-edit-box .rows{width:auto;height:auto;}
|
||||
.j-edit-box .label{float:left;width:120px;text-align:right;padding:2px 0px 2px 0px;}
|
||||
.j-edit-box .field{float:left;padding:2px 0px 2px 0px;}
|
||||
.field label{margin-right:20px;}
|
||||
#saveAddressBtn{margin-left:120px;}
|
||||
.j-show-box .address{line-height:36px;}
|
||||
.j-show-box .address a{color: #1c9eff;}
|
||||
.j-show-box .address a:hover{text-decoration:underline;}
|
||||
.j-default{padding:5px;background:#ccc;}
|
||||
.wst-frame1{float: left;width:180px;margin: 2px 8px 2px 0px;background: #fff;border: 1px solid #ccc;padding:7px;cursor: pointer;text-align:center;overflow: hidden;position: relative;}
|
||||
.wst-frame2{min-height:50px;float: left;min-width:120px;margin: 2px 20px 2px 0px;background: #fff;border: 1px solid #ccc;padding:7px;cursor: pointer;text-align:center;overflow: hidden;position: relative;}
|
||||
.wst-frame1.j-selected i,.wst-frame2.j-selected i{font-size: 0;line-height: 0;background: url(../img/img_gd_sel.png) no-repeat 0 0;display: block; width: 11px;height: 11px;position: absolute;z-index: 1;right: -1px;bottom: -1px;}
|
||||
.wst-frame1.j-selected,.wst-frame2.j-selected{border: 2px solid #e4393c;padding:6px;}
|
||||
.wst-form input.charge-othermoney{padding: 8px;}
|
78
hyhproject/home/view/default/css/right_cart.css
Executable file
@ -0,0 +1,78 @@
|
||||
@CHARSET "UTF-8";.j-global-toolbar div a{margin:0;padding:0;font:12px/150% Arial,Verdana,"宋体";color:#666}
|
||||
.toolbar-wrap{position:fixed;top:0;right:0;z-index:9990;width:35px;height:100%}
|
||||
.toolbar-wrap a{text-decoration:none}
|
||||
.toolbar{position:absolute;right:0;top:0;width:29px;height:100%;border-right:6px solid #333}
|
||||
.toolbar-panels{position:absolute;left:35px;top:0;width:270px;height:100%;z-index:2;background:#eceaea none repeat scroll 0 0}
|
||||
.toolbar-panel{width:270px;height:100%;position:absolute;background:#eceaea none repeat scroll 0 0}
|
||||
.tbar-panel-header{position:relative;width:270px;height:40px;line-height:40px;background:#eceaea none repeat scroll 0 0;font-family:"microsoft yahei";font-weight:normal;margin:0;padding:0}
|
||||
.tbar-panel-header .title{display:inline-block;height:40px;color:#5e5050;font:16px/40px "微软雅黑"}
|
||||
.tbar-panel-cart .tbar-panel-header i{width:20px;height:18px;background-position:0 0;margin-top:11px}
|
||||
.tbar-panel-header i{margin-right:4px;margin-left:10px;vertical-align:top}
|
||||
.tbar-panel-header i,.tbar-panel-header .close-panel{display:inline-block;font-style:normal;background-image:url("../img/right_cart.png");background-repeat:no-repeat}
|
||||
.tbar-panel-header .title em{display:inline-block;vertical-align:top}
|
||||
.tbar-panel-header .close-panel{width:12px;height:12px;background-position:0 -250px;position:absolute;right:8px;top:16px;cursor:pointer;transition:transform .2s ease-out 0s}
|
||||
.tbar-panel-main{position:relative;margin:0;padding:0;font:12px/150% Arial,Verdana,"宋体";color:#666}
|
||||
.tbar-tipbox{display:block}
|
||||
.tbar-panel-content{width:270px;overflow-y:auto;overflow-x:hidden;position:relative}
|
||||
.tbar-tipbox .tip-inner{padding:6px 5px;border:1px solid #edd28b;background:#fffdee none repeat scroll 0 0;text-align:center}
|
||||
.tbar-tipbox .tip-text{display:inline-block;line-height:20px;vertical-align:middle;color:#333}
|
||||
.tbar-tipbox .tip-btn{display:inline-block;height:20px;line-height:20px;padding:0 5px;margin-left:5px;color:#FFF;vertical-align:middle;background:#c81623 none repeat scroll 0 0}
|
||||
.tbar-panel-cart .tbar-panel-footer{height:50px;background-color:#eceaea;margin:0;padding:0}
|
||||
.tbar-checkout{height:40px;padding:5px 110px 5px 5px;position:relative}
|
||||
.tbar-checkout .jtc-number strong{font-family:verdana;color:#c81623}
|
||||
.tbar-checkout .jtc-number{line-height:20px;font:12px/150% Arial,Verdana,"宋体";color:#666}
|
||||
.tbar-checkout .jtc-sum{line-height:20px;font:12px/150% Arial,Verdana,"宋体";color:#666}
|
||||
.tbar-checkout .jtc-sum strong{font-family:verdana;color:#c81623}
|
||||
.tbar-checkout .jtc-btn{position:absolute;right:5px;top:7px;width:110px;height:35px;font:16px/35px "微软雅黑";text-align:center;background:#c81623 none repeat scroll 0 0;color:#FFF}
|
||||
.tbar-cart-list{width:100%;margin:0;padding:0;font:12px/150% Arial,Verdana,"宋体";color:#666}
|
||||
.tbar-cart-item{padding:0 5px;margin-bottom:10px;background:#FFF none repeat scroll 0 0}
|
||||
.jtc-item-promo{padding:12px 0 12px 0;border-bottom:1px dashed #e1e1e1}
|
||||
.jtc-item-promo .promo-tag{position:relative;float:left;width:40px;height:20px;margin-top:-1px;margin-left:-57px;margin-right:17px;text-align:center;font:12px/20px "宋体";color:#FFF;background-color:#f58813}
|
||||
.jtc-item-promo .promo-text{height:18px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font:12px/18px verdana}
|
||||
.jtc-item-goods{padding:10px 0;position:relative;overflow:hidden}
|
||||
.jtc-item-goods .p-img{float:left;width:60px;height:60px;border:1px solid #DDD;padding:0;margin-right:5px}
|
||||
.jtc-item-goods .p-img img{width:60px;height:60px}
|
||||
.jtc-item-goods .p-name{height:32px;line-height:16px;margin-bottom:4px;overflow:hidden}
|
||||
.jtc-item-goods .p-name a{color:#333}
|
||||
.jtc-item-goods .p-price{height:25px;overflow:hidden;font:12px/16px verdana;color:#666;width:170px}
|
||||
.jtc-item-goods .p-price strong{color:#c81623;font-weight:normal;float:left}
|
||||
.jtc-item-goods .p-del{position:absolute;right:10px;top:46px;width:35px;height:16px;line-height:16px;color:#005aa0;text-align:right;display:none}
|
||||
.tbar-panel-history div{padding:0}
|
||||
.jt-history-wrap{width:235px;margin:0 auto}
|
||||
.tbar-panel-history ul{overflow:hidden;margin-right:-15px;margin-top:0;list-style:outside none none;padding:0}
|
||||
.tbar-panel-history .tbar-panel-header i{width:20px;height:17px;margin-top:11px;background-position:0 -100px}
|
||||
.tbar-panel-follow .tbar-panel-header i{width:20px;height:17px;margin-top:11px;background-position:0 -50px}
|
||||
.tbar-panel-history .jth-item{float:left;position:relative;width:100px;height:120px;margin-right:15px;background:#FFF none repeat scroll 0 0;margin-bottom:15px;padding:5px}
|
||||
.tbar-panel-history .jth-item .img-wrap{display:block;width:100px;height:100px;text-align:center;margin-bottom:5px}
|
||||
.tbar-panel-history .jth-item .add-cart-button{height:20px;line-height:20px;overflow:hidden;text-align:center;text-decoration:none;display:none;position:absolute;width:100px;bottom:25px;left:5px;z-index:3;color:#FFF;background:rgba(28,25,28,0.8) none repeat scroll 0 0}
|
||||
.tbar-panel-history .jth-item .price{color:#c81623}
|
||||
.tbar-panel-history .history-bottom-more{display:block;text-align:center;height:40px;line-height:40px;font-family:"宋体";color:#666}
|
||||
.toolbar-header{position:absolute;top:0;right:-6px}
|
||||
.toolbar-tabs{position:absolute;top:50%;left:0;width:35px;margin-top:-61px}
|
||||
.toolbar-tab{position:relative;width:35px;height:35px;margin-bottom:1px;cursor:pointer;background-color:#333;border-radius:3px 0 0 3px;font:12px/150% Arial,Verdana,"宋体";color:#666;display:inline-block;background-image:url("../img/right_cart.png");background-repeat:no-repeat}
|
||||
.tbar-tab-cart{background-position:-50px 0}
|
||||
.tbar-tab-follow{background-position:-50px -50px}
|
||||
.tbar-tab-history{background-position:-50px -100px}
|
||||
.tbar-tab-message{background-position:-50px -144px}
|
||||
.tab-ico{width:34px;height:35px;margin-left:1px;position:relative;z-index:2;background-color:#7a6e6e}
|
||||
.tab-text{width:62px;height:35px;line-height:35px;color:#FFF;text-align:center;font-family:"微软雅黑";position:absolute;z-index:1;left:35px;top:0;background-color:#333;border-radius:3px 0 0 3px;transition:left .3s ease-in-out .1s;font-style:normal;margin:0;padding:0;cursor:pointer}
|
||||
.tab-sub{position:absolute;z-index:3;right:2px;top:-5px;height:11px;padding:1px 2px;border:1px solid #b61d1d;overflow:hidden;color:#FFF;font:11px/11px verdana;text-align:center;min-width:11px;border-radius:10px;background-color:#cc6060;background-image:linear-gradient(to bottom,#cc6060 0,#b61d1d 100%)}
|
||||
.toolbar-footer{position:absolute;bottom:-1px;width:100%;margin:0;padding:0;font:12px/150% Arial,Verdana,"宋体";color:#666}
|
||||
.tbar-tab-top{background-position:-50px -250px}
|
||||
.tbar-tab-feedback{background-position:-50px -300px}
|
||||
.footer-tab-text{width:50px;height:35px;line-height:35px;color:#FFF;text-align:center;font-family:"微软雅黑";position:absolute;z-index:1;left:35px;top:0;background-color:#7a6e6e;border-radius:3px 0 0 3px;transition:left .3s ease-in-out .1s;font-style:normal;margin:0;padding:0;cursor:pointer}
|
||||
.tbar-tab-hover{left:-60px;background-color:#c81623}
|
||||
.tbar-tab-footer-hover{left:-48px;background-color:#c81623}
|
||||
.tbar-tab-selected{background-color:#c81623}
|
||||
.tbar-tab-selected .tab-sub{color:#c81623;background-color:#FFF;background-image:linear-gradient(to bottom,#FFF 0,#FFF 100%);box-shadow:1px 1px 3px rgba(0,0,0,0.3);text-shadow:1px 0 1px rgba(0,0,0,0.3)}
|
||||
.tbar-tab-click-selected{background-color:#c81623}
|
||||
.tbar-tab-click-selected .tab-sub{color:#c81623;background-color:#FFF;background-image:linear-gradient(to bottom,#FFF 0,#FFF 100%);box-shadow:1px 1px 3px rgba(0,0,0,0.3);text-shadow:1px 0 1px rgba(0,0,0,0.3)}
|
||||
.survey-tab-ico{display:none}
|
||||
.survey-tab-text{left:0;width:35px;height:30px;padding:2px 0 3px;line-height:15px;background:#c81623 none repeat scroll 0 0;color:#FFF;text-align:center;font-family:"微软雅黑";position:absolute;z-index:1;top:0;border-radius:3px 0 0 3px;transition:left .3s ease-in-out .1s;font-style:normal;margin:0;cursor:pointer}
|
||||
.toolbar-open{right:270px}
|
||||
.j-close:hover{transform:rotate(180deg);-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-o-transform:rotate(180deg);-ms-transform:rotate(180deg)}
|
||||
.tbar-panel-history .jth-item .add-cart-button:hover{background:#c81623 none repeat scroll 0 0}
|
||||
.tbar-cart-item .buy-btn{background:#eee none repeat scroll 0 0;border:1px solid #ddd;color:#666;cursor:pointer;display:block;float:left;height:20px;line-height:20px;padding:0 5px}
|
||||
input.right-cart-buy-num[type="text"]{border-color:#ddd -moz-use-text-color;border-style:solid none;border-width:1px 0;float:left;height:16px;text-align:center;width:40px}
|
||||
.goods-remove{background:rgba(0,0,0,0) url("../img/right_cart.png") no-repeat 0 -290px;cursor:pointer;height:20px;overflow:hidden;padding:5px;position:absolute;right:-8px;top:4px;width:20px}
|
||||
.right-carts-empty{margin-left:40px;margin-top:20px}
|
32
hyhproject/home/view/default/css/security.css
Executable file
@ -0,0 +1,32 @@
|
||||
@CHARSET "UTF-8"; a{cursor:pointer; }
|
||||
.wst-sec-info{padding:20px 0px 20px 30px; background: #fed1b0; }
|
||||
.wst-sec-infor{float: left; margin-left:20px; }
|
||||
.wst-sec-na{font-size:20px; color:#f06f69; line-height:20px; }
|
||||
.wst-sec-grade img{width: 20px; margin-top:1px; margin-left:20px; }
|
||||
.wst-sec-grade span{margin-left:8px; line-height:20px; font-family:"microsoft yahei"; }
|
||||
.wst-sec-infoi{float: left; width: 100%; color:#3c3228; font-family:"microsoft yahei"; }
|
||||
.wst-sec-infoin{color:#0cd8d5; }
|
||||
.wst-sec-s{padding:30px 20px; font-family:"microsoft yahei"; }
|
||||
.wst-sec-lists{float: left; width: 100%; min-height: 60px; line-height:60px; }
|
||||
.wst-sec-green{color:#11cc71; }
|
||||
.wst-sec-ash{color:#f1730f; }
|
||||
.wst-sec-green img,.wst-sec-ash img{float: left; margin-top:24px; margin-right:3px; }
|
||||
.wst-sec-w{color:#363636; font-size:17px; }
|
||||
.wst-sec-strip{width: 300px; height: 20px; background: #d7cece; }
|
||||
.wst-sec-strip2{width: 100px; height: 20px; background: #53e053; } /**/ .wst-sec-head2{margin-top:20px; padding: 28px; height: 30px; }
|
||||
.wst-sec-min{width: 30%; text-align: center; height:26px; line-height:26px; background: #e0e0e0; color:#282828; font-size:15px; font-family:"microsoft yahei"; }
|
||||
.wst-sec-mi{width: 13px; }
|
||||
.wst-sec-min1{width: 0; height: 0; border-top: 13px solid transparent; border-left: 13px solid #e0e0e0; border-bottom: 13px solid transparent; }
|
||||
.wst-sec-min2{width: 0; height: 0; border-top: 13px solid #e0e0e0; border-left: 13px solid transparent; }
|
||||
.wst-sec-min3{width: 0; height: 0; border-bottom: 13px solid #e0e0e0; border-left: 13px solid transparent; }
|
||||
.wst-sec-gr{color:#ffffff; background: #45d862; }
|
||||
.wst-sec-gr1{border-left: 13px solid #45d862; }
|
||||
.wst-sec-gr2{border-top: 13px solid #45d862; }
|
||||
.wst-sec-gr3{border-bottom: 13px solid #45d862; } /*密码*/ .wst-form{float: left; margin-top:20px; margin-left:20px; } /*邮箱*/ .wst-sec-img{float: left; margin-top:3px; }
|
||||
.wst-sec-prompt{margin-top:36px; margin-left:30px; }
|
||||
.wst-sec-p1{margin-top:20px; font-size:15px; }
|
||||
.wst-sec-p2{margin-top:20px; }
|
||||
.wst-sec-su{margin: 0 auto; width: 260px; height: 120px; }
|
||||
.wst-sec-sut,.wst-sec-sub{float: left; width: 100%; text-align:center; }
|
||||
.wst-sec-sut{margin-top:60px; }
|
||||
.wst-sec-sub{color: #11cd6e; font-size:18px; font-family:"microsoft yahei"; margin-top:6px; } /*手机*/ .wst-sec-obtain{width:130px; background:#f0efef; border-radius: 3px; border: 1px solid #d3c8c7; padding:8px 0px; cursor:pointer; color: #110f0f; }
|
184
hyhproject/home/view/default/css/self_shop.css
Executable file
@ -0,0 +1,184 @@
|
||||
.wst-shop-h{padding:10px 0}
|
||||
.wst-shop-img{float:left;margin-top:3px;width:90px;height:90px;text-align:center;vertical-align:middle;display:block;position:relative}
|
||||
.wst-shop-img img{max-width:90px;max-height:90px;border-radius:5px}
|
||||
.wst-shop-info{float:left;width:45%;margin-left:10px}
|
||||
.wst-shop-info p{float:left;line-height:50px;width:100%;color:#222;font-size:17px;font-family:"microsoft yahei"}
|
||||
.wst-shop-info2,.wst-shop-info3{float:left;width:100%}
|
||||
.wst-shop-info2 img{float:left;width:16px;margin-right:3px}
|
||||
.wst-shop-info2 span{float:left;color:#dda315;margin-right:10px}
|
||||
.wst-shop-info3{margin-top:7px}
|
||||
.wst-shop-code{float:left;margin-top:-3px;width:24px;height:24px;cursor:pointer;background:url(../img/img_sjck.png) no-repeat;background-size:100%}
|
||||
.wst-shop-codes{width:131px;height:131px;margin-top:24px;border:1px solid #dedbdb;position:absolute;z-index:1000;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,0.3);border-radius:5px}
|
||||
.wst-shop-codes:after{top:-16px;border-color:transparent transparent #fff}
|
||||
.wst-shop-eva,.wst-shop-evaa{float:left;margin-right:16px}
|
||||
.wst-shop-evaa{padding-left:20px}
|
||||
.wst-shop-info3 .j-fav,.wst-shop-info3 .j-fav:hover{background:url(../img/iconfont_guanzhu_sel.png) 1px 2px no-repeat}
|
||||
.wst-shop-info3 .j-fav2{background:url(../img/iconfont_guanzhu_nor.png) 0 -23px no-repeat;transition:background-position .15s ease-in-out 0s}
|
||||
.wst-shop-info3 .j-fav2:hover{background:url(../img/iconfont_guanzhu_nor.png) 0 1px no-repeat;text-decoration:none}
|
||||
.wst-shop-red{color:#e25041}
|
||||
.wst-shop-tu{text-align:center;width:100%;height:110px}
|
||||
@media screen and (max-width:1200px){.wst-shop-tu{min-width:1200px}
|
||||
.s-wst-nav-menus{min-width:1200px}}
|
||||
.homepage{margin-top:6px;padding:0 8px;height:22px;line-height:22px;color:#fff;border:1px solid #fff;font-size:13px!important}
|
||||
.homepage:hover{color:#fc6047;background:#fff;border:1px solid #fc6047}
|
||||
.s-wst-nav-menus{background:#ff6a53;width:100%;margin:0 auto;height:38px}#s-wst-nav-items ul{width:1200px;margin:0 auto}
|
||||
.s-nav-li a{color:#fff;font:400 15px/36px "microsoft yahei";height:36px;padding:0 15px;text-align:center;text-decoration:none}
|
||||
.s-nav-li{float:left;padding:0 16px;height:38;line-height:36px}
|
||||
.s-cat-head>a{color:#fff;font:400 15px/36px "microsoft yahei"}
|
||||
.s-cat-head-hover{background:#df2003}
|
||||
.s-cat-head{display:block;height:38px;padding:0 10px;text-decoration:none;width:190px}
|
||||
.wst-shop-sea{float:right;width:42.999999%;margin-top:20px}
|
||||
.wst-shop-sea input{float:left;outline:0;font-size:15px;height:28px;width:360px;margin-right:3px;padding-left:8px;border:1px solid #fc6047}
|
||||
.wst-shop-sea .search{float:left;width:60px;height:34px;line-height:32px;text-align:center;color:#fff;margin-left:6px;background:url(../img/img_bg_search.png) no-repeat}
|
||||
.wst-shop-word{float:left;margin-top:8px;width:100%;height:18px;overflow:hidden}
|
||||
.s-cat-head em{margin-top:10px;margin-right:-10px;display:block;width:16px;height:16px;float:left;background:url(../img/icon_class_zydp.png) no-repeat}
|
||||
.shop-ct1-ct2{width:200px;height:15px;overflow:hidden;padding:5px 0;border-bottom:1px solid #e7e7e7}
|
||||
.ct1-hover{background:#ff6a53;color:#fff}
|
||||
.ct1-hover h3 a{color:white}
|
||||
.ct1-hover .shop-ct1-ct2{border-bottom:0}
|
||||
.ct1-hover .shop-ct1-ct2 a{color:white}
|
||||
.shop-cat2{display:none}
|
||||
.shop-cat1 h3{float:left;margin-left:3px;margin-top:2px}
|
||||
.shop-cat1-title{width:220px;height:26px;margin-top:15px}
|
||||
.shop-cat1{position:relative}
|
||||
.shop-cat1{width:190px;height:66.3px;float:left;padding:0 10px}
|
||||
.em1,.em2,.em3,.em4,.em5,.em6{float:left;display:block;width:18px;height:18px;background:url(../img/sprite@1x.png) no-repeat}
|
||||
.em1{background-position:-38px -106px}
|
||||
.em2{background-position:0 -105px}
|
||||
.em3{background-position:0 -144px}
|
||||
.em4{background-position:-75px -106px}
|
||||
.em5{background-position:-106px -38px}
|
||||
.em6{background-position:-143px -38px}
|
||||
.shop-cat2{width:500px;max-height:400px;float:right;overflow:hidden;position:absolute;left:210px;top:0;z-index:998;background:#f0f0f0;border:2px solid #ff6a53}
|
||||
.shop-cat2 li{float:left;padding:5px 16px;width:84px}
|
||||
.shop-cat2 li a:hover{color:#df2003}
|
||||
.s-cat{z-index:998;display:none;position:absolute;width:210px;height:400px;background:#fff}
|
||||
.history-box{width:1200px;height:360px;margin:0 auto;margin-top:20px}
|
||||
.history-title{width:100%;background:#ddd;height:30px;margin-bottom:10px}
|
||||
.history-title p{float:left;line-height:30px;text-indent:10px}
|
||||
.history-goods-list{width:1200px;height:320px}
|
||||
.history-goods-list .s-goods{width:233px;margin:0 -1px 5px 5px;border:1px solid #e5e5e5;float:left}
|
||||
.history-goods-list .s-goods-h:hover{border:1px solid #df2003;-webkit-box-shadow:0 0 10px #df2003;-moz-box-shadow:0 0 10px #df2003;box-shadow:0 0 10px #df2003}
|
||||
.history-goods-list .s-goods .img{width:233px;margin:0 auto;text-align:center;vertical-align:middle;display:block;position:relative;display:table-cell;padding:4px}
|
||||
.history-goods-list .s-goods .img a{display:table-cell;vertical-align:middle;width:233px;height:233px}
|
||||
.history-goods-list .s-goods .img a img{max-width:210px;max-height:210px}
|
||||
.history-goods-list .s-goods .p-price{padding:5px 0 5px 10px;font-weight:bold;color:#df2003;width:115px;float:left}
|
||||
.history-goods-list .s-goods .p-hsale{padding:5px 10px 5px 0;width:95px;float:right;text-align:right}
|
||||
.history-goods-list .s-goods .p-market{padding:5px 0 5px 10px;font-weight:bold;color:gray;width:95px;float:left}
|
||||
.history-goods-list .s-goods .p-appraise{padding:5px 10px 5px 0;width:95px;float:right;text-align:right}
|
||||
.history-goods-list .s-goods .p-hsale span{font-weight:bold;color:#df2003}
|
||||
.history-goods-list .s-goods .p-market span{font-weight:bold;color:gray}
|
||||
.shop_rec_out{width: 100%; margin: 0 auto; }
|
||||
.s-buy-new-best-hot{width:100%;height:335px;margin-top:30px}
|
||||
.s-rec{width: 1200px; margin: 0 auto; overflow: hidden; background-image: url(../img/self_shop_rec_bg.png); background-repeat: no-repeat; padding-left: 45px; background-position: 0 13px; }
|
||||
.s-rec li{height: 35px; line-height: 35px; float: left; border-bottom: 1px solid #ff6a53; }
|
||||
.s-rec li a{display: block; font-size:21px; font-weight: bold; color: #333; float:left; text-align:center }
|
||||
.j-s-rec-selected a{color:#df2003!important;}
|
||||
.s-rec-glistbox{width: 100%; background:-webkit-linear-gradient(right,#ffe9dc, #ffb3ab 40%, #ffe9dc); background:-o-linear-gradient(right,#ffe9dc, #ffb3ab 40%, #ffe9dc); background:linear-gradient(to left,#ffe9dc, #ffb3ab 40%, #ffe9dc); }
|
||||
.s-rec-goods-list{width: 1200px; overflow: hidden; margin: 0 auto; height: 250px; padding: 10px 0; box-sizing: border-box; }
|
||||
.s-rec-goods-list li{background-color: #fff; float: left; margin-left: 10px; width: 290px; height: 100%; box-sizing: border-box; position: relative; }
|
||||
.s-rec-goods-list li:hover .rec_ginfo{opacity: 1; visibility: visible; }
|
||||
.rec_ginfo{transition:all ease .4s; visibility: hidden; opacity: 0; width: 100%; height: 100%; box-sizing: border-box; position: absolute; z-index: 55; top: 0; background-color: rgba(0,0,0,0.5); }
|
||||
.s-rec-goods-list li a{display:block; width:100%; height:100%; box-sizing: border-box; position: relative; }
|
||||
.s1-rec-goods-list li:hover{border:1px solid #ff6a53;-webkit-box-shadow:0 0 10px #ff6a53;-moz-box-shadow:0 0 10px #ff6a53;box-shadow:0 0 10px #ff6a53}
|
||||
.s-rec-goods-list img{position: absolute; left: 0; top: 0; right: 0; bottom: 0; margin: auto; max-width: 100%; max-height: 100%; }
|
||||
.s-rec-goods-price{margin-top:5px;text-align: center;}
|
||||
.s-rec-goods-price>span{font-weight:bold;font-size:21px;color:#df2003}
|
||||
.s-rec-goods-bottom{width:100%;overflow:hidden;box-sizing: border-box;padding: 0 60px;}
|
||||
.s-rec-goods-bottom>a{line-height:20px; display:block; border:1px solid #fff; margin-top: 20px; width:80px; height:20px; text-align:center; color:#fff; border-radius:2px; }
|
||||
.s-rec-goods-bottom>a:hover{background:#ff6a53;color:white;border:1px solid #ff6a53}
|
||||
.s-rec-goods-desc{width: 100%; height: 41px; line-height: 38px; overflow: hidden; text-align: center; margin-top: 60px; }
|
||||
.s-rec-goods-desc a{color:#fff;font-size: 20px;}
|
||||
.s-floor-box{height:685px;width:100%;margin-top:15px}
|
||||
.s-floor-header{width:1195px;height:36px;background:white}
|
||||
.c1{border-bottom:1px solid #dc4bd1;border-left:5px solid #dc4bd1}
|
||||
.c2{border-bottom:1px solid #8a5063;border-left:5px solid #8a5063}
|
||||
.c3{border-bottom:1px solid #df2003;border-left:5px solid #df2003}
|
||||
.c4{border-bottom:1px solid lightblue;border-left:5px solid lightblue}
|
||||
.c5{border-bottom:1px solid #ff8043;border-left:5px solid #ff8043}
|
||||
.c6{border-bottom:1px solid #24b0ed;border-left:5px solid #24b0ed}
|
||||
.s-floor-header-f1,.s-floor-header-f2,.s-floor-header-f3,.s-floor-header-f4,.s-floor-header-f5,.s-floor-header-f6{float:left;height:100%;width:20%;margin-top:1px}
|
||||
.s-floor-header .tab{float:right}
|
||||
.s-floor-header .tab li{display:block;margin:0;float:left}
|
||||
.s-floor-header .tab a{font-size:15px;display:block;height:15px;letter-spacing:1px}
|
||||
.s-floor-header .tab-item1 a{color:gray;border:1px solid #e6e6e6;border-bottom:#dc4bd1;padding:10px}
|
||||
.s-floor-header .j-tab-selected1 a{background:white;border-left:1px solid #dc4bd1;border-right:1px solid #dc4bd1;border-top:1px solid #dc4bd1;color:#dc4bd1;border-bottom:1px solid white}
|
||||
.s-floor-header .tab-item2 a{color:gray;border:1px solid #e6e6e6;border-bottom:#8a5063;padding:10px}
|
||||
.s-floor-header .j-tab-selected2 a{background:white;border-left:1px solid #8a5063;border-right:1px solid #8a5063;border-top:1px solid #8a5063;color:#8a5063;border-bottom:1px solid white}
|
||||
.s-floor-header .tab-item3 a{color:gray;border:1px solid #e6e6e6;border-bottom:#df2003;padding:10px}
|
||||
.s-floor-header .j-tab-selected3 a{background:white;border-left:1px solid #df2003;border-right:1px solid #df2003;border-top:1px solid #df2003;color:#df2003;border-bottom:1px solid white}
|
||||
.s-floor-header .tab-item4 a{color:gray;border:1px solid #e6e6e6;border-bottom:#df2003;padding:10px}
|
||||
.s-floor-header .j-tab-selected4 a{background:white;border-left:1px solid lightblue;border-right:1px solid lightblue;border-top:1px solid lightblue;color:lightblue;border-bottom:1px solid white}
|
||||
.s-floor-header .tab-item5 a{color:gray;border:1px solid #e6e6e6;border-bottom:#df2003;padding:10px}
|
||||
.s-floor-header .j-tab-selected5 a{background:white;border-left:1px solid #df2003;border-right:1px solid #df2003;border-top:1px solid #df2003;color:#df2003;border-bottom:1px solid white}
|
||||
.s-floor-header .tab-item6 a{color:gray;border:1px solid #e6e6e6;border-bottom:#24b0ed;padding:10px}
|
||||
.s-floor-header .j-tab-selected6 a{background:white;border-left:1px solid #24b0ed;border-right:1px solid #24b0ed;border-top:1px solid #24b0ed;color:#24b0ed;border-bottom:1px solid white}
|
||||
.s-floor-right-title a{line-height:36px;font-size:16px;font-weight:bold;letter-spacing:2px}
|
||||
.s-floor-right-title{height:36px;margin-right:70px;margin-left:5px}
|
||||
.more{font-weight:bold}
|
||||
.s-goods-list{width:1200px;border-left:1px solid #e5e5e5;height:634px}
|
||||
.s-goods-list .s-goods{width:237px;height:316px;border-bottom:1px solid #e5e5e5;border-right:1px solid #e5e5e5;float:left}
|
||||
.s-goods-list .s-goods-f1:hover{width:236px;height:316px;border-bottom:1px solid #dc4bd1;border-right:1px solid #dc4bd1;border-left:1px solid #dc4bd1;-webkit-box-shadow:0 0 10px #dc4bd1;-moz-box-shadow:0 0 10px #dc4bd1;box-shadow:0 0 10px #dc4bd1}
|
||||
.s-goods-list .s-goods-f2:hover{width:236px;height:315px;border-bottom:1px solid #8a5063;border-right:1px solid #8a5063;border-left:1px solid #8a5063;-webkit-box-shadow:0 0 10px #8a5063;-moz-box-shadow:0 0 10px #8a5063;box-shadow:0 0 10px #8a5063}
|
||||
.s-goods-list .s-goods-f3:hover{width:236px;height:315px;border-bottom:1px solid #df2003;border-right:1px solid #df2003;border-left:1px solid #df2003;-webkit-box-shadow:0 0 10px #df2003;-moz-box-shadow:0 0 10px #df2003;box-shadow:0 0 10px #df2003}
|
||||
.s-goods-list .s-goods-f4:hover{width:236px;height:315px;border-bottom:1px solid lightblue;border-right:1px solid lightblue;border-left:1px solid lightblue;-webkit-box-shadow:0 0 10px lightblue;-moz-box-shadow:0 0 10px lightblue;box-shadow:0 0 10px lightblue}
|
||||
.s-goods-list .s-goods-f5:hover{width:236px;height:315px;border-bottom:1px solid #ff8043;border-right:1px solid #ff8043;border-left:1px solid #ff8043;-webkit-box-shadow:0 0 10px #ff8043;-moz-box-shadow:0 0 10px #ff8043;box-shadow:0 0 10px #ff8043}
|
||||
.s-goods-list .s-goods .img{width:232px;margin:0 auto;text-align:center;vertical-align:middle;display:block;position:relative;display:table-cell;padding:4px}
|
||||
.s-goods-list .s-goods .img a{display:table-cell;vertical-align:middle;width:232px;height:232px}
|
||||
.s-goods-list .s-goods .img a img{max-width:210px;max-height:210px}
|
||||
.img{position:relative}
|
||||
.img span{width:236px;height:30px;line-height:30px;color:#fff;opacity:.6;background:#d0260c;display:block;position:absolute;left:0;bottom:0;display:none}
|
||||
.img span:hover{cursor:pointer;background:#e5280b}
|
||||
.s-goods-list .s-goods .p-price{padding:5px 0 5px 10px;font-weight:bold;color:#df2003;width:115px;float:left}
|
||||
.s-goods-list .s-goods .p-hsale{padding:5px 10px 5px 0;width:90px;float:right;text-align:right}
|
||||
.s-goods-list .s-goods .p-market{padding:5px 0 5px 10px;font-weight:bold;color:gray;width:95px;float:left}
|
||||
.s-goods-list .s-goods .p-appraise{padding:5px 10px 5px 0;width:95px;float:right;text-align:right}
|
||||
.s-goods-list .s-goods .p-hsale span{font-weight:bold;color:#df2003}
|
||||
.s-goods-list .s-goods .p-market span{font-weight:bold;color:gray}
|
||||
.p-name{margin-left:10px;width:210px}
|
||||
.more{height:35px}
|
||||
.more a{line-height:35px;text-align:center;background:#fff;margin-left:10px}
|
||||
.s-banner{width:100%;height:500px;margin:0 auto}
|
||||
#s-wst-slide .s-wst-slide-items li{height:500px;overflow:hidden}
|
||||
.wst-shop-info2 img.wangwang{padding-top:1px;width:65px;height:22px}
|
||||
.wst-shop-share{float:right;position:relative;top:-6px}
|
||||
.notice{display:flex;align-items:center}
|
||||
.notice_img{vertical-align:text-top;width:15px;height:15px}
|
||||
.f15{font-size:15px}
|
||||
.pdl10{padding-left:10px}
|
||||
|
||||
.self_container_out{width: 100%; box-sizing:border-box;padding-top: 10px; }
|
||||
.sf_headerbox{width: 1200px; margin-bottom: 10px; margin: 0 auto; }
|
||||
.sfhl{float: left; height: 100%; background-image: url(./../img/self_shop_f1_bg.png); padding-left: 31px; background-repeat: no-repeat; padding-top: 18px; background-size: contain; background-position: 0px 4px; position: relative; }
|
||||
/* 楼层标题背景图 */
|
||||
.f1_tit_bg{background-image: url(./../img/self_shop_f1_bg.png)}
|
||||
.f2_tit_bg{background-image: url(./../img/self_shop_f2_bg.png)}
|
||||
.f3_tit_bg{background-image: url(./../img/self_shop_f3_bg.png)}
|
||||
.f4_tit_bg{background-image: url(./../img/self_shop_f4_bg.png)}
|
||||
.f5_tit_bg{background-image: url(./../img/self_shop_f5_bg.png)}
|
||||
.f6_tit_bg{background-image: url(./../img/self_shop_f6_bg.png)}
|
||||
.sfh_tit{font-size: 18px; color: #df2003; text-align: left; position: relative; top: -6px; left: 1px; }
|
||||
.sfhr{float: right; height: 100%; line-height: 1.5; margin-top: 22px; }
|
||||
.c18_333{font-size: 14px; color: #333; }
|
||||
.separatory{padding: 0 10px; }
|
||||
.sf_adsbox{width: 1200px; height: 320px; box-sizing:border-box; margin: 0 auto; margin-top: 10px; }
|
||||
.sf_adsbox img{width: 100%;height: 100%;}
|
||||
.sf_glistbox{width: 100%;}
|
||||
/* 楼层商品背景色 */
|
||||
.f1_g_bg{background-color: #fff;}
|
||||
.f2_g_bg{background:-webkit-linear-gradient(right, rgba(222,243,213,0.3) 8%, #def3d5 40%, rgba(222,243,213,0.3) 87%); background:-o-linear-gradient(right, rgba(222,243,213,0.3) 8%, #def3d5 40%, rgba(222,243,213,0.3) 87%); background:linear-gradient(right, rgba(222,243,213,0.3) 8%, #def3d5 40%, rgba(222,243,213,0.3) 87%); }
|
||||
.f3_g_bg{background-color: #fff;}
|
||||
.f4_g_bg{background:-webkit-linear-gradient(right, #f8feff 8%, #eefdff 40%, #f8feff 87%); background:-o-linear-gradient(right, #f8feff 8%, #eefdff 40%, #f8feff 87%); background:linear-gradient(right, #f8feff 8%, #eefdff 40%, #f8feff 87%); }
|
||||
.f5_g_bg{background-color: #fff;}
|
||||
.f6_g_bg{background:-webkit-linear-gradient(right, #f0f4ff 8%, #dae3ff 40%, #f8feff 87%); background:-o-linear-gradient(right, #f0f4ff 8%, #dae3ff 40%, #f8feff 87%); background:linear-gradient(to left, #f0f4ff 8%, #dae3ff 40%, #f8feff 87%); }
|
||||
.sf_glist{width: 1200px;box-sizing:border-box; margin: 0 auto; padding: 0 19px; }
|
||||
.sf_glist li:nth-child(n+6){margin-top:0; }
|
||||
.sf_glist li:nth-child(5n){background-color: #fff; margin-right:0; }
|
||||
.sf_glist li:hover a{background-color: #eee;}
|
||||
.sf_glist li:hover{background-color: #eee;}
|
||||
.sf_glist li{margin-top: 15px; margin-bottom: 15px; background-color: #fff; float: left; width: 200px; height: 300px; margin-right: 15px; padding: 0 10px; border-radius: 8px; transition:all ease .4s; }
|
||||
.sf_glist li a{transition:all ease .4s; display: block; width: 100%; height: 100%; background-color: #fff; box-sizing: border-box; padding-top: 20px; }
|
||||
.sf_img img{position: absolute; left: 0; right: 0; top: 0; bottom: 0; margin: auto; max-width: 100%; max-height: 100%; }
|
||||
.sf_img{position: relative; width: 100%; height: 200px; }
|
||||
.sf_gname{margin: 10px auto; font-size: 14px; color: #333; width: 100%; overflow: hidden; word-break:break-all; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; min-height: 35px; }
|
||||
.sf_price{font-size: 14px; color: #df2003; }
|
454
hyhproject/home/view/default/css/shop.css
Executable file
@ -0,0 +1,454 @@
|
||||
@CHARSET "UTF-8";
|
||||
body {margin: 0px auto;background: #F5F5F5}
|
||||
select{box-shadow: 2px 2px 2px #f0f0f0 inset;font-family: inherit;font-size: 100%;padding: 2px;vertical-align: middle;}
|
||||
.wst-wrap {margin: 0px auto}
|
||||
.wst-header {}
|
||||
.wst-main {margin: auto;width: 1200px;min-height: 600px;height: auto;padding-top: 15px;}
|
||||
.wst-menu {background: #FFFFFF;width: 198px;float: left;margin-right: 15px;filter: progid : DXImageTransform.Microsoft.Shadow ( color = #909090,direction = 120, strength = 4 );-moz-box-shadow: 2px 2px 10px #909090;-webkit-box-shadow: 2px 2px 10px #909090;box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);}
|
||||
.wst-content {background: #FFFFFF;min-height: 948px;height: auto;width: 990px;float: right;filter: progid : DXImageTransform.Microsoft.Shadow ( color = #909090,direction = 120, strength = 4 );-moz-box-shadow: 2px 2px 10px #909090;-webkit-box-shadow: 2px 2px 10px #909090;box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);}
|
||||
.wst-footer {border-top: 1px solid #ddd;margin-top: 5px;}
|
||||
.wst-menu-title {position: relative;width: 143px;display: block;padding: 10px 5px 10px 50px;font-weight: bolder;border-top: 1px solid #ccc;color: #000000;font-size: 16px;font-family:"microsoft yahei";background:#e9e9e9;cursor:pointer;}
|
||||
.wst-menu-title img{padding: 0px 0px 3px 6px;}
|
||||
.wst-menu {width: 198px;margin: 0px;padding: 0px;min-height: 948px;}
|
||||
.wst-menu li {list-style-type: none;padding: 0px 0px 0px 50px;height: 35px;line-height: 35px;color: #6a6868;cursor: pointer}
|
||||
.wst-menu li:hover,li.wst-menua{font-weight: bolder;color: #e23e3d;border-left: 2px solid #e23e3d;}
|
||||
.wst-menu .selected {background-color: #e23e3d;font-weight: bolder;color: #ffffff;}
|
||||
.wst-menu .liselect {background-color: #e23e3d;font-weight: bolder;color: #ffffff;}
|
||||
.wst-list {width: 100%;border-collapse: collapse;}
|
||||
.wst-list thead tr{line-height: 2;}
|
||||
.wst-list thead tr th {height: 35px;border-bottom: 1px solid #ccc;text-align: left;padding-left:5px;background: #eeeeee;}
|
||||
.wst-list tbody tr td {line-height: 35px;text-align: left;padding-left:5px;word-wrap: break-word;word-break:break-all;}
|
||||
.wst-colour{background: #e6e6e6;}
|
||||
.wst-form {border-collapse: collapse;width:99%;}
|
||||
.wst-form tr {height: 30px;line-height: 30px;}
|
||||
.wst-form tr th {color: #707070;text-align: right}
|
||||
.wst-form tr td {text-align: left}
|
||||
.wst-form input,textarea {background-color: white;border: 1px solid #ccc;border-radius: 3px;box-shadow: 2px 2px 2px #f0f0f0 inset;font-family: inherit;font-size: 100%;margin: 3px;padding: 2px;vertical-align: middle;outline: none;border:1px solid #bac4c3;}
|
||||
.wst-form input:focus{border-radius:3px;border:1px solid #eb654a;}
|
||||
.wst-form select{box-shadow: 2px 2px 2px #f0f0f0 inset;font-family: inherit;font-size: 100%;padding: 2px;vertical-align: middle;}
|
||||
.wst-tab-box {width: 100%;height: auto;margin: 0px auto;}
|
||||
.wst-tab-nav {margin: 0;padding: 0;height: 31px;border-bottom:1px solid #f7375c;}
|
||||
.wst-tab-nav li {cursor: pointer;float: left;margin: 0 0px;list-style: none;border: 1px solid #ddd;border-bottom: none;border-left: none;line-height: 30px;text-align: center;background: #eeeeee;color: #000000;padding-left: 10px;padding-right: 10px;}
|
||||
.wst-tab-nav .on {background: none repeat scroll 0 0 #e45050;border-bottom: 0 none;color: #ffffff;font-weight:bold;}
|
||||
.wst-tab-content {padding: 5px;width: 99%;height: auto;border: 1px solid #ddd;background: #FFF;}
|
||||
.wst-gallery-imgs {height: auto}
|
||||
.wst-gallery-img {width: 140px;height: 100px;float: left;overflow: hidden;position:relative;margin: 10px 5px 5px 0px;cursor: pointer;}
|
||||
.wst-gallery-del {background: url('../../../View/default/images/close_botton.png') no-repeat;display: block;height: 20px;position: absolute;width:20px;right: 0px;cursor: pointer;}
|
||||
.wst-gallery-goods-del {background: url('../../../View/default/images/close_botton.png') no-repeat;display: block;height: 20px;position: absolute;width:20px;right: 0px;display:none;cursor: pointer;}
|
||||
.wst-shop-nav {border-bottom:6px solid #e45050;text-align: center;}
|
||||
.wst-nav-box {width: 1200px;margin: 0 auto;line-height: 33px;color: #ffffff;}
|
||||
.wst-nav-box li{width: 156px;text-align: center;color: #e45050;font-size: 18px;font-family:"microsoft yahei";margin-bottom:-1px;}
|
||||
.wst-nav-box li:hover,.wst-nav-box .wst-nav-boxa{color: #ffffff;background:url(../img/seller_img_bgnav.png) 0px 0px no-repeat;}
|
||||
.wst-nav-box .liselect {list-style-type:none;}
|
||||
.wst-appsaler {margin-top: 30px;text-align: center;margin-bottom: 30px;line-height: 30px;}
|
||||
.wst-menu-title span {position: absolute;left: 20px;top: 8px;display: inline-block;width: 20px;height: 20px;background-image: url(../../../View/default/images/icon_leftmenu.png);background-repeat: no-repeat;}
|
||||
.wst-tree-open{background-repeat: no-repeat;display: inline-block;width: 20px;vertical-align:middle;cursor:pointer}
|
||||
.wst-tree-close{display: inline-block;width: 20px;vertical-align:middle;cursor:pointer}
|
||||
.wst-tree-second{display: inline-block;width: 20px;margin-left:10px;vertical-align:middle;cursor:pointer}
|
||||
.wst-fre-hov:hover{background: #fae9ec;}
|
||||
.wst-state_yes{display:block;width:13px;}
|
||||
.wst-state_no{display:block;width:13px;}
|
||||
.wst-page-items{text-align: left;color: #ccc;}
|
||||
.wst-page-items a{display: inline-block;color: #000000;display: inline-block;height: 25px;line-height: 25px;padding: 0 10px;border: 1px solid #D5D5D5;margin: 0 2px;border-radius: 4px;vertical-align: middle;}
|
||||
.wst-page-items a:hover{text-decoration: none;color: #e23e3d;font-weight:bolder;border: 1px solid #D5D5D5;}
|
||||
.wst-page-items span.current{display: inline-block;height: 25px;line-height: 25px;padding: 0 10px;margin: 0 2px;color: #e23e3d;font-weight:bolder;border: 1px solid #D5D5D5;border-radius: 4px;vertical-align: middle;}
|
||||
.wst-page-items span.disabled{display: inline-block;height: 25px;line-height: 25px;padding: 0 10px;margin: 0 2px;color: #bfbfbf;background: #f2f2f2;border: 1px solid #bfbfbf;border-radius: 4px;vertical-align: middle;}
|
||||
.wst-shophome-img{height:120px;height:120px;text-align:center;}
|
||||
.wst-shophome-area{min-height:400px;border-top:1px solid #cccccc;}
|
||||
.wst-shophome-nav{width:780px;float:left;min-height:400px;}
|
||||
.wst-shophome-nav .header{height:36px;background-color:#f5f5f5;line-height:36px;padding-left:10px;font-weight:bolder;}
|
||||
.wst-shophome-nav .main{height:66px;background-color:#feffd4;line-height:30px;padding-left:10px;margin:10px;}
|
||||
.wst-shophome-nav .current{padding-left:20px;padding-bottom:10px;color:#000000;}
|
||||
.wst-goods-price-table{width:100%;border:0px;border-collapse: collapse;}
|
||||
.wst-goods-price-table tr th{border:0px;text-align:left;background:#eee;padding-left:5px}
|
||||
.wst-goods-fieldset{border:2px double #ddd;padding:5px;display:none;}
|
||||
.wst-goods-fieldset legend{margin-left:10px;}
|
||||
.wst-complain-detail{width:100%;border-collapse: collapse;}
|
||||
.wst-complain-detail tr{height: 25px;line-height: 25px;}
|
||||
.wst-complain-detail tr th{color: #707070;text-align: right;font-size:12px;}
|
||||
.wst-complain-detail tr td {text-align: left;color: #707070;}
|
||||
.wst-complain-detail .head{font-weight:bold;border-bottom:1px dotted #ddd;}
|
||||
.wst-complain-left{width:250px;height:100%;border:1px solid #ddd;text-align:left;background:#ffffff;float:left;}
|
||||
.wst-complain-order-head{width:240px;height:25px;line-height:25px;border-bottom:1px solid #ddd;font-weight:bold;padding:5px;background:#f5f5f5;}
|
||||
.wst-complain-order-goods{width:240px;height:180px;line-height:30px;padding:5px;border-bottom:1px solid #ddd;overflow-y:auto}
|
||||
.wst-complain-main{float:right;width:718px;overflow:hidden;border:1px solid #ddd;margin-right:16px;}
|
||||
.wst-complain-order-info{padding:5px;display: block;height:100%;}
|
||||
.wst-complain-order-info dt {float: left;width: 70px;color: #999;padding: 1px 0;display: block;height:20px;}
|
||||
.wst-complain-order-info dd{overflow: hidden;color: #666;padding: 1px 0;width:170px;display: block;height:20px;}
|
||||
.wst-complain-box{border-bottom:1px solid #ddd;width:718px;padding:5px;}
|
||||
.wst-complain-footer{clear:both;width:100%;text-align:center;padding:5px 0;}
|
||||
/*头部*/
|
||||
.wst-lite-bac{background:#ffffff;}
|
||||
.wst-lite-tit{float:left;width: 100px;margin:16px 0px 0px 10px;}
|
||||
.wst-lite-tit span{float:left;color: #e45050;font-size: 19px;margin-left:10px;font-family:"microsoft yahei";}
|
||||
a.wst-lite-in{float:left;margin-top:6px;padding:3px 8px;color: #e45050;border:1px solid #e45050;}
|
||||
a.wst-lite-in:hover{color: #ffffff;border:1px solid #ffffff;background:#e45050;}
|
||||
.wst-lite-sea{float:right;background:#ffffff;margin-top:20px;}
|
||||
.wst-lite-sea .search{border:2px solid #e23c3d;height: 35px;position: relative;}
|
||||
.wst-lite-sea .search .j-search-type{width:78px;top:0;line-height:36px;position: absolute;padding:0;border-right:2px solid #e23c3d;border-left:2px solid #e23c3d;cursor: pointer;left:-2px;text-align:center;}
|
||||
.wst-lite-sea .search .j-type-list{width:70px;top:35px;line-height:36px;position: absolute;padding:0 4px;border:2px solid #e23c3d;cursor: pointer;background-color: #fff;left:-2px;z-index: 100;border-top:0;display: none;text-align: center;}
|
||||
.wst-lite-sea .search .j-search-type i {top: 15px;right: 6px;height: 7px;width: 0px;overflow: hidden;font-style: normal;color: #6A6A6A;display: block;position: absolute;}
|
||||
.wst-lite-sea .search .j-search-type s{ position: relative;top: -17px;text-decoration: none;}.wst-lite-sea .search .j-type-list div:hover{color: #e23c3d}
|
||||
.wst-lite-sea .search .search-ipt{border: 2px solid #e23c3d;color: #565656;float: left;font-family: Microsoft Yahei;font-size: 14px;line-height: 30px;overflow: hidden;padding: 0;width: 330px;height:30px;border:36px;outline:none;padding-left: 84px;box-shadow: none;}
|
||||
.wst-lite-sea .search .search-btn{cursor: pointer;font-size: 15px;font-weight: bolder;height: 35px;line-height: 36px;position: absolute;right: 0;text-align: center;top: 0;width: 52px;background:url(../img/btn_search_red.png) 22px 6px no-repeat;}
|
||||
/*首页*/
|
||||
.wst-shop-name{margin-top:28px;margin-left:138px;}
|
||||
.wst-shop-name a{color: #fe6047;font-size: 18px;font-family: "microsoft yahei";}
|
||||
.wst-shop-info{padding:0px 0px 0px 10px;}
|
||||
.wst-shop-img{float:left;margin-top:-32px;width:120px;height:120px;text-align:center;vertical-align:middle;display:block;position:relative;}
|
||||
.wst-shop-img a{width:120px;height:120px;display:table-cell;vertical-align:middle;}
|
||||
.wst-shop-img img{max-width:120px;max-height:120px;}
|
||||
.wst-shop-na{float:left;margin-left:6px;width:20%;}
|
||||
.wst-shop-na a{color: #fe6047;font-size: 18px;font-family: "microsoft yahei";}
|
||||
.wst-shop-na2{float:left;margin-top:3px;}
|
||||
.wst-shop-na2 img{float:left;width:15px;margin:4px 3px 0px 0px;cursor: pointer;}
|
||||
.wst-shop-na2 span{float:left;line-height: 26px;margin-right:6px;}
|
||||
.wst-shop-na3{float:left;width:100%;color: #010101;line-height:26px;}
|
||||
.wst-shop-eva{float:left;width:15%;margin:0px;border-left:1px dashed #bfbfbf;}
|
||||
.wst-shop-eva p{font-size: 15px;color: #010101;text-align:center;font-family: "microsoft yahei";margin:16px 0px 8px 0px;}
|
||||
.wst-shop-evai{float:left;margin:8px 0px 16px 25px;}
|
||||
.wst-shop-con{float:left;width:21%;margin:0px;border-left:1px dashed #bfbfbf;}
|
||||
.wst-shop-con p{font-size: 15px;font-family: "microsoft yahei";line-height: 30px;margin-left:18px;}
|
||||
.wst-list .wst-fre-th{padding-left: 23px;}
|
||||
.wst-list .wst-fre-td{padding-left: 25px;}
|
||||
/*标题*/
|
||||
.wst-shop-head{float: left;width: 100%;border-bottom: 1px solid #e45050;}
|
||||
.wst-shop-head span{float: left;line-height:28px;padding:0px 28px;color:#ffffff;background:#e45050;font-weight: bold;}
|
||||
.wst-shop-head a{float: right;line-height:28px;padding:0px 28px;color:#ffffff;background:#df2003;}
|
||||
.wst-shop-tbar{height: 45px;margin:15px 0 0 0px;clear:both;padding:5px 10px;}
|
||||
.wst-shop-content{padding:12px;clear:both;}
|
||||
/*button按钮*/
|
||||
/*红*/
|
||||
.wst-shop-but{outline: none;background:#E45050;color: #ffffff;border: 1px solid #d8193e;border-radius:3px;cursor:pointer;}
|
||||
.wst-shop-but:hover{background: #ea3232 none repeat scroll 0 0;cursor:pointer;}
|
||||
/*button按钮*/
|
||||
.s-btn{height: 30px;line-height: 30px;margin-right: 10px;margin-top: 16px;padding: 7px 20px;color: #ffffff;background: #E45050;border-radius: 3px;cursor:pointer;}
|
||||
.s-btn:hover{cursor:pointer;}
|
||||
.s-btn2{height: 30px;line-height: 30px;margin-right: 10px;margin-top: 16px;padding: 7px 20px;background: #ebebeb;border:1px solid #dad7d7;border-radius: 3px;cursor:pointer;}
|
||||
.s-btn:hover{cursor:pointer;}
|
||||
.wst-shop-split{border-bottom:1px dotted #ccc;margin-top:10px;margin-bottom:10px;}
|
||||
.wst-shop-jrdt{height:120px;}
|
||||
.wst-shop-jrdt .wst-title{background:url("../img/img_majz_titlebg.png");background-size:100%;width:980px;height:40px;line-height: 40px;padding-left: 10px;font-weight: bold;}
|
||||
.wst-shop-jrdt .item{width:170px;height: 58px; overflow:hidden;border:1px solid #ccc;margin-left: 20px;float:left;}
|
||||
.wst-shop-jrdt .item .icon1{background:url("../img/icon-mjzxsy.png") no-repeat -45px -31px;height:58px;width:47px;float:left;}
|
||||
.wst-shop-jrdt .item .icon2{background:url("../img/icon-mjzxsy.png") no-repeat -170px -31px;height:58px;width:47px;float:left;}
|
||||
.wst-shop-jrdt .item .icon3{background:url("../img/icon-mjzxsy.png") no-repeat -296px -31px;height:58px;width:47px;float:left;}
|
||||
.wst-shop-jrdt .item .icon4{background:url("../img/icon-mjzxsy.png") no-repeat -422px -31px;height:58px;width:47px;float:left;}
|
||||
.wst-shop-jrdt .item .icon5{background:url("../img/icon-mjzxsy.png") no-repeat -550px -31px;height:58px;width:47px;float:left;}
|
||||
.wst-shop-jrdt .item .title{float:left;text-align: center;height:58px;width:120px;padding-top:5px}
|
||||
.wst-shop-jrdt .item .num{color:red}
|
||||
.wst-shop-spxx{height:300px;margin-top: 25px;}
|
||||
.wst-shop-spxx .wst-title{background:url("../img/img_majz_titlebg.png") no-repeat 0px -68px;background-size:100%;width:980px;height:40px;line-height: 40px;padding-left: 10px;font-weight: bold;}
|
||||
.wst-shop-spxx .item{width:170px;height: 100px; overflow:hidden;border:1px solid #ccc;margin-left: 20px;float:left;margin-bottom: 10px;}
|
||||
.wst-shop-spxx .item .rbox{height:60px;position:relative;}
|
||||
.wst-shop-spxx .item .icon1{background:url("../img/icon-mjzxsy.png") no-repeat -38px -128px;position:absolute; left:55px;height:60px;width:60px;}
|
||||
.wst-shop-spxx .item .icon2{background:url("../img/icon-mjzxsy.png") no-repeat -155px -128px;position:absolute; left:55px;height:60px;width:60px;}
|
||||
.wst-shop-spxx .item .icon3{background:url("../img/icon-mjzxsy.png") no-repeat -274px -128px;position:absolute; left:55px;height:60px;width:60px;}
|
||||
.wst-shop-spxx .item .icon4{background:url("../img/icon-mjzxsy.png") no-repeat -391px -128px;position:absolute; left:55px;height:60px;width:60px;}
|
||||
.wst-shop-spxx .item .icon5{background:url("../img/icon-mjzxsy.png") no-repeat -507px -128px;position:absolute; left:55px;height:60px;width:60px;}
|
||||
.wst-shop-spxx .item .icon6{background:url("../img/icon-mjzxsy.png") no-repeat -38px -232px;position:absolute; left:55px;height:60px;width:60px;}
|
||||
.wst-shop-spxx .item .title{text-align: center;height:58px;padding-top:5px}
|
||||
.wst-shop-spxx .item .num{color:red}
|
||||
.wst-shop-ddxx{height:280px;}
|
||||
.wst-shop-ddxx .wst-title{background:url("../img/img_majz_titlebg.png") no-repeat 0px -135px;background-size:100%;width:980px;height:40px;line-height: 40px;padding-left: 10px;font-weight: bold;}
|
||||
.wst-shop-ddxx .item{width:170px;height: 100px; overflow:hidden;border:1px solid #ccc;margin-left: 20px;float:left;margin-bottom: 10px;}
|
||||
.wst-shop-ddxx .item .rbox{height:60px;position:relative;}
|
||||
.wst-shop-ddxx .item .icon1{background:url("../img/icon-mjzxsy.png") no-repeat -38px -320px;position:absolute; left:55px;height:60px;width:60px;}
|
||||
.wst-shop-ddxx .item .icon2{background:url("../img/icon-mjzxsy.png") no-repeat -154px -320px;position:absolute; left:55px;height:60px;width:60px;}
|
||||
.wst-shop-ddxx .item .icon3{background:url("../img/icon-mjzxsy.png") no-repeat -273px -320px;position:absolute; left:55px;height:60px;width:60px;}
|
||||
.wst-shop-ddxx .item .icon4{background:url("../img/icon-mjzxsy.png") no-repeat -391px -320px;position:absolute; left:55px;height:60px;width:60px;}
|
||||
.wst-shop-ddxx .item .icon5{background:url("../img/icon-mjzxsy.png") no-repeat -509px -320px;position:absolute; left:55px;height:60px;width:60px;}
|
||||
.wst-shop-ddxx .item .icon6{background:url("../img/icon-mjzxsy.png") no-repeat -38px -415px;position:absolute; left:55px;height:60px;width:60px;}
|
||||
.wst-shop-ddxx .item .title{text-align: center;height:58px;padding-top:5px}
|
||||
.wst-shop-ddxx .item .num{color:red}
|
||||
/********************************************** 新增商品页面 ****************************************************/
|
||||
/*自定义单选框样式*/
|
||||
.wst-radio + label {-webkit-appearance: none;background-color: #fafafa;border: 1px solid gray;padding: 6px;border-radius: 50px;display: inline-block;position: relative;}
|
||||
.wst-radio + label:after {content: ' ';width: 6px;height: 6px;border-radius: 50px;position: absolute;top: 3px;background: #99a1a7;box-shadow: inset 0px 0px 10px rgba(0,0,0,0.3);text-shadow: 0px;left: 3px;font-size: 32px;}
|
||||
.wst-radio:checked + label{border: 1px solid #ff9a02;/* 修改选框选中颜色*/}
|
||||
.wst-radio:checked + label:after {content: ' ';width: 6px;height: 6px;border-radius: 50px;position: absolute;top: 3px;background: #ff9a02;/* 修改选框选中颜色*/box-shadow: inset 0px 0px 10px #ff9a02;/* 修改选框选中颜色*/text-shadow: 0px;left: 3px;font-size: 32px;}
|
||||
.radio-box .wst-radio{position:relative;z-index:-654;left:16px;top:0px;}
|
||||
.radio-box label{margin-left:-8px;margin-right:2px;}
|
||||
.mt-1{position:relative;top:1px;left:0px;cursor:pointer;}
|
||||
/*自定义复选框样式-行*/
|
||||
.wst-checkbox + label {-webkit-appearance: none;background-color: #fafafa;border: 1px solid gray;padding: 6px;display: inline-block;position: relative;}
|
||||
.wst-checkbox + label:after {content: ' ';width: 6px;height: 6px;position: absolute;top: 3px;background: #99a1a7;box-shadow: inset 0px 0px 10px rgba(0,0,0,0.3);text-shadow: 0px;left: 3px;font-size: 32px;}
|
||||
.wst-checkbox:checked + label{border: 1px solid #ff9a02;/* 修改选框选中颜色*/}
|
||||
.wst-checkbox:checked + label:after {content: ' ';width: 6px;height: 6px;position: absolute;top: 3px;background: #ff9a02;/* 修改选框选中颜色*/box-shadow: inset 0px 0px 10px #ff9a02;/* 修改选框选中颜色*/text-shadow: 0px;left: 3px;font-size: 32px;}
|
||||
.checkbox-box .wst-checkbox{position:relative;z-index:-654;left:16px;top:-1px;}
|
||||
.checkbox-box label{margin-left:-8px;margin-right:2px;}
|
||||
.w-r{width:15px;height:15px;cursor:pointer;margin-left:8px;}
|
||||
.wrong{background:url(../img/seller_icon_error.png) no-repeat;}
|
||||
.right{background:url(../img/seller_icon_right.png) no-repeat;}
|
||||
.g-handle{color:#1cbbef;display: inline-block;margin:0 3px;}
|
||||
.g-handle:hover{color:#085cde;}
|
||||
.spec-item{float:left;}
|
||||
.spec-item .item-del{background:url(../img/icon_no.png);width:13px;height:13px;display:inline-block;position: relative;top:-10px;left:-10px;cursor:pointer;}
|
||||
.spec-ipt{width:80px;}
|
||||
.specs-sale-table{width:100%;border-collapse:collapse;border:1px solid #dddddd;margin-bottom:10px;}
|
||||
.specs-sale-table th{padding-top:5px;text-align:center;background:#eeeeee;text-align:center;border:1px solid #dddddd}
|
||||
.specs-sale-table td{text-align:center;text-align:center;border:1px solid #dddddd}
|
||||
.spec-sale-goodsNo{width:150px}
|
||||
.spec-sale-ipt{width:50px;}
|
||||
.spec-sale-text{width:80%}
|
||||
.attr-table{width:100%}
|
||||
.attr-table th{text-align:right;}
|
||||
.attr-table td{text-align:left;}
|
||||
#goodsImgPicker{margin-left:20px;}
|
||||
.spec-line{border-top:1px dashed #cccccc;margin:5px 0px 7px 0px}
|
||||
.spec-head{font-weight:bold;height:30px;line-height:30px;background:url(../img/img_seller_ggjt.png) no-repeat 0px 7px;padding-left:25px;}
|
||||
.spec-body{border:1px solid #cccccc;padding:5px;margin-bottom:10px;}
|
||||
/************************ 商家商品管理页面 **************************/
|
||||
.goods-img{width:60px; height:60px;text-align:center;vertical-align:middle;display:block;position:relative;float:left;margin:3px auto;line-height: 0px;}
|
||||
.goods-img a{width:60px;height:60px;display:table-cell;vertical-align:middle;}
|
||||
.goods-img a img{max-width:60px;max-height:60px;}
|
||||
.goodsName{height:50px;line-height:25px;overflow: hidden;float: left;max-width: 150px;margin-left: 5px;}
|
||||
.s-menu{height:25px;margin-left: 4px;margin-top:10px;}
|
||||
.s-menu a{display: block;float:left;width:48px;margin-right: 10px;}
|
||||
.s-menu a span{display: block;float: right;}
|
||||
.s-sale,.s-sale-up,.s-new,.s-hot,.s-best,.s-rec,.s-heart,.s-del,.s-add{display: inline-block;width:18px;height:18px;background: url(../img/seller_icon_cz.png) no-repeat;}
|
||||
.s-sale{background-position: -20px -24px;}
|
||||
.s-sale:hover{background-position: -20px -64px;color:#F7375C;margin-top: 1px;}
|
||||
.s-sale-up{background-position: -473px -24px;}
|
||||
.s-sale-up:hover{background-position: -473px -64px;color:#F7375C;margin-top: 1px;}
|
||||
.s-rec{background-position: -83px -24px;}
|
||||
.s-rec:hover{background-position: -83px -64px;color:#F7375C;margin-top: 1px;}
|
||||
.s-new{background-position: -149px -24px;}
|
||||
.s-new:hover{background-position: -149px -64px;color:#F7375C;margin-top: 1px;}
|
||||
.s-best{background-position: -213px -25px;}
|
||||
.s-best:hover{background-position: -213px -65px;color:#F7375C;margin-top: 1px;}
|
||||
.s-hot{background-position: -280px -25px;}
|
||||
.s-hot:hover{background-position: -280px -65px;color:#F7375C;margin-top: 1px;}
|
||||
.s-heart{background-position: -276px -25px;}
|
||||
.s-heart:hover{background-position: -276px -65px;color:#F7375C;margin-top: 1px;}
|
||||
.s-del{background-position: -343px -25px;}
|
||||
.s-del:hover{background-position: -343px -65px;color:#F7375C;margin-top: 1px;}
|
||||
.s-add{background-position: -408px -25px;}
|
||||
.s-add:hover{background-position: -408px -65px;color:#F7375C;margin-top: 1px;}
|
||||
/*评价管理*/
|
||||
.appra-img{width:150px; height:150px;margin:5px auto;text-align:center;vertical-align:middle;display:block;position:relative; float:left;}
|
||||
.appra-img a{display:table-cell;vertical-align:middle;width:150px;height:150px;}
|
||||
.appra-img a img{max-width:150px;max-height:150px;}
|
||||
.appra-goodsName{float: left;height: 150px;line-height: 25px;margin-left: 5px;max-width: 240px;overflow: hidden;}
|
||||
/*自定义复选框-列--方*/
|
||||
.checkbox-box-s{height:20px !important;}
|
||||
.wst-checkbox-s + label {-webkit-appearance: none;background-color: #ffffff;border: 1px solid #d5d5d5;padding: 6px;display: inline-block;position: relative;}
|
||||
.wst-checkbox-s + label:after {content: ' ';width: 6px;height: 6px;position: absolute;top: 3px;box-shadow: inset 0px 0px 10px #ccc;text-shadow: 0px;left: 3px;font-size: 32px;}
|
||||
.wst-checkbox-s:checked + label{border: 1px solid #F7375C;/* 修改选框选中颜色*/}
|
||||
.wst-checkbox-s:checked + label:after {content: ' ';width: 6px;height: 6px;position: absolute;top: 3px;background: #F7375C;/* 修改选框选中颜色*/box-shadow: inset 0px 0px 10px #F7375C;/* 修改选框选中颜色*/text-shadow: 0px;left: 3px;font-size: 32px;}
|
||||
.checkbox-box-s .wst-checkbox-s{position:relative;z-index:-654;left:-5px;top:-1px;}
|
||||
.checkbox-box-s label{position: relative;top:-38px;left: 1px;}
|
||||
.checkbox-box-s-all label{position: relative;top:-27px;left: 1px;}
|
||||
/**订单列表**/
|
||||
.wst-box-top{margin-top:5px;}
|
||||
.wst-order-list{width:100%;border-collapse:separate;border-spacing: 0;border-color:grey;}
|
||||
.wst-order-list .head{max-height:32px;line-height: 32px;text-align: center;background: #f5f5f5;color: #666;font-weight: 400;}
|
||||
.wst-order-list .empty-row{height: 20px;}
|
||||
.wst-order-list .order-head{background: #f5f5f5;height: 31px;line-height: 31px;color: #aaa;overflow: hidden;}
|
||||
.wst-order-list .order-head td{padding-left:5px;padding-right:5px;border:1px solid #e5e5e5;border-bottom:0px;}
|
||||
.wst-order-list .goods-box td:first-child{border-left:1px solid #e5e5e5;}
|
||||
.wst-order-list .goods-box td{padding:5px;border:1px solid #e5e5e5;border-top:0px;border-left:0px;}
|
||||
.wst-order-list .time{float:left;margin-right:30px;}
|
||||
.wst-order-list .orderno{float:left;margin-right:30px;width:300px;text-align:left;}
|
||||
.wst-order-list .address{float:left;width:580px;text-align:left}
|
||||
.wst-order-list .goods-img{width:60px;height:60px;float:left;border:1px solid #efefef;}
|
||||
.wst-order-list .goods-name{float:left;margin-left:5px;line-height:25px;width:475px;}
|
||||
.wst-order-list .goods-extra{float:right;margin-left:5px;}
|
||||
.wst-order-list .j-warn .order-head{background:#fcf8e3;height: 31px;line-height: 31px;color:#8a6d3b;overflow: hidden;}
|
||||
.wst-order-list .j-warn .order-head td{padding-left:5px;padding-right:5px;border:1px solid #faebcc;border-bottom:0px;}
|
||||
.wst-order-list .j-warn .goods-box td:first-child{border-left:1px solid #faebcc;}
|
||||
.wst-order-list .j-warn .goods-box td{padding:5px;border:1px solid #faebcc;border-top:0px;border-left:0px;}
|
||||
.wst-order-list .line{border-bottom:1px solid #ddd;margin-bottom:2px;padding-bottom:2px;}
|
||||
.j-warn-order-money{color:red;font-size:19px;font-weight:bold}
|
||||
.order-pc{float:left;margin:7px 5px 0px 0px;width:18px;height: 18px;background:url(../img/order_source_1.png) 0px 0px no-repeat;background-size: 90%;}
|
||||
.order-mo{float: left;margin: 7px 5px 0px 0px;width: 18px;height: 18px;background: url(../img/order_source_2.png) 0px 0px no-repeat;background-size: 100%;}
|
||||
.order-wx{float:left;margin:7px 5px 0px 0px;width:18px;height: 18px;background:url(../img/order_source_3.png) 0px 0px no-repeat;background-size: 100%;}
|
||||
.order-app{float:left;margin:7px 5px 0px 0px;width:18px;height: 18px;background: url(../img/order_source_4.png) 0px 0px no-repeat;background-size: 100%;}
|
||||
.order-ios{float:left;margin:7px 5px 0px 0px;width:18px;height: 18px;background:url(../img/order_source_5.png) 0px 0px no-repeat;background-size: 100%;}
|
||||
/**订单详情**/
|
||||
.order-box{margin-bottom:5px;border-bottom:1px solid #ddd;}
|
||||
.order-box .box-head{font-weight:bold;height:30px;line-height:30px}
|
||||
/*流程展示*/
|
||||
.order-box .log-box{height:132px;}
|
||||
.order-box .log-box .icon{float:left;width:60px;height:60px;}
|
||||
.order-box .log-box .icons{float:left;width:60px;height:60px;}
|
||||
.order-box .log-box .icon11{background:url(../img/user_icon_rzxx.png) -15px -12px no-repeat;}
|
||||
.order-box .log-box .icon21{background:url(../img/user_icon_rzxx.png) -105px -12px no-repeat;}
|
||||
.order-box .log-box .icon31{background:url(../img/user_icon_rzxx.png) -194px -12px no-repeat;}
|
||||
.order-box .log-box .icon41{background:url(../img/user_icon_rzxx.png) -282px -12px no-repeat;}
|
||||
.order-box .log-box .icon51{background:url(../img/user_icon_rzxx.png) -373px -12px no-repeat;}
|
||||
.order-box .log-box .icon12{background:url(../img/user_icon_rzxx.png) -15px -62px no-repeat;}
|
||||
.order-box .log-box .icon22{background:url(../img/user_icon_rzxx.png) -105px -62px no-repeat;}
|
||||
.order-box .log-box .icon32{background:url(../img/user_icon_rzxx.png) -194px -61px no-repeat;}
|
||||
.order-box .log-box .icon42{background:url(../img/user_icon_rzxx.png) -282px -63px no-repeat;}
|
||||
.order-box .log-box .icon52{background:url(../img/user_icon_rzxx.png) -373px -62px no-repeat;}
|
||||
.order-box .log-box .icon13{background:url(../img/user_icon_rzxx.png) -19px -123px no-repeat;}
|
||||
.order-box .log-box .icon23{background:url(../img/user_icon_rzxx.png) -105px -122px no-repeat;}
|
||||
.order-box .log-box .icon33{background:url(../img/user_icon_rzxx.png) -194px -121px no-repeat;}
|
||||
.order-box .log-box .icon43{background:url(../img/user_icon_rzxx.png) -282px -122px no-repeat;}
|
||||
.order-box .log-box .icon53{background:url(../img/user_icon_rzxx.png) -373px -121px no-repeat;}
|
||||
.order-box .log-box .arrow{float:left;color: #979797;font-size: 15px;font-weight: bold;margin-top:18px;}
|
||||
.order-box .log-box .arrow2{color: #7ebb53;}
|
||||
.order-box .log-box .state{float:left;width:100%;margin-left:18px;}
|
||||
.order-box .log-box .state2{float:left;width:100%;position: relative;}
|
||||
.order-box .log-box .state2 p{float:left;width:180px;height:50px;text-align:left;margin-left:12px;color:#f05858;font-size: 15px;}
|
||||
.order-box .log-box .state2 .path{position: absolute;z-index: 10;}
|
||||
.order-box .log-box .state2 .path span{float:left;width:178px;height:50px;text-align:left;margin-left:12px;background: #ffffff;}
|
||||
.order-box .delivery-box{height:100px;border-bottom:1px solid #ddd;}
|
||||
.order-box th{font-weight:normal;}
|
||||
.order-box .goods-head{border-top:2px solid #FC7A64;background: #f3f3f3;display: block;height: 25px;line-height: 25px;margin: 0 0 10px;padding: 5px 0;}
|
||||
.order-box .goods-head .goods{float:left;width:500px;padding-left:15px}
|
||||
.order-box .goods-head .number{float:left;width:140px;}
|
||||
.order-box .goods-head .price{float:left;width:100px;}
|
||||
.order-box .goods-head .num{float:left;width:100px;}
|
||||
.order-box .goods-head .t-price{float:left;width:105px;}
|
||||
.order-box .shop{padding-left:15px;height:25px;line-height:25px;border-bottom:2px solid #FDD8D2;color:#E55356;font-weight:bold;font-size:15px;padding-bottom:5px;}
|
||||
.order-box .item{padding-top:5px;padding-bottom:5px;border:1px solid #eeeeee;border-top:0px;}
|
||||
.order-box .item .goods{float:left;width:500px;padding-left:15px;}
|
||||
.order-box .item .number{float:left;width:140px;}
|
||||
.order-box .item .goods .img{float:left;width:80px;height:80px;}
|
||||
.order-box .item .goods .name{float:left;width:390px;height:80px;margin-left:5px;}
|
||||
.order-box .item .goods .spec{float:left;width:165px;margin-left:5px;}
|
||||
.order-box .item .price{float:left;width:100px;}
|
||||
.order-box .item .num{float:left;width:100px;}
|
||||
.order-box .item .t-price{float:left;width:100px;}
|
||||
.order-box .goods-footer{padding-right:10px;margin-bottom:10px;}
|
||||
.order-box .line{border-top:1px solid #dddddd;}
|
||||
.order-box .goods-summary{margin-top:10px;}
|
||||
.order-box .summary{height:30px;line-height:30px;}
|
||||
.order-box .orderScore{margin-right:5px;}
|
||||
.order-box .log td{height:25px;line-height:25px;padding-left:15px;}
|
||||
/********** 店铺设置 *********/
|
||||
.cfg-img-url{background: #f48c3a none repeat scroll 0 0;bottom: 0;height: 18px;left: -1px;top:178px;line-height: 18px;padding: 0 5px;position: absolute;z-index: 170;}
|
||||
/************* 商家回复 *************/
|
||||
.reply-content{line-height:15px;width:100%;margin-top:-15px;border-top:1px solid #ccc;padding-top:15px;color:orange;}
|
||||
.reply-box{width:100%;max-height:140px;position:relative;margin-bottom:5px;margin-top:15px;}
|
||||
.wst-msg-tips-box{background-color: #f0a869;border-radius: 12px;color: white;cursor: pointer;display: inline-block;height: 24px;left: 30px;line-height: 24px;position: relative;text-align: center;top: 0;width: 24px;}
|
||||
/* 商家回复 */
|
||||
.wst-list tbody tr td .spec{height: 45px;line-height: 15px;overflow: hidden;float: left;max-width: 160px;}
|
||||
.wst-list tbody tr td .stockin{display:none;border:1px solid #bac4c3;width:100px;outline: none;}
|
||||
.wst-list tbody tr td .stockin:focus{border:1px solid #eb654a;}
|
||||
.j-messsage-box{padding:10px 5px;color:red;}
|
||||
.head-ititle{background:url('../img/img_seller_ggjt.png') no-repeat 5px 4px;padding-left:28px;padding-bottom:5px;font-weight:bold;}
|
||||
/**资金流水**/
|
||||
.money-add{color:red;font-size:16px;font-weight: bold;}
|
||||
.money-reduce{color:green;font-size:16px;font-weight: bold;}
|
||||
.money-head{background:#eeeeee;height:120px;width:100%}
|
||||
.money-head .shop-logo{float:left;margin-top:10px;margin-left:20px;width:100px;height:100px;}
|
||||
.money-head .shop-logo img{-moz-border-radius: 100px; -webkit-border-radius: 100px; }
|
||||
.money-head .shop-info{float:left;padding-top:25px;padding-left:20px;}
|
||||
.money-head .shop-info .shopName{height:25px;line-height:25px;}
|
||||
.money-head .shop-info .money-rows{width:700px;}
|
||||
.money-head .shop-info .shopMoney{height:25px;line-height:25px;width:500px;}
|
||||
.money-head .shop-info .draw-tips{color:red;margin-left:20px;}
|
||||
.money-head .shop-info .cashmoney-box{margin-left:20px;}
|
||||
.money-head .cashbtn{padding: 3px 5px;border: 1px solid #333;}
|
||||
.money-head .cashbtn:hover{padding: 3px 5px;border: 1px solid #e45050;}
|
||||
.money-head .usermoney{width:150px ; float:left;}
|
||||
.money-head .cashbox{width:300px; float:left;}
|
||||
.money-head .lockbox{width:150px ; float:left;}
|
||||
|
||||
.msgContent{padding:10px;}
|
||||
.readMsg,.newMsg{width:36px;height:27px;background: url(../img/user_icon_info.png) no-repeat;}
|
||||
.newMsg{background-position: -66px -6px;}
|
||||
.readMsg{background-position: -11px -6px;}
|
||||
.msg-content{width: 630px}
|
||||
/* 商家中心首页 */
|
||||
.main{background: #f6f6f6;width: auto;min-height: 800px;padding-top: 20px;}
|
||||
.main_title{padding: 5px 0;}
|
||||
.c16_555{font-size: 16px;color: #555;}
|
||||
.tit_label{width: 12px;height: 12px;background: #e33c3c;border-radius: 50%;display: inline-block;}
|
||||
.main_middle{width:auto;height:auto;}
|
||||
.main_mid_box{display:flex;width:auto;height: 100%}
|
||||
.main_mid_box .mid_l{flex:2;}
|
||||
.mid_l_item{padding:0 10px;flex:1;background: #fff;height: 48%;}
|
||||
.complain_num{display: inline-block;width: 25px;height: 25px;background: #e33c3c;border-radius: 50%;color:#fff;text-align: center;line-height: 25px;}
|
||||
.mid_main{width: 100%;height: 90%;}
|
||||
.order_info{width:100%;height:100%;display: flex;}
|
||||
.order_info li{flex: 1;display: flex;height: 100%;flex-direction: column;justify-content: space-around;}
|
||||
.order_info li:nth-child(2){flex:1.5;}
|
||||
.c32_e33{font-size: 32px;color:#e33c3c;margin-bottom: 20px}
|
||||
.info_item{padding:10px 0;text-align: center;}
|
||||
.item_center{display: flex;justify-content:center;align-items:center;height: 148px!important;width: 148px !important;border-radius: 50% 50% 0 50%;border-color: #e33c3c;border-style: solid;border-width: 1px 0px 0px 1px;margin: 0 auto;}
|
||||
.main_mid_box .mid_c{flex:1;margin:0 20px;background: #fff;}
|
||||
.index-right-item{background:#fff;min-height: 492px;margin-bottom:20px;width: 100%;overflow: hidden;}
|
||||
.right-list-tit{width: 97%;border-bottom: 1px solid #eee;display: flex;margin: 0 auto;}
|
||||
.right-list-tit li{padding:14px 0px;flex:1;float: left;text-align: center;}
|
||||
.orderInfoList li{padding: 13px 0px !important;}
|
||||
.right-list-tit li:nth-child(2){flex:2;}
|
||||
.right-list{border:0px;}
|
||||
.right-list li{padding:13.7px 0px;}
|
||||
.c14_ff90{font-size: 14px;color:#ff9000;}
|
||||
.c14_ff66{font-size: 14px;color:#ff6666;}
|
||||
.wst-textover{overflow: hidden;white-space: nowrap;text-overflow: ellipsis;}
|
||||
.gTop1,.gTop2,.gTop3{text-align: left;padding-left: 13px;background-image:url(./../img/flag-each-69x26.png);background-size: 80%;background-position: 0 0;background-repeat: no-repeat;color:#fff;}
|
||||
.gTop2{background-position: 0 -37px;}
|
||||
.gTop3{background-position: 0 -73px;}
|
||||
.top-num{text-align: left;padding-left: 13px;}
|
||||
.item_sale{border-radius: 50% 50% 50% 50%;border-width: 0px 1px 1px 0px;}
|
||||
.main_mid_box .mid_r{flex:1;}
|
||||
.mid_r_rtop{background: #fff;height: 29%;width: 96%;margin-bottom:20px;padding-left:10px;}
|
||||
.rtop_main{padding:10px 0}
|
||||
.rtop_item{margin-top:5px;}
|
||||
.mid_r_rbottom{background: #fff;height: 67%;width: 96%;padding-left:10px;}
|
||||
.sale_info{margin-top:20px;width: 99%;height: 300px;background: #fff;padding-left:10px;}
|
||||
.shop_tips li{padding: 6px 15px;width: 200px}
|
||||
.shop_tips li a:hover{color:#e33c3c;}
|
||||
.order_remaker{color:#ff6c00;padding: 5px;border: 1px solid #ddd;border-top:none;}
|
||||
.order_from{ margin-left: 10px;color: #fff;border: 1px solid red;padding: 2px 4px;border-radius: 10px;background-color: #FF247A;}
|
||||
|
||||
#shoprole th,#shoprole td{border: solid 1px #E6E6E6;}
|
||||
#shoprole dl{ border-bottom: solid 1px #E6E6E6;}
|
||||
#shoprole dl .dt1,#shoprole dl .dt2{ font-size: 12px;
|
||||
line-height: 30px;
|
||||
color: #333;
|
||||
vertical-align: top;
|
||||
letter-spacing: normal;
|
||||
word-spacing: normal;
|
||||
text-align: right;
|
||||
display: inline-block;
|
||||
width: 120px;
|
||||
padding: 0 4px;
|
||||
margin: 0;
|
||||
|
||||
}
|
||||
#shoprole dl .dd1{ font-size: 12px;
|
||||
font-size: 12px;
|
||||
line-height: 30px;
|
||||
vertical-align: top;
|
||||
letter-spacing: normal;
|
||||
word-spacing: normal;
|
||||
display: inline-block;
|
||||
width: 690px;
|
||||
padding: 0px 4px;
|
||||
border-left: solid 1px #E6E6E6;
|
||||
}
|
||||
#shoprole dl .dd2{
|
||||
font-size: 12px;
|
||||
line-height: 30px;
|
||||
vertical-align: top;
|
||||
letter-spacing: normal;
|
||||
word-spacing: normal;
|
||||
display: inline-block;
|
||||
width: 500px;
|
||||
padding: 0px 4px;
|
||||
border-left: solid 1px #E6E6E6;
|
||||
}
|
||||
#shoprole td label{width:120px;text-align: left;display: inline-block;}
|
||||
|
||||
.uinfo>input{ width: 235px;}
|
||||
.wst-form input, textarea {
|
||||
background-color: white;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 2px;
|
||||
box-shadow: 1px 1px 1px #f0f0f0 inset;
|
||||
font-family: inherit;
|
||||
font-size: 100%;
|
||||
margin: 3px;
|
||||
padding: 5px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.uinfo-form tr td {
|
||||
height: 40px;
|
||||
}
|
||||
.wst-list-add{float: right;line-height:16px;height:16px;margin-top:2px;}
|
56
hyhproject/home/view/default/css/shopapply.css
Executable file
@ -0,0 +1,56 @@
|
||||
.stepflex{float:right;border-top:5px solid #ccc;text-align:center;width:960px;margin:60px 0px 0px 50px;}
|
||||
.stepflex dl{border-top:5px solid #ccc;float:left;position:relative;top:-5px;width:160px;}
|
||||
dl.doing{border-top-color:#04bd3d;}
|
||||
.doing .s-num{background-position:-23px 0;}
|
||||
.s-num,.s-num1{color:#fff;font-weight: 700;height:23px;line-height:23px;margin:-15px auto 0;position:relative;width:23px;border-radius:25px;}
|
||||
.s-num{background:#04bd3d;}
|
||||
.s-num1{background:#ccc;}
|
||||
.s-text1{line-height:30px;}
|
||||
.s-text{line-height:30px;color:#04bd3d;}
|
||||
select{height:29px;}
|
||||
.webuploader-container{overflow:hidden;}
|
||||
.apply-banner{width: 100%;height:320px;position: relative;z-index: 1;top:-8px;}
|
||||
.apply-msg-box{filter:progid:DXImageTransform.Microsoft.gradient(enabled='true',startColorstr='#3F000000', endColorstr='#3F000000');background:rgba(0,0,0,0.25); width: 280px; height: 300px; z-index: 9; margin-top:30px; border-radius: 5px;}
|
||||
.apply-msg-box h3{color:#fff;font: 600 17px/24px; color: #FFF; padding: 12px 10px 4px 10px; margin: 0 10px 10px;box-shadow: 0 1px 0 rgba(0,0,0,0.1);}
|
||||
.apply-msg-box .title{color: #FFF;margin-top:10px;line-height:30px;padding-left:15px;padding-right:15px;}
|
||||
.apply-msg-box ul{color: #FFF;padding-left:15px;padding-right:15px;height:149px;}
|
||||
.apply-msg-box ul li{margin-top:10px;line-height:23px;list-style-type: disc;margin-left:15px;}
|
||||
.apply-msg-box .bottom{border-radius:0 0 5px 5px;margin-top:10px;padding-top:10px;padding-bottom:10px;padding-left:7px;filter:progid:DXImageTransform.Microsoft.gradient(enabled='true',startColorstr='#7F000000', endColorstr='#7F000000'); background:rgba(0,0,0,0.5); text-align: center;}
|
||||
.wst-slide{position: relative;height:350px;overflow:hidden;top:-320px;z-index:-1}
|
||||
.apply-tips{color: #777;background-color: #EEE;width: 100%;height: 60px;}
|
||||
.apply-tips .title{width: 60px;height: 48px;display: inline-block;padding: 6px 12px 6px 24px;}
|
||||
.apply-tips .title i{background: url(../img/ic_volume_24x24.png) no-repeat 0px 0;display: block;width: 24px;height: 24px;float: left;margin: 0 18px;}
|
||||
.apply-tips .content{font: 12px/20px "microsoft yahei";vertical-align: top;display: inline-block;width: 920px;padding: 10px;}
|
||||
.apply-step{font-size: 0;width: 800px;height: 110px;margin: 30px auto;overflow: hidden;}
|
||||
.apply-step span { font-size: 12px; vertical-align: middle; letter-spacing: normal; word-spacing: normal; display: inline-block; *display: inline; *zoom: 1;}
|
||||
.apply-step span.step { color:#777;line-height: 20px; text-align: center; width: 80px;}
|
||||
.apply-step span.step i { background: url(../img/btn_80x80.png) no-repeat; display: block; width: 80px; height: 80px; margin-bottom: 10px;}
|
||||
.apply-step span.step i.a { background-position: -12px 0px;}
|
||||
.apply-step span.step i.b { background-position: -94px 0px;}
|
||||
.apply-step span.step i.c { background-position: -176px 0px;}
|
||||
.apply-step span.step i.d { background-position: -258px 0px;}
|
||||
.apply-step span.step i.e { background-position: -340px 0px;}
|
||||
.apply-step span.arrow { background: url(../img/btn_80x80.png) no-repeat -439px -30px; width: 60px; height: 22px; margin: 0 20px;margin-top:-25px;}
|
||||
.apply-step-head{margin-top:20px;border-bottom:dotted 1px #CCC;font-weight:600;font-size:16px;line-height:30px;padding-left:10px;}
|
||||
|
||||
.main-head{font-size:17px;font-weight:bold;height:35px;line-height:35px;text-align:left;}
|
||||
.apply-box {border-top: 2px solid #FC7A64;border-left: 1px solid #eeeeee;border-right: 1px solid #eeeeee;border-bottom: 1px solid #eeeeee;padding: 5px 0px 0px 5px;}
|
||||
.apply-agreement-box{height:350px;border:1px solid #eeeeee;padding:5px;overflow:auto;margin:0 auto;}
|
||||
.apply-agreement-box .tip{color:gray}
|
||||
.agreement-table{width:100%;margin-bottom:10px;}
|
||||
.agreement-table th{text-align: right;width:250px;}
|
||||
.agreement-table td{text-align: left}
|
||||
.agreement-table .head-ititle{background:url('../img/img_seller_ggjt.png') no-repeat 5px 4px;padding-left:28px;padding-bottom:5px;font-weight:bold;}
|
||||
.agreement-table input[type=text]{margin:2px;}
|
||||
.agreement-table textarea{margin:2px;}
|
||||
.agreement_box{text-align:center;margin-top:5px;}
|
||||
.agreement-bottom{padding:10px 5px;text-align: center}
|
||||
.examine-tips{text-align: center;width:100%;padding-top:60px;padding-bottom:80px;font-weight: 600;font-size:16px;color:#999;}
|
||||
label{margin-right:20px;}
|
||||
.webuploader-pick{padding:3px 10px;}
|
||||
.goodsCat{width:140px;margin-right:20px;float:left;}
|
||||
.wst-tab-box {width: 100%;height: auto;margin: 0px auto;background: #ffffff;margin-top:10px;}
|
||||
.wst-tab-nav {margin: 0;padding: 0;height: 35px;top: 0px;z-index: 30;background: #ffffff;width:100%;border-bottom: 1px solid #eeeeee;border-left: 1px solid #eeeeee}
|
||||
.wst-tab-nav li {width:23.24%;cursor: pointer;float: left;margin: 0 0px;list-style: none;border: 1px solid #eee;border-bottom: none;border-left: none;line-height: 34px;text-align: center;color: #000000;padding-left: 10px;padding-right: 10px;}
|
||||
.wst-tab-nav .on {border-top: 1px solid #ff2704;border-bottom: 1px solid #ffffff;color: #ff2704;font-weight:bold;}
|
||||
.wst-tab-content {padding: 5px;width: 99%;height: auto;border: 1px solid #eee;border-top:none;background: #FFF;}
|
105
hyhproject/home/view/default/css/shophome.css
Executable file
@ -0,0 +1,105 @@
|
||||
@CHARSET "UTF-8";
|
||||
.wst-shop-h{padding:10px 0}
|
||||
.wst-shop-img{float:left;margin-top:3px;width:90px;height:90px;text-align:center;vertical-align:middle;display:block;position:relative}
|
||||
.wst-shop-img img{max-width:90px;max-height:90px;border-radius:5px}
|
||||
.wst-shop-info{float:left;width:45%;margin-left:10px}
|
||||
.wst-shop-info p{float:left;line-height:50px;width:100%;color:#222;font-size:17px;font-family:"microsoft yahei"}
|
||||
.wst-shop-info2,.wst-shop-info3{float:left;width:100%}
|
||||
.wst-shop-info2 img{float:left;width:16px;margin-right:3px}
|
||||
.wst-shop-info2 span{float:left;color:#dda315;margin-right:10px}
|
||||
.wst-shop-info3{margin-top:7px}
|
||||
.wst-shop-code{float:left;margin-top:-3px;width:24px;height:24px;cursor:pointer;background:url(../img/img_sjck.png) no-repeat;background-size:100%}
|
||||
.wst-shop-codes{width:131px;height:131px;margin-top:24px;border:1px solid #dedbdb;position:absolute;z-index:1000;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,0.3);border-radius:5px}
|
||||
.wst-shop-codes:after{top:-16px;border-color:transparent transparent #fff}
|
||||
.wst-shop-eva,.wst-shop-evaa{float:left;margin-right:16px}
|
||||
.wst-shop-evaa{padding-left:20px}
|
||||
.wst-shop-info3 .j-fav,.wst-shop-info3 .j-fav:hover{background:url(../img/iconfont_guanzhu_sel.png) 1px 2px no-repeat}
|
||||
.wst-shop-info3 .j-fav2{background:url(../img/iconfont_guanzhu_nor.png) 0 -23px no-repeat;transition:background-position .15s ease-in-out 0s}
|
||||
.wst-shop-info3 .j-fav2:hover{background:url(../img/iconfont_guanzhu_nor.png) 0 1px no-repeat;text-decoration:none}
|
||||
.wst-shop-red{color:#e25041}
|
||||
.wst-shop-sea{float:right;width:42.999999%;margin-top:20px}
|
||||
.wst-shop-sea input{float:left;outline:0;font-size:15px;height:32px;width:360px;margin-right:3px;padding-left:8px;border:1px solid #fc6047}
|
||||
.wst-shop-sea .search{float:left;width:60px;height:32px;line-height:32px;text-align:center;color:#fff;margin-left:6px;background:url(../img/img_bg_search.png) no-repeat}
|
||||
.wst-shop-word{float:left;margin-top:8px;width:100%;height:18px;overflow:hidden}
|
||||
.wst-shop-tu{text-align:center;width:100%;height:110px}@media screen and (max-width:1200px){.wst-shop-tu{min-width:1200px}
|
||||
.wst-shop-nav{min-width:1200px}}
|
||||
.wst-shop-nav{background-color:#fc6047}
|
||||
.wst-nav-box{width:1200px;margin:0 auto;line-height:36px;color:#fff}
|
||||
.wst-nav-box li{padding:0 26px;text-align:center;color:#fff;font-size:15px;font-family:"microsoft yahei"}
|
||||
.wst-nav-box li:hover,.wst-nav-box .wst-nav-boxa{background:#cb2004;background-size:cover}
|
||||
.wst-nav-box .liselect{list-style-type:none}
|
||||
.wst-nav-box .homepage{float:right;margin-top:6px;padding:0 8px;height:22px;line-height:22px;color:#fff;border:1px solid #fff}
|
||||
.wst-nav-box .homepage:hover{color:#fc6047;background:#fff;border:1px solid #fc6047}
|
||||
.ck-slide{width:1200px;height:400px;margin:3px auto;margin-bottom:9px}
|
||||
.ck-slide ul.ck-slide-wrapper{height:400px}
|
||||
.wst-shop-contl{float:left;width:19.222222%;padding-bottom:20px}
|
||||
.wst-shop-contr{float:right;width:79.555555%}
|
||||
.wst-shop-cat{margin-top:9px;border:1px solid #ddd}
|
||||
.wst-shop-best,.wst-shop-lat{margin-top:15px;border:1px solid #ddd}
|
||||
.wst-shop-cat li{height:26px;line-height:26px;list-style-type:none}
|
||||
.wst-shop-cat li:hover{color:#ff5605;cursor:pointer}
|
||||
.wst-shop-cat a li{color:#666}
|
||||
.wst-shop-conlp{height:35px;line-height:35px;text-align:center;background:#ebebeb;font-size:16px;font-family:"microsoft yahei"}
|
||||
.wst-shop-catt{padding-left:10px}
|
||||
.wst-shop-catts{padding-left:20px}
|
||||
.js-shop-plus{text-indent:20px;background:url(../img/store_icon_zk.png) 2px 4px no-repeat}
|
||||
.js-shop-redu{text-indent:20px;background:url(../img/store_icon_sq.png) 2px 4px no-repeat}
|
||||
.wst-shop-bestg{float:left;margin:5px}
|
||||
.wst-shop-besti{float:left;width:72px;height:72px;text-align:center;vertical-align:middle;display:block;position:relative}
|
||||
.wst-shop-besti img{max-width:72px;max-height:72px}
|
||||
.wst-shop-bestgp1{height:36px}
|
||||
.wst-shop-bestgp2{line-height:20px}
|
||||
.wst-shop-bestg p{float:left;width:142px;margin-left:3px;overflow:hidden}
|
||||
.wst-shop-bestg a:hover{color:#ff5605}
|
||||
.wst-shop-bestpi{color:#ee8f4f}
|
||||
.wst-shop-bestpr{color:#d86232;font-weight:bold}
|
||||
.wst-shop-bestpr2{float:right;color:#c4c2c2;text-decoration:line-through}
|
||||
.wst-shop-conrp{height:35px;line-height:35px;text-indent:1em;background:#ebebeb;font-size:16px;font-family:"microsoft yahei";margin:9px 0 6px 0}
|
||||
.wst-shop-recb{padding:5px 0;background:#f2efea}
|
||||
.wst-shop-rgoods,.wst-shop-list .wst-shop-goods{float:left;width:218px;padding:5px;background:#fff;border:1px solid #dadada;margin:0 4px}
|
||||
.wst-shop-rgoods:hover,.wst-shop-goods:hover{border:1px solid #e5e5e5;-webkit-box-shadow:0 0 10px #ddd;-moz-box-shadow:0 0 10px #ddd;box-shadow:0 0 10px #ddd}
|
||||
.wst-shop-list .wst-shop-goimg{float:left;width:207px;height:207px;vertical-align:middle;display:block;position:relative}
|
||||
.wst-shop-goimg a{width:207px;height:207px;padding-left:5px;padding-top:5px;display:table-cell;vertical-align:middle}
|
||||
.wst-shop-goimg img{max-width:207px;max-height:207px}
|
||||
.wst-shop-goimg span{width:230.5px;height:30px;line-height:30px;color:#fff;text-align:center;opacity:.8;background:#d0260c;display:block;position:absolute;left:-6px;bottom:-5px;display:none}
|
||||
.wst-shop-goimg span:hover{background:#e5280b}
|
||||
.wst-shop-gonam{float:left;width:100%;height:36px;color:#838383;font-size:15px;font-family:"microsoft yahei";margin-top:18px}
|
||||
.wst-shop-gonam a:hover{color:#f60505}
|
||||
.wst-shop-rect{float:left;width:100%;margin-top:8px;font-family:"microsoft yahei"}
|
||||
.wst-shop-rect span{color:#ea523b;font-size:16px;line-height:26px;font-weight:bold}
|
||||
.wst-shop-rect .wst-shop-recta{float:right;height:26px;color:#ff5605;line-height:26px;padding:0 12px;border-radius:2px;border:1px solid #dadada}
|
||||
.wst-shop-rect .wst-shop-recta2{float:right;height:26px;color:#c9c3c2;line-height:26px;padding:0 12px;border-radius:2px;border:1px solid #dadada}
|
||||
.wst-shop-rect .wst-shop-recta:hover{color:#fff;background:#ff5605;border:1px solid #ff5605}
|
||||
.wst-shop-list{padding:10px 0}
|
||||
.wst-shop-listh{float:left;width:100%;font-family:"microsoft yahei"}
|
||||
.wst-shop-listh a{float:left;color:#525252;height:19px;padding:6px 16px;text-align:center;font-size:15px;border:1px solid #e9e7e7}
|
||||
.wst-shop-listh a:hover{border:1px solid #ff8043}
|
||||
a.wst-shop-a{color:#fff;background:#ff8043;border:1px solid #ff8043}
|
||||
.wst-shop-store,.wst-shop-store2,.wst-shop-store3{float:right;width:16px;height:13px;margin:3px 0 0 3px}
|
||||
.wst-shop-store{background:url(../img/store_icon_sx.png) 0 0 no-repeat}
|
||||
.wst-shop-store2{background:url(../img/store_icon_sx_sel.png) 0 0 no-repeat}
|
||||
.wst-shop-store3{background:url(../img/store_icon_sx_sel_up.png) 0 0 no-repeat}
|
||||
.wst-price-ipts{float:left;position:relative}input.wst-price-ipt{width:66px;height:27px;outline:0;padding-left:18px;border:1px solid #e9e7e7}input.wst-price-ipt:focus{border:1px solid #ff8043}
|
||||
.wst-price-ipt1{position:absolute;left:13px;top:8px}
|
||||
.wst-price-ipt2{position:absolute;right:71px;top:8px}
|
||||
.wst-shop-but{outline:0;background:#ebebeb;color:#9f9696;border:1px solid #dad7d7;cursor:pointer}
|
||||
.wst-shop-but:not(.disabled):not(:disabled):active,.wst-shop-but.active{background:#f1f1f1;background-clip:padding-box}
|
||||
.wst-shop-listg{padding-top:10px}
|
||||
.wst-shop-list .wst-shop-goods{margin-bottom:6px}
|
||||
.wst-shop-goodp1{margin-top:8px}
|
||||
.wst-shop-goodp1,.wst-shop-goodp2{float:left;width:100%;line-height:20px;font-family:"microsoft yahei";padding:2px 0 2px 0}
|
||||
.wst-shop-goodpr{color:#ea523b;font-size:16px;font-weight:bold;overflow:hidden;float:left}
|
||||
.wst-shop-goodpr2{color:#ed1a8d}
|
||||
.wst-shop-goodpr3{color:#c4c2c2;width:220px;overflow:hidden}
|
||||
.wst-shop-goodpr4{color:#249ee7}
|
||||
.wst-shop-pa{padding:28px 0 35px 300px}
|
||||
.wst-shop-info2 img.wangwang{padding-top:1px;width:65px;height:22px}
|
||||
.wst-shop-goimg img.goodsImg{max-width:207px;max-height:207px}
|
||||
.wst-shop-share{float:right;position:relative;top:-6px;margin-right:6px}
|
||||
.wst-shop-list img{max-width:1200px}@-webkit-keyframes a1{0%{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-o-transform:scale(1);transform:scale(1)}
|
||||
100%{opacity:1;-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1)}}@-moz-keyframes a1{0%{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-o-transform:scale(1);transform:scale(1)}
|
||||
100%{opacity:1;-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1)}}@-o-keyframes a1{0%{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-o-transform:scale(1);transform:scale(1)}
|
||||
100%{opacity:1;-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1)}}@keyframes a1{0%{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-o-transform:scale(1);transform:scale(1)}
|
||||
100%{opacity:1;-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1)}}
|
||||
.wst-shop-rgoods:hover img{-webkit-animation:a1 1s .1s ease both;-moz-animation:a1 1s .1s ease both;animation:a1 .5s .1s ease both;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%}
|
||||
.notice_img{width:15px;height:15px;vertical-align:middle}
|
49
hyhproject/home/view/default/css/shopstreet.css
Executable file
@ -0,0 +1,49 @@
|
||||
@CHARSET "UTF-8";
|
||||
a{cursor:pointer}
|
||||
img{border:none}
|
||||
.wst-shopstr-ads{padding:10px 0}
|
||||
.wst-shopstr-ads img{width:1200px;height:220px}
|
||||
.wst-shopstr-cat{margin:10px 0 20px 0;padding:10px 20px;border:1px solid #dddbdb}
|
||||
.wst-shopstr-catt{height:23px;color:#333;border-bottom:1px dashed #b5b5b5}
|
||||
.wst-shopstr-cat span{float:left;margin:8px 60px 0 0;padding:8px 5px}
|
||||
.wst-shopstr-cat span:hover{cursor:pointer;color:#fff;background:#fc6047;border-radius:3px}
|
||||
.js-selected{cursor:pointer;color:#fff;background:#fc6047;border-radius:3px}
|
||||
.wst-shopstr-shop{margin-top:20px;padding:10px;border:1px solid #dddbdb}
|
||||
.wst-shopstr-shop:hover{border:1px solid #fc6047}
|
||||
.wst-shopstr-shopl{float:left;width:150px;height:150px;text-align:center;vertical-align:middle;display:block;position:relative}
|
||||
.wst-shopstr-shopi{float:left;width:26%;margin-left:12px}
|
||||
.wst-shopstr-shopr{float:right;width:60%}
|
||||
.wst-shopstr-shopl a{width:150px;height:150px;display:table-cell;vertical-align:middle}
|
||||
.wst-shopstr-shopl a img{max-width:150px;max-height:150px}
|
||||
.wst-shopstr-name{height:32px;line-height:32px}
|
||||
.wst-shopstr-name .name{float:left;font-size:18px;color:#2e2e2e;font-weight:700;width:170px;height:30px;display:block;overflow:hidden}
|
||||
.wst-shopstr-name .name:hover{color:#f53e28}
|
||||
.wst-shopstr-name .favorite{padding:5px 5px 5px 23px;loat:left;border:1px solid #ededed;margin-left:5px}
|
||||
.wst-shopstr-name .j-fav,.wst-shopstr-name .j-fav:hover{background:url(../img/iconfont_guanzhu_sel.png) 4px 5px no-repeat}
|
||||
.wst-shopstr-name .j-fav2{background:url(../img/iconfont_guanzhu_nor.png) 3px -19px no-repeat;transition:background-position .15s ease-in-out 0s}
|
||||
.wst-shopstr-name .j-fav2:hover{background:url(../img/iconfont_guanzhu_nor.png) 3px 5px no-repeat;text-decoration:none}
|
||||
.wst-shopstr-pr{float:left;width:100%;margin-top:7px;color:#807f7f}
|
||||
.wst-shopstr-pr .company{text-decoration:underline;color:#57c4f5}
|
||||
.wst-shopstr-pr .company:hover{color:#31b0e9}
|
||||
.wst-shopstr-score{width:118px;height:96px;position:absolute;left:25px;bottom:-95px;color:#545252;text-indent:1em;cursor:pointer;background:url(../img/img_bg_xiala.png) 0 0 no-repeat}
|
||||
.wst-shopstr-score .title{font-weight:700}
|
||||
.wst-shopstr-more{float:left;width:100%}
|
||||
.wst-shopstr-more a{font-size:13px;color:#666}
|
||||
.wst-shopstr-more a:hover{color:#eb5f43}
|
||||
.wst-shopstr-more span{width:100px;height:20px;color:#fff;line-height:20px;background:url(../img/img_dztj_bg.png) no-repeat}
|
||||
.wst-shopstr-good{padding-top:2px;margin-left:26px}
|
||||
.wst-shopstr-goods{float:left;margin:0 3px}
|
||||
.wst-shopstr-goodimg{width:100px;height:100px;text-align:center;vertical-align:middle;display:block;position:relative}
|
||||
.wst-shopstr-goodimg a{width:100px;height:100px;display:table-cell;vertical-align:middle}
|
||||
.wst-shopstr-goodimg a img{max-width:100px;max-height:100px}
|
||||
.wst-shopstr-goods span{float:left;width:100px;margin-top:1px;text-align:center;color:#fc6047;font-weight:700}
|
||||
.shopstrPaging{padding:20px 0 50px 480px}
|
||||
.als-container{position:relative;width:100%;margin:0 auto}
|
||||
.als-viewport{position:relative;overflow:hidden;margin:0 auto}
|
||||
.als-wrapper{position:relative;list-style:none}
|
||||
.als-item{position:relative;display:block;text-align:center;cursor:pointer;float:left}
|
||||
.als-next,.als-prev{position:absolute;cursor:pointer;clear:both}
|
||||
.als-item img{width:135px;height:135px;vertical-align:middle}
|
||||
.als-next,.als-prev{top:40px}
|
||||
.als-prev{left:-25px}
|
||||
.als-next{right:-30px}
|
382
hyhproject/home/view/default/css/user.css
Executable file
@ -0,0 +1,382 @@
|
||||
@CHARSET "UTF-8";
|
||||
.wst-wrap{margin:0 auto}
|
||||
.wst-main{margin:auto;width:1200px;min-height:600px;height:auto;padding-top:15px}
|
||||
.wst-menu{background:#fff;width:198px;float:left;margin-right:15px;filter:progid:DXImageTransform.Microsoft.Shadow(color = #909090,direction = 120,strength = 4);-moz-box-shadow:2px 2px 10px #909090;-webkit-box-shadow:2px 2px 10px #909090;box-shadow:0 1px 3px rgba(0,0,0,0.3)}
|
||||
.wst-content{background:#fff;min-height:948px;height:auto;width:990px;float:right;filter:progid:DXImageTransform.Microsoft.Shadow(color = #909090,direction = 120,strength = 4);-moz-box-shadow:2px 2px 10px #909090;-webkit-box-shadow:2px 2px 10px #909090;box-shadow:0 1px 3px rgba(0,0,0,0.3)}
|
||||
.wst-footer{border-top:1px solid #ddd;margin-top:5px}
|
||||
.wst-menu-title{position:relative;width:143px;display:block;padding:10px 5px 10px 50px;font-weight:bolder;border-top:1px solid #ccc;color:#000;font-size:16px;font-family:"microsoft yahei";background:#e9e9e9;cursor:pointer}
|
||||
.wst-menu-title img{padding:0 0 3px 6px}
|
||||
.wst-menu{width:198px;margin:0;padding:0;min-height:948px}
|
||||
.wst-menu li{list-style-type:none;padding:0 0 0 50px;height:35px;line-height:35px;color:#6a6868;cursor:pointer}
|
||||
.wst-menu li:hover,li.wst-menua{font-weight:bolder;color:#e23e3d;border-left:2px solid #e23e3d}
|
||||
.wst-menu .selected{background-color:#e23e3d;font-weight:bolder;color:#fff}
|
||||
.wst-menu .liselect{background-color:#e23e3d;font-weight:bolder;color:#fff}
|
||||
.wst-list{width:100%;border:1px solid #ddd;border-collapse:collapse}
|
||||
.wst-list thead tr th{height:40px;line-height:40px;border-bottom:1px solid #ccc;text-align:left;padding-left:5px;background:#eee}
|
||||
.wst-list tbody tr td{word-wrap:break-word;word-break:break-all;height:40px;line-height:40px;text-align:left;padding-left:5px}
|
||||
.wst-list tbody tr:nth-child(even){background:#fcfae1}
|
||||
a:active,a:hover{text-decoration:none;color:red}
|
||||
.wst-form{border-collapse:collapse}
|
||||
.wst-form tr{height:30px;line-height:30px}
|
||||
.wst-form tr th{color:#707070;text-align:right}
|
||||
.wst-form tr td{text-align:left}
|
||||
.wst-form input,textarea{background-color:white;border:1px solid #ccc;border-radius:2px;box-shadow:1px 1px 1px #f0f0f0 inset;font-family:inherit;font-size:100%;margin:3px;padding:5px;vertical-align:middle}
|
||||
.wst-form select{box-shadow:2px 2px 2px #f0f0f0 inset;font-family:inherit;font-size:100%;vertical-align:middle;margin:3px}
|
||||
.wst-form select option{padding:2px}
|
||||
.wst-shop-nav{background-color:#e45050;border-top:6px solid #e45050;text-align:center}
|
||||
.wst-nav-box{width:1200px;margin:0 auto;line-height:33px;color:#fff}
|
||||
.wst-nav-box li{width:145px;text-align:center;color:#fff;font-size:18px;font-family:"microsoft yahei";margin-bottom:-1px}
|
||||
.wst-nav-box li:hover,.wst-nav-box .wst-nav-boxa{color:#e45050;background:url(../img/user_bg_nav.png) -10px 0 no-repeat}
|
||||
.wst-nav-box .liselect{list-style-type:none}
|
||||
.wst-appsaler{margin-top:30px;text-align:center;margin-bottom:30px;line-height:30px}
|
||||
.wst-menu-title span{position:absolute;left:20px;top:8px;display:inline-block;width:20px;height:20px;background-image:url(../../../View/default/images/icon_leftmenu.png);background-repeat:no-repeat}
|
||||
select{box-shadow:2px 2px 2px #f0f0f0 inset;font-family:inherit;font-size:100%;padding:2px;vertical-align:middle}input,textarea{background-color:white;border:1px solid #ccc;border-radius:4px;font-family:inherit;font-size:100%;margin:3px;padding:5px;vertical-align:middle}
|
||||
.wst-tab-box{width:100%;height:auto;margin:0 auto}
|
||||
.wst-tab-nav{margin:0;padding:0;height:31px}
|
||||
.wst-tab-nav li{cursor:pointer;float:left;margin:0;list-style:none;border:1px solid #ddd;border-bottom:0;border-left:none;line-height:30px;text-align:center;background:#eee;color:#000;padding-left:10px;padding-right:10px}
|
||||
.wst-tab-nav .on{background:none repeat scroll 0 0 #e23e3d;border-bottom:0 none;color:#fff;font-weight:bold}
|
||||
.wst-tab-content{padding:5px;width:99%;height:auto;border:1px solid #ddd;background:#FFF}
|
||||
.wst-appraise-box{margin:0 auto;margin-top:20px;margin-bottom:10px}
|
||||
.wst-appraise-box .appraise-title{margin-top:10px;font-weight:bold;text-align:left;padding-left:30px;padding-bottom:10px}
|
||||
.wst-appraise-box .appraise-title .tips{font-weight:normal;color:#999}
|
||||
.wst-appraise-box .main{border:1px solid #e9e9e9;border-top:2px solid #999}
|
||||
.wst-appraise-box .head{line-height:35px;background-color:#e9e9e9;font-weight:bold}
|
||||
.wst-appraise-box .goods-no{float:left;width:50px;text-align:center}
|
||||
.wst-appraise-box .goods-name{float:left;width:600px}
|
||||
.wst-appraise-box .goods-name2{float:left;width:530px;line-height:30px}
|
||||
.wst-appraise-box .goods-status{float:left;width:120px;text-align:center}
|
||||
.wst-appraise-box .goods-buy-time{float:left;width:220px;text-align:center}
|
||||
.wst-appraise-box .appraise-box{text-align:center;background-color:#dbeaf9;padding-top:5px}
|
||||
.wst-appraise-box .goods-txt{line-height:70px}
|
||||
.wst-appraise-box .goods-img{border:0;margin-top:5px;margin-bottom:5px}
|
||||
.wst-appraise-box .appraise-box .main-box{width:800px;margin:0 auto}
|
||||
.wst-appraise-box .appraise-box .item{line-height:40px;margin-top:5px}
|
||||
.wst-appraise-box .appraise-box .item .title{float:left;width:80px;text-align:right}
|
||||
.wst-appraise-box .appraise-box .item .content{float:left;width:700px;text-align:left}
|
||||
.wst-appraise-box .appraise-box .btn-box{padding-right:80px;margin:15px;float:right}
|
||||
.wst-goods-tb{margin-top:3px;margin-bottom:2px;border:0}
|
||||
.wst-complain-detail{width:100%;border-collapse:collapse}
|
||||
.wst-complain-detail tr{height:25px;line-height:25px}
|
||||
.wst-complain-detail tr th{color:#707070;text-align:right;font-size:12px}
|
||||
.wst-complain-detail tr td{text-align:left;color:#707070}
|
||||
.wst-complain-detail .head{font-weight:bold;border-bottom:1px dotted #ddd}
|
||||
.wst-complain-left{width:250px;height:100%;border:1px solid #ddd;text-align:left;background:#fff;float:left}
|
||||
.wst-complain-order-head{width:240px;height:25px;line-height:25px;border-bottom:1px solid #ddd;font-weight:bold;padding:5px;background:#f5f5f5}
|
||||
.wst-complain-order-goods{width:240px;height:200px;line-height:30px;padding:5px;border-bottom:1px solid #ddd;overflow-y:auto}
|
||||
.wst-complain-main{float:right;width:732px;overflow:hidden;border:1px solid #ddd}
|
||||
.wst-complain-order-info{padding:5px;display:block;height:100%}
|
||||
.wst-complain-order-info dt{float:left;width:70px;color:#999;padding:1px 0;display:block;height:20px}
|
||||
.wst-complain-order-info dd{overflow:hidden;color:#666;padding:1px 0;width:170px;display:block;height:20px}
|
||||
.wst-complain-box{border-bottom:1px solid #ddd;width:732px;padding:5px}
|
||||
.wst-complain-footer{clear:both;width:100%;text-align:center;padding:5px 0}
|
||||
.jcrop-holder #preview-pane{display:block;position:absolute;z-index:2000;top:10px;right:10px;padding:6px;border:1px rgba(0,0,0,.4) solid;background-color:white;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:1px 1px 5px 2px rgba(0,0,0,0.2);-moz-box-shadow:1px 1px 5px 2px rgba(0,0,0,0.2);box-shadow:1px 1px 5px 2px rgba(0,0,0,0.2)}
|
||||
#preview-pane .preview-container{width:150px;height:150px;overflow:hidden;border:1px dashed #777}
|
||||
#userPhotoCutBox>p{min-width:500px;min-height:500px;background:url('../img/cut_bg.png') repeat 0 0}
|
||||
#cutArea{border:1px dashed #777;position:relative;top:-2px;left:-2px;float:left}#c-btn{width:35%;margin-left:15%}
|
||||
.cut-btn{width:80px;height:30px;background:#e02f2f;color:white;font-weight:bold}
|
||||
.cut-help{width:150px;position:absolute;top:185px;right:10px}
|
||||
.cut-help p{margin-top:7px;width:150px}
|
||||
.wst-lite-bac{background:#fff}
|
||||
.wst-lite-tit{float:left;width:100px;margin:16px 0 0 10px}
|
||||
.wst-lite-tit span{float:left;color:#e45050;font-size:19px;margin-left:10px;font-family:"microsoft yahei"}a.wst-lite-in{float:left;margin-top:6px;padding:3px 8px;color:#e45050;border:1px solid #e45050}
|
||||
a.wst-lite-in:hover{color:#fff;border:1px solid #fff;background:#e45050}
|
||||
.wst-lite-sea{float:right;background:#fff;margin:20px 35px 0 0}
|
||||
.wst-lite-sea .search{border:2px solid #e23c3d;height:35px;position:relative}
|
||||
.wst-lite-sea .search .j-search-type{width:78px;top:0;line-height:36px;position:absolute;padding:0;border-right:2px solid #e23c3d;border-left:2px solid #e23c3d;cursor:pointer;left:-2px;text-align:center}
|
||||
.wst-lite-sea .search .j-type-list{width:70px;top:35px;line-height:36px;position:absolute;padding:0 4px;border:2px solid #e23c3d;cursor:pointer;background-color:#fff;left:-2px;z-index:100;border-top:0;display:none;text-align:center}
|
||||
.wst-lite-sea .search .j-search-type i{top:15px;right:6px;height:7px;width:0;overflow:hidden;font-style:normal;color:#6a6a6a;display:block;position:absolute}
|
||||
.wst-lite-sea .search .j-search-type s{position:relative;top:-17px;text-decoration:none}
|
||||
.wst-lite-sea .search .j-type-list div:hover{color:#e23c3d}
|
||||
.wst-lite-sea .search .search-ipt{border:0 none;color:#565656;float:left;font-family:Microsoft Yahei;font-size:14px;line-height:30px;overflow:hidden;padding:0;width:330px;height:30px;border:36px;outline:0;padding-left:84px;box-shadow:none}
|
||||
.wst-lite-sea .search .search-btn{cursor:pointer;font-size:15px;font-weight:bolder;height:35px;line-height:36px;position:absolute;right:0;text-align:center;top:0;width:52px;background:url(../img/btn_search_red.png) 22px 6px no-repeat}
|
||||
.wst-lite-cart{float:right;width:163px;height:40px;margin-top:20px;background:#e23c3d;position:relative;cursor:pointer}
|
||||
.wst-lite-cart .word{float:left;width:112px;margin-top:4px;margin-left:20px;padding:5px 6px 7px 28px;color:#fff;font-size:14px;font-family:"microsoft yahei";background:url(../img/icon_gouwuche.png) no-repeat left center;position:relative}
|
||||
.wst-lite-cart .num{font-size:14px;color:#fff;line-height:24px;text-align:center;position:absolute;display:block;width:27px;height:25px;background:url(../img/icon_number.png) no-repeat;right:19px;top:-12px}
|
||||
.wst-lite-carts{width:332px;min-height:130px;margin-top:18px;border:1px solid #dedbdb;position:absolute;z-index:1200;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,0.3);left:-171px;top:22px}
|
||||
.wst-lite-carts:after{top:-16px;border-color:transparent transparent #fff}
|
||||
.wst-lite-carts .carts{background:url(../img/top_icon_cartdown.png) 28px 47px no-repeat;width:332px;height:130px;text-indent:4.5em;line-height:130px;font-size:15px;color:#b9b6b6}
|
||||
.wst-lite-cart .goods{float:left;width:96.666666%;border-bottom:1px dashed #bfbfbf;padding:5px}
|
||||
.wst-lite-cart .goods .imgs{float:left;width:72px;height:72px;text-align:center;vertical-align:middle;display:block;position:relative}
|
||||
.wst-lite-cart .goods .imgs a{width:72px;height:72px;display:table-cell;vertical-align:middle}
|
||||
.wst-lite-cart .goods .imgs img{max-width:72px;max-height:72px}
|
||||
.wst-lite-cart .goods .number{float:left;width:50%}
|
||||
.wst-lite-cart .goods .number p{float:left;width:92%;margin-top:10px;padding-left:10px}
|
||||
.wst-lite-cart .goods .price{float:right;text-align:right}
|
||||
.wst-lite-cart .goods .price p{float:right;width:100%;line-height:20px;font-weight:bold;color:#df2003}
|
||||
.wst-lite-cart .goods.price span{float:right;width:100%;line-height:20px}
|
||||
.wst-lite-cart .goods .price span a:hover,.wst-lite-cart .goods .number p a:hover{color:#df2003}
|
||||
.wst-lite-cart .comm{float:left;width:100%;font-weight:bold;line-height:32px}
|
||||
.wst-lite-cart .comm span{font-size:15px;color:#e45050}
|
||||
.wst-lite-cart .comm .span2{float:right;margin-right:10px}
|
||||
.wst-lite-cart .btn{color:#fff;cursor:pointer;display:block;font-size:16px;font-weight:400;line-height:30px;margin:10px 0 16px 72px;max-width:200px;position:relative;text-align:center;text-decoration:none;text-transform:uppercase;vertical-align:middle;width:100%;border-radius:5px}
|
||||
@media(min-width:400px){.wst-lite-cart .btn{display:inline-block;margin-right:2.5em}
|
||||
.wst-lite-cart .btn:nth-of-type(even){margin-right:0}}@media(min-width:600px){.wst-lite-cart .btn:nth-of-type(even){margin-right:2.5em}
|
||||
.wst-lite-cart .btn:nth-of-type(5){margin-right:0}}
|
||||
.wst-lite-cart .btn:hover{text-decoration:none}
|
||||
.wst-lite-cart .btn-3{background:#e3403a;border:1px solid #da251f;box-shadow:0 1px 0 #d6251f,1px 1px 1px #e02a24;font-weight:900;letter-spacing:1px;-webkit-transition:all 150ms linear;transition:all 150ms linear}
|
||||
.wst-lite-cart .btn-3:hover{background:#e02c26;border:1px solid rgba(0,0,0,0.05);box-shadow:1px 1px 2px rgba(255,255,255,0.2);color:#ec817d;text-decoration:none;text-shadow:-1px -1px 0 #c2211c;-webkit-transition:all 250ms linear;transition:all 250ms linear}
|
||||
.wst-nav-l{float:left;width:28px;height:33px}
|
||||
.wst-nav-r{float:right;width:28px;height:33px}
|
||||
.wst-bottom{margin:auto;width:1200px;padding-top:20px}
|
||||
.wst-bottom-m{float:left;height:29px;width:100%;border-bottom:1px solid #f24040}
|
||||
.wst-bottom-ml{float:left;height:28px;line-height:28px;padding:0 10px;cursor:pointer;background:#ebebeb;border-top:1px solid #e5e5e5;border-left:1px solid #e5e5e5;border-right:1px solid #e5e5e5;border-bottom:1px solid #f24040;font-family:"microsoft yahei"}
|
||||
.wst-bottom-mr{float:right;margin-right:5px;font-family:"microsoft yahei"}
|
||||
.wst-bottom-ms{background:#f5f5f5;border-top:1px solid #f24040;border-left:1px solid #f24040;border-right:1px solid #f24040;border-bottom:1px solid #f5f5f5}
|
||||
.wst-bottom-mr img{margin-top:7px;margin-right:5px}
|
||||
.wst-bottom-mr a{line-height:28px}
|
||||
.wst-bottom-g{padding:10px 0}
|
||||
.wst-bottom-gs{float:left;padding:10px;width:17.333333%;margin:0 5px;border-radius:3px;border:1px solid #dadada}
|
||||
.wst-bottom-i{float:left;width:208px;height:208px;text-align:center;vertical-align:middle;display:block;position:relative}
|
||||
.wst-bottom-i img{max-width:208px;max-height:208px}
|
||||
.wst-bottom-n1,.wst-bottom-n2,.wst-bottom-n3,.wst-bottom-n4{float:left;width:100%;font-family:"microsoft yahei"}
|
||||
.wst-bottom-n1{margin-top:16px;font-size:15px}
|
||||
.wst-bottom-n2{margin-top:8px}
|
||||
.wst-bottom-n4{margin-top:5px}
|
||||
.wst-bottom-n2l{font-size:15px;color:#eb533e;font-weight:bold}
|
||||
.wst-bottom-n2r,.wst-bottom-n3r{float:right;line-height:20px}
|
||||
.wst-bottom-n2r span{color:#ec198a}
|
||||
.wst-bottom-n3l{color:#bab8b8;line-height:20px}
|
||||
.wst-bottom-n3r span{color:#1398e3}
|
||||
.wst-bottom-gs:hover{cursor:pointer;border:1px solid #f24040}
|
||||
.gray{color:#707070;font-weight:bold}
|
||||
.uinfo-form tr td{width:330px;height:40px}
|
||||
.uinfo>input{width:235px}
|
||||
.uinfo-nav{border-bottom:1px solid #e45050}
|
||||
.uinfo-nav .on{background:none repeat scroll 0 0 #e45050;border-bottom:0 none;color:#fff;font-weight:bold}
|
||||
select{border:solid 1px #ccc;appearance:none;-moz-appearance:none;-webkit-appearance:none;padding-right:14px;background:url("../img/arrow.png") no-repeat scroll right center transparent}
|
||||
select::-ms-expand{display:none}
|
||||
.wst-radio+label{-webkit-appearance:none;background-color:#fafafa;border:1px solid gray;padding:6px;border-radius:50px;display:inline-block;position:relative}
|
||||
.wst-radio+label:after{content:' ';width:6px;height:6px;border-radius:50px;position:absolute;top:3px;background:#99a1a7;box-shadow:inset 0 0 10px rgba(0,0,0,0.3);text-shadow:0;left:3px;font-size:32px}
|
||||
.wst-radio:checked+label{border:1px solid #ff9a02}
|
||||
.wst-radio:checked+label:after{content:' ';width:6px;height:6px;border-radius:50px;position:absolute;top:3px;background:#ff9a02;box-shadow:inset 0 0 10px #ff9a02;text-shadow:0;left:3px;font-size:32px}
|
||||
.radio-box .wst-radio{position:relative;z-index:-654;left:16px;top:0}
|
||||
.mt-1{position:relative;top:1px;left:0;cursor:pointer}
|
||||
.checkbox-box-s{height:20px!important;cursor:pointer}
|
||||
.wst-checkbox-s+label{-webkit-appearance:none;background-color:#fff;border:1px solid #d5d5d5;padding:6px;display:inline-block;position:relative}
|
||||
.wst-checkbox-s+label:after{content:' ';width:6px;height:6px;position:absolute;top:3px;box-shadow:inset 0 0 10px #ccc;text-shadow:0;left:3px;font-size:32px}
|
||||
.wst-checkbox-s:checked+label{border:1px solid #fc7373}
|
||||
.wst-checkbox-s:checked+label:after{content:' ';width:6px;height:6px;position:absolute;top:3px;background:#fc7373;box-shadow:inset 0 0 10px #fc7373;text-shadow:0;left:3px;font-size:32px}
|
||||
.checkbox-box-s .wst-checkbox-s{position:relative;z-index:-654;left:-5px;top:-1px;cursor:pointer}
|
||||
.checkbox-box-s label{position:relative;top:-48px;left:1px}
|
||||
.u-menu{height:25px;margin-left:4px;margin-top:10px}
|
||||
.readMsg,.newMsg{width:36px;height:27px;background:url(../img/user_icon_info.png) no-repeat}
|
||||
.newMsg{background-position:-66px -6px}
|
||||
.readMsg{background-position:-11px -6px}
|
||||
.msg-content{width: 630px}
|
||||
.s-handle{color:#1cbbef!important;display:inline-block;margin:0 3px}
|
||||
.s-handle:hover{color:#085cde}
|
||||
.g{color:green}
|
||||
.addr-btn{width:95px!important}
|
||||
.wst-addr{width:98%;border:1px solid #ccc;margin:10px}
|
||||
.wst-addr tbody tr td{height:20px}
|
||||
.addr-title{text-align:right;width:130px}
|
||||
.del{display:block;float:right;clear:right;padding-right:5px;font-size:15px;color:#c1c1c1!important}
|
||||
.del:hover{color:red!important}
|
||||
.edit>a{display:block;float:right;padding-right:20px;color:#4b4bfb}
|
||||
.edit>a:hover{color:#0d0dc7}
|
||||
.default{width:60px;height:25px;background:orange;line-height:25px;text-align:center;color:white;float:left;clear:left;margin-left:35px}
|
||||
.wst-user-head{float:left;width:100%;border-bottom:1px solid #e45050}
|
||||
.wst-user-head span{float:left;line-height:28px;padding:0 28px;color:#fff;background:#e45050;font-weight:bold}
|
||||
.wst-user-head a{float:right;line-height:28px;padding:0 28px;color:#fff;background:#e45050}
|
||||
.wst-user-tbar{height:35px;padding:2px;clear:both;padding-top:13px;padding-left:10px}
|
||||
.wst-user-content{padding:2px;clear:both;margin-top:10px}
|
||||
.wst-user-buta{height:30px;line-height:30px;margin-right:10px;margin-top:16px;padding:0 20px;color:#fff;background:#e45050;border-radius:3px}
|
||||
.wst-user-buta:hover{color:#fff;background:#ea3232}
|
||||
.wst-user-buta2{height:29px;padding:0 20px;background:#ebebeb;border-radius:3px;border:1px solid #dad7d7;box-shadow:0 0 1px rgba(0,0,0,0.3)}
|
||||
.wst-user-buta2:hover{border-radius:3px;background:#f1f1f1;box-shadow:0 0 0 rgba(0,0,0,0.3)}
|
||||
.wst-sec-but:not(.disabled):not(:disabled):active,.wst-sec-but.active{background:#f96a54;background-clip:padding-box;border:1px solid #f96a54}
|
||||
.wst-sec-but2{outline:0;background:#ebebeb;color:#9f9696;border:1px solid #dad7d7;border-radius:3px;cursor:pointer}
|
||||
.wst-sec-but2:not(.disabled):not(:disabled):active,.wst-sec-but2.active{background:#f1f1f1;background-clip:padding-box}
|
||||
.wst-order-list{width:100%;border-color:grey;border-collapse:separate;border-spacing:0}
|
||||
.wst-order-list .head{height:32px;line-height:32px;text-align:center;background:#f5f5f5;color:#666;font-weight:400}
|
||||
.wst-order-list .empty-row{height:20px}
|
||||
.wst-order-list .order-head{background:#f5f5f5;height:31px;line-height:31px;color:#aaa;overflow:hidden}
|
||||
.wst-order-list .order-head td{padding-left:5px;padding-right:5px;border:1px solid #e5e5e5;border-bottom:0}
|
||||
.wst-order-list .goods-box td:first-child{border-left:1px solid #e5e5e5}
|
||||
.wst-order-list .goods-box td{padding:5px;border:1px solid #e5e5e5;border-top:0;border-left:0}
|
||||
.wst-order-list .time{float:left;margin-right:30px}
|
||||
.wst-order-list .orderno{float:left;margin-right:30px;width:250px;text-align:left}
|
||||
.wst-order-list .shop{float:left;margin-right:20px;width:150px;text-align:left}
|
||||
.wst-order-list .link{float:left}
|
||||
.wst-order-list .goods-img{width:60px;height:60px;text-align:center;vertical-align:middle;display:block;position:relative;float:left}
|
||||
.wst-order-list .goods-img a{display:table-cell;vertical-align:middle;width:60px;height:60px}
|
||||
.wst-order-list .goods-img a img{max-width:60px;max-height:60px}
|
||||
.wst-order-list .goods-name{float:left;margin-left:5px;line-height:25px;width:500px}
|
||||
.wst-order-list .goods-extra{float:right;margin-left:5px}
|
||||
.wst-order-list .line{border-bottom:1px solid #ddd;margin-bottom:2px;padding-bottom:2px}
|
||||
.order-box{margin-bottom:5px;border-bottom:1px solid #ddd}
|
||||
.order-box .box-head{font-weight:bold;height:30px;line-height:30px;padding-left:5px;}
|
||||
.order-pc{float:left;margin:7px 5px 0 0;width:18px;height:18px;background:url(../img/order_source_1.png) 0 0 no-repeat;background-size:90%}
|
||||
.order-mo{float:left;margin:7px 5px 0 0;width:18px;height:18px;background:url(../img/order_source_2.png) 0 0 no-repeat;background-size:100%}
|
||||
.order-wx{float:left;margin:7px 5px 0 0;width:18px;height:18px;background:url(../img/order_source_3.png) 0 0 no-repeat;background-size:100%}
|
||||
.order-app{float:left;margin:7px 5px 0 0;width:18px;height:18px;background:url(../img/order_source_4.png) 0 0 no-repeat;background-size:100%}
|
||||
.order-ios{float:left;margin:7px 5px 0 0;width:18px;height:18px;background:url(../img/order_source_5.png) 0 0 no-repeat;background-size:100%}
|
||||
.order-box .log-box{height:132px}
|
||||
.order-box .log-box .icon{float:left;width:60px;height:60px}
|
||||
.order-box .log-box .icons{float:left;width:60px;height:60px}
|
||||
.order-box .log-box .icon11{background:url(../img/user_icon_rzxx.png) -15px -12px no-repeat}
|
||||
.order-box .log-box .icon21{background:url(../img/user_icon_rzxx.png) -105px -12px no-repeat}
|
||||
.order-box .log-box .icon31{background:url(../img/user_icon_rzxx.png) -194px -12px no-repeat}
|
||||
.order-box .log-box .icon41{background:url(../img/user_icon_rzxx.png) -282px -12px no-repeat}
|
||||
.order-box .log-box .icon51{background:url(../img/user_icon_rzxx.png) -373px -12px no-repeat}
|
||||
.order-box .log-box .icon12{background:url(../img/user_icon_rzxx.png) -15px -62px no-repeat}
|
||||
.order-box .log-box .icon22{background:url(../img/user_icon_rzxx.png) -105px -62px no-repeat}
|
||||
.order-box .log-box .icon32{background:url(../img/user_icon_rzxx.png) -194px -61px no-repeat}
|
||||
.order-box .log-box .icon42{background:url(../img/user_icon_rzxx.png) -282px -63px no-repeat}
|
||||
.order-box .log-box .icon52{background:url(../img/user_icon_rzxx.png) -373px -62px no-repeat}
|
||||
.order-box .log-box .icon13{background:url(../img/user_icon_rzxx.png) -19px -123px no-repeat}
|
||||
.order-box .log-box .icon23{background:url(../img/user_icon_rzxx.png) -105px -122px no-repeat}
|
||||
.order-box .log-box .icon33{background:url(../img/user_icon_rzxx.png) -194px -121px no-repeat}
|
||||
.order-box .log-box .icon43{background:url(../img/user_icon_rzxx.png) -282px -122px no-repeat}
|
||||
.order-box .log-box .icon53{background:url(../img/user_icon_rzxx.png) -373px -121px no-repeat}
|
||||
.order-box .log-box .arrow{float:left;color:#979797;font-size:15px;font-weight:bold;margin-top:18px}
|
||||
.order-box .log-box .arrow2{color:#7ebb53}
|
||||
.order-box .log-box .state{float:left;width:100%;margin-left:18px}
|
||||
.order-box .log-box .state2{float:left;width:100%;position:relative}
|
||||
.order-box .log-box .state2 p{float:left;width:185px;height:50px;text-align:left;margin-left:12px;color:#f05858;font-size:15px}
|
||||
.order-box .log-box .state2 .path{position:absolute;z-index:10}
|
||||
.order-box .log-box .state2 .path span{float:left;width:185px;height:50px;text-align:left;margin-left:12px;background:#fff}
|
||||
.order-box .delivery-box{height:100px;border-bottom:1px solid #ddd}
|
||||
.order-box th{font-weight:normal}
|
||||
.order-box .goods-head{border-top:2px solid #fc7a64;background:#f3f3f3;display:block;height:25px;line-height:25px;margin:0 0 10px;padding:5px 0}
|
||||
.order-box .goods-head .goods{float:left;width:650px;padding-left:15px}
|
||||
.order-box .goods-head .price{float:left;width:100px}
|
||||
.order-box .goods-head .num{float:left;width:100px}
|
||||
.order-box .goods-head .t-price{float:left;width:105px}
|
||||
.order-box .shop{padding-left:15px;height:25px;line-height:25px;border-bottom:2px solid #fdd8d2;color:#e55356;font-weight:bold;font-size:15px;padding-bottom:5px}
|
||||
.order-box .item{padding-top:5px;padding-bottom:5px;border:1px solid #eee;border-top:0}
|
||||
.order-box .item .goods{float:left;width:650px;padding-left:15px}
|
||||
.order-box .item .goods .img{float:left;width:80px;height:80px}
|
||||
.order-box .item .goods .name{float:left;width:390px;height:80px;margin-left:5px}
|
||||
.order-box .item .goods .spec{float:left;width:165px;margin-left:5px}
|
||||
.order-box .item .price{float:left;width:100px}
|
||||
.order-box .item .num{float:left;width:100px}
|
||||
.order-box .item .t-price{float:left;width:100px}
|
||||
.order-box .goods-footer{padding-right:10px;margin-bottom:10px}
|
||||
.order-box .line{border-top:1px solid #ddd}
|
||||
.order-box .goods-summary{margin-top:10px}
|
||||
.order-box .summary{height:30px;line-height:30px}
|
||||
.order-box .orderScore{margin-right:5px}
|
||||
.order-box .log td{height:25px;line-height:25px;padding-left:15px}
|
||||
.score-add{color:red;font-size:16px;font-weight:bold}
|
||||
.score-reduce{color:green;font-size:16px;font-weight:bold}
|
||||
.score-head{background:#eee;height:120px;width:100%}
|
||||
.score-head .user-logo{float:left;margin-top:10px;margin-left:20px;width:100px;height:100px}
|
||||
.score-head .user-logo img{-moz-border-radius:100px;-webkit-border-radius:100px}
|
||||
.score-head .user-info{float:left;padding-top:25px;padding-left:20px}
|
||||
.score-head .user-info .userName{height:25px;line-height:25px}
|
||||
.score-head .user-info .userScore{height:25px;line-height:25px}
|
||||
.score-head .user-info .draw-tips{color:red;margin-left:20px}
|
||||
.money-add{color:red;font-size:16px;font-weight:bold}
|
||||
.money-reduce{color:green;font-size:16px;font-weight:bold}
|
||||
.money-head{background:#eee;height:120px;width:100%}
|
||||
.money-head .user-logo{float:left;margin-top:10px;margin-left:20px;width:100px;height:100px}
|
||||
.money-head .user-logo img{-moz-border-radius:100px;-webkit-border-radius:100px}
|
||||
.money-head .user-info{float:left;padding-top:25px;padding-left:20px}
|
||||
.money-head .user-info .userName{height:25px;line-height:25px}
|
||||
.money-head .user-info .userScore{height:25px;line-height:25px}
|
||||
|
||||
.score-head .user-info .cashmoney-box{margin-left:20px;}
|
||||
.score-head .cashbtn{padding: 3px 5px;border: 1px solid #333;}
|
||||
.score-head .cashbtn:hover{padding: 3px 5px;border: 1px solid #e45050;}
|
||||
.score-head .usermoney{width:150px ; float:left;}
|
||||
.score-head .cashbox{width:300px; float:left;}
|
||||
.score-head .lockbox{width:150px ; float:left;}
|
||||
|
||||
.wst-fav-listg{float:left;width:100%;padding-top:12px}
|
||||
.wst-fav-listg a,.wst-fav-shop span{color:#6a6868}
|
||||
.wst-fav-goods{float:left;width:21.88888888%;padding:10px;background:#fff;border:1px solid #dadada;border-radius:3px;margin-left:6px;margin-bottom:20px}
|
||||
.wst-fav-goods:hover{border:1px solid #fe7f6c}
|
||||
.wst-fav-goodp1{margin-top:8px}
|
||||
.wst-fav-goodp1,.wst-fav-goodp2{float:left;width:100%;line-height:20px;font-family:"microsoft yahei"}
|
||||
.wst-fav-goodpr{color:#ea523b;font-size:16px;font-weight:bold}
|
||||
.wst-fav-goodpr2{color:#ed1a8d}
|
||||
.wst-fav-goodpr3{color:#c4c2c2}
|
||||
.wst-fav-goodpr4{color:#249ee7}
|
||||
.wst-fav-goimg{float:left;width:216px;height:216px;text-align:center;vertical-align:middle;display:block;position:relative}
|
||||
.wst-fav-goimg img{max-width:216px;max-height:216px;cursor:pointer}
|
||||
.wst-fav-goimg span{width:216px;height:38px;line-height:38px;font-size:15px;color:#fff;opacity:.8;background:#605d56;display:block;position:absolute;left:0;bottom:0;display:none}
|
||||
.wst-fav-goimg span:hover{background:#d0260c;cursor:pointer}
|
||||
.wst-fav-gonam{float:left;width:100%;height:36px;color:#838383;font-size:15px;font-family:"microsoft yahei";margin-top:6px}
|
||||
.wst-fav-shop{float:left;width:100%;margin-top:6px}
|
||||
.wst-fav-shop span{margin-right:10px}
|
||||
.wst-fav-shop img{float:left;margin-top:1px;width:15px;margin-right:3px}
|
||||
.wst-fav-pa{padding:25px 0 0 350px}
|
||||
.wst-favo-shop{margin-top:20px;padding:8px;border:1px solid #dddbdb}
|
||||
.wst-favo-shop:hover{border:1px solid #ec7e67}
|
||||
.wst-favo-shopl{float:left;width:150px}
|
||||
.wst-favo-shopr{float:right;width:80%}
|
||||
.wst-favo-shopimg{float:left;width:150px;height:150px;text-align:center;vertical-align:middle;display:block;position:relative}
|
||||
.wst-favo-shopimg img{max-width:150px;max-height:150px}
|
||||
.wst-favo-shopl p{float:left;height:25px;width:100%;line-height:25px;text-align:center;font-family:"microsoft yahei"}
|
||||
.wst-favo-shopa{float:left;padding:0 8px;margin-left:3px;height:22px;line-height:22px;border:1px solid #7a7a7a;color:#7a7a7a;cursor:pointer}
|
||||
.wst-favo-shopa:hover{color:#ec7e67;border:1px solid #ec7e67;box-shadow:0 0 1px rgba(0,0,0,0.3)}
|
||||
.wst-favo-more{float:left;width:100%}
|
||||
.wst-favo-more a{font-size:13px;color:#666}
|
||||
.wst-favo-more a:hover{color:#eb5f43}
|
||||
.wst-favo-more span{width:100px;height:20px;color:#ec7e67;line-height:20px;font-weight:bold;text-align:center;border-bottom:2px solid #ec7e67}
|
||||
.wst-favo-good{padding-top:2px;margin-left:22px}
|
||||
.wst-favo-goods{float:left;margin:0 5px}
|
||||
.wst-favo-goodimg{width:135px;height:135px;text-align:center;vertical-align:middle;display:block;position:relative}
|
||||
.wst-favo-goodimg a{width:135px;height:135px;display:table-cell;vertical-align:middle}
|
||||
.wst-favo-goodimg a img{max-width:135px;max-height:135px}
|
||||
.wst-favo-goods span{float:left;width:100%;margin-top:1px;text-align:center;color:#fc6047;font-weight:bold;font-size:15px}
|
||||
.als-container{position:relative;width:100%;margin:0 auto}
|
||||
.als-viewport{position:relative;overflow:hidden;margin:0 auto}
|
||||
.als-wrapper{position:relative;list-style:none}
|
||||
.als-item{position:relative;display:block;text-align:center;cursor:pointer;float:left}
|
||||
.als-prev,.als-next{position:absolute;cursor:pointer;clear:both}
|
||||
.als-item img{width:135px;height:135px;vertical-align:middle}
|
||||
.als-prev,.als-next{top:40px}
|
||||
.als-prev{left:-22px}
|
||||
.als-next{right:-22px}
|
||||
.goods-info img{margin-top:10px;display:block;float:left}
|
||||
.goodsName{margin-top:10px;height:50px;line-height:50px;overflow:hidden;float:left}
|
||||
.appraise-complate{width:980px;min-height:265px;margin-top:10px;border:1px solid #ccc}
|
||||
.appraise-box{width:980px;height:350px;margin:10px 0;border:1px solid #ccc}
|
||||
.o-goods-info{width:210px;height:258px;padding-left:5px;padding-top:5px;float:left;overflow:hidden}
|
||||
.o-goods-info img{width:180px;height:180px}
|
||||
.appraise-area{word-wrap:break-word;word-break:break-all;padding-top:5px;width:740px;height:100%;float:right}
|
||||
.appraise-item{width:500px}
|
||||
.appraise-title{margin-top:3px;float:left;width:70px;font-weight:bold}
|
||||
.appraise-content{float:left;width:430px}
|
||||
.complate-content{width:600px;max-height:180px;line-height:24px;overflow:hidden}
|
||||
.webuploader-pick{height:25px;line-height:25px}
|
||||
.appraise-btn{cursor:pointer;width:60px;height:30px;background:#e23e3d;border:0;color:#fff;border-radius:3px}
|
||||
.wst-msg-tips-box{background-color:#f0a869;border-radius:12px;color:white;cursor:pointer;display:inline-block;height:24px;left:30px;line-height:24px;position:relative;text-align:center;top:0;width:24px}
|
||||
.msgContent{padding:10px}
|
||||
.wst-sec-but{outline:0;background:#e45050;color:#fff;border:1px solid #d33110;border-radius:3px;cursor:pointer}
|
||||
.u-btn{width:80px;height:30px;font-weight:bold;cursor:pointer}
|
||||
.u-btn:hover{background:#ea3232 none repeat scroll 0 0;cursor:pointer}
|
||||
.s-btn{margin:10px}
|
||||
.tc{text-align:center}
|
||||
.g_bd{border:1px solid #f2f2f2}
|
||||
.pd10{padding:10px}
|
||||
.my_consultbox{margin:5px 0;width:100%;overflow:hidden}
|
||||
.my_consult{width:70%;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;float:left}
|
||||
.consult_time{float:right;margin-right:1%}
|
||||
.gc_replytit{color:#ff6c00}
|
||||
.c999{color:#999}
|
||||
.gc_a{color:#005ea7}
|
||||
.gc_a:hover{color:#005ea7}
|
||||
.order_remaker{color:#ff6c00;padding:5px;border:1px solid #ddd;border-top:0}
|
||||
.order_from{ margin-left: 10px;color: #fff;border: 1px solid red;padding: 2px 4px;border-radius: 10px;background-color: #FF247A;}
|
||||
.wst-inform-head{float:left;width:100%;border-bottom:1px solid #e45050}
|
||||
.wst-inform-head span{float:left;line-height:28px;padding:0 28px;color:#fff;background:#e45050;font-weight:bold}
|
||||
.wst-inform-head a{float:right;line-height:28px;padding:0 28px;color:#fff;background:#e45050}
|
||||
.wst-inform-box{border-bottom: 1px solid #ddd;height: auto;overflow:hidden;padding: 10px;line-height: 30px;}
|
||||
.wst-inform-content{margin-right:50px;background:#fff;min-height:948px;height:auto;width:65%;float:left;filter:progid:DXImageTransform.Microsoft.Shadow(color = #909090,direction = 120,strength = 4);-moz-box-shadow:2px 2px 10px #909090;-webkit-box-shadow:2px 2px 10px #909090;box-shadow:0 1px 3px rgba(0,0,0,0.3)}
|
||||
.wst-remind{width: 28%;float: left;}
|
||||
.inform-log-box{line-height: 20px;padding: 20px;}
|
||||
.wst-inform-box .wst-shopName{ border-bottom: 1px solid #ddd;display: inline-block;width: 20%;text-align:right;}
|
||||
.wst-inform-box .title{width: 20%;text-align:right;display: inline-block;vertical-align: top;}
|
||||
.wst-inform-box .goods-img{width: 70%;display: inline-block;}
|
||||
.wst-inform-box .goods-img .wst-img img{width: 40px;height: 40px;}
|
||||
.wst-inform-box .goods-img .wst-text a{text-decoration:none;}
|
||||
.wst-remind .content{float: left;}
|
||||
.wst-remind .alert {color: #C09853;background-color: #FCF8E3; padding: 9px 14px;border: 1px solid #FBEED5;text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
.wst-inform-box .model{width: 20%;height: 100%;display: inline-block;}
|
||||
.order-box .log-box .state3{margin-left: 10px;}
|
||||
.order-box .log-box .state3 p {float: left;width: 170px;margin-left: 20px;height: 30px;text-align: left;color: #f05858;font-size: 15px;
|
||||
}
|
134
hyhproject/home/view/default/footer.html
Executable file
@ -0,0 +1,134 @@
|
||||
<div style="border-top: 1px solid #df2003;padding-bottom:25px;margin-top:35px;min-width:1200px;"></div>
|
||||
<div class="wst-footer-flink">
|
||||
<div class="wst-footer" >
|
||||
|
||||
<div class="wst-footer-cld-box">
|
||||
<div class="wst-footer-fl" style="text-align: left;padding-left:10px;">友情链接</div>
|
||||
|
||||
<div style="padding-left:40px;">
|
||||
{wst:friendlink cache='86400'}
|
||||
<div style="float:left;"><a class="flink-hover" href="{$vo['friendlinkUrl']}" target="_blank">{$vo["friendlinkName"]}</a> </div>
|
||||
{/wst:friendlink}
|
||||
<div class="wst-clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<ul class="wst-footer-info">
|
||||
<li><div class="wst-footer-info-img wst-fimg1"></div>
|
||||
<div class="wst-footer-info-text">
|
||||
<h1>支付宝支付</h1>
|
||||
<p>支付宝签约商家</p>
|
||||
</div>
|
||||
</li>
|
||||
<li><div class="wst-footer-info-img wst-fimg2"></div>
|
||||
<div class="wst-footer-info-text">
|
||||
<h1>正品保证</h1>
|
||||
<p>100%原产地</p>
|
||||
</div>
|
||||
</li>
|
||||
<li><div class="wst-footer-info-img wst-fimg3"></div>
|
||||
<div class="wst-footer-info-text">
|
||||
<h1>退货无忧</h1>
|
||||
<p>七天退货保障</p>
|
||||
</div>
|
||||
</li>
|
||||
<li><div class="wst-footer-info-img wst-fimg4"></div>
|
||||
<div class="wst-footer-info-text">
|
||||
<h1>免费配送</h1>
|
||||
<p>满额包邮</p>
|
||||
</div>
|
||||
</li>
|
||||
<li><div class="wst-footer-info-img wst-fimg5"></div>
|
||||
<div class="wst-footer-info-text">
|
||||
<h1>货到付款</h1>
|
||||
<p>400城市送货上门</p>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="wst-footer-help">
|
||||
<div class="wst-footer">
|
||||
<div class="wst-footer-hp-ck1">
|
||||
{volist name=":WSTHelps(5,6)" id="vo1"}
|
||||
<div class="wst-footer-wz-ca">
|
||||
<div class="wst-footer-wz-pt">
|
||||
<span class="wst-footer-wz-pn">{$vo1["catName"]}</span>
|
||||
<ul style='margin-left:25px;'>
|
||||
{volist name="vo1['articlecats']" id="vo2"}
|
||||
<li style='list-style:disc;color:#999;font-size:12px;'>
|
||||
<a href="{:Url('Home/Helpcenter/view',array('id'=>$vo2['articleId']))}">{:WSTMSubstr($vo2['articleTitle'],0,8)}</a>
|
||||
</li>
|
||||
{/volist}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{/volist}
|
||||
|
||||
<div class="wst-contact">
|
||||
<ul>
|
||||
<li style="height:30px;">
|
||||
<div class="icon-phone"></div><p class="call-wst">服务热线:</p>
|
||||
</li>
|
||||
<li style="height:38px;">
|
||||
{if(WSTConf('CONF.serviceTel')!='')}<p class="email-wst">{:WSTConf('CONF.serviceTel')}</p>{/if}
|
||||
</li>
|
||||
<li style="height:150px;">
|
||||
<div class="qr-code" style="position:relative;">
|
||||
<img src="__IMGURL__/upload/sysconfigs/app.jpg" style="height:90px;">
|
||||
|
||||
</span>
|
||||
{if(WSTConf('CONF.wxenabled')==1) && WSTConf('CONF.wxAppLogo')}
|
||||
<img src="__IMGURL__/{:WSTConf('CONF.wxAppLogo')}" style="height:110px;">
|
||||
{/if}
|
||||
<div class="focus-wst">
|
||||
{if(WSTConf('CONF.serviceQQ')!='')}
|
||||
<p class="focus-wst-qr">在线客服:</p>
|
||||
<p class="focus-wst-qra">
|
||||
<a href="tencent://message/?uin={:WSTConf('CONF.serviceQQ')}&Site=QQ交谈&Menu=yes">
|
||||
<img border="0" src="http://wpa.qq.com/pa?p=1:{:WSTConf('CONF.serviceQQ')}:7" alt="QQ交谈" width="71" height="24" />
|
||||
</a>
|
||||
</p>
|
||||
{/if}
|
||||
{if(WSTConf('CONF.serviceEmail')!='')}
|
||||
<p class="focus-wst-qr">商城邮箱:</p>
|
||||
<p class="focus-wst-qre">{:WSTConf('CONF.serviceEmail')}</p>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<a style="float: left;margin-left: -70px;margin-top:5px; color: #999;">下载APP</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="wst-clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="wst-footer-hp-ck3">
|
||||
<div class="links">
|
||||
{php}$navs = WSTNavigations(1);{/php}
|
||||
{volist name="$navs" id='vo'}
|
||||
<a href="{$vo['navUrl']}" {if $vo['isOpen']==1}target="_blank"{/if}>{$vo['navTitle']}</a>
|
||||
{if $i< count($navs)} | {/if}
|
||||
{/volist}
|
||||
</div>
|
||||
<div class="copyright">
|
||||
{php}
|
||||
if(WSTConf('CONF.mallFooter')!=''){
|
||||
echo htmlspecialchars_decode(WSTConf('CONF.mallFooter'));
|
||||
}
|
||||
{/php}
|
||||
{php}
|
||||
if(WSTConf('CONF.visitStatistics')!=''){
|
||||
echo htmlspecialchars_decode(WSTConf('CONF.visitStatistics'))."<br/>";
|
||||
}
|
||||
{/php}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{:hook('initCronHook')}
|
141
hyhproject/home/view/default/header.html
Executable file
@ -0,0 +1,141 @@
|
||||
<div class='wst-search-container'>
|
||||
<div class='wst-logo'>
|
||||
<a href='{$Request.root.true}' title="{:WSTConf('CONF.mallName')}" >
|
||||
<img src="__IMGURL__/{:WSTConf('CONF.mallLogo')}" height="120" width='240' title="{:WSTConf('CONF.mallName')}" alt="{:WSTConf('CONF.mallName')}">
|
||||
</a>
|
||||
</div>
|
||||
<div class="wst-search-box">
|
||||
<div class='wst-search'>
|
||||
<input type="hidden" id="search-type" value="{:isset($keytype)?1:0}"/>
|
||||
<ul class="j-search-box">
|
||||
<li class="j-search-type">
|
||||
{if empty($is_icp)}搜<span>{if isset($keytype)}店铺{else}商品{/if}</span>{else /}搜<span>商品 </span>{/if}<i class="arrow"> </i>
|
||||
</li>
|
||||
{if empty($is_icp)}
|
||||
<li class="j-type-list">
|
||||
{if isset($keytype)}
|
||||
<div data="0">商品</div>
|
||||
{else}
|
||||
<div data="1">店铺</div>
|
||||
{/if}
|
||||
</li>
|
||||
{/if}
|
||||
</ul>
|
||||
<input type="text" id='search-ipt' class='search-ipt' placeholder='{:WSTConf("CONF.adsGoodsWordsSearch")}' value='{:isset($keyword)?$keyword:""}'/>
|
||||
<input type='hidden' id='adsGoodsWordsSearch' value='{:WSTConf("CONF.adsGoodsWordsSearch")}'>
|
||||
<input type='hidden' id='adsShopWordsSearch' value='{:WSTConf("CONF.adsShopWordsSearch")}'>
|
||||
<div id='search-btn' class="search-btn" onclick='javascript:WST.search(this.value)'>搜索</div>
|
||||
</div>
|
||||
<div class="wst-search-keys">
|
||||
{php}$searchKeys = WSTSearchKeys();{/php}
|
||||
{volist name="$searchKeys" id="vo"}
|
||||
<a href='{:Url("home/goods/search","keyword=".$vo)}'>{$vo}</a>
|
||||
{if $i< count($searchKeys)} | {/if}
|
||||
{/volist}
|
||||
</div>
|
||||
</div>
|
||||
<div class="wst-cart-box">
|
||||
<a href="{:url('home/carts/index')}" target="_blank" onclick="WST.currentUrl('{:url("home/carts/index")}');"><span class="word j-word">我的购物车<span class="num" id="goodsTotalNum">0</span></span></a>
|
||||
<div class="wst-cart-boxs hide">
|
||||
<div id="list-carts"></div>
|
||||
<div id="list-carts2"></div>
|
||||
<div id="list-carts3"></div>
|
||||
<div class="wst-clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
{/* 购物车 */}
|
||||
<script id="list-cart" type="text/html">
|
||||
{{# for(var i = 0; i < d.list.length; i++){ }}
|
||||
<div class="goods" id="j-goods{{ d.list[i].cartId }}">
|
||||
<div class="imgs"><a href="{{ WST.U('home/goods/detail','id='+d.list[i].goodsId) }}"><img class="goodsImgc" data-original="__IMGURL__/{{ d.list[i].goodsImg }}" title="{{ d.list[i].goodsName }}"></a></div>
|
||||
<div class="number"><p><a href="{{ WST.U('home/goods/detail','id='+d.list[i].goodsId) }}">{{WST.cutStr(d.list[i].goodsName,26)}}</a></p><p>数量:{{ d.list[i].cartNum }}</p></div>
|
||||
<div class="price"><p>¥{{ d.list[i].shopPrice }}</p><span><a href="javascript:WST.delCheckCart({{ d.list[i].cartId }})">删除</a></span></div>
|
||||
</div>
|
||||
{{# } }}
|
||||
</script>
|
||||
</div>
|
||||
<div class="wst-clear"></div>
|
||||
{/* 左侧菜单栏 */}
|
||||
<div class="wst-nav-menus">
|
||||
<div class="nav-w" style="position: relative;">
|
||||
<div class="w-spacer"></div>
|
||||
<div class="dorpdown {if isset($hideCategory)}j-index{/if}" id="wst-categorys">
|
||||
<div class="dt j-cate-dt">
|
||||
<a href="javascript:void(0)">全部商品分类</a>
|
||||
</div>
|
||||
<div class="dd j-cate-dd" {if !isset($hideCategory)}style="display:none" {/if}>
|
||||
<div class="dd-inner">
|
||||
{volist name=":WSTSideCategorys()" id="vo" key="k"}
|
||||
{php}if($vo['catId']!=389){{/php}
|
||||
<div id="cat-icon-{$k}" class="item fore1 {if ($key>=12)}over-cat{/if}">
|
||||
<h3>
|
||||
<div class="{if ($key>=12)} over-cat-icon {else /} cat-icon-{$k} {/if}"></div>
|
||||
<a href="{:Url('home/goods/lists','cat='.$vo['catId'])}" target="_blank">{$vo['catName']}</a>
|
||||
</h3>
|
||||
</div>
|
||||
{php}}{/php}
|
||||
{/volist}
|
||||
</div>
|
||||
<div style="display: none;" class="dorpdown-layer" id="index_menus_sub">
|
||||
{volist name=":WSTSideCategorys()" id="vo" key="k"}
|
||||
<div class="item-sub" i="{$k}">
|
||||
<div class="item-brands">
|
||||
<div class="brands-inner">
|
||||
{wst:brand cat="$vo['catId']" id="bvo" num='6' cache='86400'}
|
||||
<a target="_blank" class="img-link" href="{:url('home/goods/lists',['cat'=>$bvo['catId'],'brand'=>$bvo['brandId']])}">
|
||||
<img width="83" height="65" class='categeMenuImg' data-original="__IMGURL__/{$bvo['brandImg']}">
|
||||
</a>
|
||||
{/wst:brand}
|
||||
<div class="wst-clear"></div>
|
||||
</div>
|
||||
<div class='shop-inner'>
|
||||
{wst:shop cat="$vo['catId']" id="bvo" num='4' cache='86400'}
|
||||
<a target="_blank" class="img-link" href="{:url('home/shops/home',['shopId'=>$bvo['shopId']])}">
|
||||
<img width="83" height="65" class='categeMenuImg' data-original="__IMGURL__/{$bvo['shopImg']}">
|
||||
</a>
|
||||
{/wst:shop}
|
||||
<div class="wst-clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="subitems">
|
||||
{php}if(isset($vo['list'])){{/php}
|
||||
{volist name="vo['list']" id="vo2"}
|
||||
<dl class="fore2">
|
||||
<dd>
|
||||
<a
|
||||
class="cat2_tit"
|
||||
target="_blank"
|
||||
href="{:Url('home/goods/lists','cat='.$vo2['catId'])}">
|
||||
{$vo2['catName']}
|
||||
<i>></i>
|
||||
</a>
|
||||
{php}if(isset($vo2['list'])){{/php}
|
||||
{volist name="vo2['list']" id="vo3"}
|
||||
<a target="_blank" href="{:Url('home/goods/lists','cat='.$vo3['catId'])}">{$vo3['catName']}</a>
|
||||
{/volist}
|
||||
{php}}{/php}
|
||||
<div class="wst-clear"></div>
|
||||
</dd>
|
||||
</dl>
|
||||
{/volist}
|
||||
{php}}{/php}
|
||||
</div>
|
||||
</div>
|
||||
{/volist}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/* 横栏菜单 */}
|
||||
<div id="wst-nav-items">
|
||||
<ul>
|
||||
{volist name=":WSTNavigations(0)" id='vo'}
|
||||
<li class="fore1">
|
||||
<a href="{$vo['navUrl']}" {if $vo['isOpen']==1}target="_blank"{/if}>{$vo['navTitle']}</a>
|
||||
</li>
|
||||
{/volist}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="wst-clear"></div>
|
12
hyhproject/home/view/default/header_lite.html
Executable file
@ -0,0 +1,12 @@
|
||||
<div class='wst-lite-container'>
|
||||
<div class='wst-logo'>
|
||||
<a href='{$Request.root.true}' title="{:WSTConf('CONF.mallName')}" >
|
||||
<img src="__IMGURL__/{:WSTConf('CONF.mallLogo')}" height="120" width='240' title="{:WSTConf('CONF.mallName')}" alt="{:WSTConf('CONF.mallName')}">
|
||||
</a>
|
||||
</div>
|
||||
<div class="wst-lite-title">{$liteTitle}</div>
|
||||
<div class="wst-lite-index"><a href='{$Request.root.true}'>返回首页</a></div>
|
||||
<div class="wst-clear"></div>
|
||||
</div>
|
||||
<div style="border-bottom: 2px solid #df2003;"></div>
|
||||
<div class="wst-clear"></div>
|
BIN
hyhproject/home/view/default/img/alipays.png
Executable file
After Width: | Height: | Size: 14 KiB |
BIN
hyhproject/home/view/default/img/apply-ok.png
Executable file
After Width: | Height: | Size: 29 KiB |
BIN
hyhproject/home/view/default/img/apply.png
Executable file
After Width: | Height: | Size: 17 KiB |
BIN
hyhproject/home/view/default/img/arrow.png
Executable file
After Width: | Height: | Size: 88 B |
BIN
hyhproject/home/view/default/img/bgimg_error_spcc.png
Executable file
After Width: | Height: | Size: 25 KiB |
BIN
hyhproject/home/view/default/img/bgimg_error_xtcc.png
Executable file
After Width: | Height: | Size: 12 KiB |
BIN
hyhproject/home/view/default/img/bgimg_error_ymcc.png
Executable file
After Width: | Height: | Size: 28 KiB |
BIN
hyhproject/home/view/default/img/btn_80x80.png
Executable file
After Width: | Height: | Size: 8.3 KiB |
BIN
hyhproject/home/view/default/img/btn_QQ.png
Executable file
After Width: | Height: | Size: 3.2 KiB |
BIN
hyhproject/home/view/default/img/btn_focus.png
Executable file
After Width: | Height: | Size: 1.3 KiB |
BIN
hyhproject/home/view/default/img/btn_pay.png
Executable file
After Width: | Height: | Size: 4.0 KiB |
BIN
hyhproject/home/view/default/img/btn_search_red.png
Executable file
After Width: | Height: | Size: 1.3 KiB |
BIN
hyhproject/home/view/default/img/btn_slide_left.png
Executable file
After Width: | Height: | Size: 1.0 KiB |
BIN
hyhproject/home/view/default/img/btn_slide_right.png
Executable file
After Width: | Height: | Size: 1.2 KiB |
BIN
hyhproject/home/view/default/img/btn_sqkd_back.png
Executable file
After Width: | Height: | Size: 1.8 KiB |
BIN
hyhproject/home/view/default/img/btn_wechat.png
Executable file
After Width: | Height: | Size: 3.4 KiB |
BIN
hyhproject/home/view/default/img/close_ads.gif
Executable file
After Width: | Height: | Size: 1.1 KiB |
BIN
hyhproject/home/view/default/img/contrast.png
Executable file
After Width: | Height: | Size: 3.2 KiB |
BIN
hyhproject/home/view/default/img/coupon_bg.png
Executable file
After Width: | Height: | Size: 19 KiB |
BIN
hyhproject/home/view/default/img/coupon_item1.png
Executable file
After Width: | Height: | Size: 12 KiB |
BIN
hyhproject/home/view/default/img/coupon_item2.png
Executable file
After Width: | Height: | Size: 14 KiB |
BIN
hyhproject/home/view/default/img/coupon_item_bg.png
Executable file
After Width: | Height: | Size: 2.6 KiB |
BIN
hyhproject/home/view/default/img/cut_bg.png
Executable file
After Width: | Height: | Size: 219 B |
BIN
hyhproject/home/view/default/img/detail_qr_icon.png
Executable file
After Width: | Height: | Size: 1.2 KiB |
BIN
hyhproject/home/view/default/img/error_1.png
Executable file
After Width: | Height: | Size: 27 KiB |
BIN
hyhproject/home/view/default/img/examine.png
Executable file
After Width: | Height: | Size: 29 KiB |
BIN
hyhproject/home/view/default/img/f1_bg.png
Executable file
After Width: | Height: | Size: 80 KiB |
BIN
hyhproject/home/view/default/img/f3_bg.png
Executable file
After Width: | Height: | Size: 76 KiB |
BIN
hyhproject/home/view/default/img/f5_bg.png
Executable file
After Width: | Height: | Size: 105 KiB |
BIN
hyhproject/home/view/default/img/f7_bg.png
Executable file
After Width: | Height: | Size: 17 KiB |
BIN
hyhproject/home/view/default/img/flag-each-69x26.png
Executable file
After Width: | Height: | Size: 1.3 KiB |
BIN
hyhproject/home/view/default/img/footer_icon.png
Executable file
After Width: | Height: | Size: 9.3 KiB |
BIN
hyhproject/home/view/default/img/goods_detail_arrow_r.png
Executable file
After Width: | Height: | Size: 1.1 KiB |
BIN
hyhproject/home/view/default/img/goodsdetails_iconг▀jrdp.png
Executable file
After Width: | Height: | Size: 1.1 KiB |
BIN
hyhproject/home/view/default/img/goodsdetails_iconя╝┐jrdp.png
Executable file
After Width: | Height: | Size: 1.1 KiB |
BIN
hyhproject/home/view/default/img/goodspay_img.png
Executable file
After Width: | Height: | Size: 19 KiB |
BIN
hyhproject/home/view/default/img/groupon_bg.png
Executable file
After Width: | Height: | Size: 54 KiB |
BIN
hyhproject/home/view/default/img/ic_volume_24x24.png
Executable file
After Width: | Height: | Size: 15 KiB |
BIN
hyhproject/home/view/default/img/icon-mjzxsy.png
Executable file
After Width: | Height: | Size: 19 KiB |
BIN
hyhproject/home/view/default/img/icon_class_zydp.png
Executable file
After Width: | Height: | Size: 1.1 KiB |
BIN
hyhproject/home/view/default/img/icon_dianpujie_01.png
Executable file
After Width: | Height: | Size: 3.0 KiB |
BIN
hyhproject/home/view/default/img/icon_dianpujie_02.png
Executable file
After Width: | Height: | Size: 1.1 KiB |
BIN
hyhproject/home/view/default/img/icon_dianpujie_03.png
Executable file
After Width: | Height: | Size: 1.2 KiB |
BIN
hyhproject/home/view/default/img/icon_dianpujie_04.png
Executable file
After Width: | Height: | Size: 1.1 KiB |
BIN
hyhproject/home/view/default/img/icon_dianpujie_09.png
Executable file
After Width: | Height: | Size: 1.1 KiB |
BIN
hyhproject/home/view/default/img/icon_fenlei.png
Executable file
After Width: | Height: | Size: 968 B |