mirror of
https://gitee.com/zoujingli/ThinkAdmin.git
synced 2025-04-06 03:58:04 +08:00
修改商品管理
This commit is contained in:
parent
22425061bb
commit
20207e50f1
@ -68,7 +68,7 @@ class ShopGoods extends Controller
|
||||
$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_id']) $vo['cate'] = $cate;
|
||||
foreach ($this->clist as $cate) if ($cate['id'] === $vo['cate']) $vo['cate'] = $cate;
|
||||
}
|
||||
}
|
||||
|
||||
@ -115,9 +115,9 @@ class ShopGoods extends Controller
|
||||
*/
|
||||
public function add()
|
||||
{
|
||||
$this->mode = 'add';
|
||||
$this->title = '添加商品信息';
|
||||
$this->isAddMode = '1';
|
||||
$this->_form($this->table, 'form');
|
||||
$this->_form($this->table, 'form', 'code');
|
||||
}
|
||||
|
||||
/**
|
||||
@ -129,9 +129,9 @@ class ShopGoods extends Controller
|
||||
*/
|
||||
public function edit()
|
||||
{
|
||||
$this->mode = 'edit';
|
||||
$this->title = '编辑商品信息';
|
||||
$this->isAddMode = '0';
|
||||
$this->_form($this->table, 'form');
|
||||
$this->_form($this->table, 'form', 'code');
|
||||
}
|
||||
|
||||
/**
|
||||
@ -150,22 +150,22 @@ class ShopGoods extends Controller
|
||||
// 商品分类数据
|
||||
$this->cates = GoodsService::instance()->getCateList('arr2table');
|
||||
// 商品默认规格
|
||||
$fields = 'goods_sku,goods_code,goods_spec,price_selling,price_market,number_virtual,number_express express,status';
|
||||
$data['items'] = $this->app->db->name('ShopGoodsItem')->where(['goods_code' => $data['code']])->column($fields, 'goods_spec');
|
||||
$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('轮播图不能为空!');
|
||||
// 商品规格保存
|
||||
[$count, $items] = [0, json_decode($data['items_data'], true)];
|
||||
[$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('无可用的商品规格!');
|
||||
$this->app->db->name('ShopGoodsItem')->where(['goods_code' => $data['code']])->update(['status' => '0']);
|
||||
$this->app->db->name('ShopGoodsItem')->where(['goods_code' => $data['code']])->update(['status' => 0]);
|
||||
foreach ($items as $item) data_save('ShopGoodsItem', [
|
||||
'goods_sku' => $item[0]['sku'],
|
||||
'goods_code' => $data['code'],
|
||||
'goods_sku' => $item[0]['sku'],
|
||||
'goods_spec' => $item[0]['key'],
|
||||
'price_market' => $item[0]['market'],
|
||||
'price_selling' => $item[0]['selling'],
|
||||
@ -197,7 +197,7 @@ class ShopGoods extends Controller
|
||||
$this->_save($this->table, $this->_vali([
|
||||
'status.in:0,1' => '状态值范围异常!',
|
||||
'status.require' => '状态值不能为空!',
|
||||
]));
|
||||
]), 'code');
|
||||
}
|
||||
|
||||
/**
|
||||
@ -207,7 +207,10 @@ class ShopGoods extends Controller
|
||||
*/
|
||||
public function remove()
|
||||
{
|
||||
$this->_delete($this->table);
|
||||
$this->_save($this->table, $this->_vali([
|
||||
'deleted.in:0,1' => '状态值范围异常!',
|
||||
'deleted.require' => '状态值不能为空!',
|
||||
]), 'code');
|
||||
}
|
||||
|
||||
}
|
@ -2,11 +2,11 @@
|
||||
|
||||
{block name="content"}
|
||||
|
||||
{include file='shop_goods/form_style'}
|
||||
{include file='shop_goods/formstyle'}
|
||||
|
||||
<form onsubmit="return false;" id="GoodsForm" data-auto="true" method="post" class='layui-form layui-card' autocomplete="off">
|
||||
|
||||
<div class="layui-card-body think-box-shadow padding-left-40">
|
||||
<div class="layui-card-body padding-40">
|
||||
|
||||
<label class="layui-form-item block relative">
|
||||
<span class="color-green font-w7 label-required-prev">所属分类</span>
|
||||
@ -22,7 +22,7 @@
|
||||
|
||||
<label class="layui-form-item block relative">
|
||||
<span class="color-green font-w7">商品名称</span>
|
||||
<input name="title" required class="layui-input" placeholder="请输入商品名称" value="{$vo.title|default=''}">
|
||||
<input name="name" required class="layui-input" placeholder="请输入商品名称" value="{$vo.name|default=''}">
|
||||
</label>
|
||||
|
||||
<div class="layui-form-item">
|
||||
@ -46,20 +46,10 @@
|
||||
</thead>
|
||||
</table>
|
||||
</div>
|
||||
<div class="layui-clear goods-item-box">
|
||||
|
||||
<fieldset>
|
||||
<legend class="layui-bg-gray">商品限购设置</legend>
|
||||
<label class="layui-form-item">
|
||||
<input class="layui-input" data-blur-number="0" name="number_limit" value="{$vo.number_limit|default=0}" placeholder="请输入商品限购数量">
|
||||
<span class="help-block">限制每人可购买数量(为0时不限制)!</span>
|
||||
</label>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<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'}[isAddMode&&specs.length>0]">
|
||||
<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>
|
||||
@ -78,7 +68,7 @@
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<a ng-if="isAddMode&&specs.length<3" class="layui-btn layui-btn-sm layui-btn-primary" ng-click="addSpecRow(specs)">增加分组</a>
|
||||
<a ng-if="mode==='add'&&specs.length<3" class="layui-btn layui-btn-sm layui-btn-primary" ng-click="addSpecRow(specs)">增加分组</a>
|
||||
<table class="layui-table margin-top-10">
|
||||
<thead>
|
||||
<tr>
|
||||
@ -106,7 +96,7 @@
|
||||
</td>
|
||||
<td class="padding-0">
|
||||
<label class="padding-0 margin-0">
|
||||
<input ng-blur="rows[0].market=setValue(rows[0].key,'selling',$event.target.value,'(parseFloat(_)||0).toFixed(2)')" class="layui-input border-0 padding-left-0 text-center" ng-model="rows[0].selling">
|
||||
<input ng-blur="rows[0].selling=setValue(rows[0].key,'selling',$event.target.value,'(parseFloat(_)||0).toFixed(2)')" class="layui-input border-0 padding-left-0 text-center" ng-model="rows[0].selling">
|
||||
</label>
|
||||
</td>
|
||||
<td class="padding-0">
|
||||
@ -126,8 +116,8 @@
|
||||
</tbody>
|
||||
</table>
|
||||
<p class="color-desc">请注意商品SKU与商品条码尽量不要重复,也不能产生订单后再修改!</p>
|
||||
<textarea class="layui-textarea layui-hide" name="specs_data">{{specs}}</textarea>
|
||||
<textarea class="layui-textarea layui-hide" name="items_data">{{items}}</textarea>
|
||||
<textarea class="layui-textarea layui-hide" name="data_specs">{{specs}}</textarea>
|
||||
<textarea class="layui-textarea layui-hide" name="data_items">{{items}}</textarea>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item block">
|
||||
@ -146,8 +136,8 @@
|
||||
{/block}
|
||||
|
||||
{block name='script'}
|
||||
<textarea class="layui-hide" id="goods-specs">{$vo.specs|raw|default=''}</textarea>
|
||||
<textarea class="layui-hide" id="goods-items">{$vo.items|json_encode|raw|default=''}</textarea>
|
||||
<textarea class="layui-hide" id="goodsSpecs">{$vo.data_specs|raw|default=''}</textarea>
|
||||
<textarea class="layui-hide" id="goodsItems">{$vo.data_items|raw|default=''}</textarea>
|
||||
<script>
|
||||
/*! 表单初始化 */
|
||||
window.form.render();
|
||||
@ -159,9 +149,9 @@
|
||||
angular.bootstrap(document.getElementById(app.name), [app.name]);
|
||||
|
||||
function callback($rootScope) {
|
||||
$rootScope.isAddMode = parseInt('{$isAddMode|default=0}');
|
||||
$rootScope.items = JSON.parse(angular.element('#goods-items').val() || '[]') || {};
|
||||
$rootScope.specs = JSON.parse(angular.element('#goods-specs').val() || '[{"name":"默认分组","list":[{"name":"默认规格","check":true}]}]');
|
||||
$rootScope.mode = '{$mode|default="add"}', $rootScope.navas = [];
|
||||
$rootScope.items = angular.fromJson(angular.element('#goodsItems').val() || '[]') || {};
|
||||
$rootScope.specs = angular.fromJson(angular.element('#goodsSpecs').val() || '[{"name":"默认分组","list":[{"name":"默认规格","check":true}]}]');
|
||||
// 批量设置数值
|
||||
$rootScope.batchSet = function (type, fixed) {
|
||||
layer.prompt({title: '请输入数值', formType: 0}, function (value, index) {
|
||||
@ -180,34 +170,31 @@
|
||||
history.back(), $.msg.close(index);
|
||||
});
|
||||
};
|
||||
// 设置默认值
|
||||
$rootScope.setValue = function (key, type, value, call) {
|
||||
$rootScope.items[key] || ($rootScope.items[key] = {});
|
||||
$rootScope.items[key] = $rootScope.items[key] || {};
|
||||
return $rootScope.items[key][type] = eval(call.replace('_', "'" + value + "'"));
|
||||
};
|
||||
// 读取默认值
|
||||
$rootScope.getValue = function (key, name, value) {
|
||||
var item = ($rootScope.items[key] || {key: {}});
|
||||
var item = $rootScope.items[key] || {};
|
||||
return typeof item[name] !== 'undefined' ? item[name] : value;
|
||||
};
|
||||
// 去除空白字符
|
||||
$rootScope.trimSpace = function (value) {
|
||||
return (value + '').replace(/\s*/ig, '');
|
||||
};
|
||||
// 生成交叉表格数据
|
||||
$rootScope.items = [], $rootScope.navas = [];
|
||||
// 当前商品规格发生变化时重新计算规格列表
|
||||
$rootScope.$watch('specs', function () {
|
||||
var specs = $rootScope.specs, data = [], navs = [], table = [[]];
|
||||
// 过滤无效记录
|
||||
for (var i in specs) {
|
||||
var data = [], navs = [], table = [[]];
|
||||
$rootScope.specs.forEach(function (spec) {
|
||||
var tmp = [];
|
||||
for (var j in specs[i].list) if (specs[i].list[j].check && specs[i].list[j].name.length > 0) {
|
||||
specs[i].list[j].span = 1, specs[i].list[j].show = true, specs[i].list[j].group = specs[i].name;
|
||||
tmp.push(specs[i].list[j]);
|
||||
}
|
||||
data.push(tmp), navs.push(specs[i].name);
|
||||
}
|
||||
spec.list.forEach(function (item) {
|
||||
if (item.check && item.name.length > 0) {
|
||||
item.span = 1, item.show = true, item.group = spec.name;
|
||||
tmp.push(item);
|
||||
}
|
||||
});
|
||||
data.push(tmp), navs.push(spec.name);
|
||||
});
|
||||
$rootScope.navas = navs;
|
||||
// 表格交叉
|
||||
data.forEach(function (line) {
|
||||
@ -228,7 +215,7 @@
|
||||
}), rows.every(function (item) {
|
||||
item.key = keys.join(';;');
|
||||
item.sku = $rootScope.getValue(item.key, 'sku', 'S' + Date.now() + (Math.random() * 100).toFixed());
|
||||
item.status = $rootScope.getValue(item.key, 'status', true);
|
||||
item.status = !!$rootScope.getValue(item.key, 'status', true);
|
||||
item.market = $rootScope.getValue(item.key, 'market', '0.00');
|
||||
item.selling = $rootScope.getValue(item.key, 'selling', '0.00');
|
||||
item.virtual = $rootScope.getValue(item.key, 'virtual', '0');
|
||||
@ -249,28 +236,30 @@
|
||||
};
|
||||
// 下移整行规格分组
|
||||
$rootScope.dnSpecRow = function (data, $index) {
|
||||
var tmp = [], cur = data[$index];
|
||||
var temp = [], self = data[$index];
|
||||
if ($index > data.length - 2) return false;
|
||||
for (var i in data) {
|
||||
(parseInt(i) !== parseInt($index)) && tmp.push(data[i]);
|
||||
(parseInt(i) === parseInt($index) + 1) && tmp.push(cur);
|
||||
}
|
||||
return $rootScope.specs = tmp;
|
||||
data.forEach(function (item, index) {
|
||||
if (parseInt(index) !== parseInt($index)) temp.push(item);
|
||||
if (parseInt(index) === parseInt($index) + 1) temp.push(self);
|
||||
});
|
||||
return $rootScope.specs = temp;
|
||||
};
|
||||
// 上移整行规格分组
|
||||
$rootScope.upSpecRow = function (data, $index) {
|
||||
var tmp = [], cur = data[$index];
|
||||
var temp = [], self = data[$index];
|
||||
if ($index < 1) return false;
|
||||
for (var i in data) {
|
||||
(parseInt(i) === parseInt($index) - 1) && tmp.push(cur);
|
||||
(parseInt(i) !== parseInt($index)) && tmp.push(data[i]);
|
||||
}
|
||||
return $rootScope.specs = tmp;
|
||||
data.forEach(function (item, index) {
|
||||
if (parseInt(index) === parseInt($index) - 1) temp.push(self);
|
||||
if (parseInt(index) !== parseInt($index)) temp.push(item);
|
||||
});
|
||||
return $rootScope.specs = temp;
|
||||
};
|
||||
// 移除整行规格分组
|
||||
$rootScope.delSpecRow = function (data, $index) {
|
||||
var tmp = [];
|
||||
for (var i in data) if (parseInt(i) !== parseInt($index)) tmp.push(data[i]);
|
||||
data.forEach(function (item, index) {
|
||||
if (parseInt(index) !== parseInt($index)) tmp.push(item);
|
||||
});
|
||||
return $rootScope.specs = tmp;
|
||||
};
|
||||
// 增加分组的属性
|
||||
@ -280,7 +269,9 @@
|
||||
// 移除分组的属性
|
||||
$rootScope.delSpecVal = function (data, $index) {
|
||||
var temp = [];
|
||||
for (var i in data) if (parseInt(i) !== parseInt($index)) temp.push(data[i]);
|
||||
data.forEach(function (item, index) {
|
||||
if (parseInt(index) !== parseInt($index)) temp.push(item);
|
||||
});
|
||||
return temp;
|
||||
};
|
||||
}
|
||||
|
@ -1,25 +1,22 @@
|
||||
{extend name="../../admin/view/main"}
|
||||
|
||||
{block name="button"}
|
||||
|
||||
{if auth("add")}
|
||||
<button data-open='{:url("add")}' data-title="添加商品" class='layui-btn layui-btn-sm layui-btn-primary'>添加商品</button>
|
||||
{/if}
|
||||
|
||||
<!--{if auth("add")}-->
|
||||
<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="id#{key};is_deleted#1" data-csrf="{:systoken('state')}" class='layui-btn layui-btn-sm layui-btn-primary'>删除商品</button>
|
||||
<button data-action='{:url("state")}' 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="id#{key};is_deleted#0" data-csrf="{:systoken('state')}" data-confirm="确定要恢复这些数据吗??" class='layui-btn layui-btn-sm layui-btn-primary'>恢复商品</button>
|
||||
<button data-action='{:url("state")}' data-rule="code#{key};deleted#0" data-confirm="确定要恢复这些数据吗??" class='layui-btn layui-btn-sm layui-btn-primary'>恢复商品</button>
|
||||
<!--{/if}-->
|
||||
{/if}
|
||||
|
||||
{/block}
|
||||
|
||||
{block name="content"}
|
||||
<div class="layui-tab layui-tab-card think-bg-white">
|
||||
<div class="layui-tab layui-tab-card think-bg-white table-block">
|
||||
<ul class="layui-tab-title">
|
||||
{foreach ['index'=>'商品管理','recycle'=>'回 收 站'] as $k=>$v}
|
||||
{if $type eq $k}
|
||||
@ -29,7 +26,7 @@
|
||||
{/if}
|
||||
{/foreach}
|
||||
</ul>
|
||||
<div class="layui-tab-content think-box-shadow">
|
||||
<div class="layui-tab-content think-box-shadow table-block">
|
||||
{include file='shop_goods/index_search'}
|
||||
<table class="layui-table margin-top-10" lay-skin="line">
|
||||
{notempty name='list'}
|
||||
@ -52,7 +49,7 @@
|
||||
{foreach $list as $key=>$vo}
|
||||
<tr data-dbclick>
|
||||
<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.code}' type='checkbox'></label>
|
||||
</td>
|
||||
<td class='list-table-sort-td'>
|
||||
<label><input data-action-blur="{:request()->url()}" data-value="id#{$vo.id};action#sort;sort#{value}" data-loading="false" value="{$vo.sort}" class="list-sort-input"></label>
|
||||
@ -62,14 +59,7 @@
|
||||
<img data-tips-image style="width:auto;height:40px" src="{$vo.cover|default=''}" class="margin-right-5" alt="img">
|
||||
{/notempty}
|
||||
<div class="inline-block text-top sub-span-blue">
|
||||
商品编号:<span>{$vo.code|default='--'}</span>
|
||||
{if auth("state") and $vo.hot_state eq 1}
|
||||
<a class="layui-badge-rim color-red margin-left-5" data-action="{:url('state')}" data-value="id#{$vo.id};hot_state#0">热推</a>
|
||||
{elseif auth('state')}
|
||||
<a class="layui-badge-rim color-desc margin-left-5" data-action="{:url('state')}" data-value="id#{$vo.id};hot_state#1">热推</a>
|
||||
{/if}
|
||||
<a class="layui-badge-rim color-desc margin-left-5" data-copy="/pages/goods/detail?g={$vo.id}">复制链接</a>
|
||||
<br>
|
||||
商品编号:<span>{$vo.code|default='--'}</span><br>
|
||||
商品名称:<span>{$vo.name|default='--'}</span><br>
|
||||
</div>
|
||||
</td>
|
||||
@ -79,51 +69,41 @@
|
||||
</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>
|
||||
剩余库存:<span class="color-blue">{$vo.number_stock-$vo.number_sales} 件 ( 已售 {$vo.number_sales} 件 )</span><br>
|
||||
剩余库存:<span class="color-blue">{$vo.stock_total-$vo.stock_sales} 件 ( 已售 {$vo.stock_sales} 件 )</span><br>
|
||||
</td>
|
||||
<td class='nowrap'>
|
||||
|
||||
{if auth("edit")}
|
||||
<a data-dbclick class="layui-btn layui-btn-sm" data-open='{:url("edit")}?id={$vo.id}'>编 辑</a>
|
||||
{else}
|
||||
<!--{if auth("edit")}-->
|
||||
<a data-dbclick class="layui-btn layui-btn-sm" data-open='{:url("edit")}?code={$vo.code}'>编 辑</a>
|
||||
<!--{else}-->
|
||||
<a data-tips-text="您没有编辑商品的权限哦!" class="layui-btn layui-btn-sm layui-btn-primary layui-disabled">编 辑</a>
|
||||
{/if}
|
||||
|
||||
<!--{/if}-->
|
||||
{if $type eq 'index'}
|
||||
|
||||
{if isset($vo.status) and $vo.status eq 1}
|
||||
<!--{if auth("forbid")}-->
|
||||
<a class="layui-btn layui-btn-sm layui-btn-warm" data-action="{:url('forbid')}" data-value="id#{$vo.id};status#0">下 架</a>
|
||||
<a class="layui-btn layui-btn-sm layui-btn-warm" data-action="{:url('forbid')}" data-value="code#{$vo.code};status#0">下 架</a>
|
||||
<!--{else}-->
|
||||
<a data-tips-text="您没有下架商品的权限哦!" class="layui-btn layui-btn-sm layui-btn-primary layui-disabled">下 架</a>
|
||||
<!--{/if}-->
|
||||
{else}
|
||||
<!--{if auth("resume")}-->
|
||||
<a class="layui-btn layui-btn-sm layui-btn-warm" data-action="{:url('resume')}" data-value="id#{$vo.id};status#1">上 架</a>
|
||||
<a class="layui-btn layui-btn-sm layui-btn-warm" data-action="{:url('resume')}" data-value="code#{$vo.code};status#1">上 架</a>
|
||||
<!--{else}-->
|
||||
<a data-tips-text="您没有上架商品的权限哦!" class="layui-btn layui-btn-sm layui-btn-primary layui-disabled">上 架</a>
|
||||
<!--{/if}-->
|
||||
{/if}
|
||||
|
||||
{if auth("stock")}
|
||||
<a class="layui-btn layui-btn-sm layui-btn-normal" data-title="商品入库" data-modal='{:url("stock")}?id={$vo.id}'>入 库</a>
|
||||
{else}
|
||||
<!--{if auth("stock")}-->
|
||||
<a class="layui-btn layui-btn-sm layui-btn-normal" data-title="商品入库" data-modal='{:url("stock")}?code={$vo.code}'>入 库</a>
|
||||
<!--{else}-->
|
||||
<a data-tips-text="您没有商品入库的权限哦!" class="layui-btn layui-btn-sm layui-btn-primary layui-disabled">入 库</a>
|
||||
{/if}
|
||||
|
||||
|
||||
{if auth("state")}
|
||||
<a class="layui-btn layui-btn-sm layui-btn-danger" data-confirm="确定要移入回收站吗?" data-action="{:url('state')}" data-value="id#{$vo.id};is_deleted#1" data-csrf="{:systoken('state')}">删 除</a>
|
||||
{/if}
|
||||
|
||||
<!--{/if}-->
|
||||
<!--{if auth("remove")}-->
|
||||
<a class="layui-btn layui-btn-sm layui-btn-danger" data-confirm="确定要移入回收站吗?" data-action="{:url('remove')}" data-value="code#{$vo.code};deleted#1">删 除</a>
|
||||
<!--{/if}-->
|
||||
{else}
|
||||
|
||||
{if auth("state")}
|
||||
<a class="layui-btn layui-btn-sm layui-btn-normal" data-action="{:url('state')}" data-value="id#{$vo.id};is_deleted#0" data-csrf="{:systoken('state')}">恢 复</a>
|
||||
<!--{if auth("remove")}-->
|
||||
<a class="layui-btn layui-btn-sm layui-btn-normal" data-action="{:url('remove')}" data-value="code#{$vo.code};deleted#0">恢 复</a>
|
||||
<!--{/if}-->
|
||||
{/if}
|
||||
|
||||
{/if}
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
|
Loading…
x
Reference in New Issue
Block a user