Files
peko-admin-web/src/views/recharge/RechargeUserView.vue
2024-04-28 10:26:23 +08:00

413 lines
19 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">
<h1 id="itemTitle"></h1>
</section>
<!-- .content -->
<div id="table"></div>
<div id="toolbar">
<div class="col-sm-12">
<label for="searchValue" class="col-sm-3 control-label">Peko ID:</label>
<div class="col-sm-3"><input type="text" class="form-control" name="searchValue" id="searchValue">
</div>
<label for="searchType" class="col-sm-3 control-label">地区:</label>
<div class="col-sm-3">
<select name="searchType" id="searchType" data-btn-class="btn-warning" class="form-control">
<option value="0" selected="selected">全部</option>
</select>
</div>
</div>
<div class="col-sm-12">
<button id="btnSearch" class="btn btn-default">
<i class="glyphicon glyphicon-search"></i>查询
</button>
<button id="btnAdd" class="btn btn-default">
<i class="glyphicon glyphicon-plus-sign"></i>新增
</button>
</div>
</div>
</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="erbanNo" class="col-sm-3 control-label">Peko ID</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="erbanNo">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">代充地区</label>
</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="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';
var regionArray;
export default {
name: "RechargeUserView",
setup() {
//切换只读
function editSeqText(obj) {
if (!regionArray) {
return;
}
var $input = $(obj);
const typeArray = $("input:checkbox[name='type']:checked").serializeArray();
if (!typeArray) {
return;
}
for (let i = 0; i < regionArray.length; i++) {
var region = regionArray[i];
var type = region.type;
var isCheck = false;
for (let j = 0; j < typeArray.length; j++) {
var value = typeArray[j].value;
if (type == value) {
isCheck = true;
break;
}
}
var $seq = $('#seq' + type);
if (isCheck) {
$seq.removeAttr('readonly');
} else {
$seq.attr('readonly', 'true');
}
}
}
window.editSeqText = editSeqText;
return {
editSeqText
};
},
created() {
this.$nextTick(function () {
this.initData();
});
},
methods: {
initData() {
$(function () {
//地区
regionArray = chargeRegion();
$('#table').bootstrapTable('destroy');
$('#table').bootstrapTable({
columns: [
{ field: 'erbanNo', title: 'Peko ID', align: 'center', width: '5%' },
{ field: 'nick', title: '昵称', align: 'center', width: '5%' },
{ field: 'createTime', title: '首次加入代充时间', align: 'center', width: '5%' },
{
field: 'type',
title: '地区',
align: 'center',
width: '5%',
formatter: function (val, row, index) {
var value = '';
if (regionArray) {
for (var i = 0, len = regionArray.length; i < len; i++) {
var region = regionArray[i];
var name = region.name;
var type = region.type;
if ((val & type) != 0) {
value += name;
if (i != len - 1) {
value += '<br>';
}
}
}
}
return value;
}
},
{
field: 'userRegions',
title: '排序',
align: 'center',
width: '5%',
formatter: function (val, row, index) {
var value = '';
if (row.userRegions) {
for (var i = 0, len = row.userRegions.length; i < len; i++) {
var userRegion = row.userRegions[i];
var name = userRegion.name;
var seq = userRegion.seq;
value += name + '' + seq;
if (i != len - 1) {
value += '<br>';
}
}
}
return value;
}
},
{ field: 'outDiamondNum', title: '最近30天转出金币', align: 'center', width: '5%' },
{
field: 'id',
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>' + '<button class="btn btn-sm btn-default opt-del" data-index="' + index + '">删除</button>';
}
}
],
cache: false,
striped: true,
showRefresh: false,
pageSize: 20,
pagination: true,
pageList: [20, 50, 100],
search: false,
sidePagination: "server", //表示服务端请求
//设置为undefined可以获取pageNumberpageSizesearchTextsortNamesortOrder
//设置为limit可以获取limit, offset, search, sort, order
queryParamsType: "undefined",
queryParams: function queryParams(params) { //设置查询参数
var param = {
page: params.pageNumber,
pageSize: params.pageSize,
erbanNo: $('#searchValue').val(),
regionType: $('#searchType').val()
};
return param;
},
toolbar: '#toolbar',
url: '/admin/recharge/user/page',
onLoadSuccess: function () { //加载成功时执行
console.log("load success");
},
onLoadError: function () { //加载失败时执行
console.log("load fail");
}
});
//地区
function chargeRegion() {
var array;
$.ajax({
type: "get",
url: "/admin/charge/region/list",
dataType: "json",
async: false,
success: function (json) {
if (json.success == 'true' || json.code == 200) {
array = json.data;
}
}
});
var $select = $('#searchType');
for (let i = 0; i < array.length; i++) {
var $option = $('<option value="' + array[i].type + '" />');
$option.html(array[i].name);
$select.append($option);
}
return array;
}
//新增
$('#btnAdd').on('click', function () {
$("#id").val('');
$("#erbanNo").val('');
showRegion();
$("#editModal").modal('show');
});
// 查询刷新
$('#btnSearch').on('click', function () {
TableHelper.doRefresh('#table');
});
//展示地区
function showRegion() {
if (!regionArray) {
return;
}
var $form = $('#editModal .modal-body .form-horizontal');
for (let i = 0, len = regionArray.length; i < len; i++) {
$('#region' + i).remove();
var region = regionArray[i];
var name = region.name;
var type = region.type;
var $formGroup = $('<div/>');
$formGroup.attr('id', 'region' + i);
$formGroup.attr('class', 'form-group');
var $label = $('<label/>');
$label.attr('class', 'col-sm-3 control-label');
$label.html('<input type="checkbox" name="type" value="' + type + '" onclick=\"editSeqText(this);\"/>&nbsp;' + name);
$formGroup.append($label);
var $div = $('<div/>');
$div.attr('class', 'col-sm-9');
$div.html('<input type="text" readonly class="form-control" id="seq' + type + '" value="0"/>');
$formGroup.append($div);
$form.append($formGroup);
}
}
//保存
$("#save").click(function () {
const msg = '确定要保存吗?';
if (confirm(msg)) {
var id = $('#id').val();
const typeArray = $("input:checkbox[name='type']:checked").serializeArray();
if (!typeArray) {
$("#tipMsg").text("代充地区不能为空");
$("#tipModal").modal('show');
return;
}
var userRegionArray = [];
for (let i = 0; i < regionArray.length; i++) {
var region = regionArray[i];
var name = region.name;
var seq = 0;
var isCheck = false;
for (let j = 0; j < typeArray.length; j++) {
console.log(typeArray[j]);
if (typeArray[j] && region.type == typeArray[j].value) {
seq = $('#seq' + region.type).val();
isCheck = true;
break;
}
}
var userRegion = {
type: region.type,
name: region.name,
isCheck: isCheck,
seq: seq
};
userRegionArray.push(userRegion);
}
var data = {
erbanNo: $('#erbanNo').val(),
userRegions: JSON.stringify(userRegionArray)
};
if (id) {
data.id = id;
}
$.ajax({
type: "post",
url: "/admin/recharge/user/save",
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');
}
}
});
}
});
//编辑
$('#table').on('click', '.opt-edit', function () {
const currentData = $('#table').bootstrapTable('getData')[$(this).data('index')];
showRegion();
var id = currentData.id;
var erbanNo = currentData.erbanNo;
var userRegions = currentData.userRegions;
$("#erbanNo").val(erbanNo);
$("#id").val(id);
if (regionArray) {
for (let i = 0; i < regionArray.length; i++) {
var region = regionArray[i];
var seq = 0;
var isCheck = false;
for (let j = 0; j < userRegions.length; j++) {
var userRegion = userRegions[j];
if (region.type == userRegion.type) {
seq = userRegion.seq;
isCheck = true;
break;
}
}
if (isCheck) {
$('input:checkbox[value="' + region.type + '"]').prop('checked', true);
$('#seq' + region.type).removeAttr('readonly');
$('#seq' + region.type).val(seq);
} else {
$("input:checkbox[value='" + region.type + "']").prop('checked', false);
$('#seq' + region.type).attr('readonly', 'true');
$('#seq' + region.type).val(0);
}
}
}
$("#editModal").modal('show');
});
//删除
$('#table').on('click', '.opt-del', function () {
const currentData = $('#table').bootstrapTable('getData')[$(this).data('index')];
var id = currentData.id;
const msg = '确定要删除吗?';
if (confirm(msg)) {
$.ajax({
type: "get",
url: "/admin/recharge/user/del?id=" + id,
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');
}
}
});
}
});
});
}
},
};
</script>
<style scoped></style>