skyouc
2024-12-23 3bc055f2ee9e813db0f08c5aefc4799be943f77f
uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue
@@ -1,88 +1,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>
<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>