mirror of
https://gitee.com/zoujingli/ThinkAdmin.git
synced 2025-04-06 03:58:04 +08:00
修改商品管理
This commit is contained in:
parent
f75ba9fe78
commit
7b9055626e
@ -63,13 +63,10 @@ class ShopGoods extends Controller
|
||||
*/
|
||||
protected function _page_filter(&$data)
|
||||
{
|
||||
$query = $this->app->db->name('ShopGoodsCate');
|
||||
$query->where(['deleted' => 0, 'status' => 1])->order('sort desc,id desc');
|
||||
$this->clist = DataExtend::arr2table($query->select()->toArray());
|
||||
foreach ($data as &$vo) {
|
||||
[$vo['list'], $vo['cate']] = [[], []];
|
||||
foreach ($this->clist as $cate) if ($cate['id'] === $vo['cate']) $vo['cate'] = $cate;
|
||||
}
|
||||
$query = $this->app->db->name('ShopGoodsCate')->where(['deleted' => 0, 'status' => 1]);
|
||||
$this->clist = DataExtend::arr2table($query->order('sort desc,id desc')->select()->toArray());
|
||||
$clist = $this->app->db->name('ShopGoodsCate')->whereIn('id', array_column($data, 'cate'))->column('pid,name,status', 'id');
|
||||
foreach ($data as &$vo) $vo['cate'] = $clist[$vo['cate']] ?? $vo['cate'];
|
||||
}
|
||||
|
||||
/**
|
||||
@ -147,21 +144,22 @@ class ShopGoods extends Controller
|
||||
$data['code'] = CodeExtend::uniqidNumber(12, 'G');
|
||||
}
|
||||
if ($this->request->isGet()) {
|
||||
// 商品分类数据
|
||||
$this->marks = GoodsService::instance()->getMarkList();
|
||||
$this->cates = GoodsService::instance()->getCateList('arr2table');
|
||||
// 商品默认规格
|
||||
$data['mark'] = isset($data['mark']) && trim($data['mark'], ',') ? explode(',', trim($data['mark'], ',')) : [];
|
||||
$fields = 'goods_sku `sku`,goods_code,goods_spec `key`,price_selling `selling`,price_market `market`,number_virtual `virtual`,number_express `express`,status';
|
||||
$data['data_items'] = json_encode($this->app->db->name('ShopGoodsItem')->where(['goods_code' => $data['code']])->column($fields, 'goods_spec'), JSON_UNESCAPED_UNICODE);
|
||||
} elseif ($this->request->isPost()) {
|
||||
if (empty($data['cover'])) $this->error('商品图片不能为空!');
|
||||
if (empty($data['slider'])) $this->error('轮播图不能为空!');
|
||||
// 商品规格保存
|
||||
$data['mark'] = ',' . (isset($data['mark']) && is_array($data['mark']) ? join(',', $data['mark']) : '') . ',';
|
||||
[$count, $items] = [0, json_decode($data['data_items'], true)];
|
||||
foreach ($items as $item) {
|
||||
$count += intval($item[0]['status']);
|
||||
if (empty($data['price_market'])) $data['price_market'] = $item[0]['market'];
|
||||
}
|
||||
if (empty($count)) $this->error('无可用的商品规格!');
|
||||
if (empty($count)) $this->error('无效的的商品价格信息!');
|
||||
$this->app->db->name('ShopGoodsItem')->where(['goods_code' => $data['code']])->update(['status' => 0]);
|
||||
foreach ($items as $item) data_save('ShopGoodsItem', [
|
||||
'goods_code' => $data['code'],
|
||||
|
@ -70,6 +70,17 @@ class GoodsService extends Service
|
||||
return DataExtend::$type($query->withoutField('sort,status,deleted,create_at')->select()->toArray());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取商品标签数据
|
||||
* @return array
|
||||
*/
|
||||
public function getMarkList()
|
||||
{
|
||||
$map = ['status' => 1];
|
||||
$query = $this->app->db->name('ShopGoodsMark');
|
||||
return $query->where($map)->order('sort desc,id desc')->column('name');
|
||||
}
|
||||
|
||||
/**
|
||||
* 最大分类级别
|
||||
* @return integer
|
||||
|
@ -20,6 +20,17 @@
|
||||
</select>
|
||||
</label>
|
||||
|
||||
<div class="layui-form-item relative block">
|
||||
<span class="color-green font-w7 label-required-prev">课程标签</span>
|
||||
<div class="tags-container layui-textarea">
|
||||
{foreach $marks as $mark}{if isset($vo.mark) && is_array($vo.mark) && in_array($mark, $vo.mark)}
|
||||
<label class="think-checkbox notselect"><input checked type="checkbox" name="mark[]" value="{$mark}" lay-ignore> {$mark}</label>
|
||||
{else}
|
||||
<label class="think-checkbox notselect"><input type="checkbox" name="mark[]" value="{$mark}" lay-ignore> {$mark}</label>
|
||||
{/if}{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label class="layui-form-item block relative">
|
||||
<span class="color-green font-w7">商品名称</span>
|
||||
<input name="name" required class="layui-input" placeholder="请输入商品名称" value="{$vo.name|default=''}">
|
||||
|
@ -5,12 +5,12 @@
|
||||
<button data-open='{:url("add")}' class='layui-btn layui-btn-sm layui-btn-primary'>添加商品</button>
|
||||
<!--{/if}-->
|
||||
{if $type eq 'index'}
|
||||
<!--{if auth("state")}-->
|
||||
<button data-action='{:url("state")}' data-rule="code#{key};deleted#1" class='layui-btn layui-btn-sm layui-btn-primary'>删除商品</button>
|
||||
<!--{if auth("remove")}-->
|
||||
<button data-action='{:url("remove")}' data-rule="code#{key};deleted#1" class='layui-btn layui-btn-sm layui-btn-primary'>删除商品</button>
|
||||
<!--{/if}-->
|
||||
{else}
|
||||
<!--{if auth("state")}-->
|
||||
<button data-action='{:url("state")}' data-rule="code#{key};deleted#0" data-confirm="确定要恢复这些数据吗??" class='layui-btn layui-btn-sm layui-btn-primary'>恢复商品</button>
|
||||
<!--{if auth("remove")}-->
|
||||
<button data-action='{:url("remove")}' data-rule="code#{key};deleted#0" data-confirm="确定要恢复这些数据吗?" class='layui-btn layui-btn-sm layui-btn-primary'>恢复商品</button>
|
||||
<!--{/if}-->
|
||||
{/if}
|
||||
{/block}
|
||||
@ -23,8 +23,7 @@
|
||||
<li data-open="{:url('index')}?type={$k}" class="layui-this">{$v}</li>
|
||||
{else}
|
||||
<li data-open="{:url('index')}?type={$k}">{$v}</li>
|
||||
{/if}
|
||||
{/foreach}
|
||||
{/if}{/foreach}
|
||||
</ul>
|
||||
<div class="layui-tab-content think-box-shadow table-block">
|
||||
{include file='shop_goods/index_search'}
|
||||
@ -65,7 +64,7 @@
|
||||
</td>
|
||||
<td class='nowrap'>
|
||||
入会礼包:{if empty($vo.vip_mod)}<span class=" color-red">否</span>{else}<span class="color-blue">是</span> [ <span class="color-blue">{$vo.vip_level|default='0'}</span> ]{/if}<br>
|
||||
所属分类:{$vo.cate.title|default='--'}<br>
|
||||
所属分类:{$vo.cate.name|default='-'}<br>
|
||||
</td>
|
||||
<td class='nowrap'>
|
||||
销售状态:{eq name='vo.status' value='0'}<span class="layui-badge">已下架</span>{else}<span class="layui-badge layui-bg-green">销售中</span>{/eq}<br>
|
||||
@ -114,8 +113,4 @@
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
{block name='script'}
|
||||
<script>form.render()</script>
|
||||
{/block}
|
@ -38,4 +38,5 @@
|
||||
<button class="layui-btn layui-btn-primary"><i class="layui-icon"></i> 搜 索</button>
|
||||
</div>
|
||||
</form>
|
||||
</fieldset>
|
||||
<script>form.render()</script>
|
||||
</fieldset>
|
||||
|
Loading…
x
Reference in New Issue
Block a user