custom-text-price.vue 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <template>
  2. <view>
  3. <text v-for="(item, index) in textArray" :key="index" :style="{ 'font-size': (index === 1 ? integerSize : size) + 'px', 'color': color }">
  4. {{ item }}
  5. </text>
  6. </view>
  7. </template>
  8. <script>
  9. /**
  10. * 此组件简单的显示特定样式的(人名币)价格数字
  11. */
  12. export default {
  13. name: 'custom-text-price',
  14. components: {},
  15. props: {
  16. price: {
  17. type: [String, Number],
  18. default: '0.00'
  19. },
  20. color: {
  21. type: String,
  22. default: '#333333'
  23. },
  24. //字体大小
  25. size: {
  26. type: [String, Number],
  27. default: 15
  28. },
  29. //整形部分字体大小可单独定义
  30. intSize: {
  31. type: [String, Number],
  32. default: 15
  33. }
  34. },
  35. computed: {
  36. textArray() {
  37. let array = ['¥']
  38. if (!/^\d+(\.\d+)?$/.test(this.price)) {
  39. console.error('组件<custom-text-price :text="???" 此处参数应为金额数字')
  40. } else {
  41. let arr = parseFloat(this.price).toFixed(2).split('.')
  42. array.push(arr[0])
  43. array.push('.' + arr[1])
  44. }
  45. return array
  46. },
  47. integerSize() {
  48. return this.intSize ? this.intSize : this.size
  49. }
  50. }
  51. }
  52. </script>
  53. <style scoped></style>