const statisticsCard = {
template: `
`,
props: {
title: {
type: String,
default: ""
},
tip: {
type: String,
default: ""
},
border: {
type: Boolean,
default: true
},
count: {
type: Number | String,
default: null
},
shadow: {
type: Boolean,
default: false
},
colorful: {
type: Boolean,
default: false
},
background: {
type: String,
default: "unset"
},
countColor: {
type: String,
default: "#5e6c84"
},
decimals: {
type: Number,
default: 0
}
},
watch: {
count(newV) {
if (this.decimals === 0) {
let split = String(newV).split(".");
this.decimals = split[1] ? split[1].length : 0;
}
}
}
}
const statisticsTimeRange = {
template: `
`,
props:{
custom:{
type:Boolean,
default:false
}
},
data() {
return {
datePickerFormat: "",
timeRangeTypes: [{
text: "日",
key: "day"
}, {
text: "周",
key: "week"
}, {
text: "月",
key: "month"
}],
timeRangeType: "day",
timeRange: null
}
},
methods: {
dateChanged() {
this.$emit('changed', { timeRangeType: this.timeRangeType, timeRange: new Date(this.timeRange).getTime() });
},
handelDate(date){
date[0] = date[0].getFullYear()+'-'+(date[0].getMonth()+1).toString().padStart(2,'0')+'-'+date[0].getDate().toString().padStart(2,'0')
date[1] = date[1].getFullYear()+'-'+(date[1].getMonth()+1).toString().padStart(2,'0')+'-'+date[1].getDate().toString().padStart(2,'0')
return date
},
dateRangeChanged(){
let arr = []
arr = this.handelDate(this.timeRange)
this.$emit('changed', { timeRangeType: this.timeRangeType, timeRange:arr});
}
},
computed: {
datePickerType() {
switch (this.timeRangeType) {
case "day":
this.datePickerFormat = "yyyy 年 MM 月 dd 日";
return "date";
break;
case "week":
this.datePickerFormat = "yyyy 第 WW 周";
return "week";
break;
case "month":
this.datePickerFormat = "yyyy 年 MM月";
return "month";
break;
case "between":
this.datePickerFormat = null;
return "daterange"
break
}
}
},
mounted(){
if(this.custom){
this.timeRangeTypes= [{
text: "日",
key: "day"
}, {
text: "周",
key: "week"
}, {
text: "月",
key: "month"
},{
text:'自定义',
key:'between'
}]
}
}
}
const StatisticsCardTitle = {
template: `
`
}
const componentMixins = {
components: {
statisticsCard,
StatisticsCardTitle,
statisticsTimeRange
},
methods: {
getDecimals(numbers) {
let split = String(numbers).split(".");
return split[1] ? split[1].length : 0;
},
}
};