499 lines
23 KiB
Vue
499 lines
23 KiB
Vue
<template>
|
|
<section class="content">
|
|
<div class="box box-primary">
|
|
<div class="box-body">
|
|
<section class="content-header">
|
|
<h1 id="itemTitle"></h1>
|
|
</section>
|
|
<div id="toolbar">
|
|
<div class="col-lg-12">
|
|
<div class="col-sm-3">
|
|
<label htmlFor="channelSelector" class="col-sm-4 control-label">渠道:</label>
|
|
<div class="col-sm-8">
|
|
<select name="channelSelector" id="channelSelector" class="form-control"
|
|
data-btn-class="btn-warning">
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-sm-3">
|
|
<label htmlFor="userType" class="col-sm-4 control-label">用户类型:</label>
|
|
<div class="col-sm-8">
|
|
<select name="userType" id="userType" class="form-control" data-btn-class="btn-warning">
|
|
<option value="">全部</option>
|
|
<option value="1">当日新增</option>
|
|
<option value="2">所有用户</option>
|
|
<option value="3">指定用户</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-sm-3">
|
|
<label htmlFor="startTime" class="col-sm-4 control-label">用户平台号:</label>
|
|
<div class="col-sm-8">
|
|
<input type="text" class="input-sm form-control" name="userErbanNo" id="userErbanNo">
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="col-sm-3">
|
|
<label htmlFor="endTime" class="col-sm-4 control-label">房主平台号:</label>
|
|
<div class="col-sm-8">
|
|
<input type="text" class="input-sm form-control" name="roomErbanNo" id="roomErbanNo">
|
|
</div>
|
|
</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>
|
|
<button id="btnExport" class="btn btn-default">
|
|
<i class="glyphicon glyphicon-circle-arrow-down"></i>导出
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- .content -->
|
|
<div id="table"></div>
|
|
|
|
</div>
|
|
</section>
|
|
|
|
|
|
<!--新增/编辑弹窗开始-->
|
|
<div class="modal fade" id="discoveryModal" 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="discoveryModalLabel">新增/编辑</h4>
|
|
</div>
|
|
<div class="modal-body">
|
|
<form class="form-horizontal" id="discoveryForm">
|
|
<input type="hidden" id="editId">
|
|
<div class="form-group">
|
|
<label for="ChannelSelectorAdd" class="col-sm-3 control-label">选择渠道:</label>
|
|
<div class="col-sm-8">
|
|
<select name="ChannelSelectorAdd" id="ChannelSelectorAdd"
|
|
class="form-control validate[required]" required="required">
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label htmlFor="userTypeAdd" class="col-sm-3 control-label">用户类型:</label>
|
|
<div class="col-sm-8">
|
|
<select name="userTypeAdd" id="userTypeAdd" class="form-control validate[required]"
|
|
data-btn-class="btn-warning" required="required">
|
|
<option value="">请选择</option>
|
|
<option value="1">当日新增</option>
|
|
<option value="2">所有用户</option>
|
|
<option value="3">指定用户</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group" id="userErbanNoBox">
|
|
<label htmlFor="roomErbanNoAdd" class="col-sm-3 control-label"></label>
|
|
<div class="col-sm-8">
|
|
<textarea name="userErbanNoAdd" id="userErbanNoAdd" class="form-control validate[required]"
|
|
rows="5" placeholder="请输入用户平台号用,隔开输入多个"></textarea>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label htmlFor="roomErbanNoAdd" class="col-sm-3 control-label">显示房间:</label>
|
|
<div class="col-sm-8">
|
|
<textarea name="roomErbanNoAdd" id="roomErbanNoAdd" class="form-control validate[required]"
|
|
rows="5" placeholder="请输入房主平台号用,隔开输入多个"></textarea>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label class="col-sm-3 control-label"></label>
|
|
<div class="col-sm-8">
|
|
<input type="text" class="input-sm datetime validate[required]" name="startTime"
|
|
id="startTime">
|
|
-<input type="text" class="input-sm datetime validate[required]" name="endTime"
|
|
id="endTime">
|
|
</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="submitBtn">提交</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!--新增/编辑弹窗开始-->
|
|
</template>
|
|
|
|
<script>
|
|
import TableHelper from '@/utils/bootstrap-table-helper';
|
|
import { formatTime } from '@/utils/maintainer';
|
|
|
|
var channelOpts = {};
|
|
export default {
|
|
name: "ChannelContentPartitionAdminView",
|
|
setup() {
|
|
return {};
|
|
},
|
|
created() {
|
|
this.$nextTick(function () {
|
|
this.initData();
|
|
});
|
|
},
|
|
methods: {
|
|
initData() {
|
|
$(function () {
|
|
$('.datetime').datetimepicker({
|
|
format: 'yyyy-mm-dd hh:ii:00',
|
|
autoclose: true
|
|
});
|
|
|
|
$("#startTime").datetimepicker({
|
|
minView: "month",
|
|
language: 'zh-CN',
|
|
todayBtn: 1,
|
|
autoclose: 1
|
|
}).on("changeDate", function (event) {
|
|
$("#endTime").datetimepicker('setStartDate', event.date);
|
|
});
|
|
|
|
$("#endTime").datetimepicker({
|
|
minView: "month",
|
|
language: 'zh-CN',
|
|
todayBtn: 1,
|
|
autoclose: 1,
|
|
useCurrent: false
|
|
}).on("changeDate", function (event) {
|
|
$("#startTime").datetimepicker('setEndDate', event.date);
|
|
});
|
|
|
|
|
|
function initTeamSelector() {
|
|
buildTable();
|
|
$.get('/admin/userCheckAdmin/accountChannel/list', function (res) {
|
|
if (res.code == 200) {
|
|
console.log(res.data);
|
|
|
|
var $first = $('<option value="">全部</option>');
|
|
$('#channelSelector').append($first);
|
|
for (var i = 0; i < res.data.length; i++) {
|
|
var $opt = $('<option value=""></option>');
|
|
$('#channelSelector').append($opt);
|
|
$opt.attr('value', res.data[i]);
|
|
$opt.html(res.data[i]);
|
|
|
|
channelOpts[res.data[i]] = res.data[i];
|
|
}
|
|
|
|
}
|
|
})
|
|
}
|
|
|
|
initTeamSelector();
|
|
|
|
|
|
// 列表设置
|
|
function buildTable() {
|
|
$('#table').bootstrapTable('destroy');
|
|
$('#table').bootstrapTable({
|
|
cache: false,
|
|
striped: true,
|
|
showRefresh: false,
|
|
pageSize: 10,
|
|
pagination: true,
|
|
pageList: [10, 20, 30, 50],
|
|
sidePagination: "server", //表示服务端请求
|
|
queryParamsType: "undefined",
|
|
queryParams: function queryParams(params) {
|
|
var param = {
|
|
pageNumber: params.pageNumber,
|
|
pageSize: params.pageSize,
|
|
channel: $('#channelSelector').val(),
|
|
userType: $('#userType').val(),
|
|
userErbanNo: $('#userErbanNo').val(),
|
|
roomErbanNo: $('#roomErbanNo').val(),
|
|
};
|
|
return param;
|
|
},
|
|
uniqueId: 'id',
|
|
toolbar: '#toolbar',
|
|
url: '/admin/channel/content/queryList',
|
|
onLoadSuccess: function () { //加载成功时执行
|
|
console.log("load success");
|
|
},
|
|
onLoadError: function () { //加载失败时执行
|
|
console.log("load fail");
|
|
},
|
|
columns: [
|
|
{ field: 'id', title: '序号', align: 'center', valign: 'middle' },
|
|
{
|
|
field: 'channel',
|
|
title: '渠道',
|
|
align: 'center',
|
|
valign: 'middle',
|
|
width: '15%',
|
|
formatter: function (val) {
|
|
if (val == 'all') {
|
|
return '全部';
|
|
} else {
|
|
return val;
|
|
}
|
|
}
|
|
},
|
|
{
|
|
field: 'userType',
|
|
title: '用户类型',
|
|
align: 'center',
|
|
valign: 'middle',
|
|
width: '15%',
|
|
formatter: function (val) {
|
|
if (val == 1) {
|
|
return '当日新增';
|
|
} else if (val == 2) {
|
|
return '所有用户';
|
|
} else if (val == 3) {
|
|
return '指定用户';
|
|
} else {
|
|
return '';
|
|
}
|
|
}
|
|
},
|
|
{ field: 'validTime', title: '生效时间', align: 'center', valign: 'middle', width: '23%' },
|
|
{
|
|
field: 'status', title: '状态', align: 'center', valign: 'middle', width: '15%',
|
|
formatter: function (val) {
|
|
if (val == '1') {
|
|
return '生效';
|
|
} else if (val == '2') {
|
|
return '失效';
|
|
} else return '删除';
|
|
}
|
|
},
|
|
{
|
|
field: 'createTime',
|
|
title: '创建时间',
|
|
align: 'center',
|
|
valign: 'middle',
|
|
width: '15%',
|
|
formatter: function (val, row, index) {
|
|
var date = new Date(val);
|
|
return date.format("yyyy-MM-dd hh:mm:ss");
|
|
}
|
|
},
|
|
{
|
|
field: 'id',
|
|
title: '操作',
|
|
align: 'center',
|
|
width: '25%',
|
|
formatter: function (val, row, index) {
|
|
var statusChangeBtn = '<button class="btn btn-sm btn-success opt-change-status operateBtn" data-id=' + row.id + ' data-status=' + 2 + '>失效</button>';
|
|
if (row.status == 2) {
|
|
statusChangeBtn = '<button class="btn btn-sm btn-primary opt-change-status operateBtn" data-id=' + row.id + ' data-status=' + 1 + '>生效</button>';
|
|
}
|
|
return '<button id="btnEdit" name="btnEdit" class="btn btn-sm btn-primary opt-edit operateBtn" data-id=' + row.id + '>' +
|
|
'<i class="glyphicon glyphicon-edit"></i> 编辑</button>' +
|
|
statusChangeBtn +
|
|
'<button class="btn btn-sm btn-danger opt-change-status operateBtn" data-id=' + row.id + ' data-status="0"><i class="glyphicon glyphicon-remove"></i>删除</button>';
|
|
}
|
|
}
|
|
]
|
|
});
|
|
}
|
|
|
|
|
|
// 查询刷新
|
|
$('#btnSearch').on('click', function () {
|
|
TableHelper.doRefresh('#table');
|
|
});
|
|
|
|
|
|
$("#userTypeAdd").change(function () {
|
|
var optVal = $(this).val();
|
|
if (optVal != undefined && optVal == 3) {
|
|
$("#userErbanNoBox").show();
|
|
} else {
|
|
$('#discoveryForm').find('textarea').val('');
|
|
$("#userErbanNoBox").hide();
|
|
}
|
|
|
|
});
|
|
|
|
|
|
// 新增/编辑弹框
|
|
$("#btnAdd").on("click", function () {
|
|
clearForm("discoveryForm");
|
|
$("#userErbanNoBox").hide();
|
|
$(".formError").hide();
|
|
//渠道选择框渲染
|
|
resetChannelSelectOpt();
|
|
|
|
$("#discoveryModal").modal('show');
|
|
|
|
});
|
|
|
|
$("#btnExport").on("click", function () {
|
|
var channel = $("#channelSelector").val();
|
|
var userType = $("#userType").val();
|
|
var userErbanNo = $("#userErbanNo").val();
|
|
var roomErbanNo = $("#roomErbanNo").val();
|
|
window.location.href = '/admin/channel/content/exportChannelContent?channel=' + channel + '&userType=' + userType + '&userErbanNo=' + userErbanNo + '&roomErbanNo=' + roomErbanNo;
|
|
console.log("导出成功")
|
|
});
|
|
|
|
//新增/编辑保存
|
|
$("#submitBtn").click(function () {
|
|
if ($("#discoveryForm").validationEngine('validate')) {
|
|
var id = $("#editId").val();
|
|
var channel = $("#ChannelSelectorAdd").val();
|
|
var userType = $("#userTypeAdd").val();
|
|
var userErbanNo = $("#userErbanNoAdd").val();
|
|
var roomErbanNo = $("#roomErbanNoAdd").val();
|
|
|
|
var startTime = $("#startTime").val();
|
|
var endTime = $("#endTime").val();
|
|
|
|
$.ajax({
|
|
type: "post",
|
|
url: "/admin/channel/content/saveChannelContent",
|
|
data: {
|
|
id: id,
|
|
channel: channel,
|
|
userType: userType,
|
|
userErbanNo: userErbanNo,
|
|
roomErbanNo: roomErbanNo,
|
|
startTime: startTime,
|
|
endTime: endTime
|
|
},
|
|
dataType: "json",
|
|
success: function (json) {
|
|
if (json.code == 200) {
|
|
$("#tipMsg").text("保存成功!");
|
|
$("#tipModal").modal('show');
|
|
TableHelper.doRefresh('#table');
|
|
$("#addRoomTabMapModal").modal('hide');
|
|
$("#discoveryModal").modal('hide');
|
|
} else {
|
|
$("#tipMsg").text("保存失败:" + json.message);
|
|
$("#tipModal").modal('show');
|
|
$("#addRoomTabMapModal").modal('hide');
|
|
}
|
|
},
|
|
error: function (json) {
|
|
var errInfo = json.responseText;
|
|
var obj = eval('(' + errInfo + ')')
|
|
var errmsg = obj.errors[0].defaultMessage;
|
|
$("#tipMsg").text("保存失败:" + errmsg);
|
|
$("#tipModal").modal('show');
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
/**
|
|
* 编辑
|
|
*/
|
|
$("#table").on("click", '.opt-edit', function () {
|
|
var id = $(this).data('id');
|
|
$.ajax({
|
|
type: "get",
|
|
url: "/admin/channel/content/getChannelContent",
|
|
data: { id: id },
|
|
dataType: "json",
|
|
success: function (ret) {
|
|
resetChannelSelectOpt();
|
|
|
|
if (ret.code == 200) {
|
|
var resultObj = ret.data;
|
|
$("#editId").val(resultObj.id);
|
|
$("#ChannelSelectorAdd").val(resultObj.channel);
|
|
$("#userTypeAdd").val(resultObj.userType);
|
|
$("#roomErbanNoAdd").val(resultObj.roomErbanNo);
|
|
$("#startTime").val(formatTime(resultObj.startTime));
|
|
$("#endTime").val(formatTime(resultObj.endTime));
|
|
|
|
if (resultObj.userType == 3) {
|
|
$("#userErbanNoBox").show();
|
|
$("#userErbanNoAdd").val(resultObj.userErbanNo);
|
|
} else {
|
|
$("#userErbanNoBox").hide();
|
|
$("#userErbanNoAdd").val('');
|
|
}
|
|
// 打开编辑弹窗
|
|
$("#discoveryModal").modal('show');
|
|
} else {
|
|
$("#tipMsg").text("获取渠道信息异常");
|
|
$("#tipModal").modal('show');
|
|
}
|
|
}
|
|
});
|
|
|
|
});
|
|
|
|
/**
|
|
* 状态切换
|
|
*/
|
|
$("#table").on("click", '.opt-change-status', function () {
|
|
var id = $(this).data('id');
|
|
var status = $(this).data('status');
|
|
$.ajax({
|
|
type: "post",
|
|
url: "/admin/channel/content/toggleState",
|
|
data: { id: id, status: status },
|
|
dataType: "json",
|
|
success: function (ret) {
|
|
if (ret.code == 200) {
|
|
$("#tipMsg").text("操作成功!");
|
|
$("#tipModal").modal('show');
|
|
TableHelper.doRefresh('#table');
|
|
$("#addRoomTabMapModal").modal('hide');
|
|
} else {
|
|
$("#tipMsg").text("请求失败!");
|
|
$("#tipModal").modal('show');
|
|
}
|
|
}
|
|
});
|
|
|
|
});
|
|
|
|
function resetChannelSelectOpt() {
|
|
$("#ChannelSelectorAdd").empty();
|
|
$('#ChannelSelectorAdd').append('<option value="">请选择</option>');
|
|
for (var key in channelOpts) {
|
|
$('#ChannelSelectorAdd').append('<option value="' + key + '">' + channelOpts[key] + '</option>');
|
|
}
|
|
}
|
|
|
|
function clearForm(formId) {
|
|
var $form = $('#' + formId);
|
|
$form.find('input').val('');
|
|
$form.find('select').val('');
|
|
$form.find('textarea').val('');
|
|
$form.find('span').html("");
|
|
}
|
|
|
|
|
|
});
|
|
|
|
}
|
|
},
|
|
|
|
};
|
|
</script>
|
|
|
|
<style scoped>
|
|
.operateBtn {
|
|
margin-right: 5px;
|
|
}</style> |