statistics.js 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305
  1. var app = getApp()
  2. Page({
  3. /**
  4. * 页面的初始数据
  5. */
  6. data: {
  7. showCal: false,
  8. list: {},
  9. week: ['日', '一', '二', '三', '四', '五', '六'],
  10. days: [],
  11. today: '2019-11-30', //当天,展示星星标记
  12. currentShow: '2019-11-30', //展示日期
  13. currentDate: '2019-11-30', //点击选中日期
  14. changeTap: false,
  15. startRange: '',
  16. timeRange: [],
  17. timeStart: '',
  18. timeEnd: '',
  19. },
  20. //获取今天
  21. getDay() {
  22. var today = new Date();
  23. var y = today.getFullYear();
  24. var m = today.getMonth();
  25. var d = today.getDate();
  26. //当月月份
  27. var todayMonth = today.getMonth() + 1;
  28. if (todayMonth < 10) {
  29. todayMonth = "0" + todayMonth;
  30. }
  31. var sendDay = y + "-" + todayMonth + '-' + d;
  32. return sendDay;
  33. },
  34. calendar(e) {
  35. let that = this;
  36. let today = new Date(e);
  37. console.log(e, 444)
  38. console.log(today, 5555)
  39. let y = today.getFullYear();
  40. let m = today.getMonth();
  41. let d = today.getDate();
  42. //当月月份
  43. let todayMonth = today.getMonth() + 1;
  44. let day = d;
  45. console.log(d)
  46. if (todayMonth < 10) {
  47. todayMonth = "0" + todayMonth;
  48. }
  49. if (day < 10) {
  50. d = "0" + day;
  51. }
  52. //当月第一天是星期几
  53. let week = new Date(y, m, 1).getDay();
  54. console.log(week)
  55. //当月最后一天
  56. let lastDay = new Date(y, m + 1, 0).getDate();
  57. console.log(lastDay)
  58. //渲染日历
  59. let days = [];
  60. for (let i = 0; i < week; i++) {
  61. let obj = {
  62. id: i,
  63. day: '',
  64. today: '',
  65. sign: false
  66. };
  67. days.push(obj);
  68. }
  69. let timeRange = this.data.timeRange;
  70. let timeLen = timeRange.length;
  71. for (let j = 0; j < lastDay; j++) {
  72. let k = j + 1;
  73. if (k < 10) {
  74. k = '0' + k
  75. }
  76. let idx = j + week;
  77. //渲染每天日期状态
  78. let theDay = y + "-" + todayMonth + '-' + k;
  79. let show = false;
  80. let starts = false;
  81. let ends = false;
  82. for (let m = 0; m < timeLen; m++) {
  83. if (timeRange[m] == theDay) {
  84. show = true;
  85. //渲染 起 和 止 标记
  86. if (m == 0) {
  87. starts = true;
  88. }
  89. if (m == (timeLen - 1)) {
  90. ends = true;
  91. }
  92. }
  93. }
  94. //渲染每天日期
  95. let cell = {
  96. id: idx,
  97. day: k,
  98. today: theDay,
  99. sign: show,
  100. start: starts,
  101. end: ends
  102. };
  103. days.push(cell);
  104. }
  105. let currentShow = y + "年" + todayMonth + "月";
  106. this.setData({
  107. days: days,
  108. currentDate: e,
  109. currentShow: currentShow
  110. });
  111. },
  112. //上个月
  113. past() {
  114. let today = new Date(this.data.currentDate);
  115. let y = today.getFullYear();
  116. //取出月份不加 1 ,就等于上个月实际月份
  117. let m = today.getMonth();
  118. let d = 1;
  119. //如果当前 m 等于 0 当月为一月份,变成上一年的12月
  120. if (m < 1) {
  121. y = y - 1;
  122. m = 12;
  123. }
  124. if (m < 10) {
  125. m = '0' + m;
  126. }
  127. let day = y + '-' + m + '-' + d;
  128. this.calendar(day);
  129. },
  130. //下个月
  131. future() {
  132. let today = new Date(this.data.currentDate);
  133. let y = today.getFullYear();
  134. //取出当前月
  135. let m = today.getMonth();
  136. let d = 1;
  137. //十二月份变成下一年的 1 月
  138. if (m > 10) {
  139. y = y + 1;
  140. m = 1;
  141. } else {
  142. m = m + 2;
  143. }
  144. if (m < 10) {
  145. m = '0' + m;
  146. }
  147. let day = y + '-' + m + '-' + d;
  148. this.calendar(day);
  149. },
  150. //选择日期范围,1选择日期
  151. getDates(datestr) {
  152. var temp = datestr.split("-");
  153. var m = parseInt(temp[1]) - 1;
  154. var date = new Date(temp[0], m, temp[2]);
  155. return date;
  156. },
  157. //选择日期范围,2生成日期范围内所有的日期列表
  158. datesList(s, e) {
  159. let that = this;
  160. let arys = [];
  161. let start = s;
  162. let end = e;
  163. let startTime = that.getDates(start);
  164. let endTime = that.getDates(end);
  165. while ((endTime.getTime() - startTime.getTime()) >= 0) {
  166. let year = startTime.getFullYear();
  167. let monthA = startTime.getMonth() + 1;
  168. let month = monthA.toString().length == 1 ? "0" + monthA.toString() : monthA;
  169. let d = startTime.getDate();
  170. let ds = year + "-" + month + "-" + d;
  171. arys.push(ds)
  172. startTime.setDate(startTime.getDate() + 1);
  173. }
  174. return arys;
  175. },
  176. //选择日期范围
  177. select(e) {
  178. let that = this;
  179. let day = e.currentTarget.dataset.today;
  180. let taps = this.data.changeTap;
  181. let startRange = this.data.startRange;
  182. //初始化 startRange,进入页面第一次点击触发
  183. if (startRange == '') {
  184. startRange = day;
  185. }
  186. let list = [];
  187. let paramR = day;
  188. let paramS = day;
  189. let paramE = day;
  190. let timeShowS = '';
  191. let timeShowE = '';
  192. if (taps && day) {
  193. //截止时间动作,先比较两个时间
  194. let dateS = new Date(startRange);
  195. let dateE = new Date(day);
  196. if (dateS.getTime() == dateE.getTime()) {
  197. list = [day];
  198. } else if (dateS.getTime() > dateE.getTime()) {
  199. list = that.datesList(day, startRange);
  200. paramE = startRange;
  201. } else if (dateS.getTime() < dateE.getTime()) {
  202. list = that.datesList(startRange, day);
  203. paramS = startRange;
  204. }
  205. this.setData({
  206. showCal: false
  207. })
  208. timeShowS = paramS;
  209. timeShowE = paramE;
  210. let data = {
  211. " pay_time_between[0]": timeShowS,
  212. " pay_time_between[1]": timeShowE,
  213. }
  214. app.request('order/profitDetail', data, 'GET').then(res => {
  215. console.log(res);
  216. if (res.statusCode == 200) {
  217. console.log(res)
  218. that.setData({
  219. list: res.data
  220. })
  221. }
  222. })
  223. } else if (!taps && day) {
  224. //开始时间动作
  225. list = [day];
  226. }
  227. that.setData({
  228. changeTap: !taps,
  229. startRange: paramR,
  230. timeRange: list,
  231. timeStart: paramS,
  232. timeEnd: paramE,
  233. timeShowS: timeShowS,
  234. timeShowE: timeShowE
  235. });
  236. that.calendar(day);
  237. //console.log(list)
  238. },
  239. // 调出日历
  240. choice() {
  241. this.setData({
  242. showCal: true
  243. })
  244. },
  245. //关闭日历
  246. closeCal() {
  247. this.setData({
  248. showCal: false
  249. })
  250. },
  251. getState() {
  252. let day = new Date();
  253. day.setTime(day.getTime());
  254. let today = day.getFullYear() + "-" + (day.getMonth() + 1) + "-" + day.getDate();
  255. var day1 = new Date();
  256. day1.setTime(day1.getTime() + 24 * 60 * 60 * 1000);
  257. var tommorw = day1.getFullYear() + "-" + (day1.getMonth() + 1) + "-" + day1.getDate();
  258. this.setData({
  259. timeShowS: today,
  260. timeShowE: tommorw
  261. })
  262. let data = {
  263. " pay_time_between[0]": this.data.timeShowS,
  264. " pay_time_between[1]": this.data.timeShowE,
  265. }
  266. app.request('order/profitDetail', data, 'GET').then(res => {
  267. if (res.statusCode == 200) {
  268. console.log(res)
  269. this.setData({
  270. list: res.data
  271. })
  272. }
  273. })
  274. },
  275. onLoad: function(options) {
  276. this.getState();
  277. console.log(options);
  278. let day = this.getDay();
  279. this.setData({
  280. today: day,
  281. currentDate: day
  282. });
  283. this.calendar(day);
  284. wx.getSystemInfo({
  285. success(res) {
  286. console.log(res)
  287. console.log(res.model)
  288. console.log(res.pixelRatio)
  289. console.log(res.windowWidth)
  290. console.log(res.windowHeight)
  291. console.log(res.language)
  292. console.log(res.version)
  293. console.log(res.platform)
  294. }
  295. })
  296. }
  297. })