修改商品管理

This commit is contained in:
Anyon 2020-09-09 11:45:37 +08:00
parent f75ba9fe78
commit 7b9055626e
5 changed files with 38 additions and 22 deletions

View File

@ -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'],

View File

@ -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

View File

@ -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=''}">

View File

@ -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='&#45;&#45;'}<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}

View File

@ -38,4 +38,5 @@
<button class="layui-btn layui-btn-primary"><i class="layui-icon">&#xe615;</i> 搜 索</button>
</div>
</form>
</fieldset>
<script>form.render()</script>
</fieldset>