create.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. const _Http = getApp().globalData.http;
  2. Page({
  3. data: {
  4. loading: false,
  5. disabled: true,
  6. showAll: false,
  7. form: [{
  8. label: "跟进日期",
  9. error: false,
  10. errMsg: "",
  11. type: "date",
  12. value: new Date().toISOString().split('T')[0],
  13. placeholder: "请选择跟进日期",
  14. valueName: "followDate",
  15. required: true,
  16. checking: "base"
  17. },
  18. {
  19. label: "跟进时间",
  20. error: false,
  21. errMsg: "",
  22. type: "time",
  23. value: new Date().toTimeString().substring(0, 8),
  24. placeholder: "请选择跟进时间",
  25. valueName: "followTime",
  26. required: true,
  27. checking: "base"
  28. },
  29. {
  30. label: "跟进方式",
  31. error: false,
  32. errMsg: "",
  33. type: "radio",
  34. value: "",
  35. radioList: [],
  36. valueName: "followupmode",
  37. required: true,
  38. checking: "base"
  39. }, {
  40. label: "跟进内容",
  41. error: false,
  42. errMsg: "",
  43. type: "textarea",
  44. value: "",
  45. placeholder: "请输入跟进内容",
  46. valueName: "content",
  47. required: true,
  48. checking: "base"
  49. }
  50. ],
  51. "content": {
  52. "sat_orderclueid": "",
  53. "content": "",
  54. "followupmode": "",
  55. "logtype": "继续跟进"
  56. }
  57. },
  58. onLoad(options) {
  59. // 获取线索ID
  60. if (options.sat_orderclueid) {
  61. this.setData({
  62. "content.sat_orderclueid": options.sat_orderclueid
  63. });
  64. }
  65. // 获取跟进方式列表
  66. this.getFollowTypeList();
  67. },
  68. // 获取跟进方式列表
  69. getFollowTypeList() {
  70. _Http.basic({
  71. "classname": "sysmanage.develop.optiontype.optiontype",
  72. "method": "optiontypeselect",
  73. "content": {
  74. "pageNumber": 1,
  75. "pageSize": 1000,
  76. "typename": "followType",
  77. "parameter": {}
  78. }
  79. }).then(res => {
  80. console.log("跟进方式列表", res);
  81. if (res.code == 1 && res.data && res.data.length) {
  82. let form = this.data.form;
  83. let typeField = form.find(v => v.valueName == 'followupmode');
  84. typeField.radioList = res.data.map(item => ({
  85. id: item.value,
  86. name: item.value
  87. }));
  88. // 默认选择第一个
  89. if (typeField.radioList.length > 0) {
  90. typeField.value = typeField.radioList[0].id;
  91. }
  92. this.setData({
  93. form
  94. });
  95. }
  96. }).catch(err => {
  97. console.error("获取跟进方式列表失败", err);
  98. });
  99. },
  100. submit() {
  101. this.setData({
  102. loading: true
  103. });
  104. let formData = this.selectComponent("#Form").submit();
  105. // 合并跟进日期和时间
  106. let followDateTime = formData.followDate + ' ' + formData.followTime;
  107. // 构建content,使用默认的logtype值
  108. let content = {
  109. ...this.data.content,
  110. ...formData,
  111. followTime: followDateTime,
  112. logtype: "继续跟进"
  113. };
  114. // 删除不需要的字段
  115. delete content.followDate;
  116. delete content.followTime;
  117. _Http.basic({
  118. id: "20221208100602",
  119. content
  120. }).then(res => {
  121. this.setData({
  122. loading: false
  123. });
  124. console.log("保存跟进记录", res);
  125. if (res.code == 1) {
  126. // 刷新详情页面的跟进记录
  127. getCurrentPages().find(v => v.__route__ == 'CRM/lead/detail').partialRenewal(true);
  128. wx.navigateBack({
  129. success() {
  130. wx.showToast({
  131. title: "跟进成功",
  132. icon: "success"
  133. });
  134. }
  135. });
  136. } else {
  137. wx.showToast({
  138. title: res.msg || '保存失败',
  139. icon: 'none'
  140. });
  141. }
  142. }).catch(err => {
  143. this.setData({
  144. loading: false
  145. });
  146. console.error("保存跟进记录失败", err);
  147. wx.showToast({
  148. title: '网络错误',
  149. icon: 'none'
  150. });
  151. });
  152. },
  153. /* 表单必填项是否完成 */
  154. onConfirm({
  155. detail
  156. }) {
  157. this.setData({
  158. disabled: detail
  159. });
  160. },
  161. onChange(e) {
  162. this.setData({
  163. showAll: e.detail
  164. });
  165. },
  166. closePage() {
  167. wx.navigateBack({
  168. delta: 1
  169. });
  170. }
  171. });