| | |
| | | header("Access-Control-Allow-Origin:*"); |
| | | class Activity extends Api |
| | | { |
| | | protected $noNeedLogin = ['fqb_plat_cate','run_countRecruitAct','test']; |
| | | protected $noNeedLogin = ['recordItemClick','fqb_plat_cate','run_countRecruitAct','test']; |
| | | protected $noNeedRight = '*'; |
| | | /** |
| | | * è·åç¯æ¢æ¦ |
| | |
| | | $this->success('è·åæå',['haspop'=>false]); |
| | | } |
| | | |
| | | /** |
| | | * |
| | | * è®°å½ååç¹å» |
| | | */ |
| | | |
| | | public function recordItemClick() |
| | | { |
| | | $goodsid=request()->param('goodsid'); |
| | | $plat=request()->param('plat'); |
| | | $title=request()->param('title'); |
| | | $act_price=request()->param('act_price'); |
| | | $actInfo=new ActInfo(); |
| | | $actInfo->recordItemClick($goodsid,$plat,$title,$act_price); |
| | | $this->success('æå',['success'=>true]); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | return true; |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * æ´æ°è·åå·²éè¯·äººæ° |
| | | */ |
| | |
| | | return false; |
| | | } |
| | | |
| | | /*** |
| | | * è®°å½ååç¹å» |
| | | */ |
| | | public function recordItemClick($goodsid,$plat,$title,$act_price) |
| | | { |
| | | $inser=Db::execute('insert into t_wxitems (id,create_time,goodsid,plat,title,act_price) values(?,?,?,?,?,?)',[guid(),date("Y-m-d H:i:s", time()),$goodsid,$plat,$title,$act_price]); |
| | | return true; |
| | | } |
| | | } |
| | |
| | | return $icon; |
| | | } |
| | | } |
| | | function guid() |
| | | { |
| | | |
| | | if (function_exists('com_create_guid')) { |
| | | |
| | | return com_create_guid(); |
| | | |
| | | } else { |
| | | |
| | | mt_srand((double)microtime() * 10000); |
| | | $charid = strtoupper(md5(uniqid(rand(), true))); |
| | | $uuid = substr($charid, 0, 8) |
| | | . substr($charid, 8, 4) |
| | | . substr($charid, 12, 4) |
| | | . substr($charid, 16, 4) |
| | | . substr($charid, 20, 12); |
| | | return $uuid; |
| | | |
| | | } |
| | | } |
| | | |
| | | function create_guid() { |
| | | return time().mt_rand(10000,99999); |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view class="item-v" @click="getShareLink(items)"> |
| | | <view class="item-img"> |
| | | <image :src="items.mainPic"> |
| | | </image> |
| | | </view> |
| | | <view class="item-txt"> |
| | | <view style="display: flex;"> |
| | | <image :src="items.labelImg"></image> |
| | | <view class="item-txt-title">{{items.title}}</view> |
| | | </view> |
| | | <view class="item-coupon"> |
| | | <view class="cop-con"> |
| | | <view class="cop-txt">å¸</view> |
| | | <view class="cop-money">Â¥{{items.couponPrice}}</view> |
| | | </view> |
| | | </view> |
| | | <view class="item-bottom"> |
| | | <view class="item-price"> |
| | | <view>å¸åä»·<span class="item-price-prc">Â¥{{items.actualPrice}}</span></view> |
| | | <view style="text-decoration: line-through;">åä»·:{{items.originalPrice}}</view> |
| | | </view> |
| | | |
| | | <view class="item-copy">å¤å¶é¾æ¥</view> |
| | | |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | props: { |
| | | items: Object, |
| | | isrecord: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | }, |
| | | created() {}, |
| | | methods: { |
| | | oncopy(txt) { |
| | | let copyObj = { |
| | | data: txt, |
| | | success: function() { |
| | | uni.showToast({ |
| | | title: '伿 龿¥å·²å¤å¶ï¼ç°å¨æå¼ææºæ·å®ï¼é¢å伿 å¸å§~', |
| | | icon: 'none', |
| | | duration: 2500 |
| | | }); |
| | | }, |
| | | fail: function(e) { |
| | | console.log(e); |
| | | } |
| | | }; |
| | | uni.setClipboardData(copyObj); |
| | | }, |
| | | getShareLink(items) { |
| | | if(this.isrecord) |
| | | {//è®°å½ç¹å» |
| | | this.recordClick(items.goodsId,items.sourceType,items.dtitle,items.actualPrice); |
| | | } |
| | | var goodsid=items.goodsId; |
| | | var that = this; |
| | | let postdata = { |
| | | goodsId: goodsid |
| | | }; |
| | | uni.showLoading({ |
| | | title: 'å¤å¶ä¸..', |
| | | mask: true |
| | | }); |
| | | this.$http.post('/api/taoke/get_privilege_link', |
| | | postdata |
| | | ).then(e => { |
| | | uni.hideLoading(); |
| | | if (e.code != 0) { |
| | | return; |
| | | } |
| | | this.oncopy(e.data.info.longTpwd); |
| | | }).catch(function(err) { |
| | | console.log(err); |
| | | }) |
| | | }, |
| | | recordClick(goodsid,plat,title,act_price) |
| | | { |
| | | let postdata={ |
| | | goodsid:goodsid, |
| | | plat:plat, |
| | | title:title, |
| | | act_price:act_price |
| | | } |
| | | this.$http.post('/api/activity/recordItemClick', |
| | | postdata |
| | | ).then(e => { |
| | | |
| | | }).catch(function(err) { |
| | | console.log(err); |
| | | }) |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | .item-price-prc { |
| | | color: #fe3a3f; |
| | | font-size: 1.2rem; |
| | | margin-right: 0.4rem; |
| | | font-weight: 500; |
| | | } |
| | | |
| | | .cop-txt { |
| | | padding: 0.1rem; |
| | | } |
| | | |
| | | .cop-money { |
| | | display: flex; |
| | | align-items: center; |
| | | height: 100%; |
| | | font-weight: 400; |
| | | color: #ff4d42; |
| | | background: #fff; |
| | | padding: 0.1rem; |
| | | } |
| | | |
| | | .cop-con { |
| | | display: inline-flex; |
| | | background: linear-gradient(0deg, #ff753c, #ff4b42); |
| | | color: #fff; |
| | | padding: 0.05rem; |
| | | font-size: 0.9rem; |
| | | |
| | | } |
| | | |
| | | .item-v { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | padding: 0.5rem; |
| | | background: #fff; |
| | | border-radius: 0.3rem; |
| | | width: 92%; |
| | | margin: 0 auto; |
| | | margin-bottom: 0.3rem; |
| | | } |
| | | |
| | | .item-img { |
| | | width: 20%; |
| | | } |
| | | |
| | | .item-img image { |
| | | width: 6rem; |
| | | height: 6rem; |
| | | } |
| | | |
| | | .item-txt { |
| | | width: 71%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .item-txt image { |
| | | width: 1.6rem; |
| | | height: 0.9rem; |
| | | } |
| | | |
| | | .item-txt-title { |
| | | font-size: 0.9rem; |
| | | margin-left: 0.3rem; |
| | | text-overflow: -o-ellipsis-lastline; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | display: -webkit-box; |
| | | -webkit-line-clamp: 2; |
| | | line-clamp: 2; |
| | | -webkit-box-orient: vertical; |
| | | width: 90%; |
| | | } |
| | | |
| | | .item-price { |
| | | display: flex; |
| | | font-size: 0.8rem; |
| | | align-items: baseline; |
| | | color: #8d8484; |
| | | } |
| | | |
| | | .item-bottom { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .item-copy { |
| | | width: 5.92rem; |
| | | height: 1.66rem; |
| | | background: linear-gradient(-90deg, #fe3a3f, #faa450); |
| | | font-size: 0.9rem; |
| | | font-weight: 500; |
| | | color: #fffefd; |
| | | line-height: 1.66rem; |
| | | text-align: center; |
| | | border: 0; |
| | | outline: 0; |
| | | float: right; |
| | | border-radius: 1rem; |
| | | } |
| | | </style> |
| | |
| | | "path": "pages/wxkf/index", |
| | | "style": { |
| | | "navigationStyle":"custom",//䏿¾ç¤ºå¤´é¨ |
| | | "navigationBarTitleText": "微信客æ" |
| | | "navigationBarTitleText": "è³å°VIPç¦å©" |
| | | } |
| | | }, |
| | | { |
| | |
| | | <template> |
| | | <view class="main-cont"> |
| | | <view class="txt-sty" style="margin-top: 4rem;"> |
| | | <image class="head-img" :src="wxhead"></image> |
| | | <view> |
| | | <view class="main-cont"> |
| | | <view class="txt-sty"> |
| | | <image class="head-img" :src="wxhead"></image> |
| | | </view> |
| | | <view class="txt-sty head-txt"> |
| | | 微信å·ï¼{{wxtxt}} |
| | | </view> |
| | | <view class="txt-sty"> |
| | | <image :src="wxImg" class="ercode-img"></image> |
| | | </view> |
| | | <view class="txt-sty" style="font-weight: 700; margin-top: 1rem;">é¿æäºç»´ç ï¼æ·»å 微信享å伿 </view> |
| | | </view> |
| | | <view class="txt-sty head-txt"> |
| | | 微信å·ï¼{{wxtxt}} |
| | | <view class="item-contant" v-if="itemsdata&&itemsdata.length>0"> |
| | | <view class="item-head"> |
| | | ---- å¥½ç©æ¨è ---- |
| | | </view> |
| | | <view class="item-list"> |
| | | <view class="item-v" v-for="item in itemsdata"> |
| | | <lineItem :isrecord="isrecord" :items="item"></lineItem> |
| | | </view> |
| | | </view> |
| | | <view class="bottom-show">æ·»å 微信ï¼äº«åæ´å¤ä¼æ ~</view> |
| | | </view> |
| | | <view class="txt-sty"> |
| | | <image :src="wxImg" class="ercode-img"></image> |
| | | </view> |
| | | <view class="txt-sty" style="font-weight: 700; margin-top: 1rem;">é¿æäºç»´ç ï¼æ·»å 微信享å伿 </view> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import lineItem from '../../components/items/LineItem.vue'; |
| | | import comUtils from '../../utils/ComUtils.js' |
| | | export default { |
| | | components: { |
| | | lineItem |
| | | }, |
| | | data() { |
| | | return { |
| | | wxImg: 'https://img.ushopvip.com/dfg/wxcode.png', |
| | | wxhead: 'https://img.ushopvip.com/dfg/dfgapplogo.png', |
| | | wxtxt: 'sedws22' |
| | | wxImg: 'https://yanfeiobpub.obs.cn-east-3.myhuaweicloud.com/dfg/wxhead0801.png', |
| | | wxhead: 'https://yanfeiobpub.obs.cn-east-3.myhuaweicloud.com/dfg/wxheadimg0801.jpg', |
| | | wxtxt: '17396873080', |
| | | itemsdata: {}, |
| | | isrecord:true |
| | | } |
| | | }, |
| | | onLoad() { |
| | | |
| | | let isshow=comUtils.getUrlPar('ishow'); |
| | | if(isshow) |
| | | { |
| | | this.getItemsInfo(); |
| | | } |
| | | }, |
| | | methods: { |
| | | |
| | | getItemsInfo() { |
| | | var that = this; |
| | | let postdata = { |
| | | page: 1, |
| | | pageSize: 20, |
| | | sort: 7 |
| | | }; |
| | | this.$http.post('/api/taoke/tb_goods_list', |
| | | postdata |
| | | ).then(e => { |
| | | uni.hideLoading(); |
| | | if (e.code != 0) { |
| | | return; |
| | | } |
| | | this.itemsdata = e.data.list; |
| | | console.log(e); |
| | | }).catch(function(err) { |
| | | console.log(err); |
| | | }) |
| | | } |
| | | |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | .txt-sty{ |
| | | .item-head { |
| | | text-align: center; |
| | | padding: 1rem; |
| | | font-weight: 600; |
| | | color: linear-gradient(-90deg, #fe3a3f, #faa450); |
| | | color: #fe3a3f; |
| | | background: linear-gradient(-90deg, #fe3a3f, #faa450); |
| | | -webkit-background-clip: text; |
| | | -webkit-text-fill-color: transparent; |
| | | } |
| | | |
| | | .bottom-show { |
| | | text-align: center; |
| | | width: 100%; |
| | | padding-bottom: 1rem; |
| | | color: #fe3a3f; |
| | | background: linear-gradient(-90deg, #fe3a3f, #faa450); |
| | | -webkit-background-clip: text; |
| | | -webkit-text-fill-color: transparent; |
| | | font-weight: 600; |
| | | } |
| | | |
| | | .txt-sty { |
| | | text-align: center; |
| | | } |
| | | .main-cont { |
| | | |
| | | } |
| | | .head-txt{ |
| | | |
| | | .main-cont {} |
| | | |
| | | .head-txt { |
| | | margin: 0.4rem 0 2rem 0; |
| | | } |
| | | |
| | | .head-img { |
| | | width: 5rem; |
| | | height: 5rem; |
| | | margin-top: 4rem; |
| | | } |
| | | .ercode-img{ |
| | | |
| | | .ercode-img { |
| | | width: 16rem; |
| | | height: 16rem; |
| | | } |
| | |
| | | }) |
| | | } |
| | | let userToken=comUtils.getUrlPar("dfgtoken"); |
| | | userToken=userToken?userToken:'3p6FrbNa+gAPubHGOK35mA=='; |
| | | enstr="dfg"+enstr+"apph5"+userToken; |
| | | enstr=md5.hex_md5(enstr); |
| | | enstr+='.'+userToken |