记一次js-model数据模型使用

为javascript准备的数据模型工具

官方中文文档

安装

npm安装

npm install js-model --save

Model

字段定义:

  • String: "" || String
  • Number: 0 || Number
  • Date: Date
  • Array: []
  • Object: {}

Default Parameter

{
  //dispose的时候移除空数组
  removeEmptyArray: false,
  //parse的时候移除null数据
  removeNull: false,
  //移除null数据从数组中
  removeNullFromArray: false,
  //从子对象中移除空对象
  removeEmptyObject: true,
}

Const

  Model.S // money ten 十
  Model.B // money hundred 百
  Model.Q // money thousand 千
  Model.W //money ten thousand 万
  Model.SW // money one hundred thousand 十万
  Model.BW // money million 百万
  Model.QW // money ten million 千万
  Model.Y // money billion 亿

方法

  • parse:

    • 创建完整对象数据,让你摆脱{{a&&a.b?a.b.c:''}}这种无聊的判断了
    • 数据标准化转换,当数据从后台传输过来的时候,日期是时间戳,金额是以元为单位,parse方法是帮你转换时间戳至时间字符串,金额以一定单位转换好,并且可以帮助你补全好所有的字段。
  • dispose:

    • 当你需要把数据传送至后台之前,把日期转换成时间戳,把金额转换为以元为单位的数额,标准化数据格式,删除为空的数据。

    例:通过input修改的数值为String, 通过dispose转换成数字格式。

基本

Basic.js

import Model from "js-model";

let Basic = new Model({
    id: 0,
    source: {
        type: Date,
        format: 'l'  // 使用manba日期格式化, "l": "YYYY-MM-DD",
    },
    description: "",
    tags: [ 0 ],
    companyId: "",
    rate: {
    	type: Number,
    	default: 0.8  // 使用默认值,只对 String, Number, Date 类型的值有效。
    },
    salary: {
        type: Number,
        unit: Model.Q // 金额转换,此处单位为 千
    }
});
export default Basic;

parse

Usage 1: 补充字段

import Basic from './Basic.js'
let basicValue = Basic.parse({});

basicValue:

{
    id: null,
    source: null,
    description: null,
    tags: [],
    companyId: null,
    rate: 0.8, // use default value
    salary: null
}
import Model from 'js-model'
import default_sany_logo from '@/assets/sany/images/sany-logo.png'
import default_sany_QRCode from '@/assets/sany/images/QRCode.png'

const flowBtnModel = new Model({
  logo: {
    type: String,
    default: default_sany_logo
  },
  // 二维码
  qrCode: {
    type: String,
    default: default_sany_QRCode
  },
  homeUserPo: {
    // 用户名
    name: {
      type: String,
      default: '游客'
    },
    // 部门
    group: {
      type: String,
      default: '无'
    },
    // 岗位
    possittons: {
      type: String,
      default: '无'
    },
    // 中间标题
    midInfo: {
      type: String,
      default: '报账单'
    }
  }
})
export default flowBtnModel

 

你可能感兴趣的:(javascript,vue)