mirror of
https://gitee.com/zhc02/timely_service.git
synced 2025-07-12 19:39:03 +08:00
后台页面
This commit is contained in:
parent
ccf6656ad7
commit
35d233d6f3
@ -50,10 +50,10 @@
|
|||||||
<div class="panel layui-bg-number">
|
<div class="panel layui-bg-number">
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<div class="panel-title">
|
<div class="panel-title">
|
||||||
<h5>客服统计</h5>
|
<h5>客服总数</h5>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-content">
|
<div class="panel-content">
|
||||||
<h1 class="no-margins">1234</h1>
|
<h1 class="no-margins">{$kefu_num}</h1>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -65,7 +65,7 @@
|
|||||||
<h5>当前在线客服</h5>
|
<h5>当前在线客服</h5>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-content">
|
<div class="panel-content">
|
||||||
<h1 class="no-margins">1234</h1>
|
<h1 class="no-margins">{$online_kefu_num}</h1>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -77,7 +77,7 @@
|
|||||||
<h5>当前在线访客</h5>
|
<h5>当前在线访客</h5>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-content">
|
<div class="panel-content">
|
||||||
<h1 class="no-margins">1234</h1>
|
<h1 class="no-margins">{$online_visitor_num}</h1>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -90,7 +90,7 @@
|
|||||||
<h5>今日会话</h5>
|
<h5>今日会话</h5>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-content">
|
<div class="panel-content">
|
||||||
<h1 class="no-margins">1234</h1>
|
<h1 class="no-margins">{$service_num}</h1>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -226,13 +226,14 @@
|
|||||||
/**
|
/**
|
||||||
* 报表功能
|
* 报表功能
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var echartsRecords = echarts.init(document.getElementById('echarts-records'), 'walden');
|
var echartsRecords = echarts.init(document.getElementById('echarts-records'), 'walden');
|
||||||
var optionRecords = {
|
var optionRecords = {
|
||||||
tooltip: {
|
tooltip: {
|
||||||
trigger: 'axis'
|
trigger: 'axis',
|
||||||
},
|
},
|
||||||
legend: {
|
legend: {
|
||||||
data:['邮件营销','联盟广告','视频广告','直接访问','搜索引擎']
|
data:['新增客服','新增游客','新增会话']
|
||||||
},
|
},
|
||||||
grid: {
|
grid: {
|
||||||
left: '3%',
|
left: '3%',
|
||||||
@ -248,36 +249,26 @@
|
|||||||
xAxis: {
|
xAxis: {
|
||||||
type: 'category',
|
type: 'category',
|
||||||
boundaryGap: false,
|
boundaryGap: false,
|
||||||
data: ['周一','周二','周三','周四','周五','周六','周日']
|
data: {$date_list|raw},
|
||||||
},
|
},
|
||||||
yAxis: {
|
yAxis: {
|
||||||
type: 'value'
|
type: 'value'
|
||||||
},
|
},
|
||||||
series: [
|
series: [
|
||||||
{
|
{
|
||||||
name:'邮件营销',
|
name:'新增客服',
|
||||||
type:'line',
|
type:'line',
|
||||||
data:[120, 132, 101, 134, 90, 230, 210]
|
data:{$new_kefu_num|raw}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:'联盟广告',
|
name:'新增游客',
|
||||||
type:'line',
|
type:'line',
|
||||||
data:[220, 182, 191, 234, 290, 330, 310]
|
data:{$new_visitor_num|raw}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:'视频广告',
|
name:'新增会话',
|
||||||
type:'line',
|
type:'line',
|
||||||
data:[150, 232, 201, 154, 190, 330, 410]
|
data:{$add_service_num|raw}
|
||||||
},
|
|
||||||
{
|
|
||||||
name:'直接访问',
|
|
||||||
type:'line',
|
|
||||||
data:[320, 332, 301, 334, 390, 330, 320]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name:'搜索引擎',
|
|
||||||
type:'line',
|
|
||||||
data:[820, 932, 901, 934, 1290, 1330, 1320]
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
|
@ -43,7 +43,7 @@
|
|||||||
<div class="layui-inline">
|
<div class="layui-inline">
|
||||||
<label class="layui-form-label">客服姓名</label>
|
<label class="layui-form-label">客服姓名</label>
|
||||||
<div class="layui-input-inline">
|
<div class="layui-input-inline">
|
||||||
<input type="text" name="username" autocomplete="off" class="layui-input">
|
<input type="text" name="name" autocomplete="off" class="layui-input">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="layui-inline">
|
<div class="layui-inline">
|
||||||
@ -65,20 +65,20 @@
|
|||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<div class="layui-btn-group">
|
<div class="layui-btn-group" style="margin-bottom: 10px;">
|
||||||
<button class="layui-btn data-add-btn">添加</button>
|
<button class="layui-btn data-add-btn">添加</button>
|
||||||
</div>
|
</div>
|
||||||
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
|
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
|
||||||
<script type="text/html" id="currentTableBar">
|
<script type="text/html" id="currentTableBar">
|
||||||
<a class="layui-btn layui-btn-xs data-count-edit" lay-event="edit">编辑</a>
|
<a class="layui-btn layui-btn-xs data-count-edit" lay-event="edit">编辑</a>
|
||||||
|
<a class="layui-btn layui-btn-xs layui-btn-warm" lay-event="savePassword">修改密码</a>
|
||||||
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
|
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
|
||||||
</script>
|
</script>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 表单弹窗 -->
|
<!-- 添加弹窗 -->
|
||||||
<script type="text/html" id="modelUser">
|
<script type="text/html" id="modelUser">
|
||||||
<form id="modelUserForm" lay-filter="modelUserForm" class="layui-form model-form" style="padding: 25px 30px 0 0;">
|
<form id="modelUserForm" lay-filter="modelUserForm" class="layui-form model-form" style="padding: 25px 30px 0 0;">
|
||||||
<input name="kf_id" type="hidden"/>
|
|
||||||
<div class="layui-form-item">
|
<div class="layui-form-item">
|
||||||
<label class="layui-form-label">客服名</label>
|
<label class="layui-form-label">客服名</label>
|
||||||
<div class="layui-input-block">
|
<div class="layui-input-block">
|
||||||
@ -87,7 +87,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="layui-form-item">
|
<div class="layui-form-item">
|
||||||
<label class="layui-form-label">客服名</label>
|
<label class="layui-form-label">密码</label>
|
||||||
<div class="layui-input-block">
|
<div class="layui-input-block">
|
||||||
<input name="kefu_password" placeholder="请输入客服密码" type="password" class="layui-input" maxlength="20"
|
<input name="kefu_password" placeholder="请输入客服密码" type="password" class="layui-input" maxlength="20"
|
||||||
lay-verType="tips" lay-verify="required" required/>
|
lay-verType="tips" lay-verify="required" required/>
|
||||||
@ -95,7 +95,43 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="layui-form-item text-right" style="text-align: right;">
|
<div class="layui-form-item text-right" style="text-align: right;">
|
||||||
<button class="layui-btn layui-btn-primary" type="button" ew-event="closePageDialog">取消</button>
|
<button class="layui-btn layui-btn-primary" type="button" id="closePageDialog">取消</button>
|
||||||
|
<button class="layui-btn" lay-filter="modelSubmitUser" lay-submit>保存</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</script>
|
||||||
|
<!-- 修改弹窗 -->
|
||||||
|
<script type="text/html" id="modelUserUpdate">
|
||||||
|
<form id="modelUserUpdateForm" lay-filter="modelUserUpdateForm" class="layui-form model-form" style="padding: 25px 30px 0 0;">
|
||||||
|
<input name="kefu_id" type="hidden"/>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label">客服名</label>
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<input name="kefu_name" placeholder="请输入客服名" type="text" class="layui-input" maxlength="20"
|
||||||
|
lay-verType="tips" lay-verify="required" required/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="layui-form-item text-right" style="text-align: right;">
|
||||||
|
<button class="layui-btn layui-btn-primary" type="button" id="closePageDialog">取消</button>
|
||||||
|
<button class="layui-btn" lay-filter="modelSubmitUser" lay-submit>保存</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</script>
|
||||||
|
<!-- 更改密码弹出 -->
|
||||||
|
<script type="text/html" id="savePassword">
|
||||||
|
<form id="savePasswordFrom" lay-filter="savePasswordFrom" class="layui-form model-form" style="padding: 25px 30px 0 0;">
|
||||||
|
<input name="kefu_id" type="hidden"/>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label">密码</label>
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<input name="password" placeholder="请输入客服密码" type="password" class="layui-input" maxlength="20"
|
||||||
|
lay-verType="tips" lay-verify="required" required/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="layui-form-item text-right" style="text-align: right;">
|
||||||
|
<button class="layui-btn layui-btn-primary" type="button" id="closePageDialog">取消</button>
|
||||||
<button class="layui-btn" lay-filter="modelSubmitUser" lay-submit>保存</button>
|
<button class="layui-btn" lay-filter="modelSubmitUser" lay-submit>保存</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
@ -149,19 +185,12 @@
|
|||||||
|
|
||||||
// 监听搜索操作
|
// 监听搜索操作
|
||||||
form.on('submit(data-search-btn)', function (data) {
|
form.on('submit(data-search-btn)', function (data) {
|
||||||
var result = JSON.stringify(data.field);
|
|
||||||
layer.alert(result, {
|
|
||||||
title: '最终的搜索信息'
|
|
||||||
});
|
|
||||||
|
|
||||||
//执行搜索重载
|
//执行搜索重载
|
||||||
table.reload('currentTableId', {
|
table.reload('currentTableId', {
|
||||||
page: {
|
page: {
|
||||||
curr: 1
|
curr: 1
|
||||||
}
|
}
|
||||||
, where: {
|
, where: data.field
|
||||||
searchParams: result
|
|
||||||
}
|
|
||||||
}, 'data');
|
}, 'data');
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@ -172,42 +201,83 @@
|
|||||||
showEditModel();
|
showEditModel();
|
||||||
});
|
});
|
||||||
|
|
||||||
// 监听删除操作
|
|
||||||
$(".data-delete-btn").on("click", function () {
|
|
||||||
var checkStatus = table.checkStatus('currentTableId')
|
|
||||||
, data = checkStatus.data;
|
|
||||||
layer.alert(JSON.stringify(data));
|
|
||||||
});
|
|
||||||
|
|
||||||
//监听表格复选框选择
|
|
||||||
table.on('checkbox(currentTableFilter)', function (obj) {
|
|
||||||
console.log(obj)
|
|
||||||
});
|
|
||||||
|
|
||||||
table.on('tool(currentTableFilter)', function (obj) {
|
table.on('tool(currentTableFilter)', function (obj) {
|
||||||
var data = obj.data;
|
var data = obj.data;
|
||||||
if (obj.event === 'edit') {
|
if (obj.event === 'edit') {
|
||||||
layer.alert('编辑行:<br>' + JSON.stringify(data))
|
showEditModel(data);
|
||||||
} else if (obj.event === 'delete') {
|
} else if (obj.event === 'delete') {
|
||||||
layer.confirm('真的删除行么', function (index) {
|
layer.confirm('确定要删除客服【'+data.kefu_name+'】吗?', function (index) {
|
||||||
obj.del();
|
layer.load(2);
|
||||||
|
$.post('/delKefu', {
|
||||||
|
kid:data.kefu_id
|
||||||
|
}, function (res) {
|
||||||
|
layer.closeAll('loading');
|
||||||
|
if (res.code == 1000) {
|
||||||
|
layer.msg(res.message, {icon: 1});
|
||||||
|
table.reload('currentTableId');
|
||||||
layer.close(index);
|
layer.close(index);
|
||||||
|
} else {
|
||||||
|
layer.msg(res.message, {icon: 2});
|
||||||
|
layer.close(index);
|
||||||
|
}
|
||||||
|
}, 'json');
|
||||||
});
|
});
|
||||||
|
}else if(obj.event === 'savePassword'){
|
||||||
|
showEditPassWordModel(data);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// 显示表单弹窗
|
// 显示表单弹窗
|
||||||
function showEditModel(mUser) {
|
function showEditModel(mUser) {
|
||||||
layer.open({
|
layer.open({
|
||||||
type: 1,
|
type: 1,
|
||||||
title: (mUser ? '修改' : '添加') + '客服',
|
title: (mUser ? '修改' : '添加') + '客服',
|
||||||
area: ['500px', '400px'],
|
area: ['500px', '400px'],
|
||||||
content: $('#modelUser').html(),
|
content:mUser?$('#modelUserUpdate').html():$('#savePassword').html(),
|
||||||
success: function (layero, dIndex) {
|
success: function (layero, dIndex) {
|
||||||
$(layero).children('.layui-layer-content').css('overflow', 'visible');
|
$(layero).children('.layui-layer-content').css('overflow', 'visible');
|
||||||
var url = mUser ? '/mer/kefu/updateKefu' : '/mer/kefu/addKefu';
|
var url = mUser ? '/updateKefu' : '/addKefu';
|
||||||
mUser && (mUser.gid = mUser.g_id);
|
|
||||||
// 回显数据
|
// 回显数据
|
||||||
form.val('modelUserForm', mUser);
|
mUser? form.val('modelUserUpdateForm', mUser):'';
|
||||||
|
// 监听关闭
|
||||||
|
$("#closePageDialog").on("click", function () {
|
||||||
|
layer.close(dIndex);
|
||||||
|
});
|
||||||
|
// 表单提交事件
|
||||||
|
form.on('submit(modelSubmitUser)', function (data) {
|
||||||
|
layer.load(2);
|
||||||
|
|
||||||
|
$.post(url, data.field, function (res) {
|
||||||
|
layer.closeAll('loading');
|
||||||
|
if (res.code == 1000) {
|
||||||
|
layer.close(dIndex);
|
||||||
|
layer.msg(res.message, {icon: 1});
|
||||||
|
table.reload('currentTableId');
|
||||||
|
} else {
|
||||||
|
layer.msg(res.message, {icon: 2});
|
||||||
|
}
|
||||||
|
}, 'json');
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// 显示修改密码表单弹窗
|
||||||
|
function showEditPassWordModel(mUser) {
|
||||||
|
layer.open({
|
||||||
|
type: 1,
|
||||||
|
title: '修改密码',
|
||||||
|
area: ['500px', '400px'],
|
||||||
|
content:$('#savePassword').html(),
|
||||||
|
success: function (layero, dIndex) {
|
||||||
|
$(layero).children('.layui-layer-content').css('overflow', 'visible');
|
||||||
|
var url = 'resetPassword';
|
||||||
|
// 回显数据
|
||||||
|
form.val('savePasswordFrom', mUser);
|
||||||
|
// 监听关闭
|
||||||
|
$("#closePageDialog").on("click", function () {
|
||||||
|
layer.close(dIndex);
|
||||||
|
});
|
||||||
// 表单提交事件
|
// 表单提交事件
|
||||||
form.on('submit(modelSubmitUser)', function (data) {
|
form.on('submit(modelSubmitUser)', function (data) {
|
||||||
layer.load(2);
|
layer.load(2);
|
||||||
@ -216,7 +286,6 @@
|
|||||||
if (res.code == 1000) {
|
if (res.code == 1000) {
|
||||||
layer.close(dIndex);
|
layer.close(dIndex);
|
||||||
layer.msg(res.message, {icon: 1});
|
layer.msg(res.message, {icon: 1});
|
||||||
insTb.reload({}, 'data');
|
|
||||||
} else {
|
} else {
|
||||||
layer.msg(res.message, {icon: 2});
|
layer.msg(res.message, {icon: 2});
|
||||||
}
|
}
|
||||||
|
@ -76,35 +76,6 @@
|
|||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
// 监听添加操作
|
|
||||||
$(".data-add-btn").on("click", function () {
|
|
||||||
layer.msg('添加数据');
|
|
||||||
});
|
|
||||||
|
|
||||||
// 监听删除操作
|
|
||||||
$(".data-delete-btn").on("click", function () {
|
|
||||||
var checkStatus = table.checkStatus('currentTableId')
|
|
||||||
, data = checkStatus.data;
|
|
||||||
layer.alert(JSON.stringify(data));
|
|
||||||
});
|
|
||||||
|
|
||||||
//监听表格复选框选择
|
|
||||||
table.on('checkbox(currentTableFilter)', function (obj) {
|
|
||||||
console.log(obj)
|
|
||||||
});
|
|
||||||
|
|
||||||
table.on('tool(currentTableFilter)', function (obj) {
|
|
||||||
var data = obj.data;
|
|
||||||
if (obj.event === 'edit') {
|
|
||||||
layer.alert('编辑行:<br>' + JSON.stringify(data))
|
|
||||||
} else if (obj.event === 'delete') {
|
|
||||||
layer.confirm('真的删除行么', function (index) {
|
|
||||||
obj.del();
|
|
||||||
layer.close(index);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<script>
|
<script>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user