jz_list.html 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. <!doctype html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>新闻列表</title>
  6. <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
  7. <link href="../css/mui.min.css" rel="stylesheet" />
  8. <style>
  9. .mui-bar{height: 80px!important;padding-top: 30px!important;}
  10. .input-group input{padding: 15px 11px 11px 35px;height: 35px!important;background-color: white;text-align: left;font-size: 14px;margin: 8px 0!important;}
  11. .sousuo{font-size: 18px!important;margin: 17px 12px 6px 7px!important;}
  12. form{margin-top: 0px;position: relative;}
  13. .flex{margin-top: 80px;top:0;font-size: 14px;box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.2);color: #292929;padding: 15px;text-align: center;position: fixed;width: 100%;background-color: white;z-index: 666;}
  14. .menu{position: fixed;width: 100%;top: -148px;max-height: 250px;overflow: scroll; background-color:white;z-index:6;transition-duration: 0.3s;}
  15. .menu.active{top: 131px;box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.2);}
  16. .mui-table-view-cell>a:not(.mui-btn){color: #5a5858;font-size: 15px;}
  17. .mui-table-view-cell>a:not(.mui-btn).active{color: #00a0ea;}
  18. .mui-table-view-cell:after{background-color: #dbdbdb;}
  19. .mui-content{margin-top: 85px;padding: 0px 10px 0px 10px;}
  20. .items{padding: 15px;font-size: 13px;background-color: white;border-radius: 3px;margin-top: 10px;}
  21. .title{font-size: 16px;}
  22. .items:last-child{border: 0px;}
  23. .cn{color: #7e7e7e;padding-top: 8px;}
  24. .dc{padding-right: 10px;}
  25. .rmb{color: #FF5722;font-size: 15px;}
  26. .right{float: right;}
  27. .i{color: #00a0ea;}
  28. [v-cloak] {display: none;}
  29. </style>
  30. </head>
  31. <body>
  32. <div id="app" v-cloak>
  33. <header class="mui-bar mui-bar-nav">
  34. <form class="input-group" v-on:submit.prevent="search()">
  35. <i class="icon sousuo">&#xeafe;</i>
  36. <input type="search" placeholder="搜索兼职工作等关键字" v-model="param.name" />
  37. </form>
  38. </header>
  39. <div class="flex">
  40. <div class="f" @click="popup(1)">{{msg1}} <i class="icon">&#xe64a;</i></div>
  41. <div class="f" @click="popup(2)">{{msg2}} <i class="icon">&#xe62b;</i></div>
  42. <!--<div class="f" @click="popup(3)">{{msg3}} <i class="icon">&#xe601;</i></div> -->
  43. </div>
  44. <div class="menu" :class="{active:m==1}">
  45. <ul class="mui-table-view">
  46. <li class="mui-table-view-cell" v-for="(item,index) in jzlx_list"
  47. @click="c1=index;param.jzlx=item;m=0;msg1=item;vm.refresh()">
  48. <a class="mui-navigate-right" :class="{active:c1==index}">{{item}}</a>
  49. </li>
  50. </ul>
  51. </div>
  52. <div class="menu" :class="{active:m==2}">
  53. <ul class="mui-table-view">
  54. <li class="mui-table-view-cell" v-for="(item,index) in jzqy_list"
  55. @click="c2=index;param.qy=item;m=0;msg2=item;vm.refresh()">
  56. <a class="mui-navigate-right" :class="{active:c2==index}">{{item}}</a>
  57. </li>
  58. </ul>
  59. </div>
  60. <!-- <div class="menu" :class="{active:m==3}">
  61. <ul class="mui-table-view">
  62. <li class="mui-table-view-cell"v-for="(item,index) in xzdy_list" @click="c3=index;param.dy=item;m=0;msg3=item;vm.refresh()">
  63. <a class="mui-navigate-right" :class="{active:c3==index}">{{item}}</a>
  64. </li>
  65. </ul>
  66. </div> -->
  67. <div class="mui-content">
  68. <div v-if="position_list.length>0">
  69. <div class="items" v-for="(item,index) in position_list" @click="detail(item.id)">
  70. <div class="title omit">{{item.parttime_title}} <span class="right rmb">{{item.salary}}</span>
  71. </div>
  72. <div class="cn">
  73. <span class="dc"><i class="icon i">&#xe602;</i> {{item.parttime_date}}</span>
  74. <span class="dc"><i class="icon i">&#xe604;</i> {{item.time_interval}}</span>
  75. <span class="dc"><i class="icon i">&#xe643;</i> 招{{item.hire_num}}人</span>
  76. <span class="right"> {{item.publish_date}}</span>
  77. </div>
  78. <div class="cn">
  79. <span class="dc">{{item.work_region}}</span>
  80. <span class="right">{{item.address}}</span>
  81. </div>
  82. </div>
  83. </div>
  84. <div class="no_data" v-else>
  85. <i class="icon icon-48">&#xe61a;</i><br />没有数据
  86. </div>
  87. <!--加载更多-->
  88. <div class="more">
  89. <div class="loading" v-if="loading">
  90. <span class="mui-spinner"></span>
  91. <div class="mc">加载中...</div>
  92. </div>
  93. </div>
  94. </div>
  95. <div class="mask" v-show="m!=0" @click="m=0"></div>
  96. <button class="btn add-c" @click="push()">+</button>
  97. </div>
  98. <script src="../js/mui.min.js"></script>
  99. <script src="../js/app.js"></script>
  100. <script src="../js/vue.min.js"></script>
  101. <script type="text/javascript">
  102. var vm = new Vue({
  103. el: "#app",
  104. data: {
  105. position_list: [],
  106. jzlx_list: jzlx(), //兼职类型
  107. jzqy_list: jzqy(), //兼职名称
  108. //xzdy_list:xzdy(), //薪资待遇
  109. param: {
  110. page: 1,
  111. gzjy: '',
  112. xl: '',
  113. dy: ''
  114. },
  115. m: 0, //当前弹出菜单
  116. c1: 999, //当前选中条件
  117. c2: 999, //当前选中条件
  118. c3: 999, //当前选中条件
  119. msg1: '类型',
  120. msg2: '区域',
  121. msg3: '薪资待遇',
  122. current: 0,
  123. loading: false,
  124. hasMore: false,
  125. },
  126. mounted: function() {
  127. mui.plusReady(function() {
  128. vm.getData();
  129. })
  130. //监听滚动加载
  131. window.addEventListener('scroll', function() {
  132. //滚动高度+内高度>=文档高度
  133. if (document.body.scrollTop + window.innerHeight + 20 >= document.body
  134. .offsetHeight) {
  135. if (vm.hasMore) {
  136. vm.loading = true;
  137. //避免重复加载
  138. vm.hasMore = false;
  139. vm.param.page++;
  140. setTimeout(function() {
  141. vm.getData()
  142. }, 1000);
  143. }
  144. }
  145. })
  146. },
  147. methods: {
  148. //获取数据
  149. getData: function() {
  150. request(urls().parttime_json_list, this.param, function(res) {
  151. res.list.forEach(function(item) {
  152. vm.position_list.push(item);
  153. });
  154. vm.hasMore = vm.param.page < res.total ? true : false;
  155. vm.loading = false;
  156. plus.nativeUI.closeWaiting();
  157. })
  158. },
  159. //弹出菜单
  160. popup: function(index) {
  161. vm.m = index;
  162. },
  163. //详情
  164. detail: function(id) {
  165. open('position_detail', '../pages/parttime/detail.html', {
  166. id: id
  167. }, 'slide-in-bottom');
  168. },
  169. //发布职位
  170. push: function() {
  171. open('add_parttime', '../pages/parttime/add_parttime.html', {
  172. type_list: vm.type_list
  173. }, 'slide-in-bottom');
  174. },
  175. //回车搜索
  176. search: function() {
  177. //隐藏键盘
  178. document.activeElement.blur();
  179. vm.param.jzlx = '';
  180. vm.param.qy = '';
  181. vm.refresh();
  182. },
  183. //刷新
  184. refresh: function() {
  185. vm.position_list = [];
  186. vm.param.page = 1;
  187. vm.getData();
  188. }
  189. }
  190. })
  191. </script>
  192. </body>
  193. </html>