index.js 58 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792
  1. $(function () {
  2. var repairMain = JSON.parse(sessionStorage.getItem("repair_main")); //报修主体
  3. var reqHasCategory = JSON.parse(sessionStorage.getItem("reqHasCategory")); //自动建单
  4. var loginUser = JSON.parse(window.sessionStorage.getItem("loginUser")); //用户信息
  5. // repairMain.valueconfig = '2';
  6. var placeList = []; //获取到的地点列表
  7. var wxId = ""; //微信报修ID
  8. var processMessageData = null; //详情页流程数据
  9. var dictionary = []; //详情页流程数据
  10. var imgList = []; //待上传的图片信息formData
  11. var imgAjaxNum = 0; //待上传的图片请求计数器
  12. var currentBxOrCh = 0; //0是最新报修列表,1是查号列表
  13. var bx_pageNum = 0; //最新报修或电话查号分页
  14. var bx_arr = { data: [] }; //最新报修所有数据列表
  15. var ch_arr = { list: [] }; //电话查号所有数据列表
  16. var bx_len = 0; //最新报修或电话查号所有数据列表数量
  17. var solution_pageNum = 0; //常见问题分页
  18. var solution_arr = { list: [] }; //常见问题所有数据列表
  19. var solution_len = 0; //常见问题所有数据列表数量
  20. var isSearch = false; //是否搜索常见问题
  21. var isSearch1 = false; //是否搜索电话挂号
  22. var ks_pageNum = 0; //科室下拉列表分页
  23. var ks_len = 0; //科室所有数据列表数量
  24. var ks_arr = { list: [] }; //科室所有数据
  25. // 兼容ie的placeholder
  26. $("input, textarea").placeholder();
  27. //获取报修类别列表seimin
  28. function getEventClass() {
  29. $.ajax({
  30. type: "POST",
  31. contentType: "application/json;charset=UTF-8",
  32. url: baseUrl + "bpm/data/fetchDataList/incidentcategory",
  33. data: JSON.stringify({
  34. idx: 0,
  35. sum: 100,
  36. incidentcategory: { selectType: "one" },
  37. }),
  38. success: function (res) {
  39. if (res.status == 200) {
  40. var html = "";
  41. for (var i = 0; i < res.list.length; i++) {
  42. html +=
  43. '<option value="' +
  44. res.list[i].id +
  45. '">' +
  46. res.list[i].category +
  47. "</option>";
  48. }
  49. $("#bx_eventClass").html(html);
  50. }
  51. },
  52. error: function (err) {
  53. console.log(err);
  54. },
  55. });
  56. }
  57. // 自动建单
  58. if (reqHasCategory.valueconfig == 1) {
  59. getEventClass();
  60. } else {
  61. $("#if_bx_eventClass").remove();
  62. }
  63. // 获取公告列表3条
  64. getNoticeList({ idx: 0, sum: 3, notice: { status: 1 } });
  65. // 获取常见问题列表
  66. getSolutionList({
  67. idx: solution_pageNum,
  68. sum: 10,
  69. solution: { title: "", status: { id: 72 }, solutionRange: 1 },
  70. });
  71. // 获取区域列表
  72. getAreaList({ idx: 0, sum: 1000, area: { wechatArea: true } });
  73. // 获取地点列表
  74. getPlaceList({ idx: 0, sum: 1000, area: { wechatAreaId: "" } });
  75. // 获取WxId
  76. getWxId();
  77. // 获取最新报修列表
  78. getNewBxList(currentBxOrCh);
  79. //获取详情页流程数据
  80. getProcessMessageData();
  81. //获取评价五颗星的数据
  82. getDictionary();
  83. //初始化页面--seimin
  84. function pageInit() {
  85. $("#bx_name").val(loginUser.name); //事件报修表单->报修人
  86. $(".logOut .user").text(loginUser.name); //登录人名称
  87. if (repairMain.valueconfig == 1) {
  88. //报修人
  89. $(".repairFlag").show(); //class是repairFlag的时候显示元素
  90. $(".repairFlagReverse").hide(); //class是repairFlagReverse的时候隐藏元素
  91. $("#bx_tel").val(loginUser.mphone); //事件报修表单->联系电话
  92. } else if (repairMain.valueconfig == 2) {
  93. //报修科室
  94. $(".repairFlag").hide(); //class是repairFlag的时候隐藏元素
  95. $(".repairFrepairFlagReverselag").show(); //class是repairFlagReverse的时候显示元素
  96. $("#bx_tel").val(loginUser.dept ? loginUser.dept.phone : ""); //事件报修表单->联系电话
  97. }
  98. }
  99. pageInit();
  100. //故障地点seimin
  101. // (function () {
  102. // //故障地点带入区域地点
  103. // $('#bx_address').val(loginUser.place ? loginUser.place.area.area + loginUser.place.place : '');
  104. // //点击文本框
  105. // $('#bx_address').on('click', searchAreaPlace);
  106. // //修改文字,实时监听
  107. // $('#bx_address').on('keyup', debounce(searchAreaPlace, 500));
  108. // //报修科室滚动条
  109. // $('#bx_address_ul').niceScroll();
  110. // //故障地点搜索
  111. // function searchAreaPlace() {
  112. // $.ajax({
  113. // type: "POST",
  114. // contentType: "application/json;charset=UTF-8",
  115. // url: baseUrl + "apply/bpm/searchFaultLocation",
  116. // data: JSON.stringify({ "searchKey": $('#bx_address').val() }),
  117. // success: function (res) {
  118. // if (res.state == 200) {
  119. // $('#bx_address_ul').find('li').off('click');
  120. // var html = template('bx_address_ul_temp', { list: res.result });
  121. // $('#bx_address_ul').html(html).show().find('li').on('click', function () {
  122. // $('#bx_address').val($(this).text());//文本框赋值
  123. // $('#bx_address_ul').hide();
  124. // })
  125. // }
  126. // },
  127. // error: function (err) {
  128. // console.log(err);
  129. // }
  130. // });
  131. // }
  132. // //点击空白处隐藏
  133. // $(document).on('click', function (e) {
  134. // if (e.target !== $('#bx_address').get(0)) {
  135. // $('#bx_address_ul').hide();
  136. // //模拟placeholder
  137. // if ($('#bx_address').val() == '') {
  138. // $('#bx_address').val('请输入故障地点');
  139. // }
  140. // }
  141. // })
  142. // })();
  143. //报修科室seimin
  144. (function () {
  145. //自动带入报修科室
  146. if (loginUser.dept) {
  147. $("#bx_ks").val(loginUser.dept.dept).data("id", loginUser.dept.id);
  148. } else {
  149. $("#bx_address").val("请输入详细的地址");
  150. }
  151. //点击文本框
  152. $("#bx_ks").on("click", function () {
  153. ks_arr.list = [];
  154. ks_pageNum = 0;
  155. getDepartmentList(0);
  156. $("#bx_ks_ul").scrollTop(0);
  157. });
  158. //修改文字,实时监听
  159. $("#bx_ks").on(
  160. "keyup",
  161. debounce(function () {
  162. ks_arr.list = [];
  163. ks_pageNum = 0;
  164. getDepartmentList(0);
  165. $("#bx_ks_ul").scrollTop(0);
  166. }, 500)
  167. );
  168. //报修科室必须选中下拉框,否则恢复为默认值
  169. $("#bx_ks").on("blur", function () {
  170. //自动带入报修科室
  171. if (loginUser.dept) {
  172. // document.title +=1;
  173. $(this).val(loginUser.dept.dept).data("id", loginUser.dept.id);
  174. } else {
  175. $(this).val("").data("id", "");
  176. }
  177. });
  178. //报修科室滚动条
  179. $("#bx_ks_ul").niceScroll();
  180. //滚动加载
  181. $("#bx_ks_ul").on(
  182. "scroll",
  183. debounce(function () {
  184. var itemLen = $(this).find("li").length;
  185. var itemHeight = $(this).find("li").outerHeight();
  186. var wrapHeight = $(this).outerHeight();
  187. var max = itemLen * itemHeight - wrapHeight;
  188. var diff = max - $(this).scrollTop();
  189. if (Math.abs(diff) < 200) {
  190. ks_pageNum++;
  191. if (ks_len != itemLen) {
  192. ks_len = itemLen;
  193. getDepartmentList(ks_pageNum);
  194. }
  195. }
  196. }, 500)
  197. );
  198. //获取科室信息
  199. function getDepartmentList(idx) {
  200. $.ajax({
  201. type: "POST",
  202. contentType: "application/json;charset=UTF-8",
  203. url: baseUrl + "user/data/fetchDataList/department",
  204. data: JSON.stringify({
  205. idx: idx,
  206. sum: 50,
  207. department: { dept: $("#bx_ks").val() },
  208. }),
  209. success: function (res) {
  210. if (res.status == 200) {
  211. $("#bx_ks_ul").find("li").off("click");
  212. //添加分页数据,汇总
  213. ks_arr.list = ks_arr.list.concat(res.list);
  214. var html = template("bx_ks_ul_temp", ks_arr);
  215. // 选中科室
  216. $("#bx_ks_ul")
  217. .html(html)
  218. .show()
  219. .find("li")
  220. .on("click", function () {
  221. // document.title +=2;
  222. $("#bx_ks").val($(this).text()).data("id", $(this).data("id")); //文本框赋值
  223. // 故障地点和电话联动
  224. var id = $(this).data("id");
  225. for (var i = 0; i < ks_arr.list.length; i++) {
  226. if (ks_arr.list[i].id == id) {
  227. $("#bx_tel").val(ks_arr.list[i].phone);
  228. $("#bx_address").val(
  229. ks_arr.list[i].place.place
  230. ? ks_arr.list[i].place.area.area +
  231. ks_arr.list[i].place.place
  232. : ks_arr.list[i].place.area
  233. );
  234. }
  235. }
  236. $("#bx_ks_ul").hide();
  237. });
  238. }
  239. },
  240. error: function (err) {
  241. console.log(err);
  242. },
  243. });
  244. }
  245. //点击空白处隐藏
  246. $(document).on("click", function (e) {
  247. if (e.target !== $("#bx_ks").get(0)) {
  248. $("#bx_ks_ul").hide();
  249. //模拟placeholder
  250. if ($("#bx_ks").val() == "") {
  251. $("#bx_ks").val("请选择报修科室");
  252. }
  253. }
  254. });
  255. })();
  256. // 滚动条
  257. $(".r-list").niceScroll();
  258. $(".form").niceScroll();
  259. $(".con-wrap").niceScroll();
  260. // pop1HdScroll();
  261. //placeholder
  262. $("#searchPro")
  263. .on("focus", function () {
  264. if ($(this).val() == "请输入关键字") {
  265. $(this).val("");
  266. }
  267. })
  268. .on("blur", function () {
  269. if ($(this).val() == "") {
  270. $(this).val("请输入关键字");
  271. }
  272. });
  273. $("#bx_address").on("focus", function () {
  274. if ($(this).val() == "请输入详细的地址") {
  275. $(this).val("");
  276. }
  277. });
  278. $("#bx_ks").on("focus", function () {
  279. if ($(this).val() == "请选择报修科室") {
  280. $(this).val("");
  281. }
  282. });
  283. $("#bx_description")
  284. .on("focus", function () {
  285. if ($(this).val() == "请输入报修的内容") {
  286. $(this).val("");
  287. }
  288. })
  289. .on("blur", function () {
  290. if ($(this).val() == "") {
  291. $(this).val("请输入报修的内容");
  292. }
  293. });
  294. $("#bx_name")
  295. .on("focus", function () {
  296. if ($(this).val() == "请输入联系人") {
  297. $(this).val("");
  298. }
  299. })
  300. .on("blur", function () {
  301. if ($(this).val() == "") {
  302. $(this).val("请输入联系人");
  303. }
  304. });
  305. $("#bx_tel")
  306. .on("focus", function () {
  307. if ($(this).val() == "请输入联系电话") {
  308. $(this).val("");
  309. }
  310. })
  311. .on("blur", function () {
  312. if ($(this).val() == "") {
  313. $(this).val("请输入联系电话");
  314. }
  315. });
  316. //报修图片预览
  317. $(".formItem .f-images-item--file .f-file").on("change", function () {
  318. if (!isLtIe10()) {
  319. //ie>=10
  320. var file = $(this)[0].files[0]; //获取文件信息
  321. var $this = $(this);
  322. //防止ie10,ie11触发两次change
  323. if (file == null) {
  324. return;
  325. }
  326. //小于10M&&格式是png与jpg
  327. if (file.size.toFixed(1) < 10 * 1024 * 1024 && isAllowFile(file.name)) {
  328. var reader = new FileReader(); //调用FileReader
  329. reader.readAsDataURL(file); //将文件读取为 DataURL(base64)
  330. reader.onload = function (evt) {
  331. //读取操作完成时触发。
  332. $this.val(""); //清空file的值
  333. //最多3张图
  334. if ($("#f-images-list").find(".f-images-item").length == 3) {
  335. $("#f-images-list").find(".f-images-item--file").hide();
  336. } else {
  337. $("#f-images-list").find(".f-images-item--file").show();
  338. }
  339. var formData = new FormData();
  340. formData.append("fileName", file.name);
  341. formData.append("file", file);
  342. var imgId = uuid.v4(); //id
  343. imgList.push({ list: formData, id: imgId });
  344. $("#f-images-list").prepend(
  345. $(
  346. '<li class="f-images-item" data-id="' +
  347. imgId +
  348. '"><div class="f-thumb-wrap"><img class="f-thumb" src="' +
  349. evt.target.result +
  350. '"><i class="f-thumb-close iconfont dsit-false-circle"></i></div></li>'
  351. )
  352. );
  353. //取消上传图片
  354. $(".formItem .f-images-item .f-thumb-close").on("click", function () {
  355. for (var i = 0; i < imgList.length; i++) {
  356. if (
  357. imgList[i].id == $(this).closest(".f-images-item").data("id")
  358. ) {
  359. imgList.splice(i, 1);
  360. break;
  361. }
  362. }
  363. $(this).closest(".f-images-item").remove();
  364. if ($("#f-images-list").find(".f-images-item").length == 4) {
  365. $("#f-images-list").find(".f-images-item--file").hide();
  366. } else {
  367. $("#f-images-list").find(".f-images-item--file").show();
  368. }
  369. });
  370. };
  371. } else {
  372. alert("图片只能使JPG或PNG格式,并且不能超过10M");
  373. }
  374. } else {
  375. var cloneObj1 = $(".f-images-item").eq(0).clone(true); //克隆默认
  376. cloneObj1.find(".f-thumb-wrap").remove(); //移除图片
  377. cloneObj1.find(".f-thumb-close").remove(); //移除X
  378. cloneObj1.find(".iframe-upload").remove(); //移除iframe
  379. var cloneObj2 = $(".f-images-item").eq(0).clone(true); //克隆默认
  380. cloneObj2.find(".f-thumb-wrap").remove(); //移除图片
  381. cloneObj2.find(".f-thumb-close").remove(); //移除X
  382. cloneObj2.find(".iframe-upload").remove(); //移除iframe
  383. $(this).get(0).select();
  384. $(this).get(0).blur(); //ie9兼容
  385. var url = document.selection.createRange().text;
  386. if (/.+\.(jpg|png|jpeg)$/.test(url)) {
  387. var urlIndex = url.lastIndexOf("\\");
  388. var urlFileName = url.substr(urlIndex + 1); //文件名
  389. var ieImgId = uuid.v4();
  390. imgList.push({ fileName: urlFileName, id: ieImgId });
  391. $(this).closest(".f-images-item").data("id", ieImgId); //绑定id到元素上
  392. $(this)
  393. .closest(".form-file")
  394. .after(
  395. $(
  396. '<div class="f-thumb-wrap"><i class="f-thumb" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src=' +
  397. url +
  398. ')></i><i style="display:none"></i></div>'
  399. )
  400. );
  401. $(this)
  402. .closest(".form-file")
  403. .after($('<i class="f-thumb-close iconfont dsit-false-circle"></i>'));
  404. $(this)
  405. .closest(".form-file")
  406. .after(
  407. $(
  408. '<iframe class="iframe-upload" name="imgupload' +
  409. ieImgId +
  410. '" style="display: none;"></iframe>'
  411. )
  412. );
  413. $(this).after(
  414. $(
  415. '<input type="text" name="fileName" style="display:none" value="' +
  416. urlFileName +
  417. '">'
  418. )
  419. );
  420. $(this)
  421. .closest(".form-file")
  422. .attr("target", "imgupload" + ieImgId);
  423. if ($("#f-images-list").find(".f-images-item").length < 3) {
  424. $("#f-images-list").append(cloneObj1);
  425. }
  426. //取消上传图片(取消------------------)
  427. $(".formItem .f-images-item .f-thumb-close").on("click", function () {
  428. for (var i = 0; i < imgList.length; i++) {
  429. if (
  430. imgList[i]["id"] == $(this).closest(".f-images-item").data("id")
  431. ) {
  432. imgList.splice(i, 1);
  433. break;
  434. }
  435. }
  436. $(this).closest(".f-images-item").remove();
  437. if ($(".formItem .f-images-item").length == imgList.length) {
  438. $("#f-images-list").append(cloneObj2);
  439. }
  440. });
  441. } else {
  442. alert("图片只能使JPG或PNG格式,并且不能超过10M");
  443. }
  444. }
  445. });
  446. //常见问题搜索
  447. $("#searchProSubmit").on("click", search);
  448. $("#searchPro").on("keyup", function (e) {
  449. if (e.keyCode == 13) {
  450. search();
  451. }
  452. });
  453. function search() {
  454. solution_pageNum = 0;
  455. var val =
  456. $.trim($("#searchPro").val()) == "请输入关键字"
  457. ? ""
  458. : $.trim($("#searchPro").val());
  459. isSearch = true;
  460. getSolutionList({
  461. idx: solution_pageNum,
  462. sum: 10,
  463. solution: { title: val, status: { id: 72 } },
  464. });
  465. }
  466. //选择框联动
  467. $("#area_list").on("change", function () {
  468. //获取id
  469. var id = $(this).val();
  470. // 过滤数据
  471. var resFilter = { list: [] };
  472. for (var i = 0; i < placeList.length; i++) {
  473. if (placeList[i]["area"]["id"] == id) {
  474. resFilter.list.push(placeList[i]);
  475. }
  476. }
  477. //填充数据
  478. var html = template("place_list_temp", resFilter);
  479. $("#place_list").html(html);
  480. });
  481. // 提交报修
  482. $("#f-submit").on("click", function () {
  483. //按钮禁止
  484. $(this).prop("disabled", true);
  485. $(this).addClass("f-submit--disable");
  486. if (repairMain.valueconfig == 2) {
  487. //如果是报修科室
  488. if (
  489. $("#bx_ks").val().replace(/\s/g, "") === "" ||
  490. $("#bx_ks").val().replace(/\s/g, "") === "请选择报修科室"
  491. ) {
  492. alert("报修科室不能为空");
  493. //按钮禁止取消
  494. $(this).removeProp("disabled");
  495. $(this).removeClass("f-submit--disable");
  496. return;
  497. }
  498. }
  499. if (repairMain.valueconfig == 1) {
  500. //如果是报修人
  501. if (
  502. $("#bx_name").val().replace(/\s/g, "") === "" ||
  503. $("#bx_name").val().replace(/\s/g, "") === "请输入联系人"
  504. ) {
  505. alert("联系人不能为空");
  506. //按钮禁止取消
  507. $(this).removeProp("disabled");
  508. $(this).removeClass("f-submit--disable");
  509. return;
  510. }
  511. } else if (repairMain.valueconfig == 2) {
  512. //报修主体是报修科室的话,非必填
  513. if ($("#bx_name").val().replace(/\s/g, "") === "请输入联系人") {
  514. $("#bx_name").val("");
  515. }
  516. }
  517. if ($("#area_list").val() < 1) {
  518. alert("区域不能为空");
  519. //按钮禁止取消
  520. $(this).removeProp("disabled");
  521. $(this).removeClass("f-submit--disable");
  522. return;
  523. }
  524. if ($("#place_list").val() < 1) {
  525. alert("地点不能为空");
  526. //按钮禁止取消
  527. $(this).removeProp("disabled");
  528. $(this).removeClass("f-submit--disable");
  529. return;
  530. }
  531. if (
  532. $("#bx_tel").val().replace(/\s/g, "") === "" ||
  533. $("#bx_tel").val().replace(/\s/g, "") === "请输入联系电话" ||
  534. !/^[\d\-]*$/.test($("#bx_tel").val())
  535. ) {
  536. alert("请输入正确的联系电话");
  537. //按钮禁止取消
  538. $(this).removeProp("disabled");
  539. $(this).removeClass("f-submit--disable");
  540. return;
  541. }
  542. if (
  543. $("#bx_address").val().replace(/\s/g, "") === "" ||
  544. $("#bx_address").val() == "请输入详细的地址"
  545. ) {
  546. alert("地址不能为空");
  547. //按钮禁止取消
  548. $(this).removeProp("disabled");
  549. $(this).removeClass("f-submit--disable");
  550. return;
  551. }
  552. if (
  553. $("#bx_description").val().replace(/\s/g, "") === "" ||
  554. $("#bx_description").val() == "请输入报修的内容"
  555. ) {
  556. alert("报修内容不能为空");
  557. //按钮禁止取消
  558. $(this).removeProp("disabled");
  559. $(this).removeClass("f-submit--disable");
  560. return;
  561. }
  562. var data = { verification: "true" };
  563. data.incident = {
  564. address: $.trim($("#bx_address").val()),
  565. areaId: $.trim($("#area_list").val()),
  566. bxcode: wxId,
  567. contacts: $.trim($("#bx_name").val()),
  568. contactsInformation: $("#bx_tel").val(),
  569. description: $.trim($("#bx_description").val()),
  570. fileUrl: "url",
  571. placeId: $.trim($("#place_list").val()),
  572. requester: loginUser,
  573. sourceType: "webRequesterIncident",
  574. };
  575. // 自动建单
  576. if (reqHasCategory.valueconfig == 1) {
  577. data.incident.categoryId = $("#bx_eventClass").val();
  578. }
  579. data.loginUser = {
  580. id: loginUser.id,
  581. account: loginUser.account,
  582. };
  583. if (repairMain.valueconfig == "2") {
  584. //如果有报修科室
  585. data.incident.deptId = $("#bx_ks").data("id");
  586. }
  587. addBxMsg(data);
  588. });
  589. // 注销登录
  590. $(".logOut .logOutBtn").on("click", function () {
  591. logout();
  592. });
  593. $(".logOut").on("click", function () {
  594. $(this).find(".down").toggleClass("up");
  595. if ($(this).find(".up").length > 0) {
  596. $(".logOut .logOutWrap").show();
  597. } else {
  598. $(".logOut .logOutWrap").hide();
  599. }
  600. return false;
  601. });
  602. $(document).click(function (e) {
  603. if ($(this).find(".up").length > 0) {
  604. $(this).find(".down").removeClass("up");
  605. $(".logOut .logOutWrap").hide();
  606. }
  607. });
  608. //切换最新报修列表和查号列表tab baba
  609. // var currentBxOrCh = 0; //0是最新报修列表,1是查号列表
  610. $(".opcBg .opcBg_item").on("click", function () {
  611. $("#bx_list").scrollTop(0);
  612. bx_pageNum = 0;
  613. bx_len = 0;
  614. bx_arr.data = [];
  615. ch_arr.list = [];
  616. currentBxOrCh = $(this).index();
  617. if(currentBxOrCh === 0){
  618. $('.right .r-list').css('top','41px')
  619. }else if(currentBxOrCh === 1){
  620. $('.right .r-list').css('top','63px')
  621. }
  622. $(this).addClass("active").siblings().removeClass("active");
  623. getNewBxList(currentBxOrCh);
  624. });
  625. //最新报修列表或挂号滚动加载
  626. $("#bx_list").on(
  627. "scroll",
  628. debounce(function () {
  629. if($.trim($('.opcBg_item.active').text()) === '电话查号'){
  630. return;
  631. }
  632. var itemLen = $(this).find(".r-item").length;
  633. var itemHeight = $(this).find(".r-item").outerHeight();
  634. var wrapHeight = $(this).outerHeight();
  635. var max = itemLen * itemHeight - wrapHeight;
  636. var diff = max - $(this).scrollTop();
  637. if (Math.abs(diff) < 200 && $(this).scrollTop()) {
  638. bx_pageNum++;
  639. if (bx_len != itemLen) {
  640. bx_len = itemLen;
  641. isSearch1 = false;
  642. getNewBxList(currentBxOrCh);
  643. }
  644. }
  645. }, 500)
  646. );
  647. //常见问题滚动加载
  648. $("#solution_list").on(
  649. "scroll",
  650. debounce(function () {
  651. var itemLen = $(this).find(".infoItem").length;
  652. var itemHeight = $(this).find(".infoItem").outerHeight();
  653. var wrapHeight = $(this).outerHeight();
  654. var max = itemLen * itemHeight - wrapHeight;
  655. var diff = max - $(this).scrollTop();
  656. if (Math.abs(diff) < 200) {
  657. solution_pageNum++;
  658. if (solution_len != itemLen) {
  659. solution_len = itemLen;
  660. isSearch = false;
  661. getSolutionList({
  662. idx: solution_pageNum,
  663. sum: 10,
  664. solution: {
  665. title: $.trim($("#searchPro").val()),
  666. status: { id: 72 },
  667. },
  668. });
  669. }
  670. }
  671. }, 500)
  672. );
  673. // ----------------------------------------
  674. // 弹窗
  675. function pop1Handle(obj) {
  676. var defaults = {
  677. width: 600, //长
  678. height: 630, //宽
  679. title: "标题", //弹窗顶部标题
  680. confirmTitle: "确认按钮", //底部确认按钮
  681. cancelTitle: "取消按钮", //底部取消按钮
  682. onlyButton: true, //底部是否只有一个按钮
  683. confirmHandle: null, //确认按钮回调
  684. twoConfirmClose: true, //确认按钮是否关闭弹窗(2个按钮)
  685. oneConfirmClose: true, //确认按钮是否关闭弹窗(1个按钮)
  686. };
  687. $.extend(defaults, obj);
  688. if (defaults.onlyButton) {
  689. $("#pop1 .pop1-oneBtn").show();
  690. $("#pop1 .pop1-twoBtn").hide();
  691. } else {
  692. $("#pop1 .pop1-oneBtn").hide();
  693. $("#pop1 .pop1-twoBtn").show();
  694. }
  695. $("#pop1")
  696. .css({ width: defaults.width, height: defaults.height })
  697. .find(".pop1-title span")
  698. .text(defaults.title)
  699. .closest(".pop1-title")
  700. .nextAll(".pop1-operate")
  701. .find(".twoConfirm")
  702. .text(defaults.confirmTitle)
  703. .next(".twoCancel")
  704. .text(defaults.cancelTitle)
  705. .closest(".pop1-operate")
  706. .find(".oneConfirm")
  707. .text(defaults.confirmTitle)
  708. .closest("#pop1")
  709. .fadeIn("fast");
  710. showMask();
  711. //点击确定按钮
  712. $("#pop1 .oneConfirm,#pop1 .twoConfirm").on(
  713. "click",
  714. { defaults: defaults },
  715. callback
  716. );
  717. //点击按钮隐藏弹层
  718. $("#pop1 .pop1-title-icon,#pop1 .twoCancel").on("click", pop1Hide);
  719. if (defaults.twoConfirmClose) {
  720. $("#pop1 .twoConfirm").on("click", pop1Hide);
  721. }
  722. if (defaults.oneConfirmClose) {
  723. $("#pop1 .oneConfirm").on("click", pop1Hide);
  724. }
  725. }
  726. //回调
  727. function callback(event) {
  728. if (
  729. event.data.defaults.confirmHandle &&
  730. typeof event.data.defaults.confirmHandle === "function"
  731. ) {
  732. event.data.defaults.confirmHandle();
  733. }
  734. }
  735. //显示弹窗
  736. function pop1Show() {
  737. $("#pop1").fadeIn("fast");
  738. showMask();
  739. }
  740. //隐藏弹窗
  741. function pop1Hide() {
  742. $("#pop1").fadeOut("fast");
  743. hideMask();
  744. $(".oneConfirm,.twoConfirm").off("click", callback);
  745. }
  746. //显示遮罩
  747. function showMask() {
  748. $("#mask").fadeIn("fast");
  749. }
  750. //隐藏遮罩
  751. function hideMask() {
  752. $("#mask").fadeOut("fast");
  753. }
  754. //成功提示
  755. function tipsSuccess(msg, isUpadte) {
  756. var html = template("tips_detail_temp", { msg: msg });
  757. var isUpadte = isUpadte == undefined ? true : false;
  758. $("#pop1").html(html);
  759. pop1Handle({
  760. width: 340,
  761. height: 230,
  762. title: "提示",
  763. confirmTitle: "知道了",
  764. onlyButton: true,
  765. confirmHandle: function () {
  766. if (isUpadte) {
  767. location.reload();
  768. }
  769. },
  770. });
  771. }
  772. //公告里面的date字符串截取
  773. template.defaults.imports.dateTime = function (date) {
  774. return date.slice(0, 19);
  775. };
  776. // 格式化日期
  777. template.defaults.imports.dateFormat = function (time) {
  778. var date = new Date(time);
  779. var year = date.getFullYear();
  780. var month =
  781. date.getMonth() + 1 < 10
  782. ? "0" + (date.getMonth() + 1)
  783. : date.getMonth() + 1;
  784. var day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
  785. var hour = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
  786. var minute =
  787. date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
  788. var second =
  789. date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
  790. return (
  791. year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second
  792. );
  793. };
  794. //添加滚动条
  795. function pop1HdScroll() {
  796. $(".pop1-hd").niceScroll();
  797. }
  798. //重新计算
  799. function pop1HdResize() {
  800. pop1HdScroll();
  801. }
  802. //获取上传文件的后缀名
  803. function getFileExt(fileName) {
  804. if (!fileName) {
  805. return "";
  806. }
  807. var _index = fileName.lastIndexOf(".");
  808. if (_index < 1) {
  809. return "";
  810. }
  811. return fileName.substr(_index + 1);
  812. }
  813. //是否是允许上传文件格式
  814. function isAllowFile(fileName, allowType) {
  815. var fileExt = getFileExt(fileName).toLowerCase();
  816. if (!allowType) {
  817. allowType = ["jpg", "jpeg", "png"];
  818. }
  819. if ($.inArray(fileExt, allowType) != -1) {
  820. return true;
  821. }
  822. return false;
  823. }
  824. // 防抖
  825. function debounce(fn, delay) {
  826. var timer = null;
  827. return function () {
  828. var self = this,
  829. args = arguments;
  830. clearTimeout(timer);
  831. timer = setTimeout(function () {
  832. fn.apply(self, args);
  833. }, delay);
  834. };
  835. }
  836. // ------------------------------
  837. // -------------交互---------
  838. // 获取公告列表3条
  839. function getNoticeList(data) {
  840. $("#notice_list .loading").show();
  841. $.ajax({
  842. type: "POST",
  843. contentType: "application/json;charset=UTF-8",
  844. url: baseUrl + "user/data/fetchDataList/notice",
  845. data: JSON.stringify(data),
  846. success: function (res) {
  847. if (res.status == 200) {
  848. $("#notice_list .loading").hide();
  849. var html = template("notice_list_temp", res);
  850. $("#notice_list").html(html);
  851. // 公告详情
  852. $("#notice_list .detail").on("click", function () {
  853. //获取id
  854. var id = $(this).data("id");
  855. // 过滤数据
  856. var resFilter = [];
  857. for (var i = 0; i < res.list.length; i++) {
  858. if (res.list[i]["id"] == id) {
  859. resFilter = res.list[i];
  860. }
  861. }
  862. //填充弹窗数据
  863. var html = template("notice_detail_temp", resFilter);
  864. $("#pop1").html(html);
  865. //弹窗展示
  866. pop1Handle({
  867. title: "公告详情",
  868. confirmTitle: "知道了",
  869. onlyButton: true,
  870. });
  871. });
  872. }
  873. },
  874. error: function (err) {
  875. console.log(err);
  876. },
  877. });
  878. }
  879. //获取常见问题
  880. function getSolutionList(data) {
  881. $("#solution_list").hide().next(".loading").show();
  882. $.ajax({
  883. type: "POST",
  884. contentType: "application/json;charset=UTF-8",
  885. url: baseUrl + "solution/fetchDataList/solution",
  886. data: JSON.stringify(data),
  887. success: function (res) {
  888. if (res.status == 200) {
  889. //搜索问题
  890. if (isSearch) {
  891. solution_arr.list = [];
  892. }
  893. solution_arr.list = solution_arr.list.concat(res.list);
  894. var html = template("solution_list_temp", solution_arr);
  895. $("#solution_list").html(html);
  896. //触发
  897. $("#solution_list").getNiceScroll().resize();
  898. // 点击详情
  899. $("#solution_list .detail").on("click", function () {
  900. //获取id
  901. var id = $(this).data("id");
  902. // 过滤数据
  903. var resFilter = [];
  904. for (var i = 0; i < solution_arr.list.length; i++) {
  905. if (solution_arr.list[i]["id"] == id) {
  906. resFilter = solution_arr.list[i];
  907. }
  908. }
  909. //点赞是否禁用
  910. getStarIf(id, function (data) {
  911. resFilter.starIf = data.result;
  912. //填充弹窗数据
  913. var html = template("solution_detail_temp", resFilter);
  914. $("#pop1").html(html);
  915. //弹窗展示
  916. pop1Handle({
  917. title: "知识库查看",
  918. confirmTitle: "点赞(" + resFilter.star + ")",
  919. onlyButton: true,
  920. oneConfirmClose: false,
  921. confirmHandle: function () {
  922. if (resFilter.starIf) {
  923. //可以点赞
  924. $.ajax({
  925. type: "GET",
  926. contentType: "application/json;charset=UTF-8",
  927. url:
  928. baseUrl +
  929. "solution/star/requester/" +
  930. resFilter.id +
  931. "/" +
  932. loginUser.id,
  933. cache: false,
  934. success: function (res) {
  935. if (res.status == 200) {
  936. tipsSuccess("点赞成功");
  937. }
  938. },
  939. error: function (err) {
  940. console.log(err);
  941. },
  942. });
  943. } else {
  944. //不能点赞
  945. tipsSuccess("已经点过赞了", false);
  946. }
  947. },
  948. });
  949. });
  950. });
  951. $("#solution_list").show().next(".loading").hide();
  952. }
  953. },
  954. error: function (err) {
  955. console.log(err);
  956. },
  957. });
  958. }
  959. //获取区域列表
  960. function getAreaList(data) {
  961. $.ajax({
  962. type: "POST",
  963. contentType: "application/json;charset=UTF-8",
  964. url: baseUrl + "user/data/fetchDataList/area",
  965. data: JSON.stringify(data),
  966. success: function (res) {
  967. if (res.status == 200) {
  968. var html = template("area_list_temp", res);
  969. $("#area_list").html(html);
  970. }
  971. },
  972. error: function (err) {
  973. console.log(err);
  974. },
  975. });
  976. }
  977. //获取地点列表
  978. function getPlaceList(data) {
  979. $.ajax({
  980. type: "POST",
  981. contentType: "application/json;charset=UTF-8",
  982. url: baseUrl + "user/data/fetchDataList/place",
  983. data: JSON.stringify(data),
  984. success: function (res) {
  985. if (res.status == 200) {
  986. var html = template("place_list_temp", res);
  987. $("#place_list").html(html);
  988. placeList = res.list;
  989. }
  990. },
  991. error: function (err) {
  992. console.log(err);
  993. },
  994. });
  995. }
  996. //获取微信报修ID
  997. function getWxId() {
  998. $.ajax({
  999. type: "GET",
  1000. contentType: "application/json;charset=UTF-8",
  1001. url: baseUrl + "bpm/bpm/restful/wxbx",
  1002. cache: false,
  1003. success: function (res) {
  1004. if (res.status == 200) {
  1005. wxId = res.data;
  1006. }
  1007. },
  1008. error: function (err) {
  1009. console.log(err);
  1010. },
  1011. });
  1012. }
  1013. // 提交报修
  1014. function addBxMsg(data) {
  1015. $.ajax({
  1016. type: "POST",
  1017. contentType: "application/json;charset=UTF-8",
  1018. url: baseUrl + "apply/bpm/addWxIncident",
  1019. data: JSON.stringify(data),
  1020. success: function (res) {
  1021. if (res.state == 200) {
  1022. //按钮禁止取消
  1023. $(this).removeProp("disabled");
  1024. $(this).removeClass("f-submit--disable");
  1025. if (imgList.length > 0) {
  1026. for (var i = 0; i < imgList.length; i++) {
  1027. imgAjaxNum++;
  1028. if (!isLtIe10()) {
  1029. //标准浏览器
  1030. // if (imgList[i].has('id')) {
  1031. // //删除formData中的id,以便提交上传
  1032. // imgList[i]['delete']('id');
  1033. // }
  1034. addImgList(res.incident.id, imgList[i].list);
  1035. } else {
  1036. addImgListIE(res.incident.id, imgList[i].id);
  1037. }
  1038. }
  1039. } else {
  1040. tipsSuccess("提交事件报修成功");
  1041. }
  1042. }
  1043. },
  1044. error: function (err) {
  1045. console.log(err);
  1046. },
  1047. });
  1048. }
  1049. //处理查号
  1050. function handlerCh(val,list){
  1051. //触发
  1052. $("#bx_list").getNiceScroll().resize();
  1053. $("#bx_list").show().next(".loading").hide();
  1054. // 回显
  1055. $("#searchPro1").val(val === "" ? "可简拼、名称搜索" : val);
  1056. //placeholder
  1057. $("#searchPro1")
  1058. .on("focus", function () {
  1059. if ($(this).val() == "可简拼、名称搜索") {
  1060. $(this).val("");
  1061. }
  1062. })
  1063. .on("blur", function () {
  1064. if ($(this).val() == "") {
  1065. $(this).val("可简拼、名称搜索");
  1066. }
  1067. });
  1068. //电话挂号搜索
  1069. $("#searchProSubmit1").on("click", search1);
  1070. $("#searchPro1").on("keyup", function (e) {
  1071. if (e.keyCode == 13) {
  1072. search1();
  1073. }
  1074. });
  1075. //点击单位或部门
  1076. $('.ch-search').click(function(e){
  1077. console.log(list.list);
  1078. console.log($(this).index());
  1079. var index = $(this).index();
  1080. var obj = list.list[index];
  1081. var data = {};
  1082. if(obj.unit.id){
  1083. //部门
  1084. data.list = [obj];
  1085. var html = template("ch_list_temp", data);
  1086. $("#bx_list").html(html);
  1087. //处理
  1088. handlerCh(val,data);
  1089. }else{
  1090. //单位
  1091. $.ajax({
  1092. type: "POST",
  1093. contentType: "application/json;charset=UTF-8",
  1094. url: baseUrl + "user/queryPhone",
  1095. data: JSON.stringify({
  1096. unitId: obj.id
  1097. }),
  1098. success: function (res) {
  1099. if (res.state == 200) {
  1100. data.list = res.data;
  1101. var html = template("ch_list_temp", data);
  1102. $("#bx_list").html(html);
  1103. //处理
  1104. handlerCh(val,data);
  1105. }
  1106. },
  1107. error: function (err) {
  1108. console.log(err);
  1109. },
  1110. });
  1111. }
  1112. })
  1113. }
  1114. function search1() {
  1115. bx_pageNum = 0;
  1116. isSearch1 = true;
  1117. getNewBxList(currentBxOrCh);
  1118. }
  1119. //获取最新报修或查号列表,0是报修,1是查号
  1120. function getNewBxList(type) {
  1121. $("#bx_list").hide().next(".loading").show();
  1122. let postData = {};
  1123. let url = "";
  1124. if (type === 0) {
  1125. $('.opcBg_searchBox').hide();
  1126. postData = {
  1127. assignee: loginUser.account,
  1128. state: 0,
  1129. idx: bx_pageNum,
  1130. sum: 10,
  1131. };
  1132. url = "apply/bpm/fetchServiceTasks";
  1133. } else if (type === 1) {
  1134. $('.opcBg_searchBox').show();
  1135. var val =
  1136. $.trim($("#searchPro1").val()) == "可简拼、名称搜索"
  1137. ? ""
  1138. : $.trim($("#searchPro1").val());
  1139. postData = {};
  1140. if(val){
  1141. postData.keyword = val;
  1142. }
  1143. url = "user/queryPhone";
  1144. //没有搜索内容的时候,返回空数组
  1145. if($("#searchPro1").val() === '可简拼、名称搜索'){
  1146. var html = template("ch_search_list_temp", {list:[]});
  1147. $("#bx_list").html(html);
  1148. //处理
  1149. handlerCh(val,{list:[]});
  1150. return;
  1151. }
  1152. }
  1153. $.ajax({
  1154. type: "POST",
  1155. contentType: "application/json;charset=UTF-8",
  1156. url: baseUrl + url,
  1157. data: JSON.stringify(postData),
  1158. success: function (res) {
  1159. console.log(res);
  1160. if (type === 0) {
  1161. // 1592 未受理,1593 不受理,1594 处理中,1595 待评价,1596 已解决,1597 已撤回
  1162. if (res.state == 200) {
  1163. for (var i = 0; i < res.data.length; i++) {
  1164. if (res.data[i].state.id == 1592) {
  1165. res.data[i].processArr = [
  1166. "current",
  1167. false,
  1168. false,
  1169. false,
  1170. false,
  1171. ];
  1172. } else if (res.data[i].state.id == 0) {
  1173. res.data[i].processArr = [true, "current", false, false, false];
  1174. } else if (res.data[i].state.id == 1594) {
  1175. res.data[i].processArr = [true, true, "current", false, false];
  1176. } else if (res.data[i].state.id == 1595) {
  1177. res.data[i].processArr = [true, true, true, "current", false];
  1178. } else {
  1179. res.data[i].processArr = [true, true, true, true, "current"];
  1180. }
  1181. }
  1182. //增加申请时间
  1183. for (var i = 0; i < res.data.length; i++) {
  1184. res.data[i].time = res.data[i].createTime;
  1185. res.data[i].processInstanceId =
  1186. res.data[i].incident.processInstanceId;
  1187. }
  1188. //添加分页数据,汇总
  1189. bx_arr.data = bx_arr.data.concat(res.data);
  1190. var html = template("bx_list_temp", bx_arr);
  1191. $("#bx_list").html(html);
  1192. //触发
  1193. $("#bx_list").getNiceScroll().resize();
  1194. // 详情
  1195. $("#bx_list .r-item-click").on("click", function () {
  1196. //获取id
  1197. var id = $(this).data("id");
  1198. // 过滤数据
  1199. var resFilter = [];
  1200. for (var i = 0; i < bx_arr.data.length; i++) {
  1201. if (bx_arr.data[i]["id"] == id) {
  1202. resFilter = bx_arr.data[i];
  1203. }
  1204. }
  1205. //点击事件详情不同逻辑处理
  1206. getImgList(id, function (data) {
  1207. //获取流程时间
  1208. if (resFilter.processInstanceId) {
  1209. getTimeList(
  1210. resFilter.processInstanceId,
  1211. function (data) {
  1212. resFilter.timeList = data;
  1213. resFilter.timeList.unshift({ endTime: resFilter.time });
  1214. },
  1215. false
  1216. );
  1217. } else {
  1218. resFilter.timeList = [
  1219. { endTime: "" },
  1220. { endTime: "" },
  1221. { endTime: "" },
  1222. { endTime: "" },
  1223. { endTime: "" },
  1224. ];
  1225. }
  1226. resFilter.imgList = data; //添加图片数组
  1227. if (resFilter.state.id == 1592) {
  1228. //未受理
  1229. //添加详情页流程数据
  1230. processMessageData.forEach(function(v){
  1231. v.desc = v.desc.replace(/<.*?>(.*?)<\/.*?>/g, '$1');
  1232. })
  1233. resFilter.processList = processMessageData;
  1234. //填充弹窗数据
  1235. var html = template("bx1_detail_temp", resFilter);
  1236. $("#pop1").html(html);
  1237. //图片放大
  1238. enlarge();
  1239. // 滚动条
  1240. pop1HdResize();
  1241. //弹窗展示
  1242. pop1Handle({
  1243. title: "报修查看",
  1244. confirmTitle: "撤回",
  1245. cancelTitle: "取消",
  1246. onlyButton: false,
  1247. twoConfirmClose: false,
  1248. confirmHandle: function () {
  1249. // setTimeout(function () {
  1250. //填充弹窗数据
  1251. var html = template("back_detail_temp", {});
  1252. $("#pop1").html(html);
  1253. //placeholder
  1254. $(".back-textarea")
  1255. .on("focus", function () {
  1256. if ($(this).val() == "请输入撤回原因") {
  1257. $(this).val("");
  1258. }
  1259. })
  1260. .on("blur", function () {
  1261. if ($(this).val() == "") {
  1262. $(this).val("请输入撤回原因");
  1263. }
  1264. });
  1265. pop1Handle({
  1266. width: 340,
  1267. height: 230,
  1268. title: "撤回原因",
  1269. confirmTitle: "撤回",
  1270. cancelTitle: "取消",
  1271. onlyButton: false,
  1272. twoConfirmClose: false,
  1273. confirmHandle: function () {
  1274. if (
  1275. $.trim($("#pop1 .back-textarea").val()) != "" &&
  1276. $.trim($("#pop1 .back-textarea").val()) !=
  1277. "请输入撤回原因"
  1278. ) {
  1279. bxBack({
  1280. id: id,
  1281. retractReason: $("#pop1 .back-textarea").val(),
  1282. });
  1283. } else {
  1284. alert("撤回原因不能为空");
  1285. }
  1286. },
  1287. });
  1288. // }, 200)
  1289. },
  1290. });
  1291. } else if (resFilter.state.id == 0) {
  1292. //添加详情页流程数据
  1293. processMessageData.forEach(function(v){
  1294. v.desc = v.desc.replace(/<.*?>(.*?)<\/.*?>/g, '$1');
  1295. })
  1296. resFilter.processList = processMessageData;
  1297. //填充弹窗数据
  1298. var html = template("bx2_detail_temp", resFilter);
  1299. $("#pop1").html(html);
  1300. //图片放大
  1301. enlarge();
  1302. // 滚动条
  1303. pop1HdResize();
  1304. //弹窗展示
  1305. pop1Handle({
  1306. title: "报修查看",
  1307. confirmTitle: "撤回",
  1308. cancelTitle: "取消",
  1309. onlyButton: false,
  1310. confirmHandle: function () {
  1311. // setTimeout(function () {
  1312. //填充弹窗数据
  1313. var html = template("back_detail_temp", {});
  1314. $("#pop1").html(html);
  1315. //placeholder
  1316. $(".back-textarea")
  1317. .on("focus", function () {
  1318. if ($(this).val() == "请输入撤回原因") {
  1319. $(this).val("");
  1320. }
  1321. })
  1322. .on("blur", function () {
  1323. if ($(this).val() == "") {
  1324. $(this).val("请输入撤回原因");
  1325. }
  1326. });
  1327. pop1Handle({
  1328. width: 340,
  1329. height: 230,
  1330. title: "撤回原因",
  1331. confirmTitle: "撤回",
  1332. cancelTitle: "取消",
  1333. onlyButton: false,
  1334. twoConfirmClose: false,
  1335. confirmHandle: function () {
  1336. if (
  1337. $.trim($("#pop1 .back-textarea").val()) != "" ||
  1338. $.trim($("#pop1 .back-textarea").val()) !=
  1339. "请输入撤回原因"
  1340. ) {
  1341. bxBack({
  1342. id: id,
  1343. retractReason: $("#pop1 .back-textarea").val(),
  1344. });
  1345. } else {
  1346. alert("撤回原因不能为空");
  1347. }
  1348. },
  1349. });
  1350. // }, 200)
  1351. },
  1352. });
  1353. } else if (resFilter.state.id == 1594) {
  1354. //添加详情页流程数据
  1355. processMessageData.forEach(function(v){
  1356. v.desc = v.desc.replace(/<.*?>(.*?)<\/.*?>/g, '$1');
  1357. })
  1358. resFilter.processList = processMessageData;
  1359. //填充弹窗数据
  1360. var html = template("bx3_detail_temp", resFilter);
  1361. $("#pop1").html(html);
  1362. //图片放大
  1363. enlarge();
  1364. // 滚动条
  1365. pop1HdResize();
  1366. //弹窗展示
  1367. pop1Handle({
  1368. title: "报修查看",
  1369. confirmTitle: "知道了",
  1370. onlyButton: true,
  1371. });
  1372. } else if (resFilter.state.id == 1595) {
  1373. //添加详情页流程数据
  1374. processMessageData.forEach(function(v){
  1375. v.desc = v.desc.replace(/<.*?>(.*?)<\/.*?>/g, '$1');
  1376. })
  1377. resFilter.processList = processMessageData;
  1378. //填充弹窗数据
  1379. var html = template("bx4_detail_temp", resFilter);
  1380. $("#pop1").html(html);
  1381. //图片放大
  1382. enlarge();
  1383. // 滚动条
  1384. pop1HdResize();
  1385. //弹窗展示
  1386. pop1Handle({
  1387. title: "报修查看",
  1388. confirmTitle: "去评价",
  1389. cancelTitle: "取消",
  1390. onlyButton: false,
  1391. twoConfirmClose: false,
  1392. confirmHandle: function () {
  1393. var currentIndex = -1;
  1394. //填充弹窗数据
  1395. resFilter.dictionary = dictionary;
  1396. var html = template("bx4_detail_1_temp", resFilter);
  1397. $("#pop1").html(html);
  1398. //评价placeholder
  1399. $(".evaluate-textarea")
  1400. .on("focus", function () {
  1401. if (
  1402. $(this).val() ==
  1403. "你可以从响应速度、解决情况、服务态度等方面,给我们作出相应的评价"
  1404. ) {
  1405. $(this).val("");
  1406. }
  1407. })
  1408. .on("blur", function () {
  1409. if ($(this).val() == "") {
  1410. $(this).val(
  1411. "你可以从响应速度、解决情况、服务态度等方面,给我们作出相应的评价"
  1412. );
  1413. }
  1414. });
  1415. // 滚动条
  1416. pop1HdResize();
  1417. //评分
  1418. $("#evaluate .star")
  1419. .find("i")
  1420. .hover(
  1421. function () {
  1422. var i = $(this).index();
  1423. $("#evaluate .star")
  1424. .find("i")
  1425. .removeClass("active");
  1426. $("#evaluate .star")
  1427. .find("i:lt(" + i + ")")
  1428. .addClass("active");
  1429. $("#evaluate .star")
  1430. .find("i:eq(" + i + ")")
  1431. .addClass("active");
  1432. $("#evaluate .star-text").text(dictionary[i].name);
  1433. },
  1434. function () {
  1435. var i = $(this).index();
  1436. currentIndex = i;
  1437. $("#evaluate .star")
  1438. .find("i:gt(" + i + ")")
  1439. .removeClass("active");
  1440. }
  1441. );
  1442. // setTimeout(function () {
  1443. pop1Handle({
  1444. title: "报修查看",
  1445. confirmTitle: "提交评价",
  1446. cancelTitle: "取消",
  1447. onlyButton: false,
  1448. twoConfirmClose: false,
  1449. confirmHandle: function () {
  1450. if (
  1451. $.trim($("#pop1 .evaluate-textarea").val()) != "" &&
  1452. $.trim($("#pop1 .evaluate-textarea").val()) !=
  1453. "你可以从响应速度、解决情况、服务态度等方面,给我们作出相应的评价"
  1454. ) {
  1455. addDegree({
  1456. id: resFilter.id,
  1457. degree:
  1458. currentIndex > 0
  1459. ? dictionary[currentIndex].id
  1460. : dictionary[4].id,
  1461. degreeRemark: $("#pop1 .evaluate-textarea").val(),
  1462. });
  1463. } else {
  1464. alert("请输入评价的内容");
  1465. }
  1466. },
  1467. });
  1468. // }, 500)
  1469. },
  1470. });
  1471. } else if (resFilter.state.id == 1593) {
  1472. //添加详情页流程数据
  1473. processMessageData.forEach(function(v){
  1474. v.desc = v.desc.replace(/<.*?>(.*?)<\/.*?>/g, '$1');
  1475. })
  1476. resFilter.processList = processMessageData;
  1477. //填充弹窗数据
  1478. var html = template("bx5_detail_temp", resFilter);
  1479. $("#pop1").html(html);
  1480. //图片放大
  1481. enlarge();
  1482. // 滚动条
  1483. pop1HdResize();
  1484. //弹窗展示
  1485. pop1Handle({
  1486. title: "报修查看",
  1487. confirmTitle: "知道了",
  1488. onlyButton: true,
  1489. });
  1490. } else if (resFilter.state.id == 1597) {
  1491. //添加详情页流程数据
  1492. processMessageData.forEach(function(v){
  1493. v.desc = v.desc.replace(/<.*?>(.*?)<\/.*?>/g, '$1');
  1494. })
  1495. resFilter.processList = processMessageData;
  1496. //填充弹窗数据
  1497. var html = template("bx6_detail_temp", resFilter);
  1498. $("#pop1").html(html);
  1499. //图片放大
  1500. enlarge();
  1501. // 滚动条
  1502. pop1HdResize();
  1503. //弹窗展示
  1504. pop1Handle({
  1505. title: "报修查看",
  1506. confirmTitle: "知道了",
  1507. onlyButton: true,
  1508. });
  1509. } else {
  1510. //添加详情页流程数据
  1511. processMessageData.forEach(function(v){
  1512. v.desc = v.desc.replace(/<.*?>(.*?)<\/.*?>/g, '$1');
  1513. })
  1514. resFilter.processList = processMessageData;
  1515. //填充弹窗数据
  1516. var html = template("bx7_detail_temp", resFilter);
  1517. $("#pop1").html(html);
  1518. //图片放大
  1519. enlarge();
  1520. // 滚动条
  1521. pop1HdResize();
  1522. //弹窗展示
  1523. pop1Handle({
  1524. title: "报修查看",
  1525. confirmTitle: "知道了",
  1526. onlyButton: true,
  1527. });
  1528. }
  1529. });
  1530. });
  1531. $("#bx_list").show().next(".loading").hide();
  1532. }
  1533. } else if (type === 1) {
  1534. if (res.state == 200) {
  1535. //搜索挂号
  1536. if (isSearch1) {
  1537. ch_arr.list = [];
  1538. }
  1539. //添加分页数据,汇总
  1540. // ch_arr.list = ch_arr.list.concat(res.data);
  1541. ch_arr.list = res.data;
  1542. var html = template("ch_search_list_temp", ch_arr);
  1543. $("#bx_list").html(html);
  1544. handlerCh(val,ch_arr);
  1545. }
  1546. }
  1547. },
  1548. error: function (err) {
  1549. console.log(err);
  1550. },
  1551. });
  1552. }
  1553. //详情图片点击放大预览
  1554. function enlarge() {
  1555. $(".pop1-hd__itemBxImgs").on("click", function () {
  1556. $(this)
  1557. .closest(".pop1-hd__itemListImgs")
  1558. .after(
  1559. $(
  1560. '<div class="pop1-hd__itemBxImgsMask"><img src="' +
  1561. $(this).attr("src") +
  1562. '"></div>'
  1563. )
  1564. );
  1565. $(".pop1-hd__itemBxImgsMask").on("click", function () {
  1566. $(this).remove();
  1567. });
  1568. });
  1569. }
  1570. //获取详情页流程数据
  1571. function getProcessMessageData() {
  1572. $.ajax({
  1573. type: "POST",
  1574. contentType: "application/json;charset=UTF-8",
  1575. url: baseUrl + "sysinfo/data/fetchDataList/dictionary",
  1576. data: JSON.stringify({
  1577. idx: 0,
  1578. sum: 10,
  1579. dictionary: { key: "wxincident_task_default" },
  1580. }),
  1581. success: function (res) {
  1582. if (res.status == 200) {
  1583. processMessageData = res.list;
  1584. }
  1585. },
  1586. error: function (err) {
  1587. console.log(err);
  1588. },
  1589. });
  1590. }
  1591. //撤回操作
  1592. function bxBack(data) {
  1593. //{"id":28,"retractReason":"asdas"}
  1594. $.ajax({
  1595. type: "POST",
  1596. contentType: "application/json;charset=UTF-8",
  1597. url: baseUrl + "apply/bpm/retract",
  1598. data: JSON.stringify(data),
  1599. success: function (res) {
  1600. if (res.state == 200) {
  1601. tipsSuccess("撤销成功");
  1602. }
  1603. },
  1604. error: function (err) {
  1605. console.log(err);
  1606. },
  1607. });
  1608. }
  1609. //获取评价五颗星的信息
  1610. function getDictionary() {
  1611. $.ajax({
  1612. type: "POST",
  1613. contentType: "application/json;charset=UTF-8",
  1614. url: baseUrl + "common/common/getDictionary",
  1615. data: JSON.stringify({ key: "incident_degree", type: "list" }),
  1616. success: function (res) {
  1617. dictionary = res;
  1618. dictionary.sort(function (a, b) {
  1619. return a.value - b.value;
  1620. });
  1621. },
  1622. error: function (err) {
  1623. console.log(err);
  1624. },
  1625. });
  1626. }
  1627. //提交评价
  1628. function addDegree(data) {
  1629. $.ajax({
  1630. type: "POST",
  1631. contentType: "application/json;charset=UTF-8",
  1632. url: baseUrl + "apply/bpm/degree",
  1633. data: JSON.stringify(data),
  1634. success: function (res) {
  1635. if (res.state == 200) {
  1636. tipsSuccess("您的评价已提交!");
  1637. }
  1638. },
  1639. error: function (err) {
  1640. console.log(err);
  1641. },
  1642. });
  1643. }
  1644. //注销
  1645. function logout() {
  1646. //单点登录
  1647. if (sessionStorage.getItem("isSSo") === "1") {
  1648. sessionStorage.removeItem("loginUser");
  1649. sessionStorage.removeItem("repair_main");
  1650. sessionStorage.removeItem("isSSo");
  1651. location.href = "http://" + location.hostname + ":8080/pcreq_logout.jsp";
  1652. } else {
  1653. $.ajax({
  1654. type: "POST",
  1655. contentType: "application/json;charset=UTF-8",
  1656. url: baseUrl + "auth/logout2",
  1657. data: JSON.stringify({}),
  1658. success: function (res) {
  1659. if (res.status == 200) {
  1660. sessionStorage.removeItem("loginUser");
  1661. sessionStorage.removeItem("repair_main");
  1662. sessionStorage.removeItem("isSSo");
  1663. window.location.href = "login.html";
  1664. }
  1665. },
  1666. error: function (err) {
  1667. console.log(err);
  1668. },
  1669. });
  1670. }
  1671. }
  1672. //图片上传
  1673. function addImgList(id, data) {
  1674. $.ajax({
  1675. type: "POST",
  1676. contentType: "application/json;charset=UTF-8",
  1677. url:
  1678. baseUrl +
  1679. "common/common/uploadAttachment/wxIncident/" +
  1680. id,
  1681. data: data,
  1682. cache: false,
  1683. processData: false,
  1684. contentType: false,
  1685. success: function (res) {
  1686. if (res.status == 200) {
  1687. imgAjaxNum--;
  1688. if (imgAjaxNum == 0) {
  1689. tipsSuccess("提交事件报修成功");
  1690. }
  1691. }
  1692. },
  1693. error: function (err) {
  1694. console.log(err);
  1695. },
  1696. });
  1697. }
  1698. //图片上传(IE<10)
  1699. function addImgListIE(id, index) {
  1700. var len = $("#f-images-list").find(".f-images-item").length;
  1701. var n = 0;
  1702. if (imgList.length == 3) {
  1703. n = len;
  1704. } else {
  1705. n = len - 1;
  1706. }
  1707. for (var i = 0; i < n; i++) {
  1708. if (
  1709. $("#f-images-list").find(".f-images-item").eq(i).data("id") == index
  1710. ) {
  1711. $("#f-images-list")
  1712. .find(".f-images-item")
  1713. .eq(i)
  1714. .find(".form-file")
  1715. .attr(
  1716. "action",
  1717. baseUrl +
  1718. "common/common/uploadAttachment/wxIncident/" +
  1719. id
  1720. )
  1721. .submit();
  1722. imgAjaxNum--;
  1723. }
  1724. }
  1725. if (imgAjaxNum == 0) {
  1726. tipsSuccess("提交事件报修成功");
  1727. }
  1728. }
  1729. //图片获取
  1730. function getImgList(id, successFn) {
  1731. $.ajax({
  1732. type: "GET",
  1733. contentType: "application/json;charset=UTF-8",
  1734. url:
  1735. baseUrl + "common/common/listAttachment/wxIncident/" + id,
  1736. cache: false,
  1737. success: function (res) {
  1738. if (res.status == 200) {
  1739. successFn(res.data);
  1740. }
  1741. },
  1742. error: function (err) {
  1743. console.log(err);
  1744. },
  1745. });
  1746. }
  1747. //获取流程时间
  1748. function getTimeList(processInstanceId, successFn, bool) {
  1749. $.ajax({
  1750. type: "POST",
  1751. contentType: "application/json;charset=UTF-8",
  1752. url: baseUrl + "bpm/bpm/flowTracing/" + processInstanceId,
  1753. cache: false,
  1754. async: bool,
  1755. success: function (res) {
  1756. if (res.status == 200) {
  1757. successFn(res.data);
  1758. }
  1759. },
  1760. error: function (err) {
  1761. console.log(err);
  1762. },
  1763. });
  1764. }
  1765. // 获取是否点过赞
  1766. function getStarIf(id, successFn) {
  1767. $.ajax({
  1768. type: "GET",
  1769. contentType: "application/json;charset=UTF-8",
  1770. url: baseUrl + "solution/canStar/requester/" + id + "/" + loginUser.id,
  1771. cache: false,
  1772. success: function (res) {
  1773. if (res.status == 200) {
  1774. successFn(res);
  1775. }
  1776. },
  1777. error: function (err) {
  1778. console.log(err);
  1779. },
  1780. });
  1781. }
  1782. });