help-center-detail.tsx 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. import ColHeader from '@/components/col-header'
  2. import { useEventTracking } from '@/helpers/hooks'
  3. import request from '@/helpers/request'
  4. import dayjs from 'dayjs'
  5. import { ImagePreview, NavBar } from 'vant'
  6. import { defineComponent } from 'vue'
  7. import styles from './help-center-detail.module.less'
  8. export default defineComponent({
  9. name: 'help-center-detail',
  10. data() {
  11. const query = this.$route.query
  12. return {
  13. catalogType: query.catalogType,
  14. documentTitle: query.catalogType === 'ANALYSIS' ? '帮助中心详情' : '',
  15. detail: {
  16. title: '',
  17. createTime: '',
  18. content: ''
  19. }
  20. }
  21. },
  22. async mounted() {
  23. try {
  24. const query = this.$route.query
  25. const res = await request.get(
  26. '/api-cms/helpCenterContent/get/' + query.id
  27. )
  28. const { title, releaseTime, createTime, content, catalogId } = res.data
  29. this.detail = {
  30. title,
  31. createTime:
  32. catalogId == 2
  33. ? dayjs(releaseTime).format('YYYY-MM-DD HH:mm:ss')
  34. : dayjs(createTime).format('YYYY-MM-DD HH:mm:ss'),
  35. content
  36. }
  37. const documentTitle = catalogId == 2 ? '公告详情' : ' '
  38. document.title = documentTitle
  39. } catch {}
  40. useEventTracking('帮助中心')
  41. },
  42. methods: {
  43. onShowImg(target: any) {
  44. const { localName } = target.srcElement
  45. if (localName !== 'img') {
  46. return
  47. }
  48. let startPosition = 0
  49. const domList = document.querySelectorAll('.msgWrap img')
  50. const imgList = Array.from(domList).map((item: any, index: number) => {
  51. if (target.srcElement == item) {
  52. startPosition = index
  53. }
  54. return item.src
  55. })
  56. ImagePreview({
  57. images: imgList,
  58. startPosition: startPosition,
  59. closeable: true
  60. })
  61. }
  62. },
  63. render() {
  64. return (
  65. <div class={styles['help-center-detail']}>
  66. {this.catalogType === 'ANALYSIS' && (
  67. // <ColHeader title={this.documentTitle} isBack />
  68. <NavBar
  69. title={this.documentTitle}
  70. left-arrow
  71. fixed
  72. onClick-left={() => {
  73. this.$router.back()
  74. }}
  75. ></NavBar>
  76. )}
  77. <h2>{this.detail.title}</h2>
  78. <div class={styles.titleInfo}>
  79. <p>酷乐秀</p>
  80. <p>{this.detail.createTime}</p>
  81. </div>
  82. <div
  83. class={[styles.imgContent, 'msgWrap']}
  84. // onClick={this.onShowImg}
  85. v-html={this.detail.content}
  86. ></div>
  87. </div>
  88. )
  89. }
  90. })