服务内容管理
This commit is contained in:
parent
072b2aa3bd
commit
4f289c00d5
|
|
@ -38,16 +38,37 @@ class Item extends Backend
|
||||||
{
|
{
|
||||||
if ($this->request->isAjax()) {
|
if ($this->request->isAjax()) {
|
||||||
// 必须将结果集转换为数组
|
// 必须将结果集转换为数组
|
||||||
$ruleList = \think\Db::name("item")
|
$search = request()->get('search') ?? false;
|
||||||
->where('status',1)
|
// dd($where);
|
||||||
->field('id,pid,level,title,key_word,sort,status')
|
$build = Db::name('item')
|
||||||
->order('sort DESC,id ASC')->select();
|
->where('status',1);
|
||||||
|
if ($search){
|
||||||
|
$build->where(function ($query) use ($search){
|
||||||
|
$query->where('title','like','%'.$search.'%')
|
||||||
|
->whereOr('key_word','like','%'.$search.'%');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$ruleList = $build->field('id,pid,level,title,key_word,sort,status')
|
||||||
|
// ->order('sort','desc')
|
||||||
|
// ->fetchSql(true)
|
||||||
|
->select();
|
||||||
|
if ($search){
|
||||||
|
$pids = array_column($ruleList,'pid') ;
|
||||||
|
$pidData = Db::name('item')
|
||||||
|
->where('status',1)->whereIn('id',$pids)
|
||||||
|
->field('id,pid,level,title,key_word,sort,status')->select();
|
||||||
|
$ruleList = array_values(array_reduce(array_merge($ruleList,$pidData), function ($carry, $item) {
|
||||||
|
$carry[$item['id']] = $item;
|
||||||
|
return $carry;
|
||||||
|
}, []));
|
||||||
|
}
|
||||||
|
|
||||||
Tree::instance()->init($ruleList)->icon = [' ', ' ', ' '];
|
Tree::instance()->init($ruleList)->icon = [' ', ' ', ' '];
|
||||||
// dd($ruleList);
|
// dd($ruleList);
|
||||||
$this->itemdata = Tree::instance()->getTreeList(Tree::instance()->getTreeArray(0), 'title');
|
$this->itemdata = Tree::instance()->getTreeList(Tree::instance()->getTreeArray(0), 'title');
|
||||||
foreach ($this->itemdata as &$v) {
|
foreach ($this->itemdata as &$v) {
|
||||||
$v['status'] = $v['status'] ?'normal' : '';
|
$v['status'] = $v['status'] ?'normal' : 'aqua';
|
||||||
}
|
}
|
||||||
unset($v);
|
unset($v);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,24 +19,18 @@
|
||||||
<input id="c-key_word" class="form-control" name="row[key_word]" type="text">
|
<input id="c-key_word" class="form-control" name="row[key_word]" type="text">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Image')}:</label>
|
|
||||||
<div class="col-xs-12 col-sm-8">
|
|
||||||
<div class="input-group">
|
|
||||||
<input id="c-image" class="form-control" size="50" name="row[image]" type="text">
|
|
||||||
<div class="input-group-addon no-border no-padding">
|
|
||||||
<span><button type="button" id="faupload-image" class="btn btn-danger faupload" data-input-id="c-image" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-image"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
|
||||||
<span><button type="button" id="fachoose-image" class="btn btn-primary fachoose" data-input-id="c-image" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
|
||||||
</div>
|
|
||||||
<span class="msg-box n-right" for="c-image"></span>
|
|
||||||
</div>
|
|
||||||
<ul class="row list-inline faupload-preview" id="p-image"></ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- <div class="form-group">-->
|
<!-- <div class="form-group">-->
|
||||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Sort')}:</label>-->
|
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Image')}:</label>-->
|
||||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||||
<!-- <input id="c-sort" data-rule="required" class="form-control" name="row[sort]" type="number" value="0">-->
|
<!-- <div class="input-group">-->
|
||||||
|
<!-- <input id="c-image" class="form-control" size="50" name="row[image]" type="text">-->
|
||||||
|
<!-- <div class="input-group-addon no-border no-padding">-->
|
||||||
|
<!-- <span><button type="button" id="faupload-image" class="btn btn-danger faupload" data-input-id="c-image" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-image"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>-->
|
||||||
|
<!-- <span><button type="button" id="fachoose-image" class="btn btn-primary fachoose" data-input-id="c-image" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>-->
|
||||||
|
<!-- </div>-->
|
||||||
|
<!-- <span class="msg-box n-right" for="c-image"></span>-->
|
||||||
|
<!-- </div>-->
|
||||||
|
<!-- <ul class="row list-inline faupload-preview" id="p-image"></ul>-->
|
||||||
<!-- </div>-->
|
<!-- </div>-->
|
||||||
<!-- </div>-->
|
<!-- </div>-->
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
|
|
@ -54,7 +48,7 @@
|
||||||
<div class="form-group layer-footer">
|
<div class="form-group layer-footer">
|
||||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||||
<div class="col-xs-12 col-sm-8">
|
<div class="col-xs-12 col-sm-8">
|
||||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
<button type="submit" class="btn btn-primary btn-embossed">{:__('OK')}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
||||||
|
|
@ -18,20 +18,20 @@
|
||||||
<input id="c-key_word" class="form-control" name="row[key_word]" type="text" value="{$row.key_word|htmlentities}">
|
<input id="c-key_word" class="form-control" name="row[key_word]" type="text" value="{$row.key_word|htmlentities}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<!-- <div class="form-group">-->
|
||||||
<label class="control-label col-xs-12 col-sm-2">{:__('Image')}:</label>
|
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Image')}:</label>-->
|
||||||
<div class="col-xs-12 col-sm-8">
|
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||||
<div class="input-group">
|
<!-- <div class="input-group">-->
|
||||||
<input id="c-image" class="form-control" size="50" name="row[image]" type="text" value="{$row.image|htmlentities}">
|
<!-- <input id="c-image" class="form-control" size="50" name="row[image]" type="text" value="{$row.image|htmlentities}">-->
|
||||||
<div class="input-group-addon no-border no-padding">
|
<!-- <div class="input-group-addon no-border no-padding">-->
|
||||||
<span><button type="button" id="faupload-image" class="btn btn-danger faupload" data-input-id="c-image" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-image"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
<!-- <span><button type="button" id="faupload-image" class="btn btn-danger faupload" data-input-id="c-image" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-image"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>-->
|
||||||
<span><button type="button" id="fachoose-image" class="btn btn-primary fachoose" data-input-id="c-image" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
<!-- <span><button type="button" id="fachoose-image" class="btn btn-primary fachoose" data-input-id="c-image" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
<span class="msg-box n-right" for="c-image"></span>
|
<!-- <span class="msg-box n-right" for="c-image"></span>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
<ul class="row list-inline faupload-preview" id="p-image"></ul>
|
<!-- <ul class="row list-inline faupload-preview" id="p-image"></ul>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
<!-- <div class="form-group">-->
|
<!-- <div class="form-group">-->
|
||||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Sort')}:</label>-->
|
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Sort')}:</label>-->
|
||||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,13 @@
|
||||||
<div class="panel panel-default panel-intro">
|
<div class="panel panel-default panel-intro">
|
||||||
|
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
{:build_heading(null,FALSE)}
|
{:build_heading(null,FALSE)}
|
||||||
<ul class="nav nav-tabs" data-field="status">
|
<ul class="nav nav-tabs" data-field="status">
|
||||||
<li class="{:$Think.get.status === null ? 'active' : ''}"><a href="#t-all" data-value="" data-toggle="tab">{:__('All')}</a></li>
|
<li class="{:$Think.get.status === null ? 'active' : ''}"><a href="#t-all" data-value="" data-toggle="tab">{:__('All')}</a>
|
||||||
|
</li>
|
||||||
{foreach name="statusList" item="vo"}
|
{foreach name="statusList" item="vo"}
|
||||||
<li class="{:$Think.get.status === (string)$key ? 'active' : ''}"><a href="#t-{$key}" data-value="{$key}" data-toggle="tab">{$vo}</a></li>
|
<li class="{:$Think.get.status === (string)$key ? 'active' : ''}"><a href="#t-{$key}" data-value="{$key}"
|
||||||
|
data-toggle="tab">{$vo}</a></li>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -16,22 +18,28 @@
|
||||||
<div class="tab-pane fade active in" id="one">
|
<div class="tab-pane fade active in" id="one">
|
||||||
<div class="widget-body no-padding">
|
<div class="widget-body no-padding">
|
||||||
<div id="toolbar" class="toolbar">
|
<div id="toolbar" class="toolbar">
|
||||||
<a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
|
<a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}"><i
|
||||||
<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('item/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
|
class="fa fa-refresh"></i> </a>
|
||||||
<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('item/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
|
<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('item/add')?'':'hide'}"
|
||||||
<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('item/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
title="{:__('Add')}"><i class="fa fa-plus"></i> {:__('Add')}</a>
|
||||||
|
<a href="javascript:;"
|
||||||
|
class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('item/edit')?'':'hide'}"
|
||||||
|
title="{:__('Edit')}"><i class="fa fa-pencil"></i> {:__('Edit')}</a>
|
||||||
|
<a href="javascript:;"
|
||||||
|
class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('item/del')?'':'hide'}"
|
||||||
|
title="{:__('Delete')}"><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||||
|
|
||||||
|
|
||||||
<div class="dropdown btn-group {:$auth->check('item/multi')?'':'hide'}">
|
<div class="dropdown btn-group {:$auth->check('item/multi')?'':'hide'}">
|
||||||
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
|
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled"
|
||||||
|
data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
|
||||||
<ul class="dropdown-menu text-left" role="menu">
|
<ul class="dropdown-menu text-left" role="menu">
|
||||||
{foreach name="statusList" item="vo"}
|
{foreach name="statusList" item="vo"}
|
||||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:" data-params="status={$key}">{:__('Set status to ' . $key)}</a></li>
|
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:"
|
||||||
|
data-params="status={$key}">{:__('Set status to ' . $key)}</a></li>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||||
data-operate-edit="{:$auth->check('item/edit')}"
|
data-operate-edit="{:$auth->check('item/edit')}"
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ return [
|
||||||
// 默认语言
|
// 默认语言
|
||||||
'default_lang' => 'zh-cn',
|
'default_lang' => 'zh-cn',
|
||||||
// 允许的语言列表
|
// 允许的语言列表
|
||||||
'allow_lang_list' => ['zh-cn', 'en'],
|
'allow_lang_list' => ['zh-cn'],
|
||||||
// 应用类库后缀
|
// 应用类库后缀
|
||||||
'class_suffix' => false,
|
'class_suffix' => false,
|
||||||
// 控制器类后缀
|
// 控制器类后缀
|
||||||
|
|
@ -280,11 +280,11 @@ return [
|
||||||
//FastAdmin配置
|
//FastAdmin配置
|
||||||
'fastadmin' => [
|
'fastadmin' => [
|
||||||
//是否开启前台会员中心
|
//是否开启前台会员中心
|
||||||
'usercenter' => true,
|
'usercenter' => false,
|
||||||
//会员注册验证码类型email/mobile/wechat/text/false
|
//会员注册验证码类型email/mobile/wechat/text/false
|
||||||
'user_register_captcha' => 'text',
|
'user_register_captcha' => 'text',
|
||||||
//登录验证码
|
//登录验证码
|
||||||
'login_captcha' => true,
|
'login_captcha' => false,
|
||||||
//登录失败超过10次则1天后重试
|
//登录失败超过10次则1天后重试
|
||||||
'login_failure_retry' => true,
|
'login_failure_retry' => true,
|
||||||
//是否同一账号同一时间只能在一个地方登录
|
//是否同一账号同一时间只能在一个地方登录
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'template'], function
|
||||||
// 初始化表格参数配置
|
// 初始化表格参数配置
|
||||||
Table.api.init({
|
Table.api.init({
|
||||||
extend: {
|
extend: {
|
||||||
"index_url": "item/index",
|
"index_url": "item/index" + location.search,
|
||||||
"add_url": "item/add",
|
"add_url": "item/add",
|
||||||
"edit_url": "item/edit",
|
"edit_url": "item/edit",
|
||||||
"del_url": "item/del",
|
"del_url": "item/del",
|
||||||
|
|
@ -19,8 +19,10 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'template'], function
|
||||||
// 初始化表格
|
// 初始化表格
|
||||||
table.bootstrapTable({
|
table.bootstrapTable({
|
||||||
url: $.fn.bootstrapTable.defaults.extend.index_url,
|
url: $.fn.bootstrapTable.defaults.extend.index_url,
|
||||||
sortName: '',
|
// sortName: 'id',
|
||||||
escape: true,
|
// escape: true,
|
||||||
|
fixedColumns: true,
|
||||||
|
fixedRightNumber: 1,
|
||||||
columns: [
|
columns: [
|
||||||
[
|
[
|
||||||
{field: 'state', checkbox: true,},
|
{field: 'state', checkbox: true,},
|
||||||
|
|
@ -39,7 +41,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'template'], function
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
pagination: false,
|
pagination: false,
|
||||||
search: false,
|
search: true,
|
||||||
commonSearch: false,
|
commonSearch: false,
|
||||||
rowAttributes: function (row, index) {
|
rowAttributes: function (row, index) {
|
||||||
return row.pid === 0 ? {} : {style: "display:none"};
|
return row.pid === 0 ? {} : {style: "display:none"};
|
||||||
|
|
|
||||||
|
|
@ -136,7 +136,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
||||||
classname:"btn-view btn-dialog",
|
classname:"btn-view btn-dialog",
|
||||||
icon:'fa fa-money',
|
icon:'fa fa-money',
|
||||||
url: function(row){
|
url: function(row){
|
||||||
return 'orders/income/add?order_id='+row.id
|
return 'orders/income/add?order_id='+row.id;
|
||||||
},
|
},
|
||||||
dropdown:"更多",
|
dropdown:"更多",
|
||||||
visible:function(row){
|
visible:function(row){
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user