| 
							- Component({
 -     properties: {
 -         target: Number,
 -         showDay: Boolean,
 -         callback: String,
 -         format: Array,
 -         clearTimer: Boolean
 -     },
 -     externalClasses: ['countdown-class'],
 -     data: {
 -         time: '',
 -         resultFormat: [],
 -         changeFormat: false
 -     },
 -     ready() {
 -         this.getFormat();
 - 
 -     },
 -     methods: {
 -         getFormat() {
 -             const data = this.data;
 -             const len = data.format.length;
 - 
 -             if (!data.showDay) data.resultFormat.push('');
 - 
 -             if (len >= 3) {
 -                 for (let i = 0; i < len; i++) {
 -                     if (data.resultFormat.length >= 4) break;
 -                     if (data.format[i]) {
 -                         data.resultFormat.push(data.format[i].toString());
 -                     }
 -                 }
 - 
 -                 if (data.resultFormat.length >= 4) data.changeFormat = true;
 -             }
 - 
 -             this.getLastTime();
 -         },
 -         init() {
 -             const self = this;
 -             setTimeout(function () {
 -                 self.getLastTime.call(self);
 -             }, 1000);
 -         },
 -         getLastTime() {
 -             const data = this.data;
 -             const gapTime = Math.ceil((data.target - new Date().getTime()) / 1000);
 -             let result = '';
 -             let time = '00:00:00';
 -             let day = '00';
 -             const format = data.resultFormat;
 - 
 -             if (gapTime > 0) {
 -                 day = this.formatNum(parseInt(gapTime / 86400));
 -                 let lastTime = gapTime % 86400;
 -                 const hour = this.formatNum(parseInt(lastTime / 3600));
 -                 lastTime = lastTime % 3600;
 -                 const minute = this.formatNum(parseInt(lastTime / 60));
 -                 const second = this.formatNum(lastTime % 60);
 - 
 -                 if (data.changeFormat) time = `${hour}${format[1]}${minute}${format[2]}${second}${format[3]}`;
 -                 else time = `${hour}:${minute}:${second}`;
 - 
 -                 if (!data.clearTimer) this.init.call(this);
 -             } else {
 -                 this.endfn();
 -             }
 - 
 -             if (data.showDay) {
 -                 if (data.changeFormat) {
 -                     result = `${day}${format[0]} ${time}`;
 -                 } else {
 -                     result = `${day}d ${time}`;
 -                 }
 -             } else {
 -                 result = time;
 -             }
 -             this.setData({
 -                 time: result
 -             });
 - 
 -         },
 -         formatNum(num) {
 -             return num > 9 ? num : `0${num}`;
 -         },
 -         endfn() {
 -             this.triggerEvent('callback', {});
 -         }
 -     }
 - });
 
 
  |