| | |
| | | |
| | | |
| | | /** |
| | | * 通用js方法封装处理 |
| | | * Copyright (c) 2019 ruoyi |
| | |
| | | const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => { |
| | | let value = formatObj[key] |
| | | // Note: getDay() returns 0 on Sunday |
| | | if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] } |
| | | if (key === 'a') { |
| | | return ['日', '一', '二', '三', '四', '五', '六'][value] |
| | | } |
| | | if (result.length > 0 && value < 10) { |
| | | value = '0' + value |
| | | } |
| | |
| | | |
| | | // 回显数据字典(字符串、数组) |
| | | export function selectDictLabels(datas, value, separator) { |
| | | if (value === undefined || value.length ===0) { |
| | | if (value === undefined || value.length === 0) { |
| | | return ""; |
| | | } |
| | | if (Array.isArray(value)) { |
| | |
| | | |
| | | // 字符串格式化(%s ) |
| | | export function sprintf(str) { |
| | | var args = arguments, flag = true, i = 1; |
| | | var args = arguments, |
| | | flag = true, |
| | | i = 1; |
| | | str = str.replace(/%s/g, function () { |
| | | var arg = args[i++]; |
| | | if (typeof arg === 'undefined') { |
| | |
| | | } |
| | | |
| | | /** |
| | | * 参数处理 |
| | | * @param {*} params 参数 |
| | | */ |
| | | * 参数处理 |
| | | * @param {*} params 参数 |
| | | */ |
| | | export function tansParams(params) { |
| | | let result = '' |
| | | for (const propName of Object.keys(params)) { |
| | |
| | | export function blobValidate(data) { |
| | | return data.type !== 'application/json' |
| | | } |
| | | |
| | | |
| | | |
| | | export function convertCurrency(money) { |
| | | //汉字的数字 |
| | | var cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'); |
| | | //基本单位 |
| | | var cnIntRadice = new Array('', '拾', '佰', '仟'); |
| | | //对应整数部分扩展单位 |
| | | var cnIntUnits = new Array('', '万', '亿', '兆'); |
| | | //对应小数部分单位 |
| | | var cnDecUnits = new Array('角', '分', '毫', '厘'); |
| | | //整数金额时后面跟的字符 |
| | | var cnInteger = '整'; |
| | | //整型完以后的单位 |
| | | var cnIntLast = '元'; |
| | | //最大处理的数字 |
| | | var maxNum = 999999999999999.9999; |
| | | //金额整数部分 |
| | | var integerNum; |
| | | //金额小数部分 |
| | | var decimalNum; |
| | | //输出的中文金额字符串 |
| | | var chineseStr = ''; |
| | | //分离金额后用的数组,预定义 |
| | | var parts; |
| | | // 传入的参数为空情况 |
| | | if (money == '') { |
| | | return ''; |
| | | } |
| | | money = parseFloat(money) |
| | | if (money >= maxNum) { |
| | | return '' |
| | | } |
| | | // 传入的参数为0情况 |
| | | if (money == 0) { |
| | | chineseStr = cnNums[0] + cnIntLast + cnInteger; |
| | | return chineseStr |
| | | } |
| | | // 转为字符串 |
| | | money = money.toString(); |
| | | // indexOf 检测某字符在字符串中首次出现的位置 返回索引值(从0 开始) -1 代表无 |
| | | if (money.indexOf('.') == -1) { |
| | | integerNum = money; |
| | | decimalNum = '' |
| | | } else { |
| | | parts = money.split('.'); |
| | | integerNum = parts[0]; |
| | | decimalNum = parts[1].substr(0, 4); |
| | | } |
| | | //转换整数部分 |
| | | if (parseInt(integerNum, 10) > 0) { |
| | | let zeroCount = 0; |
| | | let IntLen = integerNum.length |
| | | for (let i = 0; i < IntLen; i++) { |
| | | let n = integerNum.substr(i, 1); |
| | | let p = IntLen - i - 1; |
| | | let q = p / 4; |
| | | let m = p % 4; |
| | | if (n == '0') { |
| | | zeroCount++; |
| | | } else { |
| | | if (zeroCount > 0) { |
| | | chineseStr += cnNums[0] |
| | | } |
| | | zeroCount = 0; |
| | | chineseStr += cnNums[parseInt(n)] + cnIntRadice[m]; |
| | | } |
| | | if (m == 0 && zeroCount < 4) { |
| | | chineseStr += cnIntUnits[q]; |
| | | } |
| | | } |
| | | // 最后+ 元 |
| | | chineseStr += cnIntLast; |
| | | } |
| | | // 转换小数部分 |
| | | if (decimalNum != '') { |
| | | let decLen = decimalNum.length; |
| | | for (let i = 0; i < decLen; i++) { |
| | | let n = decimalNum.substr(i, 1); |
| | | if (n != '0') { |
| | | chineseStr += cnNums[Number(n)] + cnDecUnits[i] |
| | | } |
| | | } |
| | | } |
| | | if (chineseStr == '') { |
| | | chineseStr += cnNums[0] + cnIntLast + cnInteger; |
| | | } else if (decimalNum == '') { |
| | | chineseStr += cnInteger; |
| | | } |
| | | |
| | | return chineseStr |
| | | } |