移除插件
@ -1,199 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace app\data\controller\app;
|
||||
|
||||
use app\wechat\service\WechatService;
|
||||
use think\admin\Controller;
|
||||
|
||||
/**
|
||||
* 抽奖活动管理
|
||||
* Class Luckdraw
|
||||
* @package app\data\controller\wap
|
||||
*/
|
||||
class Luckdraw extends Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* 当前活动
|
||||
* @var array
|
||||
*/
|
||||
protected $vo;
|
||||
|
||||
/**
|
||||
* 活动编号
|
||||
* @var string
|
||||
*/
|
||||
protected $code;
|
||||
|
||||
/**
|
||||
* 当前会员数据
|
||||
* @var array
|
||||
*/
|
||||
protected $member;
|
||||
|
||||
/**
|
||||
* 当前中奖记录
|
||||
* @var array
|
||||
*/
|
||||
protected $record;
|
||||
|
||||
/**
|
||||
* 活动规则
|
||||
* @var string
|
||||
*/
|
||||
protected $rules;
|
||||
|
||||
/**
|
||||
* 控制器初始化
|
||||
* @throws \WeChat\Exceptions\InvalidResponseException
|
||||
* @throws \WeChat\Exceptions\LocalCacheException
|
||||
* @throws \think\Exception
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
protected function initialize()
|
||||
{
|
||||
$this->code = $this->request->param('code');
|
||||
if (empty($this->code)) $this->error('活动编号不能为空!');
|
||||
// 微信网页授权
|
||||
$this->jsoptin = json_encode(WechatService::instance()->getWebJssdkSign(), 256);
|
||||
$this->openid = WechatService::instance()->getWebOauthInfo($this->request->url(true), 0, true)['openid'];
|
||||
// 活动数据初始化
|
||||
$map = ['code' => $this->code, 'deleted' => 0];
|
||||
$this->vo = $this->app->db->name('ActivityLuckdrawConfig')->where($map)->find();
|
||||
if (empty($this->vo)) $this->error('活动不存在,请通过邀请二维码进入!');
|
||||
// 活动会员信息
|
||||
$map = ['openid' => $this->openid];
|
||||
$this->member = $this->app->db->name('ActivityLuckdrawMember')->where($map)->find();
|
||||
// 会员中奖数据
|
||||
$map = ['mid' => $this->member['id'], 'code' => $this->vo['code']];
|
||||
$this->record = $this->app->db->name('ActivityLuckdrawRecord')->where($map)->find();
|
||||
// 抽奖活动规则
|
||||
$this->rules = explode("\n", $this->vo['content']);
|
||||
}
|
||||
|
||||
/**
|
||||
* 进入活动列表
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$map = [['prize_code', '<>', ''], ['code', '=', $this->vo['code']]];
|
||||
$this->records = $this->app->db->name('ActivityLuckdrawRecord')->where($map)->order('id desc')->select()->toArray();
|
||||
foreach ($this->records as &$vo) $vo['username'] = mb_substr($vo['username'], 0, 1) . ' * * ';
|
||||
$this->fetch();
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户信息录入
|
||||
* @throws \think\Exception
|
||||
* @throws \think\exception\PDOException
|
||||
*/
|
||||
public function info()
|
||||
{
|
||||
$data = $this->_vali([
|
||||
'openid.value' => $this->openid,
|
||||
'username.require' => '请输入您的姓名!',
|
||||
'phone.require' => '请输入您的手机!',
|
||||
'phone.mobile' => '请输入正确的手机号!',
|
||||
]);
|
||||
if (data_save('ActivityLuckdrawMember', $data, 'openid')) {
|
||||
$this->success('信息录入成功,可以进行抽奖了!');
|
||||
}
|
||||
$this->error('信息录入失败,请稍候再试!');
|
||||
}
|
||||
|
||||
/**
|
||||
* 进行抽奖
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function prize()
|
||||
{
|
||||
if ($this->record) {
|
||||
$this->error('已经参与抽奖,不能再抽奖了!');
|
||||
}
|
||||
/* 统计已经发出的奖品 */
|
||||
$map = ['code' => $this->code];
|
||||
[$check, $useds, $rateNumber, $rateRand] = [[], [], 0, rand(1, 1000000) / 10000];
|
||||
$query = $this->app->db->name('ActivityLuckdrawRecord')->where($map)->group('prize_code,prize_level');
|
||||
$query->field('prize_code,prize_level,count(1) prize_used')->select()->map(function ($item) use (&$useds) {
|
||||
$useds["{$item['prize_code']}_{$item['prize_level']}"] = $item['prize_used'];
|
||||
});
|
||||
/* 统计活动的奖品数据 */
|
||||
$query = $this->app->db->name('ActivityLuckdrawConfigRecord')->field('prize_num,prize_rate,prize_level,prize_code');
|
||||
/* 计算抽奖的中奖数据 */
|
||||
foreach ($query->where($map)->select()->toArray() as $key => $item) {
|
||||
$item['prize_used'] = $useds["{$item['prize_code']}_{$item['prize_level']}"] ?? 0;
|
||||
if (empty($item['prize_num']) || $item['prize_used'] >= $item['prize_num']) {
|
||||
continue;
|
||||
} elseif ($rateRand <= ($rateNumber += $item['prize_rate'])) {
|
||||
$check = $item;
|
||||
break;
|
||||
}
|
||||
}
|
||||
/* 组装活动中奖记录 */
|
||||
$data = ['code' => $this->code];
|
||||
$data['mid'] = $this->member['id'];
|
||||
$data['phone'] = $this->member['phone'];
|
||||
$data['username'] = $this->member['username'];
|
||||
if (empty($check)) {
|
||||
$data['prize_code'] = '';
|
||||
$data['prize_level'] = '未中奖';
|
||||
if ($this->app->db->name('ActivityLuckdrawRecord')->insert($data) !== false) {
|
||||
$this->success('抱歉没有抽到奖品哦!');
|
||||
}
|
||||
} else {
|
||||
$map = ['code' => $check['prize_code'], 'deleted' => 0, 'status' => 1];
|
||||
$prize = $this->app->db->name('ActivityLuckdrawPrize')->where($map)->find();
|
||||
if (empty($prize)) {
|
||||
$this->error('奖品已下架或被禁用!');
|
||||
} else {
|
||||
$data['prize_code'] = $prize['code'];
|
||||
$data['prize_name'] = $prize['name'];
|
||||
$data['prize_cover'] = $prize['cover'];
|
||||
$data['prize_remark'] = $prize['remark'];
|
||||
$data['prize_express'] = $prize['express'];
|
||||
$data['prize_level'] = $check['prize_level'];
|
||||
if ($this->app->db->name('ActivityLuckdrawRecord')->insert($data) !== false) {
|
||||
$this->success('奖品抽取成功!', $data);
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->error('抽奖失败,请稍候再试!');
|
||||
}
|
||||
|
||||
/**
|
||||
* 奖品记录核销
|
||||
* @throws \think\db\exception\DbException
|
||||
*/
|
||||
public function used()
|
||||
{
|
||||
$map = $this->_vali(['uncode.require' => '奖品核销码不能为空!']);
|
||||
if ($this->vo['uncode'] !== $map['uncode']) $this->error('核销码错误,请重新输入!');
|
||||
if ($this->vo['uncode_status'] > 0) $this->error('该奖品已经核销,请勿重复核销!');
|
||||
$data = ['uncode_code' => $map['uncode'], 'uncode_status' => 1, 'uncode_datatime' => date('Y-m-d H:i:s')];
|
||||
$result = $this->app->db->name('ActivityLuckdrawRecord')->where(['id' => $this->record['id']])->update($data);
|
||||
$result !== false ? $this->success('奖品核销成功!') : $this->error('奖品核销失败,请稍候再试!');
|
||||
}
|
||||
|
||||
/**
|
||||
* 提交收货地址
|
||||
* @throws \think\db\exception\DbException
|
||||
*/
|
||||
public function express()
|
||||
{
|
||||
$data = $this->_vali([
|
||||
'express_city.require#city' => '收货城市不能为空!',
|
||||
'express_area.require#area' => '收货区域不能为空!',
|
||||
'express_address.require#address' => '详细地址不能为空!',
|
||||
'express_province.require#province' => '收货省份不能为空!',
|
||||
]);
|
||||
$result = $this->app->db->name('ActivityLuckdrawRecord')->where(['id' => $this->record['id']])->update($data);
|
||||
$result !== false ? $this->success('提交收货地址成功!') : $this->error('提交收货地址失败,请稍候再试!');
|
||||
}
|
||||
}
|
5272
app/data/data.sql
3789
app/data/region.sql
@ -1,153 +0,0 @@
|
||||
{extend name="../../admin/view/main"}
|
||||
|
||||
{block name="content"}
|
||||
<table class="layui-hide">
|
||||
<tbody id='add-item-tpl'>
|
||||
<tr>
|
||||
<td class="padding-0">
|
||||
<select name='prize_code[]' class="layui-select full-width border-0" lay-ignore>
|
||||
{foreach $prizes as $prize}
|
||||
<option value="{$prize.code}">{$prize.code} {$prize.name}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</td>
|
||||
<td class="nowrap padding-0">
|
||||
<label class="label-required-null">
|
||||
<input name="prize_level[]" placeholder="请输入奖项" required value="特等奖" class="layui-input border-0 text-center">
|
||||
</label>
|
||||
</td>
|
||||
<td class="nowrap padding-0">
|
||||
<label class="label-required-null">
|
||||
<input name="prize_num[]" data-blur-number="0" value="1" class="layui-input border-0 text-center">
|
||||
</label>
|
||||
</td>
|
||||
<td class="nowrap padding-0">
|
||||
<label class="label-required-null">
|
||||
<input name="prize_rate[]" data-blur-number="4" value="0.0001" class="layui-input border-0 text-center inline-block">
|
||||
<span class="absolute font-s14" style='right:10px;width:39px;text-align:center;height:39px;line-height:39px;display:inline-block'>%</span>
|
||||
</label>
|
||||
</td>
|
||||
<td class="nowrap padding-0 text-center">
|
||||
<a onclick="moveUp(this)" class="layui-btn layui-btn-xs layui-icon layui-icon-up"></a>
|
||||
<a onclick="moveDn(this)" class="layui-btn layui-btn-xs layui-icon layui-icon-down"></a>
|
||||
<a onclick="moveRm(this)" class="layui-btn layui-btn-danger layui-btn-xs layui-icon layui-icon-close"></a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<form class="layui-form layui-card" action="{:request()->url()}" data-auto="true" method="post" autocomplete="off">
|
||||
<div class="layui-card-body padding-40 padding-bottom-20">
|
||||
|
||||
<div class="layui-form-item">
|
||||
<span class="color-green font-w7 label-required-prev">活动图片</span>
|
||||
<label class="relative block">
|
||||
<input name="cover" value='{$vo.cover|default=""}' class="layui-input">
|
||||
<a data-file data-field="cover" data-type="png,jpg,gif" class="layui-icon layui-icon-upload input-right-icon"></a>
|
||||
<script>$('[name=cover]').uploadOneImage()</script>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<label class="layui-form-item relative block">
|
||||
<span class="color-green font-w7 label-required-prev">活动名称</span>
|
||||
<input name="name" value='{$vo.name|default=""}' autofocus required placeholder="请输入活动名称" class="layui-input">
|
||||
</label>
|
||||
|
||||
<label class="layui-form-item relative block">
|
||||
<span class="color-green font-w7 label-required-prev">奖品核销码</span>
|
||||
<input name="uncode" value='{$vo.uncode|default=""}' autofocus required placeholder="请输入奖品核销码" class="layui-input">
|
||||
</label>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<span class="color-green font-w7 label-required-prev">活动奖品规则</span>
|
||||
<table class="layui-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="nowrap">奖品名称</th>
|
||||
<th class="nowrap text-center" style="width:200px">奖项等级</th>
|
||||
<th class="nowrap text-center" style="width:120px">奖品数量</th>
|
||||
<th class="nowrap text-center" style="width:100px">中奖率(总概率100%)</th>
|
||||
<th style="width:100px"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="layui-bg-gray">
|
||||
{foreach $selectPrizes as $pz}
|
||||
<tr>
|
||||
<td class="nowrap padding-0">
|
||||
<select name='prize_code[]' class="layui-select full-width border-0" lay-ignore>
|
||||
{foreach $prizes as $prize}
|
||||
{if $pz.prize_code eq $prize.code}
|
||||
<option selected value="{$prize.code}">{$prize.code} {$prize.name}</option>
|
||||
{else}
|
||||
<option value="{$prize.code}">{$prize.code} {$prize.name}</option>
|
||||
{/if}{/foreach}
|
||||
</select>
|
||||
</td>
|
||||
<td class="nowrap padding-0 relative">
|
||||
<label class="label-required-null">
|
||||
<input name="prize_level[]" placeholder="请输入奖项" required value="{$pz.prize_level|default=''}" class="layui-input text-center border-0">
|
||||
</label>
|
||||
</td>
|
||||
<td class="nowrap padding-0 text-center">
|
||||
<label class="label-required-null">
|
||||
<input name="prize_num[]" data-blur-number="0" value="{$pz.prize_num|default='1'}" class="layui-input border-0 text-center">
|
||||
</label>
|
||||
</td>
|
||||
<td class="nowrap padding-0 text-center">
|
||||
<label class="label-required-null">
|
||||
<input name="prize_rate[]" data-blur-number="4" value="{$pz.prize_rate|default='0.0001'}" class="layui-input border-0 inline-block text-center">
|
||||
<span class="absolute font-s14" style='right:10px;width:39px;text-align:center;height:39px;line-height:39px;display:inline-block'>%</span>
|
||||
</label>
|
||||
</td>
|
||||
<td class="nowrap padding-0 text-center">
|
||||
<a onclick="moveUp(this)" class="layui-btn layui-btn-xs layui-icon layui-icon-up"></a>
|
||||
<a onclick="moveDn(this)" class="layui-btn layui-btn-xs layui-icon layui-icon-down"></a>
|
||||
<a onclick="moveRm(this)" class="layui-btn layui-btn-danger layui-btn-xs layui-icon layui-icon-close"></a>
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
<tr>
|
||||
<td colspan="5"><a onclick="$(this).parents('tr').before($('#add-item-tpl').html()),form.render();" class="layui-btn layui-btn-xs">添加奖项</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<label class="layui-form-item relative block">
|
||||
<span class="color-green font-w7 label-required-prev">活动规则</span>
|
||||
<textarea class="layui-textarea" name="content" placeholder="请输入活动规则">{$vo.content|default=''}</textarea>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="hr-line-dashed"></div>
|
||||
|
||||
<!--{notempty name='vo.code'}-->
|
||||
<input type='hidden' value='{$vo.code}' name='code'>
|
||||
<!--{/notempty}-->
|
||||
|
||||
<div class="layui-form-item text-center">
|
||||
<button class="layui-btn" type='submit'>保存数据</button>
|
||||
<button class="layui-btn layui-btn-danger" type='button' data-confirm="确定要取消编辑吗?" data-history-back>取消编辑</button>
|
||||
</div>
|
||||
<script>
|
||||
window.form.render();
|
||||
|
||||
function moveRm(that) {
|
||||
$.msg.confirm('确定要移除这个选项吗?', function (index) {
|
||||
$(that).parents('tr').remove(), $.msg.close(index);
|
||||
})
|
||||
}
|
||||
|
||||
function moveUp(that) {
|
||||
this.$item = $(that).parents("tr");
|
||||
if (this.$item.index() > 0) this.$item.prev().before(this.$item);
|
||||
}
|
||||
|
||||
function moveDn(that) {
|
||||
this.$item = $(that).parents("tr");
|
||||
if (this.$item.index() < this.$item.siblings('tr').size()) {
|
||||
this.$item.next().after(this.$item);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</form>
|
||||
{/block}
|
@ -1,72 +0,0 @@
|
||||
{extend name="../../admin/view/main"}
|
||||
|
||||
{block name="button"}
|
||||
<!--{if auth("add")}-->
|
||||
<button data-open='{:url("add")}' class='layui-btn layui-btn-sm layui-btn-primary'>添加活动</button>
|
||||
<!--{/if}-->
|
||||
<!--{if auth("del")}-->
|
||||
<button data-action='{:url("del")}' data-rule="id#{key}" data-confirm="确定要删除这些活动吗?" class='layui-btn layui-btn-sm layui-btn-primary'>删除活动</button>
|
||||
<!--{/if}-->
|
||||
{/block}
|
||||
|
||||
{block name="content"}
|
||||
<div class="think-box-shadow table-block">
|
||||
{include file='luckdraw_config/index_search'}
|
||||
<table class="layui-table" lay-skin="line">
|
||||
{notempty name='list'}
|
||||
<thead>
|
||||
<tr>
|
||||
<th class='list-table-check-td think-checkbox'>
|
||||
<label><input data-auto-none="" data-check-target='.list-check-box' type='checkbox'></label>
|
||||
</th>
|
||||
<th class='text-left nowrap'>活动编号</th>
|
||||
<th class='text-left nowrap'>活动名称</th>
|
||||
<th class='text-left nowrap'>创建时间</th>
|
||||
<th class='text-left nowrap'>活动状态</th>
|
||||
<th class='text-left nowrap'></th>
|
||||
</tr>
|
||||
</thead>
|
||||
{/notempty}
|
||||
<tbody>
|
||||
{foreach $list as $key=>$vo}
|
||||
<tr>
|
||||
<td class='list-table-check-td think-checkbox'>
|
||||
<label><input class="list-check-box" value='{$vo.id}' type='checkbox'></label>
|
||||
</td>
|
||||
<td class='text-left nowrap'>
|
||||
{$vo.code|default=''}
|
||||
<span data-tips-text="复制活动链接" data-copy="{:url('@data/app.luckdraw/index/code/'.$vo.code,[],true,true)}" class="margin-left-5 pointer">
|
||||
<i class="layui-icon layui-icon-link font-s12"></i>
|
||||
</span>
|
||||
</td>
|
||||
<td class='text-left nowrap'>
|
||||
<i class="fa fa-qrcode fa-lg margin-right-5 pointer" data-load="{:url('index')}?action=qrc&code={$vo.code}" data-time="false"></i>
|
||||
{$vo.name|default=''}
|
||||
</td>
|
||||
<td class='text-left nowrap'>
|
||||
{$vo.create_at|format_datetime}
|
||||
</td>
|
||||
<td class='text-left nowrap'>
|
||||
{eq name='vo.status' value='0'}<span class="layui-badge">已停止</span>{else}<span class="layui-badge layui-bg-green">进行中</span>{/eq}
|
||||
</td>
|
||||
<td class='text-left nowrap'>
|
||||
<!--{if auth("edit")}-->
|
||||
<a class="layui-btn layui-btn-xs" data-title="编辑活动" data-open='{:url("edit")}?code={$vo.code}'>编 辑</a>
|
||||
<!--{/if}-->
|
||||
<!--{if $vo.status eq 1 and auth("state")}-->
|
||||
<a class="layui-btn layui-btn-xs layui-btn-warm" data-action="{:url('state')}" data-value="id#{$vo.id};status#0">停 止</a>
|
||||
<!--{/if}-->
|
||||
<!--{if $vo.status eq 0 and auth("state")}-->
|
||||
<a class="layui-btn layui-btn-xs layui-btn-warm" data-action="{:url('state')}" data-value="id#{$vo.id};status#1">进 行</a>
|
||||
<!--{/if}-->
|
||||
<!--{if auth("remove")}-->
|
||||
<a class="layui-btn layui-btn-xs layui-btn-danger" data-confirm="确定要删除该活动吗?" data-action="{:url('remove')}" data-value="id#{$vo.id}">删 除</a>
|
||||
<!--{/if}-->
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{empty name='list'}<span class="notdata">没有记录哦</span>{else}{$pagehtml|raw|default=''}{/empty}
|
||||
</div>
|
||||
{/block}
|
@ -1,40 +0,0 @@
|
||||
<fieldset>
|
||||
<legend>条件搜索</legend>
|
||||
<form class="layui-form layui-form-pane form-search" action="{:request()->url()}" onsubmit="return false" method="get" autocomplete="off">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">活动编号</label>
|
||||
<label class="layui-input-inline">
|
||||
<input name="code" value="{:input('code','')}" placeholder="请输入活动编号" class="layui-input">
|
||||
</label>
|
||||
</div>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">活动名称</label>
|
||||
<label class="layui-input-inline">
|
||||
<input name="name" value="{:input('name','')}" placeholder="请输入活动名称" class="layui-input">
|
||||
</label>
|
||||
</div>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">使用状态</label>
|
||||
<label class="layui-input-inline">
|
||||
<select class="layui-select" name="status">
|
||||
{foreach [''=>'-- 全部 --','0'=>'已停止的活动','1'=>'进行中的活动'] as $k=>$v}
|
||||
{if input('status') eq $k.''}
|
||||
<option selected value="{$k}">{$v}</option>
|
||||
{else}
|
||||
<option value="{$k}">{$v}</option>
|
||||
{/if}{/foreach}
|
||||
</select>
|
||||
</label>
|
||||
</div>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">创建时间</label>
|
||||
<label class="layui-input-inline">
|
||||
<input data-date-range name="create_at" value="{:input('create_at','')}" placeholder="请选择创建时间" class="layui-input">
|
||||
</label>
|
||||
</div>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<button class="layui-btn layui-btn-primary"><i class="layui-icon"></i> 搜 索</button>
|
||||
</div>
|
||||
</form>
|
||||
<script>form.render()</script>
|
||||
</fieldset>
|
@ -1,47 +0,0 @@
|
||||
<form class="layui-form layui-card" action="{:request()->url()}" data-auto="true" method="post" autocomplete="off">
|
||||
<div class="layui-card-body padding-left-40">
|
||||
|
||||
<label class="layui-form-item relative block">
|
||||
<span class="color-green font-w7 label-required-prev">奖品名称</span>
|
||||
<input name="name" autofocus value='{$vo.name|default=""}' required placeholder="请输入奖品名称" class="layui-input">
|
||||
</label>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<span class="color-green font-w7 label-required-prev">是否需要发货</span>
|
||||
{php} $vo['express'] = $vo['express'] ?? 0; {/php}
|
||||
<div class="layui-input">
|
||||
{foreach ['无需发货','需要发货'] as $k=>$v}
|
||||
{if isset($vo.express) and $k eq $vo.express}
|
||||
<label class="think-radio"><input checked name="express" type="radio" value="{$k}" lay-ignore>{$v}</label>
|
||||
{else}
|
||||
<label class="think-radio"><input name="express" type="radio" value="{$k}" lay-ignore>{$v}</label>
|
||||
{/if}{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<span class="color-green font-w7 label-required-prev">奖品图片</span>
|
||||
<label class="relative block label-required-null">
|
||||
<input name="cover" value='{$vo.cover|default=""}' required placeholder="请上传奖品图片链接 " class="layui-input">
|
||||
<a data-file data-type="png,jpg,gif" data-field="cover" class="input-right-icon"><i class="layui-icon layui-icon-upload"></i></a>
|
||||
<script>$('[name=cover]').uploadOneImage()</script>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<label class="layui-form-item relative block">
|
||||
<span class="color-green font-w7">奖品描述</span>
|
||||
<textarea name="remark" class="layui-textarea">{$vo.remark|default=""}</textarea>
|
||||
</label>
|
||||
|
||||
<div class="hr-line-dashed"></div>
|
||||
|
||||
<!--{notempty name='vo.code'}-->
|
||||
<input type='hidden' value='{$vo.code}' name='code'>
|
||||
<!--{/notempty}-->
|
||||
|
||||
<div class="layui-form-item text-center">
|
||||
<button class="layui-btn" type='submit'>保存数据</button>
|
||||
<button class="layui-btn layui-btn-danger" type='button' data-confirm="确定要取消编辑吗?" data-close>取消编辑</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
@ -1,64 +0,0 @@
|
||||
{extend name="../../admin/view/main"}
|
||||
|
||||
{block name="button"}
|
||||
<!--{if auth("add")}-->
|
||||
<button data-modal='{:url("add")}' data-title="添加奖品" class='layui-btn layui-btn-sm layui-btn-primary'>添加奖品</button>
|
||||
<!--{/if}-->
|
||||
<!--{if auth("del")}-->
|
||||
<button data-action='{:url("del")}' data-rule="id#{key}" data-confirm="确定要删除这些奖品吗?" class='layui-btn layui-btn-sm layui-btn-primary'>删除奖品</button>
|
||||
<!--{/if}-->
|
||||
{/block}
|
||||
|
||||
{block name="content"}
|
||||
<div class="think-box-shadow table-block">
|
||||
{include file='luckdraw_prize/index_search'}
|
||||
<table class="layui-table" lay-skin="line">
|
||||
{notempty name='list'}
|
||||
<thead>
|
||||
<tr>
|
||||
<th class='list-table-check-td think-checkbox'>
|
||||
<label><input data-auto-none data-check-target='.list-check-box' type='checkbox'></label>
|
||||
</th>
|
||||
<th class='text-left nowrap'>奖品编号</th>
|
||||
<th class='text-left nowrap'>奖品名称</th>
|
||||
<th class='text-left nowrap'>创建时间</th>
|
||||
<th class='text-left nowrap'>账号状态</th>
|
||||
<th class='text-left nowrap'></th>
|
||||
</tr>
|
||||
</thead>
|
||||
{/notempty}
|
||||
<tbody>
|
||||
{foreach $list as $key=>$vo}
|
||||
<tr>
|
||||
<td class='list-table-check-td think-checkbox'>
|
||||
<label><input class="list-check-box" value='{$vo.id}' type='checkbox'></label>
|
||||
</td>
|
||||
<td class='text-left nowrap'>{$vo.code|default=''}</td>
|
||||
<td class='text-left nowrap'>{$vo.name|default=''}</td>
|
||||
<td class='text-left nowrap'>{$vo.create_at|format_datetime}</td>
|
||||
<td class='text-left nowrap'>{eq name='vo.status' value='0'}<span class="layui-badge">已禁用</span>{else}<span class="layui-badge layui-bg-green">使用中</span>{/eq}</td>
|
||||
<td class='text-left nowrap'>
|
||||
|
||||
<!--{if auth("edit")}-->
|
||||
<a class="layui-btn layui-btn-xs" data-title="编辑奖品" data-modal='{:url("edit")}?code={$vo.code}'>编 辑</a>
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if auth('state') and $vo.status eq 1}-->
|
||||
<a class="layui-btn layui-btn-xs layui-btn-warm" data-action="{:url('state')}" data-value="id#{$vo.id};status#0">禁 用</a>
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if auth("state") and $vo.status eq 0}-->
|
||||
<a class="layui-btn layui-btn-xs layui-btn-warm" data-action="{:url('state')}" data-value="id#{$vo.id};status#1">启 用</a>
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if auth("remove")}-->
|
||||
<a class="layui-btn layui-btn-xs layui-btn-danger" data-confirm="确定要删除该奖品吗?" data-action="{:url('del')}" data-value="id#{$vo.id}">删 除</a>
|
||||
<!--{/if}-->
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{empty name='list'}<span class="notdata">没有记录哦</span>{else}{$pagehtml|raw|default=''}{/empty}
|
||||
</div>
|
||||
{/block}
|
@ -1,40 +0,0 @@
|
||||
<fieldset>
|
||||
<legend>条件搜索</legend>
|
||||
<form class="layui-form layui-form-pane form-search" action="{:request()->url()}" onsubmit="return false" method="get" autocomplete="off">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">奖品编号</label>
|
||||
<label class="layui-input-inline">
|
||||
<input name="code" value="{:input('code','')}" placeholder="请输入奖品编号" class="layui-input">
|
||||
</label>
|
||||
</div>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">奖品名称</label>
|
||||
<label class="layui-input-inline">
|
||||
<input name="name" value="{:input('name','')}" placeholder="请输入奖品名称" class="layui-input">
|
||||
</label>
|
||||
</div>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">使用状态</label>
|
||||
<div class="layui-input-inline">
|
||||
<select class="layui-select" name="status">
|
||||
{foreach [''=>'-- 全部 --','0'=>'已禁用的奖品','1'=>'使用中的奖品'] as $k=>$v}
|
||||
{if input('status') eq $k.''}
|
||||
<option selected value="{$k}">{$v}</option>
|
||||
{else}
|
||||
<option value="{$k}">{$v}</option>
|
||||
{/if}{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">创建时间</label>
|
||||
<label class="layui-input-inline">
|
||||
<input data-date-range name="create_at" value="{:input('create_at','')}" placeholder="请选择创建时间" class="layui-input">
|
||||
</label>
|
||||
</div>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<button class="layui-btn layui-btn-primary"><i class="layui-icon"></i> 搜 索</button>
|
||||
</div>
|
||||
</form>
|
||||
<script>window.form.render()</script>
|
||||
</fieldset>
|
@ -1,52 +0,0 @@
|
||||
{extend name="../../admin/view/main"}
|
||||
|
||||
{block name="content"}
|
||||
<div class="think-box-shadow table-block">
|
||||
{include file='luckdraw_record/index_search'}
|
||||
<table class="layui-table" lay-skin="line">
|
||||
{notempty name='list'}
|
||||
<thead>
|
||||
<tr>
|
||||
<th class='list-table-check-td think-checkbox'>
|
||||
<input data-auto-none="" data-check-target='.list-check-box' type='checkbox'>
|
||||
</th>
|
||||
<th class='text-left nowrap'>中奖信息</th>
|
||||
<th class='text-left nowrap'>活动信息</th>
|
||||
<th class='text-left nowrap'>奖品信息</th>
|
||||
<th class='text-left nowrap'>核销信息</th>
|
||||
</tr>
|
||||
</thead>
|
||||
{/notempty}
|
||||
<tbody>
|
||||
{foreach $list as $key=>$vo}
|
||||
<tr>
|
||||
<td class='list-table-check-td think-checkbox'>
|
||||
<input class="list-check-box" value='{$vo.id}' type='checkbox'>
|
||||
</td>
|
||||
<td class='text-left nowrap'>
|
||||
姓名:{$vo.username|default=''}<br>
|
||||
手机:{$vo.phone|default=''}
|
||||
</td>
|
||||
<td class='text-left nowrap'>
|
||||
活动编号:{$vo.info.code|default=''}<br>
|
||||
活动名称:{$vo.info.name|default=''}
|
||||
</td>
|
||||
<td class='text-left nowrap'>
|
||||
{if $vo.prize_code neq ''}
|
||||
<div>奖品编号:{$vo.prize_code|default=''}{$vo.prize_express ? "<span class='color-blue margin-left-5'>需要发货</span>":"<span class='color-desc margin-left-5'>无需发货</span>"}</div>
|
||||
<div>奖品名称:{$vo.prize_name|default=''}<span class='color-blue margin-left-5'>{$vo.prize_level|default=''}</span></div>
|
||||
{else}<span class="color-desc">未中奖</span>{/if}
|
||||
</td>
|
||||
<td class='text-left nowrap'>
|
||||
中奖时间:{$vo.create_at|format_datetime}<br>
|
||||
核销状态:{if $vo.prize_code neq ''}{if empty($vo.prize_express)}{$vo.uncode_datetime|default='未核销'}
|
||||
{else}{$vo.express_province|default=''}{$vo.express_city|default=''}{$vo.express_area|default=''}{$vo.express_address|default=''}{/if}
|
||||
{else}<span class="color-desc">未中奖</span>{/if}
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{empty name='list'}<span class="notdata">没有记录哦</span>{else}{$pagehtml|raw|default=''}{/empty}
|
||||
</div>
|
||||
{/block}
|
@ -1,105 +0,0 @@
|
||||
<fieldset>
|
||||
|
||||
<legend>条件搜索</legend>
|
||||
|
||||
<form class="layui-form layui-form-pane form-search" action="{:request()->url()}" onsubmit="return false" method="get" autocomplete="off">
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">中奖姓名</label>
|
||||
<label class="layui-input-inline">
|
||||
<input name="username" value="{:input('username','')}" placeholder="请输入中奖姓名" class="layui-input">
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">中奖手机</label>
|
||||
<label class="layui-input-inline">
|
||||
<input name="phone" value="{:input('phone','')}" placeholder="请输入中奖手机" class="layui-input">
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">中奖级别</label>
|
||||
<label class="layui-input-inline">
|
||||
<input name="prize_level" value="{:input('prize_level','')}" placeholder="请输入中奖级别" class="layui-input">
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">活动名称</label>
|
||||
<label class="layui-input-inline">
|
||||
<select class="layui-select" name="code" lay-search>
|
||||
<option value="">- 全部记录 -</option>
|
||||
{foreach $prizes as $k => $v}
|
||||
{if input('code','') eq $v.code}
|
||||
<option selected value="{$v.code}">{$v.name}</option>
|
||||
{else}
|
||||
<option value="{$v.code}">{$v.name}</option>
|
||||
{/if}{/foreach}
|
||||
</select>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">核销状态</label>
|
||||
<label class="layui-input-inline">
|
||||
<select class="layui-select" name="uncode_status">
|
||||
{foreach [''=>'-- 全部 --','0'=>'未核销的奖品','1'=>'已核销的奖品'] as $k=>$v}
|
||||
{if input('uncode_status') eq $k.''}
|
||||
<option selected value="{$k}">{$v}</option>
|
||||
{else}
|
||||
<option value="{$k}">{$v}</option>
|
||||
{/if}{/foreach}
|
||||
</select>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">中奖时间</label>
|
||||
<label class="layui-input-inline">
|
||||
<input data-date-range name="create_at" value="{:input('create_at','')}" placeholder="请选择中奖时间" class="layui-input">
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">核销时间</label>
|
||||
<label class="layui-input-inline">
|
||||
<input data-date-range name="uncode_datetime" value="{:input('uncode_datetime','')}" placeholder="请选择核销时间" class="layui-input">
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<button type="submit" class="layui-btn layui-btn-primary"><i class="layui-icon"></i> 搜 索</button>
|
||||
<button type="button" data-form-export="{:url('index')}" class="layui-btn layui-btn-primary">
|
||||
<i class="layui-icon layui-icon-export"></i> 导 出
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</fieldset>
|
||||
|
||||
<script>
|
||||
window.form.render();
|
||||
require(['excel'], function (excel) {
|
||||
excel.bind(function (data) {
|
||||
data.forEach(function (item, index) {
|
||||
data[index] = [
|
||||
item.username,
|
||||
item.phone,
|
||||
item.info.code || '',
|
||||
item.info.name || '',
|
||||
item.prize_code || '',
|
||||
item.prize_name || '',
|
||||
item.prize_level || '',
|
||||
item.create_at,
|
||||
item.prize_express ? '需要发货' : '不需要发货',
|
||||
item.prize_express ?
|
||||
(item.express_province || '') + (item.express_city || '') + (item.express_area || '') + (item.express_address || '') :
|
||||
(item.uncode_status ? '已核销' : '未核销'),
|
||||
];
|
||||
});
|
||||
data.unshift(['中奖姓名', '中奖手机', '活动编号', '活动名称', '奖品编号', '奖品名称', '奖品等级', '中奖时间', '是否需要发货', '收货地址']);
|
||||
return data;
|
||||
}, '中奖记录数据');
|
||||
});
|
||||
</script>
|
@ -1,534 +0,0 @@
|
||||
@charset "UTF-8";
|
||||
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite,
|
||||
code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li,
|
||||
fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure,
|
||||
figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video, input, textarea, button,
|
||||
::after, ::before {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
outline: none;
|
||||
font-style: normal;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
}
|
||||
|
||||
html, body {
|
||||
width: 100%;
|
||||
font-family: "PingFang SC", Helvetica, Arial, sans-serif;
|
||||
-webkit-user-select: none; /*文本不能被选择*/
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
-webkit-text-size-adjust: 100% !important; /*阻止文字被放大*/
|
||||
-moz-text-size-adjust: 100% !important;
|
||||
-ms-text-size-adjust: 100% !important;
|
||||
text-size-adjust: 100% !important;
|
||||
-webkit-font-smoothing: antialiased; /*抗锯齿*/
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: #fff;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
font-size: initial;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
|
||||
display: block;
|
||||
}
|
||||
|
||||
a, button, em, del, strong, var, label, cite, small, time, mark, code {
|
||||
display: inline-block;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
a, a:visited, a:active, a:hover {
|
||||
text-decoration: none;
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
ol, ul, li {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
input, button, textarea {
|
||||
background-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
input, textarea {
|
||||
min-width: .1rem;
|
||||
border-radius: 0;
|
||||
-webkit-user-select: auto;
|
||||
-moz-user-select: auto;
|
||||
-ms-user-select: auto;
|
||||
user-select: auto;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
|
||||
textarea {
|
||||
resize: none;
|
||||
display: block;
|
||||
}
|
||||
|
||||
label, textarea, .word-wrap {
|
||||
word-wrap: break-word;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
input::-webkit-input-placeholder {
|
||||
color: #bbb;
|
||||
}
|
||||
|
||||
blockquote, q {
|
||||
quotes: none;
|
||||
}
|
||||
|
||||
blockquote:before, blockquote:after, q:before, q:after {
|
||||
content: '';
|
||||
content: none;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
.clearfix:after {
|
||||
content: ' ';
|
||||
display: block;
|
||||
clear: both;
|
||||
visibility: hidden;
|
||||
line-height: 0;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* reset end */
|
||||
|
||||
/* 首页 */
|
||||
html {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
min-height: 100%;
|
||||
background: url('../images/bg_rp.jpg') repeat-y;
|
||||
background-size: 100%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.page {
|
||||
position: relative;
|
||||
min-height: 100%;
|
||||
}
|
||||
|
||||
.index-page::before {
|
||||
content: ' ';
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 4.36rem;
|
||||
background: url('../images/bottom.png') no-repeat;
|
||||
background-size: cover;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.index-page .page-body {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 5;
|
||||
padding-top: 32%;
|
||||
}
|
||||
|
||||
.index-page .rule {
|
||||
position: absolute;
|
||||
top: 2.3%;
|
||||
right: 3.3%;
|
||||
width: 1.46rem;
|
||||
height: auto;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.index-page .btn {
|
||||
width: 4.58rem;
|
||||
margin: 0 auto;
|
||||
-webkit-animation: ripple 3s infinite;
|
||||
animation: ripple 3s infinite;
|
||||
}
|
||||
|
||||
@-webkit-keyframes ripple {
|
||||
0% {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1)
|
||||
}
|
||||
50% {
|
||||
-webkit-transform: scale(1.1);
|
||||
transform: scale(1.1)
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1)
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes ripple {
|
||||
0% {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1)
|
||||
}
|
||||
50% {
|
||||
-webkit-transform: scale(1.1);
|
||||
transform: scale(1.1)
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1)
|
||||
}
|
||||
}
|
||||
|
||||
.index-page .detail {
|
||||
position: relative;
|
||||
z-index: 3;
|
||||
margin-top: 11%;
|
||||
}
|
||||
|
||||
.index-page .title {
|
||||
width: 1.16rem;
|
||||
margin: 0 auto .18rem;
|
||||
}
|
||||
|
||||
.index-page .ls-box {
|
||||
width: 5.4rem;
|
||||
height: 3.3rem;
|
||||
margin: 0 auto;
|
||||
background: #fff0e8;
|
||||
border: 1px solid #e60b11;
|
||||
border-radius: 2px;
|
||||
position: relative;
|
||||
-webkit-box-shadow: 0 0 18px 2px rgba(122, 0, 9, .7);
|
||||
box-shadow: 0 0 18px 2px rgba(122, 0, 9, .7);
|
||||
}
|
||||
|
||||
.index-page .icon1 {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: .62rem;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.index-page .icon2 {
|
||||
left: initial;
|
||||
right: 0;
|
||||
-webkit-transform: rotate(90deg);
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
|
||||
.index-page .ls-box ul {
|
||||
padding: 0 .26rem;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.index-page .ls-box ul li {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
-webkit-box-pack: justify;
|
||||
-webkit-justify-content: space-between;
|
||||
-ms-flex-pack: justify;
|
||||
justify-content: space-between;
|
||||
border-bottom: 1px dashed #acacac;
|
||||
height: .8rem;
|
||||
font-size: 0;
|
||||
}
|
||||
|
||||
.index-page .ls-box ul span {
|
||||
font-size: .24rem;
|
||||
color: #530006;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.index-page .ls-box ul span:first-child {
|
||||
margin-right: .12rem;
|
||||
max-width: 4.2em;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.index-page .ls-box .ls-title {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
-ms-flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.index-page .ls-box .ls-text {
|
||||
font-size: .24rem;
|
||||
color: #dd0d1d;
|
||||
padding-left: .1rem;
|
||||
}
|
||||
|
||||
|
||||
/* 填写信息 */
|
||||
|
||||
.mask,
|
||||
.luck-mask,
|
||||
.rule-mask,
|
||||
.info-dialog {
|
||||
-webkit-transition: all .3s;
|
||||
transition: all .3s;
|
||||
}
|
||||
|
||||
.mask,
|
||||
.luck-mask,
|
||||
.rule-mask {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background: rgba(0, 0, 0, .7);
|
||||
z-index: -1;
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.info-dialog {
|
||||
position: fixed;
|
||||
top: 27%;
|
||||
left: 50%;
|
||||
width: 6rem;
|
||||
height: 5.2rem;
|
||||
margin-left: -3rem;
|
||||
background: url('../images/info_bg.jpg') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
z-index: -1;
|
||||
border-radius: 2px;
|
||||
overflow: hidden;
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
-webkit-transform: scale(.8);
|
||||
transform: scale(.8);
|
||||
}
|
||||
|
||||
.info-dialog h2 {
|
||||
font-size: .36rem;
|
||||
color: #dd0d1d;
|
||||
text-align: center;
|
||||
line-height: 1;
|
||||
padding: .4rem 0 .56rem;
|
||||
}
|
||||
|
||||
.info-dialog .form {
|
||||
padding: 0 .5rem;
|
||||
}
|
||||
|
||||
.info-dialog label {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
margin-bottom: .4rem;
|
||||
}
|
||||
|
||||
.info-dialog label span {
|
||||
font-size: .26rem;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.info-dialog input {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
-ms-flex: 1;
|
||||
flex: 1;
|
||||
border: 1px solid #333;
|
||||
height: .6rem;
|
||||
border-radius: .6rem;
|
||||
line-height: .4rem;
|
||||
font-size: .28rem;
|
||||
color: #333;
|
||||
padding-left: .28rem;
|
||||
}
|
||||
|
||||
.btns {
|
||||
font-size: 0;
|
||||
text-align: center;
|
||||
margin-top: .5rem;
|
||||
}
|
||||
|
||||
.btns span {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
width: 1.8rem;
|
||||
line-height: .6rem;
|
||||
border-radius: .6rem;
|
||||
text-align: center;
|
||||
font-size: .24rem;
|
||||
color: #fff;
|
||||
background: #c8c8c8;
|
||||
margin: 0 .2rem;
|
||||
}
|
||||
|
||||
.btns span:last-child {
|
||||
background: #dd0d1d;
|
||||
}
|
||||
|
||||
.show.mask {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
z-index: 20;
|
||||
}
|
||||
|
||||
.show.info-dialog {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1);
|
||||
z-index: 33;
|
||||
}
|
||||
|
||||
|
||||
/* 中奖弹窗 */
|
||||
|
||||
.luck-dialog {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 38;
|
||||
text-align: center;
|
||||
padding-top: 58%;
|
||||
}
|
||||
|
||||
.luck-dialog h1 {
|
||||
font-size: .64rem;
|
||||
color: #ffe100;
|
||||
margin-bottom: .2rem;
|
||||
}
|
||||
|
||||
.luck-dialog h3 {
|
||||
font-size: .36rem;
|
||||
color: #ffe100;
|
||||
margin-bottom: .4rem;
|
||||
}
|
||||
|
||||
.luck-dialog label {
|
||||
width: 6.5rem;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.luck-dialog input,
|
||||
.luck-dialog select {
|
||||
width: 78%;
|
||||
height: .8rem;
|
||||
display: block;
|
||||
font-size: .26rem;
|
||||
line-height: .4rem;
|
||||
background: #fff;
|
||||
border-radius: .1rem;
|
||||
margin: 0 auto .4rem;
|
||||
text-align: left;
|
||||
padding-left: .3rem;
|
||||
}
|
||||
|
||||
.luck-dialog select {
|
||||
width: 25.2%;
|
||||
text-align: center;
|
||||
margin-bottom: .1rem;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.luck-dialog .dialog-btn {
|
||||
width: 4.7rem;
|
||||
margin: 0 auto;
|
||||
font-size: .3rem;
|
||||
line-height: .8rem;
|
||||
border-radius: .8rem;
|
||||
color: #dd0d1d;
|
||||
background: #ffe100;
|
||||
}
|
||||
|
||||
.luck-dialog .btn1 {
|
||||
color: #dd0d1d;
|
||||
background: #fff0e8;
|
||||
}
|
||||
|
||||
.show.luck-mask,
|
||||
.show.rule-mask {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
z-index: 35;
|
||||
}
|
||||
|
||||
.rule-mask {
|
||||
padding-top: 24%;
|
||||
}
|
||||
|
||||
.rule-dialog {
|
||||
width: 6rem;
|
||||
height: 8.8rem;
|
||||
background: url('../images/rule_bg.jpg') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
border-radius: 2px;
|
||||
overflow: hidden;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.rule-dialog .dialog-title {
|
||||
font-size: .36rem;
|
||||
color: #dd0d1d;
|
||||
text-align: center;
|
||||
padding: .4rem 0 .3rem;
|
||||
}
|
||||
|
||||
.rule-content {
|
||||
padding: 0 .3rem;
|
||||
font-size: .24rem;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.close {
|
||||
position: absolute;
|
||||
top: 6.8%;
|
||||
right: 6.8%;
|
||||
width: .5rem;
|
||||
z-index: 99;
|
||||
}
|
||||
|
||||
.hide {
|
||||
display: none !important;
|
||||
}
|
Before Width: | Height: | Size: 61 KiB |
Before Width: | Height: | Size: 114 KiB |
Before Width: | Height: | Size: 451 B |
Before Width: | Height: | Size: 61 KiB |
Before Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 72 KiB |
Before Width: | Height: | Size: 107 KiB |
Before Width: | Height: | Size: 9.2 KiB |
Before Width: | Height: | Size: 148 KiB |
Before Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 38 KiB |
@ -1,2 +0,0 @@
|
||||
/*! layer mobile-v2.0 弹层组件移动版 License LGPL http://layer.layui.com/mobile By 贤心 */
|
||||
;!function(a){"use strict";var b=document,c="querySelectorAll",d="getElementsByClassName",e=function(a){return b[c](a)},f={type:0,shade:!0,shadeClose:!0,fixed:!0,anim:"scale"},g={extend:function(a){var b=JSON.parse(JSON.stringify(f));for(var c in a)b[c]=a[c];return b},timer:{},end:{}};g.touch=function(a,b){a.addEventListener("click",function(a){b.call(this,a)},!1)};var h=0,i=["layui-m-layer"],j=function(a){var b=this;b.config=g.extend(a),b.view()};j.prototype.view=function(){var a=this,c=a.config,f=b.createElement("div");a.id=f.id=i[0]+h,f.setAttribute("class",i[0]+" "+i[0]+(c.type||0)),f.setAttribute("index",h);var g=function(){var a="object"==typeof c.title;return c.title?'<h3 style="'+(a?c.title[1]:"")+'">'+(a?c.title[0]:c.title)+"</h3>":""}(),j=function(){"string"==typeof c.btn&&(c.btn=[c.btn]);var a,b=(c.btn||[]).length;return 0!==b&&c.btn?(a='<span yes type="1">'+c.btn[0]+"</span>",2===b&&(a='<span no type="0">'+c.btn[1]+"</span>"+a),'<div class="layui-m-layerbtn">'+a+"</div>"):""}();if(c.fixed||(c.top=c.hasOwnProperty("top")?c.top:100,c.style=c.style||"",c.style+=" top:"+(b.body.scrollTop+c.top)+"px"),2===c.type&&(c.content='<i></i><i class="layui-m-layerload"></i><i></i><p>'+(c.content||"")+"</p>"),c.skin&&(c.anim="up"),"msg"===c.skin&&(c.shade=!1),f.innerHTML=(c.shade?"<div "+("string"==typeof c.shade?'style="'+c.shade+'"':"")+' class="layui-m-layershade"></div>':"")+'<div class="layui-m-layermain" '+(c.fixed?"":'style="position:static;"')+'><div class="layui-m-layersection"><div class="layui-m-layerchild '+(c.skin?"layui-m-layer-"+c.skin+" ":"")+(c.className?c.className:"")+" "+(c.anim?"layui-m-anim-"+c.anim:"")+'" '+(c.style?'style="'+c.style+'"':"")+">"+g+'<div class="layui-m-layercont">'+c.content+"</div>"+j+"</div></div></div>",!c.type||2===c.type){var k=b[d](i[0]+c.type),l=k.length;l>=1&&layer.close(k[0].getAttribute("index"))}document.body.appendChild(f);var m=a.elem=e("#"+a.id)[0];c.success&&c.success(m),a.index=h++,a.action(c,m)},j.prototype.action=function(a,b){var c=this;a.time&&(g.timer[c.index]=setTimeout(function(){layer.close(c.index)},1e3*a.time));var e=function(){var b=this.getAttribute("type");0==b?(a.no&&a.no(),layer.close(c.index)):a.yes?a.yes(c.index):layer.close(c.index)};if(a.btn)for(var f=b[d]("layui-m-layerbtn")[0].children,h=f.length,i=0;h>i;i++)g.touch(f[i],e);if(a.shade&&a.shadeClose){var j=b[d]("layui-m-layershade")[0];g.touch(j,function(){layer.close(c.index,a.end)})}a.end&&(g.end[c.index]=a.end)},a.layer={v:"2.0",index:h,open:function(a){var b=new j(a||{});return b.index},close:function(a){var c=e("#"+i[0]+a)[0];c&&(c.innerHTML="",b.body.removeChild(c),clearTimeout(g.timer[a]),delete g.timer[a],"function"==typeof g.end[a]&&g.end[a](),delete g.end[a])},closeAll:function(){for(var a=b[d](i[0]),c=0,e=a.length;e>c;c++)layer.close(0|a[0].getAttribute("index"))}},"function"==typeof define?define(function(){return layer}):function(){var a=document.scripts,c=a[a.length-1],d=c.src,e=d.substring(0,d.lastIndexOf("/")+1);c.getAttribute("merge")||document.head.appendChild(function(){var a=b.createElement("link");return a.href=e+"need/layer.css?2.0",a.type="text/css",a.rel="styleSheet",a.id="layermcss",a}())}()}(window);
|
12
public/static/luckdraw/lib/swiper/swiper.min.css
vendored
13
public/static/luckdraw/lib/swiper/swiper.min.js
vendored
1
vendor/composer/autoload_classmap.php
vendored
@ -226,7 +226,6 @@ return array(
|
||||
'app\\data\\controller\\api\\auth\\Center' => $baseDir . '/app/data/controller/api/auth/Center.php',
|
||||
'app\\data\\controller\\api\\auth\\News' => $baseDir . '/app/data/controller/api/auth/News.php',
|
||||
'app\\data\\controller\\api\\auth\\Order' => $baseDir . '/app/data/controller/api/auth/Order.php',
|
||||
'app\\data\\controller\\app\\Luckdraw' => $baseDir . '/app/data/controller/app/Luckdraw.php',
|
||||
'app\\data\\service\\GoodsService' => $baseDir . '/app/data/service/GoodsService.php',
|
||||
'app\\data\\service\\NewsService' => $baseDir . '/app/data/service/NewsService.php',
|
||||
'app\\data\\service\\OrderService' => $baseDir . '/app/data/service/OrderService.php',
|
||||
|
1
vendor/composer/autoload_static.php
vendored
@ -354,7 +354,6 @@ class ComposerStaticInit33b66ed99ea8fcca84c95dfb0e7ed409
|
||||
'app\\data\\controller\\api\\auth\\Center' => __DIR__ . '/../..' . '/app/data/controller/api/auth/Center.php',
|
||||
'app\\data\\controller\\api\\auth\\News' => __DIR__ . '/../..' . '/app/data/controller/api/auth/News.php',
|
||||
'app\\data\\controller\\api\\auth\\Order' => __DIR__ . '/../..' . '/app/data/controller/api/auth/Order.php',
|
||||
'app\\data\\controller\\app\\Luckdraw' => __DIR__ . '/../..' . '/app/data/controller/app/Luckdraw.php',
|
||||
'app\\data\\service\\GoodsService' => __DIR__ . '/../..' . '/app/data/service/GoodsService.php',
|
||||
'app\\data\\service\\NewsService' => __DIR__ . '/../..' . '/app/data/service/NewsService.php',
|
||||
'app\\data\\service\\OrderService' => __DIR__ . '/../..' . '/app/data/service/OrderService.php',
|
||||
|
2
vendor/services.php
vendored
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// This file is automatically generated at:2020-10-23 14:29:29
|
||||
// This file is automatically generated at:2020-10-24 10:43:30
|
||||
declare (strict_types = 1);
|
||||
return array (
|
||||
0 => 'think\\admin\\Library',
|
||||
|