You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

265 lines
7.6 KiB

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
  1. var SIGN_REGEXP = /([yMdhsmH])(\1*)/g
  2. var DEFAULT_PATTERN = 'yyyy-MM-dd'
  3. function padding(s, len) {
  4. var len = len - (s + '').length
  5. for (var i = 0; i < len; i++) { s = '0' + s }
  6. return s
  7. }
  8. export default {
  9. getQueryStringByName: function(name) {
  10. var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i')
  11. var r = window.location.search.substr(1).match(reg)
  12. var context = ''
  13. if (r != null) { context = r[2] }
  14. reg = null
  15. r = null
  16. return context == null || context == '' || context == 'undefined' ? '' : context
  17. },
  18. fmoney(s,n) {
  19. n = n > 0 && n <= 20 ? n : 2;
  20. s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";
  21. var l = s.split(".")[0].split("").reverse(), r = s.split(".")[1];
  22. var t = "";
  23. for (let i = 0; i < l.length; i++) {
  24. t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");
  25. }
  26. return t.split("").reverse().join("") + "." + r;
  27. },
  28. isNull(obj) {
  29. if(obj === null || obj === '' || obj === undefined) {
  30. return true;
  31. }
  32. return false;
  33. },
  34. /**
  35. * 字段转成驼峰命名
  36. * @param {*} name
  37. */
  38. toCamel(name) {
  39. return name.replace(/\_(\w)/g, function(all, letter){
  40. return letter.toUpperCase();
  41. });
  42. },
  43. /**
  44. * 驼峰转下横线
  45. * @param {*} name
  46. */
  47. toLine(name) {
  48. return name.replace(/([A-Z])/g,"_$1").toLowerCase();
  49. },
  50. formatDate: {
  51. format: function(date, pattern) {
  52. pattern = pattern || DEFAULT_PATTERN
  53. return pattern.replace(SIGN_REGEXP, function($0) {
  54. switch ($0.charAt(0)) {
  55. case 'y': return padding(date.getFullYear(), $0.length)
  56. case 'M': return padding(date.getMonth() + 1, $0.length)
  57. case 'd': return padding(date.getDate(), $0.length)
  58. case 'w': return date.getDay() + 1
  59. case 'h': return padding(date.getHours(), $0.length)
  60. case 'H': return padding(date.getHours(), $0.length)
  61. case 'm': return padding(date.getMinutes(), $0.length)
  62. case 's': return padding(date.getSeconds(), $0.length)
  63. }
  64. })
  65. },
  66. parse: function(dateString, pattern) {
  67. var matchs1 = pattern.match(SIGN_REGEXP)
  68. var matchs2 = dateString.match(/(\d)+/g)
  69. if (matchs1.length == matchs2.length) {
  70. var _date = new Date(1970, 0, 1)
  71. for (var i = 0; i < matchs1.length; i++) {
  72. var _int = parseInt(matchs2[i])
  73. var sign = matchs1[i]
  74. switch (sign.charAt(0)) {
  75. case 'y': _date.setFullYear(_int); break
  76. case 'M': _date.setMonth(_int - 1); break
  77. case 'd': _date.setDate(_int); break
  78. case 'h': _date.setHours(_int); break
  79. case 'm': _date.setMinutes(_int); break
  80. case 's': _date.setSeconds(_int); break
  81. }
  82. }
  83. return _date
  84. }
  85. return null
  86. },
  87. },
  88. //type date/daterange
  89. pickerOptions: function(type){
  90. if(type!='datarange'){
  91. var shortcuts= [{
  92. text: '今天',
  93. onClick(picker) {
  94. picker.$emit('pick', new Date());
  95. }
  96. }, {
  97. text: '昨天',
  98. onClick(picker) {
  99. const date = new Date();
  100. date.setTime(date.getTime() - 3600 * 1000 * 24);
  101. picker.$emit('pick', date);
  102. }
  103. }, {
  104. text: '前一周',
  105. onClick(picker) {
  106. const date = new Date();
  107. date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
  108. picker.$emit('pick', date);
  109. }
  110. }, {
  111. text: '前两周',
  112. onClick(picker) {
  113. const date = new Date();
  114. date.setTime(date.getTime() - 3600 * 1000 * 24 * 7 * 2);
  115. picker.$emit('pick', date);
  116. }
  117. }, {
  118. text: '前四周',
  119. onClick(picker) {
  120. const date = new Date();
  121. date.setTime(date.getTime() - 3600 * 1000 * 24 * 7 * 4);
  122. picker.$emit('pick', date);
  123. }
  124. }, {
  125. text: '后一周',
  126. onClick(picker) {
  127. const date = new Date();
  128. date.setTime(date.getTime() + 3600 * 1000 * 24 * 7);
  129. picker.$emit('pick', date);
  130. }
  131. }, {
  132. text: '后两周',
  133. onClick(picker) {
  134. const date = new Date();
  135. date.setTime(date.getTime() + 3600 * 1000 * 24 * 7 *2);
  136. picker.$emit('pick', date);
  137. }
  138. }, {
  139. text: '后一月',
  140. onClick(picker) {
  141. const date = new Date();
  142. date.setTime(date.getTime() + 3600 * 1000 * 24 * 7 * 4);
  143. picker.$emit('pick', date);
  144. }
  145. }, {
  146. text: '后两月',
  147. onClick(picker) {
  148. const date = new Date();
  149. date.setTime(date.getTime() + 3600 * 1000 * 24 * 7 * 8);
  150. picker.$emit('pick', date);
  151. }
  152. }, {
  153. text: '后四月',
  154. onClick(picker) {
  155. const date = new Date();
  156. date.setTime(date.getTime() + 3600 * 1000 * 24 * 7 * 16);
  157. picker.$emit('pick', date);
  158. }
  159. }]
  160. return {shortcuts:shortcuts};
  161. }else{
  162. var shortcuts= [
  163. {
  164. text: "前一周",
  165. onClick(picker) {
  166. const end = new Date();
  167. const start = new Date();
  168. start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
  169. picker.$emit("pick", [start, end]);
  170. }
  171. },
  172. {
  173. text: "前两周",
  174. onClick(picker) {
  175. const end = new Date();
  176. const start = new Date();
  177. start.setTime(start.getTime() - 3600 * 1000 * 24 * 7 * 2);
  178. picker.$emit("pick", [start, end]);
  179. }
  180. },
  181. {
  182. text: "前一个月",
  183. onClick(picker) {
  184. const end = new Date();
  185. const start = new Date();
  186. start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
  187. picker.$emit("pick", [start, end]);
  188. }
  189. },
  190. {
  191. text: "前三个月",
  192. onClick(picker) {
  193. const end = new Date();
  194. const start = new Date();
  195. start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
  196. picker.$emit("pick", [start, end]);
  197. }
  198. },
  199. {
  200. text: "前一年",
  201. onClick(picker) {
  202. const end = new Date();
  203. const start = new Date();
  204. start.setTime(start.getTime() - 3600 * 1000 * 24 * 360);
  205. picker.$emit("pick", [start, end]);
  206. }
  207. },
  208. {
  209. text: "后一周",
  210. onClick(picker) {
  211. const end = new Date();
  212. const start = new Date();
  213. end.setTime(start.getTime() + 3600 * 1000 * 24 * 7);
  214. picker.$emit("pick", [start, end]);
  215. }
  216. },
  217. {
  218. text: "后两周",
  219. onClick(picker) {
  220. const end = new Date();
  221. const start = new Date();
  222. end.setTime(start.getTime() + 3600 * 1000 * 24 * 7 * 2);
  223. picker.$emit("pick", [start, end]);
  224. }
  225. },
  226. {
  227. text: "后一个月",
  228. onClick(picker) {
  229. const end = new Date();
  230. const start = new Date();
  231. end.setTime(start.getTime() + 3600 * 1000 * 24 * 30);
  232. picker.$emit("pick", [start, end]);
  233. }
  234. },
  235. {
  236. text: "后三个月",
  237. onClick(picker) {
  238. const end = new Date();
  239. const start = new Date();
  240. end.setTime(start.getTime() + 3600 * 1000 * 24 * 90);
  241. picker.$emit("pick", [start, end]);
  242. }
  243. },
  244. {
  245. text: "后一年",
  246. onClick(picker) {
  247. const end = new Date();
  248. const start = new Date();
  249. end.setTime(start.getTime() + 3600 * 1000 * 24 * 360);
  250. picker.$emit("pick", [start, end]);
  251. }
  252. }
  253. ]
  254. return {shortcuts:shortcuts};;
  255. }
  256. },
  257. }