| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396 |
- <template>
- <view v-if="allShow">
- <!--bargin/detail/detail.wxml-->
- <view class="banner">
- <swiper class="swiper" @change="swiperChange" :current="current" autoplay="true" circular="true"
- duration="1000">
- <block v-for="(item, index) in bannerUrls" :key="index">
- <swiper-item autoplay="true">
- <image :src="item + '?x-oss-process=style/w750-auto'" mode="aspectFit"></image>
- </swiper-item>
- </block>
- </swiper>
- <view class="dots dflex">
- <block v-for="(item, index) in bannerUrls" :key="index">
- <view :class="'dot ' + (index == swiperCurrent ? ' active' : '')" :data-current="index"
- @tap="dotEvent"></view>
- </block>
- </view>
- </view>
- <!-- <view class="notification_bar" wx:if="{{isNotice}}">
- <swiper class="swiper_container" vertical="true" autoplay="true" circular="false" duration="1000" interval="5000" easing-function="easeInOutCubic" class="bar_box dflex">
- <swiper-item class="bar_con dflex" wx:for="{{contentList}}" wx:key="item">
- <view class="bar dflex">
- <image class="bar_left" src="{{item.pic}}" />
- <text class="bar_text">最新订单来自</text>
- <text class="bar_text">{{item.name}},</text>
- <text class="bar_text">{{item.time}}</text>
- </view>
- </swiper-item>
- </swiper>
- </view> -->
- <view class="group">
- <image src="/activity/static/activity/images/kjbg.jpg" class="ptbg"></image>
- <view class="groups dflex">
- <view class="left">
- <view class="price">砍后价¥<text>{{act.money}}</text></view>
- <view class="pin"><text class="origin"
- v-if="act.orPrice!=0&&act.orPrice>act.money">原价¥{{act.orPrice?act.orPrice:''}}</text>
- <block v-if="act.orPrice!=0&&act.orPrice>act.money"> | </block>{{count ? count:0}}人已参与
- </view>
- </view>
- <view class="right">
- <image src="/activity/static/activity/images/kanjia.png" class="tuan"></image>
- <view class="endtime dflex">
- <view>{{act.start==false&&act.end==false?'距开始':'距结束'}}</view>
- <block v-if="timer.length==4">
- <block v-if="timer[0] !=0"><text>{{timer[0]}}</text>天</block>
- <text>{{timer[1]}}</text>:
- <text>{{timer[2]}}</text>:
- <text>{{timer[3]}}</text>
- </block>
- <block v-else>
- <text>{{timer[0]}}</text>:
- <text>{{timer[1]}}</text>:
- <text>{{timer[2]}}</text>
- </block>
- </view>
- </view>
- </view>
- </view>
- <view class="info bgfff">
- <view class="infos dflex">
- <view class="title flex">{{pro.title?pro.title:''}}</view>
- <view class="share" @tap="showShare">
- <image src="/static/pages/images/fxico.png"></image>分享
- </view>
- </view>
- <view class="guarantee dflex" v-if="guarantee.length>0">
- <view class="cont dflex">
- <view v-for="(item, index) in guarantee" :key="index" class="dflex li">
- <image src="/activity/static/activity/images/guarantee.png"></image>{{item}}
- </view>
- </view>
- </view>
- </view>
- <view class="detinfo mt20 bgfff">
- <!-- isOtc 0 默认 1 处方药 2 非处方药 3 医疗器械 4 食品类 5 海外购 -->
- <block v-if="act.isOtc!=5">
- <block v-if="is_open_shop == 1 && ascription">
- <view class="xiaodian dflex malr20" v-if="((act.isMeCommission != 1 || act.isMeCommission != '1') && act.oneCommission>0) || ((act.isMeCommission == 1 || act.isMeCommission == '1') && act.twoCommission>0) || act.serviceShopRate">
- <image src="/static/pages/images/xdbg1.png" class="xdbg"></image>
- <view class="shouyi flex" v-if="((act.isMeCommission != 1 || act.isMeCommission != '1') && act.oneCommission>0) || ((act.isMeCommission == 1 || act.isMeCommission == '1') && act.twoCommission>0)">
- <text>分销收益</text>
- <view v-if="act.isMeCommission == 0"><text>¥</text>{{act.oneCommission}}</view>
- <view v-else><text>¥</text>{{act.twoCommission}}</view>
- </view>
- <view class="shouyi flex" v-if="act.serviceShopRate">
- <text>小店服务费</text>
- <view><text>¥</text>{{act.serviceShopRate}}</view>
- </view>
- <view class="dflex" v-if="act.isJoinShop">
- <view class="fenxiang" @tap="showShare">分享推广</view>
- <navigator :url="url" hover-class="none" class="goShop">去小店</navigator>
- </view>
- <view class="addshop" @tap="addShop" v-else>添加到小店</view>
- </view>
- </block>
- <block v-else>
- <view class="xiaodian dflex malr20" v-if="((act.isMeCommission != 1 || act.isMeCommission != '1') && act.oneCommission>0) || ((act.isMeCommission == 1 || act.isMeCommission == '1') && act.twoCommission>0)">
- <image src="/static/pages/images/xdbg1.png" class="xdbg"></image>
- <view class="shouyi flex">
- <text>分销收益</text>
- <view v-if="act.isMeCommission == 0"><text>¥</text>{{act.oneCommission}}</view>
- <view v-else><text>¥</text>{{act.twoCommission}}</view>
- </view>
- <navigator url="/promote/apply/apply" hover-class="none" class="fenxiang" v-if="isDistriUser != 2">我要推广</navigator>
- <view class="fenxiang" @tap="showShare" v-else>分享推广</view>
- </view>
- </block>
- </block>
- <!-- <view class="item dflex">
- <label>优惠券</label>
- <view class="quan flex dflex">
- <view class="flex dflex">
- <text>满500减50</text>
- <text>满200减10</text>
- </view>
- <view class="ling dflex">领券<image src="/pages/images/more3.png"></image>
- </view>
- </view>
- </view> -->
- <view class="item pro-sel dflex" v-if="pro.propertiesList && pro.propertiesList.length > 0"
- @click="pro.stock > 0 ? addShopCart() : ''">
- <label>已选</label>
- <view class="flex">{{pro.properties}}</view>
- <image src="/static/pages/images/more.png" class="mrico"></image>
- </view>
- <view class="item dflex">
- <label>配送至</label>
- <view class="flex" @tap="toAddress">
- <view class="address">{{address.address?address.address:''}}{{address.house?address.house:''}}
- </view>
- <view class="huo" v-if="pro.isTimely == 1"><text>现货</text>,现在下单,预计2小时后送达</view>
- </view>
- <image src="/static/pages/images/more2.png" class="more" @tap="toAddress"></image>
- </view>
- <view class="item dflex">
- <label>门店</label>
- <view class="flex" @tap="toMerchant">
- <view class="address">{{merchant.title}}</view>
- </view>
- </view>
- </view>
- <!-- 砍价情况 -->
- <view class="zutuan bgfff mt20"
- v-if="(activityPurchaseRecordListDTO&&activityPurchaseRecordListDTO.length > 0)||(act.activityPurchaseRecordListDTO&&act.activityPurchaseRecordListDTO.length>0)">
- <view class="zu-tit dflex">{{act.activityPurchaseRecordListDTO.length}}人正在砍价,可直接参与<icon
- class="icon iconfont icon-bottom"
- @tap="activityPurchaseRecordListDTO.length>1&&activityDot.length>0?clickmore():''"> </icon>
- </view>
- <view class="zu-list">
- <block v-for="(item, index) in activityPurchaseRecordListDTO" :key="index">
- <view class="li dflex" @tap="toKanjia" :data-id="item.id" :data-acid="item.groupMainP.acpId"
- :data-proid="item.groupMainP.productId" :data-superid="item.groupMainP.id"
- :data-userid="item.groupMainP.userId" :data-end="item.end">
- <image :src="item.groupMainP.uavatar" mode="aspectFit"></image>
- <view class="zu-name flex">{{item.groupMainP.unickName}}</view>
- <view class="zu-ren">
- <view class="cha" v-if="item.groupMainP.bargainingAmount == 0">已砍到底价</view>
- <view class="cha" v-else>
- 只差<text>¥{{item.groupMainP.bargainingAmount>0 ? item.groupMainP.bargainingAmount : ((act.orPrice)*10000-(act.money)*10000)/10000}}</text>到底价
- </view>
- <view class="zu-time" v-if="item.end ||item.groupMainP.bargainingAmount == 0">已结束</view>
- <view class="zu-time" v-else>剩余<text>{{item.times}}</text></view>
- </view>
- <view
- :class="'zu-btn ' + (item.groupMainP.bargainingAmount == 0 || item.end ? 'end' : 'mbglinear')"
- v-if="item.groupMainP.bargainingAmount == 0">查看详情</view>
- <view
- :class="'zu-btn ' + (item.groupMainP.bargainingAmount == 0 || item.end ? 'end' : 'mbglinear')"
- v-else>帮TA砍价
- </view>
- </view>
- </block>
- </view>
- </view>
- <!-- 商品详情等页面 -->
- <product-footer ref="list" @scoreTab="scoreTab" id="list" :detail="nodes" :imgs="imgs" :proId="pro.id"
- v-if="pro.id" :form="form" @showTab="showTab" @freshen="freshenFun"></product-footer>
- <v-share :hide-toast="hideShare" :product="pro" :code-url="codeUrl" a-type="5" @onFather="click"></v-share>
- <view class="placeholder-view" :style="'height:' + (bottomBlankHeight + 140) + 'rpx'"></view>
- <view class="bot fixed bgfff dflex" :style="'padding-bottom: ' + (bottomBlankHeight + 20) + 'rpx'" >
- <contact-button img-url="/static/pages/images/kfico.png" class-name="botbtn" button-text="在线客服"></contact-button>
- <!-- <navigator class="botbtn" open-type="switchTab" url="/pages/cart/cart" hover-class="none">
- <image src="/pages/images/gwc.png"></image>购物车<text class="message" wx:if="{{pro.count > 0}}">{{pro.count}}</text>
- </navigator> -->
- <!-- <view class="botbtn" bindtap="clickCollect">
- <image src="/pages/images/shoucang_h.png" wx:if="{{pro.isCollect}}"></image>
- <image src="/pages/images/shoucang.png" wx:else></image>收藏
- </view> -->
- <!-- <view class="addcart">加入购物车</view> -->
- <view class="gmbtn" @tap="atOnceBuy">¥{{salePrice}} 下单购买</view>
- <block v-if="act.start==true">
- <view class="ctbtn mbglinear" @tap="toKjDetail" v-if="isBargain||isuser">我的砍价</view>
- <view class="ctbtn mbglinear" @tap="create" :data-actid="act.id"
- v-if="act.end==false&&!isBargain&&!isuser">发起砍价</view>
- <view class="ctbtn end" v-if="act.end==true&&!isBargain&&!isuser">活动已结束</view>
- </block>
- <block v-if="act.start==false&&act.end==false">
- <view class="remind mbggreen dflex" v-if="act.start==false&&isRemind" @tap="cancelActivityRemind"
- :data-index="index" data-type="2">取消预约</view>
- <view class="remind mbggreen dflex" v-if="act.start==false&&!isRemind" @tap="addActivityRemind">
- <icon class="iconfont icon-yugao" :data-index="index" data-type="2"></icon>预约提醒
- </view>
- </block>
- </view>
- <!-- 商品规格 -->
- <block v-if="isShow">
- <product-popup :product="popup" order-type="1" @hidePopup="hidePopup" :merchant="merchant"
- :merchant-id="query.merchantId" :shopId="query.shopId"></product-popup>
- </block>
- <view class="contact_index" @tap="goTop">
- <image src="/static/pages/images/backtop.png"></image>顶部
- </view>
- <!-- 查看更多 -->
- <view class="mask" @tap="eliminate" v-if="show" catchtouchmove="true"></view>
- <view class="page" :style="'margin:-' + (windowHeight/2) + 'px 0 0 -' + (windowWidth/2) + 'px'">
- <view class="ptuanmode" catchtouchmove="true" v-if="show">
- <view class="zu-list">
- <view class="pttop">正在砍价</view>
- <scroll-view scroll-y="true" style="max-height: 550rpx;">
- <view v-for="(item, index) in activityDot" :key="index" class="li dflex" @tap="toKanjia"
- :data-id="item.id" :data-acid="item.groupMainP.acpId"
- :data-proid="item.groupMainP.productId" :data-superid="item.groupMainP.id"
- :data-userid="item.groupMainP.userId" :data-end="item.end">
- <image :src="item.groupMainP.uavatar" mode="aspectFit"></image>
- <view class="zu-name flex">{{item.groupMainP.unickName}}</view>
- <view class="zu-ren">
- <view class="cha" v-if="item.groupMainP.bargainingAmount == 0">已砍到底价</view>
- <view class="cha" v-else>
- 只差<text>¥{{item.groupMainP.bargainingAmount>0 ? item.groupMainP.bargainingAmount : ((act.orPrice)*10000-(act.money)*10000)/10000}}</text>到底价
- </view>
- <view class="zu-time" v-if="item.end ||item.groupMainP.bargainingAmount == 0">已结束</view>
- <view class="zu-time" v-else>剩余<text>{{item.times}}</text></view>
- </view>
- <view
- :class="'zu-btn ' + (item.groupMainP.bargainingAmount == 0 || item.end ? 'end' : 'mbglinear')"
- v-if="item.groupMainP.bargainingAmount == 0">查看详情</view>
- <view
- :class="'zu-btn ' + (item.groupMainP.bargainingAmount == 0 || item.end ? 'end' : 'mbglinear')"
- v-else>帮TA砍价
- </view>
- </view>
- </scroll-view>
- <view class="tole" v-if="activityDot.length==21">--仅显示20个正在砍价的人--</view>
- </view>
- </view>
- </view>
- <!-- 添加到小店成功 -->
- <view class="mask" :hidden="isHide" @tap="hidePop"></view>
- <view class="suc" :hidden="isHide">
- <image src="/static/pages/images/tjcg1.png" class="tjcg1"></image>
- <image src="/static/pages/images/tjcg.png" class="tjcg"></image>
- <text>快去我的小店看看吧</text>
- <view class="shopcc dflex">
- <view class="shop" @tap="showShare">分享推广</view>
- <navigator :url="url" hover-class="none" class="shop" >我的小店</navigator>
- </view>
- <!-- <view class="share-btn dflex">
- <button class="wxfriend dflex" open-type="share">
- <image src="/static/pages/images/wechat.png"></image>
- 微信好友
- </button>
- <view class="wxposter dflex" @tap="generatePoster">
- <image src="/static/pages/images/poster.png"></image>
- 生成海报
- </view>
- </view> -->
- <image src="/static/pages/images/close2.png" class="suc-close" @tap="hidePop"></image>
- </view>
- <block v-if="isPopupLogin">
- <product-login :about="about" @hidePopupLogin="hidePopupLogin"></product-login>
- </block>
- </view>
- </template>
- <script>
- const app = getApp();
- const req = require("../../../utils/request.js");
- const utils = require("../../../utils/util.js");
- var QQMapWX = require("../../../utils/qqmap.js");
- const requsetmessage = require("../../../utils/requestmessage.js");
- const route = require("../../../utils/route");
- const api = require("../../../utils/api.js");
- import productFooter from "../../../components/product_footer/index";
- import productPopup from "../../../components/product-popup/index";
- import vShare from "../../../components/share/share";
- import productLogin from "../../../components/product-login/index";
- export default {
- data() {
- return {
- bottomBlankHeight: app.globalData.isIPhoneX ? 68 : 0,
- swiperCurrent: 0,
- bannerUrls: [],
- isShow: false,
- pro: {},
- timer: [],
- isRemind: false,
- hideShare: true,
- codeUrl: '',
- bgUrl: "/activity/static/activity/images/share_pintuan.jpg",
- contentList: [{
- pic: "/static/pages/images/bar.png",
- name: '好风依旧',
- time: '4秒前'
- }, {
- pic: "/static/pages/images/bar.png",
- name: '杨鑫',
- time: '20秒前'
- }, {
- pic: "/static/pages/images/bar.png",
- name: '杨鑫',
- time: '5秒前'
- }],
- isNotice: false,
- activityPurchaseRecordListDTO: [],
- isBargain: false,
- //是否发起砍价
- form: {
- page: 1,
- limit: 10
- },
- freshen: true //是否更新页面
- ,
- current: "",
- query: "",
- merchant: "",
- merchantId: "",
- shopId: "",
- imgs: "",
- nodes: "",
- salePrice: "",
- isuser: false,
- acid: "",
- act: "",
- activityDot: "",
- isStates: 0,
- address: {},
- popup: "",
- bargainId: "",
- count: "",
- show: false,
- tabIndex: "",
- guarantee: "",
- is_open_comments: "",
- switch: true,
- about:{},
- allShow:false,
- isHide: true,//添加小店成功弹窗
- url: '',
- is_open_shop: '',//商户是否开启分销
- ascription: false,//是否开启小店
- isDistriUser: 0, // 判断用户是否是分销员 2为分销员
- isPopupLogin: false
- };
- },
- components: {
- productFooter,
- productPopup,
- vShare,
- productLogin
- },
- props: {},
- onLoad: function(options) {
- this.query = options;
- this.setData({
- query: options
- });
- if (options.scene) {
- this.scene = options.scene;
- }
- if (options.isShare) {
- this.query.id = options.id;
- this.query.acid = options.acid;
- req.setStorage('pidCode', options.userId);
- req.setStorage('pidCode', options.userId);
- let params = {
- userId: options.userId,
- merchantId: options.merchantId ? options.merchantId : '',
- }
- this.bindUser(params);
- }
- setInterval(() => {
- this.setData({
- isNotice: true
- });
- }, 10000);
- },
- onShow: async function() {
- let that = this
- if (this.freshen) {
- await this.loadCodeParams();
- if(that.scene){
- await that.bindUser(that.query);
- }
- this.getGuarantee().then(data => {
- if (this.switch) {
- api.getMerchant(this.query, req, data => {
- that.loadDefaultAddress();
- if (data == 1) {
- api.locationShow()
- } else {
- that.getuserInfos(data);
- if (data.type == 5) {
- that.query.merchantId = data.merchantDTO.id
- that.query.shopId = data.id
- } else {
- that.query.merchantId = data.id
- }
- if (req.getStorage('userInfo') && that.merchant.id != data.id) {
- this.loadProudct();
- let pages = getCurrentPages();
- var prevPage = pages[pages.length - 2];
- if (prevPage) {
- prevPage.$vm.setData({
- freshen: true
- });
- }
- } else {
- this.loadProudct();
- }
- that.merchant = data
- }
- })
- }
- })
- // this.loadDefaultAddress();
- await this.browsRecound(this.query.id);
- this.initState();
- // let merchant = req.getStorage('defaultMerchant');
- // this.setData({ merchant: merchant });
- // this.getMerchant();
- }
- },
- onShareAppMessage: function() {
- let merchantId = '';
- let path = '/activity/bargain/detail/detail?id=' + this.query.id + '&acid=' + this.query.acid +
- '&isShare=' + true;
- if (!req.getStorage('userInfo').id) {} else {
- path += '&userId=' + req.getStorage('userInfo').id;
- }
- let shopId = '';
- if (req.getStorage('MERCHANT') && req.getStorage('MERCHANT').id != null) {
- path += '&merchantId=' + req.getStorage('MERCHANT').id;
- merchantId = req.getStorage('MERCHANT').id;
- if (req.getStorage('smallShop') && req.getStorage('MERCHANT').id != null) {
- path += '&shopId=' + req.getStorage('smallShop').id;
- shopId = req.getStorage('smallShop').id;
- merchantId = req.getStorage('smallShop').merchantDTO.id;
- }
- }
- route.share(1, req.getStorage('userInfo').id, path, merchantId, shopId, 9, this.query.acid + '_' + this
- .query.id);
- return {
- title: this.pro.title,
- imageUrl: this.pro.pic,
- path: path
- }; // return {
- // title: this.data.pro.title,
- // imageUrl: this.data.pro.pic,
- // path: 'activity/bargain/detail/detail?id=' + this.query.id + '&acid=' + this.query.acid + '&isShare=' + true + '&userId=' + req.getStorage('userInfo').id+'&merchantId='+this.data.query.merchantId
- // }
- },
- onUnload() {
- this.clearAllTimer();
- if (this.timer) clearInterval(this.timer);
- },
- onHide() {
- this.clearAllTimer();
- },
- onReachBottom() {
- if (this.is_open_comments == 1 && this.tabIndex == 2) {
- this.form.page++;
- this.setData({
- ['form.page']: this.form.page
- });
- // this.selectComponent("#list").loadScore(this.current);
- this.$refs.list.loadScore(this.current);
- }
- },
- methods: {
- bindUser(par){
- let userInfo = req.getStorage('userInfo');
- if(!userInfo){
- // uni.login({
- // success(res) {
- // let params = {
- // code: res.code,
- // parentId: par.userId,
- // merchantId: par.merchantId ? par.merchantId : par.shopId ? par.shopId : ''
- // }
- // return new Promise((resolve,reject)=>{
- // req.postRequest('/api/v2/login', params, data => {
- // resolve();
- // });
- // })
- // }
- // });
- // this.isPopupLogin = true;
- req.silenceLogin(par.userId, par.merchantId ? par.merchantId : par.shopId ? par.shopId : '');
- }
- },
- click(e) {
-
- this.hideShare = e
- },
- showShare() {
- // #ifndef H5
- req.isLogin().then(success => {
- if (success) {
- this.getCodeUrl()
- this.setData({
- hideShare: false
- });
- }
- });
- // #endif
- },
- /**
- * 轮播切换
- */
- swiperChange({
- detail
- }) {
- if (this.current == 0 && this.swiperCurrent > 1) {
- //卡死时,重置current为正确索引
- this.setData({
- current: this.swiperCurrent
- });
- } else {
- //正常轮转时,记录正确页码索引
- this.setData({
- swiperCurrent: detail.current
- });
- }
- },
- dotEvent(e) {
- this.setData({
- current: e.currentTarget.dataset.current
- });
- },
- browsRecound(id) {
- let from = {
- bindId: id,
- type: 9,
- page: '/activity/bargain/detail/detail?id=' + this.query.id + '&acid=' + this.query.acid
- };
- if (this.query.isShare) {
- from.shareType = 1;
- from.page = '/activity/bargain/detail/detail?id=' + this.query.id + '&acid=' + this.query.acid +
- '&isShare=' + true;
- if (!this.query.userId) {} else {
- from.page += '&userId=' + this.query.userId;
- }
- if (!this.query.merchantId) {} else {
- from.merchantId = this.query.merchantId;
- }
- if (!this.query.shopId) {} else {
- from.shopId = this.query.shopId;
- }
- if (!this.query.userId) {} else {
- from.uid = this.query.userId;
- }
- }
- if (this.query.isShareTimeline) {
- from.shareType = 2;
- from.page = '/activity/bargain/detail/detail?id=' + this.query.id + '&acid=' + this.query.acid +
- '&isShareTimeline=' + true;
- if (!this.query.userId) {} else {
- from.page += '&userId=' + this.query.userId;
- }
- if (!this.query.merchantId) {} else {
- from.merchantId = this.query.merchantId;
- }
- if (!this.query.shopId) {} else {
- from.shopId = this.query.shopId;
- }
- if (!this.query.userId) {} else {
- from.uid = this.query.userId;
- }
- }
- return new Promise((resolve,reject)=>{
- req.postRequest('/api/browse', from, data => {resolve()});
- })
- },
- loadCodeParams() {
- let _ts = this;
- return new Promise((resolve, reject) => {
- if (!_ts.scene) {
- resolve();
- return false;
- }
- req.getRequest('/api/code/params', {
- scene: _ts.scene
- }, data => {
- this.query.id = data.scene.split('_')[0];
- this.query.acid = data.scene.split('_')[1];
- this.query.merchantId = data.scene.split('_')[2];
- this.query.shopId = data.scene.split('_')[3];
- this.query.userId = data.userId;
- req.setStorage('pidCode', data.userId);
- resolve();
- });
- });
- },
- getCodeUrl() {
- let that = this; //获取小程序码
- const query = this.query;
- // const params = {
- // page: 'activity/bargain/detail/detail',
- // scene: that.pro.id + '_' + query.acid+'_'+query.merchantId
- // };
- let scene = that.pro.id + '_' + query.acid;
- if (req.getStorage('MERCHANT') && req.getStorage('MERCHANT').id != null) {
- scene += '_' + req.getStorage('MERCHANT').id;
- if (req.getStorage('smallShop') && req.getStorage('MERCHANT').id != null) {
- scene += '_' + req.getStorage('smallShop').id;
- }
- }
-
- const params = {
- page: 'activity/bargain/detail/detail',
- scene: scene
- };
- req.getRequest('/api/program/codev', params, url => {
- that.setData({
- codeUrl: url
- });
- });
- },
- async loadProudct() {
- let that = this;
- await that.loadActivity();
- const query = that.query;
- let isShowLoading = false;
-
- if (!isShowLoading) {
- req.loadIng('加载中');
- isShowLoading = true;
- }
- req.getRequest('/api/product/detail', {
- id: query.id
- }, data => {
- var nodes = data.detail;
- // if (nodes) {
- // if (nodes.indexOf("src") >= 0) {
- // //正则匹配所有图片路径
- // var imgs = [];
- // nodes = nodes.replace(/<img [^>]*src=['"]([^'"]+)[^>]*>/gi, function(match, capture) {
- // imgs.push(capture);
- // that.setData({
- // imgs: imgs
- // });
- // return '';
- // });
- // }
- // }
- let propertiesList = []
- if (data.propertiesList && data.propertiesList.length > 0) {
- data.propertiesList.map(it => {
- propertiesList.push(it.value);
- })
- }
- data.properties = propertiesList.join(' / ')
- that.setData({
- bannerUrls: data.images,
- pro: data,
- nodes: nodes,
- 'pro.salePrice': this.act.money,
- salePrice: data.salePrice,
- // 'pro.stock': this.act.quantity,
- 'pro.stock': this.act.quantity - this.act.payQuantity,
- 'pro.payQuantity': this.act.payQuantity,
- 'pro.maxBuy': this.act.maxBuy,
- allShow:true
- });
- if (isShowLoading) {
- uni.hideLoading();
- isShowLoading = false;
- }
- // that.getCodeUrl();
- });
- },
- loadActivity() {
- let that = this;
- const query = this.query;
- return new Promise((resolve, reject) => {
- let from = {
- id: query.acid,
- type: 5,
- }
- if(!this.query.merchantId){}else{
- from.merchantId=this.query.merchantId
- }
- let userInfo = req.getStorage('userInfo');
- if(userInfo.listShopBase && userInfo.listShopBase.length >0 ){
- from.shopId = userInfo.listShopBase[0].id;
- }
- req.getRequest('/api/activity/detailNew', from, data => {
- /**
- * 判断活动是否结束,结束,2秒后为用户跳转至该商品的详情页面
- */
- // if (data.end) {
- // this.setData({ start: data.end })
- // wx.showToast({
- // title: '活动已结束,两秒后将为您跳转至该商品页面',
- // icon: 'none',
- // success: function () {
- // setTimeout(function () {
- // wx.redirectTo({ url: '/product/detail/detail?id=' + data.productId })
- // }, 2000);
- // }
- // })
- // }
- this.getMy();
- if (data.activityPurchaseRecordListDTO) {
- data.activityPurchaseRecordListDTO.forEach(res => {
- if (req.getStorage('userInfo').id == res.groupMainP.userId) {
- this.setData({
- isuser: true,
- acid: res.groupMainP.id
- });
- }
- });
- }
- this.setData({
- act: data,
- isRemind: data.remindId
- });
- if (data.activityPurchaseRecordListDTO) {
- let groupList = [];
- data.activityPurchaseRecordListDTO.map(item => {
- if (item.groupList) {
- groupList.push(item.groupList[item.groupList.length - 1]);
- }
- });
- // console.log(groupList);
- // data.activityPurchaseRecordListDTO.map((item, index) => {
- // groupList.map((gItem, gIndex) => {
- // console.log(gIndex, index,"123");
- // if (gIndex == index) {
- // console.log(gItem);
- // item.groupMainP.bargainingAmount = parseFloat(gItem
- // .afterAmount - that.act.money).toFixed(2);
- // return item;
- // }
- // });
- // });
- // console.log(data.activityPurchaseRecordListDTO);
- let activityPurchaseRecordListDTO;
- let arr;
- if (data.activityPurchaseRecordListDTO) {
- activityPurchaseRecordListDTO = data.activityPurchaseRecordListDTO.slice(0,
- 2);
- arr = data.activityPurchaseRecordListDTO.slice(0, 21);
- }
- this.setData({
- activityPurchaseRecordListDTO: activityPurchaseRecordListDTO,
- activityDot: arr
- });
- // console.log(activityPurchaseRecordListDTO, arr);
- }
- this.bargainingCount();
- this.initTimer(data);
- this.groupItemTimer(1);
- this.groupItemTimer();
- resolve();
- });
- });
- },
- // 获取用户信息
- getuserInfos(data) {
- let userInfo = req.getStorage('userInfo');
- if (userInfo && userInfo.listShopBase && userInfo.listShopBase != null && userInfo.listShopBase.length >
- 0) {
- if (userInfo.listShopBase[0].merchant_id == data.id && data.type != 5) {
- let url = '/mine/shop/shop?merchantId=' + userInfo.listShopBase[0].merchant_id + '&shopId=' + userInfo.listShopBase[0].id;
- this.url = url;
- this.ascription = true;
- }
- }
- },
- getMy() {
- let that = this;
- let userInfo = req.getStorage('userInfo');
- if(!userInfo || userInfo == null) return false;
- req.getRequest('/api/user/my', {}, data => {
- that.isDistriUser = data.isDistriUser;
- });
- },
- initTimer(group) {
- //计时器
- let _ts = this; //group.endTime
- let nowTime = new Date(group.nowTime.replace(/-/g, '/')).getTime();
- let startTime = new Date(group.startTime.replace(/-/g, '/')).getTime();
- let endTime = new Date(group.endTime.replace(/-/g, '/')).getTime();
- if (!group.start) endTime = startTime;
- let times = parseInt((endTime - nowTime) / 1000);
- let data = {}; //判断是否已开始
- if (nowTime - startTime > 0) {
- //开始了
- _ts.setData({
- isStates: 1
- });
- } else {
- //未开始
- _ts.setData({
- isStates: 0
- });
- }
- _ts.setData(data);
- if (times > 0) {
- _ts.timer = setInterval(() => {
- times--;
- if (times <= 0) {
- //重新加载列表
- _ts.setData({
- 'act.end': true
- });
- return false;
- }
- let n = utils.formatDayTimes(times);
- _ts.setData({
- timer: n.split(/:|天/g)
- });
- }, 1000);
- } else {
- _ts.setData({
- isStates: 2
- });
- }
- },
- //组团倒计时
- groupItemTimer(type) {
- //社区拼图定时器
- let _ts = this;
- let group;
- if (type == 1) {
- group = this.activityPurchaseRecordListDTO;
- } else {
- group = this.activityDot;
- }
- if (group && group.length > 0) {
- let pageList = group;
- for (let i = 0, len = pageList.length; i < len; i++) {
- let group = pageList[i];
- let nowTime = new Date(this.act.nowTime.replace(/-/g, '/')).getTime();
- let endTime = new Date(group.endDate.replace(/-/g, '/'))
- .getTime(); // let actend=new Date(this.data.act.endTime.replace(/-/g, '/')).getTime();
- // let times
- // if(actend-endTime>0){
- // times = parseInt((endTime - nowTime) / 1000);
- // }else{
- // times = parseInt((actend - nowTime) / 1000);
- // }
- let times = parseInt((endTime - nowTime) / 1000); // console.log(group)
- // group.map(item => {
- // item.end = false
- // return item;
- // })
- if (times < 0) {
- let data = {};
- if (type == 1) {
- data['activityPurchaseRecordListDTO[' + i + '].end'] = true;
- } else {
- data['activityDot[' + i + '].end'] = true;
- }
- _ts.setData(data);
- }
- let timer = setInterval(() => {
- times--;
- let data = {};
- if (times === 0) {
- //重新加载列表
- clearInterval(timer);
- } else {
- let n = utils.formatDayTimes(times);
- if (type == 1) {
- data['activityPurchaseRecordListDTO[' + i + '].times'] = n;
- } else {
- data['activityDot[' + i + '].times'] = n;
- }
- }
- _ts.setData(data);
- }, 1000);
- let fs = [];
- if (type == 1) {
- fs['activityPurchaseRecordListDTO[' + i + '].timer'] = timer;
- } else {
- fs['activityDot[' + i + '].timer'] = timer;
- } // this.clearAllTimer()
- _ts.setData(fs);
- }
- }
- },
- clearAllTimer() {
- if (this.activityPurchaseRecordListDTO) {
- this.activityPurchaseRecordListDTO.forEach(it => {
- clearInterval(it.timer);
- clearInterval(it.times);
- });
- }
- if (this.activityDot) {
- this.activityDot.forEach(it => {
- clearInterval(it.timer);
- clearInterval(it.times);
- });
- }
- },
- loadDefaultAddress() {
- if (req.isAuth()) {
- req.g('/api/address/default', data => {
- if (data) this.setData({
- address: data
- });
- else this.pointLocation();
- }, true);
- } else {
- this.pointLocation();
- }
- },
- toAddress() {
- app.globalData.openPage('mine/address/address');
- },
- toMerchant() {
- if(this.about.User_Limit_Store==1){
-
- }else{
- app.globalData.openPage('pages/nearby/nearby?isChoose=true');
- }
- },
- pointLocation() {
- //定位当前位置
- let _ts = this;
- QQMapWX.initMap();
- req.getLocation(res => {
- QQMapWX.reverseGeocoder(res, data => {
- _ts.setData({
- ['address.address']: data.address
- });
- });
- });
- },
- atOnceBuy() {
- //立即购买
- // if (this.data.isStates == 0) return req.msg('活动还未开始');
- // if (this.data.isStates == 2) return req.msg('活动已结束');
- // if(this.data.start) return req.msg('活动已结束');
- let popup = this.pro;
- popup.salePrice = this.pro.actualPrice;
- popup.stock = this.pro.stock;
- this.setData({
- isShow: true,
- popup: popup
- });
- },
- addActivityRemind() {
- req.postRequest('/api/activity/remind', {
- activityId: this.act.id
- }, res => {
- requsetmessage.remind();
- req.msg('订阅提醒成功');
- this.setData({
- isRemind: true
- });
- });
- },
- cancelActivityRemind(event) {
- if (req.header.appId == 'ZQ1VK5oc17I387E') {
- } else {
- req.postRequest('/api/activity/cancel/remind', {
- id: this.act.id
- }, res => {
- req.msg('取消提醒成功');
- this.setData({
- isRemind: false
- });
- });
- }
- },
- hidePopup() {
- this.setData({
- isShow: false
- });
- },
- hidePopupLogin(data) {
- this.isPopupLogin = false;
- },
- clickCollect() {
- let _ts = this;
- req.postRequest('/api/collect', {
- bindId: this.pro.id,
- type: 1
- }, data => {
- _ts.setData({
- 'pro.isCollect': !_ts.pro.isCollect
- });
- });
- },
- goTop: function(e) {
- // 一键回到顶部
- if (uni.pageScrollTo) {
- uni.pageScrollTo({
- scrollTop: 0
- });
- } else {
- uni.showModal({
- title: '提示',
- content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
- });
- }
- },
- create(event) {
- req.isLogin().then(success => {});
- if (!req.getStorage('userInfo')) return false;
- if (this.isStates == 0) return req.msg('活动还未开始');
- if (this.isStates == 2) return req.msg('活动已结束');
- let that = this;
- let end = event.currentTarget.dataset.end;
- if (end == true) return req.msg('活动已结束');
- let acpId = event.currentTarget.dataset.acid;
- let actid = event.currentTarget.dataset.actid;
- let superid = event.currentTarget.dataset.superid;
- let proid = this.pro.id;
- let userid = event.currentTarget.dataset.userid;
- let param = {
- acpId: acpId,
- actId: this.act.actId,
- productId: proid,
- type: 5,
- initOrPart: userid == req.getStorage('userInfo').id ? 1 : 2,
- superiorId: superid
- };
- req.getRequest('/api/activity/participationActivity', param, res => {
- //判断是否帮砍过
- if (res.state == 1) {
- let url = 'activity/bargain/kjDetail/kjDetail?id=' + superid + '&proid=' + this.pro.id +
- '&merchantId=' + this.query
- .merchantId;
- if (userid !== req.getStorage('userInfo').id) url += '&isShow=' + true;
- app.globalData.openPage(url);
- return false;
- }
- let params = {
- acpId: this.act.id,
- type: 5
- };
- if (superid) {
- params.superiorId = superid;
- }
- req.postRequest('/api/activity/carterActivityPurchaseRecords', params, res => {
- if (res) {
- let money = '';
- let id = '';
- if (superid) money = res, id = superid;
- else id = res;
- app.globalData.openPage('activity/bargain/kjDetail/kjDetail?id=' + id +
- '&money=' + money + '&proid=' +
- proid);
- }
- });
- });
- },
- initState() {
- //判断是否发起砍价
- let params = {
- acpId: this.act.id,
- actId: this.act.actId,
- productId: this.act.productId,
- type: 5,
- initOrPart: 1
- };
- return new Promise((resolve, reject) => {
- req.getRequest('/api/activity/participationActivity', params, res => {
- if (res.state == 1) {
- this.setData({
- isBargain: true,
- bargainId: res.id
- });
- } else if (res.state != 1) {
- this.setData({
- isBargain: false
- });
- }
- resolve();
- });
- });
- },
- toKjDetail(event) {
- event.currentTarget.dataset.id;
- app.globalData.openPage('activity/bargain/kjDetail/kjDetail?id=' + this.acid + '&proid=' + this.pro.id +
- '&merchantId=' + this.query.merchantId);
- },
- toKanjia(event) {
- req.isLogin().then(success => {});
- let acid = event.currentTarget.dataset.id;
- let proid = event.currentTarget.dataset.proid;
- app.globalData.openPage('activity/bargain/kjDetail/kjDetail?id=' + acid + '&proid=' + proid +
- '&merchantId=' + this
- .query.merchantId);
- },
- onShareTimeline() {
- let merchantId = '';
- let path = 'id=' + this.query.id + '&acid=' + this.query.acid + '&isShareTimeline=' + true;
- if (!req.getStorage('userInfo').id) {} else {
- path += '&userId=' + req.getStorage('userInfo').id;
- }
- // console.log(this.merchantId);
- let shopId = '';
- if (req.getStorage('MERCHANT') && req.getStorage('MERCHANT').id != null) {
- path += '&merchantId=' + req.getStorage('MERCHANT').id;
- merchantId = req.getStorage('MERCHANT').id;
- if (req.getStorage('smallShop') && req.getStorage('MERCHANT').id != null) {
- path += '&shopId=' + req.getStorage('smallShop').id;
- shopId = req.getStorage('smallShop').id;
- merchantId = req.getStorage('smallShop').merchantDTO.id;
- }
- }
- let url = '/activity/bargain/detail/detail?' + path;
- route.share(2, req.getStorage('userInfo').id, url, merchantId, shopId, 9, this.query.acid + '_' + this
- .query.id);
- return {
- title: (req.getStorage("userInfo").nickName?req.getStorage("userInfo").nickName:'') + '邀请您参与砍价:'+this.pro.title,
- query: path,
- imageUrl: this.pro.pic
- }; // return {
- // title: this.data.pro.title,
- // imageUrl: this.data.pro.pic
- // }
- },
- // 获取砍价活动总人数
- bargainingCount() {
- if (!req.getStorage('userInfo')) return false;
- let param = {
- acpId: this.query.acid,
- actId: this.act.actId,
- productId: this.act.productId
- }
- // console.log(param,"------------------------")
- req.getRequest('/api/activity/bargainingCount', param, data => {
- this.setData({
- count: data
- });
- });
- },
- clickmore() {
- // let arrayShow = [];
- // let index = 0;
- // for (let i = index; i < index + 5; i++) {
- // if (this.data.activityPurchaseRecordListDTO[i]) {
- // arrayShow.push(this.data.activityPurchaseRecordListDTO[i]);
- // index = i;
- // }
- // }
- // index = index + 1;
- // if(arrayShow.length>=20){
- // return req.msg("仅显示20个正在拼团的人")
- // }
- // this.setData({arrayShow:arrayShow})
- // this.groupItemTimer()
- this.getPage();
- this.setData({
- show: true
- });
- },
- eliminate() {
- this.setData({
- show: false
- });
- },
- getPage() {
- //获取系统信息:获取当前屏幕可见区域的宽和高
- let that = this;
- uni.getSystemInfo({
- success: function(res) {
- that.setData({
- "windowWidth": res.windowWidth,
- //可使用窗口宽度,单位px
- "windowHeight": res.windowHeight //可使用窗口高度,单位px
- });
- // console.log(res.windowWidth, that.windowWidth);
- // console.log(res.windowHeight, that.windowHeight);
- }
- });
- },
- showTab: function(e) {
- this.setData({
- tabIndex: e.detail
- });
- },
- scoreTab: function(e) {
- this.form.page = 0;
- this.setData({
- current: e.detail,
- ['form.page']: 1
- });
- },
- freshenFun: function(e) {
- this.setData({
- freshen: e.detail
- });
- },
- // 获取品种保证
- getGuarantee() {
- return new Promise((data, rej) => {
- req.getRequest('/api/config', {}, res => {
- req.setStorage("configRes", JSON.stringify(res))
- this.about=res
- data(res)
- if (this.merchant && this.merchant.isDefault == 1 || this.query.acid) {
- // 切割;拿到数组,然后在过滤掉空值
- if (res.b2c_service_guarantee && res.b2c_service_guarantee != null) {
- this.setData({
- guarantee: res.b2c_service_guarantee.split(";").filter(it => {
- return it = it && it.trim();
- })
- });
- }
- } else {
- if (res.o2o_service_guarantee && res.b2c_service_guarantee != null) {
- this.setData({
- guarantee: res.o2o_service_guarantee.split(";").filter(it => {
- return it = it && it.trim();
- })
- });
- }
- } // if(res.Is_Store_Price_Stock){
- // this.setData({Is_Store_Price_Stock:res.Is_Store_Price_Stock})
- // }
- if (res.is_open_shop) {
- this.is_open_shop = res.is_open_shop;
- }
- if (res.is_open_comments) {
- this.setData({
- is_open_comments: res.is_open_comments
- });
- } // this.setData({ show_membership_price: res.show_membership_price, Is_Store_Price_Stock: res.Is_Store_Price_Stock, is_open_shop: res.is_open_shop })
- });
- })
- },
- // 是否开启小店
- isShop() {
- if (req.getStorage('distribution')) {
- dist = req.getStorage('distribution')
- this.setData({
- distr: dist
- })
- console.log(dist)
- if (dist.distributionSmallShopOpen == 1) {
- req.postRequest('/api/shopBase/isOpenShop', {}, data => {
- this.setData({
- isshop: data
- })
- console.log(data)
- })
- }
- }
- },
- addShop() { //添加到小店
- req.postRequest('/api/shopProduct/save', {
- productId: this.act.id,
- type: 7
- }, data => {
- this.act.isJoinShop = true;
- this.isHide = false;
- })
- },
- hidePop() { //添加到小店
- this.setData({
- isHide: true
- })
- },
- }
- };
- </script>
- <style>
- @import "./detail.css";
- </style>
|