123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- import moment from "moment";
- import { isDataType } from "@/utils/tools";
- const SEX_LIST = ["", "男", "女"];
- // 验证是否是数字或字符串
- function validateToNumber(val) {
- return typeof val === "string" || typeof val === "number";
- }
- // 验证日期是否合理
- function validateDate(val) {
- let date = val;
- // Invalid Date
- if (!date || !date.getTime()) {
- return "";
- }
- let day = moment(date).format("YYYY-MM-DD");
- if (day === "1970-01-01" || day === "1900-01-01") {
- return false;
- }
- return true;
- }
- // 格式化性别
- export function formatSex(sex) {
- return SEX_LIST[sex] || "";
- }
- // 格式化年龄
- export function formatAge(age) {
- if (!age) return "";
- // 纯数字
- if (/^\d+$/.test(age)) return `${age}岁`;
- return age;
- }
- // 格式化金额
- export function formatMoney(money) {
- if (!validateToNumber(money)) {
- return "";
- }
- let num = parseFloat(money);
- if (num === 0) {
- return 0;
- }
- if (!num) {
- return "";
- }
- return (num / 100).toFixed(2);
- }
- // 格式化金额,带符号
- export function formatMoneyWithSymbol(money) {
- if (!validateToNumber(money)) {
- return "";
- }
- let num = parseFloat(money);
- if (num === 0) {
- return "¥0";
- }
- if (!num) {
- return "";
- }
- return "¥" + (num / 100).toFixed(2);
- }
- // 格式化日期+时间
- export function formatDateTime(date) {
- let temp = date;
- if (!isDataType(date, "Date")) {
- temp = new Date(date);
- }
- if (!validateDate(temp)) {
- return "";
- }
- return moment(date).format("YYYY-MM-DD HH:mm:ss");
- }
- // 格式化日期
- export function formatDate(date) {
- let temp = date;
- if (!isDataType(date, "Date")) {
- temp = new Date(date);
- }
- if (!validateDate(temp)) {
- return "";
- }
- return moment(date).format("YYYY-MM-DD");
- }
- // 格式化日期
- export function formatMonth(date) {
- let temp = date;
- if (!isDataType(date, "Date")) {
- temp = new Date(date);
- }
- if (!validateDate(temp)) {
- return "";
- }
- return moment(date).format("YYYY-MM");
- }
- // 升序排序
- export function objKeySort(obj) {
- if (!obj || Array.isArray(obj)) {
- return "";
- }
- // 升序
- let newkey = Object.keys(obj).sort(); // 先用Object内置类的keys方法获取要排序对象的属性名,再利用Array原型上的sort方法对获取的属性名进行排序,newkey是一个数组
- // 倒序
- // var newkey = Object.keys(obj).sort().reverse();
- let newObj = {}; // 创建一个新的对象,用于存放排好序的键值对
- for (let i = 0; i < newkey.length; i++) { // 遍历newkey数组
- newObj[newkey[i]] = obj[newkey[i]]; // 向新创建的对象中按照排好的顺序依次增加键值对
- }
- let objValuesString = "";
- Object.values(newObj).forEach(item => {
- if (!Array.isArray(item) && !(item instanceof Object)) {
- objValuesString = objValuesString + item;
- }
- });
- return objValuesString; // 返回排好序的新对象的值拼接起来的字符窜
- }
- // 转换当前时间为时间戳
- export function dateChange() {
- let date = Date.parse(new Date());
- return date;
- }
|