整理文件

This commit is contained in:
等风来 2018-08-24 08:31:03 +08:00
parent b2ec652a10
commit 0f3d2e25be
9 changed files with 0 additions and 1218 deletions

View File

@ -224,75 +224,4 @@ class Store extends AuthController
return $this->fetch();
}
public function cut_list(){
$bargain = StoreBargain::getList();
$bargain = StoreBargainUser::getUserList($bargain);
$bargainUser = StoreBargainUser::getBargainUserStatusSuccess();
$this->assign([
'bargain'=>$bargain,
'bargainUser'=>$bargainUser,
]);
return $this->fetch();
}
public function cut_con($id = 0,$bargainUid = 0){
if(!$id) return $this->failed('参数错误');
//砍价产品
$bargain = StoreBargain::getBargainTerm($id);
$bargain['time'] = time();
$description = htmlspecialchars_decode($bargain['description']);
$rule = isset($bargain['rule']) ? htmlspecialchars_decode($bargain['rule']) : '';
if(!$bargainUid)
//判断当前登录人是不是砍价
if(!StoreBargainUser::isBargainUser($id,$this->userInfo['uid']))
// 参与砍价
if(!StoreBargainUser::setBargain($id,$this->userInfo['uid'])) return $this->failed('参与失败,请重新参与砍价',Url::build('store/bargain'));
//顶部人数
StoreBargain::addBargainLook($id);
$lookCount = StoreBargain::getBargainLook()['look'];//观看人数
$shareCount = StoreBargain::getBargainShare()['share'];//观看人数
//砍价
$selfCut = 0;
if(!$bargainUid){
$res = StoreBargainUserHelp::setBargainUserHelp($id,$bargainUid ? $bargainUid : $this->userInfo['uid'],$this->userInfo['uid']);
if($res) {
$selfCut = 1;
if(!StoreBargainUserHelp::getSurplusPrice($id,$bargainUid ? $bargainUid : $this->userInfo['uid'])){
$bargainUserTableId = StoreBargainUser::getBargainUserTableId($id,$bargainUid ? $bargainUid : $this->userInfo['uid']);
$bargain = StoreBargain::where('id',$id)->find()->toArray();
$bargainUser = StoreBargainUser::where('id',$bargainUserTableId)->find()->toArray();
}
}
$userInfoBargain = $this->userInfo;
}else $userInfoBargain = User::getUserInfo($bargainUid);
//砍价帮
$bargainUserTableId = StoreBargainUser::setUserBargain($id,$bargainUid ? $bargainUid : $this->userInfo['uid']);
$storeBargainUserHelp = StoreBargainUserHelp::getList($bargainUserTableId,15);
//获取砍价帮总人数
$count = StoreBargainUserHelp::getBargainUserHelpPeopleCount($id,$bargainUid ? $bargainUid : $this->userInfo['uid']);
//获取用户还剩余的砍价金额
$price = StoreBargainUserHelp::getSurplusPrice($id,$bargainUid ? $bargainUid : $this->userInfo['uid']);
//获取砍价进度条
$pricePercent = StoreBargainUserHelp::getSurplusPricePercent($id,$bargainUid ? $bargainUid : $this->userInfo['uid']);
$selfCutPrice = bcsub(bcsub($bargain['price'],$price,2),$bargain['min_price'],2);
//判断当前登录人是否砍价 1 微砍价 2 已砍价
$userInfoBargainBool = StoreBargainUserHelp::isBargainUserHelpCount($id,$bargainUid,$this->userInfo['uid']) ? 1 : 2;
$this->assign([
'userInfoBargainBool'=>$userInfoBargainBool,
'selfCut'=>$selfCut,
'userInfoBargain'=>$userInfoBargain,
'selfCutPrice'=>$selfCutPrice,
'bargain'=>$bargain,
'description'=>$description,
'rule'=>$rule,
'shareCount'=>$shareCount,
'lookCount'=>$lookCount,
'userCount'=>StoreBargainUser::count(),
'userHelpList'=>$storeBargainUserHelp,
'count'=>$count,
'price'=>$price,
'pricePercent'=>$pricePercent,
'bargainUid'=>$bargainUid,
]);
return $this->fetch();
}
}

View File

@ -112,32 +112,6 @@
</ul>
</div>
{/notempty}
<div class="buyspell-list" v-cloak="" v-show="combinationList.length > 0">
<div class="index-common-title border-1px">
<span class="color-red">拼团 . </span>花少钱买好货 <i class="icon" @click="window.location.href='{:url('store/combination')}'"></i>
</div>
<div class="product-banner"><img src="{$pinkImage}"></div>
<div class="bslist-box">
<div class="bs-item flex" v-for="item in combinationList">
<div class="picture">
<img :src="item.image">
</div>
<div class="bs-item-info flex">
<div class="info-title">{{item.title}}</div>
<div class="count-wrapper">
<span class="price">¥{{item.price}}</span>
<span class="old-price">¥{{item.product_price}}</span>
<span class="count">已拼{{item.sales}}单</span>
</div>
<a class="people-num flex">
<span class="numbers">{{item.people}}人团</span>
<span class="peo-txt" @click="window.location.href='{:url('store/combination_detail',[],false)}/id/'+item.id">去开团</span>
<i class="index-icon people-icon"></i>
</a>
</div>
</div>
</div>
</div>
<!-- 商品分类模板 -->
<div class="template-prolist" v-cloak="" v-for="item in cateGroupList" v-show="cateGroupList.length > 0">
<div class="index-common-title border-1px">

View File

@ -46,13 +46,6 @@
<img src="{__WAP_PATH}crmeb/images/user-orders-list001.png" />
<p>待付款</p>
</a>
<a href="{$orderListUrl}#11">
{gt name="orderStatusNum.noPink" value="0"}
<i class="mark_num">{$orderStatusNum.noPink > 99 ? 99 : $orderStatusNum.noPink}</i>
{/gt}
<img src="{__WAP_PATH}crmeb/images/user-orders-list005.png" />
<p>团购中</p>
</a>
<a href="{$orderListUrl}#1">
{gt name="orderStatusNum.noPostage" value="0"}
<i class="mark_num">{$orderStatusNum.noPostage > 99 ? 99 : $orderStatusNum.noPostage}</i>

View File

@ -14,7 +14,6 @@
<div class="menu flex" ref="nav">
<div class="item" :class="{on:type === ''}" @click="changeType('')"><span>全部</span></div>
<div class="item" :class="{on:type === 0}" @click="changeType(0)"><span>待付款</span></div>
<div class="item" :class="{on:type == 11}" @click="changeType(11)"><span>拼团中</span></div>
<div class="item" :class="{on:type == 1}" @click="changeType(1)"><span>待发货</span></div>
<div class="item" :class="{on:type == 2}" @click="changeType(2)"><span>待收货</span></div>
<div class="item" :class="{on:type == 3}" @click="changeType(3)"><span>待评价</span></div>

View File

@ -1,211 +0,0 @@
{extend name="public/container"}
{block name="title"}拼团列表{/block}
{extend name="public/container"}
{block name="content"}
<div class="buyspell-list product-sort" id="product-list">
<div class="search-wrapper" style=" padding: 0.12rem 0.2rem;">
<form action="" method="post" @submit.prevent="search">
<input type="text" placeholder="商品搜索: 请输入商品关键词" ref='search'>
</form>
</div>
<div class="price-select flex">
<div class="item" @click='order("default")' :class='{on:where.on=="default"}'>默认</div>
<div class="item"
@click='order("price")'
:class='{"selected-up":where.on=="price" && where.price==1,"selected-down":where.on=="price" && where.price==2,"on":where.on=="price"}'
>价格<i class="icon"></i></div>
<div class="item"
@click='order("sales")'
:class='{"selected-up":where.on=="sales" && where.sales==1,"selected-down":where.on=="sales" && where.sales==2,"on":where.on=="sales"}'
>销量<i class="icon"></i></div>
<div class="item" @click='order("people")' :class="{on:where.on=='people'}">人气</div>
</div>
<div class="bslist-box" v-cloak="">
<div class="bs-item flex" v-for='item in list.data'>
<div class="picture">
<img :src="item.image" :alt="item.title">
</div>
<div class="bs-item-info flex">
<div class="info-title">{{item.title}}</div>
<div class="count-wrapper">
<span class="price">¥{{item.price}}</span>
<span class="old-price">¥{{item.product_price}}</span>
<span class="count">已拼{{item.sales}}单</span>
</div>
<a class="people-num" :href="'combination_detail/id/'+item.id">
<span class="numbers">{{item.people}}人团</span>
<span class="peo-txt">去开团</span>
<i class="index-icon people-icon"></i>
</a>
</div>
</div>
<p class="loading-line" v-show="load == false && list.loading==true"><i></i>正在加载中<i></i></p>
<p class="loading-line" v-show='load == true' @click="getList"><i></i>点击加载<i></i></p>
<p class="loading-line" v-show='load == false && list.loadEnd==true'><i></i>没有更多了<i></i></p>
</div>
</div>
<script type="text/javascript">
var product_list =<?php echo json_encode($list);?>;
requirejs(['vue', 'store', 'helper'], function (Vue, storeApi, $h) {
new Vue({
el: "#product-list",
data: {
load: true,
list: {
loading: false,
loadEnd: false,
data: product_list
},
where: {
page: 1,
search: '',
people: 0,
sales: 0,
price: 0,
default: 0,
on: 'default',
key: false
},
keyorder: ''
},
methods: {
search: function (e) {
e.preventDefault();
this.list.loadEnd = false;
var search = this.$refs.search.value;
if (this.$refs.search.value == '') {
this.order('default');
return;
} else if (this.$refs.search.value == this.keyorder) {
this.list.loadEnd = true;
return;
} else {
this.keyorder = search;
}
if (search != '') {
this.where.search = search;
}
this.where.on = 'search';
this.where.sales = 0;
this.where.price = 0;
this.where.page = 0;
this.where.default = 0;
this.where.people = 0;
this.where.key = true;
this.getList();
},
order: function (info) {
this.list.loadEnd = false;
if (info == 'people') {
if (this.where.people == 1) {
if (this.list.data.length < 4) {
this.list.loadEnd = true;
}
return;
}
this.where.on = info;
this.where.page = 0;
if (this.where.people == 0) {
this.where.people = 1;
} else {
this.where.people = 0;
}
this.where.sales = 0;
this.where.price = 0;
this.where.default = 0;
} else if (info == 'sales') {
this.where.on = info;
this.where.page = 0;
if (this.where.sales == 0 || this.where.sales == 2) {
this.where.sales = 1;
} else {
this.where.sales = 2;
}
this.where.people = 0;
this.where.price = 0;
this.where.default = 0;
} else if (info == 'price') {
this.where.on = info;
this.where.page = 0;
if (this.where.price == 0 || this.where.price == 2) {
this.where.price = 1;
} else {
this.where.price = 2;
}
this.where.people = 0;
this.where.sales = 0;
this.where.default = 0;
} else if (info == 'default') {
if (this.where.default == 1) {
if (this.list.data.length < 4) {
this.list.loadEnd = true;
}
return false;
}
this.$refs.search.value = '';
this.where.search = '';
this.keyorder = '';
this.where.on = info;
this.where.page = 0;
this.where.default = 1;
this.where.search = '';
this.where.people = 0;
this.where.sales = 0;
}
this.where.key = true;
this.getList();
},
getList: function () {
var this_ = this;
this_.list.loading = true;
this_.load = false;
storeApi.basePost('{:url(\'wap/store/get_list\')}',
{
'where': this_.where
},
function (msg) {
this_.list.loading = false;
var _length = msg.data.data.list.length;
if (_length == 0) {
if (this_.keyorder != '' && this_.where.key == true) {
this_.list.data = [];
} else {
this_.list.loadEnd = true;
}
} else {
if (this_.where.key == true && this_.where.on != '' && this_.where.page == 0) {
this_.list.data = msg.data.data.list;
} else {
for (var i = 0; i < _length; i++) {
this_.list.data.push(msg.data.data.list[i]);
}
}
this_.load = true;
}
if (_length < 4) {
this_.load = false;
this_.list.loadEnd = true;
}
this_.where.page = msg.data.data.page;
},
function (error) {
this_.list.loading = false;
$h.pushMsg('网络异常!');
});
}
},
mounted: function () {
if (this.list.data.length < 4) {
this.load = false;
this.list.loadEnd = true;
}
}
})
})
</script>
{/block}

View File

@ -1,315 +0,0 @@
{extend name="public/container"}
{block name="head_top"}
<link rel="stylesheet" href="{__PLUG_PATH}swiper/swiper-3.4.1.min.css">
<script type="text/javascript" src="{__PLUG_PATH}swiper/swiper-3.4.1.jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="{__WAP_PATH}sx/css/reset.css"/>
<link rel="stylesheet" type="text/css" href="{__WAP_PATH}sx/css/swiper-3.4.1.min.css" />
<link rel="stylesheet" type="text/css" href="{__WAP_PATH}sx/font/iconfont.css" />
<link rel="stylesheet" type="text/css" href="{__WAP_PATH}sx/css/style.css" />
<script type="text/javascript" src="{__WAP_PATH}sx/js/media.js"></script>
<script type="text/javascript" src="{__PLUG_PATH}layer/layer.js"></script>
<script type="text/javascript" src="{__PLUG_PATH}jquery.downCount.js"></script>
<script type="text/javascript" src="{__WAP_PATH}sx/js/swiper-3.4.1.jquery.min.js"></script>
<script type="text/javascript" src="{__WAP_PATH}sx/js/iscroll.js"></script>
{/block}
{block name="title"}
{$storeInfo.title}
{/block}
{block name="content"}
<body style="background:#f5f5f5">
<div class="wrapper product-con" id="store_detail">
<section>
<!-- 未关注 -->
{if condition="!$user['subscribe']"}
<div class="not-concerned flex">
<div class="left-wrapper flex">
<img class="logo" src="{$site_logo}" alt="">
<span>{$site_name}</span>
</div>
<a class="go" href="javascript:void(0)" @click="ShowQrcode">立即关注</a>
</div>
{/if}
<div class="banner">
<ul class="swiper-wrapper">
{volist name="storeInfo.images" id="vo"}
<li class="swiper-slide"><a href=""><img src="{$vo}" /></a></li>
{/volist}
</ul>
<div class="swiper-pagination"></div>
<div class="pro-coundown">
<span class="txt"><i class="icon-sd"></i>限时秒杀</span>
<div class="countdown" data-time="{$storeInfo.stop_time|date='Y/m/d H:i:s',###}">
<span class="days" style="color: #fff !important;">0</span>
<i></i>
<span class="hours" style="color: #fff !important;">00</span>
<i></i>
<span class="minutes" style="color: #fff !important;">00</span>
<i></i>
<span class="seconds" style="color: #fff !important;">00</span>
<i></i>
</div>
</div>
</div>
<div class="product-info">
<div class="title">{$storeInfo.title}</div>
<div class="price flex"><p>¥{$storeInfo.price} <em>¥{$storeInfo.product_price}</em></p><p class="count">已拼{$storeInfo.sales}单<span>{$storeInfo.people}</span>人拼单</p></div>
<div class="price warn flex"><p class="count"><i></i>拼团倒计时结束时未能拼单者视为抢购失败,将发起退款</p></div>
</div>
<div class="pro-spell-list">
<div class="title">
<span><?php $countPink = count($pink);echo $countPink;?>人在拼单,可直接参与</span>
{if condition="$countPink"}
<a class="menulist fr" @click="menuList" href="javascript:void(0)">查看更多</a>
{/if}
<div class="tmp-more-list">
<div class="more-list-title">正在拼单</div>
<div id="scroll" class="more-list-con">
<ul>
{volist name="pink" id="vo"}
<li>
<div class="avatar"><img src="{$vo.avatar}" /></div>
<div class="user-info">
<p class="name">{$vo.nickname}<span>还差{$vo.count}人</span></p>
<div class="count-down">剩余
<div class="count-time-{$vo.id}" data-time="{$vo.stop_time|date='Y/m/d H:i:s',###}">
<span class="hours">00</span>
:
<span class="minutes">00</span>
:
<span class="seconds">00</span>
</div>
</div>
</div>
<a class="join-in" href="{:Url('my/order_pink',['id'=>$vo['id']])}">去拼单</a>
</li>
{/volist}
</ul>
</div>
<span class="more-list-close" @click="moreListClose"></span>
</div>
</div>
<ul class="list-box">
{volist name="pink" id="vo" offset="0" length="2"}
<li class="flex border-1px">
<div class="user-info flex">
<img class="avatar" src="{$vo.avatar}" />
<p>{$vo.nickname}</p>
</div>
<div class="txt-wrapper flex" v-pre>
<div class="count-time">
<p>还差<span class="num">{$vo.count}人</span>拼成</p>
<div class="timer-wrapper">
<div class="count-time-{$vo.id}" data-time="{$vo.stop_time|date='Y/m/d H:i:s',###}">
<span class="hours">00</span>
:
<span class="minutes">00</span>
:
<span class="seconds">00</span>
</div>
</div>
</div>
<a class="join-in" href="{:Url('my/order_pink',['id'=>$vo['id']])}">去拼单</a>
</div>
</li>
{/volist}
</ul>
</div>
<!-- 评价 -->
{notempty name="reply"}
<div class="item-box">
<div class="item-tit">
<i class="line"></i>
<i class="iconfont icon-pinglun1"></i>
<span>评价</span>
<i class="line"></i>
</div>
<div class="assess-hot">
<p class="title">宝贝评价({$replyCount})</p>
<div class="assess-hot-con">
<div class="user-info flex">
<div class="avatar"><img src="{$reply.avatar}"/></div>
<div class="name">{$reply.nickname}</div>
<div class="star{$reply.star} all"><span class="num"></span></div>
</div>
<div class="txt-info">{$reply.comment}</div>
<div class="pro-parameter"><span>{$reply.add_time}</span> <span>{$reply.suk}</span></div>
{gt name="replyCount" value="1"}
<a class="more" href="{:Url('reply_list',['productId'=>$storeInfo['id']])}">查看全部评价</a>
{/gt}
</div>
</div>
</div>
{/notempty}
<!-- 详情 -->
<div class="item-box">
<div class="item-tit">
<i class="line"></i><i class="iconfont icon-icon-tupian"></i><span>详情</span><i class="line"></i>
</div>
<div class="con-box">{$storeInfo.description}</div>
</div>
<!-- 购买按钮 -->
<div class="footer-bar flex">
<a href="{:Url('index/index')}">
<span class="index-icon shouye"></span>
<p>首页</p>
</a>
<a href="{:Url('service/service_list')}">
<span class="index-icon kefu"></span>
<p>客服</p>
</a>
{if condition="$storeInfo['stop_time'] GT time()"}
<div class="big-btn confirm" @click="goBuy">
<p class="confirm-price"><span></span>{$storeInfo.price}</p>
<p>立即开团</p>
</div>
{else/}
<div class="big-btn stop">
<p class="confirm-price"><span></span>{$storeInfo.price}</p>
<p>拼团结束</p>
</div>
{/if}
</div>
</section>
<div class="model-bg"></div>
<div style="height:1rem;"></div>
</div>
<script type="text/javascript">
$(document).ready(function() {
var myBanner = new Swiper('.banner', {
paginationClickable: false,
autoplay:3000,
loop:true,
speed:1000,
autoplayDisableOnInteraction : false,
pagination : '.swiper-pagination',
});
window.$pindAll = <?php echo json_encode($pindAll);?>;
$.each($pindAll,function (index,item) {
$('.count-time-'+item).downCount({
date: $('.count-time-'+item).attr('data-time'),
offset: +8
});
})
});
</script>
<script type="text/javascript">
window.$wechat_qrcode = "{$wechat_qrcode}";
window.$site_name = "{$site_name}";
window.$product = <?php unset($storeInfo['description']); echo json_encode($storeInfo);?>;
(function ($) {
requirejs(['vue', 'axios', 'helper', 'store', 'wap/crmeb/module/store/shop-card'], function (Vue, axios, $h, storeApi, shopCard) {
new Vue({
el: "#store_detail",
components: {'shop-card': shopCard},
data: {
cardShow: false,
product: $product,
wechatQrcode: $wechat_qrcode,
siteName: $site_name,
productValue: {},
productCardInfo: {},
status: {like: false, collect: false},
cartNum: 1
},
methods: {
menuList:function () {
if($('.model-bg').css('z-index')==-1){
$('.model-bg').css('z-index','999');
$('.model-bg').addClass('on');
$('.tmp-more-list').addClass('show');
var myScroll = new IScroll('#scroll' , { click: true ,tap: true,scrollbars: 'custom'});
}
},
moreListClose:function () {
$('.tmp-more-list').removeClass('show');
$('.model-bg').removeClass('on').css('z-index','-1');
},
goBuy: function () {
storeApi.goBuy({
cartNum: 1,
uniqueId: 0,
productId: this.product.product_id,
combinationId: this.product.id
}, function (cartId) {
location.href = $h.U({c: 'store', a: 'combination_order', q: 'cartId='+ cartId});
});
},
setProductCardInfo: function (info) {
info || (info = {});
this.$set(this, 'productCardInfo', {
image: info.image !== undefined ? info.image : this.product.image,
price: info.price !== undefined ? info.price : this.product.price,
stock: info.stock !== undefined ? info.stock : this.product.stock
});
},
pushMsg: function (msg, fn) {
$h.pushMsg(msg, fn)
},
init: function () {
new Swiper('.banner', {
paginationClickable: false,
autoplay: 3000,
loop: true,
speed: 1000,
autoplayDisableOnInteraction: false,
pagination: '.swiper-pagination',
});
$('.detail_ul li').each(function(i) {
$(this).click(function() {
$('.detail_ul li').removeClass('active');
$(this).addClass('active');
$('.detail_ul_con').hide();
$('.detail_ul_con').eq(i).show();
});
});
$('.detail_ul li').eq(0).trigger('click');
},
getCartNum: function () {
var that = this;
storeApi.getCartNum(function (cartNum) {
that.cartNum = cartNum;
});
},
ShowQrcode:function () {
that = this;
layer.open({
type: 1,
shade: true,
shadeClose : true,
anim : 2,
area: ['5rem', '5.1rem'],
title: false, //不显示标题
content: '<img src="'+that.wechatQrcode+'" alt="'+that.siteName+'" title="'+that.siteName+'" style="width: 5rem;"/>', //捕获的元素注意最好该指定的元素要存放在body最外层否则可能被其它的相对元素所影响
});
}
},
mounted: function () {
var wxApi = mapleWx($jssdk(), function () {
this.onMenuShareAll({
title: $product.store_name,
desc: $product.store_info || $product.store_name,
imgUrl: location.origin + $product.image,
link: location.href
});
});
$.each($pindAll,function (index,item) {
$('.count-time-'+item).downCount({
date: $('.count-time-'+item).attr('data-time'),
offset: +8
});
})
var countTime = $('.countdown').attr('data-time');
$('.countdown').downCount({
date: countTime,
offset: +8
});
this.getCartNum();
this.init();
this.setProductCardInfo();
}
});
});
})($);
</script>
</body>
{/block}

View File

@ -1,248 +0,0 @@
{extend name="public/container"}
{block name="title"}提交订单{/block}
{block name="content"}
<div id="order-confirm" class="order-confirm">
<section>
<div class="user-address" @click="showAddressList">
<i class="icon add"></i>
<div class="txt-box" v-if="address !== null" v-cloak>
<p class="name"><span v-text="address.real_name"></span> <span class="tel" v-text="address.phone"></span></p>
<p v-text="addressDetail"></p>
</div>
<div class="txt-box" v-if="address === null">
<p class="name"><span>请选择收货地址</span></p>
</div>
</div>
<div class="integ-order-info">
<div class="titles">商品信息</div>
<div class="integ-order-pro">
<?php $goodsNum = 0; ?>
{volist name="cartInfo" id="vo"}
<?php $goodsNum += $vo['cart_num']; ?>
<div class="item clearfix">
<div class="img fl"><img src="{$vo.productInfo.image}"></div>
<div class="infos fr">
<p class="name">{$vo.productInfo.store_name}</p>
<p class="shux"><span><?php if(isset($vo['productInfo']['attrInfo'])){ echo $vo['productInfo']['attrInfo']['suk'];} ?></span></p>
<p class="count">¥{$vo.truePrice}<span class="fr">X{$vo.cart_num}</span></p>
</div>
</div>
{/volist}
</div>
<ul class="parameter">
<li class="flex">
<div class="txt">
配送费
<p v-show="priceGroup.storeFreePostage > 0 && postageMsg == priceGroup.storePostage" v-cloak="">满¥{{priceGroup.storeFreePostage}}元免配送费</p>
</div>
<a href="javascript:void(0);" v-cloak="">{{postageMsg}}</a>
</li>
<li class="flex">
<div class="txt">
优惠券
</div>
<a class="select-txt" href="javascript:void(0);">
<span @click.self="showCoupon" v-if="coupon == null">无优惠券</span>
<span style="color: #ff8d10;" v-else v-cloak="" @click="showCoupon">-¥{{coupon.coupon_price}}
<span style="color: #666;margin: 0 .1rem;" @click.stop="coupon = null">取消使用</span>
</span>
</a>
</li>
<li>
<div class="title"> <span class="no_check_title" v-show="useIntegral != true">积分抵扣</span> <span class="checked_title" v-show="useIntegral == true" v-cloak="">可用积分: {$userInfo.integral|floatval}</span>
<input type="checkbox" id="integral-btn" class="regular-checkbox">
<label for="integral-btn" class="check_btn" style="float: right;" @click="useIntegral = !useIntegral"> </label>
</div>
</li>
<li class="flex">
<div class="txt">
备注
</div>
<input type="text" v-model="payMark" placeholder="请填写自己需要注明的信息..."/>
</li>
</ul>
<div class="all-price">共{$goodsNum}件商品 小计: <span v-text="priceGroup.totalPrice">计算中</span></div>
</div>
<div class="comfirm-wrapper">
<p class="Recharge-top">支付方式</p>
<div class="Refund-list">
<input type="radio" name="pay_type" v-model="payType" value="weixin" class="regular-checkbox">
<label for="checkbox-1-1" class="skin-lable" @click="payType = 'weixin'"></label>
<div class="passenger-list no-bbm">
<p class="p-name"><i class="bank-icon icon-weixin"></i>微信支付</p>
</div>
</div>
<div class="Refund-list">
<input type="radio" name="pay_type" v-model="payType" value="yue" class="regular-checkbox">
<label for="checkbox-1-1" class="skin-lable" @click="payType = 'yue'"></label>
<div class="passenger-list no-bbm">
<p class="p-name"><i class="bank-icon" style="background-image: url({__WAP_PATH}crmeb/images/yue02.png);"></i>余额支付<em>可用余额{$userInfo.now_money|floatval}</em></p>
</div>
</div>
<!--<div class="Refund-list">
<input type="radio" name="pay_type" v-model="payType" value="offline" class="regular-checkbox">
<label for="checkbox-1-1" class="skin-lable" @click="payType = 'offline'"></label>
<div class="passenger-list no-bbm">
<p class="p-name"><i class="bank-icon" style="background-image: url({__WAP_PATH}crmeb/images/xianxia02.png);"></i>线下付款</p>
</div>
</div>-->
</div>
<div style="height: 1rem;"></div>
<div class="cart-calc02"><div class="select-all">应付:<span><span id="jprice" v-text="totalPrice">计算中</span><span id="integral_price" v-show="deduction > 0" v-cloak=""> - {{deduction}}</span></span></div> <a id="jsubmit" href="javascript:void(0);" @click="submit">订单结算</a></div>
</section>
</div>
<script>
(function(){
var $cartInfo = <?php echo json_encode($cartInfo); ?>;
var $priceGroup = <?php echo json_encode($priceGroup); ?>;
var $offlinePostage = <?=$offlinePostage?>;
var $totalIntegral = <?=$userInfo['integral']?>|| 0;
var $integralRatio = <?=$integralRatio?> || 0 ;
var $key = '<?=$orderKey?>';
var $pinkId = '<?=$pinkId?>';
requirejs(['vue','store','helper','wap/crmeb/module/store/use-coupon','wap/crmeb/module/store/use-address','layer'],function(Vue,storeApi,$h,useCoupon,useAddress,layer){
Vue.use(useCoupon);
Vue.use(useAddress);
new Vue({
el:"#order-confirm",
data:{
cartInfo:$cartInfo,
priceGroup:$priceGroup,
pinkId:$pinkId,
coupon:null,
useCoupon:null,
useIntegral:false,
offlinePostage:$offlinePostage,
payType:'weixin',
payMark:'',
address:null,
orderId:null
},
computed:{
addressDetail:function(){
if(this.address == null)
return '';
else
return this.address.province +' '+this.address.city+' '+this.address.district +' '+this.address.detail
},
totalPrice:function(){
var totalPrice = this.priceGroup.totalPrice;
if(this.coupon!==null) totalPrice = $h.Sub(totalPrice,this.coupon.coupon_price);
if(totalPrice<0) totalPrice = 0;
return this.payType == 'offline' && this.offlinePostage == 1 ? totalPrice : $h.Add(totalPrice,this.priceGroup.storePostage);
},
postageMsg:function(){
if(this.payType == 'offline' && this.offlinePostage == 1) return '线下付款免邮费';
if(0 == this.priceGroup.storePostage) return '包邮';
return this.priceGroup.storePostage;
},
deduction:function(){
if(this.useIntegral && $totalIntegral>0 && $integralRatio>0){
var total = $h.Mul($totalIntegral,$integralRatio),totalPrice = this.totalPrice;
return totalPrice < total ? totalPrice : total;
}else{
return 0;
}
}
},
methods:{
showAddressList:function(){
var that = this;
this.$useAddress({
onSelect:function(id,address){
that.address = address;
},
checked:that.address != null && that.address.id
})
},
wechatPay:function(config){
var that = this;
mapleWx($jssdk(),function(){
this.chooseWXPay(config,function(){
that.successOrder();
},{
fail:that.extendOrder,
cancel:that.extendOrder
});
});
},
extendOrder:function(){
location.replace($h.U({
c:'my',
a:'order',
p:{uni:this.orderId == null ? $key : this.orderId}
}));
},
successOrder:function(){
location.replace($h.U({
c:'my',
a:'order',
p:{uni:this.orderId == null ? $key : this.orderId}
}));
},
goPay:function(){
var that = this;
var combinationId = 0;
$.each(that.cartInfo,function (index,item) {
combinationId = item.combination_id;
})
$h.load();
storeApi.submitOrder($key,{
addressId:this.address.id,
couponId:this.coupon == null ? '' : this.coupon.id,
mark:this.payMark,
payType:this.payType,
pinkId:this.pinkId,
combinationId:combinationId,
useIntegral:this.useIntegral
},function(res){
that.$set(that,'orderId',res.data.data.result.orderId);
$h.loadClear();
if(res.data.data.status == 'WECHAT_PAY'){
that.wechatPay(res.data.data.result.jsConfig);
}else if(res.data.data.status == 'SUCCESS'){
$h.pushMsgOnce(res.data.msg,function(){
that.successOrder();
});
}else{
$h.pushMsgOnce(res.data.msg,function(){
that.extendOrder();
});
}
});
},
submit:function(){
if(this.address == null)
return $h.returnErrorMsg('请选择收货地址!');
if(this.payType == 'yue')
layer.confirm('确定使用余额支付?',{icon:3},this.goPay);
else if(this.payType == 'offline')
layer.confirm('确定使用线下付款方式支付?',{icon:3},this.goPay);
else
this.goPay();
},
showCoupon:function(){
setTimeout(this.useCoupon.active,0);
},
selectCoupon:function(coupon){
this.$set(this,'coupon',coupon);
}
},
mounted:function(){
var that = this;
this.useCoupon = this.$useCoupon(this.priceGroup.totalPrice,{
onSelect:this.selectCoupon
});
storeApi.getUserDefaultAddress(function(res){
if(res.data.msg == 'ok') that.$set(that,'address',res.data.data);
});
}
});
});
})();
</script>
{/block}

View File

@ -1,273 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport"content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no" />
<meta name="browsermode" content="application"/>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<!-- 禁止百度转码 -->
<meta http-equiv="Cache-Control" content="no-siteapp" />
<!-- uc强制竖屏 -->
<meta name="screen-orientation" content="portrait">
<!-- QQ强制竖屏 -->
<meta name="x5-orientation" content="portrait">
<link rel="stylesheet" href="{__WAP_PATH}bargain/css/reset.css">
<link rel="stylesheet" href="{__WAP_PATH}bargain/css/base.css">
<link rel="stylesheet" href="{__WAP_PATH}bargain/font/iconfont.css">
<link rel="stylesheet" href="{__WAP_PATH}bargain/css/swiper.min.css">
<link rel="stylesheet" href="{__WAP_PATH}bargain/css/style.css">
<script src="{__WAP_PATH}bargain/js/media.js"></script>
<script src="{__WAP_PATH}bargain/js/jquery-2.1.4.min.js"></script>
<script src="{__WAP_PATH}bargain/js/swiper.min.js"></script>
<script type="text/javascript" src="{__PLUG_PATH}wxApi.js"></script>
<script>
$jssdk = function(){return <?=\service\WechatService::jsSdk()?>;}
</script>
<style>
.selfEnd{display: none}
.helpFriendEnd{display: none}
</style>
{include file="public/requirejs" /}
<title>砍价详情</title>
</head>
<body style="background-color:#ff3d3d;">
<div class="cut-con">
<div class="cut-bg">
<div class="header acea-row row-center-wrapper">{$lookCount}<span>人查看</span>{$shareCount}<span>人分享</span>{$userCount}<span>人报名</span></div>
<div class='activity-rules'>
<div class='activity'>活动</div>
<div>规则</div>
</div>
<div class='time'>活动结束倒计时<span class="time_d"></span><span class="time_h"></span><span class="time_m"></span><span class="time_s"></span></div>
</div>
<div class='cut-padding'>
<div class='figure'>
<div class='cut-write acea-row'>
<div class="picture"><img src='{$bargain.image}' alt="{$bargain.title}"></div>
<div class="figure-con acea-row row-column-all">
<div class='write-text ovf2'>{$bargain.title}</div>
<div class='write-yuan'>原价¥{$bargain.price}</div>
<div class='write-num'>最低¥<span>{$bargain.min_price}</span></div>
</div>
</div>
</div>
{if condition="!$bargainUid || $bargainUid eq $userInfo['uid']"}
<div class='cut-tip'>已有<span>{$count}</span>位好友成功帮您砍价</div>
{elseif condition="$bargainUid && $bargainUid neq $userInfo['uid']"}
<div class='cut-tip acea-row row-center-wrapper'><img src="{$userInfoBargain.avatar}">{$userInfoBargain.nickname} 邀请您帮忙砍价</div>
{/if}
<div class='cut-pro'>距离目标还有{$price}元</div>
<!-- 进度条 -->
<div class="progress compressing"><div class="bar" style="width: 100%;"></div></div>
<div class='pro-money acea-row row-between'>
<div class='original-price'>
<div>原价</div>
<div>¥{$bargain.price}</div>
</div>
<div class='target-price'>
<div>目标</div>
<div>¥{$bargain.min_price}</div>
</div>
</div>
{if condition="!$bargainUid || $bargainUid eq $userInfo['uid']"}<!-- 砍价人页面 -->
{if condition="$price"}
<div class='cut-but selfStart'>喊好友帮砍一刀</div>
<div class="shares-model" style="display: none;"><img style="position: fixed;left: 0;top: 0;width: 100%;height: 100%;" src="{__WAP_PATH}crmeb/images/share-info.png"></div>
{else/}
<div class='cut-tip selfOrder'>恭喜您成功砍到最低价,快去支付订单吧!</div>
<div class='cut-but selfOrder goOrder'>立即支付订单</div>
{/if}
{elseif condition="$bargainUid && $bargainUid neq $userInfo['uid']"}<!-- 帮忙砍价的页面 -->
{if condition="$userInfoBargainBool eq 2"}
<div class='cut-tip helpFriendEnd'>已帮助好友砍价</div>
<div class='cut-but helpFriendEnd'><a href="{:Url('store/cut_con',array('id'=>$bargain['id']))}">我也要参与</a></div>
{else/}
<div class='cut-but helpFriendStart bargain'>帮好友砍一刀</div>
{/if}
{/if}
<div class='cut-but cut-but2 selfEnd'>活动已结束</div>
<div class="cut-but3 selfOrder selfEnd"><a href="{:Url('store/cut_list')}">低价拿更多商品</a></div>
<div class='bargain-list'>
<div class='list-title'>
<span>砍价帮</span>
</div>
<ul class='cut-ul'>
{volist name="userHelpList" id="vo"}
<li class='cut-item acea-row row-wrap-all'>
<div class='li-pic acea-row row-middle'>
<img src='{$vo.avatar}'>
<div>
<div class='pic-title ovf'>{$vo.nickname}</div>
</div>
</div>
<div class="cut-price">砍掉{$vo.price}元</div>
</li>
{/volist}
</ul>
<div class='cut-display'>· 只显示最近15个好友砍价纪录 ·</div>
</div>
<div class='bargain-list bargain-list2'>
<div class='list-title'>
<span>商品详情</span>
</div>
<div class='shop-con'>
{$description}
</div>
</div>
</div>
<div class='popup'>
<div class='popup-title'>活动规则<span class='iconfont icon-guanbi'></span></div>
{if condition="$rule"}
{$rule}
{else/}
<ul class='popup-con'>
<li>1.点击上方按钮“我也要玩”参加活动。</li>
<li>2.报名者自己点击【自砍一刀】随机减少价格。</li>
<li>3.点击右上角…朋友也能帮你减。</li>
<li>4.奖品份数有限,达标就会减少一份,份数领完则无法继续报名!</li>
<li>5.完成后,马上下订单!</li>
</ul>
{/if}
</div>
<div class="mask"></div>
<div class='popup2'>
<div class='popup2-bg'><span class='iconfont icon-guanbi'></span></div>
<div class='popup2-con'>您已砍掉<span>{$selfCutPrice}</span>元,分享给好友帮忙砍价!</div>
<button class='popup2-bnt'>砍价成功</button>
</div>
<div class="mask2"></div>
</div>
<script>
window.$bargain = <?php echo json_encode($bargain);?>;
window.$bargainUid = "{$bargainUid}";
window.$selfCut = "{$selfCut}";
window.$userInfoBargainBool = "{$userInfoBargainBool}";
window.$userInfo = <?php echo json_encode($userInfo);?>;
window.url = location.origin + "{:Url('store/bargain_detail',array('id'=>$bargain['id'],'bargainUid'=>$userInfoBargain['uid']))}";
</script>
<script>
requirejs(['helper', 'store'], function ($h, storeApi) {
var wxApi = mapleWx($jssdk(), function () {
this.onMenuShareAll({
title: $bargain.title,
desc: '快帮'+$bargain.title+'来砍价',
imgUrl: location.origin + $bargain.image,
link: url
});
});
if($userInfoBargainBool == 2){
$('.helpFriendEnd').show();
$('.helpFriendStart').hide();
}
if($selfCut == 0){
$(".popup2").hide();
$(".mask2").hide();
}
$('.selfStart').show();
$('.selfStart').on('click',function () {
$('.shares-model').css('display', 'block');
$('.shares-model').on('click' , function(){
$(this).css('display', 'none');
});
storeApi.addBargainShare({
bargainId: $bargain.id
});
})
$('.goOrder').on('click',function () {
storeApi.goBuy({
cartNum: $bargain.num,
bargainId: $bargain.id,
productId: $bargain.product_id,
}, function (cartId) {
location.href = $h.U({c: 'store', a: 'confirm_order',q:'cartId='+cartId});
});
});
$('.bargain').on('click',function () {
storeApi.bargainFriends({
bargainId:$bargain.id,
bargainUserId:$bargainUid
},function (res) {
if(res.data.data.status == 'SUCCESS'){
$h.pushMsg(res.data.msg,function () {
$('.helpFriendStart').hide();
$('.helpFriendEnd').show();
})
}else if(res.data.data.status == 'ERROR'){
$h.pushMsg(res.data.msg,function () {
})
}
})
})
$(".activity-rules").on("click",function(){
$(".popup").show();
$(".mask").show();
});
$(".mask").on("click",function () {
$(".popup").hide();
$(".mask").hide();
});
$(".popup-title .iconfont").on("click",function () {
$(".popup").hide();
$(".mask").hide();
});
$(".mask2").on("click",function () {
$(".popup2").hide();
$(".mask2").hide();
});
$(".popup2-bg .iconfont").on("click",function () {
$(".popup2").hide();
$(".mask2").hide();
});
show_time();
function show_time(){
var time_start = new Date().getTime();
var time_end = $bargain.stop_time;
var time_distance = time_end - time_start/1000;
if(time_distance>0){
// 天
var int_day = Math.floor(time_distance/(60*60*24));
// 时
var int_hour = Math.floor(time_distance/(60*60))-(int_day*24);
// 分
var int_minute = Math.floor(time_distance/60)-(int_day*24*60)-(int_hour*60);
// 秒
var int_second = Math.floor(time_distance)-(int_day*24*60*60)-(int_hour*60*60)-(int_minute*60);
// 时分秒为单数时、前面加零
if(int_day < 10){
int_day = "0" + int_day;
}
if(int_hour < 10){
int_hour = "0" + int_hour;
}
if(int_minute < 10){
int_minute = "0" + int_minute;
}
if(int_second < 10){
int_second = "0" + int_second;
}
// 显示时间
$(".time_d").text(int_day);
$(".time_h").text(int_hour);
$(".time_m").text(int_minute);
$(".time_s").text(int_second);
}else {
$('.selfEnd').show();
$('.selfStart').hide();
$('.selfOrder').hide();
$('.helpFriendStart').hide();
$('.helpFriendEnd').hide();
// 显示时间
$(".time_d").text("00");
$(".time_h").text("00");
$(".time_m").text("00");
$(".time_s").text("00");
}
// 设置定时器
setTimeout(show_time,1000);
}
})
</script>
</body>
</html>

View File

@ -1,66 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport"content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no" />
<meta name="browsermode" content="application"/>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<!-- 禁止百度转码 -->
<meta http-equiv="Cache-Control" content="no-siteapp" />
<!-- uc强制竖屏 -->
<meta name="screen-orientation" content="portrait">
<!-- QQ强制竖屏 -->
<meta name="x5-orientation" content="portrait">
<link rel="stylesheet" href="{__WAP_PATH}bargain/css/reset.css">
<link rel="stylesheet" href="{__WAP_PATH}bargain/css/base.css">
<link rel="stylesheet" href="font/iconfont.css">
<link rel="stylesheet" href="{__WAP_PATH}bargain/css/swiper.min.css">
<link rel="stylesheet" href="{__WAP_PATH}bargain/css/style.css">
<script src="{__WAP_PATH}bargain/js/media.js"></script>
<script src="{__WAP_PATH}bargain/js/jquery-2.1.4.min.js"></script>
<script src="{__WAP_PATH}bargain/js/swiper.min.js"></script>
<title>砍价列表</title>
</head>
<body>
<div class="cut-list">
<div class="header-bg"></div>
<div class="swiper-container swiper-text swiper-no-swiping">
<div class="swiper-wrapper">
{volist name="bargainUser" id="vo"}
<div class="swiper-slide acea-row row-wrap-all">
<img src="{$vo.avatar}">
<span class="ovf">{$vo.info}</span>
</div>
{/volist}
</div>
</div>
<ul class="cut-ul">
{volist name="bargain" id="vo"}
<li class="cut-item">
<a href="{:Url('Store/cut_con',array('id'=>$vo['id'],'bargainUid'=>0))}">
<div class="picture"><img src="{$vo.image}"></div>
<div class="acea-row row-wrap-all cut-text">
<div class="cut-con">
<p class="name">{$vo.title}</p>
<div class="text"><i class="icon"></i>{$vo.userInfoCount}人正在参加</div>
</div>
<div class="cut-but"><i class="cut-but-icon"></i>最低¥{$vo.min_price}</div>
</div>
</a>
</li>
{/volist}
</ul>
</div>
<script>
var swiper1 = new Swiper('.swiper-text', {
direction : 'vertical',
autoplayDisableOnInteraction: false,
loop : true,
noSwiping:true,
spaceBetween:10,
autoplay:2000
});
</script>
</body>
</html>