1.在vendor/zoujingli/think-library/src/helper/PageHelper.php
public function layTable($dbQuery, string $template = ''): array
{
if ($this->output === 'get.json') {
// 原有代码
}
if ($this->output === 'get.layui.table') {
// 原有代码,下面为增加的代码
if(isset($get['sunar_sum']) && $get['sunar_sum']){
$sum = $query->sum($get['sunar_sum']);
$result['sum'] = $sum;
}
$this->xssFilter($result['data']);
// 原有代码
} else {
$this->class->fetch($template);
return [];
}
}
2.在public/static/admin.js 中option.done里面增加
option.done = function () {
// code
}, option.parseData = function (res) {
if(res.sum){
$('#sunar_sum').html(res.sum)
}
// code
return res;
};
3.在页面增加名为sunar_sum的元素,放到search的from部分
<input type="hidden" name="sunar_sum" value="{$get.sunar_sum|default='b.amount_pay'}">
例如上面这个就是增加一个统计b表的amount_pay
如果要统计多个参数的话也是按照上面的步骤:
1.在页面增加参数
<div class="layui-tab-card">
<div class="layui-col-xs12 layui-col-md12" >
<div class="think-box-notify" type="info">
人数:<b class="color-blue padding-left-5" data-extra="pre"><label class="sunar_count">{$total.count}</label> 人</b> |
实发金额合计<b class="color-blue padding-left-5" data-extra="pre">¥<label class="amount_pay">{$total.amount_pay}</label></b> |
开票金额<b class="color-blue padding-left-5" data-extra="pre">¥<label class="amount">{$total.amount}</label></b>
</div>
<div class="think-box-shadow">
<div class="layui-tab-content">
<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=''}">
<input type="hidden" name="sunar_sum[amount_pay]" value="{$get.sunar_sum|default='b.amount_pay'}">
<input type="hidden" name="sunar_sum[amount]" value="{$get.sunar_amount|default='b.amount'}">
</label>
</div>
<div class="layui-form-item layui-inline">
<button class="layui-btn layui-border-blue layui-btn-primary"><i class="layui-icon"></i> 查 询</button>
</div>
</form>
<table id="NewsTable" data-url="{:sysuri()}" data-target-search="form.form-search"></table>
</div>
</div>
</div>
</div>
2.在public/static/admin.js 中option.done里面增加
option.parseData = function (res) {
if(res.sum){
$('.sunar_count').html(res.count)
for (var key in res.sum) {
if (res.sum.hasOwnProperty(key)) {
$('.'+ key).html(res.sum[key])
}
}
}
//...
};
3.在vendor/zoujingli/think-library/src/helper/PageHelper.php,layTable方法中的get.layui.table加入一下代码
if(isset($get['sunar_sum']) && $get['sunar_sum']){
if(is_array($get['sunar_sum'])){
foreach ($get['sunar_sum'] as $key => $value) {
$sum = $query->sum($value);
$result["sum"][$key] = $sum;
}
}
}