瑶都万能墙
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

277 lines
5.3 KiB

1 year ago
1 year ago
1 year ago
11 months ago
1 year ago
11 months ago
1 year ago
11 months ago
1 year ago
11 months ago
1 year ago
11 months ago
1 year ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
11 months ago
1 year ago
1 year ago
11 months ago
1 year ago
  1. <template>
  2. <view class="page">
  3. <navbar title="详情" leftClick @leftClick="$utils.navigateBack" />
  4. <view class="box">
  5. <view class="title">
  6. {{ detail.title }}
  7. </view>
  8. <view class="price">
  9. {{ detail.minPrice }}
  10. <!-- <text>-{{ detail.maxPrice }}</text> -->
  11. </view>
  12. <view class="line">
  13. <!-- <view>
  14. <image src="../static/work/address.png" mode=""></image>
  15. {{ detail.workAge }}
  16. </view> -->
  17. <view>
  18. <!-- <image src="../static/work/g.png" mode=""></image> -->
  19. 工龄{{ detail.workYear }}
  20. </view>
  21. <view>
  22. <!-- <image src="../static/work/x.png" mode=""></image> -->
  23. <!-- {{ detail.school }} -->
  24. 该职位位于{{ $dayjs(detail.createTime).format('YYYY-MM-DD') }}
  25. </view>
  26. </view>
  27. <!-- <view class="line">
  28. 该职位位于{{ $dayjs(detail.createTime).format('YYYY-MM-DD') }}
  29. </view> -->
  30. <!-- <view class="userHead">
  31. <userHead :headImage="detail.headImage"
  32. :name="detail.name" :phoneCall="detail.phone"/>
  33. </view> -->
  34. <view class="info">
  35. <view class="title2">
  36. <text>职位要求</text>
  37. </view>
  38. <view
  39. class="text"
  40. v-html="detail.school">
  41. </view>
  42. </view>
  43. <!-- 工作地址地图卡片 -->
  44. <view class="address-section" v-if="detail.latitude && detail.longitude">
  45. <view class="title2">
  46. 工作地址
  47. </view>
  48. <mapCard
  49. :latitude="detail.latitude"
  50. :longitude="detail.longitude"
  51. :address-name="detail.address"
  52. :address-detail="detail.addressDetail"
  53. @mapClick="onMapClick"
  54. />
  55. </view>
  56. <!-- 备用地址显示当没有经纬度时 -->
  57. <view class="address" v-else>
  58. <view class="title2">
  59. 工作地址
  60. </view>
  61. <view class="line"
  62. style="justify-content: space-between;">
  63. {{ detail.address }}
  64. <uv-icon
  65. size="30rpx"
  66. color="666"
  67. name="arrow-right"
  68. ></uv-icon>
  69. </view>
  70. </view>
  71. <view class="info">
  72. <view class="title2">
  73. <text>职位详情</text>
  74. <view>
  75. <uv-icon
  76. size="30rpx"
  77. color="666"
  78. name="star"
  79. ></uv-icon>
  80. 收藏
  81. </view>
  82. </view>
  83. <view class="tag-list">
  84. <view v-for="(t, i) in detail.iconText && detail.iconText.split('、')">
  85. {{ t }}
  86. </view>
  87. </view>
  88. <view
  89. class="text"
  90. v-html="detail.jobDetails">
  91. </view>
  92. <!-- <view
  93. class="text">
  94. <uv-parse :content="detail.workDetail"></uv-parse>
  95. </view> -->
  96. </view>
  97. </view>
  98. <commentList
  99. @getData="getData"
  100. :list="list"
  101. :params="params"
  102. />
  103. </view>
  104. </template>
  105. <script>
  106. import mixinsList from '@/mixins/list.js'
  107. import commentList from '../components/list/comment/commentList.vue'
  108. import mapCard from '@/components/base/mapCard.vue'
  109. export default {
  110. mixins: [mixinsList],
  111. components : {
  112. commentList,
  113. mapCard,
  114. },
  115. data() {
  116. return {
  117. id : 0,
  118. detail : {},
  119. collectionFlag : false,
  120. mixinsListApi : 'getCommentPage',
  121. params : {
  122. type : '2',
  123. orderId : '',
  124. name : '',
  125. },
  126. }
  127. },
  128. onLoad(options) {
  129. this.id = options.id
  130. this.queryParams.type = this.params.type
  131. this.queryParams.orderId = options.id
  132. this.params.orderId = options.id
  133. // 设置分享路径
  134. this.share.path = '/pages_order/work/workDetail?id=' + this.id
  135. },
  136. onPullDownRefresh() {
  137. this.getDetail()
  138. },
  139. onShow() {
  140. this.getDetail()
  141. },
  142. methods: {
  143. getDetail(){
  144. let data = {
  145. id : this.id
  146. }
  147. if(uni.getStorageSync('token')){
  148. data.token = uni.getStorageSync('token')
  149. }
  150. this.$api('getJobDetail', data, res => {
  151. if(res.code == 200){
  152. this.params.name = res.result.title
  153. this.detail = res.result
  154. this.detail.jobDetails = this.$utils.stringFormatHtml(res.result.jobDetails)
  155. this.collectionFlag = res.result.collectionFlag
  156. // 设置分享信息
  157. this.share.title = res.result.title
  158. }
  159. })
  160. },
  161. // 地图点击事件处理
  162. onMapClick(mapData) {
  163. console.log('工作地址地图点击:', mapData);
  164. }
  165. }
  166. }
  167. </script>
  168. <style scoped lang="scss">
  169. .page{
  170. .box{
  171. padding: 30rpx;
  172. background-color: #fff;
  173. .title{
  174. font-size: 34rpx;
  175. font-weight: 900;
  176. padding-bottom: 20rpx;
  177. }
  178. .title2{
  179. margin: 20rpx 0;
  180. font-size: 28rpx;
  181. font-weight: 900;
  182. display: flex;
  183. justify-content: space-between;
  184. align-items: center;
  185. view{
  186. display: flex;
  187. align-items: center;
  188. justify-content: center;
  189. }
  190. }
  191. .price{
  192. font-size: 30rpx;
  193. font-weight: 900;
  194. color: $uni-color;
  195. }
  196. .line{
  197. display: flex;
  198. font-size: 24rpx;
  199. color: #666666;
  200. margin-top: 30rpx;
  201. image{
  202. width: 30rpx;
  203. height: 30rpx;
  204. }
  205. &>view{
  206. margin-right: 50rpx;
  207. display: flex;
  208. justify-content: center;
  209. align-items: center;
  210. }
  211. }
  212. .userHead{
  213. padding: 50rpx 0;
  214. border-bottom: 1px solid #00000011;
  215. }
  216. .address{
  217. padding: 30rpx 0;
  218. .line{
  219. margin-top: 20rpx;
  220. }
  221. }
  222. .address-section{
  223. padding: 30rpx 0;
  224. }
  225. .info{
  226. margin: 20rpx 0;
  227. .text{
  228. font-size: 24rpx;
  229. color: #666666;
  230. line-height: 44rpx;
  231. }
  232. }
  233. }
  234. }
  235. .tag-list{
  236. display: flex;
  237. flex-wrap: wrap;
  238. }
  239. .tag-list > view{
  240. margin: 10rpx;
  241. padding: 10rpx;
  242. background-color: #EFF2F1;
  243. font-size: 24rpx;
  244. border-radius: 10rpx;
  245. }
  246. </style>