585 lines
25 KiB
PHP
585 lines
25 KiB
PHP
<?php
|
||
|
||
/**
|
||
* @author Any
|
||
* @description KISS
|
||
* @date 2021年6月10日
|
||
* @version 1.0.0
|
||
*
|
||
* _____LOG_____
|
||
*
|
||
*/
|
||
use app\models\Model;
|
||
use app\models\Cash;
|
||
|
||
$this->title = '提现列表';
|
||
$this->params['breadcrumbs'][] = $this->title;
|
||
$status_labels = Cash::getStatusLabels();
|
||
$status = \Yii::$app->request->get('status');
|
||
$transfer_status_labels = Cash::getTransferStatusLabels();
|
||
$transfer_status = \Yii::$app->request->get('transfer_status');
|
||
|
||
$scene_labels = Cash::getSceneLabels();
|
||
$scene = \Yii::$app->request->get('scene');
|
||
|
||
|
||
|
||
?>
|
||
<style type="text/css">
|
||
.layui-table-cell {
|
||
height: auto;
|
||
}
|
||
</style>
|
||
<div class="layui-fluid">
|
||
<div class="layui-card">
|
||
<div class="layui-card-header">
|
||
<?= $this->title ?>
|
||
</div>
|
||
<div class="layui-card-header layuiadmin-card-header-auto">
|
||
<div class="layui-form-item">
|
||
<div class="layui-inline">
|
||
</div>
|
||
<div class="layui-inline layui-float-right layui-form">
|
||
<div class="layui-inline layui-form-item">
|
||
<div class="layui-input-inline">
|
||
<select class="layui-select" name="scene">
|
||
<option value="" <?=$scene === null ? 'selected' : ''?>>全部提现类型</option>
|
||
<?php foreach ($scene_labels as $key => $val):?>
|
||
<option value="<?=$key?>" <?=$scene == $key && $scene != null ? 'selected' : ''?>><?=$val?></option>
|
||
<?php endforeach;?>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div class="layui-inline layui-form-item">
|
||
<div class="layui-input-inline">
|
||
<select class="layui-select" name="status">
|
||
<option value="" <?=$status === null ? 'selected' : ''?>>全部状态</option>
|
||
<?php foreach ($status_labels as $key => $val):?>
|
||
<option value="<?=$key?>" <?=$status == $key && $status != null ? 'selected' : ''?>><?=$val?></option>
|
||
<?php endforeach;?>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div class="layui-inline layui-form-item">
|
||
<div class="layui-input-inline">
|
||
<select class="layui-select" name="transfer_status">
|
||
<option value="" <?=$transfer_status === null ? 'selected' : ''?>>全部转账状态</option>
|
||
<?php foreach ($transfer_status_labels as $key => $val):?>
|
||
<option value="<?=$key?>" <?=$transfer_status == $key && $transfer_status != null ? 'selected' : ''?>><?=$val?></option>
|
||
<?php endforeach;?>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div class="layui-inline layui-form-item">
|
||
<!--<label class="layui-form-label">关键词</label>-->
|
||
<div class="layui-input-inline">
|
||
<input type="text" name="keywords" placeholder="搜索昵称、订单号" autocomplete="off" class="layui-input" value="<?=\Yii::$app->request->get("keywords")?>">
|
||
</div>
|
||
</div>
|
||
<div class="layui-inline">
|
||
<button class="layui-btn layuiadmin-btn-useradmin" lay-submit lay-filter="dtable-search">
|
||
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="layui-card-body">
|
||
<table id="dtable" lay-filter="dtable"></table>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!--工具栏模板-->
|
||
<script type="text/html" id="toolBarTpl">
|
||
<div class="layui-btn-container">
|
||
<!--<button class="layui-btn layui-btn-sm" lay-event="add">添加</button>-->
|
||
<!--<button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="delete">批量删除</button>-->
|
||
|
||
</div>
|
||
</script>
|
||
<!--行操作列模板-->
|
||
<script type="text/html" id="rowBarTpl">
|
||
{{# if(d.status == 0){ }}
|
||
<a href="javascript:;" class="layui-btn layui-btn-normal layui-btn-xs" lay-event="review" >审核</a>
|
||
{{# } }}
|
||
{{# if(d.status == 1 && d.transfer_status == 0){ }}
|
||
<a href="javascript:;" class="layui-btn layui-btn-xs" lay-event="transfer" >打款</a>
|
||
{{# } }}
|
||
{{# if(d.status == 2 || (d.status == 1 && d.transfer_status == 0 && d.cash_type == 0)){ }}
|
||
<a href="javascript:;" class="layui-btn layui-btn-danger layui-btn-xs" lay-event="delete" >删除</a>
|
||
{{# } }}
|
||
</script>
|
||
|
||
<script type="text/html" id="nicknameTpl">
|
||
<img src="{{d.avatar_url}}" style="width:24px;height:24px;border-radius: 24px;margin-right: 4px;">{{d.nickname}}
|
||
</script>
|
||
|
||
<script type="text/html" id="cashTypeTpl">
|
||
|
||
{{# if(d.cash_type == <?=Cash::$cxCashTypeWx?>){ }}
|
||
<p><span class="layui-badge layui-bg-green">{{d.cash_type_cn}}</span> </p>
|
||
<p>微信账号:{{d.wechat_account}} </p>
|
||
<p>微信账号持有者:{{d.wechat_account_name}} </p>
|
||
{{# } else if(d.cash_type == <?=Cash::$cxCashTypeAli?>){ }}
|
||
<p><span class="layui-badge layui-bg-blue">{{d.cash_type_cn}}</span> </p>
|
||
<p>支付宝账号:{{d.alipay_account}} </p>
|
||
<p>支付宝账号持有者:{{d.alipay_account_name}} </p>
|
||
{{# } else if(d.cash_type == <?=Cash::$cxCashTypeBank?>){ }}
|
||
<p><span class="layui-badge layui-bg-orange">{{d.cash_type_cn}}</span> </p>
|
||
<p>银行名称:{{d.bank_name}} </p>
|
||
<p>银行卡号:{{d.bank_card_no}} </p>
|
||
<p>银行卡持卡人:{{d.bank_card_name}} </p>
|
||
{{# } else if(d.cash_type == <?=Cash::$cxCashTypeAuto?>){ }}
|
||
<p><span class="layui-badge layui-bg-black">{{d.cash_type_cn}}</span> </p>
|
||
{{# } }}
|
||
|
||
</script>
|
||
|
||
<script type="text/html" id="cashInfoTpl">
|
||
<p>金额:<span class="layui-badge layui-bg-blue">{{d.money}}</span> 元</p>
|
||
<p>服务费:{{d.service_charge}}元</p>
|
||
<p>实际到账金额:<span class="layui-badge layui-bg-blue">{{d.actual_money}}</span>元</p>
|
||
<p>订单号:{{d.order_no}}</p>
|
||
<p>时间:{{d.created_at_cn}}</p>
|
||
</script>
|
||
|
||
<script type="text/html" id="statusTpl">
|
||
<p>
|
||
{{# if(d.status == 0){ }}
|
||
<span class="layui-badge layui-bg-gray">{{d.status_cn}}</span>
|
||
{{# } else if(d.status == 1){ }}
|
||
<span class="layui-badge layui-bg-green">{{d.status_cn}}</span>
|
||
{{# } else if(d.status == 2){ }}
|
||
<span class="layui-badge layui-bg-orange">{{d.status_cn}}</span>
|
||
{{# } }}
|
||
</p>
|
||
{{# if(d.status != 0){ }}
|
||
<p>审核时间:{{d.review_time_cn}}</p>
|
||
<p>审核意见:{{d.review_comment}}</p>
|
||
{{# } }}
|
||
</script>
|
||
|
||
<script type="text/html" id="transferStatusTpl">
|
||
<p>
|
||
{{# if(d.transfer_status == 0){ }}
|
||
<span class="layui-badge layui-bg-gray">{{d.transfer_status_cn}}</span>
|
||
{{# } else if(d.transfer_status == 1){ }}
|
||
<span class="layui-badge layui-bg-green">{{d.transfer_status_cn}}</span>
|
||
{{# } else if(d.transfer_status == 2){ }}
|
||
<span class="layui-badge layui-bg-orange">{{d.transfer_status_cn}}</span>
|
||
{{# } }}
|
||
</p>
|
||
{{# if(d.transfer_status == 1){ }}
|
||
<p>转账时间:{{d.pay_time_cn}}</p>
|
||
<p>转账类型:{{d.pay_type_cn}}</p>
|
||
{{# } }}
|
||
</script>
|
||
|
||
|
||
|
||
<script id="review_html" type="text/html">
|
||
<div class="layui-form review-panel">
|
||
<div class="layui-card">
|
||
<div class="layui-card-header layui-hide"></div>
|
||
<div class="layui-card-body">
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label">是否通过</label>
|
||
<div class="layui-input-block">
|
||
<input type="radio" name="status" value="1" title="审核通过">
|
||
<input type="radio" name="status" value="2" title="审核未通过">
|
||
</div>
|
||
<div class="layui-form-mid layui-word-aux"></div>
|
||
</div>
|
||
<div class="layui-form-item">
|
||
<label class="layui-form-label">审核意见</label>
|
||
<div class="layui-input-block">
|
||
<textarea class="layui-textarea" name="review_comment"></textarea>
|
||
</div>
|
||
<div class="layui-form-mid layui-word-aux"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="layui-card-footer layui-text-center layui-mt-15 layui-mb-15">
|
||
<a class="layui-btn layui-btn-sm confirm-btn" lay-submit="" lay-filter="layui-review-submit" href="javascript:;">确定</a>
|
||
<a class="layui-btn layui-btn-sm cancel-btn" href="javascript:;">取消</a>
|
||
</div>
|
||
</div>
|
||
</script>
|
||
|
||
<script>
|
||
<?php $this->beginBlock('js_script_wrap') ?>
|
||
layui.config({
|
||
base: '/statics/layuiadmin/' //静态资源所在路径
|
||
}).extend({
|
||
index: 'lib/index' //主入口模块
|
||
}).use(['index', 'user', 'table'], function () {
|
||
var $ = layui.$
|
||
, form = layui.form
|
||
, table = layui.table
|
||
, admin = layui.admin;
|
||
form.render();
|
||
|
||
//search
|
||
form.on('submit(dtable-search)', function (obj) {
|
||
var field = obj.field;
|
||
reload_table_data(field);
|
||
});
|
||
|
||
form.on('select(batch-action)', function (obj) {
|
||
var lay_event = obj.value;
|
||
var check_status = table.checkStatus('dtable');
|
||
var id = [];
|
||
$(check_status.data).each(function(index){
|
||
id.push(check_status.data[index]['id']);
|
||
});
|
||
|
||
var confirm_url = null;
|
||
var confirm_tip = null;
|
||
|
||
if(confirm_url != null){
|
||
layer.confirm(confirm_tip, {
|
||
btn: ['确定','取消']
|
||
}, function(){
|
||
$.ajax(confirm_url,{
|
||
type:"POST",
|
||
dataType:"json",
|
||
data:{
|
||
cash_id:id,
|
||
_csrf:_csrf
|
||
},
|
||
success:function(res){
|
||
if(res.code == 0){
|
||
layer.msg(res.msg, {
|
||
offset: '15px'
|
||
,icon: 1
|
||
,time: 1000
|
||
}, function(){
|
||
location.reload();
|
||
});
|
||
} else {
|
||
layer.msg(res.msg, {
|
||
offset: '15px'
|
||
,icon: 2
|
||
,time: 1000
|
||
}, function(){
|
||
});
|
||
}
|
||
},
|
||
error:function(xhr,type,err){
|
||
layer.msg(xhr.responseText, {
|
||
offset: '15px'
|
||
,icon: 2
|
||
,time: 1000
|
||
}, function(){
|
||
});
|
||
}
|
||
})
|
||
}, function(){
|
||
});
|
||
}
|
||
});
|
||
|
||
//重新加载表格数据
|
||
function reload_table_data(conf){
|
||
table.reload('dtable', {
|
||
url:'<?=\Yii::$app->urlManager->createUrl(['admin/cash/index'])?>'
|
||
,page: true
|
||
,where: conf
|
||
});
|
||
};
|
||
|
||
//执行渲染
|
||
table.render({
|
||
//指定原始表格元素选择器(推荐id选择器)
|
||
elem: '#dtable'
|
||
//容器高度
|
||
//,height: 315
|
||
//容器宽度
|
||
//,width: 720
|
||
//设置表头
|
||
,cols: [[
|
||
{checkbox: true}
|
||
, {field: 'id', title: 'ID', width: 80}
|
||
, {field: 'nickname', title: '用户',templet:'#nicknameTpl', width:180}
|
||
, {field: 'scene_cn', title: '提现类型', width: 100}
|
||
, {field: 'cash_type_info', title: '提现方式', templet:'#cashTypeTpl', width: 260}
|
||
, {field: 'cash_money_info', title: '提现信息', templet:'#cashInfoTpl', width: 300}
|
||
, {field: 'status_cn', title: '状态', templet:'#statusTpl', width: 240}
|
||
, {field: 'transfer_status_cn', title: '转账状态', templet:'#transferStatusTpl', width: 240}
|
||
, {field: 'remark', title: '备注', width: 200}
|
||
, {title: '操作',fixed: 'right', toolbar: '#rowBarTpl', width:180}
|
||
]
|
||
]
|
||
, url:'<?=\Yii::$app->urlManager->createUrl(['admin/cash/index'])?>'
|
||
, page:true
|
||
//指向自定义工具栏模板选择器
|
||
, toolbar:'#toolBarTpl'
|
||
//头部工具栏右侧的图标按钮
|
||
, defaultToolbar:['filter', 'print', 'exports']
|
||
, limit: 20
|
||
, limits:[10,20,30,40,50,60,70,80,90,100]
|
||
, title:'<?=$this->title?>'
|
||
, data:[]
|
||
, done: function(res, curr, count){
|
||
setTimeout(function(){
|
||
$(".layui-table-main tr").each(function (index ,val) {
|
||
$(".layui-table-fixed").each(function () {
|
||
$($(this).find(".layui-table-body tbody tr")[index]).height($(val).height());
|
||
});
|
||
});
|
||
$(".layui-table-header tr").each(function (index ,val) {
|
||
$(".layui-table-fixed").each(function () {
|
||
$($(this).find(".layui-table-header thead tr")[index]).height($(val).height());
|
||
});
|
||
});
|
||
},500);
|
||
}
|
||
});
|
||
//监听工具栏
|
||
table.on('toolbar(dtable)', function(obj){
|
||
var lay_event = obj.event;
|
||
var check_status = table.checkStatus('dtable');
|
||
var id = [];
|
||
$(check_status.data).each(function(index){
|
||
id.push(check_status.data[index]['id']);
|
||
});
|
||
if(id.length == 0){
|
||
return layer.msg("请选择需要操作项");
|
||
}
|
||
|
||
var confirm_url = null;
|
||
var confirm_tip = null;
|
||
if(lay_event == 'delete'){
|
||
confirm_tip = '你确定将此删除吗?';
|
||
confirm_url = '<?=\Yii::$app->urlManager->createUrl(["/admin/cash/delete"])?>';
|
||
}
|
||
if(lay_event == 'review'){
|
||
var content = $("#review_html").html();
|
||
return layer.open({
|
||
type: 1,
|
||
title:'审核面板',
|
||
offset:'50px',
|
||
area: ['560px', '330px'], //宽高
|
||
content: content,
|
||
success:function(layero, index){
|
||
//console.log(layero, index);
|
||
form.render();
|
||
form.on('submit(layui-review-submit)', function (obj) {
|
||
//console.log(obj.field)
|
||
var data = obj.field;
|
||
data.cash_id = id;
|
||
data._csrf = _csrf;
|
||
//console.log(data)
|
||
var url = '<?=\Yii::$app->urlManager->createUrl(["/admin/cash/review"])?>';
|
||
$.ajax(url,{
|
||
type:"POST",
|
||
dataType:"json",
|
||
data:data,
|
||
success:function(res){
|
||
if(res.code == 0){
|
||
layer.msg(res.msg, {
|
||
offset: '15px'
|
||
,icon: 1
|
||
,time: 1000
|
||
}, function(){
|
||
location.reload();
|
||
});
|
||
} else {
|
||
layer.msg(res.msg, {
|
||
offset: '15px'
|
||
,icon: 2
|
||
,time: 1000
|
||
}, function(){
|
||
});
|
||
}
|
||
},
|
||
error:function(xhr,type,err){
|
||
layer.msg(xhr.responseText, {
|
||
offset: '15px'
|
||
,icon: 2
|
||
,time: 1000
|
||
}, function(){
|
||
});
|
||
}
|
||
})
|
||
});
|
||
$('.review-panel').on('click','.confirm-btn',function(){
|
||
layer.close(index);
|
||
})
|
||
$('.review-panel').on('click','.cancel-btn',function(){
|
||
layer.close(index);
|
||
});
|
||
}
|
||
});
|
||
}
|
||
|
||
if(confirm_url != null){
|
||
layer.confirm(confirm_tip, {
|
||
btn: ['确定','取消']
|
||
}, function(){
|
||
$.ajax(confirm_url,{
|
||
type:"POST",
|
||
dataType:"json",
|
||
data:{
|
||
cash_id:id,
|
||
_csrf:_csrf
|
||
},
|
||
success:function(res){
|
||
if(res.code == 0){
|
||
layer.msg(res.msg, {
|
||
offset: '15px'
|
||
,icon: 1
|
||
,time: 1000
|
||
}, function(){
|
||
location.reload();
|
||
});
|
||
} else {
|
||
layer.msg(res.msg, {
|
||
offset: '15px'
|
||
,icon: 2
|
||
,time: 1000
|
||
}, function(){
|
||
});
|
||
}
|
||
},
|
||
error:function(xhr,type,err){
|
||
layer.msg(xhr.responseText, {
|
||
offset: '15px'
|
||
,icon: 2
|
||
,time: 1000
|
||
}, function(){
|
||
});
|
||
}
|
||
})
|
||
}, function(){
|
||
});
|
||
}
|
||
});
|
||
|
||
//监听工具条
|
||
table.on('tool(dtable)', function(obj){
|
||
var row_data = obj.data;
|
||
var lay_event = obj.event;
|
||
var id = row_data.id;
|
||
|
||
var confirm_url = null;
|
||
var confirm_tip = null;
|
||
if(lay_event == 'delete'){
|
||
confirm_tip = '你确定将此项删除吗?';
|
||
confirm_url = '<?=\Yii::$app->urlManager->createUrl(["/admin/cash/delete"])?>';
|
||
}
|
||
if(lay_event == 'transfer'){
|
||
confirm_tip = '你确定打款吗?';
|
||
confirm_url = '<?=\Yii::$app->urlManager->createUrl(["/admin/cash/transfer"])?>';
|
||
}
|
||
|
||
if(lay_event == 'review'){
|
||
var content = $("#review_html").html();
|
||
return layer.open({
|
||
type: 1,
|
||
title:'审核面板',
|
||
offset:'50px',
|
||
area: ['560px', '330px'], //宽高
|
||
content: content,
|
||
success:function(layero, index){
|
||
//console.log(layero, index);
|
||
form.render();
|
||
form.on('submit(layui-review-submit)', function (obj) {
|
||
//console.log(obj.field)
|
||
var data = obj.field;
|
||
data.cash_id = id;
|
||
data._csrf = _csrf;
|
||
//console.log(data)
|
||
var url = '<?=\Yii::$app->urlManager->createUrl(["/admin/cash/review"])?>';
|
||
$.ajax(url,{
|
||
type:"POST",
|
||
dataType:"json",
|
||
data:data,
|
||
success:function(res){
|
||
if(res.code == 0){
|
||
layer.msg(res.msg, {
|
||
offset: '15px'
|
||
,icon: 1
|
||
,time: 1000
|
||
}, function(){
|
||
location.reload();
|
||
});
|
||
} else {
|
||
layer.msg(res.msg, {
|
||
offset: '15px'
|
||
,icon: 2
|
||
,time: 1000
|
||
}, function(){
|
||
});
|
||
}
|
||
},
|
||
error:function(xhr,type,err){
|
||
layer.msg(xhr.responseText, {
|
||
offset: '15px'
|
||
,icon: 2
|
||
,time: 1000
|
||
}, function(){
|
||
});
|
||
}
|
||
})
|
||
});
|
||
$('.review-panel').on('click','.confirm-btn',function(){
|
||
layer.close(index);
|
||
})
|
||
$('.review-panel').on('click','.cancel-btn',function(){
|
||
layer.close(index);
|
||
});
|
||
}
|
||
});
|
||
}
|
||
|
||
if(confirm_url != null){
|
||
layer.confirm(confirm_tip, {
|
||
btn: ['确定','取消']
|
||
}, function(){
|
||
$.ajax(confirm_url,{
|
||
type:"POST",
|
||
dataType:"json",
|
||
data:{
|
||
cash_id:id,
|
||
_csrf:_csrf
|
||
},
|
||
success:function(res){
|
||
if(res.code == 0){
|
||
layer.msg(res.msg, {
|
||
offset: '15px'
|
||
,icon: 1
|
||
,time: 1000
|
||
}, function(){
|
||
location.reload();
|
||
});
|
||
} else {
|
||
layer.msg(res.msg, {
|
||
offset: '15px'
|
||
,icon: 2
|
||
,time: 1000
|
||
}, function(){
|
||
});
|
||
}
|
||
},
|
||
error:function(xhr,type,err){
|
||
layer.msg(xhr.responseText, {
|
||
offset: '15px'
|
||
,icon: 2
|
||
,time: 1000
|
||
}, function(){
|
||
});
|
||
}
|
||
})
|
||
}, function(){
|
||
});
|
||
}
|
||
});
|
||
});
|
||
|
||
<?php $this->endBlock(); ?>
|
||
</script>
|
||
<?php $this->registerJs($this->blocks['js_script_wrap'], \yii\web\View::POS_END); ?>
|
||
|