| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507 |
- /**
- * 外呼计划
- * */
- var TaskID; //计划的id
- var TaskState; //计划的状态
- $(function() {
- $('.tool_bars').authorizeButton();
- laydate.render({
- elem: '#sc_times',
- range: '~',
- theme: '#249fea',
- });
- initOutcryTable();
- //搜索
- $("#sc_btns").click(function() {
- initOutcryTable();
- $("#phoneLists").hide();
- });
- $('#outcryTable').on("click-row.bs.table", function(e, row, ele) {
- $('.success').removeClass('success'); //去除之前选中的行的,选中样式
- $(ele).addClass('success'); //添加当前选中的 success样式用于区别
- TaskID = row.id //计划ID
- TaskState = row.isstart; //计划状态
- $("#phoneLists").show();
- initPhoneTable();
- });
-
- refreshDatas(huayi.config.taskRealInfoTime); //刷新 数据
- });
- //外呼计划列表
- function initOutcryTable() {
- //先销毁表格
- $('#outcryTable').bootstrapTable('destroy');
- //初始化表格,动态从服务器加载数据
- $('#outcryTable').bootstrapTable({
- method: "get", //使用get请求到服务器获取数据
- url: huayi.config.callcenter_url + "callcenterapi/api/autocallouttask/getlistbypage", //获取数据的Servlet地址
- contentType: "application/x-www-form-urlencoded",
- striped: true, //表格显示条纹
- pagination: true, //启动分页
- pageSize: 10, //每页显示的记录数
- pageNumber: 1, //当前第几页
- pageList: [10, 20, 50, 100], //记录数可选列表
- search: false, //是否启用查询
- showColumns: false, //显示下拉框勾选要显示的列
- showRefresh: false, //显示刷新按钮
- sidePagination: "server", //表示服务端请求
- //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
- //设置为limit可以获取limit, offset, search, sort, order
- queryParamsType: "undefined",
- queryParams: function queryParams(params) { //设置查询参数
- var param = {
- pageindex: params.pageNumber, //否 int 页码
- pagesize: params.pageSize, //否 int 条数
- key: $('#sc_keyWords').val(), // 否 string 任务名称,可模糊查询
- taskstate: $('#sc_taskState').val(), // 否 int 任务状态 (不传值时查询所有状态)
- stime: $('#sc_times').val() && $('#sc_times').val().split(' ~ ')[0], // 否 string 开始时间
- etime: $('#sc_times').val() && $('#sc_times').val().split(' ~ ')[1], // 否 string 结束时间
- };
- return param;
- },
- onLoadSuccess: function(res) { //加载成功时执行
- //layer.msg("加载成功");
- $('.tool_downs').authorizeOperateButton();
- $('#outcryTable').find('tbody tr:first').trigger('click');
- },
- onLoadError: function() { //加载失败时执行
- //layer.msg("加载数据失败", { time: 1500, icon: 2 });
- }
- });
- }
- //格式化编号
- function setCode(val, row, index) {
- return index + 1;
- }
- //格式化 计划状态
- function formatterState(val, row) {
- //0未启动,1已启动,2暂停,3处理完成,4撤销,5完成
- var stateClass = 'timeout_default';
- var stateTxt = '-';
- switch(val) {
- case 0:
- stateClass = 'timeout_wait';
- stateTxt = '未启动';
- break;
- case 1:
- stateClass = 'timeout_success';
- stateTxt = '已启动';
- break;
- case 2:
- stateClass = 'timeout_refuse';
- stateTxt = '暂停';
- break;
- case 3:
- stateClass = 'timeout_doned';
- stateTxt = '处理完成';
- break;
- case 4:
- stateClass = 'timeout_revoke';
- stateTxt = '撤销';
- break;
- case 5:
- stateClass = 'timeout_end';
- stateTxt = '完成';
- break;
- default:
- break;
- }
- return '<span class="' + stateClass + '">' + stateTxt + '</span>';
- }
- //格式化 上架状态
- function formatterIsonline(val, row) {
- //任务是否上线,1为上线
- var stateClass = 'timeout_default';
- var stateTxt = '-';
- switch(val) {
- case 0:
- stateClass = 'timeout_revoke';
- stateTxt = '已下架';
- break;
- case 1:
- stateClass = 'timeout_success';
- stateTxt = '已上架';
- break;
- default:
- break;
- }
- return '<span class="' + stateClass + '">' + stateTxt + '</span>';
- }
- //格式化 外呼计划操作
- function formatterOperateL(val, row) {
- var tplHtml = '';
- tplHtml += '<ul class="tool_downs">';
- //0未启动 编辑 上架下架 启动 停止 删除 清空号码
- //1已启动 编辑 暂停 停止
- //2暂停 编辑 启动 停止
- //3处理完成 重新执行
- //4撤销
- //5完成
- switch (row.isstart){
- case 0:
- if(row.isonline === 0) {
- tplHtml += '<li><a class="aBtn" authorize="yes" id="HY_upline_' + row.id + '" onclick="btn_upline(\'' + row.id + '\', 1, event)">上架</a><li>';
- } else {
- tplHtml += '<li><a class="aBtn" authorize="yes" id="HY_downline_' + row.id + '" onclick="btn_upline(\'' + row.id + '\', 0, event)">下架</a><li>';
- }
- tplHtml += '<li><a class="aBtn" authorize="yes" id="HY_edit_' + row.id + '" onclick="btn_edit(\'' + row.id + '\', \'' + row.isstart + '\', event)">编辑</a><li>';
- tplHtml += '<li><a class="aBtn" authorize="yes" id="HY_start_' + row.id + '" onclick="btn_oparate(\'' + row.id + '\', 1, event)">启动</a><li>';
- tplHtml += '<li><a class="aBtn" authorize="yes" id="HY_stop_' + row.id + '" onclick="btn_oparate(\'' + row.id + '\', 11, event)">停止</a><li>';
- tplHtml += '<li><a class="aBtn" authorize="yes" id="HY_deleteL_' + row.id + '" onclick="btn_deleteL(\'' + row.id + '\',event)">删除</a><li>'+
- '<li><a class="aBtn" authorize="yes" id="HY_empty_' + row.id + '" onclick="btn_empty(\'' + row.id + '\',event)">清空号码</a><li>';
- break;
- case 1:
- tplHtml += '<li><a class="aBtn" authorize="yes" id="HY_edit_' + row.id + '" onclick="btn_edit(\'' + row.id + '\', \'' + row.isstart + '\', event)">编辑</a><li>';
- tplHtml += '<li><a class="aBtn" authorize="yes" id="HY_pause_' + row.id + '" onclick="btn_oparate(\'' + row.id + '\', 10, event)">暂停</a><li>';
- tplHtml += '<li><a class="aBtn" authorize="yes" id="HY_stop_' + row.id + '" onclick="btn_oparate(\'' + row.id + '\', 11, event)">停止</a><li>';
- break;
- case 2:
- tplHtml += '<li><a class="aBtn" authorize="yes" id="HY_edit_' + row.id + '" onclick="btn_edit(\'' + row.id + '\', \'' + row.isstart + '\', event)">编辑</a><li>';
- tplHtml += '<li><a class="aBtn" authorize="yes" id="HY_start_' + row.id + '" onclick="btn_oparate(\'' + row.id + '\', 1, event)">启动</a><li>';
- tplHtml += '<li><a class="aBtn" authorize="yes" id="HY_stop_' + row.id + '" onclick="btn_oparate(\'' + row.id + '\', 11, event)">停止</a><li>';
- break;
- case 3:
- //处理完成
- if(row.secondflag === 0) {
- tplHtml += '<li><a class="aBtn" authorize="yes" id="HY_repeat_' + row.id + '" onclick="btn_repeat(\'' + row.id + '\',event)" title="点击重新执行未呼通号码">重新执行</a><li>';
- }
- break;
- default:
- break;
- }
- tplHtml +='</ul>';
- return tplHtml;
- }
- //添加 外呼计划
- function btn_add() {
- layer.open({
- maxmin: true, //开启最大化最小化按钮
- type: 2,
- content: "template/addOrEditPlan.html", //iframe的url,no代表不显示滚动条
- title: '添加外呼计划',
- area: ['60%', '90%'], //宽高
- });
- }
- //编辑 外呼计划
- function btn_edit(edit_id, isStart, event) {
- event.stopPropagation();
- layer.open({
- maxmin: true, //开启最大化最小化按钮
- type: 2,
- content: "template/addOrEditPlan.html?edit_id=" + edit_id + "&isStart=" + isStart, //iframe的url,no代表不显示滚动条
- title: '编辑外呼计划',
- area: ['60%', '90%'], //宽高
- });
- }
- //导入电话号码
- function btn_import() {
- if(!TaskID) {
- layer.confirm('请先选择一个外呼计划!', {
- icon: 7,
- btn: ['确定'] //按钮
- });
- return;
- }
- if(TaskState > 0){
- layer.confirm('该计划已经启动不能再导入号码!', {
- icon: 7,
- btn: ['确定'] //按钮
- });
- return;
- }
- layer.open({
- maxmin: true, //开启最大化最小化按钮
- type: 2,
- content: "template/importPhones.html?tid=" + TaskID, //iframe的url,no代表不显示滚动条
- title: '导入号码',
- area: ['50%', '80%'], //宽高
- });
- }
- //删除
- function btn_deleteL(delid,event) {
- event.stopPropagation();
- layer.confirm('您确定要删除当前外呼计划吗?', {
- icon: 7,
- btn: ['是', '否'] //按钮
- }, function() {
- /*发送请求*/
- $.ajax({
- type: "post",
- url: huayi.config.callcenter_url + "callcenterapi/api/autocallouttask/delete",
- dataType: 'json',
- data: {
- ids: delid, //是 string[] 任务标识id,可传数组或单条数据,例如:[“5aab859037c0a7745c6d5423”,”5aab859037c0a7745c6d5423”]
- },
- async: true,
- success: function(data) {
- layer.msg("删除成功");
- $('#outcryTable').bootstrapTable('refresh');
- $('#phoneTable').bootstrapTable('refresh');
- }
- });
- });
- }
- //外呼计划 清空号码
- function btn_empty(tid, event) {
- event.stopPropagation();
- layer.confirm('您确定要清空当前计划下的号码吗?', {
- icon: 7,
- btn: ['是', '否'] //按钮
- }, function() {
- $.ajax({
- type: "post",
- url: huayi.config.callcenter_url + "callcenterapi/api/autocallouttask/removeall",
- dataType: 'json',
- data: {
- id: tid, //是 string 任务id标识
- },
- async: true,
- success: function(data) {
- layer.msg("清空号码成功!");
- $('#outcryTable').bootstrapTable('refresh');
- $('#phoneTable').bootstrapTable('refresh');
- }
- });
- });
- }
- //启动(上架) //停止(下架)
- function btn_upline(tid, tnum, event) {
- event.stopPropagation();
- var ctitle = tnum === 1 ? '您确定要上架当前计划吗?' : '您确定要下架当前计划吗?';
- layer.confirm(ctitle, {
- icon: 7,
- btn: ['确定', '取消'] //按钮
- }, function() {
- $.ajax({
- type: "post",
- url: huayi.config.callcenter_url + "callcenterapi/api/autocallouttask/updateonline",
- dataType: 'json',
- data: {
- taskid: tid, //是 string 任务id
- state: tnum, //是 int 状态(传值0为下线,传1为上线)
- },
- async: true,
- success: function(data) {
- if(data.state == "success") {
- $('#outcryTable').bootstrapTable('refresh');
- var cmsg = tnum === 1 ? '当前计划上架成功' : '当前计划下架成功';
- layer.msg(cmsg);
- }
- }
- });
- });
- }
- //任务操作类型(1为启动,10为暂停,11为停止)
- function btn_oparate(tid, tnum, event) {
- event.stopPropagation();
- var ctitle = '';
- var cmsg = '';
- switch (tnum){
- case 1:
- ctitle = '请您确定已经导入外呼号码,否则启动后无法呼出号码!';
- cmsg = '当前计划启动成功!';
- break;
- case 10:
- ctitle = '您确定要暂停当前计划吗?';
- cmsg = '当前计划暂停成功!';
- break;
- case 11:
- ctitle = '您确定要停止当前计划吗?';
- cmsg = '当前计划停止成功!';
- break;
- default:
- break;
- }
- layer.confirm(ctitle, {
- icon: 7,
- btn: ['确定', '取消'] //按钮
- }, function() {
- $.ajax({
- type: "post",
- url: huayi.config.callcenter_url + "callcenterapi/api/autocall/precallope",
- dataType: 'json',
- data: {
- taskid: tid, //是 string 任务id
- type: tnum,//是 int 任务操作类型(1为启动,10为暂停,11为停止)
- },
- async: true,
- success: function(data) {
- if(data.state == "success") {
- $('#outcryTable').bootstrapTable('refresh');
- layer.msg(cmsg);
- }
- }
- });
- });
- }
- //外呼计划 未呼通号码重新执行
- function btn_repeat(tid, event) {
- event.stopPropagation();
- layer.confirm('您确定要重新执行当前计划下未呼通的号码吗?', {
- icon: 7,
- btn: ['是', '否'] //按钮
- }, function() {
- $.ajax({
- type: "post",
- url: huayi.config.callcenter_url + "callcenterapi/api/autocall/restart",
- dataType: 'json',
- data: {
- taskid: tid, //是 string 任务id
- },
- async: true,
- success: function(data) {
- layer.msg("未呼通号码重新执行成功!");
- $('#outcryTable').bootstrapTable('refresh');
- $('#phoneTable').bootstrapTable('refresh');
- }
- });
- });
- }
- //外呼号码列表
- function initPhoneTable(){
- //销毁表格
- $('#phoneTable').bootstrapTable('destroy');
- //初始化表格,动态从服务器加载数据
- $('#phoneTable').bootstrapTable({
- method: "get", //使用get请求到服务器获取数据
- url: huayi.config.callcenter_url + "callcenterapi/api/autocallouttask/gettellistbypage",
- contentType: "application/x-www-form-urlencoded",
- striped: true, //表格显示条纹
- pagination: true, //启动分页
- pageSize: 10, //每页显示的记录数
- pageNumber: 1, //当前第几页
- pageList: [10, 20, 50, 100], //记录数可选列表
- search: false, //是否启用查询
- showColumns: false, //显示下拉框勾选要显示的列
- showRefresh: false, //显示刷新按钮
- sidePagination: "server", //表示服务端请求
- //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
- //设置为limit可以获取limit, offset, search, sort, order
- queryParamsType: "undefined",
- queryParams: function queryParams(params) { //设置查询参数
- var param = {
- pageindex: params.pageNumber,//否 int 页码
- pagesize: params.pageSize,//否 int 条数
- taskid: TaskID,//否 string 任务id
- };
- return param;
- },
- onLoadSuccess: function() { //加载成功时执行
- //layer.msg("加载成功");
- //$('.tool_downs').authorizeOperateButton();
- },
- onLoadError: function() { //加载失败时执行
- //layer.msg("加载数据失败", { time: 1500, icon: 2 });
- }
- });
- }
- //格式化 外呼号码列表操作
- function formatterOperateR(val, row) {
- return '<ul class="tool_downs">'+
- '<li><a class="aBtn" authorize="yes" id="HY_deleteR_' + row.id + '" onclick="btn_deleteR(\'' + row.id + '\')">删除</a><li>' +
- '</ul>';
- }
- //批量删除外呼号码
- function btn_deleteRs(){
- var ids = $.map($('#phoneTable').bootstrapTable('getSelections'),
- function(row) {
- return row.id;
- });
-
- /*判断长度*/
- if(ids[0] === "phoneTable" || ids.length <= 0) {
- layer.confirm('没有可删除的选项?', {
- icon: 7,
- btn: ['确定'] //按钮
- });
- return;
- }
- btn_deleteR(ids);
- }
- //删除
- function btn_deleteR(delid) {
- if(TaskState > 0){
- layer.confirm('该计划已经启动不能再删除号码!', {
- icon: 7,
- btn: ['确定'] //按钮
- });
- return;
- }
- layer.confirm('您确定要删除当前外呼号码吗?', {
- icon: 7,
- btn: ['是', '否'] //按钮
- }, function() {
- /*发送请求*/
- $.ajax({
- type: "post",
- url: huayi.config.callcenter_url + "callcenterapi/api/autocallouttask/deletetel",
- dataType: 'json',
- data: {
- ids: delid, //是 string[] 任务标识id,可传数组或单条数据,例如:[“5aab859037c0a7745c6d5423”,”5aab859037c0a7745c6d5423”]
- },
- async: true,
- success: function(data) {
- layer.msg("删除成功");
- $('#phoneTable').bootstrapTable('refresh');
- }
- });
- });
- }
- /**
- * 刷新 数据
- * repairPlatformTime 刷新时间的间隔;
- *
- * */
- function refreshDatas(repairPlatformTime) {
- var objTime = {
- init: 0,
- time: function() {
- if(top.$("iframe:visible").contents().find('.layui-layer').length === 0) {
- objTime.init += 1000;
- //console.log(objTime.init);
- //当页面没有click、keydown、mousemove、mousewheel 并且没有layer 弹窗时;每间隔 huayi.config.repairPlatformTime 刷新数据;
- if(objTime.init == repairPlatformTime) {
- initOutcryTable();
- $("#phoneLists").hide();
- objTime.init = 0;
- }
- }
- },
- eventFun: function() {
- clearInterval(testUser);
- objTime.init = 0;
- testUser = setInterval(objTime.time, 1000);
- }
- }
- var testUser = setInterval(objTime.time, 1000);
- var body = document.querySelector('html');
- body.addEventListener("click", objTime.eventFun);
- body.addEventListener("keydown", objTime.eventFun);
- body.addEventListener("mousemove", objTime.eventFun);
- body.addEventListener("mousewheel", objTime.eventFun);
- }
|