网上的帖子大部分 水分很多,官网文档 也模糊不清。自己研究两三个小时 终于搞定 废话不多说 直接贴代码
特别提示: 这卡了我很久!!!
如果 你报 table.exportFile is not a function 是因为 你的 layui 下的 table.js 不是最新的 更新为最新的即可!
下面贴代码 代码如果不能用 你打死我!! 如果你成功 给个好评! 点点关注!
html
<div class="layui-input-inline pull-right" style="padding: 1px">
<div class="layui-inline ">
<button class="layui-btn layui-btn-sm" title="导出" type="button" name="myfile" id="export"><i
class="layui-icon layui-icon-export"></i>导出交易Excel
</button>
</div>
</div>
</form>
<div class="data">
<p><i class="fa fa-spinner fa-spin"></i> 加载中...</p>
</div>
</div>
<table class="layui-hide" id="test" lay-filter="test"></table>
</block>
<block name="script">
<script type="text/javascript">
$("#export").click(function () {
layui.use('table', function(){
var table = layui.table;
var ins1 = table.render({
elem: '#test'
, url: 'PHPExcel'
,where:{
status:$('#status').val(),
keyword:$('#keyword').val(),
time:$('#time').val(),
}
, title: '提现记录表'
, cols: [[
{field: 'nickname', title: '合伙人姓名', width: 120, edit: 'text'}
, {field: 'mobile', title: '手机号', width: 180, edit: 'text'}
, {field: 'bank_card', title: '银行卡号', width: 250, sort: true, totalRow: true}
, {field: 'bank_name', title: '开户行名称', width: 250, edit: 'text', sort: true}
, {field: 'bank_address', title: '开户行地址', width: 250, sort: true, totalRow: true}
, {field: 'money', title: '提现金额', width: 100}
, {field: 'tax_money', title: '扣除税款', width: 100}
, {field: 'charge', title: '扣手续费', width: 120}
, {field: 'tx_money', title: '到账金额', width: 120}
, {field: 'create_time', title: '提现时间', width: 250}
]]
,done: function (res) {
exportData = res.data;
table.exportFile(ins1.config.id, exportData, 'xls');
}
});
})
});
</script>
PHP
public function PHPExcel()
{
$status = $this->request->post('status', -1, 'intval');
$time = input('time', '', 'trim');
$keyword = input('keyword', '', 'trim');
$list = Db::table('tx')->alias('a')
->leftJoin('user b', 'a.user_id = b.id')
->field('a.*,b.nickname,b.mobile,b.bank_card,b.bank_name,b.bank_address')
->when($time, function ($q) use ($time) {
$rang_time = range_time($time);
$t1 = date('Y-m-d', $rang_time[0]);
$t2 = date('Y-m-d', $rang_time[1]);
return $q->whereTime('create_time', 'between', [$t1, $t2]);
})->when($keyword, function ($q) use ($keyword) {
return $q->where('b.mobile|b.nickname', $keyword);
})->when(isset($status), function ($q) use ($status) {
if ($status > -1) {
return $q->where('a.status', $status);
}
})->order('a.id', 'desc')
->select();
foreach ($list as &$value) {
$card = '`' . $value['bank_card'] . '`';
$value['bank_card'] = $card;
}
return Y::json(1, '提现记录表', $list);
}