titles.vue 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <template>
  2. <view v-if="titleConfig">
  3. <navigator :url="path(linkConfig)" hover-class="none" class='title' :class="[(textPosition==0?'left':textPosition==2?'right':''),(textStyle==1?'italics':textStyle==2?'blod':'')]" :style="'font-size:'+fontSize+'rpx;margin:'+mbConfig+'rpx '+prConfig+'rpx 0;background-color:'+titleColor+';border-radius:'+bgStyle+'rpx;'">
  4. <view :style="'color:'+textColor">{{titleConfig}}</view>
  5. </navigator>
  6. </view>
  7. </template>
  8. <script>
  9. import {merPath} from "@/utils/index"
  10. export default {
  11. name: 'titles',
  12. props: {
  13. dataConfig: {
  14. type: Object,
  15. default: () => {}
  16. },
  17. merId: {
  18. type: String || Number,
  19. default: ''
  20. }
  21. },
  22. data() {
  23. return {
  24. fontSize:this.dataConfig.fontSize.val*2,
  25. linkConfig:this.dataConfig.linkConfig.value,
  26. mbConfig:this.dataConfig.mbConfig.val*2,
  27. prConfig:this.dataConfig.prConfig.val*2,
  28. textPosition:this.dataConfig.textPosition.type,
  29. textStyle:this.dataConfig.textStyle.type,
  30. titleColor:this.dataConfig.titleColor.color[0].item,
  31. titleConfig:this.dataConfig.titleConfig.value,
  32. textColor:this.dataConfig.themeColor.color[0].item,
  33. bgStyle:this.dataConfig.bgStyle.type ? '16' : '0'
  34. };
  35. },
  36. created() {},
  37. methods:{
  38. path(url){
  39. return merPath(url, this.merId)
  40. }
  41. }
  42. }
  43. </script>
  44. <style scoped lang="scss">
  45. .title{
  46. font-size: 40rpx;
  47. color: #282828;
  48. text-align: center;
  49. &.left{
  50. text-align: left;
  51. }
  52. &.right{
  53. text-align: right;
  54. }
  55. &.blod{
  56. font-weight: bold;
  57. }
  58. &.italics{
  59. font-style: italic;
  60. }
  61. }
  62. </style>