安图前端代码

WorkOrder.js 15KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589
  1. $(document).ready(function() {
  2. initTable();
  3. initTables();
  4. $(".ss").click(function() {
  5. stype = 1;
  6. initTable();
  7. initTables();
  8. })
  9. /*高级查询*/
  10. $(".gjss").click(function() {
  11. $(".t-shade").addClass("cx");
  12. $(".gjsu").addClass("cx");
  13. });
  14. $("#gjss").click(function() {
  15. stype = 2;
  16. initTable();
  17. initTables();
  18. $(".t-shade").removeClass("cx");
  19. $(".gjsu").removeClass("cx");
  20. })
  21. $(".setwin").click(function() {
  22. $(".t-shade").removeClass("cx");
  23. $(".gjsu").removeClass("cx");
  24. $(".cbgd").removeClass("cx");
  25. })
  26. //详情
  27. $(".ckxq ul li").click(function() {
  28. $(this).addClass("Active").siblings().removeClass("Active");
  29. var i = $(this).index();
  30. $(".gdxq").hide();
  31. $(".gdxq").eq(i).show();
  32. if(i > 0) {
  33. cljl(i);
  34. }
  35. });
  36. $(".Closed").click(function() {
  37. $(".ckxq").addClass("Hidens");
  38. });
  39. /*tree下拉框效果*/
  40. $(".inpBox .tree").click(function() {
  41. if($(this).parent().find(".addTree").is(":hidden")) {
  42. $(this).parent().find(".addTree").show();
  43. } else {
  44. $(this).parent().find(".addTree").hide();
  45. }
  46. });
  47. /*普通下拉框效果*/
  48. $(".inpBox .select").click(function() {
  49. if($(this).parent().find(".xl_common").is(":hidden")) {
  50. $(this).parent().find(".xl_common").show();
  51. } else {
  52. $(this).parent().find(".xl_common").hide();
  53. }
  54. });
  55. $(".xl").click(function() {
  56. if($(this).parent().find(".addTree").is(":hidden")) {
  57. $(this).parent().find(".addTree").show();
  58. } else {
  59. $(this).parent().find(".addTree").hide();
  60. }
  61. if($(this).parent().find(".xl_common").is(":hidden")) {
  62. $(this).parent().find(".xl_common").show();
  63. } else {
  64. $(this).parent().find(".xl_common").hide();
  65. }
  66. });
  67. $(".inpBox").mouseleave(function() {
  68. $(this).children(".addTree").hide();
  69. $(this).children(".xl_common").hide();
  70. })
  71. $(".xl_box").on("click", "li", function() {
  72. var obj = $(this).parent().parent().parent();
  73. obj.find("input").eq(0).val($(this).text());
  74. obj.find("input").eq(1).val($(this).attr("itemid"));
  75. obj.find(".xl_common").hide();
  76. })
  77. $("input[name='ltype']").click(function() {
  78. var val = $("input[name='ltype']:checked").val();
  79. if(val == '0') {
  80. $(".js").show();
  81. } else if(val == '1') {
  82. $(".js").hide();
  83. }
  84. })
  85. if($("#zrbmtree")) {
  86. getBM($("#zrbmtree"));
  87. }
  88. laydate.render({
  89. elem: '#greetingTimes',
  90. range: '~',
  91. // type: 'datetime',
  92. //max : 31,
  93. // min: 0,
  94. theme: '#1ab394',
  95. });
  96. getAccount()
  97. //反馈单位
  98. getAccounts()
  99. function getAccount() {
  100. $.ajax({
  101. type: "get",
  102. url: huayi.config.callcenter_url + "Customer/BindLDdep",
  103. dataType: 'json',
  104. async: true,
  105. data: {
  106. token: $.cookie("token")
  107. },
  108. success: function(data) {
  109. var Count = data.data.dep;
  110. $(Count).each(function(i, n) {
  111. $("<option value='" + n + "'>" + n + "</option>").appendTo($("#comeCall_dep"));
  112. })
  113. $('#comeCall_dep').selectpicker('refresh');
  114. }
  115. });
  116. }
  117. function getAccounts() {
  118. $.ajax({
  119. type: "get",
  120. url: huayi.config.callcenter_url + "Customer/BindLDdep",
  121. dataType: 'json',
  122. async: true,
  123. data: {
  124. token: $.cookie("token")
  125. },
  126. success: function(data) {
  127. var Count = data.data.dep;
  128. $(Count).each(function(i, n) {
  129. $("<option value='" + n + "'>" + n + "</option>").appendTo($("#comeCall_deps"));
  130. })
  131. $('#comeCall_deps').selectpicker('refresh');
  132. }
  133. });
  134. }
  135. //工单来源
  136. getOrderSource()
  137. function getOrderSource() {
  138. $.ajax({
  139. type: "get",
  140. url: huayi.config.callcenter_url + "Dictionary/GetDicValueListByFlag",
  141. dataType: 'json',
  142. async: true,
  143. data: {
  144. token: $.cookie("token"),
  145. flag: "GDLY"
  146. },
  147. success: function(data) {
  148. var Count = data.data;
  149. $(Count).each(function(i, n) {
  150. $("<option value='" + n.F_DictionaryValueId + "'>" + n.F_Name + "</option>").appendTo($("#orderSource"));
  151. })
  152. $('#orderSource').selectpicker('refresh');
  153. }
  154. });
  155. }
  156. //工单类型
  157. getOrderType();
  158. function getOrderType() {
  159. $.get(huayi.config.callcenter_url + 'WorkType/GetTreeList', {
  160. "token": $.cookie("token"),
  161. }, function(result) {
  162. result = $.parseJSON(result);
  163. $.fn.zTree.init($("#TreeDemo"), setting3, result.data); //实例化树形图
  164. });
  165. }
  166. var setting3 = {
  167. data: {
  168. key: {
  169. name: "text"
  170. },
  171. simpleData: {
  172. enable: true,
  173. idKey: "id",
  174. rootPId: 0
  175. }
  176. },
  177. callback: {
  178. onClick: changeTreeClick
  179. }
  180. }
  181. function changeTreeClick(event, treeId, treeNode) {
  182. var chanId = treeNode.id;
  183. var changeName = treeNode.text;
  184. $('#typeclass').val(changeName);
  185. $('#typeclassId').val(chanId);
  186. var pidnode = treeNode.getParentNode();
  187. };
  188. $('.down').click(function() {
  189. if($('.treeList').css('display') == 'block') {
  190. $('.treeList').css('display', 'none')
  191. } else {
  192. $('.treeList').css('display', 'block')
  193. }
  194. })
  195. $('#typeclass').click(function() {
  196. $('.treeList').css('display', 'block')
  197. })
  198. $('.treeList').mouseleave(function() {
  199. $(this).css('display', 'none')
  200. })
  201. //坐席
  202. getSeating()
  203. function getSeating() {
  204. $.ajax({
  205. type: "get",
  206. url: huayi.config.callcenter_url + "CallInScreen/GetUsers",
  207. dataType: 'json',
  208. async: true,
  209. data: {
  210. token: $.cookie("token")
  211. },
  212. success: function(data) {
  213. var Count = data.data.user;
  214. $(Count).each(function(i, n) {
  215. $("<option value='" + n.F_UserCode + "'>" + n.F_UserName + "</option>").appendTo($("#userid"));
  216. })
  217. $('#userid').selectpicker('refresh');
  218. }
  219. });
  220. }
  221. })
  222. //编辑器配置
  223. KindEditor.ready(function(K) {
  224. window.changeEditor = K.create('#cl_gdnr'); //修改弹出框编辑器
  225. });
  226. var F_UserCode = localStorage.getItem('F_UserCode');
  227. function View(val, row) {
  228. return '<div class="imgs" ><a class="xg" index="' + row.CreateUser + '" onclick= ck("' + val + '") >' + val + '</a></div>';
  229. $("#F_UserCode").val(row.CreateUser);
  230. }
  231. function OverTime(val, row) {
  232. var cs = 'Ctime';
  233. if(row.LimitTime || row.State == 1) {
  234. if(row.totalhour * 1 > row.LimitTime * 1) {
  235. cs = 'overTime_';
  236. }
  237. }
  238. return '<div class="' + cs + '" ><a class="xg" ></a></div>';
  239. }
  240. function ck(val) {
  241. selid = val;
  242. $('.modify').attr('index', selid)
  243. $(".ckxq").removeClass("Hidens");
  244. $(".ckxq ul li").eq(0).trigger("click");
  245. xq();
  246. }
  247. function Detail(val) {
  248. if(val) {
  249. //var strD = decodeURIComponent(val);
  250. var strD = val;
  251. strD = helper.filter.filterHTMLTag(strD);
  252. if(strD.length > 10){
  253. strD = strD.substring(1,10) + '...';
  254. }
  255. return strD;
  256. }
  257. }
  258. function xq() {
  259. $.getJSON(huayi.config.callcenter_url + 'WorkOrder/GetWorkOrder', {
  260. "orderid": selid,
  261. "token": $.cookie("token")
  262. }, function(result) {
  263. if(result.state.toLowerCase() == "success") {
  264. if(result.data.data.length > 0) {
  265. var data = result.data.data[0];
  266. $("#xq_gdbh").text(data.WorkOrderID);
  267. $("#xq_gdlx").text(data.GDLXName);
  268. $("#xq_cjsj").text(data.CreateTime);
  269. $("#xq_gdzt").html(GetStateName(data.State));
  270. $("#xq_khxm").text(data.Customer);
  271. $("#xq_khdh").text(data.CustomerTel);
  272. $("#xq_wtlx").text(data.Address);
  273. $("#xq_zxgh").text(data.Source);
  274. $("#xq_gdnr").html(decodeURIComponent(data.Detail)); //工单详情
  275. $('#bz-1').text(data.County);
  276. $("#bz-2").text(data.Province);
  277. $("#bz-3").text(data.City);
  278. $("#xq_kdxx").text(data.Files);
  279. $(".gdxq").eq(0).find(".allbc").remove();
  280. if(result.data.item.length > 0) {
  281. var html = '<div class="allbc">补充记录' +
  282. '<table class="table table-hover table-striped"><thead><tr><th><div class="th-inner">补充人</div></th>' +
  283. '<th><div class="th-inner">补充详情</div></th><th><div class="th-inner">创建时间</div></th></tr></thead><tbody>';
  284. $(result.data.item).each(function(i, n) {
  285. html += '<td>' + n.CreateUserName + '</td><td>' + n.Detail + '</td><td>' + n.CreateTime + '</td>';
  286. })
  287. html += '</tbody></table></div>';
  288. $(".gdxq").eq(0).append($(html));
  289. }
  290. }
  291. }
  292. })
  293. }
  294. function cljl(type) {
  295. //先销毁表格
  296. var table = $(".gdxq").eq(type).find("table");
  297. table.bootstrapTable('destroy');
  298. //初始化表格,动态从服务器加载数据
  299. table.bootstrapTable({
  300. method: "get", //使用get请求到服务器获取数据
  301. url: huayi.config.callcenter_url + "WorkOrder/GetItemList", //获取数据的Servlet地址
  302. contentType: 'application/x-www-form-urlencoded',
  303. striped: true, //表格显示条纹
  304. pagination: true, //启动分页
  305. pageSize: 10, //每页显示的记录数
  306. pageNumber: 1, //当前第几页
  307. pageList: [10, 20, 50, 100], //记录数可选列表
  308. search: false, //是否启用查询
  309. showColumns: false, //显示下拉框勾选要显示的列
  310. showRefresh: false, //显示刷新按钮
  311. sidePagination: "server", //表示服务端请求
  312. //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
  313. //设置为limit可以获取limit, offset, search, sort, order
  314. queryParamsType: "undefined",
  315. queryParams: function queryParams(params) { //设置查询参数
  316. var param = {
  317. page: params.pageNumber,
  318. pagesize: params.pageSize,
  319. type: type,
  320. id: selid,
  321. token: $.cookie("token")
  322. };
  323. return param;
  324. },
  325. onLoadSuccess: function() { //加载成功时执行
  326. //layer.msg("加载成功");
  327. },
  328. onLoadError: function() { //加载失败时执行
  329. //layer.msg("加载数据失败", { time: 1500, icon: 2 });
  330. }
  331. });
  332. }
  333. function GetTypeName(val) {
  334. var str = '';
  335. switch(val + '') {
  336. case '1':
  337. str = "咨询";
  338. break;
  339. case '2':
  340. str = "报修服务";
  341. break;
  342. case '3':
  343. str = "投诉建议";
  344. break;
  345. }
  346. return str;
  347. }
  348. function GetStateName(val) {
  349. // var str = '';
  350. // switch (val + '') {
  351. // case '0': str = "待指派"; break;
  352. // case '1': str = "处理中"; break;
  353. // case '2': str = "已完结"; break;
  354. // }
  355. //if(val==0){
  356. // return '<div class="warning">待指派</div>'
  357. //}else if(val==1){
  358. // return '<div class="primary">处理中</div>'
  359. //}else if(val==2){
  360. // return '<div class="defauli">已完结</div>'
  361. // }
  362. if(val == 0) {
  363. return '<div class="warning">待处理</div> '
  364. } else {
  365. return '<div class="defauli">已处理</div>'
  366. }
  367. return str;
  368. }
  369. function ComXQ(val, row) {
  370. var str = '';
  371. if(row.IsLast) {
  372. str = str + row.CreateUser + " 完结工单。" + "<br>";
  373. }
  374. if(row.DealTime) {
  375. str = str + row.CreateUser + " 处理工单:" + "<br>";
  376. str = str + row.Detail + "<br>";
  377. }
  378. if(row.SureUserName) {
  379. str = str + row.SureUserName + " 接单。" + "<br>";
  380. }
  381. if(row.ToDeptName) {
  382. str = str + row.CreateUserName + " 指派工单给 " + row.ToDeptName + " ";
  383. if(row.ToUserName) {
  384. str = str + row.ToUserName;
  385. }
  386. str = str + "<br>";
  387. }
  388. if(row.IsStart) {
  389. str = str + row.CreateUserName + " 重新开启工单。" + "<br>";
  390. }
  391. return str;
  392. }
  393. //获取部门
  394. var setting = {
  395. data: {
  396. key: {
  397. name: "F_DeptName"
  398. },
  399. simpleData: {
  400. enable: true,
  401. idKey: "F_DeptId",
  402. pIdKey: "F_ParentId",
  403. rootPId: 0
  404. }
  405. },
  406. callback: {
  407. onClick: zTreeOnClick
  408. }
  409. };
  410. function getBM(obj) {
  411. $.getJSON(huayi.config.callcenter_url + 'Department/GetAllList', {
  412. "token": $.cookie("token")
  413. }, function(result) {
  414. if(result.state.toLowerCase() == "success") {
  415. $.fn.zTree.init(obj, setting, result.data);
  416. }
  417. })
  418. }
  419. function zTreeOnClick(event, treeId, treeNode) {
  420. if(event) {
  421. event.stopPropagation();
  422. }
  423. var obj = $("#" + event.data.treeId).parent();
  424. obj.parent().find("input").eq(0).val(treeNode.F_DeptName);
  425. obj.parent().find("input").eq(1).val(treeNode.F_DeptId);
  426. obj.hide();
  427. getRY($(".clid"), $("#clbm").val());
  428. };
  429. //获取人员
  430. function getRY(obj, deptid) {
  431. obj.empty();
  432. obj.append('<li itemid="">--请选择--</li>');
  433. obj.parent().parent().find("input").eq(0).val("--请选择--");
  434. obj.parent().parent().find("input").eq(1).val("");
  435. $.getJSON(huayi.config.callcenter_url + 'UserAccount/GetDeptUserList', {
  436. "deptid": deptid,
  437. "token": $.cookie("token")
  438. }, function(result) {
  439. if(result.state.toLowerCase() == "success") {
  440. $(result.data).each(function(i, n) {
  441. obj.append('<li itemid="' + n.F_UserCode + '">' + n.F_UserName + '</li>');
  442. })
  443. obj.find("li").click(function(event) {
  444. if(event) {
  445. event.stopPropagation();
  446. }
  447. $(this).parent().parent().parent().find("input").eq(0).val($(this).text());
  448. $(this).parent().parent().parent().find("input").eq(1).val($(this).attr("itemid"));
  449. $(this).parent().parent().hide();
  450. });
  451. }
  452. })
  453. }
  454. function Appoint(val, row) {
  455. return czhtml(val, row, "处理");
  456. }
  457. function Dispose(val, row) {
  458. return czhtml(val, row, "处理");
  459. }
  460. function czhtml(val, row, str) {
  461. if(row.CreateUser == F_UserCode) {
  462. return '<div class="imgs" ><a class="xg" itemstr=\'' + JSON.stringify(row) + '\' onclick= oper("' + val + '",this) >' + str + '</a></div>';
  463. }
  464. }
  465. function oper(val, obj) {
  466. zpid = val;
  467. var zp = JSON.parse($(obj).attr("itemstr"));
  468. $("#cl_gdbh").text(zp.WorkOrderID);
  469. $("#cl_gdlx").text(zp.TypeClassName);
  470. $("#cl_khxm").text(zp.Customer);
  471. $("#cl_khdh").text(zp.CustomerTel);
  472. changeEditor.html(decodeURIComponent(zp.Detail))
  473. $("#clbmname").val("");
  474. $("#clbm").val("");
  475. $("#clidname").val("");
  476. $("#clid").val("");
  477. $(".clid").empty();
  478. $("#cont").val("");
  479. $(".t-shade").addClass("cx");
  480. $(".clgd").addClass("cx");
  481. }
  482. //点解
  483. $('.modify').click(function() {
  484. var id = $(this).attr('index');
  485. layer.open({
  486. type: 2,
  487. title: '修改工单',
  488. maxmin: true, //开启最大化最小化按钮
  489. area: ['80%', '90%'],
  490. content: '../WorkOrder/Xga.html?id=' + id
  491. // content: 'addZhiShiKuManger.html?addId=' + id + '&addPid='+ pid +'&addName='+ name +''
  492. });
  493. })
  494. //
  495. function TZ(val) {
  496. var id = val;
  497. layer.open({
  498. type: 2,
  499. title: '修改工单',
  500. maxmin: true, //开启最大化最小化按钮
  501. area: ['80%', '90%'],
  502. content: '../WorkOrder/Xga.html?id=' + id
  503. // content: 'addZhiShiKuManger.html?addId=' + id + '&addPid='+ pid +'&addName='+ name +''
  504. });
  505. }
  506. function Remove(val, row) {
  507. if(row.CreateUser == F_UserCode) {
  508. return '<div class="imgs RemoveC" ><a onclick= remove("' + val + '") >删除</a> <a onclick= TZ("' + row.WorkOrderID + '") >修改</a> </div>';
  509. }
  510. }
  511. function remove(str, row) {
  512. var type = $('#orderSource').val(); //工单来源
  513. var typeclass = $('#typeclassId').val(); //工单类型
  514. var starttime = $('#greetingTimes').val() && $('#greetingTimes').val().split(' ~ ')[0]; //开始时间
  515. var endtime = $('#greetingTimes').val() && $('#greetingTimes').val().split(' ~ ')[1]; //结束时间
  516. var lddep = $('#comeCall_dep').val(); //来电单位
  517. var fkdep = $('#comeCall_deps').val(); //来电单位
  518. var userid = $('#userid').val(); //坐席
  519. layer.confirm('确定删除当前记录?', {
  520. btn: ['是', '否'] //按钮
  521. }, function(index) {
  522. /*执行删除*/
  523. $.ajax({
  524. type: "get",
  525. url: huayi.config.callcenter_url + "WorkOrder/DelWorkOrder",
  526. dataType: 'json',
  527. async: true,
  528. data: {
  529. ids: str,
  530. token: $.cookie("token")
  531. },
  532. success: function(data) {
  533. layer.msg("删除成功!");
  534. // initTable(type, typeclass, starttime, endtime, lddep, fkdep, userid);
  535. $('#workorderlist').bootstrapTable('refresh');
  536. $('#workorderlist_').bootstrapTable('refresh');
  537. // initTables(type, typeclass, starttime, endtime, lddep, fkdep, userid);
  538. layer.close(index);
  539. }
  540. });
  541. });
  542. }
  543. //受理人判断
  544. function GetState(val, row) {
  545. if(val == 0) {
  546. return '<div class="defauli">' + row.CreateUserNameRel + '</div>'
  547. } else {
  548. return '<div class="defauli">' + row.LastDealUserNameRel + '</div>'
  549. }
  550. }