statistics.js 7.9 KB

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