index.js 60 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854
  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 (resFilter.list[0] && 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 (resFilter.list[0] && 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. loginUser.place && $("#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 ? loginUser.place.area.id : null;
  1117. });
  1118. var html = template("place_list_temp", res);
  1119. $("#place_list").html(html);
  1120. loginUser.place && $("#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 ? loginUser.place.id : null;
  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. state: 0,
  1278. idx: bx_pageNum,
  1279. sum: 10,
  1280. };
  1281. url = "apply/bpm/fetchServiceTasks";
  1282. } else if (type === 1) {
  1283. $(".opcBg_searchBox").show();
  1284. var val =
  1285. $.trim($("#searchPro1").val()) == "可简拼、名称搜索"
  1286. ? ""
  1287. : $.trim($("#searchPro1").val());
  1288. postData = {};
  1289. if (val) {
  1290. postData.keyword = val;
  1291. }
  1292. url = "user/queryPhone";
  1293. //没有搜索内容的时候,返回空数组
  1294. if ($("#searchPro1").val() === "可简拼、名称搜索") {
  1295. var html = template("ch_search_list_temp", { list: [] });
  1296. $("#bx_list").html(html);
  1297. //处理
  1298. handlerCh(val, { list: [] });
  1299. return;
  1300. }
  1301. }
  1302. $.ajax({
  1303. type: "POST",
  1304. contentType: "application/json;charset=UTF-8",
  1305. url: baseUrl + url,
  1306. data: JSON.stringify(postData),
  1307. success: function (res) {
  1308. console.log(res);
  1309. if (type === 0) {
  1310. // 1592 未受理,1593 不受理,1594 处理中,1595 待评价,1596 已解决,1597 已撤回
  1311. if (res.state == 200) {
  1312. for (var i = 0; i < res.data.length; i++) {
  1313. if (res.data[i].state.id == 1592) {
  1314. res.data[i].processArr = [
  1315. "current",
  1316. false,
  1317. false,
  1318. false,
  1319. false,
  1320. ];
  1321. } else if (res.data[i].state.id == 0) {
  1322. res.data[i].processArr = [true, "current", false, false, false];
  1323. } else if (res.data[i].state.id == 1594) {
  1324. res.data[i].processArr = [true, true, "current", false, false];
  1325. } else if (res.data[i].state.id == 1595) {
  1326. res.data[i].processArr = [true, true, true, "current", false];
  1327. } else {
  1328. res.data[i].processArr = [true, true, true, true, "current"];
  1329. }
  1330. }
  1331. //增加申请时间
  1332. for (var i = 0; i < res.data.length; i++) {
  1333. res.data[i].time = res.data[i].createTime;
  1334. res.data[i].processInstanceId =
  1335. res.data[i].incident.processInstanceId;
  1336. res.data[i].wxIncidentWithCmdb = wxIncidentWithCmdb; //是否展示资产带入模板
  1337. }
  1338. //添加分页数据,汇总
  1339. bx_arr.data = bx_arr.data.concat(res.data);
  1340. var html = template("bx_list_temp", bx_arr);
  1341. $("#bx_list").html(html);
  1342. //触发
  1343. $("#bx_list").getNiceScroll().resize();
  1344. // 详情
  1345. $("#bx_list .r-item-click").on("click", function () {
  1346. //获取id
  1347. var id = $(this).data("id");
  1348. // 过滤数据
  1349. var resFilter = [];
  1350. for (var i = 0; i < bx_arr.data.length; i++) {
  1351. if (bx_arr.data[i]["id"] == id) {
  1352. resFilter = bx_arr.data[i];
  1353. }
  1354. }
  1355. //点击事件详情不同逻辑处理
  1356. getImgList(id, function (data) {
  1357. //获取流程时间
  1358. if (resFilter.processInstanceId) {
  1359. getTimeList(
  1360. resFilter.processInstanceId,
  1361. function (data) {
  1362. resFilter.timeList = data;
  1363. resFilter.timeList.unshift({ endTime: resFilter.time });
  1364. },
  1365. false
  1366. );
  1367. } else {
  1368. resFilter.timeList = [
  1369. { endTime: "" },
  1370. { endTime: "" },
  1371. { endTime: "" },
  1372. { endTime: "" },
  1373. { endTime: "" },
  1374. ];
  1375. }
  1376. resFilter.imgList = data; //添加图片数组
  1377. if (resFilter.state.id == 1592) {
  1378. //未受理
  1379. //添加详情页流程数据
  1380. processMessageData.forEach(function (v) {
  1381. v.desc = v.desc.replace(/<.*?>(.*?)<\/.*?>/g, "$1");
  1382. });
  1383. resFilter.processList = processMessageData;
  1384. //填充弹窗数据
  1385. var html = template("bx1_detail_temp", resFilter);
  1386. $("#pop1").html(html);
  1387. //图片放大
  1388. enlarge();
  1389. // 滚动条
  1390. pop1HdResize();
  1391. //弹窗展示
  1392. pop1Handle({
  1393. title: "报修查看",
  1394. confirmTitle: "取消",
  1395. onlyButton: true
  1396. });
  1397. } else if (resFilter.state.id == 0) {
  1398. //添加详情页流程数据
  1399. processMessageData.forEach(function (v) {
  1400. v.desc = v.desc.replace(/<.*?>(.*?)<\/.*?>/g, "$1");
  1401. });
  1402. resFilter.processList = processMessageData;
  1403. //填充弹窗数据
  1404. var html = template("bx2_detail_temp", resFilter);
  1405. $("#pop1").html(html);
  1406. //图片放大
  1407. enlarge();
  1408. // 滚动条
  1409. pop1HdResize();
  1410. //弹窗展示
  1411. pop1Handle({
  1412. title: "报修查看",
  1413. confirmTitle: "取消",
  1414. onlyButton: true
  1415. });
  1416. } else if (resFilter.state.id == 1594) {
  1417. //添加详情页流程数据
  1418. processMessageData.forEach(function (v) {
  1419. v.desc = v.desc.replace(/<.*?>(.*?)<\/.*?>/g, "$1");
  1420. });
  1421. resFilter.processList = processMessageData;
  1422. //填充弹窗数据
  1423. var html = template("bx3_detail_temp", resFilter);
  1424. $("#pop1").html(html);
  1425. //图片放大
  1426. enlarge();
  1427. // 滚动条
  1428. pop1HdResize();
  1429. //弹窗展示
  1430. pop1Handle({
  1431. title: "报修查看",
  1432. confirmTitle: "知道了",
  1433. onlyButton: true,
  1434. });
  1435. } else if (resFilter.state.id == 1595) {
  1436. //添加详情页流程数据
  1437. processMessageData.forEach(function (v) {
  1438. v.desc = v.desc.replace(/<.*?>(.*?)<\/.*?>/g, "$1");
  1439. });
  1440. resFilter.processList = processMessageData;
  1441. //填充弹窗数据
  1442. var html = template("bx4_detail_temp", resFilter);
  1443. $("#pop1").html(html);
  1444. //图片放大
  1445. enlarge();
  1446. // 滚动条
  1447. pop1HdResize();
  1448. //弹窗展示
  1449. pop1Handle({
  1450. title: "报修查看",
  1451. confirmTitle: "去评价",
  1452. cancelTitle: "取消",
  1453. onlyButton: false,
  1454. twoConfirmClose: false,
  1455. confirmHandle: function () {
  1456. var currentIndex = -1;
  1457. //填充弹窗数据
  1458. resFilter.dictionary = dictionary;
  1459. var html = template("bx4_detail_1_temp", resFilter);
  1460. $("#pop1").html(html);
  1461. //评价placeholder
  1462. $(".evaluate-textarea")
  1463. .on("focus", function () {
  1464. if (
  1465. $(this).val() ==
  1466. "你可以从响应速度、解决情况、服务态度等方面,给我们作出相应的评价"
  1467. ) {
  1468. $(this).val("");
  1469. }
  1470. })
  1471. .on("blur", function () {
  1472. if ($(this).val() == "") {
  1473. $(this).val(
  1474. "你可以从响应速度、解决情况、服务态度等方面,给我们作出相应的评价"
  1475. );
  1476. }
  1477. });
  1478. // 滚动条
  1479. pop1HdResize();
  1480. //评分
  1481. $("#evaluate .star")
  1482. .find("i")
  1483. .hover(
  1484. function () {
  1485. var i = $(this).index();
  1486. $("#evaluate .star")
  1487. .find("i")
  1488. .removeClass("active");
  1489. $("#evaluate .star")
  1490. .find("i:lt(" + i + ")")
  1491. .addClass("active");
  1492. $("#evaluate .star")
  1493. .find("i:eq(" + i + ")")
  1494. .addClass("active");
  1495. $("#evaluate .star-text").text(dictionary[i].name);
  1496. },
  1497. function () {
  1498. var i = $(this).index();
  1499. currentIndex = i;
  1500. $("#evaluate .star")
  1501. .find("i:gt(" + i + ")")
  1502. .removeClass("active");
  1503. }
  1504. );
  1505. // setTimeout(function () {
  1506. pop1Handle({
  1507. title: "报修查看",
  1508. confirmTitle: "提交评价",
  1509. cancelTitle: "取消",
  1510. onlyButton: false,
  1511. twoConfirmClose: false,
  1512. confirmHandle: function () {
  1513. if (
  1514. $.trim($("#pop1 .evaluate-textarea").val()) != "" &&
  1515. $.trim($("#pop1 .evaluate-textarea").val()) !=
  1516. "你可以从响应速度、解决情况、服务态度等方面,给我们作出相应的评价"
  1517. ) {
  1518. addDegree({
  1519. id: resFilter.id,
  1520. degree:
  1521. currentIndex > 0
  1522. ? dictionary[currentIndex].id
  1523. : dictionary[4].id,
  1524. degreeRemark: $("#pop1 .evaluate-textarea").val(),
  1525. });
  1526. } else {
  1527. alert("请输入评价的内容");
  1528. }
  1529. },
  1530. });
  1531. // }, 500)
  1532. },
  1533. });
  1534. } else if (resFilter.state.id == 1593) {
  1535. //添加详情页流程数据
  1536. processMessageData.forEach(function (v) {
  1537. v.desc = v.desc.replace(/<.*?>(.*?)<\/.*?>/g, "$1");
  1538. });
  1539. resFilter.processList = processMessageData;
  1540. //填充弹窗数据
  1541. var html = template("bx5_detail_temp", resFilter);
  1542. $("#pop1").html(html);
  1543. //图片放大
  1544. enlarge();
  1545. // 滚动条
  1546. pop1HdResize();
  1547. //弹窗展示
  1548. pop1Handle({
  1549. title: "报修查看",
  1550. confirmTitle: "知道了",
  1551. onlyButton: true,
  1552. });
  1553. } else if (resFilter.state.id == 1597) {
  1554. //添加详情页流程数据
  1555. processMessageData.forEach(function (v) {
  1556. v.desc = v.desc.replace(/<.*?>(.*?)<\/.*?>/g, "$1");
  1557. });
  1558. resFilter.processList = processMessageData;
  1559. //填充弹窗数据
  1560. var html = template("bx6_detail_temp", resFilter);
  1561. $("#pop1").html(html);
  1562. //图片放大
  1563. enlarge();
  1564. // 滚动条
  1565. pop1HdResize();
  1566. //弹窗展示
  1567. pop1Handle({
  1568. title: "报修查看",
  1569. confirmTitle: "知道了",
  1570. onlyButton: true,
  1571. });
  1572. } else {
  1573. //添加详情页流程数据
  1574. processMessageData.forEach(function (v) {
  1575. v.desc = v.desc.replace(/<.*?>(.*?)<\/.*?>/g, "$1");
  1576. });
  1577. resFilter.processList = processMessageData;
  1578. //填充弹窗数据
  1579. var html = template("bx7_detail_temp", resFilter);
  1580. $("#pop1").html(html);
  1581. //图片放大
  1582. enlarge();
  1583. // 滚动条
  1584. pop1HdResize();
  1585. //弹窗展示
  1586. pop1Handle({
  1587. title: "报修查看",
  1588. confirmTitle: "知道了",
  1589. onlyButton: true,
  1590. });
  1591. }
  1592. });
  1593. });
  1594. $("#bx_list").show().next(".loading").hide();
  1595. }
  1596. } else if (type === 1) {
  1597. if (res.state == 200) {
  1598. //搜索挂号
  1599. if (isSearch1) {
  1600. ch_arr.list = [];
  1601. }
  1602. //添加分页数据,汇总
  1603. // ch_arr.list = ch_arr.list.concat(res.data);
  1604. ch_arr.list = res.data;
  1605. var html = template("ch_search_list_temp", ch_arr);
  1606. $("#bx_list").html(html);
  1607. handlerCh(val, ch_arr);
  1608. }
  1609. }
  1610. },
  1611. error: function (err) {
  1612. console.log(err);
  1613. },
  1614. });
  1615. }
  1616. //详情图片点击放大预览
  1617. function enlarge() {
  1618. $(".pop1-hd__itemBxImgs").on("click", function () {
  1619. $(this)
  1620. .closest(".pop1-hd__itemListImgs")
  1621. .after(
  1622. $(
  1623. '<div class="pop1-hd__itemBxImgsMask"><img src="' +
  1624. $(this).attr("src") +
  1625. '"></div>'
  1626. )
  1627. );
  1628. $(".pop1-hd__itemBxImgsMask").on("click", function () {
  1629. $(this).remove();
  1630. });
  1631. });
  1632. }
  1633. //获取详情页流程数据
  1634. function getProcessMessageData() {
  1635. $.ajax({
  1636. type: "POST",
  1637. contentType: "application/json;charset=UTF-8",
  1638. url: baseUrl + "sysinfo/data/fetchDataList/dictionary",
  1639. data: JSON.stringify({
  1640. idx: 0,
  1641. sum: 10,
  1642. dictionary: { key: "wxincident_task_default" },
  1643. }),
  1644. success: function (res) {
  1645. if (res.status == 200) {
  1646. processMessageData = res.list;
  1647. }
  1648. },
  1649. error: function (err) {
  1650. console.log(err);
  1651. },
  1652. });
  1653. }
  1654. //撤回操作
  1655. function bxBack(data) {
  1656. //{"id":28,"retractReason":"asdas"}
  1657. $.ajax({
  1658. type: "POST",
  1659. contentType: "application/json;charset=UTF-8",
  1660. url: baseUrl + "apply/bpm/retract",
  1661. data: JSON.stringify(data),
  1662. success: function (res) {
  1663. if (res.state == 200) {
  1664. tipsSuccess("撤销成功");
  1665. }
  1666. },
  1667. error: function (err) {
  1668. console.log(err);
  1669. },
  1670. });
  1671. }
  1672. //获取评价五颗星的信息
  1673. function getDictionary() {
  1674. $.ajax({
  1675. type: "POST",
  1676. contentType: "application/json;charset=UTF-8",
  1677. url: baseUrl + "common/common/getDictionary",
  1678. data: JSON.stringify({ key: "incident_degree", type: "list" }),
  1679. success: function (res) {
  1680. dictionary = res;
  1681. dictionary.sort(function (a, b) {
  1682. return a.value - b.value;
  1683. });
  1684. },
  1685. error: function (err) {
  1686. console.log(err);
  1687. },
  1688. });
  1689. }
  1690. //提交评价
  1691. function addDegree(data) {
  1692. $.ajax({
  1693. type: "POST",
  1694. contentType: "application/json;charset=UTF-8",
  1695. url: baseUrl + "apply/bpm/degree",
  1696. data: JSON.stringify(data),
  1697. success: function (res) {
  1698. if (res.state == 200) {
  1699. tipsSuccess("您的评价已提交!");
  1700. }
  1701. },
  1702. error: function (err) {
  1703. console.log(err);
  1704. },
  1705. });
  1706. }
  1707. //注销
  1708. function logout() {
  1709. //单点登录
  1710. if (sessionStorage.getItem("isSSo") === "1") {
  1711. sessionStorage.removeItem("loginUser");
  1712. sessionStorage.removeItem("repair_main");
  1713. sessionStorage.removeItem("isSSo");
  1714. location.href = "http://" + location.hostname + "/pcreq_logout.jsp";
  1715. } else {
  1716. $.ajax({
  1717. type: "POST",
  1718. contentType: "application/json;charset=UTF-8",
  1719. url: baseUrl + "auth/logout2",
  1720. data: JSON.stringify({}),
  1721. success: function (res) {
  1722. if (res.status == 200) {
  1723. sessionStorage.removeItem("loginUser");
  1724. sessionStorage.removeItem("repair_main");
  1725. sessionStorage.removeItem("isSSo");
  1726. window.location.href = "login.html";
  1727. }
  1728. },
  1729. error: function (err) {
  1730. console.log(err);
  1731. },
  1732. });
  1733. }
  1734. }
  1735. //图片上传
  1736. function addImgList(id, data) {
  1737. $.ajax({
  1738. type: "POST",
  1739. contentType: "application/json;charset=UTF-8",
  1740. url:
  1741. baseUrl +
  1742. "common/common/uploadAttachment/wechatRequesterIncident/" +
  1743. id,
  1744. data: data,
  1745. cache: false,
  1746. processData: false,
  1747. contentType: false,
  1748. success: function (res) {
  1749. if (res.status == 200) {
  1750. imgAjaxNum--;
  1751. if (imgAjaxNum == 0) {
  1752. tipsSuccess("提交事件报修成功");
  1753. }
  1754. }
  1755. },
  1756. error: function (err) {
  1757. console.log(err);
  1758. },
  1759. });
  1760. }
  1761. //图片上传(IE<10)
  1762. function addImgListIE(id, index) {
  1763. var len = $("#f-images-list").find(".f-images-item").length;
  1764. var n = 0;
  1765. if (imgList.length == 3) {
  1766. n = len;
  1767. } else {
  1768. n = len - 1;
  1769. }
  1770. for (var i = 0; i < n; i++) {
  1771. if (
  1772. $("#f-images-list").find(".f-images-item").eq(i).data("id") == index
  1773. ) {
  1774. $("#f-images-list")
  1775. .find(".f-images-item")
  1776. .eq(i)
  1777. .find(".form-file")
  1778. .attr(
  1779. "action",
  1780. baseUrl +
  1781. "common/common/uploadAttachment/wechatRequesterIncident/" +
  1782. id
  1783. )
  1784. .submit();
  1785. imgAjaxNum--;
  1786. }
  1787. }
  1788. if (imgAjaxNum == 0) {
  1789. tipsSuccess("提交事件报修成功");
  1790. }
  1791. }
  1792. //图片获取
  1793. function getImgList(id, successFn) {
  1794. $.ajax({
  1795. type: "GET",
  1796. contentType: "application/json;charset=UTF-8",
  1797. url:
  1798. baseUrl + "common/common/listAttachment/wechatRequesterIncident/" + id,
  1799. cache: false,
  1800. success: function (res) {
  1801. if (res.status == 200) {
  1802. successFn(res.data);
  1803. }
  1804. },
  1805. error: function (err) {
  1806. console.log(err);
  1807. },
  1808. });
  1809. }
  1810. //获取流程时间
  1811. function getTimeList(processInstanceId, successFn, bool) {
  1812. $.ajax({
  1813. type: "POST",
  1814. contentType: "application/json;charset=UTF-8",
  1815. url: baseUrl + "bpm/bpm/flowTracing/" + processInstanceId,
  1816. cache: false,
  1817. async: bool,
  1818. success: function (res) {
  1819. if (res.status == 200) {
  1820. successFn(res.data);
  1821. }
  1822. },
  1823. error: function (err) {
  1824. console.log(err);
  1825. },
  1826. });
  1827. }
  1828. // 获取是否点过赞
  1829. function getStarIf(id, successFn) {
  1830. $.ajax({
  1831. type: "GET",
  1832. contentType: "application/json;charset=UTF-8",
  1833. url: baseUrl + "solution/canStar/requester/" + id + "/" + loginUser.id,
  1834. cache: false,
  1835. success: function (res) {
  1836. if (res.status == 200) {
  1837. successFn(res);
  1838. }
  1839. },
  1840. error: function (err) {
  1841. console.log(err);
  1842. },
  1843. });
  1844. }
  1845. });