VUEフィルタパッケージをベースと時刻のフォーマット変換

1.変換filter.js書かれたスクリプトのために新しいフォルダを作成します。

import Vue from "vue";
export default {
  dateFormat(dateTime, fmt) {
    if (dateTime) {
      let date = new Date();
      //ios new Date()需要把'-'转换成'/'
      if (typeof dateTime === "object" || typeof dateTime === "number")
        date = new Date(dateTime);
      else {
        date =
          typeof dateTime === "string" && dateTime.split("-").length === 1
            ? new Date(parseInt(dateTime))
            : new Date(dateTime.replace(/-/g, "/"));
      }
      fmt = fmt ? fmt : "yyyy-MM-dd hh:mm:ss";
      if (/(y+)/.test(fmt)) {
        fmt = fmt.replace(
          RegExp.$1,
          (date.getFullYear() + "").substr(4 - RegExp.$1.length)
        );
      }
      let o = {
        yyyy: date.getFullYear(),
        "M+": date.getMonth() + 1,
        "d+": date.getDate(),
        "h+": date.getHours(),
        "m+": date.getMinutes(),
        "s+": date.getSeconds()
      };
      for (let k in o) {
        if (new RegExp(`(${k})`).test(fmt)) {
          let str = o[k] + "";
          fmt = fmt.replace(
            RegExp.$1,
            RegExp.$1.length === 1 ? str : ("00" + str).substr(str.length)
          );
        }
      }
      return fmt;
    } else {
      return "--";
    }
  },
  //计算距今天天数
  calcDate(date) {
    let newDate = new Date(
      Vue.filter("dateFormat")(date, "yyyy-MM-dd")
    ).getTime();

    let nowDate = new Date(
      Vue.filter("dateFormat")(new Date(), "yyyy-MM-dd")
    ).getTime();
    date = Math.abs(nowDate - newDate) / 86400000;
    return date;
  },
  findNameFromList(dictList, code) {
    if (code) {
      if (dictList.find(item => item.value === code.toString())) {
        return dictList.find(item => item.value === code.toString()).label;
      } else {
        return "--";
      }
    }
  },
  //任务状态
  getServeStatus(type) {
    if ("1001" == type) {
      return "待受理";
    } else if ("1002" == type) {
      return "待核实";
    } else if ("1003" == type) {
      return "待支付";
    } else if ("1004" == type) {
      return "待派工";
    } else if ("1005" == type) {
      return "待办结";
      
    } else if ("1006" == type) {
      return "已办结";
    } else if ("1007" == type) {
      return "已评价";
    } else if ("1008" == type) {
      return "重新派工";
    } else if ("1009" == type) {
      return "取消服务";
    } else {
      return "";
    }
  }
};

2.使いやすさのために、私たちは、フィルタ・レジスタのグローバルを使用します。この時点で、main.jsを変更したいです

main.js
import { filter } from '@/libs';  //引入filter.js
ps:在libs文件夹下index.js中统一导出
例如:
import axiosHttp from './axiosHttp'
import api from './api'
import dict from './dict'
import directive from './directive'
import filter from './filter'
import util from './util'

export { axiosHttp, api, dict, directive, filter, util } 
ps:end
Object.entries(filter).forEach(item => Vue.filter(item[0],item[1])) 
由于vue filter要接收两个参数,所以要使用entries转换为数组,
这样可以吧filter 中的每一个方法都遍历出来,通过键值对形式注册

3.塗装髭で直接使用するページ、フィルタのサポート

{{1578967815575、 'YYYY / MM / DD' | DATEFORMAT}}

フォーマットは、この場合には、オンデマンドで配信することができ、YYY / MM / DD、また、HHを追加することができます:mm:ssのを

公開された21元の記事 ウォンの賞賛4 ビュー2730

おすすめ

転載: blog.csdn.net/smallico/article/details/103046984