index.js 57 KB

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