QueryProblemByCustom.Mdule.js 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458
  1. 'use strict';
  2. var vm = new Vue({
  3. el: '#vue',
  4. data: {
  5. ///全部模块
  6. page1: {
  7. page: 0,
  8. row: 6,
  9. data: []
  10. },
  11. ///未解决
  12. page2: {
  13. page: 0,
  14. row: 6,
  15. data: []
  16. },
  17. ///已解决
  18. page3: {
  19. page: 0,
  20. row: 6,
  21. data: []
  22. },
  23. //问题是否解决标志
  24. status: '',
  25. ///检索条件
  26. SearchCondition: {
  27. ///查询范围
  28. scope: [{
  29. name: '我的问题',
  30. id: 1,
  31. active: true
  32. }, {
  33. name: '本院问题',
  34. id: 2,
  35. active: false
  36. }],
  37. time: {
  38. TimeBegin: '开始时间',
  39. TimeEnd: '结束时间'
  40. },
  41. search: ''
  42. },
  43. ///下拉刷新对象
  44. refresh: []
  45. },
  46. methods: {
  47. initRefresh: function initRefresh() {
  48. //从缓存中读取查询条件
  49. var Deft = JSON.parse(getCookie("CustomSearchCondition"));
  50. //缓存中的查询范围
  51. if (Deft && Deft.scope) {
  52. var scope=this.SearchCondition.scope;
  53. for (var i in scope) {
  54. if (scope[i].id == Deft.scope) {
  55. scope[i].active = true;
  56. } else {
  57. scope[i].active = false;
  58. }
  59. }
  60. }
  61. var that = this;
  62. var t = 0;
  63. var deceleration = mui.os.ios ? 0.003 : 0.0009;
  64. mui('.mui-scroll-wrapper').scroll({
  65. bounce: false,
  66. indicators: true, //是否显示滚动条
  67. deceleration: deceleration
  68. });
  69. mui.ready(function () {
  70. mui.each(document.querySelectorAll('.mui-slider-group .mui-scroll'), function (index, pullRefreshEl) {
  71. mui(pullRefreshEl).pullToRefresh({
  72. up: {
  73. auto: true, //自动执行一次上拉加载,可选;
  74. show: true, //显示底部上拉加载提示信息,可选;
  75. contentrefresh: '正在加载...', //上拉进行中提示信息
  76. contentnomore: '没有更多数据了', //上拉无更多信息时提示信息
  77. callback: function callback() {
  78. var self = this;
  79. if (t < 3) {
  80. that.refresh.push(self);
  81. t++;
  82. }
  83. setTimeout(function () {
  84. var ul = self.element.querySelector('.Problem');
  85. if (index == 0) {
  86. //全部选项卡的index是0,当显示它的时候,滑动页面加1,调数据,以下以此类推
  87. that.page1.page += 1;
  88. that.createFragment(ul, index, self, that.page1.page);
  89. } else if (index == 1) {
  90. that.page2.page += 1;
  91. that.createFragment(ul, index, self, that.page2.page);
  92. } else if (index == 2) {
  93. that.page3.page += 1;
  94. that.createFragment(ul, index, self, that.page3.page);
  95. }
  96. }, 1000);
  97. }
  98. }
  99. });
  100. });
  101. });
  102. //底部导航栏
  103. document.getElementById('Home').addEventListener('tap', function () {
  104. window.location.href = '/MobileProblem/Home';
  105. });
  106. document.getElementById('my').addEventListener('tap', function () {
  107. window.location.href = '/MobileProblem/My';
  108. });
  109. document.getElementById('NewProblem').addEventListener('tap', function () {
  110. });
  111. ///顶部下拉导航
  112. var menuWrapper = document.getElementById("menu-wrapper");
  113. var menu = document.getElementById("menu");
  114. var menuWrapperClassList = menuWrapper.classList;
  115. var backdrop = document.getElementById("menu-backdrop");
  116. var busying = false;
  117. backdrop.addEventListener("swipeup", function () {
  118. if (menuWrapperClassList.contains('mui-active')) {
  119. $("#slider").removeClass("top0");
  120. document.body.classList.remove('menu-open');
  121. menuWrapper.className = 'menu-wrapper fade-out-up animated';
  122. menu.className = 'menu bounce-out-up animated';
  123. setTimeout(function () {
  124. backdrop.style.opacity = 0;
  125. menuWrapper.classList.add('hidden');
  126. }, 500);
  127. }
  128. });
  129. backdrop.addEventListener('tap', function () {
  130. if (busying) {
  131. return;
  132. }
  133. busying = true;
  134. if (menuWrapperClassList.contains('mui-active')) {
  135. $("#slider").removeClass("top0");
  136. document.body.classList.remove('menu-open');
  137. menuWrapper.className = 'menu-wrapper fade-out-up animated';
  138. menu.className = 'menu bounce-out-up animated';
  139. setTimeout(function () {
  140. backdrop.style.opacity = 0;
  141. menuWrapper.classList.add('hidden');
  142. }, 500);
  143. } else {
  144. $("#slider").addClass("top0");
  145. document.body.classList.add('menu-open');
  146. menuWrapper.className = 'menu-wrapper fade-in-down animated mui-active';
  147. menu.className = 'menu bounce-in-down animated';
  148. backdrop.style.opacity = 1;
  149. }
  150. setTimeout(function () {
  151. busying = false;
  152. }, 500);
  153. });
  154. document.getElementById("icon-menu").addEventListener('tap', function () {
  155. if (busying) {
  156. return;
  157. }
  158. busying = true;
  159. if (menuWrapperClassList.contains('mui-active')) {
  160. $("#slider").removeClass("top0");
  161. document.body.classList.remove('menu-open');
  162. menuWrapper.className = 'menu-wrapper fade-out-up animated';
  163. menu.className = 'menu bounce-out-up animated';
  164. setTimeout(function () {
  165. backdrop.style.opacity = 0;
  166. menuWrapper.classList.add('hidden');
  167. }, 500);
  168. } else {
  169. $("#slider").addClass("top0");
  170. document.body.classList.add('menu-open');
  171. menuWrapper.className = 'menu-wrapper fade-in-down animated mui-active';
  172. menu.className = 'menu bounce-in-down animated';
  173. backdrop.style.opacity = 1;
  174. }
  175. setTimeout(function () {
  176. busying = false;
  177. }, 500);
  178. });
  179. ///重置下拉刷新
  180. document.getElementById("reload").addEventListener('tap', function () {
  181. ///保存客户配置
  182. var CustomSearchCondition = {
  183. scope: that.forech(that.SearchCondition.scope)
  184. };
  185. setCookie("CustomSearchCondition", JSON.stringify(CustomSearchCondition), 3);
  186. if (busying) {
  187. return;
  188. }
  189. busying = true;
  190. //全部
  191. that.page1 = {
  192. page: 0,
  193. row: 6,
  194. data: []
  195. };
  196. ///未解决
  197. that.page2 = {
  198. page: 0,
  199. row: 6,
  200. data: []
  201. };
  202. ///已解决
  203. that.page3 = {
  204. page: 0,
  205. row: 6,
  206. data: []
  207. };
  208. //that.refresh.refresh(true);
  209. //that.refresh.pullUpLoading(true);
  210. var _iteratorNormalCompletion = true;
  211. var _didIteratorError = false;
  212. var _iteratorError = undefined;
  213. try {
  214. for (var _iterator = that.refresh[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done) ; _iteratorNormalCompletion = true) {
  215. var ref = _step.value;
  216. ref.refresh(true);
  217. ref.pullUpLoading(false);
  218. }
  219. } catch (err) {
  220. _didIteratorError = true;
  221. _iteratorError = err;
  222. } finally {
  223. try {
  224. if (!_iteratorNormalCompletion && _iterator.return) {
  225. _iterator.return();
  226. }
  227. } finally {
  228. if (_didIteratorError) {
  229. throw _iteratorError;
  230. }
  231. }
  232. }
  233. if (menuWrapperClassList.contains('mui-active')) {
  234. $("#slider").removeClass("top0");
  235. document.body.classList.remove('menu-open');
  236. menuWrapper.className = 'menu-wrapper fade-out-up animated';
  237. menu.className = 'menu bounce-out-up animated';
  238. setTimeout(function () {
  239. backdrop.style.opacity = 0;
  240. menuWrapper.classList.add('hidden');
  241. }, 500);
  242. } else {
  243. $("#slider").addClass("top0");
  244. document.body.classList.add('menu-open');
  245. menuWrapper.className = 'menu-wrapper fade-in-down animated mui-active';
  246. menu.className = 'menu bounce-in-down animated';
  247. backdrop.style.opacity = 1;
  248. }
  249. setTimeout(function () {
  250. busying = false;
  251. }, 500);
  252. });
  253. },
  254. LoadTimeContent: function LoadTimeContent() {
  255. var btns = $('.time-btn');
  256. btns.each(function (i, btn) {
  257. btn.addEventListener('tap', function () {
  258. var _self = this;
  259. if (_self.picker) {
  260. _self.picker.show(function (rs) {
  261. btn.innerHTML = rs.text;
  262. _self.picker.dispose();
  263. _self.picker = null;
  264. });
  265. } else {
  266. var optionsJson = this.getAttribute('data-options') || '{}';
  267. var options = JSON.parse(optionsJson);
  268. var id = this.getAttribute('id');
  269. _self.picker = new mui.DtPicker(options);
  270. _self.picker.show(function (rs) {
  271. btn.innerHTML = rs.text;
  272. _self.picker.dispose();
  273. _self.picker = null;
  274. });
  275. }
  276. }, false);
  277. });
  278. },
  279. //重置搜索条件
  280. Deafault: function Deafault() {
  281. this.SearchCondition = {
  282. ///查询范围
  283. scope: [{
  284. name: '我的问题',
  285. id: '1',
  286. active: true
  287. }, {
  288. name: '本院问题',
  289. id: '2',
  290. active: false
  291. }],
  292. time: {
  293. TimeBegin: '开始时间',
  294. TimeEnd: '结束时间'
  295. },
  296. search: ''
  297. };
  298. $("#TimeBegin").html("开始时间");
  299. $("#TimeEnd").html("结束时间");
  300. },
  301. ///加载问题
  302. createFragment: function createFragment(ul, index, self, pageNum) {
  303. var fragment = document.createDocumentFragment();
  304. var page;
  305. var status;
  306. if (index == 0) {
  307. status = ''; //为0的时候是全部
  308. page = this.page1;
  309. } else if (index == 1) {
  310. status = 0; //为1的时候是未解决
  311. page = this.page2;
  312. } else if (index == 2) {
  313. status = 1; //为2的时候是已解决
  314. page = this.page3;
  315. }
  316. var param = {
  317. Pages: page.page, //页数
  318. rows: page.row, //想要几条数据
  319. ProblemStatus: status, //状态
  320. SelectType: this.forech(this.SearchCondition.scope), //查询类型
  321. TimeBegins: $("#TimeBegin").html(),
  322. TimeEnds: $("#TimeEnd").html(),
  323. SelectConditon: this.SearchCondition.search
  324. };
  325. ///后台请求数据
  326. $.get('/MobileProblem/QueryMyProblemByCustom', param, function (data) {
  327. var info = data;
  328. if (info.length == 0) {
  329. //当datas.length为0时,表示没有数据了
  330. self.endPullUpToRefresh(true); //当为true时,底部出现没有更多数据,并且不能滑动
  331. } else {
  332. var _iteratorNormalCompletion2 = true;
  333. var _didIteratorError2 = false;
  334. var _iteratorError2 = undefined;
  335. try {
  336. for (var _iterator2 = info[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done) ; _iteratorNormalCompletion2 = true) {
  337. var dd = _step2.value;
  338. if (!dd.附件路径) {
  339. dd.附件路径 = "/Content/Images/zlpng.png";
  340. } else {
  341. dd.附件路径 = "/MobileProblem/ViewProblemImage/" + dd.附件路径 + "?type=s";
  342. }
  343. if (dd.是否终止 == '1') {
  344. dd.icon = "#icon-yizhongzhi1";
  345. } else if (dd.是否解决 == '1') {
  346. dd.icon = "#icon-yijiejue3";
  347. } else {
  348. dd.icon = "#icon-weijiejue";
  349. }
  350. page.data.push(dd);
  351. }
  352. } catch (err) {
  353. _didIteratorError2 = true;
  354. _iteratorError2 = err;
  355. } finally {
  356. try {
  357. if (!_iteratorNormalCompletion2 && _iterator2.return) {
  358. _iterator2.return();
  359. }
  360. } finally {
  361. if (_didIteratorError2) {
  362. throw _iteratorError2;
  363. }
  364. }
  365. }
  366. self.endPullUpToRefresh(); //当为false或空时,底部出现正在加载,滑动到下一页
  367. }
  368. });
  369. },
  370. forech: function forech(obj) {
  371. var re;
  372. var _iteratorNormalCompletion3 = true;
  373. var _didIteratorError3 = false;
  374. var _iteratorError3 = undefined;
  375. try {
  376. for (var _iterator3 = obj[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done) ; _iteratorNormalCompletion3 = true) {
  377. var i = _step3.value;
  378. if (i.active) {
  379. re = i.id;
  380. return re;
  381. }
  382. }
  383. } catch (err) {
  384. _didIteratorError3 = true;
  385. _iteratorError3 = err;
  386. } finally {
  387. try {
  388. if (!_iteratorNormalCompletion3 && _iterator3.return) {
  389. _iterator3.return();
  390. }
  391. } finally {
  392. if (_didIteratorError3) {
  393. throw _iteratorError3;
  394. }
  395. }
  396. }
  397. ;
  398. },
  399. ToActive: function ToActive(sc, i) {
  400. var _iteratorNormalCompletion4 = true;
  401. var _didIteratorError4 = false;
  402. var _iteratorError4 = undefined;
  403. try {
  404. for (var _iterator4 = sc[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done) ; _iteratorNormalCompletion4 = true) {
  405. var dd = _step4.value;
  406. dd.active = false;
  407. }
  408. } catch (err) {
  409. _didIteratorError4 = true;
  410. _iteratorError4 = err;
  411. } finally {
  412. try {
  413. if (!_iteratorNormalCompletion4 && _iterator4.return) {
  414. _iterator4.return();
  415. }
  416. } finally {
  417. if (_didIteratorError4) {
  418. throw _iteratorError4;
  419. }
  420. }
  421. }
  422. i.active = true;
  423. },
  424. ///进入详细页面
  425. Deatil: function Deatil(id) {
  426. //mui.openWindow({
  427. // url: '/MobileProblem/ProblemDetail/' + id
  428. //});
  429. window.location.href = '/MobileProblem/ProblemDetail/' + id;
  430. }
  431. },
  432. mounted: function mounted() {
  433. mui.init();
  434. this.initRefresh();
  435. this.LoadTimeContent();
  436. }
  437. });