index.js 62 KB

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