chore: 重写初始提交(清空历史,整理后全量提交)
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
|
||||
<div class="layui-card" style="margin:20px;">
|
||||
<div class="layui-card-header">插件审核(开发者上架申请)</div>
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-form layui-row" style="margin-bottom:12px;">
|
||||
<div class="layui-inline">
|
||||
<select id="statusFilter">
|
||||
<option value="">全部状态</option>
|
||||
<option value="0">待审核</option>
|
||||
<option value="1">已发布</option>
|
||||
<option value="2">已驳回</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<button class="layui-btn" id="searchBtn">搜索</button>
|
||||
</div>
|
||||
</div>
|
||||
<table class="layui-hide" id="dataTable" lay-filter="dataTable"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="toolTpl">
|
||||
{{# if(d.status == 0){ }}
|
||||
<a class="layui-btn layui-btn-xs" lay-event="audit">通过</a>
|
||||
<a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="reject">驳回</a>
|
||||
{{# } else { }}
|
||||
<span class="layui-badge {{ d.status == 1 ? 'layui-bg-green' : '' }}">
|
||||
{{ d.status == 1 ? '已发布' : '已驳回' }}
|
||||
</span>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
layui.use(['table', 'jquery', 'layer'], function () {
|
||||
var table = layui.table, $ = layui.jquery, layer = layui.layer;
|
||||
table.render({
|
||||
elem: '#dataTable',
|
||||
url: '{:url("/appmall/backend/addonreview/index")}',
|
||||
page: true,
|
||||
response: { statusName: 'code', msgName: 'message', countName: 'count', dataName: 'data' },
|
||||
parseData: function (res) {
|
||||
return {
|
||||
code: res.code,
|
||||
msg: res.message,
|
||||
count: res.count || 0,
|
||||
data: res.data || []
|
||||
};
|
||||
},
|
||||
where: { status: $('#statusFilter').val() },
|
||||
cols: [[
|
||||
{field: 'id', title: 'ID', width: 70},
|
||||
{field: 'title', title: '插件名称', width: 160},
|
||||
{field: 'name', title: '标识', width: 140},
|
||||
{field: 'version', title: '版本', width: 90},
|
||||
{field: 'developer_id', title: '开发者ID', width: 100},
|
||||
{field: 'price', title: '价格', width: 90, templet: function(d){return d.price ? d.price : '免费';}},
|
||||
{field: 'status', title: '状态', width: 90, templet: function(d){
|
||||
if(d.status==0) return '<span class="layui-badge">待审核</span>';
|
||||
if(d.status==1) return '<span class="layui-badge layui-bg-green">已发布</span>';
|
||||
return '<span class="layui-badge layui-bg-red">已驳回</span>';
|
||||
}},
|
||||
{field: 'reject_reason', title: '驳回原因', width: 160},
|
||||
{field: 'create_at', title: '提交时间', width: 170, templet: function(d){return layui.util.toDateString(d.create_at*1000);}},
|
||||
{title: '操作', width: 160, templet: '#toolTpl', fixed: 'right'}
|
||||
]]
|
||||
});
|
||||
|
||||
$('#searchBtn').on('click', function () {
|
||||
table.reload('dataTable', { where: { status: $('#statusFilter').val() }, page: { curr: 1 } });
|
||||
});
|
||||
|
||||
table.on('tool(dataTable)', function (obj) {
|
||||
var d = obj.data;
|
||||
if (obj.event === 'audit') {
|
||||
layer.confirm('确认通过该插件上架申请?', function (index) {
|
||||
$.post('{:url("/appmall/backend/addonreview/audit")}', { id: d.id }, function (r) {
|
||||
layer.msg(r.msg || '操作完成');
|
||||
if (r.code === 0) { table.reload('dataTable'); }
|
||||
layer.close(index);
|
||||
}, 'json');
|
||||
});
|
||||
} else if (obj.event === 'reject') {
|
||||
layer.prompt({ title: '填写驳回原因', formType: 2 }, function (val, index) {
|
||||
$.post('{:url("/appmall/backend/addonreview/reject")}', { id: d.id, reason: val }, function (r) {
|
||||
layer.msg(r.msg || '操作完成');
|
||||
if (r.code === 0) { table.reload('dataTable'); }
|
||||
layer.close(index);
|
||||
}, 'json');
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,77 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
{block name="title"}<title>{$title | default='YwxApp'}</title>{/block}
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<link href="/assets/layui/css/layui.css" rel="stylesheet">
|
||||
<link href="/assets/ywxapp/css/wxapp.css" rel="stylesheet">
|
||||
<style>
|
||||
html,
|
||||
body {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
body {
|
||||
padding-bottom: 64px;
|
||||
}
|
||||
|
||||
.layui-card {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.layui-card-body {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.layui-table-view {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.layui-table-box {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.layui-table-body {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex: 1;
|
||||
}
|
||||
</style>
|
||||
<script src="/assets/layui/layui.js"></script>
|
||||
<script type="text/javascript">
|
||||
// 全局路径配置:仅注入部署参数,路由方法来自 layui 的 route 模块。
|
||||
// app 为 ThinkPHP 真实应用目录名(backend/member/frontend/home),对应 public/static/<app> 目录。
|
||||
layui.app= window.APP = {
|
||||
root: "{$site.root|default=''}",
|
||||
assetUrl: "/assets",
|
||||
module: "{$site.module}",
|
||||
realModule: "{$site.app}",
|
||||
routeBase: "{$route_base}",
|
||||
controller: "{$site.controller}",
|
||||
action: "{$site.action}"
|
||||
};
|
||||
</script>
|
||||
<script src="/assets/ywxapp/ywxapp.js" module="{$site.app}"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{block name="body"}{/block}
|
||||
|
||||
{block name="script"}{/block}
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,112 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>开发者管理 - 应用市场管理</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link href="/assets/layui/css/layui.css" rel="stylesheet">
|
||||
<link href="/assets/ywxapp/css/wxapp.css" rel="stylesheet">
|
||||
<style>body{background:#f2f3f5;padding:15px;}</style>
|
||||
</head>
|
||||
<body>
|
||||
<form class="layui-form" lay-filter="filterForm">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">状态</label>
|
||||
<div class="layui-input-inline" style="width:140px;">
|
||||
<select name="status">
|
||||
<option value="">全部</option>
|
||||
<option value="0">待审核</option>
|
||||
<option value="1">正常</option>
|
||||
<option value="-1">已禁用</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<button class="layui-btn" lay-submit lay-filter="search">搜索</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<table id="dataTable" lay-filter="dataTable"></table>
|
||||
|
||||
<script type="text/html" id="statusTpl">
|
||||
{{# if(d.status == 0){ }}<span class="layui-badge layui-bg-orange">待审核</span>
|
||||
{{# } else if(d.status == 1){ }}<span class="layui-badge layui-bg-green">正常</span>
|
||||
{{# } else { }}<span class="layui-badge">已禁用</span>{{# } }}
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="operateTpl">
|
||||
{{# if(d.status == 0){ }}
|
||||
<a class="layui-btn layui-btn-xs layui-btn-normal" lay-event="approve">通过</a>
|
||||
{{# } }}
|
||||
{{# if(d.status == 1){ }}
|
||||
<a class="layui-btn layui-btn-xs" lay-event="resend">重发令牌</a>
|
||||
<a class="layui-btn layui-btn-xs layui-btn-warm" lay-event="reset">重置令牌</a>
|
||||
<a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="disable">禁用</a>
|
||||
{{# } }}
|
||||
{{# if(d.status == -1){ }}
|
||||
<a class="layui-btn layui-btn-xs layui-btn-normal" lay-event="approve">启用</a>
|
||||
{{# } }}
|
||||
</script>
|
||||
|
||||
<script src="/assets/layui/layui.js"></script>
|
||||
<script src="/assets/ywxapp/ywxapp.js" module="{$site.app}"></script>
|
||||
<script>
|
||||
layui.use(['table', 'form', 'layer', 'jquery', 'http'], function () {
|
||||
var table = layui.table, form = layui.form, layer = layui.layer, $ = layui.jquery, http = layui.http;
|
||||
|
||||
table.render({
|
||||
elem: '#dataTable',
|
||||
url: 'index',
|
||||
page: true,
|
||||
limits: [10, 20, 50],
|
||||
limit: 10,
|
||||
cols: [[
|
||||
{ field: 'id', title: 'ID', width: 70 },
|
||||
{ field: 'username', title: '开发者', minWidth: 140 },
|
||||
{ field: 'email', title: '邮箱', minWidth: 200 },
|
||||
{ field: 'token', title: '令牌', minWidth: 320, templet: function (d) { return '<span style="word-break:break-all;">' + d.token + '</span>'; } },
|
||||
{ field: 'status', title: '状态', width: 90, templet: '#statusTpl' },
|
||||
{ field: 'created_at', title: '创建时间', width: 170, templet: function (d) { return d.created_at ? new Date(d.created_at * 1000).toLocaleString() : ''; } },
|
||||
{ title: '操作', width: 260, toolbar: '#operateTpl', fixed: 'right' }
|
||||
]],
|
||||
response: { statusName: 'code', statusCode: 0, msgName: 'message', countName: 'count', dataName: 'data' }
|
||||
});
|
||||
|
||||
form.on('submit(search)', function (data) {
|
||||
table.reload('dataTable', { where: data.field, page: { curr: 1 } });
|
||||
return false;
|
||||
});
|
||||
|
||||
table.on('tool(dataTable)', function (elem) {
|
||||
var d = elem.data, id = d.id;
|
||||
if (elem.event === 'approve') {
|
||||
layer.confirm('确认' + (d.status == 0 ? '通过该开发者并邮件下发令牌?' : '启用该开发者?'), function () {
|
||||
http.post('approve', { id: id }).then(function (r) {
|
||||
if (r.code === 0) { layer.msg('操作成功', { icon: 1 }); table.reload('dataTable'); }
|
||||
else { layer.msg(r.message || '操作失败', { icon: 2 }); }
|
||||
}).catch(function () { layer.msg('请求失败', { icon: 2 }); });
|
||||
});
|
||||
} else if (elem.event === 'disable') {
|
||||
layer.confirm('确认禁用该开发者?其令牌将立即失效。', function () {
|
||||
http.post('disable', { id: id }).then(function (r) {
|
||||
if (r.code === 0) { layer.msg('已禁用', { icon: 1 }); table.reload('dataTable'); }
|
||||
else { layer.msg(r.message || '操作失败', { icon: 2 }); }
|
||||
}).catch(function () { layer.msg('请求失败', { icon: 2 }); });
|
||||
});
|
||||
} else if (elem.event === 'resend') {
|
||||
http.post('resend', { id: id }).then(function (r) {
|
||||
layer.msg(r.message || (r.code === 0 ? '已重发' : '失败'), { icon: r.code === 0 ? 1 : 2 });
|
||||
}).catch(function () { layer.msg('请求失败', { icon: 2 }); });
|
||||
} else if (elem.event === 'reset') {
|
||||
layer.confirm('确认重置令牌?旧令牌将失效。', function () {
|
||||
http.post('reset', { id: id }).then(function (r) {
|
||||
if (r.code === 0) { layer.msg('已重置' + (r.data && r.data.token ? ',新令牌:' + r.data.token : ''), { icon: 1, time: 4000 }); table.reload('dataTable'); }
|
||||
else { layer.msg(r.message || '操作失败', { icon: 2 }); }
|
||||
}).catch(function () { layer.msg('请求失败', { icon: 2 }); });
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,144 @@
|
||||
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">主框架版本管理(升级服务器)</div>
|
||||
<div class="layui-card-body">
|
||||
<blockquote class="layui-elem-quote layui-quote-nm" style="margin-bottom:12px;">
|
||||
同一版本号可先后上传「整包」「增量补丁」「完整安装包」,三者共存于同一条版本记录;
|
||||
客户端升级时自动择优(正好停在补丁基础版本走补丁,否则走整包),完整安装包供全新部署下载。重新上传任一包后需再次「发布」。
|
||||
</blockquote>
|
||||
<form class="layui-form" id="uploadForm">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">版本号</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="version" placeholder="x.y.z" class="layui-input" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">标题</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="title" placeholder="可选,如 安全修复" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">类型</label>
|
||||
<div class="layui-input-inline">
|
||||
<select name="type" id="pkgType" class="layui-input">
|
||||
<option value="0">整包(full)</option>
|
||||
<option value="1">增量补丁(patch)</option>
|
||||
<option value="2">完整安装包(install)</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">基础版本</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="from_version" id="fromVersion" placeholder="仅增量补丁需要,如 1.2.0" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<button type="button" class="layui-btn" id="btnUpload">
|
||||
<i class="layui-icon layui-icon-upload"></i> 上传核心包
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">更新日志</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="changelog" class="layui-textarea" placeholder="更新内容..."></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<table class="layui-hide" id="dataTable" lay-filter="dataTable"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
layui.use(['table', 'upload', 'jquery', 'layer'], function () {
|
||||
var table = layui.table, upload = layui.upload, $ = layui.jquery, layer = layui.layer;
|
||||
table.render({
|
||||
elem: '#dataTable',
|
||||
url: '{:url("/appmall/backend/framework/index")}',
|
||||
page: true,
|
||||
cols: [[
|
||||
{field: 'id', title: 'ID', width: 70},
|
||||
{field: 'version', title: '版本号', width: 120},
|
||||
{title: '包', width: 200, templet: function (d) {
|
||||
var h = '';
|
||||
h += d.file_path ? '<span class="layui-badge layui-bg-blue">整包</span> '
|
||||
: '<span class="layui-badge layui-bg-gray">无整包</span> ';
|
||||
h += d.patch_path ? '<span class="layui-badge layui-bg-orange">补丁</span> ' : '';
|
||||
h += d.install_path ? '<span class="layui-badge layui-bg-cyan">安装包</span>' : '';
|
||||
return h;
|
||||
}},
|
||||
{field: 'patch_from', title: '补丁基础版本', width: 110, templet: function (d) {
|
||||
return d.patch_from || d.from_version || '';
|
||||
}},
|
||||
{field: 'title', title: '标题'},
|
||||
{field: 'changelog', title: '更新日志'},
|
||||
{field: 'status', title: '状态', width: 90, templet: function (d) {
|
||||
return d.status == 1
|
||||
? '<span class="layui-badge layui-bg-green">已发布</span>'
|
||||
: '<span class="layui-badge">草稿</span>';
|
||||
}},
|
||||
{field: 'download_count', title: '下载数', width: 90},
|
||||
{title: '操作', width: 360, templet: function (d) {
|
||||
var h = '';
|
||||
if (d.status != 1) h += '<a class="layui-btn layui-btn-xs layui-btn-normal" lay-event="publish">发布</a>';
|
||||
if (d.file_path) h += '<a class="layui-btn layui-btn-xs" lay-event="download">下载整包</a>';
|
||||
if (d.patch_path) h += '<a class="layui-btn layui-btn-xs layui-btn-warm" lay-event="downloadPatch">下载补丁</a>';
|
||||
if (d.install_path) h += '<a class="layui-btn layui-btn-xs layui-bg-cyan" lay-event="downloadInstall">下载安装包</a>';
|
||||
h += '<a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="del">删除</a>';
|
||||
return h;
|
||||
}}
|
||||
]]
|
||||
});
|
||||
upload.render({
|
||||
elem: '#btnUpload',
|
||||
url: '{:url("/appmall/backend/framework/upload")}',
|
||||
accept: 'file',
|
||||
exts: 'zip',
|
||||
before: function () {
|
||||
if (!$('input[name="version"]').val()) {
|
||||
layer.msg('请先填写版本号'); return false;
|
||||
}
|
||||
if ($('#pkgType').val() == '1' && !$('#fromVersion').val()) {
|
||||
layer.msg('增量补丁必须填写基础版本'); return false;
|
||||
}
|
||||
},
|
||||
data: {
|
||||
version: function () { return $('input[name="version"]').val(); },
|
||||
title: function () { return $('input[name="title"]').val(); },
|
||||
changelog: function () { return $('textarea[name="changelog"]').val(); },
|
||||
type: function () { return $('#pkgType').val(); },
|
||||
from_version: function () { return $('#fromVersion').val(); }
|
||||
},
|
||||
done: function (res) {
|
||||
layer.msg(res.message || '完成');
|
||||
if (res.code === 0) table.reload('dataTable');
|
||||
},
|
||||
error: function () { layer.msg('上传失败'); }
|
||||
});
|
||||
table.on('tool(dataTable)', function (obj) {
|
||||
var d = obj.data;
|
||||
if (obj.event === 'publish') {
|
||||
$.post('{:url("/appmall/backend/framework/publish")}', {id: d.id}, function (r) {
|
||||
layer.msg(r.message); if (r.code === 0) table.reload('dataTable');
|
||||
});
|
||||
} else if (obj.event === 'download') {
|
||||
location.href = '{:url("/appmall/backend/framework/download")}?id=' + d.id + '&type=full';
|
||||
} else if (obj.event === 'downloadPatch') {
|
||||
location.href = '{:url("/appmall/backend/framework/download")}?id=' + d.id + '&type=patch';
|
||||
} else if (obj.event === 'downloadInstall') {
|
||||
location.href = '{:url("/appmall/backend/framework/download")}?id=' + d.id + '&type=install';
|
||||
} else if (obj.event === 'del') {
|
||||
layer.confirm('确定删除该版本?', function () {
|
||||
$.post('{:url("/appmall/backend/framework/delete")}', {id: d.id}, function (r) {
|
||||
layer.msg(r.message); if (r.code === 0) table.reload('dataTable');
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,51 @@
|
||||
|
||||
<div class="layui-card" style="margin:20px;">
|
||||
<div class="layui-card-header">收益账本(开发者分红)</div>
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-row" id="summary" style="margin-bottom:12px;"></div>
|
||||
<table class="layui-hide" id="dataTable" lay-filter="dataTable"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
layui.use(['table', 'jquery'], function () {
|
||||
var table = layui.table, $ = layui.jquery;
|
||||
var summaryData = null;
|
||||
table.render({
|
||||
elem: '#dataTable',
|
||||
url: '{:url("/appmall/backend/revenue/index")}',
|
||||
page: true,
|
||||
// Result::success 返回 code:0 / message / data:{list,summary} / count
|
||||
response: { statusName: 'code', msgName: 'message', countName: 'count', dataName: 'data' },
|
||||
parseData: function (res) {
|
||||
summaryData = (res.data && res.data.summary) ? res.data.summary : null;
|
||||
return {
|
||||
code: res.code,
|
||||
msg: res.message,
|
||||
count: res.count || 0,
|
||||
data: (res.data && res.data.list) ? res.data.list : []
|
||||
};
|
||||
},
|
||||
cols: [[
|
||||
{field: 'id', title: 'ID', width: 70},
|
||||
{field: 'developer_id', title: '开发者ID', width: 100},
|
||||
{field: 'aid', title: '商品ID', width: 90},
|
||||
{field: 'uid', title: '购买用户', width: 90},
|
||||
{field: 'amount', title: '订单金额', width: 100},
|
||||
{field: 'commission', title: '平台抽成', width: 100},
|
||||
{field: 'income', title: '开发者收益', width: 110, templet: function(d){return '<b>'+d.income+'</b>';}},
|
||||
{field: 'status', title: '结算', width: 90, templet: function(d){return d.status==1?'<span class="layui-badge layui-bg-green">已结算</span>':'<span class="layui-badge">待结算</span>';}},
|
||||
{field: 'create_at', title: '时间', width: 170, templet: function(d){return layui.util.toDateString(d.create_at*1000);}}
|
||||
]],
|
||||
done: function () {
|
||||
if (summaryData) {
|
||||
$('#summary').html(
|
||||
'总销售额:<b>' + summaryData.total_amount + '</b> | ' +
|
||||
'平台抽成:<b>' + summaryData.total_commission + '</b> | ' +
|
||||
'开发者收益:<b style="color:#16a34a;">' + summaryData.total_income + '</b>'
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,48 @@
|
||||
|
||||
<div class="layui-card" style="margin:20px;">
|
||||
<div class="layui-card-header">提现管理(开发者分红结算)</div>
|
||||
<div class="layui-card-body">
|
||||
<table class="layui-hide" id="dataTable" lay-filter="dataTable"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
layui.use(['table', 'jquery', 'layer'], function () {
|
||||
var table = layui.table, $ = layui.jquery, layer = layui.layer;
|
||||
table.render({
|
||||
elem: '#dataTable',
|
||||
url: '{:url("/appmall/backend/revenue/withdrawals")}',
|
||||
page: true,
|
||||
cols: [[
|
||||
{field: 'id', title: 'ID', width: 70},
|
||||
{field: 'developer_id', title: '开发者ID', width: 100},
|
||||
{field: 'amount', title: '提现金额', width: 110},
|
||||
{field: 'channel', title: '渠道', width: 90},
|
||||
{field: 'account', title: '收款账号', width: 180},
|
||||
{field: 'status', title: '状态', width: 100, templet: function(d){
|
||||
return d.status==1?'<span class="layui-badge layui-bg-green">已打款</span>'
|
||||
: (d.status==-1?'<span class="layui-badge layui-bg-orange">已驳回</span>'
|
||||
:'<span class="layui-badge">待处理</span>');
|
||||
}},
|
||||
{field: 'create_at', title: '申请时间', width: 170, templet: function(d){return layui.util.toDateString(d.create_at*1000);}},
|
||||
{title: '操作', width: 160, templet: function(d){
|
||||
if(d.status!=0) return '-';
|
||||
return '<a class="layui-btn layui-btn-xs layui-btn-normal" lay-event="settle">打款</a>'
|
||||
+ '<a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="reject">驳回</a>';
|
||||
}}
|
||||
]]
|
||||
});
|
||||
table.on('tool(dataTable)', function(obj){
|
||||
var d = obj.data;
|
||||
if(obj.event==='settle'){
|
||||
layer.confirm('确认已向开发者打款?', function(){
|
||||
$.post('{:url("revenue/settle")}', {id:d.id}, function(r){layer.msg(r.message||r.msg);if(r.code===0)table.reload('dataTable');});
|
||||
});
|
||||
} else if(obj.event==='reject'){
|
||||
layer.prompt({title:'驳回原因'}, function(val, index){
|
||||
$.post('{:url("revenue/reject")}', {id:d.id, reason:val}, function(r){layer.msg(r.message||r.msg);if(r.code===0)table.reload('dataTable');layer.close(index);});
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
Reference in New Issue
Block a user