/** * 添加或修改班别 * */ var resRoleDatas = []; //角色岗位的返回值 $(function() { autosize($('textarea')); init(); }); function init() { var edit_id = helper.request.queryString("edit_id"); //项目名称 岗位(角色)数据 $.when(helper.getDropList.getProlistDrop($('#pro_title')), getRoles($('#roleList'))) .then(function() { if (edit_id) { getDetail(); } $('#save_btns').on('click', btn_save); }); laydate.render({ elem: '#ban_times', range: '~', type: 'time', theme: '#249fea', }); } //获取班别信息 function getDetail() { var edit_id = helper.request.queryString("edit_id"); $.getJSON(huayi.config.callcenter_url + "signtokenapi/api/ClassGroup/getdetailes", { id: edit_id, }, function(data) { if (data.state == "success") { var res = data.data; $('#pro_title').selectpicker('val', res.projectid); // 是 string 项目名称id $('#ban_name').val(res.name); // 是 string 名称 $('#ban_code').val(res.code); // 是 string 代码 $('#ban_times').val(res.starttime + ' ~ ' + res.endtime); // 是 string 开始时间 是 string 结束时间 $('#iswork').find('input[name="iswork_flag"][value="' + res.iswork + '"]').prop("checked", "checked"); //否 bool 是否值班时间段(是值班true) var roleList = res.roleList; var roleCheckboxs = $('#roleList').find('input[type="checkbox"]'); if (roleList && roleList.length > 0) { $.each(roleList, function(j, v) { for (var i = 0; i < roleCheckboxs.length; i++) { if (v.roleid === $(roleCheckboxs[i]).val()) { $(roleCheckboxs[i]).prop('checked', 'checked'); break; } } }); } $('#remark').val(res.remark); // 备注 } }); } //保存班别信息 function btn_save() { var wURL, loadIndex; var edit_id = helper.request.queryString("edit_id"); if (edit_id) { wURL = "signtokenapi/api/ClassGroup/update"; } else { wURL = "signtokenapi/api/ClassGroup/add"; } if (!$.trim($('#pro_title').val())) { layer.confirm('项目名称不允许为空!', { icon: 2, btn: ['确定'] //按钮 }); return; } if (!$.trim($('#ban_name').val())) { layer.confirm('名称不允许为空!', { icon: 2, btn: ['确定'] //按钮 }); return; } if (!$.trim($('#ban_code').val())) { layer.confirm('代码不允许为空!', { icon: 2, btn: ['确定'] //按钮 }); return; } if (!$.trim($('#ban_times').val())) { layer.confirm('起止时间不允许为空!', { icon: 2, btn: ['确定'] //按钮 }); return; } var roleLists = getCheckboxData($('#roleList')); if (roleLists.length === 0) { layer.confirm('请选择岗位(角色)!', { icon: 2, btn: ['确定'] //按钮 }); return; } $.ajax({ type: 'post', url: huayi.config.callcenter_url + wURL, dataType: 'json', async: true, beforeSend: function() { //触发ajax请求开始时执行 $('#save_btns').attr("disabled", true); $('#save_btns').text('保存中...'); loadIndex = layer.load(); }, data: { id: edit_id, // 否 string id projectid: $('#pro_title').val(), // 是 string 项目名称id name: $('#ban_name').val(), // 是 string 名称 code: $('#ban_code').val(), // 是 string 代码 starttime: $('#ban_times').val() && $('#ban_times').val().split('~')[0], // 是 string 开始时间 endtime: $('#ban_times').val() && $('#ban_times').val().split('~')[1], // 是 string 结束时间 roleList: roleLists, // 是 string List remark: helper.filter.delHtmlTag($('#remark').val()), // 否 string 备注 iswork: $('#iswork').find('input[name="iswork_flag"]:checked').val() //否 bool 是否值班时间段(是值班true) }, success: function(data) { layer.close(loadIndex); if (data.state === "success") { var index = parent.layer.getFrameIndex(window.name); parent.layer.close(index); parent.$('#table_all').bootstrapTable('refresh'); parent.layer.msg("保存成功"); } else { $('#save_btns').attr("disabled", false); $('#save_btns').text('保存'); } }, error: function(textStatus) { layer.close(loadIndex); layer.confirm('网络繁忙,请稍后再试...', { icon: 7, closeBtn: 0, btn: ['确定'] //按钮 }); $('#save_btns').attr("disabled", false); $('#save_btns').text('保存'); }, complete: function(XMLHttpRequest, textStatus) { layer.close(loadIndex); if (textStatus == 'timeout') { var xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp"); xmlhttp.abort(); layer.confirm('网络超时,请稍后再试...', { icon: 7, closeBtn: 0, btn: ['确定'] //按钮 }); } $('#save_btns').attr("disabled", false); $('#save_btns').text('保存'); }, }); } //岗位(角色) function getRoles(el) { var dtd = $.Deferred(); //在函数内部,新建一个Deferred对象 $.getJSON(huayi.config.callcenter_url + "configurationapi/api/RoleInfo/getlistdrop", function(data) { if (data.state.toLowerCase() === "success") { getRoleByDic().then(function(res) { var roles = data.data; el.empty(); resRoleDatas = []; $.each(res, function(j, v){ for (var i = roles.length - 1; i >= 0; i--) { if(roles[i].role_code === v.name){ resRoleDatas.push(roles[i]); break; } } }); for (var i = 0; i < resRoleDatas.length; i++) { var h = ''; $(el).prepend(h); } }); dtd.resolve(); // 改变Deferred对象的执行状态 } }) return dtd.promise(); // 返回promise对象 } //获取岗位(角色)的数据 function getCheckboxData(el) { var banData = []; var checkEl = el.find(':checkbox:checked'); if (checkEl.length > 0) { for (var i = 0; i < checkEl.length; i++) { for (var j = 0; j < resRoleDatas.length; j++) { if ($(checkEl[i]).val() === resRoleDatas[j].id) { banData.push({ roleid: resRoleDatas[j].id, rolecode: resRoleDatas[j].role_code, rolename: resRoleDatas[j].role_name }); break; } } } } return banData; } //获取字典中 班次角色 function getRoleByDic() { var dtd = $.Deferred(); //在函数内部,新建一个Deferred对象 $.ajax({ type: "get", url: huayi.config.callcenter_url + "configurationapi/api/dictionary/getdicvaluelistdrop", dataType: 'json', async: true, data: { code: 'SSY_BCJS', }, success: function(data) { var res = data.data; dtd.resolve(res); // 改变Deferred对象的执行状态 } }); return dtd.promise(); // 返回promise对象 };