Files
peko-admin-web/src/views/withdraw/WithdrawConfigView.vue
2024-02-20 10:18:43 +08:00

463 lines
24 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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">&times;</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">&times;</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>