utils.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. import moment from 'moment'
  2. function comparison(arr, str) {
  3. let codeArr = []
  4. for (var i = 0, len = arr.length; i < len; i++) {
  5. codeArr.push(arr[i].code)
  6. // codeArr.push(arr[i].name);
  7. }
  8. if (codeArr.indexOf(str) == -1) return false
  9. return true
  10. }
  11. /* 精度处理,默认保留两位小数 */
  12. export const ScaleUtil = (num, n) => {
  13. //参数说明:num 要格式化的数字 n 保留小数位
  14. n = n ? n : 2
  15. num = parseFloat(num)
  16. num = String(num.toFixed(n))
  17. if (num === 'NaN') {
  18. num = '--'
  19. }
  20. return num
  21. }
  22. //乘法函数,用来得到精确的乘法结果
  23. //返回值:arg1乘以arg2的精确结果
  24. export const accMul = (arg1, arg2) => {
  25. var m = 0,
  26. s1 = arg1.toString(),
  27. s2 = arg2.toString()
  28. try {
  29. m += s1.split('.')[1].length
  30. } catch (e) {}
  31. try {
  32. m += s2.split('.')[1].length
  33. } catch (e) {}
  34. return (
  35. Number(s1.replace('.', '')) * Number(s2.replace('.', '')) / Math.pow(10, m)
  36. )
  37. }
  38. //除法函数,用来得到精确的除法结果
  39. //返回值:arg1除以arg2的精确结果
  40. export const accDiv = (arg1, arg2) => {
  41. var t1 = 0,
  42. t2 = 0,
  43. r1,
  44. r2
  45. try {
  46. t1 = arg1.toString().split('.')[1].length
  47. } catch (e) {}
  48. try {
  49. t2 = arg2.toString().split('.')[1].length
  50. } catch (e) {}
  51. // with (Math) {
  52. r1 = Number(arg1.toString().replace('.', ''))
  53. r2 = Number(arg2.toString().replace('.', ''))
  54. return r1 / r2 * Math.pow(10, t2 - t1)
  55. // }
  56. }
  57. //加法函数,用来得到精确的加法结果
  58. //返回值:arg1加上arg2的精确结果
  59. export const accAdd = (arg1, arg2) => {
  60. var r1, r2, m
  61. try {
  62. r1 = arg1.toString().split('.')[1].length
  63. } catch (e) {
  64. r1 = 0
  65. }
  66. try {
  67. r2 = arg2.toString().split('.')[1].length
  68. } catch (e) {
  69. r2 = 0
  70. }
  71. m = Math.pow(10, Math.max(r1, r2))
  72. return (arg1 * m + arg2 * m) / m
  73. }
  74. //减法函数
  75. export const accSub = (arg1, arg2) => {
  76. var r1, r2, m, n
  77. try {
  78. r1 = arg1.toString().split('.')[1].length
  79. } catch (e) {
  80. r1 = 0
  81. }
  82. try {
  83. r2 = arg2.toString().split('.')[1].length
  84. } catch (e) {
  85. r2 = 0
  86. }
  87. m = Math.pow(10, Math.max(r1, r2))
  88. n = r1 >= r2 ? r1 : r2
  89. return ((arg1 * m - arg2 * m) / m).toFixed(n)
  90. }
  91. export const ReturnDate = (item, mindate, symb) => {
  92. ;(_datef = {}), (symb = symb || '-')
  93. let date = new Date(),
  94. time = ''
  95. date.setTime(item)
  96. _datef.yearmon =
  97. date.getFullYear() +
  98. symb +
  99. (date.getMonth() < 9 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1)
  100. _datef.day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
  101. _datef.mindate =
  102. (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) +
  103. ':' +
  104. (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) +
  105. ':' +
  106. (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds())
  107. if (!mindate) {
  108. time = `${_datef.yearmon}${symb}${_datef.day} ${_datef.mindate}`
  109. } else {
  110. time = `${_datef.yearmon}${symb}${_datef.day}`
  111. }
  112. return time
  113. }
  114. // 获取当前时间 yyyy-MM-dd格式 参数为true则为上月当日, 用作前后一个月时间
  115. export const setNowFormatDate = (translate, formatInfo) => {
  116. if (!formatInfo) {
  117. formatInfo = 'YYYY-MM-DD'
  118. }
  119. let returnDate = '',
  120. date = new Date(),
  121. year = date.getFullYear()
  122. month = date.getMonth() + 1
  123. strDate = date.getDate()
  124. returnDate = `${year}-${month}-${strDate}`
  125. //时间格式yyyy-MM-dd HH:MM:SS
  126. if (translate) {
  127. returnDate =
  128. date.getMonth() == 0
  129. ? date.getFullYear() - 1 + '-' + 12 + '-' + date.getDate()
  130. : date.getFullYear() + '-' + date.getMonth() + '-' + date.getDate()
  131. }
  132. return moment(returnDate, formatInfo).format(formatInfo)
  133. }
  134. export const NumberTranslate = data => {
  135. const hanCharacter = [
  136. '一',
  137. '二',
  138. '三',
  139. '四',
  140. '五',
  141. '六',
  142. '七',
  143. '八',
  144. '九',
  145. '十一',
  146. '十二',
  147. '十三',
  148. '十四',
  149. '十五',
  150. '十六',
  151. '十七',
  152. '十八',
  153. '十九',
  154. '二十',
  155. '二十一',
  156. '二十二',
  157. '二十三',
  158. '二十四',
  159. '二十五',
  160. '二十六',
  161. '二十七',
  162. '二十八',
  163. '二十九',
  164. '三十',
  165. '三十一',
  166. '三十二',
  167. '三十三',
  168. '三十四',
  169. '三十五',
  170. '三十六',
  171. '三十七',
  172. '三十八',
  173. '三十九',
  174. '四十',
  175. '四十一',
  176. '四十二',
  177. '四十三',
  178. '四十四',
  179. '四十五',
  180. '四十六',
  181. '四十七',
  182. '四十八',
  183. '四十九',
  184. ]
  185. return hanCharacter[data]
  186. }
  187. export default {
  188. comparison,
  189. }