1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
| <template>
| <text>{{dateShow}}</text>
| </template>
|
| <script>
| import {friendlyDate} from './date-format.js'
| /**
| * Dateformat 日期格式化
| * @description 日期格式化组件
| * @tutorial https://ext.dcloud.net.cn/plugin?id=3279
| * @property {Object|String|Number} date 日期对象/日期字符串/时间戳
| * @property {String} locale 格式化使用的语言
| * @value zh 中文
| * @value en 英文
| * @property {Array} threshold 应用不同类型格式化的阈值
| * @property {String} format 输出日期字符串时的格式
| */
| export default {
| name: 'uniDateformat',
| props: {
| date: {
| type: [Object, String, Number],
| default () {
| return '-'
| }
| },
| locale: {
| type: String,
| default: 'zh',
| },
| threshold: {
| type: Array,
| default () {
| return [0, 0]
| }
| },
| format: {
| type: String,
| default: 'yyyy/MM/dd hh:mm:ss'
| },
| // refreshRate使用不当可能导致性能问题,谨慎使用
| refreshRate: {
| type: [Number, String],
| default: 0
| }
| },
| data() {
| return {
| refreshMark: 0
| }
| },
| computed: {
| dateShow() {
| this.refreshMark
| return friendlyDate(this.date, {
| locale: this.locale,
| threshold: this.threshold,
| format: this.format
| })
| }
| },
| watch: {
| refreshRate: {
| handler() {
| this.setAutoRefresh()
| },
| immediate: true
| }
| },
| methods: {
| refresh() {
| this.refreshMark++
| },
| setAutoRefresh() {
| clearInterval(this.refreshInterval)
| if (this.refreshRate) {
| this.refreshInterval = setInterval(() => {
| this.refresh()
| }, parseInt(this.refreshRate))
| }
| }
| }
| }
| </script>
|
| <style>
|
| </style>
|
|