adDetail.vue 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <template>
  2. <view class="adDetails">
  3. <view class="adTitle">{{ adDetail.adName }}</view>
  4. <view class="adTime">{{ adDetail.createTime }}</view>
  5. <rich-text :nodes="adDetail.description" class="adContent"></rich-text>
  6. <view v-if="adDetail.jumpType==1&&adDetail.videoUrl" class="adVideo">
  7. <video :src="adDetail.videoUrl" controls class="video-player"></video>
  8. </view>
  9. </view>
  10. </template>
  11. <script>
  12. import { getMapAdDetail_Api } from "@/api/map.js";
  13. export default {
  14. data() {
  15. return {
  16. adDetail: {},
  17. params: {
  18. adId: "",
  19. },
  20. };
  21. },
  22. watch: {
  23. "adDetail.description": { //富文本图片预览
  24. handler(newV, oldV) {
  25. this.$nextTick(() => {
  26. let imgArr = document.getElementsByTagName("img");
  27. console.log(111, imgArr);
  28. if (imgArr) {
  29. for (let i = 0; i < imgArr.length; i++) {
  30. imgArr[i].addEventListener("click", (e) => {
  31. console.log(imgArr[i]);
  32. uni.previewImage({
  33. urls: [imgArr[i].src],
  34. })
  35. });
  36. }
  37. }
  38. });
  39. },
  40. deep: true,
  41. },
  42. },
  43. mounted() {
  44. this.params.adId = this.$route.query.mapAdId;
  45. this.getDetails();
  46. },
  47. methods: {
  48. getDetails() {
  49. getMapAdDetail_Api(this.params).then((res) => {
  50. this.adDetail = res;
  51. });
  52. },
  53. },
  54. };
  55. </script>
  56. <style lang="scss" scoped>
  57. .adDetails {
  58. padding: 20rpx;
  59. .adTitle {
  60. font-size: 32rpx;
  61. font-weight: bold;
  62. padding: 10rpx 20rpx;
  63. }
  64. .adTime {
  65. font-size: 24rpx;
  66. color: #999;
  67. padding: 10rpx 20rpx;
  68. }
  69. .adContent {
  70. font-size: 28rpx;
  71. line-height: 44rpx;
  72. margin-top: 20rpx;
  73. display: inline-block;
  74. }
  75. .adVideo {
  76. margin-top: 20rpx;
  77. .video-player {
  78. width: 100%;
  79. height: 400rpx;
  80. }
  81. }
  82. }
  83. </style>