>index html
```
<div class="panel panel-default panel-intro">
<div class="panel-heading">
<div class="panel-lead"><em>活动管理</em></div>
<ul class="nav nav-tabs">
{volist name='activity_list' id='v'}
<li {if $key==0} class="active" {/if} ><a href="#jump_{$v.ID}" data-toggle="tab">{$v.ActivityType}</a></li>
{/volist}
</ul>
</div>
<div class="panel-body">
<div id="myTabContent" class="tab-content">
{volist name='activity_list' id='v'}
<div class="tab-pane fade {if $key==0} active in {/if}" id="jump_{$v.ID}">
<div id="toolbar_{$v.ID}" 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-success btn-add {:$auth->check('activity/activity_manager/del')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
<a href="javascript:;" class="btn btn-info btn-edit btn-disabled disabled {:$auth->check('activity/activity_manager/del')?'':'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('activity/activity_manager/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
</div>
<table id="table_{$v.ID}" class="table table-striped table-bordered table-hover"
data-operate-edit="{:$auth->check('activity/activity_manager/edit')}"
data-operate-del="{:$auth->check('activity/activity_manager/del')}"
width="100%">
</table>
</div>
{/volist}
</div>
</div>
</div>
```
> controller
```
<?php
namespace app\admin\controller\activity;
use app\admin\model\rynativeweb\table\Act_ActivityType;
use app\admin\model\rynativeweb\table\Act_FirstPayActivity;
use app\admin\model\rynativeweb\table\Act_LuckyPlayActivity;
use app\admin\model\rynativeweb\table\Act_PayActivityInfo;
use app\admin\model\rynativeweb\table\Act_RescueActivity;
use app\admin\model\rynativeweb\table\Act_ShareActivity;
use app\admin\model\rynativeweb\table\Act_ShowImgActivity;
use app\admin\model\rynativeweb\table\Act_SignInActivity;
use app\admin\model\rynativeweb\table\Act_SpreadUpActivity;
use app\common\controller\Backend;
use Exception;
use PDOException;
use think\Db;
use think\exception\ValidateException;
/**
* Class ActivityManager
* @package app\admin\controller\activity
* 活动管理
*/
class ActivityManager extends Backend
{
protected $noNeedRight = ['activity'];
protected $multiFields=['Enabled'];
public function _initialize()
{
parent::_initialize(); // TODO: Change the autogenerated stub
}
/**
* 查看
*/
public function index()
{
//活动类型
$activity_list = Act_ActivityType::GetActivityType();
$this->assign('activity_list', $activity_list);
return $this->view->fetch();
}
//数据列表
public function activity()
{
//设置过滤方法
$this->request->filter(['strip_tags', 'trim']);
if ($this->request->isAjax()) {
//如果发送的来源是Selectpage,则转发到Selectpage
if ($this->request->request('keyField')) {
return $this->selectpage();
}
list($where, $sort, $order, $offset, $limit) = $this->buildparams();
$filter = $this->request->get("filter", '');
$tempFilter = json_decode($filter, true) ?? [];
//活动类型
$ActivityType = $tempFilter['ActivityType'];
$table=$this->getTable($ActivityType);
$list = $table
->where($where)
->order($sort, $order)
->paginate($limit);
$result = array("total" => $list->total(), "rows" => $list->items());
return json($result);
}
}
/**
* 添加
*/
public function add()
{
$type=$this->request->param('type',1);
$table=$this->getTable($type);
if ($this->request->isPost()) {
$params = $this->request->post("row/a");
if ($params) {
$params = $this->preExcludeFields($params);
if ($this->dataLimit && $this->dataLimitFieldAutoFill) {
$params[$this->dataLimitField] = $this->auth->id;
}
$result = false;
Db::startTrans();
try {
$result = $table->allowField(true)->save($params);
Db::commit();
} catch (ValidateException $e) {
Db::rollback();
$this->error($e->getMessage());
} catch (PDOException $e) {
Db::rollback();
$this->error($e->getMessage());
} catch (Exception $e) {
Db::rollback();
$this->error($e->getMessage());
}
if ($result !== false) {
$this->success();
} else {
$this->error(__('No rows were inserted'));
}
}
$this->error(__('Parameter %s can not be empty', ''));
}
$this->view->assign("type", $type);
return $this->view->fetch();
}
/**
* 编辑
*/
public function edit($ids = null)
{
$type=$this->request->param('type',1);
$table=$this->getTable($type);
$row = $table->get($ids);
if (!$row) {
$this->error(__('No Results were found'));
}
$adminIds = $this->getDataLimitAdminIds();
if (is_array($adminIds)) {
if (!in_array($row[$this->dataLimitField], $adminIds)) {
$this->error(__('You have no permission'));
}
}
if ($this->request->isPost()) {
$params = $this->request->post("row/a");
if ($params) {
$params = $this->preExcludeFields($params);
$result = false;
Db::startTrans();
try {
$result = $row->allowField(true)->save($params);
Db::commit();
} catch (ValidateException $e) {
Db::rollback();
$this->error($e->getMessage());
} catch (PDOException $e) {
Db::rollback();
$this->error($e->getMessage());
} catch (Exception $e) {
Db::rollback();
$this->error($e->getMessage());
}
if ($result !== false) {
$this->success();
} else {
$this->error(__('No rows were updated'));
}
}
$this->error(__('Parameter %s can not be empty', ''));
}
$this->view->assign("row", $row);
$this->view->assign("type", $type);
return $this->view->fetch();
}
/**
* 删除
*/
public function del($ids = "")
{
if (!$this->request->isPost()) {
$this->error(__("Invalid parameters"));
}
$ids = $ids ? $ids : $this->request->post("ids");
if ($ids) {
$type=$this->request->param('type',1);
$table=$this->getTable($type);
$pk = $table->getPk();
$adminIds = $this->getDataLimitAdminIds();
if (is_array($adminIds)) {
$table->where($this->dataLimitField, 'in', $adminIds);
}
$list = $table->where($pk, 'in', $ids)->select();
$count = 0;
Db::startTrans();
try {
foreach ($list as $k => $v) {
$count += $v->delete();
}
Db::commit();
} catch (PDOException $e) {
Db::rollback();
$this->error($e->getMessage());
} catch (Exception $e) {
Db::rollback();
$this->error($e->getMessage());
}
if ($count) {
$this->success();
} else {
$this->error(__('No rows were deleted'));
}
}
$this->error(__('Parameter %s can not be empty', 'ids'));
}
/**
* 批量更新
*/
public function multi($ids = "")
{
if (!$this->request->isPost()) {
$this->error(__("Invalid parameters"));
}
$ids = $ids ? $ids : $this->request->post("ids");
if ($ids) {
$type=$this->request->param('type',1);
$table=$this->getTable($type);
if ($this->request->has('params')) {
parse_str($this->request->post("params"), $values);
$values = $this->auth->isSuperAdmin() ? $values : array_intersect_key($values, array_flip(is_array($this->multiFields) ? $this->multiFields : explode(',', $this->multiFields)));
if ($values) {
$adminIds = $this->getDataLimitAdminIds();
if (is_array($adminIds)) {
$table->where($this->dataLimitField, 'in', $adminIds);
}
$count = 0;
Db::startTrans();
try {
$list = $table->where($table->getPk(), 'in', $ids)->select();
foreach ($list as $index => $item) {
$count += $item->allowField(true)->isUpdate(true)->save($values);
}
Db::commit();
} catch (\think\exception\PDOException $e) {
Db::rollback();
$this->error($e->getMessage());
} catch (Exception $e) {
Db::rollback();
$this->error($e->getMessage());
}
if ($count) {
$this->success();
} else {
$this->error(__('No rows were updated'));
}
} else {
$this->error(__('You have no permission'));
}
}
}
$this->error(__('Parameter %s can not be empty', 'ids'));
}
protected function getTable($type){
switch ($type) {
case 1:
$table = new Act_PayActivityInfo(); //充值返现
break;
case 2:
$table = new Act_LuckyPlayActivity();//幸运玩家
break;
case 3:
$table = new Act_RescueActivity();//天天救援
break;
case 4:
$table = new Act_ShareActivity(); //邀请有奖
break;
case 5:
$table = new Act_FirstPayActivity();//首存送礼
break;
case 6:
$table = new Act_SignInActivity(); //签到送礼
break;
case 7:
$table = new Act_SpreadUpActivity(); //代理升级送礼
break;
default:
$table = new Act_ShowImgActivity(); //推广妙招 注册送金币
}
return $table;
}
}
```
> js
```
~~~
define(['jquery', 'bootstrap', 'backend', 'table', 'form','color'], function ($, undefined, Backend, Table, Form,Color) {
var arr={
jump_1: function () {
// 充值返现
var table1 = $("#table_1");
table1.bootstrapTable({
extend: {
del_url: 'activity/activity_manager/del?type=1',
add_url: 'activity/activity_manager/add?type=1',
edit_url: 'activity/activity_manager/edit?type=1',
multi_url: 'activity/activity_manager/multi?type=1',
table: '',
},
url: $.fn.bootstrapTable.defaults.extend.index_url,
toolbar: '#toolbar_1',
pk: 'ID',
sortName: 'ID',
sortOrder: 'desc',
singleSelect: true, //启用单选
columns: [
[
{checkbox: true},
{field: 'ID', title: '标识'},
{field: 'ActivityName', title: __('活动名称'), formatter: Table.api.formatter.search},
{field: 'ActivityTitle', title: __('活动标题')},
{field: 'StarTime', title: __('开始时间'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
{field: 'EndTime', title: __('结束时间'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
{field: 'Enabled', title: __('状态'), table: table1, searchList: {"1":__('启用'),"0":__('禁用')}, confirm: function (value) {
return value=='0'?'确定【启用】该活动吗?':'确定【禁用】该活动吗?';
}, formatter: Table.api.formatter.toggle},
{field: 'ActivityImgPath', title: __('图片'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
{field: 'operate', title: __('Operate'), table: table1, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
]
],
queryParams: function (params) {
//这里可以追加搜索条件
var filter = JSON.parse(params.filter);
var op = JSON.parse(params.op);
filter.ActivityType = 1;
op.ActivityType = "=";
params.filter = JSON.stringify(filter);
params.op = JSON.stringify(op);
return params;
},
});
Table.api.bindevent(table1);
},
jump_2: function () {
// 幸运玩家
var table2 = $("#table_2");
table2.bootstrapTable({
extend: {
del_url: 'activity/activity_manager/del?type=2',
add_url: 'activity/activity_manager/add?type=2',
edit_url: 'activity/activity_manager/edit?type=2',
multi_url: 'activity/activity_manager/multi?type=2',
table: '',
},
url: $.fn.bootstrapTable.defaults.extend.index_url,
toolbar: '#toolbar_2',
pk: 'ID',
sortName: 'ID',
sortOrder: 'desc',
//pagination:false,
singleSelect: true, //启用单选
columns: [
[
{checkbox: true},
{field: 'ID', title: '标识'},
{field: 'ActivityName', title: __('活动名称'), formatter: Table.api.formatter.search},
{field: 'ActivityTitle', title: __('活动标题')},
{field: 'ShareAmount', title: __('赠送金额'), formatter: Color.api.red},
{field: 'StarTime', title: __('开始时间'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
{field: 'EndTime', title: __('结束时间'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
{field: 'Enabled', title: __('状态'), table: table2, searchList: {"1":__('启用'),"0":__('禁用')}, confirm: function (value) {
return value=='0'?'确定【启用】该活动吗?':'确定【禁用】该活动吗?';
}, formatter: Table.api.formatter.toggle},
{field: 'ActivityImgPath', title: __('图片'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
{field: 'operate', title: __('Operate'), table: table2, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
]
],
queryParams: function (params) {
//这里可以追加搜索条件
var filter = JSON.parse(params.filter);
var op = JSON.parse(params.op);
filter.ActivityType = 2;
op.ActivityType = "=";
params.filter = JSON.stringify(filter);
params.op = JSON.stringify(op);
return params;
},
});
Table.api.bindevent(table2);
},
jump_3: function () {
// 天天救援
var table3 = $("#table_3");
table3.bootstrapTable({
extend: {
del_url: 'activity/activity_manager/del?type=3',
add_url: 'activity/activity_manager/add?type=3',
edit_url: 'activity/activity_manager/edit?type=3',
multi_url: 'activity/activity_manager/multi?type=3',
table: '',
},
url: $.fn.bootstrapTable.defaults.extend.index_url,
toolbar: '#toolbar_3',
pk: 'ID',
sortName: 'ID',
sortOrder: 'desc',
//pagination:false,
singleSelect: true, //启用单选
columns: [
[
{checkbox: true},
{field: 'ID', title: '标识'},
{field: 'ActivityName', title: __('活动名称'), formatter: Table.api.formatter.search},
{field: 'ActivityTitle', title: __('活动标题')},
{field: 'ShareAmount', title: __('赠送金额'), formatter: Color.api.red},
{field: 'ApplyStarTime', title: __('申请开始时间'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
{field: 'ApplyEndTime', title: __('申请失效时间'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
{field: 'ShareType', title: __('赠送方式'), searchList: {"1":__('金额'),"0":__('比例')}, formatter: function (value) {
return value=='1'?'金额':'比例';
}},
{field: 'ShareRatio', title: __('赠送比例'), formatter: function (value) {
return '<strong style="color: orange;">'+value+' %</strong>';
}},
{field: 'ApplyScore', title: __('输分额度'), formatter: Color.api.blue},
{field: 'StarTime', title: __('开始时间'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
{field: 'EndTime', title: __('结束时间'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
{field: 'Enabled', title: __('状态'), table: table3, searchList: {"1":__('启用'),"0":__('禁用')}, confirm: function (value) {
return value=='0'?'确定【启用】该活动吗?':'确定【禁用】该活动吗?';
}, formatter: Table.api.formatter.toggle},
{field: 'ActivityImgPath', title: __('图片'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
{field: 'operate', title: __('Operate'), table: table3, events: Table.api.events.operate,
buttons:[
{
name: 'aply',
text: __('申请记录'),
classname: 'btn btn-xs btn-warning btn-dialog',
extend: 'data-area=\'["80%","85%"]\' ',
title: __('查看申请记录'),
url: 'activity/activity_apply/index'
},
],formatter: Table.api.formatter.operate}
]
],
queryParams: function (params) {
//这里可以追加搜索条件
var filter = JSON.parse(params.filter);
var op = JSON.parse(params.op);
filter.ActivityType = 3;
op.ActivityType = "=";
params.filter = JSON.stringify(filter);
params.op = JSON.stringify(op);
return params;
},
});
Table.api.bindevent(table3);
},
jump_4: function () {
// 邀请有奖
var table4 = $("#table_4");
table4.bootstrapTable({
extend: {
del_url: 'activity/activity_manager/del?type=4',
add_url: 'activity/activity_manager/add?type=4',
edit_url: 'activity/activity_manager/edit?type=4',
multi_url: 'activity/activity_manager/multi?type=4',
table: '',
},
url: $.fn.bootstrapTable.defaults.extend.index_url,
toolbar: '#toolbar_4',
pk: 'ID',
sortName: 'ID',
sortOrder: 'desc',
//pagination:false,
singleSelect: true, //启用单选
columns: [
[
{checkbox: true},
{field: 'ID', title: '标识'},
{field: 'ActivityName', title: __('活动名称'), formatter: Table.api.formatter.search},
{field: 'ActivityTitle', title: __('活动标题')},
{field: 'ShareAmount', title: __('赠送金额'), formatter: Color.api.red},
{field: 'StarTime', title: __('开始时间'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
{field: 'EndTime', title: __('结束时间'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
{field: 'Enabled', title: __('状态'), table: table4, searchList: {"1":__('启用'),"0":__('禁用')}, confirm: function (value) {
return value=='0'?'确定【启用】该活动吗?':'确定【禁用】该活动吗?';
}, formatter: Table.api.formatter.toggle},
{field: 'ActivityImgPath', title: __('图片'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
{field: 'operate', title: __('Operate'), table: table4, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
]
],
queryParams: function (params) {
//这里可以追加搜索条件
var filter = JSON.parse(params.filter);
var op = JSON.parse(params.op);
filter.ActivityType = 4;
op.ActivityType = "=";
params.filter = JSON.stringify(filter);
params.op = JSON.stringify(op);
return params;
},
});
Table.api.bindevent(table4);
},
jump_5: function () {
// 首存送礼
var table5 = $("#table_5");
table5.bootstrapTable({
extend: {
del_url: 'activity/activity_manager/del?type=5',
add_url: 'activity/activity_manager/add?type=5',
edit_url: 'activity/activity_manager/edit?type=5',
multi_url: 'activity/activity_manager/multi?type=5',
table: '',
},
url: $.fn.bootstrapTable.defaults.extend.index_url,
toolbar: '#toolbar_5',
pk: 'ID',
sortName: 'ID',
sortOrder: 'desc',
//pagination:false,
singleSelect: true, //启用单选
columns: [
[
{checkbox: true},
{field: 'ID', title: '标识'},
{field: 'ActivityName', title: __('活动名称'), formatter: Table.api.formatter.search},
{field: 'ActivityTitle', title: __('活动标题')},
{field: 'GiveRatio', title: __('赠送比例'), formatter: function (value) {
return '<strong style="color: orange;">'+value+' %</strong>';
}},
{field: 'StarTime', title: __('开始时间'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
{field: 'EndTime', title: __('结束时间'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
{field: 'Enabled', title: __('状态'), table: table5, searchList: {"1":__('启用'),"0":__('禁用')}, confirm: function (value) {
return value=='0'?'确定【启用】该活动吗?':'确定【禁用】该活动吗?';
}, formatter: Table.api.formatter.toggle},
{field: 'ActivityImgPath', title: __('图片'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
{field: 'operate', title: __('Operate'), table: table5, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
]
],
queryParams: function (params) {
//这里可以追加搜索条件
var filter = JSON.parse(params.filter);
var op = JSON.parse(params.op);
filter.ActivityType = 5;
op.ActivityType = "=";
params.filter = JSON.stringify(filter);
params.op = JSON.stringify(op);
return params;
},
});
Table.api.bindevent(table5);
},
jump_6: function () {
// 签到送礼
var table6 = $("#table_6");
table6.bootstrapTable({
extend: {
del_url: 'activity/activity_manager/del?type=6',
add_url: 'activity/activity_manager/add?type=6',
edit_url: 'activity/activity_manager/edit?type=6',
multi_url: 'activity/activity_manager/multi?type=6',
table: '',
},
url: $.fn.bootstrapTable.defaults.extend.index_url,
toolbar: '#toolbar_6',
pk: 'ID',
sortName: 'ID',
sortOrder: 'desc',
//pagination:false,
singleSelect: true, //启用单选
columns: [
[
{checkbox: true},
{field: 'ID', title: '标识'},
{field: 'ActivityName', title: __('活动名称'), formatter: Table.api.formatter.search},
{field: 'ActivityTitle', title: __('活动标题')},
{field: 'ShareAmount', title: __('赠送金额'), formatter: Color.api.red},
{field: 'StarTime', title: __('开始时间'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
{field: 'EndTime', title: __('结束时间'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
{field: 'Enabled', title: __('状态'), table: table6, searchList: {"1":__('启用'),"0":__('禁用')}, confirm: function (value) {
return value=='0'?'确定【启用】该活动吗?':'确定【禁用】该活动吗?';
}, formatter: Table.api.formatter.toggle},
{field: 'ActivityImgPath', title: __('图片'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
{field: 'operate', title: __('Operate'), table: table6, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
]
],
queryParams: function (params) {
//这里可以追加搜索条件
var filter = JSON.parse(params.filter);
var op = JSON.parse(params.op);
filter.ActivityType = 6;
op.ActivityType = "=";
params.filter = JSON.stringify(filter);
params.op = JSON.stringify(op);
return params;
},
});
Table.api.bindevent(table6);
},
jump_7: function () {
// 代理升级送礼
var table7 = $("#table_7");
table7.bootstrapTable({
extend: {
del_url: 'activity/activity_manager/del?type=7',
add_url: 'activity/activity_manager/add?type=7',
edit_url: 'activity/activity_manager/edit?type=7',
multi_url: 'activity/activity_manager/multi?type=7',
table: '',
},
url: $.fn.bootstrapTable.defaults.extend.index_url,
toolbar: '#toolbar_7',
pk: 'ID',
sortName: 'ID',
sortOrder: 'desc',
//pagination:false,
singleSelect: true, //启用单选
columns: [
[
{checkbox: true},
{field: 'ID', title: '标识'},
{field: 'ActivityName', title: __('活动名称'), formatter: Table.api.formatter.search},
{field: 'ActivityTitle', title: __('活动标题')},
{field: 'CommBase', title: __('返佣等级')},
{field: 'ShareAmount', title: __('赠送金额'), formatter: Color.api.red},
{field: 'StarTime', title: __('开始时间'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
{field: 'EndTime', title: __('结束时间'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
{field: 'Enabled', title: __('状态'), table: table7, searchList: {"1":__('启用'),"0":__('禁用')}, confirm: function (value) {
return value=='0'?'确定【启用】该活动吗?':'确定【禁用】该活动吗?';
}, formatter: Table.api.formatter.toggle},
{field: 'ActivityImgPath', title: __('图片'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
{field: 'operate', title: __('Operate'), table: table7, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
]
],
queryParams: function (params) {
//这里可以追加搜索条件
var filter = JSON.parse(params.filter);
var op = JSON.parse(params.op);
filter.ActivityType = 7;
op.ActivityType = "=";
params.filter = JSON.stringify(filter);
params.op = JSON.stringify(op);
return params;
},
});
Table.api.bindevent(table7);
},
jump_8: function () {
// 图片广告
var table8 = $("#table_8");
table8.bootstrapTable({
extend: {
del_url: 'activity/activity_manager/del?type=8',
add_url: 'activity/activity_manager/add?type=8',
edit_url: 'activity/activity_manager/edit?type=8',
multi_url: 'activity/activity_manager/multi?type=8',
table: '',
},
url: $.fn.bootstrapTable.defaults.extend.index_url,
toolbar: '#toolbar_8',
pk: 'ID',
sortName: 'ID',
sortOrder: 'desc',
//pagination:false,
singleSelect: true, //启用单选
columns: [
[
{checkbox: true},
{field: 'ID', title: '标识'},
{field: 'ActivityName', title: __('活动名称'), formatter: Table.api.formatter.search},
{field: 'ActivityTitle', title: __('活动标题')},
{field: 'Enabled', title: __('状态'), table: table8, searchList: {"1":__('启用'),"0":__('禁用')}, confirm: function (value) {
return value=='0'?'确定【启用】该活动吗?':'确定【禁用】该活动吗?';
}, formatter: Table.api.formatter.toggle},
{field: 'ActivityImgPath', title: __('图片'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
{field: 'operate', title: __('Operate'), table: table8, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
]
],
queryParams: function (params) {
//这里可以追加搜索条件
var filter = JSON.parse(params.filter);
var op = JSON.parse(params.op);
filter.ActivityType = 8;
op.ActivityType = "=";
params.filter = JSON.stringify(filter);
params.op = JSON.stringify(op);
return params;
},
});
Table.api.bindevent(table8);
},
jump_9: function () {
// 图片广告
var table9 = $("#table_9");
table9.bootstrapTable({
extend: {
del_url: 'activity/activity_manager/del?type=9',
add_url: 'activity/activity_manager/add?type=9',
edit_url: 'activity/activity_manager/edit?type=9',
multi_url: 'activity/activity_manager/multi?type=9',
table: '',
},
url: $.fn.bootstrapTable.defaults.extend.index_url,
toolbar: '#toolbar_9',
pk: 'ID',
sortName: 'ID',
sortOrder: 'desc',
singleSelect: true, //启用单选
columns: [
[
{checkbox: true},
{field: 'ID', title: '标识'},
{field: 'ActivityName', title: __('活动名称'), formatter: Table.api.formatter.search},
{field: 'ActivityTitle', title: __('活动标题')},
{field: 'Enabled', title: __('状态'), table: table9, searchList: {"1":__('启用'),"0":__('禁用')}, confirm: function (value) {
return value=='0'?'确定【启用】该活动吗?':'确定【禁用】该活动吗?';
}, formatter: Table.api.formatter.toggle},
{field: 'ActivityImgPath', title: __('图片'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
{field: 'operate', title: __('Operate'), table: table9, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
]
],
queryParams: function (params) {
//这里可以追加搜索条件
var filter = JSON.parse(params.filter);
var op = JSON.parse(params.op);
filter.ActivityType = 9;
op.ActivityType = "=";
params.filter = JSON.stringify(filter);
params.op = JSON.stringify(op);
return params;
},
});
Table.api.bindevent(table9);
},
}
var Controller = {
index: function () {
// 初始化表格参数配置
Table.api.init({
extend: {
index_url: 'activity/activity_manager/activity'
}
});
//绑定事件
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
var panel = $($(this).attr("href"));
if (panel.size() > 0) {
Controller.table[panel.attr("id")].call(this);
$(this).on('click', function (e) {
$($(this).attr("href")).find(".btn-refresh").trigger("click");
});
}
//移除绑定的事件
$(this).unbind('shown.bs.tab');
});
//必须默认触发shown.bs.tab事件
$('ul.nav-tabs li.active a[data-toggle="tab"]').trigger("shown.bs.tab");
},
table: arr,
add: function () {
Form.api.bindevent($("form[role=form]"));
},
edit: function () {
Form.api.bindevent($("form[role=form]"));
},
api: {
bindevent: function () {
Form.api.bindevent($("form[role=form]"));
},
}
};
return Controller;
});
```
> color js 在 assets/js 下面
```
define(['jquery'], function ($) {
var Color = {
config:{
reg:function (value) {
var re = /^.[0-9]*/;
if (!re.test(value)) {
return value;
}
return parseFloat(value);
}
},
api: {
red:function (value, row, index) {
return '<strong style="color: red">'+Color.config.reg(value)+'</strong>';
},
blue:function (value, row, index) {
return '<strong style="color: blue">'+Color.config.reg(value)+'</strong>';
},
green:function (value, row, index) {
return '<strong style="color: green">'+Color.config.reg(value)+'</strong>';
},
grey:function (value, row, index) {
return '<strong style="color: grey">'+Color.config.reg(value)+'</strong>';
},
orange:function (value, row, index) {
return '<strong style="color: orange">'+Color.config.reg(value)+'</strong>';
},
orchid:function (value, row, index) {
return '<strong style="color: orchid">'+Color.config.reg(value)+'</strong>';
},
orangered:function (value, row, index) {
return '<strong style="color: orangered">'+Color.config.reg(value)+'</strong>';
},
}
};
//将Fast渲染至全局
window.Color = Color;
return Color;
});
```
- 空白目录
- thinkphp5
- tools-常用类库
- redis类库
- Excel类库
- File文件操作类库
- Http请求类库
- Maile邮件发送
- Hooks行为钩子
- 七牛云
- 随机数和字符串生成
- 字符串处理
- 时间类处理
- tree型转换
- 工具类库
- 文件打包下载
- 常用功能
- 文件上传
- php生成word文档
- elasticsearch 基本搜索
- 使用jwt开发API接口
- 安装模及搭建
- ApiCheck.php
- ApiCheckLogin.php
- common.php
- Login.php
- Comment.php
- 汉字转拼音
- 安装使用
- Pinyin类
- elasticsearch操作
- 常用方法
- 数据源生成layui-select
- 获取自定义配置项
- 百度编辑器
- 格式化文件大小
- 多语言设置
- hook监听
- 域名绑定到模块
- thinkphp6
- 文件上传
- tp5totp6
- 创建路径
- 获取类所有方法
- password_hash加密验证
- 生成 qrcode
- 邮件发送
- 获取QQ信息
- GoogleAuthenticator
- redis限流
- redis 加锁
- 百度翻译
- QueryList爬取数据
- 获取时间类
- 命令
- Git常用命令
- easyswoole
- pix_qrcode
- 验证 cpf,cnpj
- php常用方法
- 日志
- 卡通头像
- 两位小数
- 图片转base64
- auth加密解密
- phpoffice/phpspreadsheet导入导出
- fastadmin
- 树结构
- 单选框
- 复选框
- 二级搜索
- select选择框
- selectpage选中回调事件
- 标签添加
- 修改where条件
- 表格列表中添加input框
- selectpage事件
- fieldlist
- js操作
- test_js
- 多表格
- template模板