博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue货币格式化组件、局部过滤功能以及全局过滤功能
阅读量:4636 次
发布时间:2019-06-09

本文共 2179 字,大约阅读时间需要 7 分钟。

一、在这里介绍一个vue的时间格式化插件: moment 

使用方法: 1.npm install moment --save2.

  2 定义时间格式化全局过滤器

  在main.js中 导入组件

  import moment from 'moment'

  Vue.filter('dateformat', function(dataStr, pattern = 'YYYY-MM-DD HH:mm:ss') {

      return moment(dataStr).format(pattern)

  })

  filter两个参数 第一个是函数名  第二个是时间格式化处理的函数

 

3 只需要在需要格式化时间的地方使用插值表达式就OK了

  <!-- 子标题 -->

      <p class="subtitle">
          <span>发表时间:{
{ newsinfo.add_time | dateformat('YYYY-MM-DD HH:mm:ss')}}</span>
          <span>点击{
{ newsinfo.click }}次</span>
     </p>

第二种方法 

引入moment.js

<script>

let moment = require("moment");

 

export default {

data() {

return {

}

可以直接使用了

if(this.ruleForm2.startTime == '' || this.ruleForm2.startTime == null || this.ruleForm2.startTime == undefined){

this.ruleForm2.startTime = ''

}else {

this.ruleForm2.startTime = moment(this.ruleForm2.startTime).format('YYYY-MM-DD')

}

如果是想要 转化为年月日分秒

this.ruleForm2.startTime = moment(this.ruleForm2.startTime).format('YYYY-MM-DD HH-mm')

</script>

 

二、货币格式化 

在页面中,例如价格数据,不管是后台传递过来的还是前台计算之后显示在页面上的,一般都只是一个数字没有格式,完整的格式应该是

要实现这个其实很简单,vue的过滤功能就很好的能解决这个问题,什么叫做过滤,就是将元数据进行相应的处理在显示出来。

首先建立一个 js 文件 currency.js

const digitsRE = /(\d{
3})(?=\d)/g/*** value 金额* currency 货币符号* decimals 保留位数*/export function currency (value, currency, decimals) { value = parseFloat(value) if (!isFinite(value) || (!value && value !== 0)) return '' currency = currency != null ? currency : '$' decimals = decimals != null ? decimals : 2 var stringified = Math.abs(value).toFixed(decimals) var _int = decimals ? stringified.slice(0, -1 - decimals) : stringified var i = _int.length % 3 var head = i > 0 ? (_int.slice(0, i) + (_int.length > 3 ? ',' : '')) : '' var _float = decimals ? stringified.slice(-1 - decimals) : '' var sign = value < 0 ? '-' : '' return sign + currency + head + _int.slice(i).replace(digitsRE, '$1,') + _float}

1、局部过滤,全局不使用,在某一个页面使用

引入:

import {currency} from '@/unit/currency';这个文件是有返回值的,必须这样引入,并且他不是默认抛出的

js中写法:

filters:{        currency: currency    },

页面中需要 价格 格式化的地方写法

{
{totalPrice | currency('$')}}

2、全局引入,在任何地方都能使用。

在main.js 中导入,并

Vue.filter("currency", currency); 这里 一定不能加 (),加了就成了函数执行了

这样在全局任何地方都可以使用了。

转载于:https://www.cnblogs.com/haonanZhang/p/8371791.html

你可能感兴趣的文章
jQuery-1.9.1源码分析系列(四) 缓存系统
查看>>
(转)面试必备技能:JDK动态代理给Spring事务埋下的坑!
查看>>
C语言 · 勾股数
查看>>
菜鸟初涉SQL Server的总结
查看>>
过犹不及
查看>>
Redis 入门知识
查看>>
夏天过去了, 姥爷推荐几套来自smashingmagzine的超棒秋天主题壁纸
查看>>
转--Android如何在java代码中设置margin
查看>>
反射的所有api
查看>>
Js 判断网页窗口是否滚动到底部
查看>>
上传文件
查看>>
css 定位及遮罩层小技巧
查看>>
用java向mysql数据库中插入数据为空
查看>>
项目中非常有用并且常见的ES6语法
查看>>
dateTimePicker编辑状态下,取值不正确的问题
查看>>
mac 端口转发方案
查看>>
[2017.02.23] Java8 函数式编程
查看>>
loadrunner支持https协议的操作方法-经验总结
查看>>
30 个 php 操作 redis 常用方法代码例子
查看>>
Knowledge Point 20180305 数据在计算机中的表示
查看>>