mirror of
https://gitee.com/zoujingli/ThinkAdmin.git
synced 2026-07-11 18:11:07 +08:00
Compare commits
20 Commits
8a96cb971c
...
fa46967111
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fa46967111 | ||
|
|
b5da654cd4 | ||
|
|
9e17f2107c | ||
|
|
935dd521b6 | ||
|
|
62e639d179 | ||
|
|
c38d8f85c9 | ||
|
|
d30bb0b24e | ||
|
|
bac193165f | ||
|
|
78ac3cb4d5 | ||
|
|
22d3998d4c | ||
|
|
ed016b1a18 | ||
|
|
acea2c5445 | ||
|
|
a76f0e779d | ||
|
|
a85c63c7f9 | ||
|
|
f7b7ff982f | ||
|
|
77c1bd7b85 | ||
|
|
dcd92ea511 | ||
|
|
608421a84a | ||
|
|
8fd35775f1 | ||
|
|
e2298dc165 |
@ -3,6 +3,8 @@
|
||||
namespace app\data\controller\api;
|
||||
|
||||
use app\data\model\ShopGoods;
|
||||
use app\data\model\ShopGoodsCate;
|
||||
use app\data\model\ShopGoodsMark;
|
||||
use app\data\service\ExpressService;
|
||||
use app\data\service\GoodsService;
|
||||
use think\admin\Controller;
|
||||
@ -22,7 +24,7 @@ class Goods extends Controller
|
||||
*/
|
||||
public function getCate()
|
||||
{
|
||||
$this->success('获取分类成功', GoodsService::instance()->getCateTree());
|
||||
$this->success('获取分类成功', ShopGoodsCate::treeData());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -30,7 +32,7 @@ class Goods extends Controller
|
||||
*/
|
||||
public function getMark()
|
||||
{
|
||||
$this->success('获取标签成功', GoodsService::instance()->getMarkData());
|
||||
$this->success('获取标签成功', ShopGoodsMark::items());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -4,10 +4,11 @@ namespace app\data\controller\base;
|
||||
|
||||
use app\data\model\BaseUserMessage;
|
||||
use think\admin\Controller;
|
||||
use think\admin\helper\QueryHelper;
|
||||
|
||||
/**
|
||||
* 系统通知管理
|
||||
* Class Message
|
||||
* Class Notify
|
||||
* @package app\data\controller\base
|
||||
*/
|
||||
class Message extends Controller
|
||||
@ -22,10 +23,12 @@ class Message extends Controller
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$this->title = '系统通知管理';
|
||||
$query = BaseUserMessage::mQuery();
|
||||
$query->like('name')->equal('status')->dateBetween('create_at');
|
||||
$query->where(['deleted' => 0])->order('sort desc,id desc')->page();
|
||||
BaseUserMessage::mQuery()->layTable(function () {
|
||||
$this->title = '系统通知管理';
|
||||
}, function (QueryHelper $query) {
|
||||
$query->where(['deleted' => 0]);
|
||||
$query->like('name')->equal('status')->dateBetween('create_at');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -5,6 +5,7 @@ namespace app\data\controller\base\postage;
|
||||
use app\data\model\BasePostageCompany;
|
||||
use app\data\service\ExpressService;
|
||||
use think\admin\Controller;
|
||||
use think\admin\helper\QueryHelper;
|
||||
use think\exception\HttpResponseException;
|
||||
|
||||
/**
|
||||
@ -24,18 +25,13 @@ class Company extends Controller
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$this->title = '快递公司管理';
|
||||
|
||||
// 加载对应数据
|
||||
$map = ['deleted' => 0];
|
||||
$this->type = input('get.type', 'index');
|
||||
if ($this->type === 'index') $map['status'] = 1;
|
||||
if ($this->type === 'recycle') $map['status'] = 0;
|
||||
|
||||
// 列表显示分页
|
||||
$query = BasePostageCompany::mQuery();
|
||||
$query->like('name,code')->equal('status')->dateBetween('craete_at');
|
||||
$query->where($map)->order('sort desc,id desc')->page();
|
||||
BasePostageCompany::mQuery()->layTable(function () {
|
||||
$this->title = '快递公司管理';
|
||||
}, function (QueryHelper $query) {
|
||||
$query->where(['deleted' => 0, 'status' => intval($this->type === 'index')]);
|
||||
$query->like('name,code_1|code_3#code')->equal('status')->dateBetween('create_at');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@ -58,6 +54,20 @@ class Company extends Controller
|
||||
BasePostageCompany::mForm('form');
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步字段编号
|
||||
* @param array $data
|
||||
* @return void
|
||||
*/
|
||||
protected function _form_filter(array &$data)
|
||||
{
|
||||
if ($this->request->isPost()) {
|
||||
if (empty($data['code_2'])) {
|
||||
$data['code_2'] = $data['code_3'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改快递公司状态
|
||||
* @auth true
|
||||
@ -89,7 +99,11 @@ class Company extends Controller
|
||||
$result = ExpressService::instance()->company();
|
||||
if (empty($result['code'])) $this->error($result['info']);
|
||||
foreach ($result['data'] as $vo) BasePostageCompany::mUpdate([
|
||||
'code_1' => $vo['code_1'], 'code_2' => $vo['code_2'], 'code_3' => $vo['code_3'], 'name' => $vo['title'], 'deleted' => 0,
|
||||
'name' => $vo['title'],
|
||||
'code_1' => $vo['code_1'],
|
||||
'code_2' => $vo['code_2'],
|
||||
'code_3' => $vo['code_3'],
|
||||
'deleted' => 0,
|
||||
], 'code_1');
|
||||
$this->success('同步快递公司成功!');
|
||||
} catch (HttpResponseException $exception) {
|
||||
|
||||
@ -7,6 +7,7 @@ use app\data\model\BasePostageTemplate;
|
||||
use app\data\service\ExpressService;
|
||||
use think\admin\Controller;
|
||||
use think\admin\extend\CodeExtend;
|
||||
use think\admin\helper\QueryHelper;
|
||||
|
||||
/**
|
||||
* 邮费模板管理
|
||||
@ -25,10 +26,13 @@ class Template extends Controller
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$this->title = '快递邮费模板';
|
||||
$query = BasePostageTemplate::mQuery();
|
||||
$query->like('code,name')->equal('status')->dateBetween('create_at');
|
||||
$query->where(['deleted' => 0])->order('sort desc,id desc')->page();
|
||||
$this->type = input('get.type', 'index');
|
||||
BasePostageTemplate::mQuery()->layTable(function () {
|
||||
$this->title = '快递邮费模板';
|
||||
}, function (QueryHelper $query) {
|
||||
$query->where(['deleted' => 0, 'status' => intval($this->type === 'index')]);
|
||||
$query->like('code,name')->equal('status')->dateBetween('create_at');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@ -56,7 +60,7 @@ class Template extends Controller
|
||||
public function add()
|
||||
{
|
||||
$this->title = '添加配送邮费模板';
|
||||
BasePostageTemplate::mForm('form', 'code');
|
||||
BasePostageTemplate::mForm('form');
|
||||
}
|
||||
|
||||
/**
|
||||
@ -66,7 +70,7 @@ class Template extends Controller
|
||||
public function edit()
|
||||
{
|
||||
$this->title = '编辑配送邮费模板';
|
||||
BasePostageTemplate::mForm('form', 'code');
|
||||
BasePostageTemplate::mForm('form');
|
||||
}
|
||||
|
||||
/**
|
||||
@ -103,7 +107,7 @@ class Template extends Controller
|
||||
BasePostageTemplate::mSave($this->_vali([
|
||||
'status.in:0,1' => '状态值范围异常!',
|
||||
'status.require' => '状态值不能为空!',
|
||||
]), 'code');
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -112,6 +116,6 @@ class Template extends Controller
|
||||
*/
|
||||
public function remove()
|
||||
{
|
||||
BasePostageTemplate::mDelete('code');
|
||||
BasePostageTemplate::mDelete();
|
||||
}
|
||||
}
|
||||
@ -4,6 +4,7 @@ namespace app\data\controller\news;
|
||||
|
||||
use app\data\model\DataNewsMark;
|
||||
use think\admin\Controller;
|
||||
use think\admin\helper\QueryHelper;
|
||||
|
||||
/**
|
||||
* 文章标签管理
|
||||
@ -15,16 +16,19 @@ class Mark extends Controller
|
||||
/**
|
||||
* 文章标签管理
|
||||
* @auth true
|
||||
* @return void
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$this->title = '文章标签管理';
|
||||
$query = DataNewsMark::mQuery();
|
||||
$query->like('name')->equal('status')->dateBetween('create_at');
|
||||
$query->where(['deleted' => 0])->order('sort desc,id desc')->page();
|
||||
DataNewsMark::mQuery()->layTable(function () {
|
||||
$this->title = '文章标签管理';
|
||||
}, function (QueryHelper $query) {
|
||||
$query->where(['deleted' => 0]);
|
||||
$query->like('name')->equal('status')->dateBetween('create_at');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@ -45,16 +49,25 @@ class Mark extends Controller
|
||||
DataNewsMark::mForm('form');
|
||||
}
|
||||
|
||||
/**
|
||||
* 表单结果处理
|
||||
* @param bool $state
|
||||
* @return void
|
||||
*/
|
||||
protected function _form_result(bool $state)
|
||||
{
|
||||
if ($state) {
|
||||
$this->success('修改标签成功', "javascript:$('#TagsData').trigger('reload')");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改文章标签状态
|
||||
* @auth true
|
||||
*/
|
||||
public function state()
|
||||
{
|
||||
DataNewsMark::mSave($this->_vali([
|
||||
'status.in:0,1' => '状态值范围异常!',
|
||||
'status.require' => '状态值不能为空!',
|
||||
]));
|
||||
DataNewsMark::mSave();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -5,6 +5,7 @@ namespace app\data\controller\shop;
|
||||
use app\data\model\ShopGoodsCate;
|
||||
use think\admin\Controller;
|
||||
use think\admin\extend\DataExtend;
|
||||
use think\admin\helper\QueryHelper;
|
||||
|
||||
/**
|
||||
* 商品分类管理
|
||||
@ -13,6 +14,12 @@ use think\admin\extend\DataExtend;
|
||||
*/
|
||||
class Cate extends Controller
|
||||
{
|
||||
/**
|
||||
* 最大级别
|
||||
* @var integer
|
||||
*/
|
||||
protected $maxLevel = 5;
|
||||
|
||||
/**
|
||||
* 商品分类管理
|
||||
* @auth true
|
||||
@ -23,9 +30,12 @@ class Cate extends Controller
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$this->title = "商品分类管理";
|
||||
$query = ShopGoodsCate::mQuery()->like('name')->dateBetween('create_at');
|
||||
$query->equal('status')->where(['deleted' => 0])->order('sort desc,id desc')->page(false);
|
||||
ShopGoodsCate::mQuery()->layTable(function () {
|
||||
$this->title = "商品分类管理";
|
||||
}, function (QueryHelper $query) {
|
||||
$query->where(['deleted' => 0]);
|
||||
$query->like('name')->equal('status')->dateBetween('create_at');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@ -66,12 +76,9 @@ class Cate extends Controller
|
||||
{
|
||||
if ($this->request->isGet()) {
|
||||
$data['pid'] = intval($data['pid'] ?? input('pid', '0'));
|
||||
$cates = ShopGoodsCate::mk()->where(['deleted' => 0])->order('sort desc,id desc')->select()->toArray();
|
||||
$this->cates = DataExtend::arr2table(array_merge($cates, [['id' => '0', 'pid' => '-1', 'name' => '顶部分类']]));
|
||||
if (isset($data['id'])) foreach ($this->cates as $cate) if ($cate['id'] === $data['id']) $data = $cate;
|
||||
foreach ($this->cates as $key => $cate) if ((isset($data['spt']) && $data['spt'] <= $cate['spt'])) {
|
||||
unset($this->cates[$key]);
|
||||
}
|
||||
$this->cates = ShopGoodsCate::getParentData($this->maxLevel, $data, [
|
||||
'id' => '0', 'pid' => '-1', 'name' => '顶部分类',
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -5,7 +5,9 @@ namespace app\data\controller\shop;
|
||||
use app\data\model\BaseUserDiscount;
|
||||
use app\data\model\BaseUserPayment;
|
||||
use app\data\model\ShopGoods;
|
||||
use app\data\model\ShopGoodsCate;
|
||||
use app\data\model\ShopGoodsItem;
|
||||
use app\data\model\ShopGoodsMark;
|
||||
use app\data\model\ShopGoodsStock;
|
||||
use app\data\service\ExpressService;
|
||||
use app\data\service\GoodsService;
|
||||
@ -20,12 +22,6 @@ use think\admin\extend\CodeExtend;
|
||||
*/
|
||||
class Goods extends Controller
|
||||
{
|
||||
/**
|
||||
* 最大分类等级
|
||||
* @var integer
|
||||
*/
|
||||
protected $cateLevel;
|
||||
|
||||
/**
|
||||
* 商品数据管理
|
||||
* @auth true
|
||||
@ -73,8 +69,8 @@ class Goods extends Controller
|
||||
*/
|
||||
protected function _page_filter(array &$data)
|
||||
{
|
||||
$this->marks = GoodsService::instance()->getMarkData();
|
||||
$this->cates = GoodsService::instance()->getCateTree('arr2table');
|
||||
$this->marks = ShopGoodsMark::items();
|
||||
$this->cates = ShopGoodsCate::treeTable();
|
||||
GoodsService::instance()->bindData($data, false);
|
||||
}
|
||||
|
||||
@ -139,8 +135,8 @@ class Goods extends Controller
|
||||
$data['payment'] = str2arr($data['payment'] ?? '');
|
||||
$data['cateids'] = str2arr($data['cateids'] ?? '');
|
||||
// 其他表单数据
|
||||
$this->marks = GoodsService::instance()->getMarkData();
|
||||
$this->cates = GoodsService::instance()->getCateData();
|
||||
$this->marks = ShopGoodsMark::items();
|
||||
$this->cates = ShopGoodsCate::treeTable(true);
|
||||
$this->trucks = ExpressService::instance()->templates();
|
||||
$this->upgrades = UserUpgradeService::instance()->levels();
|
||||
$this->payments = BaseUserPayment::mk()->where(['status' => 1, 'deleted' => 0])->order('sort desc,id desc')->column('type,code,name', 'code');
|
||||
|
||||
@ -4,6 +4,7 @@ namespace app\data\controller\shop;
|
||||
|
||||
use app\data\model\ShopGoodsMark;
|
||||
use think\admin\Controller;
|
||||
use think\admin\helper\QueryHelper;
|
||||
|
||||
/**
|
||||
* 商品标签管理
|
||||
@ -21,22 +22,11 @@ class Mark extends Controller
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$this->title = '商品标签管理';
|
||||
$query = ShopGoodsMark::mQuery();
|
||||
$query->like('name')->dateBetween('create_at');
|
||||
$query->equal('status')->order('sort desc,id desc')->page();
|
||||
}
|
||||
|
||||
/**
|
||||
* 商品标签选择
|
||||
* @login true
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function select()
|
||||
{
|
||||
ShopGoodsMark::mQuery()->order('sort desc,id desc')->page();
|
||||
ShopGoodsMark::mQuery()->layTable(function () {
|
||||
$this->title = '商品标签管理';
|
||||
}, function (QueryHelper $query) {
|
||||
$query->like('name')->equal('status')->dateBetween('create_at');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -11,5 +11,13 @@ use think\admin\Model;
|
||||
*/
|
||||
class BasePostageCompany extends Model
|
||||
{
|
||||
|
||||
/**
|
||||
* 格式化创建时间
|
||||
* @param string $value
|
||||
* @return string
|
||||
*/
|
||||
public function getCreateAtAttr(string $value): string
|
||||
{
|
||||
return format_datetime($value);
|
||||
}
|
||||
}
|
||||
@ -11,5 +11,13 @@ use think\admin\Model;
|
||||
*/
|
||||
class BaseUserMessage extends Model
|
||||
{
|
||||
|
||||
/**
|
||||
* 格式化创建时间
|
||||
* @param string $value
|
||||
* @return string
|
||||
*/
|
||||
public function getCreateAtAttr(string $value): string
|
||||
{
|
||||
return format_datetime($value);
|
||||
}
|
||||
}
|
||||
@ -5,11 +5,18 @@ namespace app\data\model;
|
||||
use think\admin\Model;
|
||||
|
||||
/**
|
||||
*
|
||||
* Class DataNewsMark
|
||||
* @package app\data\model
|
||||
*/
|
||||
class DataNewsMark extends Model
|
||||
{
|
||||
|
||||
/**
|
||||
* 格式化创建时间
|
||||
* @param string $value
|
||||
* @return string
|
||||
*/
|
||||
public function getCreateAtAttr(string $value): string
|
||||
{
|
||||
return format_datetime($value);
|
||||
}
|
||||
}
|
||||
@ -2,6 +2,7 @@
|
||||
|
||||
namespace app\data\model;
|
||||
|
||||
use think\admin\extend\DataExtend;
|
||||
use think\admin\Model;
|
||||
|
||||
/**
|
||||
@ -11,5 +12,67 @@ use think\admin\Model;
|
||||
*/
|
||||
class ShopGoodsCate extends Model
|
||||
{
|
||||
/**
|
||||
* 获取上级可用选项
|
||||
* @param int $max 最大级别
|
||||
* @param array $data 表单数据
|
||||
* @param array $parent 上级分类
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public static function getParentData(int $max, array &$data, array $parent = []): array
|
||||
{
|
||||
$items = static::mk()->order('sort desc,id asc')->select()->toArray();
|
||||
$cates = DataExtend::arr2table(empty($parent) ? $items : array_merge([$parent], $items));
|
||||
if (isset($data['id'])) foreach ($cates as $cate) if ($cate['id'] === $data['id']) $data = $cate;
|
||||
foreach ($cates as $key => $cate) {
|
||||
$isSelf = isset($data['spt']) && isset($data['spc']) && $data['spt'] <= $cate['spt'] && $data['spc'] > 0;
|
||||
if ($cate['spt'] >= $max || $isSelf) unset($cates[$key]);
|
||||
}
|
||||
return $cates;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取数据树
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public static function treeData(): array
|
||||
{
|
||||
$query = static::mk()->where(['status' => 1, 'deleted' => 0])->order('sort desc,id desc');
|
||||
return DataExtend::arr2tree($query->withoutField('sort,status,deleted,create_at')->select()->toArray());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取列表数据
|
||||
* @param bool $simple 仅子级别
|
||||
* @return array
|
||||
*/
|
||||
public static function treeTable(bool $simple = false): array
|
||||
{
|
||||
$query = static::mk()->where(['status' => 1, 'deleted' => 0])->order('sort desc,id asc');
|
||||
$cates = array_column(DataExtend::arr2table($query->column('id,pid,name', 'id')), null, 'id');
|
||||
foreach ($cates as $cate) isset($cates[$cate['pid']]) && $cates[$cate['id']]['parent'] =& $cates[$cate['pid']];
|
||||
foreach ($cates as $key => $cate) {
|
||||
$id = $cate['id'];
|
||||
$cates[$id]['ids'][] = $cate['id'];
|
||||
$cates[$id]['names'][] = $cate['name'];
|
||||
while (isset($cate['parent']) && ($cate = $cate['parent'])) {
|
||||
$cates[$id]['ids'][] = $cate['id'];
|
||||
$cates[$id]['names'][] = $cate['name'];
|
||||
}
|
||||
$cates[$id]['ids'] = array_reverse($cates[$id]['ids']);
|
||||
$cates[$id]['names'] = array_reverse($cates[$id]['names']);
|
||||
if (isset($pky) && $simple && in_array($cates[$pky]['name'], $cates[$id]['names'])) {
|
||||
unset($cates[$pky]);
|
||||
}
|
||||
$pky = $key;
|
||||
}
|
||||
foreach ($cates as &$cate) unset($cate['parent']);
|
||||
return array_values($cates);
|
||||
}
|
||||
}
|
||||
@ -11,5 +11,13 @@ use think\admin\Model;
|
||||
*/
|
||||
class ShopGoodsMark extends Model
|
||||
{
|
||||
|
||||
/**
|
||||
* 获取所有标签
|
||||
* @return array
|
||||
*/
|
||||
public static function items(): array
|
||||
{
|
||||
$map = ['status' => 1];
|
||||
return static::mk()->where($map)->order('sort desc,id desc')->column('name');
|
||||
}
|
||||
}
|
||||
@ -8,7 +8,6 @@ use app\data\model\ShopGoodsItem;
|
||||
use app\data\model\ShopGoodsMark;
|
||||
use app\data\model\ShopGoodsStock;
|
||||
use app\data\model\ShopOrder;
|
||||
use think\admin\extend\DataExtend;
|
||||
use think\admin\Service;
|
||||
|
||||
/**
|
||||
@ -18,58 +17,6 @@ use think\admin\Service;
|
||||
*/
|
||||
class GoodsService extends Service
|
||||
{
|
||||
|
||||
/**
|
||||
* 获取商品标签数据
|
||||
* @return array
|
||||
*/
|
||||
public function getMarkData(): array
|
||||
{
|
||||
$map = ['status' => 1];
|
||||
return ShopGoodsMark::mk()->where($map)->order('sort desc,id desc')->column('name');
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取分类数据
|
||||
* @param string $type 数据格式 arr2tree | arr2table
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function getCateTree(string $type = 'arr2tree'): array
|
||||
{
|
||||
$query = ShopGoodsCate::mk()->where(['deleted' => 0, 'status' => 1])->order('sort desc,id desc');
|
||||
return DataExtend::$type($query->withoutField('sort,status,deleted,create_at')->select()->toArray());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取分类数据
|
||||
* @param boolean $simple 简化数据
|
||||
* @return array
|
||||
*/
|
||||
public function getCateData(bool $simple = true): array
|
||||
{
|
||||
$cates = ShopGoodsCate::mk()->where(['status' => 1, 'deleted' => 0])->column('id,pid,name', 'id');
|
||||
foreach ($cates as $cate) if (isset($cates[$cate['pid']])) $cates[$cate['id']]['parent'] =& $cates[$cate['pid']];
|
||||
foreach ($cates as $key => $cate) {
|
||||
$id = $cate['id'];
|
||||
$cates[$id]['ids'][] = $cate['id'];
|
||||
$cates[$id]['names'][] = $cate['name'];
|
||||
while (isset($cate['parent']) && $cate = $cate['parent']) {
|
||||
$cates[$id]['ids'][] = $cate['id'];
|
||||
$cates[$id]['names'][] = $cate['name'];
|
||||
}
|
||||
$cates[$id]['ids'] = array_reverse($cates[$id]['ids']);
|
||||
$cates[$id]['names'] = array_reverse($cates[$id]['names']);
|
||||
if (isset($pky) && $simple && in_array($cates[$pky]['name'], $cates[$id]['names'])) {
|
||||
unset($cates[$pky]);
|
||||
}
|
||||
$pky = $key;
|
||||
}
|
||||
return $cates;
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新商品库存数据
|
||||
* @param string $code
|
||||
@ -122,8 +69,9 @@ class GoodsService extends Service
|
||||
*/
|
||||
public function bindData(array &$data = [], bool $simple = true): array
|
||||
{
|
||||
[$cates, $codes] = [$this->getCateData(), array_unique(array_column($data, 'code'))];
|
||||
$marks = ShopGoodsMark::mk()->where(['status' => 1])->column('name');
|
||||
$marks = ShopGoodsMark::items();
|
||||
$cates = ShopGoodsCate::treeTable();
|
||||
$codes = array_unique(array_column($data, 'code'));
|
||||
$items = ShopGoodsItem::mk()->whereIn('goods_code', $codes)->where(['status' => 1])->select()->toArray();
|
||||
foreach ($data as &$vo) {
|
||||
[$vo['marks'], $vo['cateids'], $vo['cateinfo']] = [str2arr($vo['marks'], ',', $marks), str2arr($vo['cateids']), []];
|
||||
@ -134,5 +82,4 @@ class GoodsService extends Service
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,38 +1,34 @@
|
||||
{extend name="../../admin/view/main"}
|
||||
|
||||
{block name='content'}
|
||||
<form action="{:sysuri()}" autocomplete="off" class="layui-form layui-card" data-auto="true" method="post">
|
||||
<form data-table-id="MessageTable" action="{:sysuri()}" class="layui-card layui-form" data-auto="true" method="post">
|
||||
<div class="layui-card-body">
|
||||
|
||||
<label class="layui-form-item relative block">
|
||||
<span class="color-green font-w7">通知标题</span>
|
||||
<span class="color-desc margin-left-5">Notify Title</span>
|
||||
<span class="help-label"><b>通知标题</b>Notify Title</span>
|
||||
<input class="layui-input" name="name" placeholder="请输入通知标题" required value='{$vo.name|default=""}'>
|
||||
</label>
|
||||
|
||||
<div class="layui-form-item relative block">
|
||||
<span class="color-green font-w7 label-required-prev">通知内容</span>
|
||||
<span class="color-desc margin-left-5">Notify Content</span>
|
||||
<div class="layui-form-item label-required-prev">
|
||||
<span class="help-label"><b>通知内容</b>Notify Content</span>
|
||||
<label class="relative block">
|
||||
<textarea class="layui-textarea" name="content" placeholder="请输入通知内容">{$vo.content|default=''}</textarea>
|
||||
<textarea class="layui-hide" name="content" placeholder="请输入通知内容">{$vo.content|default=''}</textarea>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="hr-line-dashed"></div>
|
||||
{notempty name='vo.id'}<input name='id' type='hidden' value='{$vo.id}'>{/notempty}
|
||||
{notempty name='vo.code'}<input name='code' type='hidden' value='{$vo.code}'>{/notempty}
|
||||
|
||||
<div class="layui-form-item text-center">
|
||||
<button class="layui-btn" type="submit">保存数据</button>
|
||||
<button class="layui-btn layui-btn-danger" data-confirm="确定要取消编辑吗?" data-history-back type='button'>取消编辑</button>
|
||||
<button class="layui-btn layui-btn-danger" data-confirm="确定要取消编辑吗?" type='button' data-history-back>取消编辑</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
<script>
|
||||
require(['ckeditor'], function () {
|
||||
window.createEditor('[name=content]', {height: 600});
|
||||
window.createEditor('[name=content]', {height: 530});
|
||||
});
|
||||
</script>
|
||||
{/block}
|
||||
@ -1,71 +1,76 @@
|
||||
{extend name="../../admin/view/main"}
|
||||
|
||||
{block name="button"}
|
||||
{extend name='../../admin/view/table'}
|
||||
|
||||
{block name='button'}
|
||||
<!--{if auth("add")}-->
|
||||
<button class='layui-btn layui-btn-sm layui-btn-primary' data-open='{:url("add")}'>添加通知</button>
|
||||
<button class='layui-btn layui-btn-sm layui-btn-primary' data-table-id="MessageTable" data-open='{:url("add")}'>添加通知</button>
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if auth("remove")}-->
|
||||
<button class='layui-btn layui-btn-sm layui-btn-primary' data-action='{:url("remove")}' data-confirm="确定要删除这些通知吗?" data-rule="id#{key}">删除通知</button>
|
||||
<button class='layui-btn layui-btn-sm layui-btn-primary' data-table-id="MessageTable" data-action='{:url("remove")}' data-rule="id#{id}" data-confirm="确定要删除这些通知吗?">删除通知</button>
|
||||
<!--{/if}-->
|
||||
{/block}
|
||||
|
||||
{block name='content'}
|
||||
{block name="content"}
|
||||
<div class="think-box-shadow">
|
||||
{include file='base/message/index_search'}
|
||||
<table class="layui-table margin-top-10" 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>
|
||||
</th>
|
||||
<th class='list-table-sort-td'>
|
||||
<button class="layui-btn layui-btn-xs" data-reload type="button">刷 新</button>
|
||||
</th>
|
||||
<th class="text-left nowrap">通知标题</th>
|
||||
<th class="text-left nowrap">阅读次数</th>
|
||||
<th class="text-left nowrap">通知状态</th>
|
||||
<th class="text-left nowrap">创建时间</th>
|
||||
<th class="text-left nowrap"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
{/notempty}
|
||||
<tbody>
|
||||
{foreach $list as $key=>$vo}
|
||||
<tr>
|
||||
<td class='list-table-check-td think-checkbox'>
|
||||
<label><input class="list-check-box" type='checkbox' value='{$vo.id}'></label>
|
||||
</td>
|
||||
<td class='list-table-sort-td'>
|
||||
<label><input class="list-sort-input" data-action-blur="{:sysuri()}" data-loading="false" data-value="id#{$vo.id};action#sort;sort#{value}" value="{$vo.sort}"></label>
|
||||
</td>
|
||||
<td class="text-left nowrap">{$vo.name|default=''}</td>
|
||||
<td class="text-left nowrap sub-strong-blue">已阅读 <b>{$vo.num_read|default=''}</b> 次</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">{$vo.create_at|format_datetime}</td>
|
||||
<td class='text-left nowrap'>
|
||||
|
||||
<!--{if auth("edit")}-->
|
||||
<a class="layui-btn layui-btn-sm" data-dbclick data-open="{: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">禁 用</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">激 活</a>
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if auth("remove")}-->
|
||||
<a class="layui-btn layui-btn-sm layui-btn-danger" data-action="{:url('remove')}" data-confirm="确定要删除该通知吗?" data-value="id#{$vo.id}">删 除</a>
|
||||
<!--{/if}-->
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{empty name='list'}<span class="notdata">没有记录哦</span>{else}{$pagehtml|raw|default=''}{/empty}
|
||||
<table id="MessageTable" data-url="{:sysuri()}" data-target-search="form.form-search"></table>
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
{block name='script'}
|
||||
<script>
|
||||
$(function () {
|
||||
// 初始化表格组件
|
||||
$('#MessageTable').layTable({
|
||||
even: true, height: 'full',
|
||||
sort: {field: 'sort desc,id', type: 'desc'},
|
||||
cols: [[
|
||||
{checkbox: true, fixed: true},
|
||||
{field: 'sort', title: '排序权重', align: 'center', width: 100, sort: true, templet: '#SortInputTpl'},
|
||||
{field: 'name', title: '通知标题', align: 'left', minWidth: 140},
|
||||
{field: 'num_read', title: '阅读次数', align: 'center', minWidth: 110},
|
||||
{field: 'status', title: '通知状态', align: 'center', minWidth: 110, templet: '#StatusSwitchTpl'},
|
||||
{field: 'create_at', title: '创建时间', align: 'center', minWidth: 170, sort: true},
|
||||
{toolbar: '#toolbar', title: '操作面板', align: 'center', minWidth: 140, fixed: 'right'},
|
||||
]]
|
||||
});
|
||||
|
||||
// 数据状态切换操作
|
||||
layui.form.on('switch(StatusSwitch)', function (obj) {
|
||||
var data = {id: obj.value, status: obj.elem.checked > 0 ? 1 : 0};
|
||||
$.form.load("{:url('state')}", data, 'post', function (ret) {
|
||||
if (ret.code < 1) $.msg.error(ret.info, 3, function () {
|
||||
$('#MessageTable').trigger('reload');
|
||||
});
|
||||
return false;
|
||||
}, false);
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
<!-- 列表排序权重模板 -->
|
||||
<script type="text/html" id="SortInputTpl">
|
||||
<input type="number" min="0" data-blur-number="0" data-action-blur="{:sysuri()}" data-value="id#{{d.id}};action#sort;sort#{value}" data-loading="false" value="{{d.sort}}" class="layui-input text-center">
|
||||
</script>
|
||||
|
||||
<!-- 数据状态切换模板 -->
|
||||
<script type="text/html" id="StatusSwitchTpl">
|
||||
<!--{if auth("state")}-->
|
||||
<input type="checkbox" value="{{d.id}}" lay-skin="switch" lay-text="已激活|已禁用" lay-filter="StatusSwitch" {{d.status>0?'checked':''}}>
|
||||
<!--{else}-->
|
||||
{{d.status ? '<b class="color-green">已启用</b>' : '<b class="color-red">已禁用</b>'}}
|
||||
<!--{/if}-->
|
||||
</script>
|
||||
|
||||
<!-- 数据操作工具条模板 -->
|
||||
<script type="text/html" id="toolbar">
|
||||
<!--{if auth('edit')}-->
|
||||
<a class="layui-btn layui-btn-primary layui-btn-sm" data-open='{:url("edit")}?id={{d.id}}'>编 辑</a>
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if auth("remove")}-->
|
||||
<a class="layui-btn layui-btn-danger layui-btn-sm" data-confirm="确定要删除问题吗?" data-action="{:url('remove')}" data-value="id#{{d.id}}">删 除</a>
|
||||
<!--{/if}-->
|
||||
</script>
|
||||
{/block}
|
||||
@ -1,6 +1,7 @@
|
||||
<fieldset>
|
||||
<legend>条件搜索</legend>
|
||||
<form action="{:sysuri()}" autocomplete="off" class="layui-form layui-form-pane form-search" method="get" onsubmit="return false">
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">通知标题</label>
|
||||
<label class="layui-input-inline">
|
||||
@ -14,7 +15,7 @@
|
||||
<select class="layui-select" name="status">
|
||||
<option value=''>-- 全部 --</option>
|
||||
{foreach ['显示禁止的通知', '显示正常的通知'] as $k=>$v}
|
||||
{if $k.'' eq input('status')}
|
||||
{if isset($get.status) and $get.status eq $k.''}
|
||||
<option selected value="{$k}">{$v}</option>
|
||||
{else}
|
||||
<option value="{$k}">{$v}</option>
|
||||
|
||||
@ -1,29 +1,29 @@
|
||||
<form action="{:sysuri()}" autocomplete="off" class='layui-form layui-card' data-auto="true" method="post" onsubmit="return false;">
|
||||
<form action="{:sysuri()}" class='layui-form layui-card' data-auto="true" data-table-id="DataTable" method="post">
|
||||
|
||||
<div class="layui-card-body padding-left-40">
|
||||
|
||||
<label class="layui-form-item block relative">
|
||||
<span class="help-label"><b>快递公司名称</b>Name</span>
|
||||
<input class="layui-input" name="name" placeholder="请输入快递公司名称" required value='{$vo.name|default=""}'>
|
||||
<p class="color-desc">必填,快递公司名称用于显示快递配送的公司标识,请尽量保持其精准性。</p>
|
||||
<span class="color-desc">必填,快递公司名称用于显示快递配送的公司标识,请尽量保持其精准性。</span>
|
||||
</label>
|
||||
|
||||
<label class="layui-form-item block relative">
|
||||
<span class="help-label"><b>快递鸟接口查询编码</b>Code01</span>
|
||||
<input class="layui-input" name="code_1" placeholder="请输入快递鸟接口查询编码" required value='{$vo.code_1|default=""}'>
|
||||
<p class="color-desc">必填,快递公司对应在快递鸟接口的编码,可以从快递鸟官方接口文档中获取到。</p>
|
||||
<span class="color-desc">必填,快递公司对应在快递鸟接口的编码,可以从快递鸟官方接口文档中获取到。</span>
|
||||
</label>
|
||||
|
||||
<label class="layui-form-item block relative">
|
||||
<label class="layui-form-item layui-hide">
|
||||
<span class="help-label"><b>快递100百度查询编码</b>Code02</span>
|
||||
<input class="layui-input" name="code_2" placeholder="请输入快递100百度查询编码" value='{$vo.code_2|default=""}'>
|
||||
<p class="color-desc">可选,快递公司在百度快递100应用程序搜索时使用的编码,需要使用网络模拟请求抓取。</p>
|
||||
<span class="color-desc">可选,快递公司在百度快递100应用程序搜索时使用的编码,需要使用网络模拟请求抓取。</span>
|
||||
</label>
|
||||
|
||||
<label class="layui-form-item block relative">
|
||||
<span class="help-label"><b>快递100接口查询编码</b>Code03</span>
|
||||
<input class="layui-input" name="code_3" placeholder="请输入快递100接口查询编码" value='{$vo.code_3|default=""}'>
|
||||
<p class="color-desc">必填,快递公司对应在快递100接口的编码,可以从快递100官方接口文档中获取到。</p>
|
||||
<input class="layui-input" name="code_3" placeholder="请输入快递100接口查询编码" required value='{$vo.code_3|default=""}'>
|
||||
<span class="color-desc">必填,快递公司对应在快递100接口的编码,可以从快递100官方接口文档中获取到。</span>
|
||||
</label>
|
||||
|
||||
<label class="layui-form-item block relative">
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
{extend name="../../admin/view/main"}
|
||||
{extend name="../../admin/view/table"}
|
||||
|
||||
{block name="button"}
|
||||
<!--{if auth("sync") and $type eq 'index'}-->
|
||||
@ -10,15 +10,15 @@
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if auth("state") and $type eq 'index'}-->
|
||||
<button class='layui-btn layui-btn-sm layui-btn-primary' data-action='{:url("state")}' data-confirm="确定要禁用快递公司?" data-rule="id#{key};status#0">批量禁用</button>
|
||||
<button class='layui-btn layui-btn-sm layui-btn-primary' data-table-id="DataTable" data-action='{:url("state")}' data-rule="id#{id};status#0">批量禁用</button>
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if auth("state") and $type eq 'recycle'}-->
|
||||
<button class='layui-btn layui-btn-sm layui-btn-primary' data-action='{:url("state")}' data-rule="id#{key};status#1">批量启用</button>
|
||||
<!--{if auth("state") and $type neq 'index'}-->
|
||||
<button class='layui-btn layui-btn-sm layui-btn-primary' data-table-id="DataTable" data-action='{:url("state")}' data-rule="id#{id};status#1">批量启用</button>
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if auth("remove") and $type eq 'recycle'}-->
|
||||
<button class='layui-btn layui-btn-sm layui-btn-primary' data-action='{:url("remove")}' data-csrf="{:systoken('remove')}" data-rule="id#{key}">批量删除</button>
|
||||
<!--{if auth("remove") and $type neq 'index'}-->
|
||||
<button class='layui-btn layui-btn-sm layui-btn-primary' data-table-id="DataTable" data-action='{:url("remove")}' data-rule="id#{id}">批量删除</button>
|
||||
<!--{/if}-->
|
||||
{/block}
|
||||
|
||||
@ -34,59 +34,67 @@
|
||||
</ul>
|
||||
<div class="layui-tab-content">
|
||||
{include file='base/postage/company/index_search'}
|
||||
<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>
|
||||
</th>
|
||||
<th class='list-table-sort-td'>
|
||||
<button class="layui-btn layui-btn-xs" data-reload type="button">刷 新</button>
|
||||
</th>
|
||||
<th class='text-left nowrap'>快递名称</th>
|
||||
<th class='text-center nowrap'>快递鸟接口编码</th>
|
||||
<th class='text-center nowrap'>快递100百度编码</th>
|
||||
<th class='text-center nowrap'>快递100接口编码</th>
|
||||
<th class="text-center">创建时间</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
{/notempty}
|
||||
<tbody>
|
||||
{foreach $list as $key=>$vo}
|
||||
<tr data-dbclick>
|
||||
<td class='list-table-check-td think-checkbox'>
|
||||
<label><input class="list-check-box" type='checkbox' value='{$vo.id}'></label>
|
||||
</td>
|
||||
<td class='list-table-sort-td'>
|
||||
<label><input class="list-sort-input" data-action-blur="{:sysuri()}" data-loading="false" data-value="id#{$vo.id};action#sort;sort#{value}" value="{$vo.sort}"></label>
|
||||
</td>
|
||||
<td class='text-left nowrap'>{$vo.name|default=''}</td>
|
||||
<td class='text-center nowrap'>{$vo.code_1|default='-'}</td>
|
||||
<td class='text-center nowrap'>{$vo.code_2|default='-'}</td>
|
||||
<td class='text-center nowrap'>{$vo.code_3|default='-'}</td>
|
||||
<td class='text-center nowrap'>{$vo.create_at|format_datetime}</td>
|
||||
<td class='text-left nowrap'>
|
||||
<!--{if auth("edit") and $type eq 'index'}-->
|
||||
<a class="layui-btn layui-btn-sm" data-dbclick data-modal='{:url("edit")}?id={$vo.id}' data-title="编辑快递公司">编 辑</a>
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if $vo.status eq 1 and auth("state")}-->
|
||||
<a class="layui-btn layui-btn-warm layui-btn-sm" data-action="{:url('state')}" data-value="id#{$vo.id};status#0">禁 用</a>
|
||||
<!--{elseif auth("state")}-->
|
||||
<a class="layui-btn layui-btn-warm layui-btn-sm" data-action="{:url('state')}" data-value="id#{$vo.id};status#1">激 活</a>
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if auth("remove") and $type eq 'recycle'}-->
|
||||
<a class="layui-btn layui-btn-danger layui-btn-sm" data-action="{:url('remove')}" data-confirm="确定要删除数据吗?" data-value="id#{$vo.id}">删 除</a>
|
||||
<!--{/if}-->
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{empty name='list'}<span class="notdata">没有记录哦</span>{else}{$pagehtml|raw|default=''}{/empty}
|
||||
<table id="DataTable" data-url="{:sysuri()}" data-target-search="form.form-search"></table>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
|
||||
{block name='script'}
|
||||
<script>
|
||||
$(function () {
|
||||
$('#DataTable').layTable({
|
||||
even: true, height: 'full',
|
||||
sort: {field: 'sort desc,id', type: 'desc'},
|
||||
where: {type: '{$type|default="index"}'},
|
||||
cols: [[
|
||||
{checkbox: true},
|
||||
{field: 'sort', title: '排序权重', width: 100, align: 'center', sort: true, templet: '#SortInputTpl'},
|
||||
{field: 'name', title: '公司名称', align: "left", minWidth: 100},
|
||||
{field: 'code_1', title: '快递鸟编码', align: "left", minWidth: 100},
|
||||
{field: 'code_3', title: '快递100编码', align: "left", minWidth: 100},
|
||||
{field: 'status', title: '使用状态', align: 'center', minWidth: 110, templet: '#StatusSwitchTpl'},
|
||||
{field: 'create_at', title: '添加时间', align: 'center', minWidth: 170},
|
||||
{toolbar: '#toolbar', title: '操作面板', align: 'center', fixed: 'right'}
|
||||
]]
|
||||
});
|
||||
|
||||
// 数据状态切换操作
|
||||
layui.form.on('switch(StatusSwitch)', function (obj, data) {
|
||||
data = {id: obj.value, status: obj.elem.checked > 0 ? 1 : 0};
|
||||
$.form.load("{:url('state')}", data, 'post', function (ret) {
|
||||
if (ret.code < 1) $.msg.error(ret.info, 3, function () {
|
||||
$('#DataTable').trigger('reload');
|
||||
}); else {
|
||||
$('#DataTable').trigger('reload');
|
||||
}
|
||||
return false;
|
||||
}, false);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- 排序权重模板 -->
|
||||
<script type="text/html" id="SortInputTpl">
|
||||
<input type="number" min="0" data-blur-number="0" data-action-blur="{:sysuri()}" data-value="id#{{d.id}};action#sort;sort#{value}" data-loading="false" value="{{d.sort}}" class="layui-input text-center">
|
||||
</script>
|
||||
|
||||
<!-- 状态切换模板 -->
|
||||
<script type="text/html" id="StatusSwitchTpl">
|
||||
<!--{if auth("state")}-->
|
||||
<input type="checkbox" value="{{d.id}}" lay-skin="switch" lay-text="已激活|已禁用" lay-filter="StatusSwitch" {{d.status>0?'checked':''}}>
|
||||
<!--{else}-->
|
||||
{{d.status ? '<b class="color-red">已激活</b>' : '<b class="color-green">已禁用</b>'}}
|
||||
<!--{/if}-->
|
||||
</script>
|
||||
|
||||
<!-- 操作面板模板 -->
|
||||
<script type="text/html" id="toolbar">
|
||||
<!--{if auth("edit") and isset($type) and $type eq 'index'}-->
|
||||
<a class="layui-btn layui-btn-sm" data-modal="{:url('edit')}?id={{d.id}}" data-title="编辑快递公司">编 辑</a>
|
||||
<!--{/if}-->
|
||||
<!--{if auth("remove") and isset($type) and $type neq 'index'}-->
|
||||
<a class="layui-btn layui-btn-sm layui-btn-danger" data-action="{:url('remove')}" data-value="id#{{d.id}}" data-confirm="确定要删除该用户吗?">删 除</a>
|
||||
<!--{/if}-->
|
||||
</script>
|
||||
{/block}
|
||||
@ -1,6 +1,6 @@
|
||||
<fieldset>
|
||||
<legend>条件搜索</legend>
|
||||
<form action="{:url('index')}" autocomplete="off" class="layui-form layui-form-pane form-search" method="get" onsubmit="return false">
|
||||
<form action="{:sysuri()}" autocomplete="off" class="layui-form layui-form-pane form-search" method="get" onsubmit="return false">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">快递名称</label>
|
||||
<label class="layui-input-inline">
|
||||
|
||||
@ -2,17 +2,15 @@
|
||||
|
||||
{block name="content"}
|
||||
<div id="TruckForm">
|
||||
<form action="{:sysuri()}" autocomplete="off" class='layui-form layui-card' data-auto="true" method="post" onsubmit="return false;">
|
||||
<div class="layui-card-body padding-40">
|
||||
<form action="{:sysuri()}" class='layui-form layui-card shadow' data-auto="true" method="post">
|
||||
<div class="layui-card-body padding-40 padding-bottom-10">
|
||||
<label class="layui-form-item block relative">
|
||||
<span class="color-green font-w7">邮费模板名称</span>
|
||||
<span class="color-desc margin-left-5">Name</span>
|
||||
<span class="help-label"><b>邮费模板名称</b>Name</span>
|
||||
<input class="layui-input" name="name" placeholder="请输入邮费模板名称" required value='{$vo.name|default=""}'>
|
||||
<p class="color-desc"><b>必填</b>,邮费模板名称用于区分邮费模板规则,仅在后台选择邮费模板时使用。</p>
|
||||
<span class="color-desc"><b>必填</b>,邮费模板名称用于区分邮费模板规则,仅在后台选择邮费模板时使用。</span>
|
||||
</label>
|
||||
<div class="layui-form-item">
|
||||
<span class="color-green font-w7 label-required-prev">配送区域计费规则</span>
|
||||
<span class="color-desc margin-left-5">Region</span>
|
||||
<div class="layui-form-item label-required-prev">
|
||||
<span class="help-label"><b>配送区域计费规则</b>Region</span>
|
||||
<table class="layui-table">
|
||||
<thead>
|
||||
<tr>
|
||||
@ -76,12 +74,16 @@
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<label class="layui-form-item layui-hide">
|
||||
<textarea class="layui-textarea layui-bg-gray" name="normal">{{defs.rule}}</textarea>
|
||||
<textarea class="layui-textarea layui-bg-gray" name="content">{{GetRuleData()}}</textarea>
|
||||
</label>
|
||||
|
||||
<div class="hr-line-dashed margin-top-30"></div>
|
||||
{notempty name='vo.id'}<input name="id" type="hidden" value="{$vo.id}">{/notempty}
|
||||
{notempty name='vo.code'}<input name="code" type="hidden" value="{$vo.code}">{/notempty}
|
||||
|
||||
<div class="layui-form-item text-center">
|
||||
<button class="layui-btn" type='submit'>保存数据</button>
|
||||
</div>
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
{extend name="../../admin/view/main"}
|
||||
{extend name="../../admin/view/table"}
|
||||
|
||||
{block name="button"}
|
||||
<!--{if auth("add")}-->
|
||||
@ -12,59 +12,76 @@
|
||||
|
||||
{block name="content"}
|
||||
<div class="layui-tab layui-tab-card think-bg-white">
|
||||
<ul class="layui-tab-title">
|
||||
{foreach ['index'=>'费用模板','recycle'=>'回 收 站'] as $k=>$v}
|
||||
{if isset($type) and $type eq $k}
|
||||
<li class="layui-this" data-open="{:url('index')}?type={$k}">{$v}</li>
|
||||
{else}
|
||||
<li data-open="{:url('index')}?type={$k}">{$v}</li>
|
||||
{/if}{/foreach}
|
||||
</ul>
|
||||
<div class="layui-tab-content">
|
||||
{include file='base/postage/template/index_search'}
|
||||
<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>
|
||||
</th>
|
||||
<th class='list-table-sort-td'>
|
||||
<button class="layui-btn layui-btn-xs" data-reload type="button">刷 新</button>
|
||||
</th>
|
||||
<th class='text-left nowrap'>模板编号</th>
|
||||
<th class='text-left nowrap'>模板名称</th>
|
||||
<th class='text-left nowrap'>使用状态</th>
|
||||
<th class="text-left">创建时间</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
{/notempty}
|
||||
<tbody>
|
||||
{foreach $list as $key=>$vo}
|
||||
<tr data-dbclick>
|
||||
<td class='list-table-check-td think-checkbox'>
|
||||
<label><input class="list-check-box" type='checkbox' value='{$vo.id}'></label>
|
||||
</td>
|
||||
<td class='list-table-sort-td'>
|
||||
<label><input class="list-sort-input" data-action-blur="{:sysuri()}" data-loading="false" data-value="id#{$vo.id};action#sort;sort#{value}" value="{$vo.sort}"></label>
|
||||
</td>
|
||||
<td class='text-left nowrap'>{$vo.code|default=''}</td>
|
||||
<td class='text-left nowrap'>{$vo.name|default=''}</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'>{$vo.create_at|format_datetime}</td>
|
||||
<td class='text-left nowrap'>
|
||||
<!--{if auth("edit")}-->
|
||||
<a class="layui-btn layui-btn-sm" data-dbclick data-open='{:url("edit")}?code={$vo.code}' data-title="编辑快递公司">编 辑</a>
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if auth("state") and $vo.status eq 1}-->
|
||||
<a class="layui-btn layui-btn-warm layui-btn-sm" data-action="{:url('state')}" data-value="code#{$vo.code};status#0">禁 用</a>
|
||||
<!--{elseif auth("state") and $vo.status eq 0}-->
|
||||
<a class="layui-btn layui-btn-warm layui-btn-sm" data-action="{:url('state')}" data-value="code#{$vo.code};status#1">激 活</a>
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if auth("remove")}-->
|
||||
<a class="layui-btn layui-btn-danger layui-btn-sm" data-action="{:url('remove')}" data-confirm="确定要删除数据吗?" data-value="code#{$vo.code}">删 除</a>
|
||||
<!--{/if}-->
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{empty name='list'}<span class="notdata">没有记录哦</span>{else}{$pagehtml|raw|default=''}{/empty}
|
||||
<table id="DataTable" data-url="{:sysuri()}" data-target-search="form.form-search"></table>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
|
||||
{block name='script'}
|
||||
<script>
|
||||
$(function () {
|
||||
$('#DataTable').layTable({
|
||||
even: true, height: 'full',
|
||||
sort: {field: 'sort desc,id', type: 'desc'},
|
||||
where: {type: '{$type|default="index"}'},
|
||||
cols: [[
|
||||
{checkbox: true},
|
||||
{field: 'sort', title: '排序权重', width: 100, align: 'center', sort: true, templet: '#SortInputTpl'},
|
||||
{field: 'code', title: '模板编号', align: "left", minWidth: 100},
|
||||
{field: 'name', title: '模板名称', align: "left", minWidth: 100},
|
||||
{field: 'status', title: '使用状态', align: 'center', minWidth: 110, templet: '#StatusSwitchTpl'},
|
||||
{field: 'create_at', title: '添加时间', align: 'center', minWidth: 170},
|
||||
{toolbar: '#toolbar', title: '操作面板', align: 'center', minWidth: 80, fixed: 'right'}
|
||||
]]
|
||||
});
|
||||
|
||||
// 数据状态切换操作
|
||||
layui.form.on('switch(StatusSwitch)', function (obj, data) {
|
||||
data = {id: obj.value, status: obj.elem.checked > 0 ? 1 : 0};
|
||||
$.form.load("{:url('state')}", data, 'post', function (ret) {
|
||||
if (ret.code < 1) $.msg.error(ret.info, 3, function () {
|
||||
$('#DataTable').trigger('reload');
|
||||
}); else {
|
||||
$('#DataTable').trigger('reload');
|
||||
}
|
||||
return false;
|
||||
}, false);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- 排序权重模板 -->
|
||||
<script type="text/html" id="SortInputTpl">
|
||||
<input type="number" min="0" data-blur-number="0" data-action-blur="{:sysuri()}" data-value="id#{{d.id}};action#sort;sort#{value}" data-loading="false" value="{{d.sort}}" class="layui-input text-center">
|
||||
</script>
|
||||
|
||||
<!-- 状态切换模板 -->
|
||||
<script type="text/html" id="StatusSwitchTpl">
|
||||
<!--{if auth("state")}-->
|
||||
<input type="checkbox" value="{{d.id}}" lay-skin="switch" lay-text="已激活|已禁用" lay-filter="StatusSwitch" {{d.status>0?'checked':''}}>
|
||||
<!--{else}-->
|
||||
{{d.status ? '<b class="color-red">已激活</b>' : '<b class="color-green">已禁用</b>'}}
|
||||
<!--{/if}-->
|
||||
</script>
|
||||
|
||||
<!-- 操作面板模板 -->
|
||||
<script type="text/html" id="toolbar">
|
||||
<!--{if auth("edit") and isset($type) and $type eq 'index'}-->
|
||||
<a class="layui-btn layui-btn-sm" data-open="{:url('edit')}?id={{d.id}}">编 辑</a>
|
||||
<!--{/if}-->
|
||||
<!--{if auth("remove") and isset($type) and $type neq 'index'}-->
|
||||
<a class="layui-btn layui-btn-sm layui-btn-danger" data-action="{:url('remove')}" data-value="id#{{d.id}}" data-confirm="确定要删除该用户吗?">删 除</a>
|
||||
<!--{/if}-->
|
||||
</script>
|
||||
{/block}
|
||||
@ -15,21 +15,6 @@
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">使用状态</label>
|
||||
<label class="layui-input-inline">
|
||||
<select class="layui-select" name="status">
|
||||
<option value=''>-- 全部状态 --</option>
|
||||
{foreach ['已禁用的模板','已激活的模板'] as $k=>$v}
|
||||
{if input('status','-') eq $k.''}
|
||||
<option selected value="{$k}">{$v}</option>
|
||||
{else}
|
||||
<option value="{$k}">{$v}</option>
|
||||
{/if}{/foreach}
|
||||
</select>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">添加时间</label>
|
||||
<label class="layui-input-inline">
|
||||
|
||||
@ -5,10 +5,9 @@
|
||||
<div class="layui-card-body">
|
||||
|
||||
{notempty name='marks'}
|
||||
<div class="layui-form-item relative block">
|
||||
<span class="color-green font-w7 label-required-prev">文章标签</span>
|
||||
<span class="color-desc margin-left-5">Mark Name</span>
|
||||
<div class="markbox layui-textarea">
|
||||
<div class="layui-form-item">
|
||||
<span class="help-label"><b>文章标签</b>Mark Name</span>
|
||||
<div class="layui-textarea help-checks">
|
||||
{foreach $marks as $tag}{if isset($vo.mark) && is_array($vo.mark) && in_array($tag.name, $vo.mark)}
|
||||
<label class="think-checkbox notselect"><input checked lay-ignore name="mark[]" type="checkbox" value="{$tag.name}"> {$tag.name}</label>
|
||||
{else}
|
||||
@ -18,31 +17,27 @@
|
||||
</div>
|
||||
{/notempty}
|
||||
|
||||
<div class="layui-form-item relative block">
|
||||
<span class="color-green font-w7 label-required-prev">文章封面</span>
|
||||
<span class="color-desc margin-left-5">Conver Image</span>
|
||||
<label class="relative block label-required-null">
|
||||
<input class="layui-input" name="cover" placeholder="请上传文章封面 " required value='{$vo.cover|default=""}'>
|
||||
<div class="layui-form-item label-required-prev">
|
||||
<span class="help-label"><b>文章封面</b>Conver Image</span>
|
||||
<div class="relative block label-required-null">
|
||||
<input class="layui-input think-bg-gray" readonly name="cover" placeholder="请上传文章封面" required value='{$vo.cover|default=""}'>
|
||||
<a class="input-right-icon layui-icon layui-icon-upload" data-field="cover" data-file data-type="png,jpg,gif"></a>
|
||||
<script>$('[name="cover"]').uploadOneImage()</script>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label class="layui-form-item relative block">
|
||||
<span class="color-green font-w7">文章标题</span>
|
||||
<span class="color-desc margin-left-5">Article Name</span>
|
||||
<span class="help-label"><b>文章标题</b>Article Name</span>
|
||||
<input class="layui-input" name="name" placeholder="请输入文章标题" required value='{$vo.name|default=""}'>
|
||||
</label>
|
||||
|
||||
<label class="layui-form-item relative block">
|
||||
<span class="color-green font-w7">简介描述</span>
|
||||
<span class="color-desc margin-left-5">Article Remark</span>
|
||||
<span class="help-label"><b>简介描述</b>Article Remark</span>
|
||||
<textarea class="layui-textarea" name="remark" placeholder="请输入简介描述" required>{$vo.remark|default=''}</textarea>
|
||||
</label>
|
||||
|
||||
<div class="layui-form-item relative block">
|
||||
<span class="color-green font-w7 label-required-prev">富文本内容</span>
|
||||
<span class="color-desc margin-left-5">Article Content</span>
|
||||
<div class="layui-form-item label-required-prev">
|
||||
<span class="help-label"><b>富文本内容</b>Article Content</span>
|
||||
<label class="relative block">
|
||||
<textarea class="layui-textarea" name="content" placeholder="请输入文章内容">{$vo.content|default=''}</textarea>
|
||||
</label>
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if auth("news.mark/index")}-->
|
||||
<button class='layui-btn layui-btn-sm layui-btn-primary' data-iframe='{:url("news.mark/index")}' data-title="标签管理" data-width="900px">标签管理</button>
|
||||
<button class='layui-btn layui-btn-sm layui-btn-primary' data-modal='{:url("news.mark/index")}' data-title="标签管理" data-width="900px">标签管理</button>
|
||||
<!--{/if}-->
|
||||
{/block}
|
||||
|
||||
@ -53,7 +53,7 @@
|
||||
<td class='text-left nowrap'>
|
||||
|
||||
<!--{if auth("edit")}-->
|
||||
<a class="layui-btn layui-btn-sm" data-dbclick data-open="{:url('edit')}?id={$vo.id}" data-title="编辑文章文章">编 辑</a>
|
||||
<a class="layui-btn layui-btn-sm" data-open="{:url('edit')}?id={$vo.id}">编 辑</a>
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if auth("state") and $vo.status eq 1}-->
|
||||
|
||||
@ -1,19 +1,19 @@
|
||||
<form action="{:sysuri()}" autocomplete="off" class="layui-form layui-card" data-auto="true" method="post">
|
||||
<form action="{:sysuri()}" data-table-id="TagsData" class="layui-form layui-card" data-auto="true" method="post">
|
||||
<div class="layui-card-body padding-left-40">
|
||||
|
||||
<label class="layui-form-item relative block">
|
||||
<span class="color-green font-w7">标签名称</span>
|
||||
<span class="color-desc margin-left-5">Mark Name</span>
|
||||
<span class="help-label"><b>标签名称</b>Mark Name</span>
|
||||
<input class="layui-input" name="name" placeholder="请输入标签名称" required value="{$vo.name|default=''}"/>
|
||||
<span class="help-block"><b>必填,</b>请填写标签名称,建议字符不要太长,一般4-6个汉字</span>
|
||||
<span class="help-block"><b>必填,</b>请填写标签名称,建议字符不要太长</span>
|
||||
</label>
|
||||
|
||||
<div class="layui-form-item relative block">
|
||||
<span class="color-green font-w7">标签描述</span>
|
||||
<span class="color-desc margin-left-5">Mark Remark</span>
|
||||
<div class="layui-form-item relative">
|
||||
<span class="help-label"><b>标签描述</b>Mark Remark</span>
|
||||
<label class="relative block">
|
||||
<textarea class="layui-textarea" name="remark" placeholder="请输入文档描述">{$vo.remark|default=''}</textarea>
|
||||
<textarea class="layui-textarea" name="desc" placeholder="请输入文档描述">{$vo.desc|default=''}</textarea>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="hr-line-dashed"></div>
|
||||
@ -21,6 +21,6 @@
|
||||
|
||||
<div class="layui-form-item text-center">
|
||||
<button class="layui-btn" type='submit'>保存数据</button>
|
||||
<button class="layui-btn layui-btn-danger" data-close data-confirm="确定要取消编辑吗?" type='button'>取消编辑</button>
|
||||
<button class="layui-btn layui-btn-danger" data-close type='button' data-confirm="确定要取消修改吗?">取消编辑</button>
|
||||
</div>
|
||||
</form>
|
||||
@ -1,63 +1,100 @@
|
||||
{extend name="../../admin/view/full"}
|
||||
<div class="think-box-shadow">
|
||||
<fieldset>
|
||||
<legend>条件搜索</legend>
|
||||
<form action="{:sysuri()}" id="TagsDataSearch" autocomplete="off" class="layui-form layui-form-pane nowrap form-search" method="get" onsubmit="return false">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">标签名称</label>
|
||||
<label class="layui-input-inline">
|
||||
<input class="layui-input" name="name" placeholder="请输入标签名称" value="{$get.name|default=''}">
|
||||
</label>
|
||||
</div>
|
||||
|
||||
{block name='content'}
|
||||
<div class="iframe-pagination">
|
||||
{include file='news/mark/index_search'}
|
||||
<table class="layui-table margin-top-10" 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>
|
||||
</th>
|
||||
<th class='list-table-sort-td'>
|
||||
<button class="layui-btn layui-btn-xs" data-reload type="button">刷 新</button>
|
||||
</th>
|
||||
<th class="text-left nowrap">标签名称</th>
|
||||
<th class="text-left nowrap">标签状态</th>
|
||||
<th class="text-left nowrap">创建时间</th>
|
||||
<th class="text-left nowrap"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
{/notempty}
|
||||
<tbody>
|
||||
{foreach $list as $key=>$vo}
|
||||
<tr data-dbclick>
|
||||
<td class='list-table-check-td think-checkbox'>
|
||||
<label><input class="list-check-box" type='checkbox' value='{$vo.id}'></label>
|
||||
</td>
|
||||
<td class='list-table-sort-td'>
|
||||
<label><input class="list-sort-input" data-action-blur="{:sysuri()}" data-loading="false" data-value="id#{$vo.id};action#sort;sort#{value}" value="{$vo.sort}"></label>
|
||||
</td>
|
||||
<td class="text-left nowrap">{$vo.name|default=''}</td>
|
||||
<td>{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">{$vo.create_at|format_datetime}</td>
|
||||
<td class='text-left nowrap'>
|
||||
<!--{if auth("edit")}-->
|
||||
<a class="layui-btn layui-btn-sm" data-dbclick data-modal="{:url('edit')}?id={$vo.id}" data-title="编辑标签" data-width="500px">编 辑</a>
|
||||
<!--{/if}-->
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">使用状态</label>
|
||||
<div class="layui-input-inline">
|
||||
<select class="layui-select" name="status">
|
||||
<option value=''>-- 全部 --</option>
|
||||
{foreach ['已禁用的记录','已激活的记录'] as $k=>$v}
|
||||
{if isset($get.status) and $get.status eq $k.''}
|
||||
<option selected value="{$k}">{$v}</option>
|
||||
{else}
|
||||
<option value="{$k}">{$v}</option>
|
||||
{/if}{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--{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">禁 用</a>
|
||||
<!--{/if}-->
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">创建时间</label>
|
||||
<label class="layui-input-inline">
|
||||
<input class="layui-input" data-date-range name="create_at" placeholder="请选择创建时间" value="{$get.create_at|default=''}">
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<!--{if 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">激 活</a>
|
||||
<!--{/if}-->
|
||||
<div class="layui-form-item layui-inline">
|
||||
<button class="layui-btn layui-btn-primary"><i class="layui-icon"></i> 搜 索</button>
|
||||
<!-- {if auth('add')} -->
|
||||
<button class="layui-btn" data-title="添加素材标签" data-modal="{:url('add')}" type="button">
|
||||
<i class="layui-icon"></i> 添 加
|
||||
</button>
|
||||
<!-- {/if} -->
|
||||
</div>
|
||||
|
||||
<!--{if auth("remove")}-->
|
||||
<a class="layui-btn layui-btn-sm layui-btn-danger" data-action="{:url('remove')}" data-confirm="确定要删除该标签吗?" data-value="id#{$vo.id}">删 除</a>
|
||||
<!--{/if}-->
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{empty name='list'}<span class="notdata">没有记录哦</span>{else}{$pagehtml|raw|default=''}{/empty}
|
||||
<!--{if auth("add")}-->
|
||||
<div class="fixed" style="bottom:5px;right:10px">
|
||||
<button class='layui-btn layui-btn-sm' data-modal='{:url("add")}' data-title="添加标签" data-width="500px" type="button">添加标签</button>
|
||||
</div>
|
||||
<!--{/if}-->
|
||||
</form>
|
||||
</fieldset>
|
||||
<table id="TagsData" data-url="{:sysuri()}" data-target-search="#TagsDataSearch"></table>
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
<script>
|
||||
$(function () {
|
||||
$('#TagsData').layTable({
|
||||
even: true, height: 'full',
|
||||
sort: {field: 'sort desc,id', type: 'desc'},
|
||||
cols: [[
|
||||
{field: 'id', title: 'ID', width: 80, align: 'center', sort: true},
|
||||
{field: 'sort', title: '排序权重', width: 100, align: 'center', sort: true, templet: '#SortInputTagsDataTplModal'},
|
||||
{field: 'name', title: '标签名称', minWidth: 100},
|
||||
{field: 'status', title: '状态', width: 110, align: 'center', templet: '#StatusSwitchTagsDataTpl'},
|
||||
{field: 'create_at', title: '创建时间', minWidth: 170, align: 'center'},
|
||||
{toolbar: '#ToolbarTagsData', title: '操作面板', minWidth: 100, align: 'center', fixed: 'right'},
|
||||
]]
|
||||
});
|
||||
|
||||
// 数据状态切换操作
|
||||
layui.form.on('switch(StatusSwitchTagsData)', function (obj) {
|
||||
var data = {id: obj.value, status: obj.elem.checked > 0 ? 1 : 0};
|
||||
$.form.load("{:url('state')}", data, 'post', function (ret) {
|
||||
if (ret.code < 1) $.msg.error(ret.info, 3, function () {
|
||||
$('#TagsData').trigger('reload');
|
||||
});
|
||||
return false;
|
||||
}, false);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- 数据状态切换模板 -->
|
||||
<script type="text/html" id="StatusSwitchTagsDataTpl">
|
||||
<!--{if auth("state")}-->
|
||||
<input type="checkbox" value="{{d.id}}" lay-skin="switch" lay-text="已激活|已禁用" lay-filter="StatusSwitchTagsData" {{d.status>0?'checked':''}}>
|
||||
<!--{else}-->
|
||||
{{d.status ? '<b class="color-green">已激活</b>' : '<b class="color-red">已禁用</b>'}}
|
||||
<!--{/if}-->
|
||||
</script>
|
||||
|
||||
<!-- 列表排序权重模板 -->
|
||||
<script type="text/html" id="SortInputTagsDataTplModal">
|
||||
<input type="number" min="0" data-blur-number="0" data-action-blur="{:sysuri()}" data-value="id#{{d.id}};action#sort;sort#{value}" data-loading="false" value="{{d.sort}}" class="layui-input text-center">
|
||||
</script>
|
||||
|
||||
<!-- 操控面板的模板 -->
|
||||
<script type="text/html" id="ToolbarTagsData">
|
||||
|
||||
<!--{if auth("edit")}-->
|
||||
<a class="layui-btn layui-btn-sm" data-title="编辑标签数据" data-modal='{:url("edit")}?id={{d.id}}'>编 辑</a>
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if auth("remove")}-->
|
||||
<a class="layui-btn layui-btn-sm layui-btn-danger" data-confirm="确定要删除此标签吗?" data-action="{:url('remove')}" data-value="id#{{d.id}}">删 除</a>
|
||||
<!--{/if}-->
|
||||
</script>
|
||||
@ -1,9 +1,9 @@
|
||||
<form action="{:sysuri()}" autocomplete="off" class="layui-form layui-card" data-auto="true" method="post">
|
||||
<form action="{:sysuri()}" data-table-id="FormTable" class="layui-form layui-card" data-auto="true" method="post">
|
||||
<div class="layui-card-body padding-left-40">
|
||||
<label class="layui-form-item relative block">
|
||||
<span class="color-green font-w7 label-required-prev">绑定上级分类</span>
|
||||
<span class="color-desc margin-left-5">Category Parent</span>
|
||||
<select class='layui-select' lay-search name='pid'>
|
||||
|
||||
<div class="layui-form-item label-required-prev">
|
||||
<span class="help-label"><b>绑定上级分类</b>Category Parent</span>
|
||||
<select class='layui-select' name='pid' lay-search>
|
||||
{foreach $cates as $cate}
|
||||
{eq name='cate.id' value='$vo.pid|default=0'}
|
||||
<option selected value='{$cate.id}'>{$cate.spl|raw}{$cate.name}</option>
|
||||
@ -12,32 +12,36 @@
|
||||
{/eq}{/foreach}
|
||||
</select>
|
||||
<span class="help-block"><b>必选,</b>请选择上级分类或顶级分类(目前最多支持{$cateLevel|default=0}级分类)</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<label class="layui-form-item relative block">
|
||||
<span class="color-green font-w7">商品分类名称</span>
|
||||
<span class="color-desc margin-left-5">Category Name</span>
|
||||
<span class="help-label"><b>商品分类名称</b>Category Name</span>
|
||||
<input class="layui-input" name="name" placeholder="请输入分类名称" required value='{$vo.name|default=""}'>
|
||||
<span class="help-block"><b>必填,</b>请填写商品分类名称,建议字符不要太长,一般4-6个汉字(如:系统管理)</span>
|
||||
<span class="help-block"><b>必填,</b>请填写商品分类名称,建议字符不要太长,一般 4-6 个汉字</span>
|
||||
</label>
|
||||
|
||||
<div class="layui-form-item relative block">
|
||||
<span class="color-green font-w7">商品分类图标</span>
|
||||
<span class="color-desc margin-left-5">Category Icon</span>
|
||||
<span class="help-label"><b>商品分类图标</b>Category Cover</span>
|
||||
<label class="relative block">
|
||||
<input class="layui-input" name="cover" placeholder="请上传商品分类图标 " value='{$vo.cover|default=""}'>
|
||||
<input class="layui-input think-bg-gray" readonly name="cover" placeholder="请上传商品分类图标" value='{$vo.cover|default=""}'>
|
||||
<a class="input-right-icon layui-icon layui-icon-upload" data-field="cover" data-file data-type="png,jpg,gif"></a>
|
||||
</label>
|
||||
<span class="help-block"><b>可选,</b>请上传商品分类图标,需要是 http 可访问的图片资源链接</span>
|
||||
</div>
|
||||
|
||||
<label class="layui-form-item relative block">
|
||||
<span class="color-green font-w7">商品分类描述</span>
|
||||
<span class="color-desc margin-left-5">Category Remark</span>
|
||||
<textarea class="layui-textarea" name="remark" placeholder="请输入分类描述">{$vo.remark|default=''}</textarea>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="hr-line-dashed"></div>
|
||||
{notempty name='vo.id'}<input name='id' type='hidden' value='{$vo.id}'>{/notempty}
|
||||
|
||||
<div class="layui-form-item text-center">
|
||||
<button class="layui-btn" type='submit'>保存数据</button>
|
||||
<button class="layui-btn layui-btn-danger" data-close data-confirm="确定要取消编辑吗?" type='button'>取消编辑</button>
|
||||
<button class="layui-btn layui-btn-danger" data-close type='button' data-confirm="确定要取消编辑吗?">取消编辑</button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
@ -1,4 +1,4 @@
|
||||
{extend name="../../admin/view/main"}
|
||||
{extend name="../../admin/view/table"}
|
||||
|
||||
{block name="button"}
|
||||
<!--{if auth("add")}-->
|
||||
@ -6,68 +6,86 @@
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if auth("remove")}-->
|
||||
<button class='layui-btn layui-btn-sm layui-btn-primary' data-action='{:url("remove")}' data-rule="id#{key}">删除分类</button>
|
||||
<button class='layui-btn layui-btn-sm layui-btn-primary' data-action='{:url("remove")}' data-rule="id#{sps}">删除分类</button>
|
||||
<!--{/if}-->
|
||||
{/block}
|
||||
|
||||
{block name="content"}
|
||||
<div class="think-box-shadow">
|
||||
{notempty name='list'}
|
||||
<table class="layui-table" lay-skin="line">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class='list-table-check-td think-checkbox'>
|
||||
<label><input data-auto-none data-check-target='.list-check-box' type='checkbox'></label>
|
||||
</th>
|
||||
<th class='list-table-sort-td'>
|
||||
<button class="layui-btn layui-btn-xs" data-reload type="button">刷 新</button>
|
||||
</th>
|
||||
<th class='text-center'></th>
|
||||
<th colspan="3"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach $list as $key=>$vo}
|
||||
<tr>
|
||||
<td class='list-table-check-td think-checkbox'>
|
||||
<label><input class="list-check-box" type='checkbox' value='{$vo.sps}'></label>
|
||||
</td>
|
||||
<td class='list-table-sort-td'>
|
||||
<label><input class="list-sort-input" data-action-blur="{:sysuri()}" data-loading="false" data-value="id#{$vo.id};action#sort;sort#{value}" value="{$vo.sort}"></label>
|
||||
</td>
|
||||
<td class="nowrap"><span class="color-desc notselect">{$vo.spl|raw}</span>{$vo.name}</td>
|
||||
<td class="color-desc">{$vo.remark|default=''}</td>
|
||||
<td class='text-center nowrap'>{eq name='vo.status' value='0'}<span class="color-red">已禁用</span>{else}<span class="color-green">已激活</span>{/eq}</td>
|
||||
<td class='text-center nowrap notselect'>
|
||||
|
||||
<!--{if auth("add")}-->
|
||||
<a class="layui-btn layui-btn-xs layui-btn-primary" data-modal='{:url("add")}?pid={$vo.id}' data-title="添加子分类">添 加</a>
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if auth("edit")}-->
|
||||
<a class="layui-btn layui-btn-xs" data-dbclick data-modal='{:url("edit")}?id={$vo.id}' data-title="编辑分类">编 辑</a>
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if $vo.status eq 0 and auth("state")}-->
|
||||
<a class="layui-btn layui-btn-warm layui-btn-xs" data-action="{:url('state')}" data-csrf="{:systoken('state')}" data-value="id#{$vo.sps};status#1">激 活</a>
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if $vo.status eq 1 and auth("state")}-->
|
||||
<a class="layui-btn layui-btn-warm layui-btn-xs" data-action="{:url('state')}" data-csrf="{:systoken('state')}" data-value="id#{$vo.sps};status#0">禁 用</a>
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if auth("remove")}-->
|
||||
<a class="layui-btn layui-btn-danger layui-btn-xs" data-action="{:url('remove')}" data-confirm="确定要删除数据吗?" data-csrf="{:systoken('remove')}" data-value="id#{$vo.sps}">删 除</a>
|
||||
<!--{/if}-->
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{$pagehtml|raw|default=''}
|
||||
{else}
|
||||
<span class="notdata">没有记录哦</span>
|
||||
{/notempty}
|
||||
<div class="think-box-notify">
|
||||
<b>注意:</b>商品分类需要在上传商品前添加,当商品分类关联有商品时不建议进行 <b class="color-blue">移动</b> 或 <b class="color-blue">删除</b> 操作!
|
||||
</div>
|
||||
|
||||
<div class="think-box-shadow">
|
||||
<table id="FormTable" data-url="{:sysuri()}" data-target-search="form.form-search"></table>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(function () {
|
||||
$('#FormTable').layTable({
|
||||
even: true, height: 'full', page: false,
|
||||
sort: {field: 'sort desc,id', type: 'asc'},
|
||||
where: {type: '{$type|default="index"}'},
|
||||
cols: [[
|
||||
{checkbox: true, field: 'sps'},
|
||||
{field: 'sort', title: '排序权重', width: 100, align: 'center', sort: true, templet: '#SortInputTpl'},
|
||||
{
|
||||
field: 'name', title: '分类名称', minWidth: 220, templet: function (d) {
|
||||
return layui.laytpl('<span class="color-desc">{{d.spl}}</span>{{d.name}}').render(d);
|
||||
}
|
||||
},
|
||||
{field: 'status', title: '分类状态', minWidth: 120, align: 'center', templet: '#StatusSwitchTpl'},
|
||||
{field: 'create_at', title: '创建时间', minWidth: 170, align: 'center'},
|
||||
{toolbar: '#toolbar', title: '操作面板', minWidth: 200, align: 'center', fixed: 'right'},
|
||||
]]
|
||||
});
|
||||
|
||||
// 数据状态切换操作
|
||||
layui.form.on('switch(StatusSwitch)', function (object) {
|
||||
object.data = {status: object.elem.checked > 0 ? 1 : 0};
|
||||
object.data.id = object.value.split('|')[object.data.status] || object.value;
|
||||
$.form.load("{:url('state')}", object.data, 'post', function (ret) {
|
||||
if (ret.code < 1) $.msg.error(ret.info, 3, function () {
|
||||
$('#FormTable').trigger('reload');
|
||||
}); else {
|
||||
$('#FormTable').trigger('reload');
|
||||
}
|
||||
return false;
|
||||
}, false);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- 数据状态切换模板 -->
|
||||
<script type="text/html" id="StatusSwitchTpl">
|
||||
<!--{if auth("state")}-->
|
||||
<input type="checkbox" value="{{d.sps}}|{{d.spp}}" lay-text="已激活|已禁用" lay-filter="StatusSwitch" lay-skin="switch" {{d.status>0?'checked':''}}>
|
||||
<!--{else}-->
|
||||
{{d.status ? '<b class="color-green">已激活</b>' : '<b class="color-red">已禁用</b>'}}
|
||||
<!--{/if}-->
|
||||
</script>
|
||||
|
||||
<!-- 列表排序权重模板 -->
|
||||
<script type="text/html" id="SortInputTpl">
|
||||
<input type="number" min="0" data-blur-number="0" data-action-blur="{:sysuri()}" data-value="id#{{d.id}};action#sort;sort#{value}" data-loading="false" value="{{d.sort}}" class="layui-input text-center">
|
||||
</script>
|
||||
|
||||
<!-- 操控面板的模板 -->
|
||||
<script type="text/html" id="toolbar">
|
||||
|
||||
<!--{if auth('add')}-->
|
||||
{{# if(d.spt<'{$maxLevel-1}'){ }}
|
||||
<a class="layui-btn layui-btn-sm layui-btn-primary" data-title="添加商品分类" data-modal='{:url("add")}?pid={{d.id}}'>添 加</a>
|
||||
{{# }else{ }}
|
||||
<a class="layui-btn layui-btn-sm layui-btn-disabled">添 加</a>
|
||||
{{# } }}
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if auth('edit')}-->
|
||||
<a class="layui-btn layui-btn-sm" data-title="编辑商品分类" data-modal='{:url("edit")}?id={{d.id}}'>编 辑</a>
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if auth('remove')}-->
|
||||
<a class="layui-btn layui-btn-sm layui-btn-danger" data-confirm="确定要删除此分类吗?" data-action="{:url('remove')}" data-value="id#{{d.sps}}">删 除</a>
|
||||
<!--{/if}-->
|
||||
</script>
|
||||
{/block}
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
{/if}
|
||||
|
||||
<!--{if auth("goods.mark/index")}-->
|
||||
<button class='layui-btn layui-btn-sm layui-btn-primary' data-iframe='{:url("shop.mark/index")}' data-title="标签管理" data-width="900px">标签管理</button>
|
||||
<button class='layui-btn layui-btn-sm layui-btn-primary' data-modal='{:url("shop.mark/index")}' data-title="标签管理" data-width="920px">标签管理</button>
|
||||
<!--{/if}-->
|
||||
{/block}
|
||||
|
||||
|
||||
@ -1,19 +1,19 @@
|
||||
<form action="{:sysuri()}" autocomplete="off" class="layui-form layui-card" data-auto="true" method="post">
|
||||
<form action="{:sysuri()}" data-table-id="TagsData" class="layui-form layui-card" data-auto="true" method="post">
|
||||
<div class="layui-card-body padding-left-40">
|
||||
|
||||
<label class="layui-form-item relative block">
|
||||
<span class="color-green font-w7">标签名称</span>
|
||||
<span class="color-desc margin-left-5">Mark Name</span>
|
||||
<span class="help-label"><b>标签名称</b>Mark Name</span>
|
||||
<input class="layui-input" name="name" placeholder="请输入标签名称" required value="{$vo.name|default=''}"/>
|
||||
<span class="help-block"><b>必填,</b>请填写标签名称,建议字符不要太长,一般4-6个汉字</span>
|
||||
<span class="help-block"><b>必填,</b>请填写标签名称,建议字符不要太长</span>
|
||||
</label>
|
||||
|
||||
<div class="layui-form-item relative block">
|
||||
<span class="color-green font-w7">标签描述</span>
|
||||
<span class="color-desc margin-left-5">Mark Remark</span>
|
||||
<div class="layui-form-item relative">
|
||||
<span class="help-label"><b>标签描述</b>Mark Remark</span>
|
||||
<label class="relative block">
|
||||
<textarea class="layui-textarea" name="desc" placeholder="请输入文档描述">{$vo.desc|default=''}</textarea>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="hr-line-dashed"></div>
|
||||
@ -21,6 +21,6 @@
|
||||
|
||||
<div class="layui-form-item text-center">
|
||||
<button class="layui-btn" type='submit'>保存数据</button>
|
||||
<button class="layui-btn layui-btn-danger" data-close data-confirm="确定要取消编辑吗?" type='button'>取消编辑</button>
|
||||
<button class="layui-btn layui-btn-danger" data-close type='button' data-confirm="确定要取消修改吗?">取消编辑</button>
|
||||
</div>
|
||||
</form>
|
||||
@ -1,66 +1,100 @@
|
||||
{extend name="../../admin/view/full"}
|
||||
<div class="think-box-shadow">
|
||||
<fieldset>
|
||||
<legend>条件搜索</legend>
|
||||
<form action="{:sysuri()}" id="TagsDataSearch" autocomplete="off" class="layui-form layui-form-pane nowrap form-search" method="get" onsubmit="return false">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">标签名称</label>
|
||||
<label class="layui-input-inline">
|
||||
<input class="layui-input" name="name" placeholder="请输入标签名称" value="{$get.name|default=''}">
|
||||
</label>
|
||||
</div>
|
||||
|
||||
{block name='content'}
|
||||
<div class="iframe-pagination">
|
||||
{include file='shop/mark/index_search'}
|
||||
<table class="layui-table margin-top-10" 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>
|
||||
</th>
|
||||
<th class='list-table-sort-td'>
|
||||
<button class="layui-btn layui-btn-xs" data-reload type="button">刷 新</button>
|
||||
</th>
|
||||
<th class="text-left nowrap">标签名称</th>
|
||||
<th class="text-left nowrap">标签状态</th>
|
||||
<th class="text-left nowrap">创建时间</th>
|
||||
<th class="text-left nowrap"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
{/notempty}
|
||||
<tbody>
|
||||
{foreach $list as $key=>$vo}
|
||||
<tr data-dbclick>
|
||||
<td class='list-table-check-td think-checkbox'>
|
||||
<label><input class="list-check-box" type='checkbox' value='{$vo.id}'></label>
|
||||
</td>
|
||||
<td class='list-table-sort-td'>
|
||||
<label><input class="list-sort-input" data-action-blur="{:sysuri()}" data-loading="false" data-value="id#{$vo.id};action#sort;sort#{value}" value="{$vo.sort}"></label>
|
||||
</td>
|
||||
<td class="text-left nowrap">{$vo.name|default=''}</td>
|
||||
<td>{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">{$vo.create_at|format_datetime}</td>
|
||||
<td class='text-left nowrap'>
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">使用状态</label>
|
||||
<div class="layui-input-inline">
|
||||
<select class="layui-select" name="status">
|
||||
<option value=''>-- 全部 --</option>
|
||||
{foreach ['已禁用的记录','已激活的记录'] as $k=>$v}
|
||||
{if isset($get.status) and $get.status eq $k.''}
|
||||
<option selected value="{$k}">{$v}</option>
|
||||
{else}
|
||||
<option value="{$k}">{$v}</option>
|
||||
{/if}{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--{if auth("edit")}-->
|
||||
<a class="layui-btn layui-btn-sm" data-dbclick data-modal="{:url('edit')}?id={$vo.id}" data-title="编辑标签" data-width="500px">编 辑</a>
|
||||
<!--{/if}-->
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">创建时间</label>
|
||||
<label class="layui-input-inline">
|
||||
<input class="layui-input" data-date-range name="create_at" placeholder="请选择创建时间" value="{$get.create_at|default=''}">
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<!--{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">禁 用</a>
|
||||
<!--{/if}-->
|
||||
<div class="layui-form-item layui-inline">
|
||||
<button class="layui-btn layui-btn-primary"><i class="layui-icon"></i> 搜 索</button>
|
||||
<!-- {if auth('add')} -->
|
||||
<button class="layui-btn" data-title="添加素材标签" data-modal="{:url('add')}" type="button">
|
||||
<i class="layui-icon"></i> 添 加
|
||||
</button>
|
||||
<!-- {/if} -->
|
||||
</div>
|
||||
|
||||
<!--{if 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">激 活</a>
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if auth("remove")}-->
|
||||
<a class="layui-btn layui-btn-sm layui-btn-danger" data-action="{:url('remove')}" data-confirm="确定要删除该标签吗?" data-value="id#{$vo.id}">删 除</a>
|
||||
<!--{/if}-->
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{empty name='list'}<span class="notdata">没有记录哦</span>{else}{$pagehtml|raw|default=''}{/empty}
|
||||
|
||||
<!--{if auth("add")}-->
|
||||
<div class="fixed" style="bottom:5px;right:10px">
|
||||
<button class='layui-btn layui-btn-sm' data-modal='{:url("add")}' data-title="添加标签" data-width="500px" type="button">添加标签</button>
|
||||
</div>
|
||||
<!--{/if}-->
|
||||
</form>
|
||||
</fieldset>
|
||||
<table id="TagsData" data-url="{:sysuri()}" data-target-search="#TagsDataSearch"></table>
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
<script>
|
||||
$(function () {
|
||||
$('#TagsData').layTable({
|
||||
even: true, height: 'full',
|
||||
sort: {field: 'sort desc,id', type: 'desc'},
|
||||
cols: [[
|
||||
{field: 'id', title: 'ID', width: 80, align: 'center', sort: true},
|
||||
{field: 'sort', title: '排序权重', width: 100, align: 'center', sort: true, templet: '#SortInputTagsDataTplModal'},
|
||||
{field: 'name', title: '标签名称', minWidth: 100},
|
||||
{field: 'status', title: '状态', width: 110, align: 'center', templet: '#StatusSwitchTagsDataTpl'},
|
||||
{field: 'create_at', title: '创建时间', minWidth: 170, align: 'center'},
|
||||
{toolbar: '#ToolbarTagsData', title: '操作面板', minWidth: 100, align: 'center', fixed: 'right'},
|
||||
]]
|
||||
});
|
||||
|
||||
// 数据状态切换操作
|
||||
layui.form.on('switch(StatusSwitchTagsData)', function (obj) {
|
||||
var data = {id: obj.value, status: obj.elem.checked > 0 ? 1 : 0};
|
||||
$.form.load("{:url('state')}", data, 'post', function (ret) {
|
||||
if (ret.code < 1) $.msg.error(ret.info, 3, function () {
|
||||
$('#TagsData').trigger('reload');
|
||||
});
|
||||
return false;
|
||||
}, false);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- 数据状态切换模板 -->
|
||||
<script type="text/html" id="StatusSwitchTagsDataTpl">
|
||||
<!--{if auth("state")}-->
|
||||
<input type="checkbox" value="{{d.id}}" lay-skin="switch" lay-text="已激活|已禁用" lay-filter="StatusSwitchTagsData" {{d.status>0?'checked':''}}>
|
||||
<!--{else}-->
|
||||
{{d.status ? '<b class="color-green">已激活</b>' : '<b class="color-red">已禁用</b>'}}
|
||||
<!--{/if}-->
|
||||
</script>
|
||||
|
||||
<!-- 列表排序权重模板 -->
|
||||
<script type="text/html" id="SortInputTagsDataTplModal">
|
||||
<input type="number" min="0" data-blur-number="0" data-action-blur="{:sysuri()}" data-value="id#{{d.id}};action#sort;sort#{value}" data-loading="false" value="{{d.sort}}" class="layui-input text-center">
|
||||
</script>
|
||||
|
||||
<!-- 操控面板的模板 -->
|
||||
<script type="text/html" id="ToolbarTagsData">
|
||||
|
||||
<!--{if auth("edit")}-->
|
||||
<a class="layui-btn layui-btn-sm" data-title="编辑标签数据" data-modal='{:url("edit")}?id={{d.id}}'>编 辑</a>
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if auth("remove")}-->
|
||||
<a class="layui-btn layui-btn-sm layui-btn-danger" data-confirm="确定要删除此标签吗?" data-action="{:url('remove')}" data-value="id#{{d.id}}">删 除</a>
|
||||
<!--{/if}-->
|
||||
</script>
|
||||
@ -1,37 +0,0 @@
|
||||
<fieldset>
|
||||
<legend>条件搜索</legend>
|
||||
<form action="{:sysuri()}" autocomplete="off" class="layui-form layui-form-pane form-search" method="get" onsubmit="return false">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">标签名称</label>
|
||||
<label class="layui-input-inline">
|
||||
<input class="layui-input" name="name" placeholder="请输入标签名称" value="{$get.name|default=''}">
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">使用状态</label>
|
||||
<div class="layui-input-inline">
|
||||
<select class="layui-select" name="status">
|
||||
<option value=''>-- 全部 --</option>
|
||||
{foreach ['已禁用的记录','已激活的记录'] as $k=>$v}
|
||||
{if $k.'' eq input('status')}
|
||||
<option selected value="{$k}">{$v}</option>
|
||||
{else}
|
||||
<option value="{$k}">{$v}</option>
|
||||
{/if}{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">创建时间</label>
|
||||
<label class="layui-input-inline">
|
||||
<input class="layui-input" data-date-range name="create_at" placeholder="请选择创建时间" value="{$get.create_at|default=''}">
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<button class="layui-btn layui-btn-primary"><i class="layui-icon"></i> 搜 索</button>
|
||||
</div>
|
||||
</form>
|
||||
</fieldset>
|
||||
@ -1,39 +0,0 @@
|
||||
{extend name="../../admin/view/full"}
|
||||
|
||||
{block name='content'}
|
||||
<div class="think-box-shadow">
|
||||
<table class="layui-table margin-top-10" lay-skin="line">
|
||||
{notempty name='list'}
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="text-left nowrap">标签名称</th>
|
||||
<th class="text-left nowrap">标签状态</th>
|
||||
<th class="text-left nowrap"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
{/notempty}
|
||||
<tbody>
|
||||
{foreach $list as $key=>$vo}
|
||||
<tr data-dbclick>
|
||||
<td class="text-left nowrap">{$vo.title|default=''}</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'><a class="layui-btn layui-btn-sm layui-btn-normal" data-item="{$vo.title}">选 择</a></td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{empty name='list'}<span class="notdata">没有记录哦</span>{else}{$pagehtml|raw|default=''}{/empty}
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
{block name='script'}
|
||||
<script>
|
||||
$(function () {
|
||||
$('[data-article]').on('click', function () {
|
||||
if (top.setItemValue) top.setItemValue(this.getAttribute('data-item') || '');
|
||||
parent.layer.close(parent.layer.getFrameIndex(window.name));
|
||||
});
|
||||
$.form.reInit($('[data-select-container]'));
|
||||
});
|
||||
</script>
|
||||
{/block}
|
||||
@ -149,7 +149,7 @@ class Test extends Controller
|
||||
p($notify);
|
||||
// 微信统一下单处理
|
||||
$options = [
|
||||
'body' => "测试商品,产品ID:{$notify['product_id']}",
|
||||
'body' => "测试商品,商品ID:{$notify['product_id']}",
|
||||
'total_fee' => '1',
|
||||
'trade_type' => 'NATIVE',
|
||||
'notify_url' => sysuri('wechat/api.test/notify', [], false, true),
|
||||
|
||||
@ -688,8 +688,8 @@ $(function () {
|
||||
// 插件初始化参数
|
||||
var option = params || {}, data = option.where || {}, sort = option.initSort || option.sort || {};
|
||||
option.id = table.id, option.elem = table, option.url = params.url || table.dataset.url || location.href;
|
||||
option.page = params.page !== false ? (params.page || true) : false, option.limit = params.limit || 20;
|
||||
option.loading = params.loading !== false, option.autoSort = params.autoSort === true, option.cols = params.cols || [[]];
|
||||
option.limit = params.limit || 20, option.loading = params.loading !== false, option.autoSort = params.autoSort === true;
|
||||
option.page = params.page !== false ? (params.page || true) : false, option.cols = params.cols || [[]], option.success = params.done || '';
|
||||
// 初始化不显示头部
|
||||
var cls = ['.layui-table-header', '.layui-table-fixed', '.layui-table-body', '.layui-table-page'];
|
||||
option.css = (option.css || '') + cls.join('{opacity:0}') + '{opacity:0}';
|
||||
@ -703,7 +703,7 @@ $(function () {
|
||||
}
|
||||
// 动态计算最大页数
|
||||
option.done = function () {
|
||||
typeof params.done === 'function' && params.done.call(this);
|
||||
typeof option.success === 'function' && option.success.call(this);
|
||||
layui.sessionData('pages', {key: table.id, value: this.page.curr || 1});
|
||||
$.form.reInit($table.next()).find('[data-load],[data-queue],[data-action],[data-iframe]').not('[data-table-id]').attr('data-table-id', table.id);
|
||||
(option.loading = this.loading = true) && $table.data('next', this).next().find(cls.join(',')).animate({opacity: 1});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user