addinput.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. // pages/addinput/addinput.js
  2. const app = getApp();
  3. const { axios } = app.globalData;
  4. Page({
  5. /**
  6. * 页面的初始数据
  7. */
  8. data: {
  9. formData: [
  10. { label: "姓名", name: "name", value: "", errmsg: "姓名不能为空!", require: true, placeholder: "请输入姓名" },
  11. { label: "姓别", name: "sex", type: "radio", value: 2, arr: [{ type: "男", value: 2 }, { type: "女", value: 1 }] },
  12. {
  13. label: "年级", name: "grade", type: 'picker', rule: "picker", value: "", key: "福建", data: {}, datas: [], columns: [], col: 3, require: true, errmsg: "年级不能为空"
  14. },
  15. ],
  16. },
  17. // 挑选地址
  18. choose () {
  19. this.setData({ show: false })
  20. },
  21. // 默认
  22. onChange (e) {
  23. let { updata } = this.data;
  24. updata["lock"] = e.detail;
  25. this.setData({
  26. updata
  27. });
  28. },
  29. /**
  30. * 生命周期函数--监听页面加载
  31. */
  32. onLoad: function (options) {
  33. let { data } = options, put = null, { formData } = this.data;
  34. if (!!data) {
  35. put = JSON.parse(data).updata;
  36. formData[0]["value"] = put.name;
  37. formData[1]["value"] = put.gender;
  38. formData[2]["value"] = put.address;
  39. formData[2]["values"] = put.grade;
  40. this.setData({ formData, id: put.id })
  41. }
  42. wx.lxd.Ctr({
  43. // nav
  44. title: !!data ? "修改" : "新增", //标题
  45. back: true,//返回按钮,tabber必须false(除非会改)
  46. })
  47. let that = this;
  48. wx.lxd.Form({
  49. Success (data) {
  50. let name = data[0]["value"], gender = data[1]["value"];
  51. let grade = JSON.parse(JSON.stringify(data[2])), { datas, values } = grade;
  52. let i = -1;
  53. datas[0].forEach((item, index) => {
  54. if (JSON.stringify(item.sort()) == JSON.stringify(values.sort())) {
  55. i = index;
  56. }
  57. })
  58. let school = datas[1][i][0], classes = datas[1][i][2];
  59. axios({
  60. url: !put ? "/option/student/" : `/option/student/${that.data.id}/`,
  61. method: !put ? "post" : 'put',
  62. data: {
  63. school,
  64. classes,
  65. name,
  66. gender,
  67. },
  68. success (res) {
  69. wx.navigateBack({
  70. delta: 1, // 回退前 delta(默认为1) 页面
  71. })
  72. }
  73. })
  74. }
  75. })
  76. },
  77. /**
  78. * 生命周期函数--监听页面初次渲染完成
  79. */
  80. onReady: function () {
  81. },
  82. /**
  83. * 生命周期函数--监听页面显示
  84. */
  85. onShow: function () {
  86. let { formData } = this.data, keya = '', keyb = '', that = this;
  87. // 年级
  88. axios({
  89. url: "/option/school_tree/",
  90. method: 'get',
  91. success (res) {
  92. let { data } = res.data, obj = {}, objs = [[], []];
  93. data.forEach((item, index) => {
  94. index == 0 ? keya = item.title : '';
  95. obj[item["title"]] = {};
  96. item["children"].forEach((it, ind) => {
  97. ind == 0 ? keyb = it.title : "";
  98. obj[item["title"]][it["title"]] = [];
  99. it["children"].forEach(em => {
  100. objs[0].push([item.title, it.title, em.title]);
  101. objs[1].push([item.id, it.id, em.id]);
  102. obj[item["title"]][it["title"]].push(em.title);
  103. })
  104. })
  105. })
  106. formData[2]["data"] = obj,
  107. formData[2]["datas"] = objs,
  108. formData[2]["columns"] = [{
  109. values: Object.keys(obj),
  110. className: '学校',
  111. },
  112. {
  113. values: Object.keys(obj[keya]),
  114. className: '年级',
  115. },
  116. {
  117. values: obj[keya][keyb],
  118. className: '班级',
  119. }];
  120. that.setData({ formData })
  121. }
  122. })
  123. },
  124. /**
  125. * 生命周期函数--监听页面隐藏
  126. */
  127. onHide: function () {
  128. },
  129. /**
  130. * 生命周期函数--监听页面卸载
  131. */
  132. onUnload: function () {
  133. },
  134. /**
  135. * 页面相关事件处理函数--监听用户下拉动作
  136. */
  137. onPullDownRefresh: function () {
  138. },
  139. /**
  140. * 页面上拉触底事件的处理函数
  141. */
  142. onReachBottom: function () {
  143. },
  144. })