index.js 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  1. const _Http = getApp().globalData.http,
  2. MFT = require("../../../../../utils/matchingFeilType");
  3. Page({
  4. data: {
  5. isNew: false, //是否为新增
  6. ownerid: null,
  7. ownertable: null,
  8. sys_datafollowupid: 0, //数据ID
  9. files: {
  10. images: [],
  11. viewImages: [],
  12. videos: [],
  13. viewVideos: [],
  14. files: []
  15. },
  16. type: "",
  17. content: "",
  18. user: {}, //联系人
  19. actions: [{
  20. name: "上门拜访"
  21. }, {
  22. name: "电话拜访"
  23. }, {
  24. name: "微信联系"
  25. }, {
  26. name: "QQ联系"
  27. }],
  28. show: false
  29. },
  30. onLoad(options) {
  31. if (options.ownertable) {
  32. this.setData({
  33. ...options
  34. })
  35. };
  36. //编辑获取原信息,新建初始化模板
  37. if (options.sys_datafollowupid) {
  38. _Http.basic({
  39. "id": 20221026085601,
  40. "content": {
  41. "sys_datafollowupid": options.sys_datafollowupid
  42. }
  43. }).then(res => {
  44. console.log("跟进详情", res)
  45. if (res.msg != '成功') {
  46. wx.showToast({
  47. title: res.data,
  48. icon: "none"
  49. })
  50. setTimeout(() => {
  51. wx.navigateBack()
  52. }, 300)
  53. };
  54. this.handleFiles(MFT.fileList(res.data.attinfos));
  55. this.setData({
  56. type: res.data.type,
  57. content: res.data.content
  58. })
  59. })
  60. } else {
  61. this.initTemplate()
  62. }
  63. },
  64. /* 删除文件 */
  65. deleteFile({
  66. detail
  67. }) {
  68. let e = detail,
  69. item = e.detail.attachmentid ? e.detail : e.currentTarget.dataset.item;
  70. _Http.basic({
  71. "classname": "system.attachment.Attachment",
  72. "method": "deleteFileLink",
  73. "content": {
  74. "linksids": [item.linksid]
  75. }
  76. }).then(res => {
  77. if (res.msg != '成功') return wx.showToast({
  78. title: res.data,
  79. icon: "none"
  80. });
  81. let files = this.data.files;
  82. switch (item.fileType) {
  83. case "image":
  84. files.images = files.images.filter(v => v.url != item.url);
  85. files.viewImages = files.viewImages.filter(v => v.url != item.url);
  86. break;
  87. case "video":
  88. files.videos = files.videos.filter(v => v.url != item.url);
  89. files.viewVideos = files.viewVideos.filter(v => v.url != item.url);
  90. break;
  91. default:
  92. files.files = files.files.filter(v => v.attachmentid != item.attachmentid);
  93. break;
  94. };
  95. this.setData({
  96. files
  97. });
  98. })
  99. },
  100. /* 绑定媒体 */
  101. insertImgEdit({
  102. detail
  103. }) {
  104. _Http.basic({
  105. "classname": "system.attachment.Attachment",
  106. "method": "createFileLink",
  107. "content": {
  108. "ownertable": "sys_datafollowup",
  109. "ownerid": this.data.sys_datafollowupid,
  110. "usetype": "default",
  111. "attachmentids": detail
  112. }
  113. }).then(res => {
  114. console.log('跟进记录绑定附件', res)
  115. this.handleFiles(MFT.fileList(res.data));
  116. })
  117. },
  118. /* 处理附件 */
  119. handleFiles(list) {
  120. let files = this.data.files;
  121. list.forEach(v => {
  122. switch (v.fileType) {
  123. case "video":
  124. files.videos.push(v)
  125. files.viewVideos.push({
  126. url: v.url,
  127. type: "video",
  128. poster: v.subfiles[0].url
  129. })
  130. break;
  131. case "image":
  132. files.images.push(v)
  133. files.viewImages.push({
  134. url: v.url,
  135. type: "image"
  136. })
  137. break;
  138. default:
  139. files.files.push(v)
  140. break;
  141. }
  142. });
  143. this.setData({
  144. files
  145. })
  146. },
  147. /* 初始化模板 */
  148. initTemplate() {
  149. _Http.basic({
  150. "id": 20220930121601,
  151. content: {
  152. type: this.data.type,
  153. content: this.data.content,
  154. ownerid: this.data.ownerid,
  155. ownertable: this.data.ownertable,
  156. sys_datafollowupid: this.data.sys_datafollowupid
  157. }
  158. }).then(res => {
  159. this.setData({
  160. sys_datafollowupid: res.data.sys_datafollowupid,
  161. isNew: true
  162. })
  163. })
  164. },
  165. //开始选择跟进方式
  166. openSelect() {
  167. this.setData({
  168. show: true
  169. })
  170. },
  171. //取消选择
  172. onCancel() {
  173. this.setData({
  174. show: false
  175. })
  176. },
  177. //确定选择
  178. onSelect({
  179. detail
  180. }) {
  181. this.setData({
  182. type: detail.name
  183. })
  184. this.onCancel();
  185. },
  186. //文本域输入
  187. onInput(e) {
  188. this.setData({
  189. content: e.detail.value
  190. })
  191. },
  192. submit() {
  193. const content = {
  194. type: this.data.type,
  195. content: this.data.content,
  196. ownerid: this.data.ownerid,
  197. ownertable: this.data.ownertable,
  198. sys_datafollowupid: this.data.sys_datafollowupid
  199. };
  200. if (!content.content) return;
  201. _Http.basic({
  202. "id": 20220930121601,
  203. content
  204. }).then(res => {
  205. if (res.msg != '成功') return wx.showToast({
  206. title: res.data,
  207. icon: "none"
  208. });
  209. wx.showToast({
  210. title: '保存成功',
  211. icon: "none"
  212. });
  213. this.setData({
  214. isNew: false
  215. })
  216. setTimeout(() => {
  217. getCurrentPages().forEach(v => {
  218. //详情界面更新数据
  219. if (['packageA/setclient/modules/trace/detail/index'].includes(v.__route__)) v.getDetail();
  220. //列表页更新数据
  221. if (v.selectComponent("#Trace")) {
  222. let page = v.selectComponent("#Trace"),
  223. list = page.data.list,
  224. index = list.findIndex(value => value.sys_datafollowupid == res.data.sys_datafollowupid);
  225. if (index != -1) {
  226. //列表中存在说明是编辑,返回上一级页面并更新数据
  227. list[index] = res.data;
  228. page.setData({
  229. list
  230. });
  231. wx.navigateBack();
  232. } else {
  233. //列表中不存在说明是新增,返回上一级页面更新数据 并进入详情
  234. list.push(res.data);
  235. page.setData({
  236. list,
  237. "content.total": page.data.content.total + 1
  238. });
  239. wx.navigateBack();
  240. wx.navigateTo({
  241. url: `/packageA/setclient/modules/trace/detail/index?data=` + JSON.stringify({
  242. "sys_datafollowupid": res.data.sys_datafollowupid,
  243. "ownertable": this.data.ownertable,
  244. "ownerid": this.data.ownerid
  245. }),
  246. })
  247. }
  248. };
  249. });
  250. }, 300)
  251. })
  252. },
  253. onUnload() {
  254. if (this.data.isNew) _Http.basic({
  255. "id": 20220930121701,
  256. "content": {
  257. "sys_datafollowupid": this.data.sys_datafollowupid,
  258. "deletereason": "系统删除"
  259. }
  260. }).then(res => {
  261. console.log("初始化模板后未保存删除", res)
  262. })
  263. }
  264. })