Commit b8509c593a7ab3a04c5ed926e2ad825fd4c4f311

Authored by 梁灏
1 parent 7f9ea0dc

update Time

Showing 1 changed file with 56 additions and 2 deletions   Show diff stats
src/components/time/time.vue
1 1 <template>
2   - <span>time</span>
  2 + <span :class="classes" @click="handleClick">time</span>
3 3 </template>
4 4 <script>
5   - export default {
  5 + import { oneOf } from '../../utils/assist';
  6 +
  7 + const prefixCls = 'ivu-time';
6 8  
  9 + export default {
  10 + name: 'Time',
  11 + props: {
  12 + time: {
  13 + type: [String, Number, Date],
  14 + required: true
  15 + },
  16 + type: {
  17 + type: String,
  18 + validator (value) {
  19 + return oneOf(value, ['relative', 'date', 'datetime']);
  20 + },
  21 + default: 'relative'
  22 + },
  23 + hash: {
  24 + type: String,
  25 + default: ''
  26 + },
  27 + interval: {
  28 + type: Number,
  29 + default: 60
  30 + }
  31 + },
  32 + data () {
  33 + return {
  34 + date: ''
  35 + };
  36 + },
  37 + computed: {
  38 + classes () {
  39 + return [
  40 + `${prefixCls}`,
  41 + {
  42 + [`${prefixCls}-with-hash`]: this.hash
  43 + }
  44 + ];
  45 + }
  46 + },
  47 + methods: {
  48 + handleClick () {
  49 + if (this.hash !== '') window.location.hash = this.hash;
  50 + }
  51 + },
  52 + mounted () {
  53 + this.setTime();
  54 + this.timer = setInterval(() => {
  55 + this.setTime();
  56 + }, 1000 * this.interval);
  57 + },
  58 + beforeDestroy () {
  59 + if (this.timer) clearInterval(this.timer);
  60 + }
7 61 };
8 62 </script>
9 63 \ No newline at end of file
... ...