addTask.js 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. 'use strict';
  2. $(function(){
  3. // 默认需要回复
  4. $('input[name="type"]').trigger('click');
  5. // 输入框右侧图标点击使输入框获得焦点
  6. $('.weui_cell_input .weui_cell_ft').on('click', function(){
  7. $('input', $(this).parent()).trigger('focus');
  8. });
  9. // 已选择指定人的容器
  10. var checkedUsers = [];
  11. // Loading框,封装了show 和 hide 方法
  12. var Loading = function(){
  13. var loading = $('#loadingToast');
  14. return {
  15. show: function(){loading.css('display', 'block')},
  16. hide: function(){loading.css('display', 'none')}
  17. };
  18. }();
  19. // dialog对话框
  20. var dialog = function(title, content, footer, fn){
  21. $('#dialog .weui_dialog .weui_dialog_title').text(title);
  22. $('#dialog .weui_dialog .weui_dialog_bd').text(content);
  23. if(footer) {// 如果传了按钮字符,设置按钮字符
  24. $('#dialog .weui_dialog .primary').text(footer);
  25. }
  26. $('#dialog .weui_dialog .weui_dialog_ft').on('click', function() {
  27. $('#dialog').css('display', 'none');
  28. if(fn) {// 如果传了回调函数,调用回调函数
  29. fn.call(null);
  30. }
  31. });
  32. $('#dialog').css('display', 'block');
  33. };
  34. // 检验用户是否已经被选中,未被选中返回-1,选中返回index
  35. function checked(em) {
  36. var r = -1;
  37. $.each(checkedUsers, function(k, v) {
  38. if(v.em_code == em.em_code) {
  39. r = k;
  40. return r;
  41. }
  42. });
  43. return r;
  44. };
  45. // 打开指定人的页面
  46. function openUserTab(){
  47. $('#userTab').addClass('open');
  48. };
  49. // 关闭指定人的页面
  50. function closeUserTab() {
  51. $('#userTab').removeClass('open');
  52. };
  53. $('.openUserTab').on('click', openUserTab);
  54. $('.closeUserTab').on('click', closeUserTab);
  55. // 将用户转化为指定人选中Lebel
  56. function userLabel(em) {
  57. var em_position = em.em_position ? '[' + em.em_position + ']': '';
  58. var em_name = em.em_name;
  59. var em_code = em.em_code;
  60. var em_checked = checked(em);// 是否已经选择了
  61. var html = '<label class="weui_cell weui_check_label userLabel" for="' + em_code + '">' +
  62. '<div class="weui_cell_bd weui_cell_primary">' +
  63. '<p>' +
  64. '<i class="fa fa-user"></i> <span class="em_name">' + em_name + '</span> ' + em_position +
  65. '</p>' +
  66. '</div>' +
  67. '<div class="weui_cell_ft">' +
  68. '<input type="checkbox" class="weui_check" name="' + em_code + '" id="' + em_code + '" ' + (em_checked != -1 ? 'checked="checked"': '') +'>' +
  69. '<i class="weui_icon_checked"></i>' +
  70. '</div>' +
  71. '</label>';
  72. return html;
  73. };
  74. // 将已选择的人转化为展示的按钮
  75. function addUserButton(em) {
  76. var html = '<button class="weui_btn weui_btn_mini weui_btn_warn" title="' + em.em_code + '">' + em.em_name + ' <i class="fa fa-close"></i></button> ';
  77. $('.checkedUsers .weui_cell_bd').append(html);
  78. // 绑定点击按钮删除的事件
  79. $('button[title="' + em.em_code + '"]').on('click', function(){
  80. $('#searchResult input[name="' + $(this).attr('title') + '"]').trigger('click');
  81. });
  82. };
  83. // 点击一个用户选择,添加或删除指定人
  84. function checkUser(em){
  85. var i = checked(em);
  86. if(i != -1) {// 已选择的,去掉
  87. checkedUsers.splice(i, 1);
  88. $('.checkedUsers .weui_cell_bd button[title="' + em.em_code + '"]').remove()
  89. } else {// 未选择的,添加
  90. checkedUsers.push(em);
  91. addUserButton(em);
  92. }
  93. $('.checkedSize').text(checkedUsers.length);
  94. };
  95. // 根据关键词查询用户结果
  96. function search() {
  97. var keyword = $('#search_input').val();
  98. if(!keyword) {// 没有输入关键词
  99. dialog('提示', '请先输入指定人姓名关键词搜索');
  100. return;
  101. }
  102. Loading.show();
  103. try {
  104. $.ajax({
  105. url: 'hr/employee/getEmployees.action',
  106. type: 'POST',
  107. data: {condition: "em_name like '%" + keyword + "%' and nvl(em_class,' ')<>'离职'"},
  108. success: function(data, status) {
  109. if(data.success) {
  110. var html = '';
  111. $.each(data.employees, function(k, v){
  112. html += userLabel(v);// 增加一个指定人选中项
  113. });
  114. $('#searchResult .weui_cells_checkbox').html(html);
  115. $('#searchResult .weui_cells_title').text('共找到' + data.employees.length + '个可选的指定人');
  116. // 绑定点击列表添加到指定人的事件
  117. $('.userLabel input').on('change', function(e){
  118. var em_name = $('.em_name', $(this).parent().parent()).text();// 用户编号
  119. var em_code = $(this).attr('name');// 用户名
  120. checkUser({em_code: em_code, em_name: em_name});// 改变已选择的人
  121. });
  122. }
  123. Loading.hide();
  124. }
  125. });
  126. } catch(error) {
  127. Loading.hide();
  128. document.write(error.name + ' | ' + error.message);
  129. }
  130. };
  131. // 成功提示
  132. function showSuccess(form) {
  133. $('#successPage .msg_title').text(form.name);
  134. $('#successPage .msg_startdate').text(form.startdate);
  135. $('#successPage .msg_enddate').text(form.enddate);
  136. $('#successPage .msg_resourcename').text(form.resourcename);
  137. if(form.type) {
  138. $('#successPage .msg_type').text('需要');
  139. } else {
  140. $('#successPage .msg_type').text('不需要');
  141. }
  142. $('#successPage').css('display', 'block');
  143. }
  144. // 搜索框图标点击事件
  145. $('#search_icon').on('click' , search);
  146. // 确定按钮事件
  147. $('#commit').on('click', function(){
  148. var form = {
  149. name: $('input[name="name"]').val(),
  150. startdate: $('input[name="startdate"]').val().replace('T', ' ').substring(0, 16) + ':00',
  151. enddate: $('input[name="enddate"]').val().replace('T', ' ').substring(0, 16) + ':00',
  152. description: $('textarea[name="description"]').val()
  153. };
  154. // 是否需要回复
  155. if($('input[name="type"]').attr('checked')) {
  156. form.type = 1;
  157. } else {
  158. form.type = 0;
  159. }
  160. // 处理人
  161. form.resourcename = '';
  162. $.each(checkedUsers, function(k, v){
  163. if(form.resourcename) form.resourcename += ',';
  164. form.resourcename += v.em_name;
  165. });
  166. if(!form.name) {
  167. dialog('提示', '任务名称未输入');
  168. return;
  169. }
  170. if(form.startdate.length != 19) {
  171. dialog('提示', '开始日期未输入');
  172. return;
  173. }
  174. if(form.enddate.length != 19) {
  175. dialog('提示', '结束日期未输入');
  176. return;
  177. }
  178. if(!form.resourcename) {
  179. dialog('提示', '您还未指定任务处理人');
  180. return;
  181. }
  182. if(!form.description) {
  183. dialog('提示', '任务描述未输入');
  184. return;
  185. }
  186. Loading.show();// 显示加载框
  187. // 提交请求
  188. $.ajax({
  189. url: 'plm/task/addbilltask.action',
  190. type: 'POST',
  191. data: {formStore: JSON.stringify(form)},
  192. success: function(data){
  193. Loading.hide();// 关闭加载框
  194. showSuccess(form);
  195. },
  196. error: function(data){
  197. Loading.hide();// 关闭加载框
  198. console.log(data);
  199. dialog('系统错误', '任务添加失败,请联系系统管理员');
  200. }
  201. });
  202. });
  203. });