market_draw_h5

This commit is contained in:
dengbw
2023-05-06 10:10:03 +08:00
committed by lccsw
parent bc8141bff0
commit 748d5a79ea
8 changed files with 97 additions and 26 deletions
+5 -3
View File
@@ -19,7 +19,7 @@ class Draw extends CI_Controller
}
/**
* Notes:
* Notes:主页
* https://liche-dev.xiaoyu.com/h5/market/draw
* https://www.liche.cn/h5/market/draw
* Created on: 2022/11/09 11:19
@@ -46,10 +46,12 @@ class Draw extends CI_Controller
if ($re['activityId']) {
$winNumAry[] = ['title' => '请选择中奖人数', 'value' => 0];
$winTypeAry[] = ['title' => '请选择抽奖类型'];
$screenDisplay = 1;
$bgImg = 'https://qs.haodian.cn/web/images/project/H5-ShiYu-draw/bg-20221213.png';
$activityId = intval($re['activityId']);
$re_draw = $this->mdSyliveActivityDraw->get(['activityId' => $activityId]);
if ($re_draw) {
$screenDisplay = $re_draw['screenDisplay'];
$re_draw['bgImg'] && $bgImg = build_qiniu_image_url($re_draw['bgImg']);
if ($re_draw['winType']) {
$json_winType = json_decode($re_draw['winType'], true);
@@ -66,8 +68,8 @@ class Draw extends CI_Controller
}
$title = $re['title'] . '_私域直播抽奖';
$bgImg = "background-image:url('{$bgImg}')";
$data = ['winNumAry' => $winNumAry, 'winTypeAry' => $winTypeAry, 'activityId' => $activityId,
'bgImg' => $bgImg, 'title' => $title];
$info = ['winNumAry' => $winNumAry, 'winTypeAry' => $winTypeAry, 'screenDisplay' => $screenDisplay];
$data = ['info' => $info, 'activityId' => $activityId, 'bgImg' => $bgImg, 'title' => $title];
$this->show_json(200, '抽奖码验证成功', $data);
} else {
$this->show_json(400, '抽奖码验证失败');
+75 -5
View File
@@ -6,14 +6,14 @@
content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>私域直播抽奖</title>
<link rel="stylesheet" href="/css/h5/market/draw/pc.css?20221216">
<link rel="stylesheet" href="/css/h5/market/draw/pc.css?2023505">
<script type="text/javascript" src="https://qs.haodian.cn/web/javascript/jquery.3.4.1.min.js"></script>
<script type="text/javascript" src="https://qs.haodian.cn/web/javascript/vue.2.6.10.min.js"></script>
<script type="text/javascript" src="https://qs.haodian.cn/web/javascript/mDialog.js"></script>
</head>
<body class="bg-fff">
<div class="bg-fff" id="app" ref="app">
<div class="container">
<div class="container" v-if="info.screenDisplay==1">
<div class="absolute box-center mt50 box-1280-720 bg-no-repeat bg-size-fullwidth bg-pos-top" :style="bgImg">
<div class="absolute box-center pt3 font-50 text-bold color-fff text-italic">
{{topTitle}}
@@ -159,7 +159,77 @@
<img style="width:1px;height:1px;" :src="item.headimg" alt="#"/>
</div>
</div>
</div>
<div class="container" v-else-if="info.screenDisplay==2">
<div class="absolute box-center mt20 box-450-800 bg-no-repeat bg-size-fullwidth bg-pos-top" :style="bgImg">
<div class="absolute box-center font-28 text-bold space-nowrap color-fa000e" style="top:250px">
{{topTitle}}
</div>
<div class="maincontent-330-420 ulib-r20 overflowhidden">
<div class="box-330-380 relative overflowhidden">
<div class="absolute top-0 left-0 right-0 pt40 text-center" v-if="draw.prizeUrl">
<img :src="draw.prizeUrl" style="width:220px;" alt="#"/>
</div>
<div class="absolute box-center-middle" style="width:100%;" v-if="winNum==1">
<div class="relative pb20 text-center" v-if="index<winNum" v-if="index<winNum"
v-for="(item,index) in list">
<img class="imgsize-100X100 ulib-r750" :src="item.headimg" alt="#"/>
<div class="mt10 text-nowrap font-48">{{item.name}}</div>
<div class="mt5 font-30 color-666">{{item.tel}}</div>
</div>
</div>
<div class="absolute box-center-middle" style="width:100%;" v-else-if="winNum==10">
<div class="fn-flex fn-flex-wrap">
<div class="wp40 relative" style="height:70px;" v-if="index<winNum"
v-for="(item,index) in list">
<img class="absolute box-middle left-0 ml45 imgsize-34X34 ulib-r750" :src="item.headimg"
alt="#"/>
<div class="absolute box-middle left-0 right-0 pl85 line-height-15">
<div class="text-nowrap font-14">{{item.name}}</div>
<div class="font-12 color-666">{{item.tel}}</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="fixed left-0 bottom-0 right-0 bg-1a1a1a pt30 pb15 text-center fn-clear">
<select id="win_type_id" class="fn-fl text-middle ml40 select-more pl20 pr20 ulib-r5 font-18"
style="height:50px;"
@change="changeTitle">
<option :value="item.value" v-for="(item,index) in info.winTypeAry">{{item.title}}</option>
</select>
<span class="fn-fl text-middle ml10 mt10 font-18 color-fff">已中奖{{winMsgTip}}</span>
<span v-if="!isStartAc">
<span class="text-middle font-18 color-fff">中奖人数:</span>
<select class="text-middle mr10 select-more pl20 pr20 ulib-r5 font-18" style="height:50px;"
@change="changeType">
<option :value="item.value" v-for="item in info.winNumAry">{{item.title}}</option>
</select>
<a class="text-middle inline-block bg-1282f4 ml10 mr10 pt10 pb10 pl20 pr20 text-center font-18 color-fff ulib-r5"
v-if="draw.list.length>0" href="javascript:;" @click="start">开始抽奖</a>
<a class="text-middle inline-block bg-1282f4 ml10 mr10 pt10 pb10 pl20 pr20 text-center font-18 color-fff ulib-r5"
href="javascript:;" @click="getDraw">{{draw.list.length>0 ? '更新' : '获取'}}抽奖名单</a>
</span>
<span v-else>
<a class="text-middle inline-block bg-1282f4 ml10 mr10 pt10 pb10 pl20 pr20 text-center font-18 color-fff ulib-r5"
href="javascript:;" @click="result">立即开奖</a>
<a v-if="!isShowReset"
class="text-middle inline-block bg-aaa ml10 mr10 pt10 pb10 pl20 pr20 text-center font-18 color-fff ulib-r5"
href="javascript:;" @click="isShowReset = true">放弃开奖</a>
<a v-else
class="text-middle inline-block bg-aaa ml10 mr10 pt10 pb10 pl20 pr20 text-center font-18 color-fff ulib-r5"
href="javascript:;" @click="reset">确认放弃开奖</a>
</span>
<div class="absolute left-0 right-0 top-0 pt5 font-14 color-eb5359">{{msgTip}}</div>
</div>
<!--隐藏加载数据-->
<div class="absolute left-0 bottom-0 op0 overflowhidden" style="width:50px;height:50px;">
<div v-for="item in draw.list">
<img style="width:1px;height:1px;" :src="item.headimg" alt="#"/>
</div>
</div>
</div>
<div class="msg fn-hide" :style="isShowLogin?'display:block':'display:none'" v-if="isShowLogin">
<div class="msgBg"></div>
@@ -179,7 +249,6 @@
</div>
</div>
</div>
<script>
let hostUrl = '';
var app = new Vue({
@@ -196,6 +265,7 @@
info: {
winNumAry: [],
winTypeAry: [],
screenDisplay: 1,
},
draw: {
list: [],
@@ -241,7 +311,7 @@
that.bgImg = re.data.bgImg;
that.isShowLogin = false;
that.activityId = re.data.activityId;
that.info = {winNumAry: re.data.winNumAry, winTypeAry: re.data.winTypeAry};
that.info = re.data.info;
}
},
complete: function () {
+4 -1
View File
@@ -65,7 +65,7 @@ class Activity extends BaseController
$bgImg = $channelImg = $banner = $sharePhoto = $shareImg = $shareTitle = $pay = $bottoms = $showBlacklist = [];
$item = ['itemImg' => [], 'title' => '', 'introduction' => '', 'price' => '', 'stock' => '', 'dateRange' => ''];
$coupon = ['img' => [], 'title' => '', 'rules' => '', 'price' => '', 'dateRange' => ''];
$draw = ['bgImg' => [], 'sms' => '', 'winNum' => [], 'winType' => []];
$draw = ['bgImg' => [], 'sms' => '', 'screenDisplay' => 1, 'winNum' => [], 'winType' => []];
$pay = ['way' => 1, 'price' => '', 'img' => []];
$signBespeak = ['status' => 0, 'title' => '', 'content' => '', 'itemId' => ''];
$barrage = ['color' => 0, 'title' => ''];
@@ -158,6 +158,7 @@ class Activity extends BaseController
//抽奖配置
$re_draw = $this->mdSyliveActivityDraw->get(['activityId' => $activityId]);
if ($re_draw) {
$draw['screenDisplay'] = intval($re_draw['screenDisplay']);
if ($re_draw['bgImg']) {
$draw['bgImg'] = [['uid' => 1, 'fileUrl' => $re_draw['bgImg'], 'url' => build_qiniu_image_url($re_draw['bgImg']), 'status' => 'done']];
}
@@ -700,11 +701,13 @@ class Activity extends BaseController
}
$bgImg = $this->input_param('bgImg');
$sms = $this->input_param('sms');
$screenDisplay = $this->input_param('screenDisplay');
$winNum = $this->input_param('winNum');
$winType = $this->input_param('winType');
$re = $this->mdSyliveActivityDraw->get(['activityId' => $activityId]);
$upDate['bgImg'] = $bgImg ? $bgImg[0]['fileUrl'] : '';
$upDate['sms'] = $sms;
$upDate['screenDisplay'] = $screenDisplay;
$setWinNum = $setWinType = [];
if ($winNum) {
foreach ($winNum as $v) {
@@ -209,10 +209,9 @@ class groupsCustomer extends BaseController
}
}
}
if ($limit >= 10000) {
$count = $limit;
} else {
$count = $this->mdSyliveCustomer->count($where);
$count = $this->mdSyliveOrder->count($where);
if ($limit >= 10000 && $count > 10000) {
$this->return_json('导出失败,每次导出不能超出10000条数据');
}
if ($count) {
$re = $this->mdSyliveActivity->get(['activityId' => $activityId], 'jsondata');
@@ -295,10 +295,9 @@ class groupsExchange extends BaseController
}
}
}
if ($limit >= 10000) {
$count = $limit;
} else {
$count = $this->mdSyliveOrder->count($where);
$count = $this->mdSyliveOrder->count($where);
if ($limit >= 10000 && $count > 10000) {
$this->return_json('导出失败,每次导出不能超出10000条数据');
}
if ($count) {
$res = $this->mdSyliveOrder->select($where, $sort_order, $page, $limit);
@@ -116,10 +116,9 @@ class groupsOrder extends BaseController
}
}
}
if ($limit >= 10000) {
$count = $limit;
} else {
$count = $this->mdSyliveOrder->count($where);
$count = $this->mdSyliveOrder->count($where);
if ($limit >= 10000 && $count > 10000) {
$this->return_json('导出失败,每次导出不能超出10000条数据');
}
if ($count) {
$res = $this->mdSyliveOrder->select($where, $sort_order, $page, $limit);
+3 -4
View File
@@ -118,10 +118,9 @@ class groupsWin extends BaseController
}
}
}
if ($limit >= 10000) {
$count = $limit;
} else {
$count = $this->mdSyliveOrder->count($where);
$count = $this->mdSyliveOrder->count($where);
if ($limit >= 10000 && $count > 10000) {
$this->return_json('导出失败,每次导出不能超出10000条数据');
}
if ($count) {
$winTypeAry = [];
File diff suppressed because one or more lines are too long