新增游戏点单
This commit is contained in:
230
src/views/gamepartner/GamePartnerOrderDetailView.vue
Normal file
230
src/views/gamepartner/GamePartnerOrderDetailView.vue
Normal file
@@ -0,0 +1,230 @@
|
||||
<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">
|
||||
<form id="searchForm1" action="/admin/gamePartner/order/dayExport" method="get" target="_blank">
|
||||
<div class="col-sm-12">
|
||||
<label for="startTime" class="col-sm-2 control-label">日期:</label>
|
||||
<div class="col-sm-4"><input type="text" class="form-control" name="startTime" id="startTime">
|
||||
</div>
|
||||
<label for="endTime" class="col-sm-1 control-label">-</label>
|
||||
<div class="col-sm-4"><input type="text" class="form-control" name="endTime" id="endTime"></div>
|
||||
</div>
|
||||
</form>
|
||||
<button id="btnSearch" class="btn btn-default">
|
||||
<i class="glyphicon glyphicon-search"></i>查询
|
||||
</button>
|
||||
<button id="btnExport" class="btn btn-default">
|
||||
<i class="glyphicon glyphicon-export"></i>导出
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
<div class="modal fade" id="detailModal" tabindex="-1" role="dialog" aria-labelledby="modalLabel">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content" style="width: 190%; left: 50%; transform: translateX(-50%);">
|
||||
<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>
|
||||
<form id="searchForm2" action="/admin/gamePartner/order/dayDetailExport" method="get" target="_blank">
|
||||
<input type="hidden" name="orderDate" id="orderDate" />
|
||||
<div class="modal-body">
|
||||
<!-- .content -->
|
||||
<div id="detailTable"></div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
|
||||
<button type="button" class="btn btn-primary" id="detailExport">导出</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: "GamePartnerOrderDetailView",
|
||||
setup() { },
|
||||
created() {
|
||||
this.$nextTick(function () {
|
||||
this.initData();
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
initData() {
|
||||
$(function () {
|
||||
$('#table').bootstrapTable('destroy');
|
||||
// 清空分页组件的容器
|
||||
$('.fixed-table-pagination').empty();
|
||||
$('#table').bootstrapTable({
|
||||
columns: [
|
||||
{ field: 'orderTime', title: '日期', align: 'center', width: '5%' },
|
||||
{ field: 'orderNum', title: '下单用户数', align: 'center', width: '5%' },
|
||||
{ field: 'totalInning', title: '累积下单局数', align: 'center', width: '5%' },
|
||||
{ field: 'orderCount', title: '累积下单次数', align: 'center', width: '5%' },
|
||||
{ field: 'totalAmount', title: '累积下单金额(钻)', align: 'center', width: '5%' },
|
||||
{
|
||||
field: 'handle',
|
||||
title: '详情',
|
||||
align: 'center',
|
||||
width: '5%',
|
||||
valign: 'middle',
|
||||
formatter: function (val, row, index) {
|
||||
return '<button class="btn btn-sm btn-default opt-detail" data-index="' + index + '">详情</button>';
|
||||
}
|
||||
}
|
||||
],
|
||||
cache: false,
|
||||
striped: true,
|
||||
showRefresh: false,
|
||||
pageSize: 20,
|
||||
pagination: true,
|
||||
pageList: [20, 50, 100],
|
||||
search: false,
|
||||
sidePagination: "server", //表示服务端请求
|
||||
//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
|
||||
//设置为limit可以获取limit, offset, search, sort, order
|
||||
queryParamsType: "undefined",
|
||||
queryParams: function queryParams(params) { //设置查询参数
|
||||
var param = {
|
||||
page: params.pageNumber,
|
||||
pageSize: params.pageSize,
|
||||
startTime: $('#startTime').val(),
|
||||
endTime: $('#endTime').val(),
|
||||
};
|
||||
return param;
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/gamePartner/order/dayPage',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
onLoadError: function () { //加载失败时执行
|
||||
console.log("load fail");
|
||||
}
|
||||
});
|
||||
var picker1 = $("#startTime").datetimepicker({
|
||||
format: 'yyyy-mm-dd hh:ii:00',
|
||||
todayBtn: true,
|
||||
autoclose: true,
|
||||
});
|
||||
var picker2 = $("#endTime").datetimepicker({
|
||||
format: 'yyyy-mm-dd hh:ii:00',
|
||||
todayBtn: true,
|
||||
autoclose: true
|
||||
});
|
||||
picker1.on('changeDate', function () {
|
||||
var date = $('#startTime').datepicker('getDate');
|
||||
picker2.datepicker('setStartDate', date);
|
||||
});
|
||||
picker2.on('changeDate', function () {
|
||||
var date = $('#endTime').datepicker('getDate');
|
||||
picker1.datepicker('setEndDate', date);
|
||||
});
|
||||
$('#table').on('click', '.opt-detail', function () {
|
||||
const currentData = $('#table').bootstrapTable('getData')[$(this).data('index')];
|
||||
var orderTime = currentData.orderTime;
|
||||
$('#orderDate').val(orderTime);
|
||||
$("#detailModal").modal('show');
|
||||
$('#detailTable').bootstrapTable('destroy');
|
||||
// 清空分页组件的容器
|
||||
$('.fixed-table-pagination').empty();
|
||||
$('#detailTable').bootstrapTable({
|
||||
columns: [
|
||||
{ field: 'fromErBanNo', title: '下单用户id', align: 'center', width: '5%' },
|
||||
{ field: 'fromNick', title: '下单用户昵称', align: 'center', width: '5%' },
|
||||
{ field: 'toErBanNo', title: '接单用户id', align: 'center', width: '5%' },
|
||||
{ field: 'toNick', title: '接单用户昵称', align: 'center', width: '5%' },
|
||||
{ field: 'hallErBanNo', title: '房主id', align: 'center', width: '5%' },
|
||||
{ field: 'hallRoomName', title: '房间名称', align: 'center', width: '5%' },
|
||||
{ field: 'gameName', title: '下单游戏', align: 'center', width: '5%' },
|
||||
{ field: 'amount', title: '下单金额(钻)', align: 'center', width: '5%' },
|
||||
{ field: 'orderTime', title: '下单时间', align: 'center', width: '5%' },
|
||||
],
|
||||
cache: false,
|
||||
striped: true,
|
||||
showRefresh: false,
|
||||
pageSize: 20,
|
||||
pagination: true,
|
||||
pageList: [20, 50, 100],
|
||||
search: false,
|
||||
//表示服务端请求
|
||||
sidePagination: "server",
|
||||
//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
|
||||
//设置为limit可以获取limit, offset, search, sort, order
|
||||
queryParamsType: "undefined",
|
||||
//设置查询参数
|
||||
queryParams: function queryParams(params) {
|
||||
var param = {
|
||||
page: params.pageNumber,
|
||||
pageSize: params.pageSize,
|
||||
orderDate: orderTime
|
||||
};
|
||||
return param;
|
||||
},
|
||||
url: '/admin/gamePartner/order/dayDetailPage',
|
||||
//加载成功时执行
|
||||
onLoadSuccess: function () {
|
||||
console.log("load success");
|
||||
},
|
||||
//加载失败时执行
|
||||
onLoadError: function () {
|
||||
console.log("load fail");
|
||||
}
|
||||
});
|
||||
});
|
||||
// 查询刷新
|
||||
$('#btnSearch').on('click', function () {
|
||||
TableHelper.doRefresh('#table');
|
||||
});
|
||||
//导出功能
|
||||
$("#btnExport").on('click', function () {
|
||||
$("#searchForm1").submit();
|
||||
});
|
||||
//导出功能
|
||||
$("#detailExport").on('click', function () {
|
||||
$("#searchForm2").submit();
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.fixed-table-pagination .page-list {
|
||||
display: block !important;
|
||||
}
|
||||
|
||||
.fixed-table-pagination div.pagination,
|
||||
.fixed-table-pagination .pagination-detail {
|
||||
display: block !important;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
</style>
|
175
src/views/gamepartner/GamePartnerOrderView.vue
Normal file
175
src/views/gamepartner/GamePartnerOrderView.vue
Normal file
@@ -0,0 +1,175 @@
|
||||
<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">
|
||||
<form id="searchForm" action="/admin/gamePartner/order/orderExport" method="get" target="_blank">
|
||||
<div class="col-sm-12">
|
||||
<label for="fromErBanNo" class="col-sm-2 control-label">下单用户id:</label>
|
||||
<div class="col-sm-2"><input type="text" class="form-control" name="fromErBanNo"
|
||||
id="fromErBanNo"></div>
|
||||
<label for="gameId" class="col-sm-2 control-label">下单游戏:</label>
|
||||
<div class="col-sm-2">
|
||||
<select name="gameId" id="gameId" data-btn-class="btn-warning" class="form-control">
|
||||
<option value="" selected="selected">全部</option>
|
||||
</select>
|
||||
</div>
|
||||
<label for="orderNo" class="col-sm-2 control-label">订单号:</label>
|
||||
<div class="col-sm-2"><input type="text" class="form-control" name="orderNo" id="orderNo"></div>
|
||||
</div>
|
||||
<div class="col-sm-12">
|
||||
<label for="startTime" class="col-sm-2 control-label">下单时间:</label>
|
||||
<div class="col-sm-2"><input type="text" class="form-control" name="startTime" id="startTime">
|
||||
</div>
|
||||
<label for="endTime" class="col-sm-2 control-label">-</label>
|
||||
<div class="col-sm-2"><input type="text" class="form-control" name="endTime" id="endTime"></div>
|
||||
<label for="toErBanNo" class="col-sm-2 control-label">接单用户id:</label>
|
||||
<div class="col-sm-2"><input type="text" class="form-control" name="toErBanNo" id="toErBanNo">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<button id="btnSearch" class="btn btn-default">
|
||||
<i class="glyphicon glyphicon-search"></i>查询
|
||||
</button>
|
||||
<button id="btnExport" class="btn btn-default">
|
||||
<i class="glyphicon glyphicon-export"></i>导出
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<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: "GamePartnerOrderView",
|
||||
setup() { },
|
||||
created() {
|
||||
this.$nextTick(function () {
|
||||
this.initData();
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
initData() {
|
||||
$(function () {
|
||||
getGamePartnerInfo();
|
||||
$('#table').bootstrapTable('destroy');
|
||||
// 清空分页组件的容器
|
||||
$('.fixed-table-pagination').empty();
|
||||
$('#table').bootstrapTable({
|
||||
columns: [
|
||||
{ field: 'orderNo', title: '订单号', align: 'center', width: '5%' },
|
||||
{ field: 'fromErBanNo', title: '下单用户id', align: 'center', width: '5%' },
|
||||
{ field: 'fromNick', title: '下单用户昵称', align: 'center', width: '5%' },
|
||||
{ field: 'toErBanNo', title: '接单用户id', align: 'center', width: '5%' },
|
||||
{ field: 'toNick', title: '接单用户昵称', align: 'center', width: '5%' },
|
||||
{ field: 'income', title: '接单用户收益(水晶)', align: 'center', width: '5%' },
|
||||
{ field: 'gameName', title: '下单游戏', align: 'center', width: '5%' },
|
||||
{ field: 'inning', title: '下单局数', align: 'center', width: '5%' },
|
||||
{ field: 'amount', title: '下单金额', align: 'center', width: '5%' },
|
||||
{ field: 'orderTime', title: '下单时间', align: 'center', width: '5%' },
|
||||
],
|
||||
cache: false,
|
||||
striped: true,
|
||||
showRefresh: false,
|
||||
pageSize: 20,
|
||||
pagination: true,
|
||||
pageList: [20, 50, 100],
|
||||
search: false,
|
||||
sidePagination: "server", //表示服务端请求
|
||||
//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
|
||||
//设置为limit可以获取limit, offset, search, sort, order
|
||||
queryParamsType: "undefined",
|
||||
queryParams: function queryParams(params) { //设置查询参数
|
||||
var param = {
|
||||
page: params.pageNumber,
|
||||
pageSize: params.pageSize,
|
||||
fromErBanNo: $('#fromErBanNo').val(),
|
||||
toErBanNo: $('#toErBanNo').val(),
|
||||
gameId: $('#gameId').val(),
|
||||
orderNo: $('#orderNo').val(),
|
||||
startTime: $('#startTime').val(),
|
||||
endTime: $('#endTime').val(),
|
||||
};
|
||||
return param;
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/gamePartner/order/orderPage',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
onLoadError: function () { //加载失败时执行
|
||||
console.log("load fail");
|
||||
}
|
||||
});
|
||||
var picker1 = $("#startTime").datetimepicker({
|
||||
format: 'yyyy-mm-dd hh:ii:00',
|
||||
todayBtn: true,
|
||||
autoclose: true,
|
||||
});
|
||||
var picker2 = $("#endTime").datetimepicker({
|
||||
format: 'yyyy-mm-dd hh:ii:00',
|
||||
todayBtn: true,
|
||||
autoclose: true
|
||||
});
|
||||
picker1.on('changeDate', function () {
|
||||
var date = $('#startTime').datepicker('getDate');
|
||||
picker2.datepicker('setStartDate', date);
|
||||
});
|
||||
picker2.on('changeDate', function () {
|
||||
var date = $('#endTime').datepicker('getDate');
|
||||
picker1.datepicker('setEndDate', date);
|
||||
});
|
||||
//导出功能
|
||||
$("#btnExport").on('click', function () {
|
||||
$("#searchForm").submit();
|
||||
});
|
||||
// 查询刷新
|
||||
$('#btnSearch').on('click', function () {
|
||||
TableHelper.doRefresh('#table');
|
||||
});
|
||||
//游戏
|
||||
function getGamePartnerInfo() {
|
||||
var array;
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/admin/gamePartner/info/listAll",
|
||||
dataType: "json",
|
||||
async: false,
|
||||
success: function (json) {
|
||||
if (json.success == 'true' || json.code == 200) {
|
||||
array = json.data;
|
||||
}
|
||||
}
|
||||
});
|
||||
var $select = $('#gameId');
|
||||
for (let i = 0; i < array.length; i++) {
|
||||
var $option = $('<option value="' + array[i].gameId + '" />');
|
||||
$option.html(array[i].gameName);
|
||||
$select.append($option);
|
||||
}
|
||||
return array;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
450
src/views/gamepartner/UserGamePartnerInfoAdminView.vue
Normal file
450
src/views/gamepartner/UserGamePartnerInfoAdminView.vue
Normal file
@@ -0,0 +1,450 @@
|
||||
<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>
|
||||
<div id="toolbar">
|
||||
<div class="col-sm-12">
|
||||
<label for="erbanNo" class="col-sm-1 control-label">用户ID:</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="number" class="form-control" name="erbanNo" id="erbanNo">
|
||||
</div>
|
||||
<label for="gameId" class="col-sm-1 control-label">游戏类型:</label>
|
||||
<div class="col-sm-2">
|
||||
<select name="gameId" id="gameId" class="form-control"></select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-12">
|
||||
<label for="startTime" class="col-sm-1 control-label">添加日期:</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="text" class="input-sm form-control" name="startTime" id="startTime">
|
||||
</div>
|
||||
|
||||
<label for="endTime" class="col-sm-1 control-label">至:</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="text" class="input-sm form-control" name="endTime" id="endTime">
|
||||
</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"></i>增加
|
||||
</button>
|
||||
<button id="btnBatchInvaild" class="btn btn-danger">
|
||||
<i class="glyphicon glyphicon-remove"></i>批量失效
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- .content -->
|
||||
<div id="table"></div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class="modal fade" id="userModal" 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" id="modalForm">
|
||||
<input type="hidden" name="uid" id="uid" />
|
||||
<div class="form-group">
|
||||
<label for="modalErbanNo" class="col-sm-3 control-label">用户ID:</label>
|
||||
<div class="col-sm-9">
|
||||
<input type="number" class="form-control validate[required]" name="modalErbanNo"
|
||||
id="modalErbanNo" onchange="inputErbanNo(this)">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-12">
|
||||
<input type="button" class="form-control" value="添加游戏" id="modalAddBtn"
|
||||
onclick="addGameInfo()" />
|
||||
</div>
|
||||
</div>
|
||||
<div id="modalGames"></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="submit">确定</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import TableHelper from '@/utils/bootstrap-table-helper';
|
||||
|
||||
let modalData = {};
|
||||
var gameInfoList = [];
|
||||
var gameInfoMap = {};
|
||||
export default {
|
||||
name: "UserGamePartnerInfoAdminView",
|
||||
setup() {
|
||||
function selectGameId(select, index) {
|
||||
const gameId = select.options[select.selectedIndex].value;
|
||||
const gameInfo = gameInfoMap[gameId];
|
||||
modalData.games[index] = { gameId: gameInfo.gameId, tags: Object.assign([], gameInfo.tags) }
|
||||
freshUserModal()
|
||||
}
|
||||
function inputErbanNo(input) {
|
||||
modalData.erbanNo = input.value;
|
||||
}
|
||||
function inputPrice(input, index) {
|
||||
modalData.games[index].price = input.value;
|
||||
}
|
||||
function inputTag(input, index, tagIndex) {
|
||||
modalData.games[index].tags[tagIndex].tagVal = input.value;
|
||||
}
|
||||
function addGameInfo() {
|
||||
if (!modalData.games) {
|
||||
modalData.games = [];
|
||||
}
|
||||
const hasAddGameId = modalData.games.map(game => game.gameId);
|
||||
const gameInfo = gameInfoList.filter(gameInfo => !hasAddGameId.includes(gameInfo.gameId))[0];
|
||||
modalData.games.push({ gameId: gameInfo.gameId, tags: Object.assign([], gameInfo.tags) })
|
||||
freshUserModal()
|
||||
}
|
||||
window.selectGameId = selectGameId;
|
||||
window.inputErbanNo = inputErbanNo;
|
||||
window.inputPrice = inputPrice;
|
||||
window.inputTag = inputTag;
|
||||
window.addGameInfo = addGameInfo;
|
||||
return {
|
||||
selectGameId,
|
||||
inputErbanNo,
|
||||
inputPrice,
|
||||
inputTag,
|
||||
addGameInfo,
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.$nextTick(function () {
|
||||
this.initData();
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
initData() {
|
||||
$(function () {
|
||||
cacheGameInfo();
|
||||
$('#table').bootstrapTable('destroy');
|
||||
// 清空分页组件的容器
|
||||
$('.fixed-table-pagination').empty();
|
||||
$('#table').bootstrapTable({
|
||||
columns: [
|
||||
{ field: 'checkBox', title: 'id', align: 'center', checkbox: true, width: '5%' },
|
||||
{ field: 'erbanNo', title: '用户ID', align: 'center', width: '5%' },
|
||||
{ field: 'nick', title: '昵称', align: 'center', width: '10%' },
|
||||
{ field: 'games', title: '支持游戏', align: 'center', width: '60%', formatter: gameFormatter },
|
||||
{ field: 'updateTime', title: '更新时间', align: 'center', width: '10%' },
|
||||
{ field: 'adminName', title: '操作人', align: 'center', width: '10%' },
|
||||
{ field: 'status', title: '状态', align: 'center', width: '5%', formatter: function (val) { return val ? '有效' : '无效'; } },
|
||||
{
|
||||
field: 'operate',
|
||||
title: '操作',
|
||||
align: 'center',
|
||||
width: '10%',
|
||||
formatter: function (val, row, index) {
|
||||
return '<button id="btnEdit" name="btnEdit" class="btn btn-sm opt-edit" data-id=' + row.uid + '>' +
|
||||
'<i class="glyphicon glyphicon-edit"></i> 编辑</button> ' +
|
||||
(row.status ?
|
||||
'<button class="btn btn-sm btn-danger opt-invaild" data-id=' + row.uid +
|
||||
'><i class="glyphicon glyphicon-remove"></i>失效</button>'
|
||||
:
|
||||
'<button class="btn btn-sm btn-success opt-vaild" data-id=' + row.uid +
|
||||
'><i class="glyphicon glyphicon-save"></i>生效</button>'
|
||||
)
|
||||
}
|
||||
}
|
||||
],
|
||||
uniqueId: 'uid',
|
||||
undefinedText: 0,
|
||||
cache: false,
|
||||
striped: true,
|
||||
showRefresh: false,
|
||||
pageSize: 20,
|
||||
pagination: true,
|
||||
pageList: [20, 50, 100],
|
||||
search: false,
|
||||
sidePagination: "server", //表示服务端请求
|
||||
queryParamsType: "undefined",
|
||||
queryParams: function queryParams(params) { //设置查询参数
|
||||
var param = {
|
||||
pageNum: params.pageNumber,
|
||||
pageSize: params.pageSize,
|
||||
erbanNo: $('#erbanNo').val(),
|
||||
gameId: $('#gameId').val(),
|
||||
startTime: $('#startTime').val(),
|
||||
endTime: $('#endTime').val()
|
||||
};
|
||||
return param;
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/gamePartner/user/page.action',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
onLoadError: function () { //加载失败时执行
|
||||
console.log("load fail");
|
||||
}
|
||||
});
|
||||
// 查询刷新
|
||||
$('#btnSearch').on('click', function () {
|
||||
TableHelper.doRefresh('#table');
|
||||
});
|
||||
var chargeStart = $('#startTime').datetimepicker({
|
||||
format: 'yyyy-mm-dd hh:ii:00',
|
||||
autoclose: true
|
||||
});
|
||||
var chargeEnd = $('#endTime').datetimepicker({
|
||||
format: 'yyyy-mm-dd hh:ii:00',
|
||||
autoclose: true
|
||||
});
|
||||
$("#btnBatchInvaild").click(function () {
|
||||
const row = $('#table').bootstrapTable('getSelections');
|
||||
if (!row || row.length < 1) {
|
||||
$("#tipMsg").text("未勾选任何用户");
|
||||
$("#tipModal").modal('show');
|
||||
return;
|
||||
}
|
||||
if (confirm("确认批量失效吗? ")) {
|
||||
const uidStr = row.map(row => row.uid).join(",");
|
||||
console.info(uidStr)
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: "/admin/gamePartner/user/changeStatus",
|
||||
data: { uidStr: uidStr, status: 0 },
|
||||
success: function (json) {
|
||||
if (json.code === 200) {
|
||||
$("#tipMsg").text("操作成功");
|
||||
$("#tipModal").modal('show');
|
||||
} else {
|
||||
$("#tipMsg").text("操作失败." + json.message);
|
||||
$("#tipModal").modal('show');
|
||||
}
|
||||
TableHelper.doRefresh("#table");
|
||||
$("#userModal").modal('hide');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
//新建标签
|
||||
$("#btnAdd").click(function () {
|
||||
openUserModal()
|
||||
});
|
||||
$("#submit").click(function () {
|
||||
if ($("#modalForm").validationEngine('validate')) {
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/admin/gamePartner/user/save",
|
||||
data: JSON.stringify(modalData),
|
||||
dataType: "json",
|
||||
contentType: "application/json; charset=utf-8",
|
||||
success: function (json) {
|
||||
if (json.code === 200) {
|
||||
$("#tipMsg").text("保存成功");
|
||||
$("#tipModal").modal('show');
|
||||
TableHelper.doRefresh("#table");
|
||||
$("#userModal").modal('hide');
|
||||
} else {
|
||||
$("#tipMsg").text("保存失败." + json.message);
|
||||
$("#tipModal").modal('show');
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
$("#table").on("click", '.opt-edit', function () {
|
||||
const id = $(this).attr("data-id");
|
||||
if (!id) {
|
||||
$("#tipMsg").text("id参数有误");
|
||||
$("#tipModal").modal('show');
|
||||
return;
|
||||
}
|
||||
const row = $('#table').bootstrapTable('getRowByUniqueId', id);
|
||||
openUserModal(row);
|
||||
});
|
||||
$("#table").on("click", '.opt-vaild', function () {
|
||||
const id = $(this).attr("data-id");
|
||||
if (!id) {
|
||||
$("#tipMsg").text("id参数有误");
|
||||
$("#tipModal").modal('show');
|
||||
return;
|
||||
}
|
||||
if (confirm("确认该用户生效吗? ")) {
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: "/admin/gamePartner/user/changeStatus",
|
||||
data: { uidStr: id, status: 1 },
|
||||
success: function (json) {
|
||||
if (json.code === 200) {
|
||||
$("#tipMsg").text("操作成功");
|
||||
$("#tipModal").modal('show');
|
||||
} else {
|
||||
$("#tipMsg").text("操作失败." + json.message);
|
||||
$("#tipModal").modal('show');
|
||||
}
|
||||
TableHelper.doRefresh("#table");
|
||||
$("#userModal").modal('hide');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
$("#table").on("click", '.opt-invaild', function () {
|
||||
const id = $(this).attr("data-id");
|
||||
if (!id) {
|
||||
$("#tipMsg").text("id参数有误");
|
||||
$("#tipModal").modal('show');
|
||||
return;
|
||||
}
|
||||
if (confirm("确认该用户失效吗? ")) {
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: "/admin/gamePartner/user/changeStatus",
|
||||
data: { uidStr: id, status: 0 },
|
||||
success: function (json) {
|
||||
if (json.code === 200) {
|
||||
$("#tipMsg").text("操作成功");
|
||||
$("#tipModal").modal('show');
|
||||
} else {
|
||||
$("#tipMsg").text("操作失败." + json.message);
|
||||
$("#tipModal").modal('show');
|
||||
}
|
||||
TableHelper.doRefresh("#table");
|
||||
$("#userModal").modal('hide');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function openUserModal(data) {
|
||||
clearUserModal();
|
||||
if (data) {
|
||||
setUserModal(data);
|
||||
}
|
||||
$("#userModal").modal('show');
|
||||
}
|
||||
function clearUserModal() {
|
||||
modalData = {};
|
||||
$("#modalErbanNo").val("");
|
||||
$("#modalGames").empty();
|
||||
}
|
||||
function setUserModal(data) {
|
||||
modalData = {
|
||||
uid: data.uid, erbanNo: data.erbanNo,
|
||||
games: Object.assign([], data.games.map(game => { return { gameId: game.gameId, price: game.price, tags: Object.assign([], game.tags) } }))
|
||||
};
|
||||
freshUserModal();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function cacheGameInfo() {
|
||||
$.ajax({
|
||||
type: 'get',
|
||||
url: '/admin/gamePartner/info/listAll',
|
||||
dataType: 'json',
|
||||
success: function (res) {
|
||||
if (res.code === 200) {
|
||||
const data = res.data;
|
||||
gameInfoList = data
|
||||
gameInfoList.forEach(gameInfo => gameInfoMap[gameInfo.gameId] = gameInfo);
|
||||
makeOption(data);
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
function makeOption(data) {
|
||||
var str = '<option value=""></option>';
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
str += '<option value="' + data[i].gameId + '">' + data[i].gameName + '</option>';
|
||||
}
|
||||
$('#gameId').html(str);
|
||||
}
|
||||
function gameFormatter(val) {
|
||||
var str = ''
|
||||
if (!val || val.size < 1) {
|
||||
return str;
|
||||
}
|
||||
str += '<table>'
|
||||
val.forEach((game, gameIndex) => {
|
||||
if (gameIndex % 2 === 0) {
|
||||
str += '<tr>'
|
||||
}
|
||||
str += '<td width="50%"><table style="border-collapse:separate; border-spacing:5px 5px;">'
|
||||
str += ('<tr><td width="33%"><b>' + game.gameName + '</b></td><td width="33%">价格: ' + game.price + '</td><td width="33%">接单次数: ' + game.finishNum + '</td></tr>');
|
||||
game.tags.forEach((tag, index) => {
|
||||
if (index / 3 === 0) {
|
||||
str += '<tr>'
|
||||
}
|
||||
str += ('<td width="33%" style="word-break: break-all;word-wrap: break-word;">' + tag.tagName + ': ' + tag.tagVal + '</td>');
|
||||
if ((index / 3 > 0 && index % 2 === 0) || index === (game.tags.size - 1)) {
|
||||
str += '</tr>'
|
||||
}
|
||||
})
|
||||
str += '</table></td>'
|
||||
if ((gameIndex / 2 > 0 && (gameIndex + 1) % 2 === 0) || gameIndex === (val.size - 1)) {
|
||||
str += '</tr>'
|
||||
}
|
||||
})
|
||||
str += '</table>'
|
||||
return str;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function freshUserModal() {
|
||||
$("#modalUid").val(modalData.uid ?? "");
|
||||
$("#modalErbanNo").val(modalData.erbanNo ?? "");
|
||||
const hasAddGameId = modalData.games ? modalData.games.map(game => game.gameId) : [];
|
||||
const canAdd = gameInfoList.filter(gameInfo => !hasAddGameId.includes(gameInfo.gameId)).length !== 0;
|
||||
if (canAdd) {
|
||||
$("#modalAddBtn").show();
|
||||
} else {
|
||||
$("#modalAddBtn").hide();
|
||||
}
|
||||
const gameStr = modalData.games.map((game, index) =>
|
||||
'<div class="form-group">' +
|
||||
'<label for="modalErbanNo" class="col-sm-3 control-label">游戏:</label>' +
|
||||
'<div class="col-sm-9">' +
|
||||
'<select name="type" name="modalGameId" class="form-control validate[required]" onchange="selectGameId(this,' + index + ')">' +
|
||||
gameInfoList.map(gameInfo =>
|
||||
'<option value="' + gameInfo.gameId + '" ' + (game.gameId === gameInfo.gameId ? 'selected' : '') + '>' + gameInfo.gameName + '</option>')
|
||||
.join("") +
|
||||
'</select>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'<div class="form-group">' +
|
||||
'<label for="modalErbanNo" class="col-sm-3 control-label">单价:</label>' +
|
||||
'<div class="col-sm-9">' +
|
||||
'<input type="number" class="form-control validate[required]" name="modalPrice" onchange="inputPrice(this, ' + index + ')" value="' + (game.price ?? 0) + '">' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
game.tags.map((tag, tagIndex) =>
|
||||
'<div class="form-group">' +
|
||||
'<label for="modalTag" class="col-sm-3 control-label">' + tag.tagName + ':</label>' +
|
||||
'<div class="col-sm-9">' +
|
||||
'<input type="text" class="form-control validate[required]" name="modalTag" onchange="inputTag(this, ' + index + ',' + tagIndex + ')" value="' + (tag.tagVal ?? '') + '">' +
|
||||
'</div>' +
|
||||
'</div>'
|
||||
).join("")
|
||||
).join("<hr>");
|
||||
$("#modalGames").html(gameStr);
|
||||
}
|
||||
</script>
|
||||
|
Reference in New Issue
Block a user