RemarkChs.vue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. <!-- -->
  2. <template>
  3. <div
  4. v-if="
  5. remarkDetail &&
  6. (remarkDetail.chs || remarkDetail.en || (remarkDetail.img_list && remarkDetail.img_list.length > 0))
  7. "
  8. class="remarkChs"
  9. :style="{ top: marginTop ? marginTop + 'px' : '0px', backgroundColor: remarkDetail.enBg ? remarkDetail.enBg : '' }"
  10. >
  11. <div
  12. :style="{ backgroundColor: remarkDetail.chsBg ? remarkDetail.chsBg : '' }"
  13. v-if="remarkDetail.chs"
  14. class="remark-chs"
  15. v-html="convertText(sanitizeHTML(remarkDetail.chs))"
  16. ></div>
  17. <div v-if="remarkDetail.en" class="remark-en" v-html="convertText(sanitizeHTML(remarkDetail.en))"></div>
  18. <div v-if="remarkDetail.img_list && remarkDetail.img_list.length > 0" class="remark-img">
  19. <el-image
  20. :style="{
  21. width: remarkDetail.widthNumber ? remarkDetail.widthNumber + 'px' : '',
  22. height: remarkDetail.heightNumber ? remarkDetail.heightNumber + 'px' : '',
  23. }"
  24. :src="remarkDetail.img_list[0].url"
  25. fit="contain"
  26. :preview-src-list="[remarkDetail.img_list[0].url]"
  27. />
  28. </div>
  29. </div>
  30. </template>
  31. <script>
  32. import { sanitizeHTML } from '@/utils/common';
  33. export default {
  34. name: 'RemarkChs',
  35. components: {},
  36. props: ['remarkDetail', 'marginTop'],
  37. inject: ['convertText'],
  38. data() {
  39. return {
  40. sanitizeHTML,
  41. };
  42. },
  43. computed: {},
  44. watch: {},
  45. // 生命周期 - 创建完成(可以访问当前this实例)
  46. created() {},
  47. // 生命周期 - 挂载完成(可以访问DOM元素)
  48. mounted() {},
  49. beforeCreate() {}, // 生命周期 - 创建之前
  50. beforeMount() {}, // 生命周期 - 挂载之前
  51. beforeUpdate() {}, // 生命周期 - 更新之前
  52. updated() {}, // 生命周期 - 更新之后
  53. beforeDestroy() {}, // 生命周期 - 销毁之前
  54. destroyed() {}, // 生命周期 - 销毁完成
  55. activated() {},
  56. // 方法集合
  57. methods: {}, // 如果页面有keep-alive缓存功能,这个函数会触发
  58. };
  59. </script>
  60. <style lang="scss" scoped>
  61. //@import url(); 引入公共css类
  62. .remarkChs {
  63. position: absolute;
  64. top: 0;
  65. box-sizing: border-box;
  66. width: 90%;
  67. // border: 1px solid rgba(0, 0, 0, 10%);
  68. border-radius: 8px;
  69. box-shadow: 0 4px 8px rgba(0, 0, 0, 10%);
  70. > .remark-chs {
  71. box-sizing: border-box;
  72. display: flex;
  73. flex-flow: wrap;
  74. align-items: center;
  75. justify-content: center;
  76. width: 100%;
  77. min-height: 34px;
  78. padding: 0 8px;
  79. font-size: 14px;
  80. font-weight: normal;
  81. line-height: 22px;
  82. color: #fff;
  83. text-align: center;
  84. background: #988ed6;
  85. border: 1px solid rgba(0, 0, 0, 10%);
  86. border-radius: 8px 8px 0 0;
  87. :deep p {
  88. width: 100%;
  89. margin: 0;
  90. }
  91. }
  92. > .remark-en {
  93. box-sizing: border-box;
  94. min-height: 34px;
  95. padding: 0 8px;
  96. font-size: 14px;
  97. line-height: 22px;
  98. color: #000;
  99. text-align: center;
  100. word-break: break-word;
  101. border-top: 0;
  102. border-radius: 0 0 8px 8px;
  103. :deep p {
  104. margin: 0;
  105. }
  106. }
  107. > .remark-img {
  108. width: 100%;
  109. text-align: center;
  110. .el-image {
  111. max-width: 178px;
  112. }
  113. }
  114. }
  115. </style>