463 lines
24 KiB
Vue
463 lines
24 KiB
Vue
<template>
|
||
<section class="content">
|
||
<div class="box box-primary">
|
||
<div class="box-body">
|
||
<!-- Content Header (Page header) -->
|
||
<section class="content-header">
|
||
<div id="itemTitle"></div>
|
||
</section>
|
||
<!-- .content -->
|
||
<section>
|
||
<div id="table"></div>
|
||
</section>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<div class="modal fade" id="editModal" tabindex="-1" role="dialog" aria-labelledby="modalLabel">
|
||
<div class="modal-dialog" role="document">
|
||
<div class="modal-content">
|
||
<div class="modal-header">
|
||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
|
||
aria-hidden="true">×</span>
|
||
</button>
|
||
<h4 class="modal-title" id="modalLabel">提现配置</h4>
|
||
</div>
|
||
<div class="modal-body">
|
||
<form class="form-horizontal">
|
||
<input type="hidden" name="id" id="id" />
|
||
<div class="form-group">
|
||
<label for="minValue" class="col-sm-3 control-label">最小提现金币:</label>
|
||
<div class="col-sm-9">
|
||
<input type="text" class="form-control" id="minValue">
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="weekMaxValue" class="col-sm-3 control-label">周提现上限:</label>
|
||
<div class="col-sm-9">
|
||
<input type="text" class="form-control" id="weekMaxValue">
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="weekLimitCount" class="col-sm-3 control-label">周提现次数:</label>
|
||
<div class="col-sm-9">
|
||
<input type="text" class="form-control" id="weekLimitCount">
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="chargeRate" class="col-sm-3 control-label">提现手续费:</label>
|
||
<div class="col-sm-9">
|
||
<input type="text" class="form-control" id="chargeRate">
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<label class="col-sm-3 control-label">账户对应货币:</label>
|
||
</div>
|
||
<div class="form-group">
|
||
<input type="hidden" name="chinaUnionPayId" id="chinaUnionPayId" />
|
||
<label for="chinaUnionPay" class="col-sm-3 control-label">中国大陆银联:</label>
|
||
<div class="col-sm-9">
|
||
<select name="chinaUnionPay" id="chinaUnionPay" class="form-control validate[required]">
|
||
<option value="CNY">CNY</option>
|
||
<option value="MYR">MYR</option>
|
||
<option value="SGD">SGD</option>
|
||
<option value="USD">USD</option>
|
||
<option value="TWD">TWD</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<input type="hidden" name="mayBankId" id="mayBankId" />
|
||
<label for="mayBank" class="col-sm-3 control-label">马来西亚银行:</label>
|
||
<div class="col-sm-9">
|
||
<select name="mayBank" id="mayBank" class="form-control validate[required]">
|
||
<option value="CNY">CNY</option>
|
||
<option value="MYR">MYR</option>
|
||
<option value="SGD">SGD</option>
|
||
<option value="USD">USD</option>
|
||
<option value="TWD">TWD</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<input type="hidden" name="bankOfSingaporeId" id="bankOfSingaporeId" />
|
||
<label for="bankOfSingapore" class="col-sm-3 control-label">新加坡银行:</label>
|
||
<div class="col-sm-9">
|
||
<select name="bankOfSingapore" id="bankOfSingapore" class="form-control validate[required]">
|
||
<option value="CNY">CNY</option>
|
||
<option value="MYR">MYR</option>
|
||
<option value="SGD">SGD</option>
|
||
<option value="USD">USD</option>
|
||
<option value="TWD">TWD</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<input type="hidden" name="taiWanBankId" id="taiWanBankId" />
|
||
<label for="taiWanBank" class="col-sm-3 control-label">台湾地区银行:</label>
|
||
<div class="col-sm-9">
|
||
<select name="taiWanBank" id="taiWanBank" class="form-control validate[required]">
|
||
<option value="CNY">CNY</option>
|
||
<option value="MYR">MYR</option>
|
||
<option value="SGD">SGD</option>
|
||
<option value="USD">USD</option>
|
||
<option value="TWD">TWD</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<input type="hidden" name="orderAccountId" id="orderAccountId" />
|
||
<label for="orderAccount" class="col-sm-3 control-label">其它账户:</label>
|
||
<div class="col-sm-9">
|
||
<select name="orderAccount" id="orderAccount" class="form-control validate[required]">
|
||
<option value="CNY">CNY</option>
|
||
<option value="MYR">MYR</option>
|
||
<option value="SGD">SGD</option>
|
||
<option value="USD">USD</option>
|
||
<option value="TWD">TWD</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
<div class="modal-footer">
|
||
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
|
||
<button type="button" class="btn btn-primary" id="save">确认编辑</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="modal fade" id="rateModal" tabindex="-1" role="dialog" aria-labelledby="rateModalLabel">
|
||
<div class="modal-dialog" role="document">
|
||
<div class="modal-content">
|
||
<div class="modal-header">
|
||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
|
||
aria-hidden="true">×</span>
|
||
</button>
|
||
<h4 class="modal-title" id="rateModalLabel">汇率编辑</h4>
|
||
</div>
|
||
<div class="modal-body">
|
||
<form class="form-horizontal">
|
||
<div class="form-group">
|
||
<label for="cny" class="col-sm-3 control-label">CNY:</label>
|
||
<div class="col-sm-9">
|
||
<input type="text" class="form-control" id="cny" />
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="myr" class="col-sm-3 control-label">MYR:</label>
|
||
<div class="col-sm-9">
|
||
<input type="text" class="form-control" id="myr" />
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="sgd" class="col-sm-3 control-label">SGD:</label>
|
||
<div class="col-sm-9">
|
||
<input type="text" class="form-control" id="sgd" />
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="twd" class="col-sm-3 control-label">TWD:</label>
|
||
<div class="col-sm-9">
|
||
<input type="text" class="form-control" id="twd" />
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<label class="col-sm-3 control-label">其它账户:</label>
|
||
<div class="col-sm-9"> 1 </div>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
<div class="modal-footer">
|
||
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
|
||
<button type="button" class="btn btn-primary" id="rateSave">确认编辑</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="modal fade" id="tipModal" tabindex="-1" role="dialog" aria-labelledby="modalLabel">
|
||
<div class="modal-dialog" role="document">
|
||
<div class="modal-content">
|
||
<div class="modal-header">
|
||
<h4 class="modal-title">提示信息</h4>
|
||
</div>
|
||
<div class="modal-body" id="tipMsg"></div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
import TableHelper from '@/utils/bootstrap-table-helper';
|
||
|
||
export default {
|
||
name: "WithdrawConfigView",
|
||
created() {
|
||
this.$nextTick(function () {
|
||
this.initData();
|
||
});
|
||
},
|
||
methods: {
|
||
initData() {
|
||
$(function () {
|
||
$('#table').bootstrapTable('destroy');
|
||
$('#table').bootstrapTable({
|
||
columns: [
|
||
{ field: 'minValue', title: '最小提现金币', align: 'center', width: '5%' },
|
||
{ field: 'weekMaxValue', title: '周提现上限', align: 'center', width: '5%' },
|
||
{ field: 'weekLimitCount', title: '周提现次数', align: 'center', width: '5%' },
|
||
{
|
||
field: 'chargeRate',
|
||
title: '提现手续费',
|
||
align: 'center',
|
||
width: '5%',
|
||
formatter: function (val, row, index) {
|
||
return val + '%';
|
||
}
|
||
},
|
||
{
|
||
field: 'accountName',
|
||
title: '账户对应货币',
|
||
align: 'center',
|
||
width: '5%',
|
||
valign: 'middle',
|
||
formatter: function (val, row, index) {
|
||
var value = '';
|
||
var accounts = row.accounts;
|
||
if (accounts) {
|
||
for (let i = 0, len = accounts.length; i < len; i++) {
|
||
const account = accounts[i];
|
||
value += account.accountName + ':' + account.currencyType;
|
||
if (i != len - 1) {
|
||
value += '<br>';
|
||
}
|
||
}
|
||
}
|
||
return value;
|
||
}
|
||
},
|
||
{
|
||
field: 'exchangeRate',
|
||
title: '汇率',
|
||
align: 'center',
|
||
width: '5%',
|
||
valign: 'middle',
|
||
formatter: function (val, row, index) {
|
||
var value = '';
|
||
var rates = row.rates;
|
||
if (rates) {
|
||
for (let i = 0, len = rates.length; i < len; i++) {
|
||
const exchangeRate = rates[i];
|
||
value += exchangeRate.currency + ':' + exchangeRate.rate + '<br>';
|
||
}
|
||
value += '<a id="rateBtn" data-index="' + index + '">编辑></a>';
|
||
}
|
||
return value;
|
||
}
|
||
},
|
||
{
|
||
field: 'handle',
|
||
title: '操作',
|
||
align: 'center',
|
||
width: '5%',
|
||
valign: 'middle',
|
||
formatter: function (val, row, index) {
|
||
return '<button class="btn btn-sm btn-default opt-edit" data-index="' + index + '">编辑</button>'
|
||
}
|
||
}
|
||
],
|
||
cache: false,
|
||
striped: true,
|
||
showRefresh: true,
|
||
pagination: false,
|
||
search: false,
|
||
url: '/admin/withdraw/config/get',
|
||
//加载成功时执行
|
||
onLoadSuccess: function (data) {
|
||
console.log("load success");
|
||
if (data) {
|
||
var config = data[0];
|
||
$("#itemTitle").html('<h1>提现配置</h1><label class="col-sm-3 control-label">上次更新汇率时间:' + config.lastRateTime + '</label>');
|
||
}
|
||
},
|
||
//加载失败时执行
|
||
onLoadError: function () {
|
||
console.log("load fail");
|
||
}
|
||
});
|
||
|
||
$('#table').on('click', '.opt-edit', function () {
|
||
const currentData = $('#table').bootstrapTable('getData')[$(this).data('index')];
|
||
$('#id').val(currentData.id);
|
||
$('#minValue').val(currentData.minValue);
|
||
$('#weekMaxValue').val(currentData.weekMaxValue);
|
||
$('#weekLimitCount').val(currentData.weekLimitCount);
|
||
$('#chargeRate').val(currentData.chargeRate);
|
||
$.ajax({
|
||
type: "get",
|
||
url: "/admin/withdraw/accountDtl/list",
|
||
dataType: "json",
|
||
success: function (ret) {
|
||
if (apiResult(ret)) {
|
||
var accounts = ret.data;
|
||
if (accounts) {
|
||
for (let i = 0, len = accounts.length; i < len; i++) {
|
||
const account = accounts[i];
|
||
const id = account.id;
|
||
const accountType = account.accountType;
|
||
const currencyType = account.currencyType;
|
||
if (accountType) {
|
||
if (accountType == 0b1) {
|
||
$('#orderAccountId').val(id);
|
||
$('#orderAccount').val(currencyType);
|
||
} else if (accountType == 0b10) {
|
||
$('#chinaUnionPayId').val(id);
|
||
$("#chinaUnionPay").val(currencyType);
|
||
} else if (accountType == 0b100) {
|
||
$('#mayBankId').val(id);
|
||
$("#mayBank").val(currencyType);
|
||
} else if (accountType == 0b1000) {
|
||
$('#bankOfSingaporeId').val(id);
|
||
$("#bankOfSingapore").val(currencyType);
|
||
} else if (accountType == 0b10000) {
|
||
$('#taiWanBankId').val(id);
|
||
$("#taiWanBank").val(currencyType);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
error: function (req) {
|
||
serverError(req);
|
||
}
|
||
});
|
||
$("#editModal").modal('show');
|
||
});
|
||
|
||
$('#table').on('click', '#rateBtn', function () {
|
||
$.ajax({
|
||
type: "get",
|
||
url: "/admin/withdraw/exchangeRate/list",
|
||
dataType: "json",
|
||
success: function (ret) {
|
||
if (apiResult(ret)) {
|
||
var rates = ret.data;
|
||
if (rates) {
|
||
for (let i = 0, len = rates.length; i < len; i++) {
|
||
const exchangeRate = rates[i];
|
||
const currency = exchangeRate.currency;
|
||
const rate = exchangeRate.rate;
|
||
if (currency == 'CNY') {
|
||
$('#cny').val(rate);
|
||
} else if (currency == 'MYR') {
|
||
$('#myr').val(rate);
|
||
} else if (currency == 'SGD') {
|
||
$('#sgd').val(rate);
|
||
} else if (currency == 'TWD') {
|
||
$('#twd').val(rate);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
error: function (req) {
|
||
serverError(req);
|
||
}
|
||
});
|
||
$("#rateModal").modal('show');
|
||
});
|
||
|
||
$("#save").click(function () {
|
||
const msg = '确定要保存吗?';
|
||
if (confirm(msg)) {
|
||
const accounts = [
|
||
{ id: $('#orderAccountId').val(), accountName: '其它账户', currencyType: $('#orderAccount').val(), accountType: 0b1 },
|
||
{ id: $('#chinaUnionPayId').val(), accountName: '中国大陆银联', currencyType: $('#chinaUnionPay').val(), accountType: 0b10 },
|
||
{ id: $('#mayBankId').val(), accountName: '马来西亚银行', currencyType: $('#mayBank').val(), accountType: 0b100 },
|
||
{ id: $('#bankOfSingaporeId').val(), accountName: '新加坡银行', currencyType: $('#bankOfSingapore').val(), accountType: 0b1000 },
|
||
{ id: $('#taiWanBankId').val(), accountName: '台湾地区银行', currencyType: $('#taiWanBank').val(), accountType: 0b10000 }
|
||
];
|
||
const data = {
|
||
id: $('#id').val(),
|
||
minValue: $('#minValue').val(),
|
||
weekMaxValue: $('#weekMaxValue').val(),
|
||
weekLimitCount: $('#weekLimitCount').val(),
|
||
chargeRate: $('#chargeRate').val(),
|
||
accounts: JSON.stringify(accounts)
|
||
}
|
||
$.ajax({
|
||
type: "post",
|
||
url: "/admin/withdraw/config/saveConfig",
|
||
data: data,
|
||
dataType: "json",
|
||
success: function (json) {
|
||
if (json.success == 'true' || json.code == 200) {
|
||
$("#tipMsg").text("保存成功");
|
||
$("#tipModal").modal('show');
|
||
TableHelper.doRefresh("#table");
|
||
$("#editModal").modal('hide');
|
||
} else {
|
||
$("#tipMsg").text("保存失败." + json.message);
|
||
$("#tipModal").modal('show');
|
||
$("#editModal").modal('hide');
|
||
}
|
||
}
|
||
});
|
||
}
|
||
});
|
||
|
||
$("#rateSave").click(function () {
|
||
const msg = '确定要保存吗?';
|
||
if (confirm(msg)) {
|
||
const data = {
|
||
cny: $('#cny').val(),
|
||
myr: $('#myr').val(),
|
||
sgd: $('#sgd').val(),
|
||
twd: $('#twd').val(),
|
||
other: 1
|
||
}
|
||
$.ajax({
|
||
type: "post",
|
||
url: "/admin/withdraw/exchangeRate/save",
|
||
data: data,
|
||
dataType: "json",
|
||
success: function (json) {
|
||
if (json.success == 'true' || json.code == 200) {
|
||
$("#tipMsg").text("保存成功");
|
||
$("#tipModal").modal('show');
|
||
TableHelper.doRefresh("#table");
|
||
$("#rateModal").modal('hide');
|
||
} else {
|
||
$("#tipMsg").text("保存失败." + json.message);
|
||
$("#tipModal").modal('show');
|
||
$("#rateModal").modal('hide');
|
||
}
|
||
}
|
||
});
|
||
}
|
||
});
|
||
|
||
function apiResult(json) {
|
||
if (json.code == 200 && json.message == 'success') {
|
||
return true;
|
||
}
|
||
$("#tipMsg").text("请求失败,错误信息:" + json.message);
|
||
$("#tipModal").modal('show');
|
||
return false;
|
||
}
|
||
|
||
function serverError(req) {
|
||
$("#tipMsg").text(req.responseJSON.message);
|
||
$("#tipModal").modal('show');
|
||
}
|
||
});
|
||
}
|
||
},
|
||
|
||
};
|
||
</script>
|
||
|
||
<style scoped></style> |