feat: 实现基本的详情生成

This commit is contained in:
augushong
2026-01-05 22:59:12 +08:00
parent 528ff69897
commit 3fdea8b85b
20 changed files with 1430 additions and 15 deletions

View File

@@ -0,0 +1,104 @@
<?php
namespace app\admin\controller\test;
use app\common\controller\AdminController;
use app\admin\service\annotation\ControllerAnnotation;
use app\admin\service\annotation\NodeAnotation;
use think\App;
/**
* @ControllerAnnotation(title="test_goods")
*/
class Goods extends AdminController
{
/**
* 是否关联查询.
* @var bool
*/
protected $relationSearch = true;
use \app\admin\traits\Curd;
public function __construct(App $app)
{
parent::__construct($app);
$this->model = new \app\admin\model\TestGoods();
$this->assign('select_list_status', $this->model::SELECT_LIST_STATUS, true);
$this->assign('select_list_time_status', $this->model::SELECT_LIST_TIME_STATUS, true);
$this->assign('select_list_is_recommend', $this->model::SELECT_LIST_IS_RECOMMEND, true);
$this->assign('select_list_shop_type', $this->model::SELECT_LIST_SHOP_TYPE, true);
}
/**
* @NodeAnotation(title="列表")
*/
public function index()
{
if ($this->request->isAjax()) {
if (input('selectFields')) {
return $this->selectList();
}
list($page, $limit, $where) = $this->buildTableParames();
$count = $this->model
->withJoin(['mallCate'], 'LEFT')
->where($where)
->count();
$list = $this->model
->withJoin(['mallCate'], 'LEFT')
->where($where)
->page($page, $limit)
->order($this->sort)
->select();
$data = [
'code' => 0,
'msg' => '',
'count' => $count,
'data' => $list,
];
return json($data);
}
return $this->fetch();
}
/**
* @NodeAnotation(title="导出")
*/
public function export()
{
list($page, $limit, $where) = $this->buildTableParames();
$this->model = $this->model->withJoin(['mallCate'], 'LEFT');
$fields = $this->request->param('fields', '{}', null);
$image_fields = $this->request->param('image_fields', '{}', null);
$select_fields = $this->request->param('select_fields', '{}', null);
$date_fields = $this->request->param('date_fields', '{}', null);
$fields = json_decode($fields, true);
$image_fields = json_decode($image_fields, true);
$select_fields = json_decode($select_fields, true);
$date_fields = json_decode($date_fields, true);
$content = \app\common\tools\ExportTools::excel($this->model, $where, $fields, $image_fields, $select_fields, $date_fields);
$export_file_name = $this->exportFileName;
if (empty($export_file_name)) {
$export_file_name = $this->model->getName();
}
return download($content, $export_file_name . date('YmdHis') . '.xlsx', true);

View File

@@ -0,0 +1,60 @@
<?php
namespace app\admin\model;
use app\common\model\TimeModel;
/**
* @property int $id id
* @property \app\admin\model\MallCate $mallCate 分类ID
* @property string $title 商品名称
* @property string $logo 商品logo
* @property string $images 商品图片
* @property string $describe 商品描述
* @property int $total_stock 总库存
* @property int $sort 排序
* @property int $status 状态 0:正常,1:禁用
* @property string $cert_file 合格证
* @property string $verfiy_file 检测报告
* @property string $remark 备注说明
* @property int $create_time create_time
* @property string $publish_time 发布日期
* @property string $sale_time 售卖日期
* @property string $intro 简介
* @property int $time_status 秒杀状态 0:未参加,1:已开始,3:已结束
* @property int $is_recommend 是否推荐 0:不推荐,1:推荐
* @property string $shop_type 商品类型 taobao:淘宝,jd:京东
* @property string $tag 商品标签
* @property string $tag_backup 商品标签(单选)
* @property string $from_area 产地
* @property string $store_city 仓库
* @property string $tag_input 商品标签 (输入)
* @property string $uid 唯一id
* @property float|double $price 价格
* @property string $detail 详情
*/
class TestGoods extends TimeModel
{
protected $name = "test_goods";
protected $deleteTime = "delete_time";
public const SELECT_LIST_STATUS = ['0'=>'正常','1'=>'禁用',];
public const SELECT_LIST_TIME_STATUS = ['0'=>'未参加','1'=>'已开始','3'=>'已结束',];
public const SELECT_LIST_IS_RECOMMEND = ['0'=>'不推荐','1'=>'推荐',];
public const SELECT_LIST_SHOP_TYPE = ['taobao'=>'淘宝','jd'=>'京东',];
public function mallCate()
{
return $this->belongsTo('\app\admin\model\MallCate', 'cate_id', 'id');
}
}

View File

@@ -0,0 +1,10 @@
var init = {
tableElem: '#currentTable',
tableRenderId: 'currentTableRenderId',
indexUrl: 'test.goods/index',
addUrl: 'test.goods/add' + location.search,
editUrl: 'test.goods/edit',
deleteUrl: 'test.goods/delete',
exportUrl: 'test.goods/export',
modifyUrl: 'test.goods/modify',
};

View File

@@ -0,0 +1,200 @@
<div class="layuimini-container">
<form id="app-form" class="layui-form layuimini-form">
<div class="layui-form-item">
<label class="layui-form-label">分类ID</label>
<div class="layui-input-block">
<div data-toggle="table-data" data-index="{:__url('mall.cate/index')}" data-select-type="radio" data-select-value="{$Request.param.cate_id|default='0'}" data-value-field="id" data-name="cate_id" data-field-name="title" data-required="1">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品名称</label>
<div class="layui-input-block">
<input type="text" name="title" class="layui-input" lay-verify="required" placeholder="请输入商品名称" value="{$Request.param.title|default=''}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品logo</label>
<div class="layui-input-block layuimini-upload">
<input name="logo" class="layui-input layui-col-xs6" lay-verify="required" placeholder="请上传商品logo" value="{$Request.param.logo|default=''}">
<div class="layuimini-upload-btn">
<span><a class="layui-btn" data-upload="logo" data-upload-number="one" data-upload-exts="*image" data-upload-icon="image"><i class="fa fa-upload"></i> 上传</a></span>
<span><a class="layui-btn layui-btn-normal" id="select_logo" data-upload-select="logo" data-upload-number="one" data-upload-mimetype="image/*"><i class="fa fa-list"></i> 选择</a></span>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品图片</label>
<div class="layui-input-block layuimini-upload">
<input name="images" class="layui-input layui-col-xs6" lay-verify="required" placeholder="请上传商品图片" value="{$Request.param.images|default=''}">
<div class="layuimini-upload-btn">
<span><a class="layui-btn" data-upload="images" data-upload-number="more" data-upload-exts="*image" data-upload-icon="image" data-upload-sign="|"><i class="fa fa-upload"></i> 上传</a></span>
<span><a class="layui-btn layui-btn-normal" id="select_images" data-upload-select="images" data-upload-number="more" data-upload-mimetype="image/*" data-upload-sign="|"><i class="fa fa-list"></i> 选择</a></span>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品描述</label>
<div class="layui-input-block">
<textarea name="describe" rows="20" class="layui-textarea editor" placeholder="请输入商品描述">{$Request.param.describe|default=''}</textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">总库存</label>
<div class="layui-input-block">
<input type="text" name="total_stock" class="layui-input" lay-verify="required" placeholder="请输入总库存" value="{$Request.param.total_stock|default='0'}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">排序</label>
<div class="layui-input-block">
<input type="text" name="sort" class="layui-input" lay-verify="required" placeholder="请输入排序" value="{$Request.param.sort|default='0'}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">状态</label>
<div class="layui-input-block">
{foreach $select_list_status as $k=>$v}
<input type="radio" name="status" value="{$k}" title="{$v}" {in name="k" value="$Request.param.status"}checked=""{/in}>
{/foreach}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">合格证</label>
<div class="layui-input-block layuimini-upload">
<input name="cert_file" class="layui-input layui-col-xs6" lay-verify="required" placeholder="请上传合格证" value="{$Request.param.cert_file|default=''}">
<div class="layuimini-upload-btn">
<span><a class="layui-btn" data-upload="cert_file" data-upload-number="one" data-upload-exts="zip" data-upload-icon="file" data-upload-disable-preview="0"><i class="fa fa-upload"></i> 上传</a></span>
<span><a class="layui-btn layui-btn-normal" id="select_cert_file" data-upload-select="cert_file" data-upload-number="one" data-upload-mimetype="*"><i class="fa fa-list"></i> 选择</a></span>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">检测报告</label>
<div class="layui-input-block layuimini-upload">
<input name="verfiy_file" class="layui-input layui-col-xs6" lay-verify="required" placeholder="请上传检测报告" value="{$Request.param.verfiy_file|default=''}">
<div class="layuimini-upload-btn">
<span><a class="layui-btn" data-upload="verfiy_file" data-upload-number="more" data-upload-exts="zip" data-upload-icon="file" data-upload-disable-preview="0"><i class="fa fa-upload" data-upload-sign="|" ></i> 上传</a></span>
<span><a class="layui-btn layui-btn-normal" id="select_verfiy_file" data-upload-select="verfiy_file" data-upload-number="more" data-upload-mimetype="*" data-upload-sign="|"><i class="fa fa-list"></i> 选择</a></span>
</div>
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">备注说明</label>
<div class="layui-input-block">
<textarea name="remark" class="layui-textarea" lay-verify="required" placeholder="请输入备注说明">{$Request.param.remark|default=''}</textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">发布日期</label>
<div class="layui-input-block">
<input type="text" name="publish_time" data-date="" data-date-type="date" class="layui-input" lay-verify="required" placeholder="请输入发布日期" value="{$Request.param.publish_time|default=''}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">售卖日期</label>
<div class="layui-input-block">
<input type="text" name="sale_time" data-date="" data-date-type="datetime" class="layui-input" lay-verify="required" placeholder="请输入售卖日期" value="{$Request.param.sale_time|default=''}">
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">简介</label>
<div class="layui-input-block">
<textarea name="intro" class="layui-textarea" lay-verify="required" placeholder="请输入简介">{$Request.param.intro|default=''}</textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">秒杀状态</label>
<div class="layui-input-block">
<select name="time_status" lay-verify="required">
<option value=''></option>
{foreach $select_list_time_status as $k=>$v}
<option value='{$k}' {in name="k" value="$Request.param.time_status"}selected=""{/in}>{$v}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">是否推荐</label>
<div class="layui-input-block">
{foreach $select_list_is_recommend as $k=>$v}
<input type="radio" name="is_recommend" value="{$k}" title="{$v}" {in name="k" value="$Request.param.is_recommend"}checked=""{/in}>
{/foreach}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品类型</label>
<div class="layui-input-block">
{foreach $select_list_shop_type as $k=>$v}
<input type="checkbox" name="shop_type[]" value="{$k}" lay-skin="primary" title="{$v}" {in name="k" value="$Request.param.shop_type"}checked=""{/in}>
{/foreach}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品标签</label>
<div class="layui-input-block">
<div data-toggle="table-data" data-index="{:__url('mall.tag/index')}" data-select-type="checkbox" data-select-value="{$Request.param.tag|default=''}" data-value-field="id" data-name="tag" data-field-name="title" data-required="1">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品标签(单选)</label>
<div class="layui-input-block">
<div data-toggle="table-data" data-index="{:__url('mall.tag/index')}" data-select-type="radio" data-select-value="{$Request.param.tag_backup|default=''}" data-value-field="id" data-name="tag_backup" data-field-name="title" data-required="">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">产地</label>
<div class="layui-input-block">
<input class="layui-input" name="from_area" data-toggle="city-picker" lay-verify="required" value="{$Request.param.from_area|default=''}" type="text" data-level="" readonly data-field-code="0" data-field-name-province="0" >
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">仓库</label>
<div class="layui-input-block">
<input class="layui-input" name="store_city" data-toggle="city-picker" lay-verify="required" value="{$Request.param.store_city|default='山东省/临沂市'}" type="text" data-level="city" readonly >
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品标签 (输入)</label>
<div class="layui-input-block">
<div data-toggle="tag-input" data-name="tag_input" data-value="{$Request.param.tag_input|default=''}" data-required="1"></div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">唯一id</label>
<div class="layui-input-block">
<input type="text" name="uid" class="layui-input" lay-verify="required" placeholder="请输入唯一id" value="{$Request.param.uid|default=''}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">价格</label>
<div class="layui-input-block">
<input type="text" name="price" class="layui-input" placeholder="请输入价格" value="{$Request.param.price|default=''}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">详情</label>
<div class="layui-input-block">
<input type="text" name="detail" class="layui-input" placeholder="请输入详情" value="{$Request.param.detail|default=''}">
</div>
</div>
<div class="hr-line"></div>
<div class="layui-form-item text-center">
{notempty name='$Request.param.backTagId'}
<div class="layui-btn layui-btn-sm page-back-button" layuimini-content-href="{$Request.param.backTagId}" data-back="1">返回</div>
{/notempty}
<button type="submit" class="layui-btn layui-btn-normal layui-btn-sm" lay-submit>确认</button>
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">重置</button>
</div>
</form>
</div>

View File

@@ -0,0 +1,3 @@
$(function(){
ua.listen();
})

View File

@@ -0,0 +1,200 @@
<div class="layuimini-container">
<form id="app-form" class="layui-form layuimini-form">
<div class="layui-form-item">
<label class="layui-form-label">分类ID</label>
<div class="layui-input-block">
<div data-toggle="table-data" data-index="{:__url('mall.cate/index')}" data-select-type="radio" data-select-value="{$row.cate_id|default=''}" data-value-field="id" data-name="cate_id" data-field-name="title" data-required="1">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品名称</label>
<div class="layui-input-block">
<input type="text" name="title" class="layui-input" lay-verify="required" placeholder="请输入商品名称" value="{$row.title|default=''}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品logo</label>
<div class="layui-input-block layuimini-upload">
<input name="logo" class="layui-input layui-col-xs6" lay-verify="required" placeholder="请上传商品logo" value="{$row.logo|default=''}">
<div class="layuimini-upload-btn">
<span><a class="layui-btn" data-upload="logo" data-upload-number="one" data-upload-exts="*image" data-upload-icon="image"><i class="fa fa-upload"></i> 上传</a></span>
<span><a class="layui-btn layui-btn-normal" id="select_logo" data-upload-select="logo" data-upload-number="one" data-upload-mimetype="image/*"><i class="fa fa-list"></i> 选择</a></span>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品图片</label>
<div class="layui-input-block layuimini-upload">
<input name="images" class="layui-input layui-col-xs6" lay-verify="required" placeholder="请上传商品图片" value="{$row.images|default=''}">
<div class="layuimini-upload-btn">
<span><a class="layui-btn" data-upload="images" data-upload-number="more" data-upload-exts="*image" data-upload-icon="image" data-upload-sign=""><i class="fa fa-upload"></i> 上传</a></span>
<span><a class="layui-btn layui-btn-normal" id="select_images" data-upload-select="images" data-upload-number="more" data-upload-mimetype="image/*" data-upload-sign=""><i class="fa fa-list"></i> 选择</a></span>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品描述</label>
<div class="layui-input-block">
<textarea name="describe" rows="20" class="layui-textarea editor" placeholder="请输入商品描述">{$row.describe|raw|default=''}</textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">总库存</label>
<div class="layui-input-block">
<input type="text" name="total_stock" class="layui-input" lay-verify="required" placeholder="请输入总库存" value="{$row.total_stock|default=''}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">排序</label>
<div class="layui-input-block">
<input type="text" name="sort" class="layui-input" lay-verify="required" placeholder="请输入排序" value="{$row.sort|default=''}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">状态</label>
<div class="layui-input-block">
{foreach $select_list_status as $k=>$v}
<input type="radio" name="status" value="{$k}" title="{$v}" {in name="k" value="$row.status"}checked=""{/in}>
{/foreach}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">合格证</label>
<div class="layui-input-block layuimini-upload">
<input name="cert_file" class="layui-input layui-col-xs6" lay-verify="required" placeholder="请上传合格证" value="{$row.cert_file|default=''}">
<div class="layuimini-upload-btn">
<span><a class="layui-btn" data-upload="cert_file" data-upload-number="one" data-upload-exts="zip" data-upload-icon="file" data-upload-disable-preview="0"><i class="fa fa-upload"></i> 上传</a></span>
<span><a class="layui-btn layui-btn-normal" id="select_cert_file" data-upload-select="cert_file" data-upload-number="one" data-upload-mimetype="*"><i class="fa fa-list"></i> 选择</a></span>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">检测报告</label>
<div class="layui-input-block layuimini-upload">
<input name="verfiy_file" class="layui-input layui-col-xs6" lay-verify="required" placeholder="请上传检测报告" value="{$row.verfiy_file|default=''}">
<div class="layuimini-upload-btn">
<span><a class="layui-btn" data-upload="verfiy_file" data-upload-number="more" data-upload-exts="zip" data-upload-icon="file" data-upload-disable-preview="0"><i class="fa fa-upload" data-upload-sign="" ></i> 上传</a></span>
<span><a class="layui-btn layui-btn-normal" id="select_verfiy_file" data-upload-select="verfiy_file" data-upload-number="more" data-upload-mimetype="*" data-upload-sign=""><i class="fa fa-list"></i> 选择</a></span>
</div>
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">备注说明</label>
<div class="layui-input-block">
<textarea name="remark" class="layui-textarea" lay-verify="required" placeholder="请输入备注说明">{$row.remark|raw|default=''}</textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">发布日期</label>
<div class="layui-input-block">
<input type="text" name="publish_time" data-date="" data-date-type="date" class="layui-input" lay-verify="required" placeholder="请输入发布日期" value="{$row.publish_time|default=''}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">售卖日期</label>
<div class="layui-input-block">
<input type="text" name="sale_time" data-date="" data-date-type="datetime" class="layui-input" lay-verify="required" placeholder="请输入售卖日期" value="{$row.sale_time|default=''}">
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">简介</label>
<div class="layui-input-block">
<textarea name="intro" class="layui-textarea" lay-verify="required" placeholder="请输入简介">{$row.intro|raw|default=''}</textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">秒杀状态</label>
<div class="layui-input-block">
<select name="time_status" lay-verify="required">
<option value=''></option>
{foreach $select_list_time_status as $k=>$v}
<option value='{$k}' {in name="k" value="$row.time_status"}selected=""{/in}>{$v}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">是否推荐</label>
<div class="layui-input-block">
{foreach $select_list_is_recommend as $k=>$v}
<input type="radio" name="is_recommend" value="{$k}" title="{$v}" {in name="k" value="$row.is_recommend"}checked=""{/in}>
{/foreach}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品类型</label>
<div class="layui-input-block">
{foreach $select_list_shop_type as $k=>$v}
<input type="checkbox" name="shop_type[]" value="{$k}" lay-skin="primary" title="{$v}" {in name="k" value="$row.shop_type"}checked=""{/in}>
{/foreach}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品标签</label>
<div class="layui-input-block">
<div data-toggle="table-data" data-index="{:__url('mall.tag/index')}" data-select-type="checkbox" data-select-value="{$row.tag|default=''}" data-value-field="id" data-name="tag" data-field-name="title" data-required="1">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品标签(单选)</label>
<div class="layui-input-block">
<div data-toggle="table-data" data-index="{:__url('mall.tag/index')}" data-select-type="radio" data-select-value="{$row.tag_backup|default=''}" data-value-field="id" data-name="tag_backup" data-field-name="title" data-required="">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">产地</label>
<div class="layui-input-block">
<input class="layui-input" name="from_area" data-toggle="city-picker" lay-verify="required" value="{$row.from_area|default=''}" type="text" data-level="" readonly data-field-code="0" data-field-name-province="0" >
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">仓库</label>
<div class="layui-input-block">
<input class="layui-input" name="store_city" data-toggle="city-picker" lay-verify="required" value="{$row.store_city|default=''}" type="text" data-level="city" readonly >
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品标签 (输入)</label>
<div class="layui-input-block">
<div data-toggle="tag-input" data-name="tag_input" data-value="{$row.tag_input|default=''}" data-required="1"></div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">唯一id</label>
<div class="layui-input-block">
<input type="text" name="uid" class="layui-input" lay-verify="required" placeholder="请输入唯一id" value="{$row.uid|default=''}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">价格</label>
<div class="layui-input-block">
<input type="text" name="price" class="layui-input" placeholder="请输入价格" value="{$row.price|default=''}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">详情</label>
<div class="layui-input-block">
<input type="text" name="detail" class="layui-input" placeholder="请输入详情" value="{$row.detail|default=''}">
</div>
</div>
<div class="hr-line"></div>
<div class="layui-form-item text-center">
{notempty name='$Request.param.backTagId'}
<div class="layui-btn layui-btn-sm page-back-button" layuimini-content-href="{$Request.param.backTagId}" data-back="1">返回</div>
{/notempty}
<button type="submit" class="layui-btn layui-btn-normal layui-btn-sm" lay-submit>确认</button>
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">重置</button>
</div>
</form>
</div>

View File

@@ -0,0 +1,3 @@
$(function(){
ua.listen();
})

View File

@@ -0,0 +1,13 @@
<div class="layuimini-container">
<div class="layuimini-main">
<table id="currentTable" class="layui-table layui-hide"
data-auth-index="{:auth('test.goods/index')}"
data-auth-add="{:auth('test.goods/add')}"
data-auth-edit="{:auth('test.goods/edit')}"
data-auth-delete="{:auth('test.goods/delete')}"
data-auth-export="{:auth('test.goods/export')}"
data-auth-modify="{:auth('test.goods/modify')}"
lay-filter="currentTable">
</table>
</div>
</div>

View File

@@ -0,0 +1,11 @@
$(function(){
ua.table.render({
init: init,
cols: [[
{type: 'checkbox'},
{field: 'id', title: 'id'},
{field: 'cate_id', title: '分类ID'},
{field: 'title', title: '商品名称'},
{field: 'logo', title: '商品logo', templet: ua.table.image},
{field: 'total_stock', title: '总库存'},
{field: 'sort', title: '排序', edit: 'text'},

View File

@@ -0,0 +1,40 @@
<div class="layuimini-container detail-container">
<div class="layuimini-main">
<div class="layui-card detail-card">
<div class="layui-card-header detail-header">
<div class="layui-row">
<div class="layui-col-md9">
<h2 class="detail-title">#{$row.id} {$title}</h2>
<div class="detail-id">ID: {$row.id}</div>
</div>
<div class="layui-col-md3 text-right detail-actions">
<button class="layui-btn layui-btn-primary" onclick="window.history.back()">返回</button>
<button class="layui-btn" onclick="location.href='{{:url("edit", ["id" => $row.id])}}'">编辑</button>
<button class="layui-btn layui-btn-danger" onclick="deleteData({{$row.id}})">删除</button>
</div>
</div>
</div>
<div class="layui-card-body detail-content">
<div class="layui-row">
<!-- 左侧主体内容 -->
<div class="layui-col-md8 detail-main">
<div class="detail-field-group">
<div class="detail-field-item"><div class="detail-field-label">分类ID</div><div class="detail-field-value">{$row.cate_id|default=''}</div></div><div class="detail-field-item"><div class="detail-field-label">商品名称</div><div class="detail-field-value">{$row.title|default=''}</div></div><div class="detail-field-item"><div class="detail-field-label">商品logo</div><div class="detail-field-value"><img src="{$row.logo}" class="detail-image" style="max-width: 200px; max-height: 200px;"></div></div><div class="detail-field-item"><div class="detail-field-label">商品图片</div><div class="detail-field-value">{$row.images|default=''}</div></div><div class="detail-field-item"><div class="detail-field-label">商品描述</div><div class="detail-field-value">{$row.describe|raw|default=''}</div></div><div class="detail-field-item"><div class="detail-field-label">总库存</div><div class="detail-field-value">{$row.total_stock|default=''}</div></div><div class="detail-field-item"><div class="detail-field-label">合格证</div><div class="detail-field-value">{$row.cert_file|default=''}</div></div><div class="detail-field-item"><div class="detail-field-label">检测报告</div><div class="detail-field-value">{$row.verfiy_file|default=''}</div></div><div class="detail-field-item"><div class="detail-field-label">备注说明</div><div class="detail-field-value">{$row.remark|raw|default=''}</div></div><div class="detail-field-item"><div class="detail-field-label">发布日期</div><div class="detail-field-value">{$row.publish_time|default=''}</div></div><div class="detail-field-item"><div class="detail-field-label">售卖日期</div><div class="detail-field-value">{$row.sale_time|default=''}</div></div><div class="detail-field-item"><div class="detail-field-label">简介</div><div class="detail-field-value">{$row.intro|raw|default=''}</div></div><div class="detail-field-item"><div class="detail-field-label">秒杀状态</div><div class="detail-field-value">{$row.time_status|default=''}</div></div><div class="detail-field-item"><div class="detail-field-label">是否推荐</div><div class="detail-field-value">{eq name="row.is_recommend" value="1"}启用{else/}禁用{/eq}</div></div><div class="detail-field-item"><div class="detail-field-label">商品类型</div><div class="detail-field-value">{$row.shop_type|default=''}</div></div><div class="detail-field-item"><div class="detail-field-label">商品标签</div><div class="detail-field-value">{$row.tag|default=''}</div></div><div class="detail-field-item"><div class="detail-field-label">商品标签(单选)</div><div class="detail-field-value">{$row.tag_backup|default=''}</div></div><div class="detail-field-item"><div class="detail-field-label">产地</div><div class="detail-field-value">{$row.from_area|default=''}</div></div><div class="detail-field-item"><div class="detail-field-label">仓库</div><div class="detail-field-value">{$row.store_city|default=''}</div></div><div class="detail-field-item"><div class="detail-field-label">商品标签 (输入)</div><div class="detail-field-value">{$row.tag_input|default=''}</div></div><div class="detail-field-item"><div class="detail-field-label">唯一id</div><div class="detail-field-value">{$row.uid|default=''}</div></div><div class="detail-field-item"><div class="detail-field-label">价格</div><div class="detail-field-value">{$row.price|default=''}</div></div><div class="detail-field-item"><div class="detail-field-label">详情</div><div class="detail-field-value">{$row.detail|default=''}</div></div>
</div>
</div>
<!-- 右侧基础信息 -->
<div class="layui-col-md4 detail-side">
<h3 class="detail-side-title">基础信息</h3>
<div class="detail-field-group">
<div class="detail-field-item">
<div class="detail-field-label">ID</div>
<div class="detail-field-value">{$row.id}</div>
</div>
<div class="detail-field-item"><div class="detail-field-label">排序</div><div class="detail-field-value">{$row.sort|default=''}</div></div><div class="detail-field-item"><div class="detail-field-label">状态</div><div class="detail-field-value">{$row.status|default=''}</div></div><div class="detail-field-item"><div class="detail-field-label">create_time</div><div class="detail-field-value">{$row.create_time|default=''}</div></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,22 @@
$(function(){
// 删除数据
window.deleteData = function(id) {
layer.confirm('确定要删除这条数据吗?', {
icon: 3,
title: '提示'
}, function(index) {
$.post('{{:url("delete")}}', {id: id}, function(res) {
if (res.code == 0) {
layer.msg('删除成功', {icon: 1}, function() {
location.href = '{{:url("index")}}';
});
} else {
layer.msg(res.msg, {icon: 2});
}
}, 'json');
layer.close(index);
});
};
ua.listen();
})