修改商品模板

This commit is contained in:
邹景立 2021-01-28 10:49:06 +08:00
parent c4637971bd
commit d17af7c3d1
5 changed files with 33 additions and 28 deletions

View File

@ -154,31 +154,37 @@ class ShopGoods extends Controller
}
if ($this->request->isGet()) {
$data['mark'] = str2arr($data['mark'] ?? '');
[$this->marks, $this->cates] = [GoodsService::instance()->getMarkList(), GoodsService::instance()->getCateList('arr2table')];
$this->marks = GoodsService::instance()->getMarkList();
$this->cates = GoodsService::instance()->getCateList('arr2table');
$this->levels = $this->app->db->name('DataUserLevel')->where(['status' => 1])->order('number asc,id desc')->select()->toArray();
$this->discounts = $this->app->db->name('DataUserDiscount')->where(['status' => 1, 'deleted' => 0])->order('sort desc,id desc')->select()->toArray();
$this->truckitems = $this->app->db->name('ShopTruckTemplate')->where(['status' => 1, 'deleted' => 0])->order('sort desc,id desc')->column('code,name');
// 商品规格处理
$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);
$data['truck_items'] = $this->app->db->name('ShopTruckTemplate')->where(['status' => 1, 'deleted' => 0])->order('sort desc,id desc')->column('code,name');
} elseif ($this->request->isPost()) {
if (empty($data['cover'])) $this->error('商品图片不能为空!');
if (empty($data['slider'])) $this->error('轮播图不能为空!');
// 商品规格保存
$data['mark'] = arr2str($data['mark'] ?? []);
[$count, $items] = [0, array_column(json_decode($data['data_items'], true), 0)];
foreach ($items as $item) $count += intval($item['status']);
if (empty($count)) $this->error('无效的的商品价格信息!');
$data['mark'] = arr2str($data['mark'] ?? []);
if (empty($data['price_market'])) $data['price_market'] = min(array_column($items, 'market'));
if (empty($data['price_selling'])) $data['price_selling'] = min(array_column($items, 'selling'));
$this->app->db->name('ShopGoodsItem')->where(['goods_code' => $data['code']])->update(['status' => 0]);
foreach ($items as $item) data_save('ShopGoodsItem', [
'goods_code' => $data['code'],
'goods_sku' => $item['sku'],
'goods_spec' => $item['key'],
'goods_code' => $data['code'],
'price_market' => $item['market'],
'price_selling' => $item['selling'],
'number_virtual' => $item['virtual'],
'number_express' => $item['express'],
'status' => $item['status'] ? 1 : 0,
], 'goods_spec', ['goods_code' => $data['code']]);
], 'goods_spec', [
'goods_code' => $data['code'],
]);
}
}

View File

@ -38,18 +38,20 @@
<input name="name" required class="layui-input" placeholder="请输入商品名称" value="{$vo.name|default=''}">
</label>
{notempty name='truckitems'}
<label class="layui-form-item block relative">
<span class="color-green font-w7 label-required-prev">邮费模板</span>
<span class="color-desc margin-left-5">Truck Template</span>
<select class="layui-select" name="truck_tcode" lay-search>
<option value="">--- ---</option>
{foreach $vo.truck_items as $truck}{if isset($vo.truck_tcode) and $vo.truck_tcode eq $truck.code}
{foreach $truckitems as $truck}{if isset($vo.truck_tcode) and $vo.truck_tcode eq $truck.code}
<option selected value="{$truck.code}">{$truck.code} - {$truck.name|default=''}</option>
{else}
<option value="{$truck.code}">{$truck.code} - {$truck.name|default=''}</option>
{/if}{/foreach}
</select>
</label>
{/notempty}
<div class="layui-form-item">
<span class="color-green font-w7 label-required-prev">商品图片及轮播展示图片</span>
@ -77,8 +79,10 @@
<span class="color-green font-w7 label-required-prev">商品规格及商品SKU绑定<span class="color-red font-s12">(规格填写后不允许再次修改)</span></span>
<div ng-repeat="x in specs track by $index" style="display:none" class="margin-bottom-10" ng-class="{true:'layui-show'}[mode==='add'&&specs.length>0]">
<div class="goods-spec-box padding-10 margin-0 relative" style="background:#ddd">
<span class="text-center goods-spec-title">分组</span>
<label class="label-required-null inline-block"><input ng-blur="x.name=trimSpace(x.name)" ng-model="x.name" required placeholder="请输入分组名称"></label>
<span class="text-center goods-spec-name">分组</span>
<label class="label-required-null inline-block">
<input ng-blur="x.name=trimSpace(x.name)" ng-model="x.name" required placeholder="请输入分组名称">
</label>
<div class="pull-right">
<a class="layui-btn layui-btn-sm layui-btn-primary goods-spec-btn" ng-click="addSpecVal(x.list)">增加</a>
<a class="layui-btn layui-btn-sm layui-btn-primary goods-spec-btn" ng-class="{false:'layui-bg-gray'}[$index>0]" ng-click="upSpecRow(specs,$index)">上移</a>

View File

@ -20,7 +20,7 @@
vertical-align: middle;
}
.goods-spec-title {
.goods-spec-name {
z-index: 2;
width: 40px;
color: #fff;

View File

@ -50,9 +50,9 @@
</div>
</div>
<script>form.render()</script>
</form>
<script>layui.form.render()</script>
<style>
.think-level-box tr input {
width: 90%;

View File

@ -6,23 +6,24 @@
<!--{/if}-->
<!--{if auth("sync")}-->
<button data-queue="{:url('sync')}" data-confirm="确定要刷新用户数据数据吗?" class='layui-btn layui-btn-sm layui-btn-primary'>刷新用户数据</button>
<button data-queue="{:url('sync')}" data-confirm="确定要刷新用户数据吗?" class='layui-btn layui-btn-sm layui-btn-primary'>刷新用户数据</button>
<!--{/if}-->
{/block}
{block name='content'}
<div class="layui-badge think-bg-red text-left padding-10 border-radius-5 padding-left-20 font-s15 block shadow">
注意,用户配置不能随意修改或删除,会影响系统结算与用户升级!
<div class="layui-badge think-bg-red text-left notselect block shadow padding-10 padding-left-20 border-radius-5 font-s15 ">
注意,用户级配置不能随意修改或删除,会影响系统结算与用户升级!
</div>
<div class="think-box-shadow margin-top-10">
<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>
<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-center nowrap">入会礼包</th>
<th class="text-center nowrap">团队总数</th>
@ -39,7 +40,7 @@
{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>
<label><input class="list-check-box" value='{$vo.id}' type='checkbox'></label>
</td>
<td class="text-left nowrap"> [ <span class="color-blue">{$vo.number}</span> ] {$vo.name|default=''}</td>
<td class="text-left nowrap">{if $vo.upgrade_type eq 1}<span class="color-green">全部完成</span>{else}<span class="color-blue">任何条件</span>{/if}</td>
@ -48,27 +49,21 @@
<td class="text-center nowrap">{if $vo.teams_direct_status>0} <b class="color-green">{$vo.teams_direct_number}</b> {else} - {/if}</td>
<td class="text-center nowrap">{if $vo.teams_indirect_status>0} <b class="color-green">{$vo.teams_indirect_number}</b> {else} - {/if}</td>
<td class="text-center nowrap">{if $vo.order_amount_status>0} <b class="color-green">{$vo.order_amount_number+0}</b> {else} - {/if}</td>
<td class="text-left">
{foreach $vo.rebate_rule as $v}
<span class="nowrap margin-right-5">{$v}</span>
{/foreach}
</td>
<td class='text-left nowrap'>
{if $vo.status eq 0}<span class="color-red">已禁用</span>{elseif $vo.status eq 1}<span class="color-green">使用中</span>{/if}
</td>
<td class="text-left">{foreach $vo.rebate_rule as $v}<span class="nowrap margin-right-5">{$v}</span>{/foreach}</td>
<td class='text-left nowrap'>{if $vo.status eq 0}<span class="color-red">已禁用</span>{elseif $vo.status eq 1}<span class="color-green">使用中</span>{/if}</td>
<td class='text-left nowrap'>
<!--{if auth("edit")}-->
<a class="layui-btn layui-btn-sm" data-modal='{:url("edit")}?id={$vo.id}' data-title="编辑用户"> </a>
<a class="layui-btn layui-btn-sm" data-modal='{:url("edit")}?id={$vo.id}' data-title="编辑用户等级"> </a>
<!--{/if}-->
<!--{if auth("state") and $vo.status eq 1}-->
<a class="layui-btn layui-btn-sm layui-btn-warm" data-action="{:url('state')}" data-value="id#{$vo.id};status#0" data-csrf="{:systoken('state')}"> </a>
<a class="layui-btn layui-btn-sm layui-btn-warm" data-action="{:url('state')}" data-value="id#{$vo.id};status#0"> </a>
<!--{elseif auth("state") and $vo.status eq 0}-->
<a class="layui-btn layui-btn-sm layui-btn-warm" data-action="{:url('state')}" data-value="id#{$vo.id};status#1" data-csrf="{:systoken('state')}"> </a>
<a class="layui-btn layui-btn-sm 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-sm layui-btn-danger" data-confirm="确定要删除用户吗?" data-action="{:url('remove')}" data-value="id#{$vo.id}" data-csrf="{:systoken('remove')}"> </a>
<a class="layui-btn layui-btn-sm layui-btn-danger" data-confirm="确定要删除用户级吗?" data-action="{:url('remove')}" data-value="id#{$vo.id}" data-csrf="{:systoken('remove')}"> </a>
<!--{/if}-->
</td>
</tr>