add.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320
  1. const _Http = getApp().globalData.http,
  2. getTime = require("../../utils/getTime");
  3. Page({
  4. data: {
  5. isReset: true,
  6. showAll: false,
  7. form: [{
  8. label: "任务标题",
  9. error: false,
  10. errMsg: "",
  11. type: "textarea",
  12. value: "",
  13. placeholder: "",
  14. valueName: "title",
  15. checking: "base",
  16. required: true
  17. }, {
  18. label: "任务要求",
  19. error: false,
  20. errMsg: "",
  21. type: "textarea",
  22. value: "",
  23. placeholder: "",
  24. valueName: "remarks",
  25. checking: "base",
  26. required: false
  27. }, {
  28. label: "执行人",
  29. error: false,
  30. errMsg: "",
  31. type: "route",
  32. url: "/packageA/select/contacts/select",
  33. value: "",
  34. params: {
  35. "id": "20221018122201",
  36. "content": {
  37. "ownertable": "sys_task",
  38. "ownerid": 0,
  39. "where": {
  40. "condition": "",
  41. "withoutselect": 1
  42. }
  43. }
  44. },
  45. query: "&radio=true&idname=userid",
  46. interrupt: true,
  47. placeholder: "选择任务执行人",
  48. valueName: "principal",
  49. checking: "base",
  50. required: true
  51. }, {
  52. label: "协助人",
  53. error: false,
  54. errMsg: "",
  55. type: "route",
  56. url: "/packageA/select/contacts/select",
  57. value: "",
  58. params: {
  59. "id": "20221018122201",
  60. "content": {
  61. "ownertable": "sys_task",
  62. "ownerid": 0,
  63. "where": {
  64. "condition": "",
  65. "withoutselect": 1
  66. }
  67. }
  68. },
  69. query: "&idname=userid",
  70. interrupt: true,
  71. placeholder: "选择任务协助人",
  72. valueName: "member",
  73. checking: "base",
  74. required: false
  75. }, {
  76. label: "开始日期",
  77. error: false,
  78. errMsg: "",
  79. type: "date",
  80. start: getTime.formatTime(new Date(), '-').split(' ')[0],
  81. value: "",
  82. placeholder: "开始日期",
  83. interrupt: true,
  84. valueName: "starttime",
  85. checking: "base",
  86. required: true
  87. }],
  88. "content": {
  89. "sys_taskid": 0
  90. },
  91. disabled: true
  92. },
  93. onLoad(options) {
  94. if (options.data) {
  95. let data = JSON.parse(options.data);
  96. console.log(data)
  97. if (options.group) {
  98. let group = JSON.parse(options.group)
  99. let leader = group.findIndex(v => v.userid == data.leader[0].userid);
  100. if (leader != -1) {
  101. data.principal = [group[leader].name, [group[leader].userid]]
  102. group.splice(leader, 1)
  103. data.member = [group.map(s => s.name), group.map(s => s.userid - 0)]
  104. }
  105. }
  106. data.starttime = data.starttime.split(" ")[0]
  107. data.endtime = data.endtime ? data.endtime.split(" ")[0] : ""
  108. let form = this.data.form.concat([{
  109. label: "结束日期",
  110. error: false,
  111. errMsg: "",
  112. type: "date",
  113. start: data.value,
  114. value: "",
  115. interrupt: true,
  116. placeholder: "结束日期",
  117. valueName: "endtime",
  118. checking: "base",
  119. required: false
  120. }, {
  121. label: "提醒时间",
  122. error: false,
  123. errMsg: "",
  124. type: "namber",
  125. value: "",
  126. placeholder: "结束时间前几天提醒",
  127. valueName: "remindday",
  128. checking: "base",
  129. required: false
  130. }]);
  131. this.setData({
  132. "content.sys_taskid": data.sys_taskid,
  133. "content.ownertable": data.ownertable || "sys_task",
  134. "content.ownerid": data.ownerid || 0,
  135. isReset: false,
  136. disabled: false,
  137. form: form.map(v => {
  138. if (data[v.valueName]) v.value = data[v.valueName];
  139. return v
  140. })
  141. })
  142. }
  143. if (options.ownertable) this.setData({
  144. "content.ownertable": options.ownertable || "sys_task",
  145. "content.ownerid": options.ownerid || 0
  146. })
  147. },
  148. /* 打断处理form */
  149. interrupt(e) {
  150. let {
  151. data,
  152. form,
  153. temporary
  154. } = e.detail;
  155. console.log(data, form, temporary)
  156. let obj = null,
  157. index = null;
  158. switch (temporary.item.label) {
  159. case '开始日期':
  160. obj = {
  161. label: "结束日期",
  162. error: false,
  163. errMsg: "",
  164. type: "date",
  165. start: data.value,
  166. value: "",
  167. interrupt: true,
  168. placeholder: "结束日期",
  169. valueName: "endtime",
  170. checking: "base",
  171. required: false
  172. };
  173. let index = form.findIndex(v => v.label == '结束日期');
  174. index == -1 ? form.push(obj) : form[index] = obj;
  175. this.setData({
  176. isReset: false
  177. })
  178. break;
  179. case '结束日期':
  180. index = form.findIndex(v => v.label == '提醒时间');
  181. if (index == -1) form.push({
  182. label: "提醒时间",
  183. error: false,
  184. errMsg: "",
  185. type: "namber",
  186. value: "",
  187. placeholder: "结束时间前几天提醒",
  188. valueName: "remindday",
  189. checking: "base",
  190. required: false
  191. });
  192. break;
  193. case '执行人':
  194. index = form.findIndex(v => v.label == '协助人');
  195. form[index].params.excludeid = data.value[1][0];
  196. if (index != -1 && form[index].value[1]) {
  197. let i = form[index].value[1].findIndex(v => v == data.value[1][0]);
  198. if (i != -1) {
  199. form[index].value[0].splice(i, 1);
  200. form[index].value[1].splice(i, 1);
  201. if (form[index].value[0].length == 0) form[index].value = '';
  202. }
  203. }
  204. temporary.item.value = data.value;
  205. form[temporary.index] = temporary.item;
  206. wx.navigateBack()
  207. this.selectComponent("#Form").confirm();
  208. break;
  209. case '协助人':
  210. index = form.findIndex(v => v.label == '执行人');
  211. if (index != -1 && form[index].value[1]) {
  212. if (data.value[1].findIndex(v => v == form[index].value[1][0]) != -1) form[index].value = ''
  213. }
  214. temporary.item.value = data.value;
  215. form[temporary.index] = temporary.item;
  216. wx.navigateBack()
  217. break;
  218. };
  219. this.setData({
  220. form
  221. })
  222. },
  223. submit() {
  224. let content = {
  225. ...this.data.content,
  226. ...this.selectComponent("#Form").submit()
  227. };
  228. content.leaderuserid = content.principal[1][0];
  229. let userids = content.member.length ? content.member[1] : "";
  230. delete(content.principal)
  231. delete(content.member)
  232. _Http.basic({
  233. "id": 20221211112101,
  234. content
  235. }).then(res => {
  236. console.log("创建任务成功", res)
  237. wx.showToast({
  238. title: res.msg == '成功' ? "保存成功" : res.msg,
  239. icon: "none"
  240. });
  241. _Http.basic({
  242. "id": 20220930103601,
  243. "content": {
  244. "ownertable": "sys_task",
  245. "ownerid": res.data.sys_taskid,
  246. "userids": userids,
  247. "justuserids": 1
  248. }
  249. }, false).then(e => {
  250. console.log("设置团队", e)
  251. })
  252. if (res.msg == '成功') setTimeout(() => {
  253. getCurrentPages().forEach(v => {
  254. if (v.__route__ == 'packageA/work/index') {
  255. let index = v.data.list.findIndex(v => v.sys_taskid == res.data.sys_taskid);
  256. if (index == -1) {
  257. v.data.list.unshift(res.data)
  258. v.setData({
  259. list: v.data.list,
  260. "content.total": v.data.content.total + 1
  261. })
  262. } else {
  263. v.setData({
  264. [`list[${index}]`]: res.data
  265. })
  266. }
  267. }
  268. });
  269. let pages = getCurrentPages(),
  270. page = pages[pages.length - 2];
  271. if (page.__route__ == 'packageA/work/index') {
  272. wx.redirectTo({
  273. url: '/packageA/work/detail?id=' + res.data.sys_taskid,
  274. fail(err) {
  275. console.log(err)
  276. }
  277. })
  278. } else if (page.__route__ == 'packageA/work/detail') {
  279. wx.navigateBack();
  280. page.getDetail();
  281. } else {
  282. let p = page.selectComponent("#Work");
  283. if (p) p.getList(0, true);
  284. wx.navigateBack();
  285. }
  286. }, 500);
  287. })
  288. },
  289. reset() {
  290. let form = this.data.form;
  291. form[4].value = "";
  292. form.splice(5, 2);
  293. this.setData({
  294. isReset: true,
  295. disabled: true,
  296. form
  297. });
  298. wx.showToast({
  299. title: '重置成功',
  300. icon: "none"
  301. })
  302. },
  303. // 是否显示全部
  304. onChange({
  305. detail
  306. }) {
  307. this.setData({
  308. showAll: detail
  309. })
  310. },
  311. /* 表单必填项是否完成 */
  312. onConfirm({
  313. detail
  314. }) {
  315. this.setData({
  316. disabled: detail
  317. })
  318. }
  319. })