| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- <template>
- <div class="statistics">
- <ul class="list-inline" :style="{top: widthTop + 'rem'}" :class="{no_tran: widthTop == 2.4}">
- <li v-for="item in itemData">
- <span v-text="item.id"></span>
- <span v-text="formatNumber(item.count)"></span>
- </li>
- </ul>
- </div>
- </template>
- <script>
- export default {
- name: 'StatisticsView',
- data () {
- return {
- step: 1,
- widthTop: 0,
- timerIndex: 0,
- timer: {} // 定时器实体
- }
- },
- mounted () {
- this.$nextTick(() => {
- this.changeInterval()
- })
- },
- methods: {
- changeInterval () {
- setInterval(() => {
- this.widthTop += -0.6
- if (this.widthTop < -2.4) {
- this.widthTop = 0.6
- }
- }, 3000)
- },
- formatNumber (num, type) {
- if (num.toString().indexOf('E') !== -1) {
- let arr = num.toString().split('E')
- num = arr[0] * Math.pow(10, arr[1])
- }
- if (num > 99999999) {
- let str2 = num.toString()
- num = Math.floor(num / 100000000)
- if (parseInt(str2.charAt(str2.length - 8)) > 8) {
- num = num + 1
- }
- num += '亿'
- } else if (num > 9999) {
- let str = num.toString()
- num = Math.floor(num / 10000)
- if (parseInt(str.charAt(str.length - 4)) > 4) {
- num = num + 1
- }
- num += '万'
- } else {
- if (type === 1 || type === 2) {
- num += '元'
- } else {
- num += ''
- }
- }
- return num
- },
- formatDouble (num) {
- if (num.toString().indexOf('E') !== -1) {
- let arr = num.toString().split('E')
- num = arr[0] * Math.pow(10, arr[1])
- }
- if (num > 99999999) {
- num = (num / 100000000).toFixed(2).slice(num.length - 1, 4) + '亿'
- } else if (num > 9999) {
- num = (num / 10000).toFixed(2).slice(num.length - 1, 4) + '万'
- } else {
- num += ''
- }
- return num
- }
- },
- computed: {
- allCount () {
- return this.$store.state.count.allCount.data
- },
- inquirySheet () {
- let sheetNum = this.$store.state.count.inquirySheet.data.count
- return this.formatDouble(sheetNum)
- },
- inquirySheetLast () {
- let lastSheetNum = this.$store.state.count.inquirySheetLast.data.count
- return this.formatDouble(lastSheetNum)
- },
- all () {
- let count = this.$store.state.supplier.merchant.merchantAll.data
- return count.content ? count.totalElements : '0'
- },
- counts () {
- return this.$store.state.product.common.counts
- },
- itemData () {
- let str = []
- if (this.counts.data) {
- this.counts.data.forEach((value, key, $data) => {
- str.push({id: $data[key].item, count: $data[key].count, type: 1})
- })
- }
- if (this.allCount) {
- this.allCount.forEach((value, key, $data) => {
- str.push({id: $data[key].item, count: $data[key].count, type: 1})
- })
- }
- str.push({id: '本月询价单', count: this.$store.state.count.inquirySheet.data ? this.$store.state.count.inquirySheet.data.count : 0, type: 2})
- str.push({id: '上月询价单', count: this.$store.state.count.inquirySheetLast.data ? this.$store.state.count.inquirySheetLast.data.count : 0, type: 2})
- str.push({id: '供应商', count: this.all ? this.all : 0, type: 3})
- console.log(str)
- return str
- }
- }
- }
- </script>
- <style lang="scss" scoped>
- .statistics{
- position:relative;
- height: .6rem;
- border-radius:.3rem;
- background: #fff;
- margin:0 .05rem .2rem;
- overflow: hidden;
- ul{
- position:absolute;
- transition: .5s all linear;
- &:no_tran{
- transition:none;
- }
- li{
- width:50%;
- height:.6rem;
- line-height: .6rem;
- padding: 0 .3rem;
- text-align: center;
- font-size: .28rem;
- font-weight: bold;
- white-space: nowrap;
- overflow: hidden;
- vertical-align:top;
- span{
- margin: 0 .1rem;
- &:last-child{
- color:red;
- }
- }
- }
- }
- }
- </style>
|