index.html 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. {extend name="public/base"/}
  2. {block name="css"}
  3. <style>
  4. .van-nav-bar__text, .van-nav-bar .van-icon{color:white;}
  5. .header {width:100%;height:45px;background:var(--pink);}
  6. .company-box {width:90%;height:60px;background:white;transform:translate(5%,-30px);display:flex;box-sizing:border-box;padding:5px 10px;align-items:center;}
  7. .company-box .company-img {width:45px;height:45px;}
  8. .company-box .company-title-box {display:flex;padding:5px 10px;flex-direction:column;}
  9. .company-box .company-title {color: #666;font-size:16px;}
  10. .company-box .company-address {color: #999;font-size:12px;display:flex;align-items:center;}
  11. .company-box .company-address span {margin-left:5px;}
  12. </style>
  13. {/block}
  14. {block name="body"}
  15. <van-nav-bar
  16. class="bg-blue"
  17. fixed="true"
  18. left-text="返回"
  19. left-arrow
  20. @click-left="onBack"
  21. >
  22. <template #title>
  23. <span class="text-white">微店</span>
  24. </template>
  25. </van-nav-bar>
  26. <div style="width:100%;height:46px;"></div>
  27. <div class="header"></div>
  28. <div class="company-box">
  29. <img class="company-img" :src="img_worker">
  30. <div class="company-title-box">
  31. <div class="company-title">{{worker.title}}</div>
  32. <div class="company-address"><van-icon name="location-o" ></van-icon><span>{{worker.address}}</span></div>
  33. </div>
  34. </div>
  35. <div class="content-box">
  36. <div class="title"><span class="mark"></span>企业介绍</div>
  37. <div class="item" v-html="worker.details"></div>
  38. </div>
  39. <div class="content-box margin-top-10">
  40. <div class="title"><span class="mark"></span>招聘推荐</div>
  41. </div>
  42. <van-pull-refresh v-model="refreshing" @refresh="onRefresh">
  43. <van-list
  44. v-model="loading"
  45. :finished="finished"
  46. finished-text="没有更多了"
  47. @load="onLoad"
  48. >
  49. <div class="job-box">
  50. <div class="job-item" v-for="item in list" @click="goDetail(item.id)">
  51. <div class="job-flex">
  52. <div class="job-flex-left job-title">{{item.title}}</div>
  53. <div class="job-flex-right salary">{{item.zwagall}}({{item.wtype_text}})</div>
  54. </div>
  55. <div class="job-flex margin-top-10">
  56. <div class="job-flex-left">
  57. <van-tag type="primary" color="#FF589B" size="medium" v-for="tag in item.tags">{{tag}}</van-tag>
  58. </div>
  59. <div class="job-flex-right num">{{item.recruit_num}}名</div>
  60. </div>
  61. <div class="job-flex margin-top-10">
  62. <div class="job-flex-left">
  63. {{item.worker_name}}
  64. </div>
  65. <div class="job-flex-right">
  66. 浏览量:{{item.volume}}
  67. </div>
  68. </div>
  69. </div>
  70. </div>
  71. </van-list>
  72. </van-pull-refresh>
  73. {/block}
  74. {block name="script"}
  75. <script>
  76. new Vue({
  77. el: '#app',
  78. data() {
  79. return {
  80. worker: {$worker},
  81. list: [],
  82. page: 1,
  83. loading: false,
  84. finished: false,
  85. refreshing: false,
  86. };
  87. },
  88. methods: {
  89. onBack() {
  90. history.back();
  91. },
  92. //加载
  93. onLoad() {
  94. //参数
  95. let self = this;
  96. let param = {page: this.page,workerid:this.worker.id};
  97. this.page++;
  98. $.post("{:url('/jobs/listJobs')}", param, function (json) {
  99. //下拉刷新
  100. if (self.refreshing) {
  101. self.refreshing = false;
  102. }
  103. // 加载状态结束
  104. self.loading = false;
  105. if (json.data.length == 0) {
  106. // 数据全部加载完成
  107. self.finished = true;
  108. } else {
  109. // 增加数据
  110. for (let i = 0; i < json.data.length; i++) {
  111. self.list.push(json.data[i]);
  112. }
  113. }
  114. }, 'json');
  115. },
  116. onRefresh() {
  117. // 清空列表数据
  118. this.list = [];
  119. this.page = 1;
  120. this.loading = true;
  121. this.finished = false;
  122. this.onLoad();
  123. },
  124. goDetail(id) {
  125. location.href = "{:url('/jobs/detail')}?id=" + id;
  126. },
  127. },
  128. computed: {
  129. img_worker() {
  130. const default_img = "__MSTATIC__/images/img_worker.png";
  131. if (this.worker.tilpic) {
  132. return this.worker.tilpic;
  133. }
  134. return default_img;
  135. },
  136. },
  137. });
  138. </script>
  139. {/block}