index.js 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290
  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. deleteFile(e) {
  65. let item = e.detail.attachmentid ? e.detail : e.currentTarget.dataset.item,
  66. that = this;
  67. if (!e.detail.attachmentid) {
  68. wx.showModal({
  69. title: '提示',
  70. content: '是否确认删除该附件',
  71. complete: ({
  72. confirm
  73. }) => {
  74. if (confirm) that.handleDelete([item.linksid]).then(res => {
  75. if (res.msg != '成功') return wx.showToast({
  76. title: res.data,
  77. icon: "none"
  78. })
  79. let files = that.data.files,
  80. name = item.fileType == "image" ? "images" : "videos",
  81. name2 = item.fileType == "image" ? "viewImages" : "viewVideos",
  82. data = that.data.files[name].find(v => v.url == item.url);
  83. files[name] = files[name].filter(v => v.url != data.url);
  84. files[name2] = files[name2].filter(v => v.url != data.url);
  85. that.setData({
  86. files
  87. })
  88. })
  89. }
  90. })
  91. } else {
  92. that.handleDelete([item.linksid]).then(res => {
  93. if (res.msg != '成功') return wx.showToast({
  94. title: res.data,
  95. icon: "none"
  96. })
  97. let files = that.data.files;
  98. files.files = files.files.filter(v => v.url != item.url);
  99. that.setData({
  100. files
  101. })
  102. })
  103. }
  104. },
  105. handleDelete(linksid) {
  106. return _Http.basic({
  107. "classname": "system.attachment.Attachment",
  108. "method": "deleteFileLink",
  109. "content": {
  110. "linksids": linksid
  111. }
  112. })
  113. },
  114. /* 绑定媒体 */
  115. insertImgEdit({
  116. detail
  117. }) {
  118. _Http.basic({
  119. "classname": "system.attachment.Attachment",
  120. "method": "createFileLink",
  121. "content": {
  122. "ownertable": "sys_datafollowup",
  123. "ownerid": this.data.sys_datafollowupid,
  124. "usetype": "default",
  125. "attachmentids": detail
  126. }
  127. }).then(res => {
  128. console.log('跟进记录绑定附件', res)
  129. this.handleFiles(MFT.fileList(res.data));
  130. })
  131. },
  132. /* 处理附件 */
  133. handleFiles(list) {
  134. let files = this.data.files;
  135. list.forEach(v => {
  136. switch (v.fileType) {
  137. case "video":
  138. files.videos.push(v)
  139. files.viewVideos.push({
  140. url: v.url,
  141. type: "video",
  142. poster: v.subfiles[0].url
  143. })
  144. break;
  145. case "image":
  146. files.images.push(v)
  147. files.viewImages.push({
  148. url: v.url,
  149. type: "image"
  150. })
  151. break;
  152. default:
  153. files.files.push(v)
  154. break;
  155. }
  156. });
  157. this.setData({
  158. files
  159. })
  160. },
  161. /* 预览媒体 */
  162. viewMedias(e) {
  163. const {
  164. index,
  165. type
  166. } = e.currentTarget.dataset;
  167. wx.previewMedia({
  168. current: index,
  169. sources: type == 'image' ? this.data.files.viewImages : this.data.files.viewVideos,
  170. })
  171. },
  172. /* 初始化模板 */
  173. initTemplate() {
  174. _Http.basic({
  175. "id": 20220930121601,
  176. content: {
  177. type: this.data.type,
  178. content: this.data.content,
  179. ownerid: this.data.ownerid,
  180. ownertable: this.data.ownertable,
  181. sys_datafollowupid: this.data.sys_datafollowupid
  182. }
  183. }).then(res => {
  184. this.setData({
  185. sys_datafollowupid: res.data.sys_datafollowupid,
  186. isNew: true
  187. })
  188. })
  189. },
  190. //开始选择跟进方式
  191. openSelect() {
  192. this.setData({
  193. show: true
  194. })
  195. },
  196. //取消选择
  197. onCancel() {
  198. this.setData({
  199. show: false
  200. })
  201. },
  202. //确定选择
  203. onSelect({
  204. detail
  205. }) {
  206. this.setData({
  207. type: detail.name
  208. })
  209. this.onCancel();
  210. },
  211. //文本域输入
  212. onInput(e) {
  213. this.setData({
  214. content: e.detail.value
  215. })
  216. },
  217. submit() {
  218. const content = {
  219. type: this.data.type,
  220. content: this.data.content,
  221. ownerid: this.data.ownerid,
  222. ownertable: this.data.ownertable,
  223. sys_datafollowupid: this.data.sys_datafollowupid
  224. };
  225. if (!content.content) return;
  226. _Http.basic({
  227. "id": 20220930121601,
  228. content
  229. }).then(res => {
  230. if (res.msg != '成功') return wx.showToast({
  231. title: res.data,
  232. icon: "none"
  233. });
  234. wx.showToast({
  235. title: '保存成功',
  236. icon: "none"
  237. });
  238. this.setData({
  239. isNew: false
  240. })
  241. setTimeout(() => {
  242. getCurrentPages().forEach(v => {
  243. //详情界面更新数据
  244. if (['packageA/setclient/modules/trace/detail/index'].includes(v.__route__)) v.getDetail();
  245. //列表页更新数据
  246. if (["packageA/setclient/modules/contacts/detail/index", "packageA/setclient/detail"].includes(v.__route__)) {
  247. let page = v.selectComponent("#Trace"),
  248. list = page.data.list,
  249. index = list.findIndex(value => value.sys_datafollowupid == res.data.sys_datafollowupid);
  250. if (index != -1) {
  251. //列表中存在说明是编辑,返回上一级页面并更新数据
  252. list[index] = res.data;
  253. page.setData({
  254. list
  255. });
  256. wx.navigateBack();
  257. } else {
  258. //列表中不存在说明是新增,返回上一级页面更新数据 并进入详情
  259. list.push(res.data);
  260. page.setData({
  261. list,
  262. "content.total": page.data.content.total + 1
  263. });
  264. wx.navigateBack();
  265. wx.navigateTo({
  266. url: `/packageA/setclient/modules/trace/detail/index?data=` + JSON.stringify({
  267. "sys_datafollowupid": res.data.sys_datafollowupid,
  268. "ownertable": this.data.ownertable,
  269. "ownerid": this.data.ownerid
  270. }),
  271. })
  272. }
  273. };
  274. });
  275. }, 300)
  276. })
  277. },
  278. onUnload() {
  279. if (this.data.isNew) _Http.basic({
  280. "id": 20220930121701,
  281. "content": {
  282. "sys_datafollowupid": this.data.sys_datafollowupid,
  283. "deletereason": "系统删除"
  284. }
  285. }).then(res => {
  286. console.log("初始化模板后未保存删除", res)
  287. })
  288. }
  289. })