leaveadd.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. // pages/leaveadd/leaveadd.js
  2. const app = getApp();
  3. const { axios } = app.globalData;
  4. Page({
  5. /**
  6. * 页面的初始数据
  7. */
  8. data: {
  9. active: 0,
  10. submitobj: {},
  11. orderarr: [],
  12. msg: '',//暂无可请假的内容
  13. },
  14. // 挑选
  15. CheckboxonChange (e) {
  16. let { id } = e.currentTarget.dataset;
  17. let { submitobj } = this.data;
  18. submitobj[id] = e.detail;
  19. this.setData({
  20. submitobj
  21. })
  22. },
  23. /**
  24. * 生命周期函数--监听页面加载
  25. */
  26. onLoad: function (options) {
  27. wx.lxd.Ctr({
  28. // nav
  29. title: "请假申请", //标题
  30. back: true,//返回按钮,tabber必须false(除非会改)
  31. });
  32. },
  33. // 挑选地址
  34. ChooseAddress () {
  35. wx.navigateTo({
  36. url: `/pages/adddata/adddata?data=${JSON.stringify({ source: 'leaveadd' })}`,
  37. })
  38. },
  39. // 提交
  40. submit () {
  41. if (!!this.data.submitlock) return false;
  42. let { useraddress, submitobj } = this.data;
  43. if (!useraddress.id) {
  44. wx.showToast({
  45. title: '请选择学生',
  46. icon: "error"
  47. })
  48. return false;
  49. }
  50. delete submitobj["key"];
  51. if (JSON.stringify(submitobj) == "{}") {
  52. wx.showToast({
  53. title: '请选择请假日期',
  54. icon: "error"
  55. })
  56. return false;
  57. }
  58. this.setData({ submitlock: true })
  59. axios({
  60. url: '/order/student_leave/',
  61. method: 'post',
  62. data: {
  63. student: useraddress.id,
  64. leave_dates: JSON.stringify(submitobj),
  65. },
  66. success (res) {
  67. wx.navigateBack({
  68. delta: 1, // 回退前 delta(默认为1) 页面
  69. })
  70. }
  71. })
  72. },
  73. /**
  74. * 生命周期函数--监听页面初次渲染完成
  75. */
  76. onReady: function () {
  77. },
  78. /**
  79. * 生命周期函数--监听页面显示
  80. */
  81. onShow: function () {
  82. let { useraddress } = app.globalData, datas = [], type = [], that = this;
  83. if (!useraddress.id) {
  84. useraddress["name"] = ""
  85. } else {
  86. axios({
  87. url: `/order/student_leave/get_info/?student=${useraddress.id}`,
  88. method: "get",
  89. success (res) {
  90. let { data } = res.data, { lead_dates, orders } = data, datas = {}, orderarr = [], submitobj = {};
  91. if (orders.length == 0) {
  92. that.setData({
  93. msg: "暂无可请假的内容!"
  94. })
  95. return false;
  96. }
  97. type = orders;
  98. for (let key in lead_dates) {
  99. let arr = [];
  100. submitobj["key"] = [];
  101. Array.from(lead_dates[key]).forEach(item => {
  102. item = item.replace(/\(/, '?');
  103. item = item.replace(/\)/, '?');
  104. item = item.split("?").splice(0, 2);
  105. arr.push(item);
  106. })
  107. datas[key] = arr;
  108. }
  109. orders.forEach(item => {
  110. orderarr.push({
  111. id: item.id,
  112. name: item.name,
  113. list: datas[item.id]
  114. })
  115. })
  116. that.setData({ orderarr, submitobj })
  117. }
  118. })
  119. }
  120. this.setData({ useraddress })
  121. },
  122. /**
  123. * 生命周期函数--监听页面隐藏
  124. */
  125. onHide: function () {
  126. this.setData({
  127. orderarr: []
  128. })
  129. },
  130. /**
  131. * 生命周期函数--监听页面卸载
  132. */
  133. onUnload: function () {
  134. app.globalData.useraddress = {};
  135. },
  136. /**
  137. * 页面相关事件处理函数--监听用户下拉动作
  138. */
  139. onPullDownRefresh: function () {
  140. },
  141. /**
  142. * 页面上拉触底事件的处理函数
  143. */
  144. onReachBottom: function () {
  145. },
  146. })