Sin descripción

addOrEditClassBan.js 6.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. /**
  2. * 添加或修改班别
  3. * */
  4. var resRoleDatas = []; //角色岗位的返回值
  5. $(function() {
  6. autosize($('textarea'));
  7. init();
  8. });
  9. function init() {
  10. var edit_id = helper.request.queryString("edit_id");
  11. //项目名称 岗位(角色)数据
  12. $.when(helper.getDropList.getProlistDrop($('#pro_title')),
  13. getRoles($('#roleList')))
  14. .then(function() {
  15. if (edit_id) {
  16. getDetail();
  17. }
  18. $('#save_btns').on('click', btn_save);
  19. });
  20. laydate.render({
  21. elem: '#ban_times',
  22. range: '~',
  23. type: 'time',
  24. theme: '#249fea',
  25. });
  26. }
  27. //获取班别信息
  28. function getDetail() {
  29. var edit_id = helper.request.queryString("edit_id");
  30. $.getJSON(huayi.config.callcenter_url + "signtokenapi/api/ClassGroup/getdetailes", {
  31. id: edit_id,
  32. }, function(data) {
  33. if (data.state == "success") {
  34. var res = data.data;
  35. $('#pro_title').selectpicker('val', res.projectid); // 是 string 项目名称id
  36. $('#ban_name').val(res.name); // 是 string 名称
  37. $('#ban_code').val(res.code); // 是 string 代码
  38. $('#ban_times').val(res.starttime + ' ~ ' + res.endtime); // 是 string 开始时间 是 string 结束时间
  39. $('#iswork').find('input[name="iswork_flag"][value="' + res.iswork + '"]').prop("checked", "checked"); //否 bool 是否值班时间段(是值班true)
  40. var roleList = res.roleList;
  41. var roleCheckboxs = $('#roleList').find('input[type="checkbox"]');
  42. if (roleList && roleList.length > 0) {
  43. $.each(roleList, function(j, v) {
  44. for (var i = 0; i < roleCheckboxs.length; i++) {
  45. if (v.roleid === $(roleCheckboxs[i]).val()) {
  46. $(roleCheckboxs[i]).prop('checked', 'checked');
  47. break;
  48. }
  49. }
  50. });
  51. }
  52. $('#remark').val(res.remark); // 备注
  53. }
  54. });
  55. }
  56. //保存班别信息
  57. function btn_save() {
  58. var wURL, loadIndex;
  59. var edit_id = helper.request.queryString("edit_id");
  60. if (edit_id) {
  61. wURL = "signtokenapi/api/ClassGroup/update";
  62. } else {
  63. wURL = "signtokenapi/api/ClassGroup/add";
  64. }
  65. if (!$.trim($('#pro_title').val())) {
  66. layer.confirm('项目名称不允许为空!', {
  67. icon: 2,
  68. btn: ['确定'] //按钮
  69. });
  70. return;
  71. }
  72. if (!$.trim($('#ban_name').val())) {
  73. layer.confirm('名称不允许为空!', {
  74. icon: 2,
  75. btn: ['确定'] //按钮
  76. });
  77. return;
  78. }
  79. if (!$.trim($('#ban_code').val())) {
  80. layer.confirm('代码不允许为空!', {
  81. icon: 2,
  82. btn: ['确定'] //按钮
  83. });
  84. return;
  85. }
  86. if (!$.trim($('#ban_times').val())) {
  87. layer.confirm('起止时间不允许为空!', {
  88. icon: 2,
  89. btn: ['确定'] //按钮
  90. });
  91. return;
  92. }
  93. var roleLists = getCheckboxData($('#roleList'));
  94. if (roleLists.length === 0) {
  95. layer.confirm('请选择岗位(角色)!', {
  96. icon: 2,
  97. btn: ['确定'] //按钮
  98. });
  99. return;
  100. }
  101. $.ajax({
  102. type: 'post',
  103. url: huayi.config.callcenter_url + wURL,
  104. dataType: 'json',
  105. async: true,
  106. beforeSend: function() { //触发ajax请求开始时执行
  107. $('#save_btns').attr("disabled", true);
  108. $('#save_btns').text('保存中...');
  109. loadIndex = layer.load();
  110. },
  111. data: {
  112. id: edit_id, // 否 string id
  113. projectid: $('#pro_title').val(), // 是 string 项目名称id
  114. name: $('#ban_name').val(), // 是 string 名称
  115. code: $('#ban_code').val(), // 是 string 代码
  116. starttime: $('#ban_times').val() && $('#ban_times').val().split('~')[0], // 是 string 开始时间
  117. endtime: $('#ban_times').val() && $('#ban_times').val().split('~')[1], // 是 string 结束时间
  118. roleList: roleLists, // 是 string List<ClassGroupRoleList>
  119. remark: helper.filter.delHtmlTag($('#remark').val()), // 否 string 备注
  120. iswork: $('#iswork').find('input[name="iswork_flag"]:checked').val() //否 bool 是否值班时间段(是值班true)
  121. },
  122. success: function(data) {
  123. layer.close(loadIndex);
  124. if (data.state === "success") {
  125. var index = parent.layer.getFrameIndex(window.name);
  126. parent.layer.close(index);
  127. parent.$('#table_all').bootstrapTable('refresh');
  128. parent.layer.msg("保存成功");
  129. } else {
  130. $('#save_btns').attr("disabled", false);
  131. $('#save_btns').text('保存');
  132. }
  133. },
  134. error: function(textStatus) {
  135. layer.close(loadIndex);
  136. layer.confirm('网络繁忙,请稍后再试...', {
  137. icon: 7,
  138. closeBtn: 0,
  139. btn: ['确定'] //按钮
  140. });
  141. $('#save_btns').attr("disabled", false);
  142. $('#save_btns').text('保存');
  143. },
  144. complete: function(XMLHttpRequest, textStatus) {
  145. layer.close(loadIndex);
  146. if (textStatus == 'timeout') {
  147. var xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp");
  148. xmlhttp.abort();
  149. layer.confirm('网络超时,请稍后再试...', {
  150. icon: 7,
  151. closeBtn: 0,
  152. btn: ['确定'] //按钮
  153. });
  154. }
  155. $('#save_btns').attr("disabled", false);
  156. $('#save_btns').text('保存');
  157. },
  158. });
  159. }
  160. //岗位(角色)
  161. function getRoles(el) {
  162. var dtd = $.Deferred(); //在函数内部,新建一个Deferred对象
  163. $.getJSON(huayi.config.callcenter_url + "configurationapi/api/RoleInfo/getlistdrop", function(data) {
  164. if (data.state.toLowerCase() === "success") {
  165. getRoleByDic().then(function(res) {
  166. var roles = data.data;
  167. el.empty();
  168. resRoleDatas = [];
  169. $.each(res, function(j, v){
  170. for (var i = roles.length - 1; i >= 0; i--) {
  171. if(roles[i].role_code === v.name){
  172. resRoleDatas.push(roles[i]);
  173. break;
  174. }
  175. }
  176. });
  177. for (var i = 0; i < resRoleDatas.length; i++) {
  178. var h = '<label class="checkbox-inline">' +
  179. '<input type="checkbox" value="' + resRoleDatas[i].id + '" >' + resRoleDatas[i].role_name +
  180. '</label>';
  181. $(el).prepend(h);
  182. }
  183. });
  184. dtd.resolve(); // 改变Deferred对象的执行状态
  185. }
  186. })
  187. return dtd.promise(); // 返回promise对象
  188. }
  189. //获取岗位(角色)的数据
  190. function getCheckboxData(el) {
  191. var banData = [];
  192. var checkEl = el.find(':checkbox:checked');
  193. if (checkEl.length > 0) {
  194. for (var i = 0; i < checkEl.length; i++) {
  195. for (var j = 0; j < resRoleDatas.length; j++) {
  196. if ($(checkEl[i]).val() === resRoleDatas[j].id) {
  197. banData.push({
  198. roleid: resRoleDatas[j].id,
  199. rolecode: resRoleDatas[j].role_code,
  200. rolename: resRoleDatas[j].role_name
  201. });
  202. break;
  203. }
  204. }
  205. }
  206. }
  207. return banData;
  208. }
  209. //获取字典中 班次角色
  210. function getRoleByDic() {
  211. var dtd = $.Deferred(); //在函数内部,新建一个Deferred对象
  212. $.ajax({
  213. type: "get",
  214. url: huayi.config.callcenter_url + "configurationapi/api/dictionary/getdicvaluelistdrop",
  215. dataType: 'json',
  216. async: true,
  217. data: {
  218. code: 'SSY_BCJS',
  219. },
  220. success: function(data) {
  221. var res = data.data;
  222. dtd.resolve(res); // 改变Deferred对象的执行状态
  223. }
  224. });
  225. return dtd.promise(); // 返回promise对象
  226. };