123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- <template>
- <span :style="{ fontSize: amount_font_size + 'px' }">{{ amount }}</span>
- </template>
- <script>
- export default {
- props: {
- amount: {
- type: String,
- default: ''
- },
- width: {
- type: Number,
- default: 360
- },
- fontSize: {
- type: Number,
- default: 56
- },
- },
- data() {
- return {
- amount_font_size: 60,
- }
- },
- watch: {
- amount(newV) {
- if (newV) {
- this.setFontSize()
- }
- },
- width(newV) {
- if (newV) {
- this.setFontSize()
- }
- },
- fontSize(newV) {
- if (newV) {
- this.setFontSize()
- }
- },
- },
- mounted() {
- this.setFontSize()
- },
- methods: {
- setFontSize() {
- let _num = parseInt(this.width / this.amount.length);
- this.amount_font_size = _num < this.fontSize ? _num : this.fontSize;
- }
- }
- }
- </script>
- <style lang="scss" scoped>
- </style>
|