add.js 11 KB

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