三元财务UI

AddWorkOrder.js 9.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282
  1. /**
  2. * 新增或编辑工单
  3. * */
  4. //通话记录跳转过来的
  5. var callId = helper.request.queryString("cid");
  6. $(function() {
  7. //通话记录跳转过来的
  8. var cphone = helper.request.queryString("cphone");
  9. var cCustomerName = decodeURIComponent(helper.request.queryString("cCustomerName"));
  10. if(cphone) {
  11. $('#order_tel').val(cphone); //否 string 联系电话
  12. }
  13. if(cCustomerName) {
  14. $('#order_name').val(cCustomerName); //是 string 姓名/联系人
  15. }
  16. autosize($('textarea'));
  17. //获取工单来源
  18. helper.getDropList.getlistDropByDic($('#order_source'), 'GDLY').then(function() {
  19. $('#order_source').selectpicker('val', '468').trigger('change');
  20. });
  21. //获取业务办理
  22. helper.getDropList.getlistDropByDic($('#order_handle'), 'YWLX');
  23. //获取工单类型
  24. helper.getDropList.getOrderRadios($('#order_type'), 'GDLX', 'inlineRadioOptions').then(function() {
  25. $('#order_type').find('input[type="radio"]').on('change', function() {
  26. if($(this).val() === "107") { // 业务办理
  27. $('#order_handles').show();
  28. }else{
  29. $('#order_handles').hide();
  30. }
  31. });
  32. });
  33. //工单有效性
  34. $('#order_iseffective').find('input[type="radio"]').on('change', function() {
  35. //是否有效工单项(0有效,1无效)
  36. if($(this).val() === "1") { //无效
  37. $('.order_note').show();
  38. $('#order_isover_box').hide();
  39. $('#order_isover').find('input[type="radio"][value="1"]').prop('checked', true).trigger('change');
  40. } else {
  41. $('.order_note').hide();
  42. $('#order_isover_box').show();
  43. $('#order_isover').find('input[type="radio"][value="0"]').prop('checked', true).trigger('change');
  44. }
  45. });
  46. //获取接收部门
  47. getDepts('reginsTreeView', 'order_transfer_dept');
  48. // 立即处理
  49. $('#order_isover').find('input[type="radio"]').on('change', function(){
  50. if($(this).val() === '1'){
  51. $('#order_transfer_depts').hide();
  52. }else{
  53. $('#order_transfer_depts').show();
  54. }
  55. });
  56. //新增工单创建
  57. $('#save_order').on('click', orderSave);
  58. });
  59. //新建工单 保存
  60. function orderSave() {
  61. if(!regexs.userNameReg.test($.trim($('#order_name').val()))) {
  62. layer.confirm('请输入有效的客户姓名(2-20位汉字可以包含·•)!', {
  63. icon: 2,
  64. btn: ['确定']
  65. });
  66. return;
  67. }
  68. if(!regexs.phone.test($.trim($('#order_tel').val()))) {
  69. layer.confirm('请输入正确的联系电话!', {
  70. icon: 2,
  71. btn: ['确定']
  72. });
  73. return;
  74. }
  75. if(!$.trim($('#order_company').val())) {
  76. layer.confirm('请输入公司名称!', {
  77. icon: 2,
  78. btn: ['确定']
  79. });
  80. return;
  81. }
  82. if($('#order_iseffective').find('input[type="radio"]:checked').val() === '1') {
  83. if(!$.trim($('#order_note').val())) {
  84. layer.confirm('请输入无效原因!', {
  85. icon: 2,
  86. btn: ['确定']
  87. });
  88. return;
  89. }
  90. }
  91. if($.trim($('#order_transfer_dept').val()) && $('#order_receiveUser').val() === "0"){
  92. layer.confirm('请选择接收人!', {
  93. icon: 2,
  94. btn: ['确定']
  95. });
  96. return;
  97. }
  98. var order_handle = $('#order_handles').is(':visible') ? $('#order_handle').val() : 0,
  99. order_transfer_dept = $('#order_transfer_dept').attr('data-id'),//int 接收部门
  100. order_receiveUser = $('#order_receiveUser').val();//int 接收人
  101. if($('#order_isover').find('input[type="radio"]:checked').val() === '1'){
  102. order_transfer_dept = 0;
  103. order_receiveUser = 0;
  104. }
  105. $.post(huayi.config.callcenter_url + 'CallInScreen/AddWorkOrder', {
  106. source: $('#order_source').val(),//int 工单来源-下拉,数据来源:数据字典GDLY;
  107. gdlx: $('#order_type').find('input[type="radio"]:checked').val(),//int 工单类型-单选,数据来源:数据字典GDLX;
  108. ywlx: order_handle,//int 业务办理-下拉,工单类型选择“业务办理”时数据来源:数据字典GDLX,工单类型选择“投诉”时数据是投诉,传值ID与工单类型一致
  109. // customerid: ,//int 客户id; -此参数可根据来电弹屏时的客户绑定
  110. callid: callId,//string; -此参数可根据来电弹屏时的客户绑定
  111. callCustomer: $('#order_name').val(),//string 客户姓名; -此参数可根据来电弹屏时的客户绑定
  112. tel: $('#order_tel').val(),//string 联系电话 ; -此参数可根据来电弹屏时的客户绑定
  113. company: $('#order_company').val(),// 公司名称
  114. fkcont: $('#order_reception').val(),//string 反馈内容;
  115. iseffective: $('#order_iseffective').find('input[type="radio"]:checked').val(),//int 是否有效工单项(0有效,1无效);
  116. note: $('#order_note').val(),//string 无效工单必填备注;
  117. clbm: order_transfer_dept,//int 接收部门;
  118. clid: order_receiveUser,//int 接收人;
  119. isover: $('#order_isover').find('input[type="radio"]:checked').val(), //int 是否立即处理(默认为0,立即处理为1,立即处理的工单无法指派接收人和接受部门)
  120. token: $.cookie("token")
  121. }, function(result) {
  122. result = $.parseJSON(result);
  123. if(result.state.toLowerCase() == "success") {
  124. cleanOrderForm();
  125. top.workcount();
  126. layer.msg("保存成功");
  127. }
  128. })
  129. }
  130. //清空表单
  131. function cleanOrderForm() {
  132. $('#order_form').find('input.form-control').val('');
  133. $('#order_form').find('textarea.form-control').val('');
  134. $('#order_form').find('select.form-control').val('0');
  135. $('#order_type').find("input[type='radio'][value='107']").prop("checked", true).trigger('change');
  136. $('#order_iseffective').find("input[type='radio'][value='0']").prop("checked", true).trigger('change');
  137. $('#order_transfer_dept').val('').trigger('keyup');
  138. $('#order_transfer_dept').attr('placeholder', '请选择部门');
  139. $('#order_transfer_dept').attr('data-id', 0);
  140. $('#order_receiveUser').selectpicker('destroy');
  141. $('#order_receiveUser').empty();
  142. $('#order_receiveUser').append('<option value="0">请选择接收人</option>');
  143. $('#order_receiveUser').selectpicker('refresh');
  144. $('#order_form').find('.selectpicker.form-control').selectpicker('val', '0').trigger('change');
  145. $('#order_source').selectpicker('val', '468').trigger('change');
  146. $('#order_isover').find("input[type='radio'][value='0']").prop("checked", true);
  147. }
  148. /**
  149. * 获取接收部门 获取投诉类型
  150. * el1, 树形结构元素id名 reginsTreeView
  151. * el2, 搜索框元素id名 order_transfer_dept
  152. * */
  153. function getDepts(el1, el2) {
  154. //初始化 样式
  155. $('#' + el2).on('focus click', function() {
  156. $('#' + el1).removeClass('hidden').addClass('show');
  157. });
  158. $('#' + el2).on('keyup', function() {
  159. if($(this).val() == '') {
  160. $('#' + el1).treeview('uncheckAll', {
  161. silent: true
  162. });
  163. $(this).attr('data-id', '0');
  164. }
  165. });
  166. $('#' + el2 + ' .caret').on('click', function() {
  167. $('#' + el1).removeClass('hidden').addClass('show');
  168. });
  169. $('#' + el1).mouseleave(function() {
  170. $(this).removeClass('show').addClass('hidden');
  171. });
  172. $.getJSON(huayi.config.callcenter_url + 'Department/GetDeptList', {
  173. token: $.cookie("token")
  174. }, function(result) {
  175. if(result.state.toLowerCase() == "success") {
  176. var defaultDatas = helper.methods.buildTree(result.data);
  177. var sortChildrenArr = helper.methods.objToArray(defaultDatas[0].children);
  178. sortChildrenArr.sort(helper.methods.compare('sort'));
  179. var sortChildrenObj = helper.methods.arrayToObj(sortChildrenArr);
  180. defaultDatas[0].children = sortChildrenObj;
  181. if(defaultDatas) {
  182. var $sTree = $('#' + el1).treeview({
  183. color: "#1ab394",
  184. selectedBackColor: '#1ab394',
  185. expandIcon: 'glyphicon glyphicon-chevron-right',
  186. collapseIcon: 'glyphicon glyphicon-chevron-down',
  187. nodeIcon: 'fa fa-folder-o',
  188. //selectedIcon: "glyphicon glyphicon-stop",
  189. //icon: "glyphicon glyphicon-stop",
  190. //emptyIcon: 'glyphicon',
  191. //showCheckbox: true,
  192. selectable: true,
  193. state: {
  194. selected: true
  195. },
  196. data: defaultDatas,
  197. onNodeSelected: function(event, node) {
  198. $sTree.treeview('clearSearch');
  199. $('#' + el2).val(node.text);
  200. $('#' + el2).attr('data-id', node.id);
  201. $('#' + el1).removeClass('show').addClass('hidden');
  202. //获取接收人员
  203. getReceiveUser($('#order_receiveUser'), node.id);
  204. },
  205. onNodeUnselected: function(event, node) {
  206. $('#' + el2).attr('data-id', 0);
  207. $('#' + el2).attr('placeholder', '请选择接收部门');
  208. $('#order_receiveUser').empty();
  209. $('#order_receiveUser').append('<option value="0">请选择接收人</option>');
  210. $('#order_receiveUser').selectpicker('refresh');
  211. }
  212. });
  213. // $('#' + el1).treeview('collapseAll', {
  214. // silent: true
  215. // });
  216. $('#' + el1).treeview('expandAll', { levels: 2, silent: true });
  217. var findSNodes = function() {
  218. return $sTree.treeview('search', [$('#' + el2).val(), {
  219. ignoreCase: false,
  220. exactMatch: false
  221. }]);
  222. };
  223. $('#' + el2).on('keyup focus', function(e) {
  224. var selectableNodes = findSNodes();
  225. //var m = $('#' + el1).treeview('getParent', selectableNodes);
  226. //$('#' + el1).treeview('selectNode', [ m, { silent: true } ]);
  227. });
  228. }
  229. }
  230. })
  231. }
  232. //获取接收人员
  233. function getReceiveUser(obj, deptid) {
  234. $.ajax({
  235. url: huayi.config.callcenter_url + 'UserAccount/GetDeptUserList',
  236. type: 'get',
  237. data: {
  238. deptid: deptid,
  239. token: $.cookie("token")
  240. },
  241. dataType: "json",
  242. async: true,
  243. success: function(res) {
  244. obj.empty();
  245. if(res.state.toLowerCase() === "success") {
  246. res = res.data;
  247. if(res && res.length > 0) {
  248. obj.append('<option value="0">请选择接收人</option>');
  249. res.forEach(function(v, i) {
  250. obj.append('<option value="' + v.F_UserId + '" data-code="'+ v.F_UserCode +'">' + v.F_UserName + '('+ v.F_UserCode +')</option>');
  251. });
  252. obj.selectpicker('refresh');
  253. }
  254. }
  255. },
  256. });
  257. }