修改盒柜
This commit is contained in:
parent
724ce08559
commit
8cb67eb25c
|
|
@ -37,6 +37,19 @@ abstract class MyController extends BaseController
|
|||
return json($this->renderJson($status, $msg, $data));
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回layui.table格式的数据
|
||||
*/
|
||||
protected function renderTable($msg = 'success', $count = 0, $data = [], $code = 0)
|
||||
{
|
||||
return json([
|
||||
'code' => $code,
|
||||
'msg' => $msg,
|
||||
'count' => $count,
|
||||
'data' => $data
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取post数据 (数组)
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -20,25 +20,56 @@ class Goods extends Base
|
|||
*/
|
||||
public function goods(Request $request)
|
||||
{
|
||||
$title = trim(input('get.title'));
|
||||
$status = trim(input('get.status'));
|
||||
$type = trim(input('get.type'));
|
||||
$whe = array();
|
||||
if ($title) {
|
||||
$whe[] = ['title', 'like', '%' . $title . '%'];
|
||||
}
|
||||
if ($status) {
|
||||
$whe[] = ['status', '=', $status];
|
||||
}
|
||||
if ($type) {
|
||||
$whe[] = ['type', '=', $type];
|
||||
} else {
|
||||
$whe[] = ['type', 'notIn', [4, 7]];
|
||||
}
|
||||
$field = "*";
|
||||
$order = "id desc";
|
||||
$data = GoodsModel::getList($whe, $field, $order, $this->page);
|
||||
|
||||
return View::fetch("Goods/goods");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取盒子列表数据(前后端分离接口)
|
||||
*/
|
||||
public function getGoodsList(Request $request)
|
||||
{
|
||||
$page = $request->param('page/d', 1);
|
||||
$limit = $request->param('limit/d', 20);
|
||||
$title = $request->param('title/s', '');
|
||||
$status = $request->param('status/s', '');
|
||||
$type = $request->param('type/s', '');
|
||||
|
||||
// 构建查询条件
|
||||
$where = [];
|
||||
if (!empty($title)) {
|
||||
$where[] = ['title', 'like', "%{$title}%"];
|
||||
}
|
||||
if ($status !== '') {
|
||||
$where[] = ['status', '=', $status];
|
||||
}
|
||||
if ($type !== '') {
|
||||
$where[] = ['type', '=', $type];
|
||||
}
|
||||
|
||||
$query = GoodsModel::where($where)->order('id desc');
|
||||
$count = $query->count();
|
||||
|
||||
$list = $query->page($page, $limit)->select()->toArray();
|
||||
|
||||
// 处理图片路径
|
||||
foreach ($list as &$item) {
|
||||
$item['imgurl'] = imageUrl($item['imgurl']);
|
||||
if (!empty($item['imgurl_detail'])) {
|
||||
$item['imgurl_detail'] = imageUrl($item['imgurl_detail']);
|
||||
}
|
||||
// 添加格式化时间
|
||||
$item['addtime_text'] = date('Y-m-d H:i', $item['addtime']);
|
||||
}
|
||||
|
||||
return $this->renderTable('获取成功', $count, $list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取盒子类型列表(前后端分离接口)
|
||||
*/
|
||||
public function getGoodsTypeList()
|
||||
{
|
||||
// 查询可用的盒子类型
|
||||
$goodsTypeList = Db::name('goods_type')
|
||||
->field('value,sort_order,remark,is_fenlei,fl_name')
|
||||
|
|
@ -47,11 +78,7 @@ class Goods extends Base
|
|||
->select()
|
||||
->toArray();
|
||||
|
||||
View::assign('goodsTypeList', $goodsTypeList);
|
||||
View::assign('list', $data['list']);
|
||||
View::assign('count', $data['count']);
|
||||
View::assign('page', $data['page']);
|
||||
return View::fetch("Goods/goods");
|
||||
return $this->renderTable('获取成功', count($goodsTypeList), $goodsTypeList);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -150,6 +150,8 @@ Route::rule('card_set', 'CardGoods/card_set', 'GET|POST');
|
|||
#Goods.php盒子管理
|
||||
#============================
|
||||
Route::rule('goods', 'Goods/goods', 'GET|POST');
|
||||
Route::rule('api/goods/list', 'Goods/getGoodsList', 'GET');
|
||||
Route::rule('api/goods/types', 'Goods/getGoodsTypeList', 'GET');
|
||||
Route::rule('goods_add', 'Goods/goods_add', 'GET|POST');
|
||||
Route::rule('goods_edit', 'Goods/goods_edit', 'GET|POST');
|
||||
Route::rule('goods_del', 'Goods/goods_del', 'GET|POST');
|
||||
|
|
|
|||
|
|
@ -1,212 +1,286 @@
|
|||
{include file="Public:header2"/}
|
||||
|
||||
<body>
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-card">
|
||||
<form method="get" class="layui-form layui-card-header layuiadmin-card-header-auto">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<div class="layui-input-inline" style="width: 300px;margin-left: 0px">
|
||||
<input type="text" name="title" value="{$Request.get.title}" placeholder="请输入盒子标题"
|
||||
autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<div class="layui-input-inline" style="width: 180px;margin-left: 0px">
|
||||
<select name="status" style="width:100%">
|
||||
<option value="">--请选择状态--</option>
|
||||
<option value="1" {if condition="$Request.get.status eq 1" }selected{/if}>上架</option>
|
||||
<option value="2" {if condition="$Request.get.status eq 2" }selected{/if}>下架</option>
|
||||
<option value="3" {if condition="$Request.get.status eq 3" }selected{/if}>售罄</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<div class="layui-input-inline" style="width: 180px;margin-left: 0px">
|
||||
<select name="type" style="width:100%">
|
||||
<option value="">--盒子类型--</option>
|
||||
{volist name="goodsTypeList" id="vo"}
|
||||
<option value="{$vo.value}" {if condition="$Request.get.type eq $vo.value" }selected{/if} title="{$vo.remark}">{$vo.fl_name}</option>
|
||||
{/volist}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<button class="layui-btn layuiadmin-btn-useradmin mmm" lay-submit
|
||||
lay-filter="LAY-user-front-search">
|
||||
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
|
||||
</button>
|
||||
<div class="layui-fluid" ">
|
||||
<div class=" layui-card">
|
||||
<div class="layui-form layui-card-header layuiadmin-card-header-auto">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<div class="layui-input-inline" style="width: 300px;margin-left: 0px">
|
||||
<input type="text" name="title" id="title" placeholder="请输入盒子标题" autocomplete="off"
|
||||
class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div class="layui-card-body">
|
||||
<xblock>
|
||||
<div style="padding-bottom: 10px;">
|
||||
<a class="layui-btn" onclick="goods_add()">添加盒子</a>
|
||||
<a class="layui-btn layui-btn-normal" onclick="offshelf_log()">自动下架日志</a>
|
||||
<span style="line-height:40px;float:right;">共有数据: {$count}条</span>
|
||||
<div class="layui-inline">
|
||||
<div class="layui-input-inline" style="width: 180px;margin-left: 0px">
|
||||
<select name="status" id="status" style="width:100%">
|
||||
<option value="">--请选择状态--</option>
|
||||
<option value="1">上架</option>
|
||||
<option value="2">下架</option>
|
||||
<option value="3">售罄</option>
|
||||
</select>
|
||||
</div>
|
||||
</xblock>
|
||||
<table class="layui-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>盒子ID</th>
|
||||
<th>盒子类型</th>
|
||||
<th>盒子名称</th>
|
||||
<th>盒子价格</th>
|
||||
<th>盒子图片</th>
|
||||
<th>盒子详情图片</th>
|
||||
<th>盒子套数</th>
|
||||
<th>锁箱模式</th>
|
||||
<!-- <th>发券开关</th>-->
|
||||
<!-- <th>发积分开关</th>-->
|
||||
<th>首页显示</th>
|
||||
<th>自动下架</th>
|
||||
<th>
|
||||
擂台赏<br>抽全局赏数量
|
||||
</th>
|
||||
<th>排序</th>
|
||||
<th>状态</th>
|
||||
<th>添加时间</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{volist name="list" id="vo"}
|
||||
<tr>
|
||||
<td>
|
||||
{if condition="$vo['type'] eq 1"}
|
||||
<div onclicK="goodsextendlist_edit({$vo['id']},'{$vo.title}')" style="cursor:pointer;">
|
||||
{$vo['id']}
|
||||
</div>
|
||||
{elseif condition="$vo['type'] eq 11"}
|
||||
<div onclicK="goodsextendlist_edit({$vo['id']},'{$vo.title}')" style="cursor:pointer;">
|
||||
{$vo['id']}
|
||||
</div>
|
||||
|
||||
{else }
|
||||
|
||||
{$vo['id']}
|
||||
{/if}
|
||||
</td>
|
||||
<td>
|
||||
{if condition="$vo['type'] eq 1"}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius layui-btn-sm">一番赏</button>
|
||||
{elseif condition="$vo['type'] eq 2"}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius layui-btn-sm">无限赏</button>
|
||||
{elseif condition="$vo['type'] eq 3"}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius layui-btn-sm">擂台赏</button>
|
||||
{elseif condition="$vo['type'] eq 5"}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius layui-btn-sm">积分赏</button>
|
||||
{elseif condition="$vo['type'] eq 6"}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius layui-btn-sm">全局赏</button>
|
||||
{elseif condition="$vo['type'] eq 8"}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius layui-btn-sm">领主赏</button>
|
||||
{elseif condition="$vo['type'] eq 9"}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius layui-btn-sm">连击赏</button>
|
||||
{elseif condition="$vo['type'] eq 10"}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius layui-btn-sm">商城赏</button>
|
||||
{elseif condition="$vo['type'] eq 11"}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius layui-btn-sm">自制赏</button>
|
||||
{/if}
|
||||
</td>
|
||||
<td>{$vo['title']}</td>
|
||||
<td>{$vo['price']}</td>
|
||||
<td><img src="{PHP} echo imageUrl($vo['imgurl']){/php}" style="width:60px;height:60px;">
|
||||
</td>
|
||||
<td>{if $vo['imgurl_detail']}<img src="{PHP} echo imageUrl($vo['imgurl_detail']){/php}"
|
||||
style="width:60px;height:60px;">{/if}</td>
|
||||
<td>{if $vo['stock'] gt 0}{$vo['stock']}{/if}</td>
|
||||
<td>
|
||||
{if condition="$vo['lock_is'] eq 1"}
|
||||
<button class="layui-btn layui-btn-warm layui-btn-sm">状态:开启</button>
|
||||
<br>
|
||||
<button class="layui-btn layui-btn-warm layui-btn-sm">时间:{$vo['lock_time']}秒</button>
|
||||
{/if}
|
||||
</td>
|
||||
|
||||
<td>
|
||||
{if $vo['show_is'] eq 1}
|
||||
<button class="layui-btn layui-btn-danger layui-btn-radius layui-btn-sm">否</button>
|
||||
{/if}
|
||||
</td>
|
||||
<td>
|
||||
{if $vo['is_auto_xiajia'] eq 1}
|
||||
<button class="layui-btn layui-btn-warm layui-btn-radius layui-btn-sm">已开启</button>
|
||||
<br>
|
||||
<button class="layui-btn layui-btn-warm layui-btn-sm">利润值:{$vo.xiajia_lirun}%</button>
|
||||
<br>
|
||||
<button class="layui-btn layui-btn-warm layui-btn-sm">阈值:{$vo.xiajia_auto_coushu}抽</button>
|
||||
{else}
|
||||
<button class="layui-btn layui-btn-danger layui-btn-radius layui-btn-sm">未开启</button>
|
||||
{/if}
|
||||
</td>
|
||||
<td>{if $vo['prize_num'] gt 0}{$vo['prize_num']}{/if}</td>
|
||||
<td>{$vo['sort']}</td>
|
||||
<td>
|
||||
{if $vo['status'] eq 1}
|
||||
<button onClick="del({$vo.id},2,'下架')"
|
||||
class="layui-btn layui-btn-danger layui-btn-xs"><i
|
||||
class="layui-icon"></i>下架</button>
|
||||
<!-- <button class="layui-btn layui-btn-sucess layui-btn-radius layui-btn-sm">上架</button>-->
|
||||
{elseif $vo['status'] eq 2}
|
||||
<button onClick="del({$vo.id},1,'上架')" class="layui-btn layui-btn-info layui-btn-xs"><i
|
||||
class="layui-icon"></i>上架</button>
|
||||
<!-- <button class="layui-btn layui-btn-danger layui-btn-radius layui-btn-sm">下架</button>-->
|
||||
{elseif $vo['status'] eq 3}
|
||||
<button class="layui-btn layui-btn-disabled layui-btn-radius layui-btn-sm">售罄</button>
|
||||
{/if}
|
||||
</td>
|
||||
<td>{$vo['addtime']|date="Y-m-d H:i"}</td>
|
||||
<td>
|
||||
<a style="text-decoration:none" title="编辑" onclick="goods_edit({$vo.id})"
|
||||
class="layui-btn layui-btn-normal layui-btn-xs">
|
||||
<i class="layui-icon layui-icon-edit"></i>编辑
|
||||
</a>
|
||||
<div style="margin-top: 8px"></div>
|
||||
<a style="text-decoration:none" onclick="goodslist({$vo['id']},'{$vo.title}')"
|
||||
class="layui-btn layui-btn-warm layui-btn-xs "><i
|
||||
class="layui-icon layui-icon-cart-simple"></i>奖品</a>
|
||||
<div style="margin-top: 8px"></div>
|
||||
<a style="text-decoration:none" onclick="goods_sync({$vo['id']},{$vo['async_code']})"
|
||||
class="layui-btn layui-btn-normal layui-btn-xs"><i
|
||||
class="layui-icon layui-icon-sync"></i>同步</a>
|
||||
<div style="margin-top: 8px"></div>
|
||||
<a style="text-decoration:none" onclick="clear_goods_data({$vo.id})"
|
||||
class="layui-btn layui-btn-danger layui-btn-xs">
|
||||
<i class="layui-icon layui-icon-delete"></i>清空抽奖
|
||||
</a>
|
||||
<div style="margin-top: 8px"></div>
|
||||
<a style="text-decoration:none" onClick="del({$vo.id},3,'删除')"
|
||||
class="layui-btn layui-btn-danger layui-btn-xs">
|
||||
<i class="layui-icon layui-icon-delete"></i>删除
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
{/volist}
|
||||
|
||||
{if condition="empty($list)"}
|
||||
<tr>
|
||||
<td colspan='11' style="text-align:center;">暂时没有数据!</td>
|
||||
</tr>
|
||||
{/if}
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="layui-box layui-laypage layui-laypage-default">
|
||||
{$page|raw}
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<div class="layui-input-inline" style="width: 180px;margin-left: 0px">
|
||||
<select name="type" id="goodsType" style="width:100%">
|
||||
<option value="">--盒子类型--</option>
|
||||
<!-- 盒子类型由JS动态加载 -->
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<button class="layui-btn layuiadmin-btn-useradmin" id="searchBtn">
|
||||
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-card-body">
|
||||
<div style="padding-bottom: 10px;" id="goods-select">
|
||||
<button class="layui-btn" id="addGoodsBtn">添加盒子</button>
|
||||
<button class="layui-btn layui-btn-normal" id="offshelfLogBtn">自动下架日志</button>
|
||||
</div>
|
||||
<table id="goodsTable" lay-filter="goodsTable"></table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 盒子类型模板 -->
|
||||
<script type="text/html" id="typeTpl">
|
||||
{{#
|
||||
var typeNames = {};
|
||||
layui.each(window.goodsTypes || [], function(index, item) {
|
||||
typeNames[item.value] = item.fl_name;
|
||||
});
|
||||
var typeName = typeNames[d.type] || ('未知类型' + d.type);
|
||||
}}
|
||||
<button class="layui-btn layui-btn-normal layui-btn-radius layui-btn-sm">{{typeName}}</button>
|
||||
</script>
|
||||
|
||||
<!-- 盒子状态模板 -->
|
||||
<script type="text/html" id="statusTpl">
|
||||
{{# if(d.status == 1){ }}
|
||||
<button data-id="{{d.id}}" data-status="2" data-name="下架" class="goods-status layui-btn layui-btn-danger layui-btn-xs">
|
||||
<i class="layui-icon"></i>下架
|
||||
</button>
|
||||
{{# } else if(d.status == 2){ }}
|
||||
<button data-id="{{d.id}}" data-status="1" data-name="上架" class="goods-status layui-btn layui-btn-info layui-btn-xs">
|
||||
<i class="layui-icon"></i>上架
|
||||
</button>
|
||||
{{# } else if(d.status == 3){ }}
|
||||
<button class="layui-btn layui-btn-disabled layui-btn-radius layui-btn-sm">售罄</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<!-- 自动下架模板 -->
|
||||
<script type="text/html" id="autoOffshelfTpl">
|
||||
{{# if(d.is_auto_xiajia == 1){ }}
|
||||
<button class="layui-btn layui-btn-warm layui-btn-radius layui-btn-sm">已开启</button>
|
||||
<br>
|
||||
<button class="layui-btn layui-btn-warm layui-btn-sm">利润值:{{d.xiajia_lirun}}%</button>
|
||||
<br>
|
||||
<button class="layui-btn layui-btn-warm layui-btn-sm">阈值:{{d.xiajia_auto_coushu}}抽</button>
|
||||
{{# } else { }}
|
||||
<button class="layui-btn layui-btn-danger layui-btn-radius layui-btn-sm">未开启</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<!-- 首页显示模板 -->
|
||||
<script type="text/html" id="showIsTpl">
|
||||
{{# if(d.show_is == 1){ }}
|
||||
<button class="layui-btn layui-btn-danger layui-btn-radius layui-btn-sm">否</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<!-- 锁箱模式模板 -->
|
||||
<script type="text/html" id="lockIsTpl">
|
||||
{{# if(d.lock_is == 1){ }}
|
||||
<button class="layui-btn layui-btn-warm layui-btn-sm">状态:开启</button>
|
||||
<br>
|
||||
<button class="layui-btn layui-btn-warm layui-btn-sm">时间:{{d.lock_time}}秒</button>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<!-- 操作栏模板 -->
|
||||
<script type="text/html" id="toolbarTpl">
|
||||
<div class="user-extra-info">
|
||||
<div>
|
||||
<a style="text-decoration:none" title="编辑" lay-event="edit" class="layui-btn layui-btn-normal layui-btn-xs">
|
||||
<i class="layui-icon layui-icon-edit"></i>编辑
|
||||
</a>
|
||||
<a style="text-decoration:none" lay-event="goodslist" class="layui-btn layui-btn-warm layui-btn-xs">
|
||||
<i class="layui-icon layui-icon-cart-simple"></i>奖品
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a style="text-decoration:none" lay-event="sync" class="layui-btn layui-btn-normal layui-btn-xs">
|
||||
<i class="layui-icon layui-icon-sync"></i>同步
|
||||
</a>
|
||||
<a style="text-decoration:none" lay-event="clear" class="layui-btn layui-btn-danger layui-btn-xs">
|
||||
<i class="layui-icon layui-icon-delete"></i>清空抽奖
|
||||
</a>
|
||||
</div>
|
||||
<a style="text-decoration:none" lay-event="delete" class="layui-btn layui-btn-danger layui-btn-xs">
|
||||
<i class="layui-icon layui-icon-delete"></i>删除
|
||||
</a>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<!-- 同步弹窗模板 -->
|
||||
<script type="text/html" id="syncDialogTpl">
|
||||
<div class="layui-form" style="padding: 20px;">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">选择同步目标</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="syncAll" title="全选" lay-filter="syncAllFilter">
|
||||
{{# layui.each(d.syncAddresses, function(index, item){ }}
|
||||
<input type="checkbox" name="syncTargets" value="{{ item.sync_address }}" title="{{ item.name }}" lay-skin="primary">
|
||||
{{# }); }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
{include file="Public:footer"/}
|
||||
<script type="text/javascript">
|
||||
layui.use(['layer', 'table'], function () {
|
||||
|
||||
var table;
|
||||
var form;
|
||||
var layer;
|
||||
var laytpl;
|
||||
layui.use(['layer', 'table', 'form', 'laytpl'], function () {
|
||||
var $ = layui.$;
|
||||
table = layui.table;
|
||||
form = layui.form;
|
||||
layer = layui.layer;
|
||||
laytpl = layui.laytpl;
|
||||
|
||||
// 加载盒子类型数据
|
||||
$.ajax({
|
||||
url: '{:url("/admin/api/goods/types")}',
|
||||
type: 'GET',
|
||||
success: function(res) {
|
||||
if (res.code === 0) {
|
||||
// 保存类型数据到全局变量
|
||||
window.goodsTypes = res.data;
|
||||
|
||||
var html = '<option value="">--盒子类型--</option>';
|
||||
$.each(res.data, function(index, item) {
|
||||
html += '<option value="' + item.value + '" title="' + item.remark + '">' + item.fl_name + '</option>';
|
||||
});
|
||||
$('#goodsType').html(html);
|
||||
form.render('select');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
})
|
||||
// 初始化表格
|
||||
var tableIns = table.render({
|
||||
elem: '#goodsTable',
|
||||
url: '{:url("/admin/api/goods/list")}',
|
||||
page: true,
|
||||
limit: 20,
|
||||
height: 'full-' + ($("#goods-select").height() + 140),
|
||||
cols: [[
|
||||
{
|
||||
field: 'id', title: '盒子ID', width: 80, templet: function (d) {
|
||||
if (d.type == 1 || d.type == 11) {
|
||||
return '<div style="cursor:pointer;" class="goodsextend-btn" data-id="' + d.id + '" data-title="' + d.title + '">' + d.id + '</div>';
|
||||
} else {
|
||||
return d.id;
|
||||
}
|
||||
}
|
||||
},
|
||||
{ field: 'type', title: '盒子类型', width: 120, templet: '#typeTpl' },
|
||||
{ field: 'title', title: '盒子名称', width: 200 },
|
||||
{ field: 'price', title: '盒子价格', width: 100 },
|
||||
{
|
||||
field: 'imgurl', title: '盒子图片', width: 90, templet: function (d) {
|
||||
return '<img src="' + d.imgurl + '" style="width:60px;height:60px;" class="layui-admin-img" onclick="previewImg(this)">';
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'imgurl_detail', title: '盒子详情图片', width: 90, templet: function (d) {
|
||||
return d.imgurl_detail ? '<img src="' + d.imgurl_detail + '" style="width:60px;height:60px;" class="layui-admin-img" onclick="previewImg(this)">' : '';
|
||||
}
|
||||
},
|
||||
{ field: 'stock', title: '盒子套数', width: 100 },
|
||||
{ field: 'lock_is', title: '锁箱模式', width: 150, templet: '#lockIsTpl' },
|
||||
{ field: 'show_is', title: '首页显示', width: 100, templet: '#showIsTpl' },
|
||||
{ field: 'is_auto_xiajia', title: '自动下架', width: 150, templet: '#autoOffshelfTpl' },
|
||||
{ field: 'prize_num', title: '擂台赏<br>抽全局赏数量', width: 90 },
|
||||
{ field: 'sort', title: '排序', width: 80 },
|
||||
{ field: 'status', title: '状态', width: 100, templet: '#statusTpl' },
|
||||
{ field: 'addtime_text', title: '添加时间', width: 160 },
|
||||
{ fixed: 'right', title: '操作', width: 150, toolbar: '#toolbarTpl' }
|
||||
]],
|
||||
done: function () {
|
||||
// 绑定状态切换事件
|
||||
$('.goods-status').on('click', function () {
|
||||
var id = $(this).data('id');
|
||||
var type = $(this).data('status');
|
||||
var type_name = $(this).data('name');
|
||||
del(id, type, type_name);
|
||||
});
|
||||
|
||||
// 绑定扩展奖品点击事件
|
||||
$('.goodsextend-btn').on('click', function () {
|
||||
var goods_id = $(this).data('id');
|
||||
var title = $(this).data('title');
|
||||
goodsextendlist_edit(goods_id, title);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// 搜索按钮点击事件
|
||||
$('#searchBtn').on('click', function () {
|
||||
tableIns.reload({
|
||||
where: {
|
||||
title: $('#title').val(),
|
||||
status: $('#status').val(),
|
||||
type: $('#goodsType').val()
|
||||
},
|
||||
page: {
|
||||
curr: 1
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// 添加盒子按钮点击事件
|
||||
$('#addGoodsBtn').on('click', function () {
|
||||
goods_add();
|
||||
});
|
||||
|
||||
// 自动下架日志按钮点击事件
|
||||
$('#offshelfLogBtn').on('click', function () {
|
||||
offshelf_log();
|
||||
});
|
||||
|
||||
// 监听工具条事件
|
||||
table.on('tool(goodsTable)', function (obj) {
|
||||
var data = obj.data;
|
||||
var layEvent = obj.event;
|
||||
|
||||
if (layEvent === 'edit') {
|
||||
// 编辑盒子
|
||||
goods_edit(data.id);
|
||||
} else if (layEvent === 'goodslist') {
|
||||
// 查看奖品
|
||||
goodslist(data.id, data.title);
|
||||
} else if (layEvent === 'sync') {
|
||||
// 同步盒子
|
||||
goods_sync(data.id, data.async_code);
|
||||
} else if (layEvent === 'clear') {
|
||||
// 清空抽奖数据
|
||||
clear_goods_data(data.id);
|
||||
} else if (layEvent === 'delete') {
|
||||
// 删除盒子
|
||||
del(data.id, 3, '删除');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//添加盒子
|
||||
function goods_add() {
|
||||
|
|
@ -236,23 +310,20 @@
|
|||
|
||||
//编辑奖品
|
||||
function goodsextendlist_edit(goods_id, title) {
|
||||
var url = "{:url('/admin/goodsextendlist?goods_id=" + goods_id + "')}";
|
||||
var url = "{:url('/admin/goodsextendlist')}?goods_id=" + goods_id;
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: title + '奖品配置',
|
||||
shadeClose: false,
|
||||
// scrollbar:false,
|
||||
shade: 0.3,
|
||||
area: ['90%', '90%'],
|
||||
content: url,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
//编辑盒子
|
||||
function goods_edit(id) {
|
||||
var url = "{:url('/admin/goods_edit?id=" + id + "')}";
|
||||
var url = "{:url('/admin/goods_edit')}?id=" + id;
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '编辑盒子',
|
||||
|
|
@ -265,7 +336,7 @@
|
|||
|
||||
//盒子奖品
|
||||
function goodslist(goods_id, title) {
|
||||
var url = "{:url('/admin/goodslist?goods_id=" + goods_id + "')}";
|
||||
var url = "{:url('/admin/goodslist')}?goods_id=" + goods_id;
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: title + ' 盒子奖品',
|
||||
|
|
@ -284,8 +355,9 @@
|
|||
var $ = layui.$;
|
||||
$.post(url, { "id": id, 'type': type }, function (data) {
|
||||
if (data.status == 1) {
|
||||
layer.close(load);
|
||||
layer.msg('操作成功', { icon: 1, time: 1000 }, function () {
|
||||
location.reload();
|
||||
table.reload('goodsTable');
|
||||
});
|
||||
} else {
|
||||
layer.msg(data.msg, { icon: 2, anim: 6, time: 1000 }, function () {
|
||||
|
|
@ -296,11 +368,12 @@
|
|||
});
|
||||
}
|
||||
|
||||
|
||||
//盒子奖品
|
||||
function goods_sync(goods_id, async_code) {
|
||||
layui.use(['table', 'form', 'layer','laytpl'], function () {
|
||||
var table = layui.table, form = layui.form, layer = layui.layer,laytpl = layui.laytpl;
|
||||
layui.use(['table', 'form', 'layer', 'laytpl'], function () {
|
||||
var table = layui.table, form = layui.form, layer = layui.layer, laytpl = layui.laytpl;
|
||||
var $ = layui.$;
|
||||
|
||||
// 同步操作
|
||||
var confirmMsg = async_code
|
||||
? '警告:该盒子已经同步过,再次同步将会覆盖目标系统中的盒子数据!确定要继续吗?'
|
||||
|
|
@ -351,7 +424,8 @@
|
|||
layer.close(loadIndex);
|
||||
if (res.status === 1) {
|
||||
layer.msg('同步成功', { icon: 1 });
|
||||
table.reload('testReload'); // 刷新表格
|
||||
table.reload('goodsTable');
|
||||
|
||||
} else {
|
||||
layer.msg(res.msg || '同步失败', { icon: 2 });
|
||||
}
|
||||
|
|
@ -365,8 +439,6 @@
|
|||
layer.close(index);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
// 清空盒子抽奖数据
|
||||
|
|
@ -380,9 +452,10 @@
|
|||
var load = layer.load(2);
|
||||
var $ = layui.$;
|
||||
$.post(url, { "id": id }, function (data) {
|
||||
layer.close(load);
|
||||
if (data.status == 1) {
|
||||
layer.msg(data.msg, { icon: 1, time: 2000 }, function () {
|
||||
location.reload();
|
||||
table.reload('goodsTable');
|
||||
});
|
||||
} else {
|
||||
layer.msg(data.msg, { icon: 2, anim: 6, time: 2000 }, function () {
|
||||
|
|
@ -393,30 +466,66 @@
|
|||
layer.close(index);
|
||||
});
|
||||
}
|
||||
|
||||
// 图片预览功能
|
||||
function previewImg(obj) {
|
||||
var img = new Image();
|
||||
img.src = obj.src;
|
||||
|
||||
layer.open({
|
||||
type: 1,
|
||||
title: false,
|
||||
closeBtn: 1,
|
||||
shadeClose: true,
|
||||
area: [img.width > 800 ? '800px' : img.width+'px', ''],
|
||||
content: '<div style="text-align: center;"><img src="' + obj.src + '" style="max-width: 100%;" /></div>'
|
||||
});
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
.layui-table td {
|
||||
padding: 10px 15px;
|
||||
/* 调整单元格内边距 */
|
||||
height: 100px !important;
|
||||
}
|
||||
|
||||
<!-- 在操作栏中添加同步按钮 -->
|
||||
<script type="text/html" id="barDemo">
|
||||
<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
|
||||
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
|
||||
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="sync">同步</a>
|
||||
</script>
|
||||
.combined-values div {
|
||||
margin: 0;
|
||||
padding: 0px 0;
|
||||
|
||||
<!-- 添加同步弹窗模板 -->
|
||||
<script type="text/html" id="syncDialogTpl">
|
||||
<div class="layui-form" style="padding: 20px;">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">选择同步目标</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="syncAll" title="全选" lay-filter="syncAllFilter">
|
||||
{{# layui.each(d.syncAddresses, function(index, item){ }}
|
||||
<input type="checkbox" name="syncTargets" value="{{ item.sync_address }}" title="{{ item.name }}" lay-skin="primary">
|
||||
{{# }); }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
}
|
||||
|
||||
.layui-table-cell {
|
||||
height: 100px !important;
|
||||
line-height: 28px;
|
||||
padding: 0 15px;
|
||||
position: relative;
|
||||
box-sizing: border-box
|
||||
}
|
||||
|
||||
.layui-table thead th {
|
||||
height: 30px !important;
|
||||
}
|
||||
|
||||
.layui-table thead th div {
|
||||
height: 30px !important;
|
||||
}
|
||||
|
||||
.layui-table-col-special {
|
||||
height: 30px !important;
|
||||
}
|
||||
|
||||
/* 图片放大样式 */
|
||||
.layui-admin-img {
|
||||
cursor: pointer;
|
||||
transition: all 0.3s;
|
||||
}
|
||||
|
||||
.layui-admin-img:hover {
|
||||
transform: scale(1.1);
|
||||
box-shadow: 0 0 10px rgba(0,0,0,0.2);
|
||||
}
|
||||
</style>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
@ -13,7 +13,8 @@
|
|||
<label class="layui-form-label">盒子类型</label>
|
||||
<div class="layui-input-inline" style="width:800px">
|
||||
{volist name="goodsTypeList" id="vo"}
|
||||
<input type="radio" name="type" value="{$vo.value}" lay-filter="type" class="layui-input" title="{$vo.fl_name}" {if $key eq 0}checked{/if}>
|
||||
<input type="radio" name="type" value="{$vo.value}" lay-filter="type"
|
||||
class="layui-input" title="{$vo.fl_name}" {if $key eq 0}checked{/if}>
|
||||
{/volist}
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -57,9 +58,8 @@
|
|||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">抽奖门槛:</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="choujiang_xianzhi" value="0"
|
||||
placeholder="请输入抽奖门槛" autocomplete="off" class="layui-input"
|
||||
style="width: 600px">
|
||||
<input type="text" name="choujiang_xianzhi" value="0" placeholder="请输入抽奖门槛"
|
||||
autocomplete="off" class="layui-input" style="width: 600px">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item id_stock">
|
||||
|
|
@ -72,7 +72,8 @@
|
|||
<div class="layui-form-item id_stock" id="div_quanju_xiangou" style="display: none;">
|
||||
<label class="layui-form-label">限购次数</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="number" name="quanju_xiangou" value="0" placeholder="请输入每个箱子的限购次数" class="layui-input" style="width: 600px">
|
||||
<input type="number" name="quanju_xiangou" value="0" placeholder="请输入每个箱子的限购次数"
|
||||
class="layui-input" style="width: 600px">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item id_lock_is">
|
||||
|
|
@ -203,20 +204,24 @@
|
|||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">自动下架</label>
|
||||
<div class="layui-input-inline" style="width: 600px">
|
||||
<input type="radio" name="is_auto_xiajia" value="0" lay-filter="autoXiajia" class="layui-input" title="关闭" checked>
|
||||
<input type="radio" name="is_auto_xiajia" value="1" lay-filter="autoXiajia" class="layui-input" title="开启">
|
||||
<input type="radio" name="is_auto_xiajia" value="0" lay-filter="autoXiajia"
|
||||
class="layui-input" title="关闭" checked>
|
||||
<input type="radio" name="is_auto_xiajia" value="1" lay-filter="autoXiajia"
|
||||
class="layui-input" title="开启">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item xiajia-config" style="display: none;">
|
||||
<label class="layui-form-label">下架利润值(%)</label>
|
||||
<div class="layui-input-inline" style="width: 600px">
|
||||
<input type="number" name="xiajia_lirun" value="0" placeholder="请输入下架利润值(百分比,可以为负)" class="layui-input" style="width: 600px">
|
||||
<input type="number" name="xiajia_lirun" value="0"
|
||||
placeholder="请输入下架利润值(百分比,可以为负)" class="layui-input" style="width: 600px">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item xiajia-config" style="display: none;">
|
||||
<label class="layui-form-label">下架抽数阈值</label>
|
||||
<div class="layui-input-inline" style="width: 600px">
|
||||
<input type="number" name="xiajia_auto_coushu" value="0" placeholder="请输入从多少抽数后开始检测" class="layui-input" style="width: 600px">
|
||||
<input type="number" name="xiajia_auto_coushu" value="0"
|
||||
placeholder="请输入从多少抽数后开始检测" class="layui-input" style="width: 600px">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
|
|
@ -251,14 +256,14 @@
|
|||
</div>
|
||||
{include file="Public:footer"/}
|
||||
<script>
|
||||
layui.use(['form', 'layedit', 'laydate','jquery'], function () {
|
||||
layui.use(['form', 'layedit', 'laydate', 'jquery'], function () {
|
||||
let form = layui.form,
|
||||
$ = layui.jquery,
|
||||
layer = layui.layer;
|
||||
|
||||
|
||||
// 自动下架开关切换事件
|
||||
form.on('radio(autoXiajia)', function(data){
|
||||
if(data.value == "1"){
|
||||
form.on('radio(autoXiajia)', function (data) {
|
||||
if (data.value == "1") {
|
||||
$('.xiajia-config').show();
|
||||
} else {
|
||||
$('.xiajia-config').hide();
|
||||
|
|
@ -502,7 +507,8 @@
|
|||
layer.msg(data.msg, { icon: 1, time: 1500 }, function () {
|
||||
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
|
||||
parent.layer.close(index);
|
||||
parent.location.reload();
|
||||
// parent.location.reload();
|
||||
parent.table.reload('goodsTable');
|
||||
});
|
||||
} else {
|
||||
layer.msg(data.msg, { icon: 2, anim: 6, time: 1500 }, function () {
|
||||
|
|
|
|||
|
|
@ -13,7 +13,8 @@
|
|||
<label class="layui-form-label">盒子类型</label>
|
||||
<div class="layui-input-inline" style="width: 700px">
|
||||
{volist name="goodsTypeList" id="vo"}
|
||||
<input type="radio" value="{$vo.value}" lay-filter="type" class="layui-input" title="{$vo.fl_name}" disabled {if $type eq $vo.value} checked {/if}>
|
||||
<input type="radio" value="{$vo.value}" lay-filter="type" class="layui-input"
|
||||
title="{$vo.fl_name}" disabled {if $type eq $vo.value} checked {/if}>
|
||||
{/volist}
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -214,17 +215,21 @@
|
|||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">自动下架</label>
|
||||
<div class="layui-input-inline" style="width: 600px">
|
||||
<input type="radio" name="is_auto_xiajia" value="0" lay-filter="autoXiajia" class="layui-input" title="关闭" {if $info.is_auto_xiajia eq 0} checked {/if}>
|
||||
<input type="radio" name="is_auto_xiajia" value="1" lay-filter="autoXiajia" class="layui-input" title="开启" {if $info.is_auto_xiajia eq 1} checked {/if}>
|
||||
<input type="radio" name="is_auto_xiajia" value="0" lay-filter="autoXiajia"
|
||||
class="layui-input" title="关闭" {if $info.is_auto_xiajia eq 0} checked {/if}>
|
||||
<input type="radio" name="is_auto_xiajia" value="1" lay-filter="autoXiajia"
|
||||
class="layui-input" title="开启" {if $info.is_auto_xiajia eq 1} checked {/if}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item xiajia-config" {$info['is_auto_xiajia']?'':'style="display:none"'}>
|
||||
<div class="layui-form-item xiajia-config"
|
||||
{$info['is_auto_xiajia']?'':'style="display:none"'}>
|
||||
<label class="layui-form-label">下架利润值(%)</label>
|
||||
<div class="layui-input-inline" style="width: 600px">
|
||||
<input type="number" name="xiajia_lirun" value="{$info.xiajia_lirun|default=0}" placeholder="请输入下架利润值(百分比,可以为负)" class="layui-input" style="width: 600px">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item xiajia-config" {$info['is_auto_xiajia']?'':'style="display:none"'}>
|
||||
<div class="layui-form-item xiajia-config" {$info['
|
||||
is_auto_xiajia']?'':'style="display:none"'}>
|
||||
<label class="layui-form-label">下架抽数阈值</label>
|
||||
<div class="layui-input-inline" style="width: 600px">
|
||||
<input type="number" name="xiajia_auto_coushu" value="{$info.xiajia_auto_coushu|default=0}" placeholder="请输入从多少抽数后开始检测" class="layui-input" style="width: 600px">
|
||||
|
|
@ -264,24 +269,13 @@
|
|||
</div>
|
||||
{include file="Public:footer"/}
|
||||
<script>
|
||||
layui.use(['form', 'layedit', 'laydate','jquery'], function () {
|
||||
let form = layui.form,
|
||||
$ = layui.jquery,
|
||||
layer = layui.layer;
|
||||
|
||||
// 自动下架开关切换事件
|
||||
form.on('radio(autoXiajia)', function(data){
|
||||
if(data.value == "1"){
|
||||
$('.xiajia-config').show();
|
||||
} else {
|
||||
$('.xiajia-config').hide();
|
||||
}
|
||||
});
|
||||
|
||||
// 其他初始化逻辑
|
||||
// ... 现有代码 ...
|
||||
});
|
||||
</script>
|
||||
layui.use([' form', 'layedit', 'laydate', 'jquery'], function () {
|
||||
let form = layui.form, $ = layui.jquery,
|
||||
layer = layui.layer; // 自动下架开关切换事件 form.on('radio(autoXiajia)', function(data){
|
||||
if (data.value == "1") { $('.xiajia-config').show(); } else {
|
||||
$('.xiajia-config').hide();
|
||||
}
|
||||
}); // 其他初始化逻辑 // ... 现有代码 ... }); </script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
@ -520,7 +514,8 @@
|
|||
layer.msg(data.msg, { icon: 1, time: 1500 }, function () {
|
||||
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
|
||||
parent.layer.close(index);
|
||||
parent.location.reload();
|
||||
// parent.location.reload();
|
||||
parent.table.reload('goodsTable');
|
||||
});
|
||||
} else {
|
||||
layer.msg(data.msg, { icon: 2, anim: 6, time: 1500 }, function () {
|
||||
|
|
|
|||
|
|
@ -546,12 +546,7 @@
|
|||
font-weight: bold;
|
||||
}
|
||||
|
||||
.layui-table td {
|
||||
padding: 10px 15px;
|
||||
/* 调整单元格内边距 */
|
||||
height: 150px !important;
|
||||
}
|
||||
|
||||
|
||||
/* 充值按钮样式 */
|
||||
.layui-table .layui-btn-xs {
|
||||
margin-top: 5px;
|
||||
|
|
@ -609,6 +604,12 @@
|
|||
padding: 0px 0;
|
||||
|
||||
}
|
||||
.layui-table td {
|
||||
padding: 10px 15px;
|
||||
/* 调整单元格内边距 */
|
||||
height: 150px !important;
|
||||
}
|
||||
|
||||
|
||||
.layui-table thead th {
|
||||
height: 30px !important;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user