index.js 63 KB

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