安图前端代码

WorkOrder.js 17KB

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