add.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307
  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. model: "#Form",
  34. value: "",
  35. radio: true,
  36. params: {
  37. "id": "20221018122201",
  38. idname: "userid",
  39. "content": {
  40. "ownertable": "sys_task",
  41. "ownerid": 0,
  42. "where": {
  43. "condition": "",
  44. "withoutselect": 1
  45. }
  46. }
  47. },
  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. model: "#Form",
  59. value: "",
  60. params: {
  61. "id": "20221018122201",
  62. idname: "userid",
  63. "content": {
  64. "ownertable": "sys_task",
  65. "ownerid": 0,
  66. "where": {
  67. "condition": "",
  68. "withoutselect": 1
  69. }
  70. }
  71. },
  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. } = e.detail;
  155. console.log(data)
  156. if (data.label == '开始日期') {
  157. let obj = {
  158. label: "结束日期",
  159. error: false,
  160. errMsg: "",
  161. type: "date",
  162. start: data.value,
  163. value: "",
  164. interrupt: true,
  165. placeholder: "结束日期",
  166. valueName: "endtime",
  167. checking: "base",
  168. required: false
  169. };
  170. let index = form.findIndex(v => v.label == '结束日期');
  171. index == -1 ? form.push(obj) : form[index] = obj;
  172. this.setData({
  173. isReset: false
  174. })
  175. } else if (data.label == '结束日期') {
  176. let obj = {
  177. label: "提醒时间",
  178. error: false,
  179. errMsg: "",
  180. type: "namber",
  181. value: "",
  182. placeholder: "结束时间前几天提醒",
  183. valueName: "remindday",
  184. checking: "base",
  185. required: false
  186. };
  187. let index = form.findIndex(v => v.label == '提醒时间');
  188. if (index == -1) form.push(obj);
  189. } else if (data.label == '执行人') {
  190. let index = form.findIndex(v => v.label == '协助人');
  191. form[index].params.excludeid = data.value[1][0];
  192. if (index != -1 && form[index].value[1]) {
  193. let i = form[index].value[1].findIndex(v => v == data.value[1][0]);
  194. if (i != -1) {
  195. form[index].value[0].splice(i, 1);
  196. form[index].value[1].splice(i, 1);
  197. if (form[index].value[0].length == 0) form[index].value = '';
  198. }
  199. }
  200. } else if (data.label == '协助人') {
  201. let index = form.findIndex(v => v.label == '执行人');
  202. if (index != -1 && form[index].value[1]) {
  203. if (data.value[1].findIndex(v => v == form[index].value[1][0]) != -1) form[index].value = ''
  204. }
  205. }
  206. this.setData({
  207. form
  208. })
  209. },
  210. submit() {
  211. let content = {
  212. ...this.data.content,
  213. ...this.selectComponent("#Form").submit()
  214. };
  215. content.leaderuserid = content.principal[1][0];
  216. let userids = content.member.length ? content.member[1] : "";
  217. delete(content.principal)
  218. delete(content.member)
  219. _Http.basic({
  220. "id": 20221211112101,
  221. content
  222. }).then(res => {
  223. console.log("创建任务成功", res)
  224. wx.showToast({
  225. title: res.msg == '成功' ? "保存成功" : res.msg,
  226. icon: "none"
  227. });
  228. _Http.basic({
  229. "id": 20220930103601,
  230. "content": {
  231. "ownertable": "sys_task",
  232. "ownerid": res.data.sys_taskid,
  233. "userids": userids,
  234. "justuserids": 1
  235. }
  236. }, false).then(e => {
  237. console.log("设置团队", e)
  238. })
  239. if (res.msg == '成功') setTimeout(() => {
  240. getCurrentPages().forEach(v => {
  241. if (v.__route__ == 'packageA/work/index') {
  242. let index = v.data.list.findIndex(v => v.sys_taskid == res.data.sys_taskid);
  243. if (index == -1) {
  244. v.data.list.unshift(res.data)
  245. v.setData({
  246. list: v.data.list,
  247. "content.total": v.data.content.total + 1
  248. })
  249. } else {
  250. v.setData({
  251. [`list[${index}]`]: res.data
  252. })
  253. }
  254. }
  255. });
  256. let pages = getCurrentPages(),
  257. page = pages[pages.length - 2];
  258. if (page.__route__ == 'packageA/work/index') {
  259. wx.redirectTo({
  260. url: '/packageA/work/detail?id=' + res.data.sys_taskid,
  261. fail(err) {
  262. console.log(err)
  263. }
  264. })
  265. } else if (page.__route__ == 'packageA/work/detail') {
  266. wx.navigateBack();
  267. page.getDetail();
  268. } else {
  269. let p = page.selectComponent("#Work");
  270. if (p) p.getList(0, true);
  271. wx.navigateBack();
  272. }
  273. }, 500);
  274. })
  275. },
  276. reset() {
  277. let form = this.data.form;
  278. form[4].value = "";
  279. form.splice(5, 2);
  280. this.setData({
  281. isReset: true,
  282. disabled: true,
  283. form
  284. });
  285. wx.showToast({
  286. title: '重置成功',
  287. icon: "none"
  288. })
  289. },
  290. // 是否显示全部
  291. onChange({
  292. detail
  293. }) {
  294. this.setData({
  295. showAll: detail
  296. })
  297. },
  298. /* 表单必填项是否完成 */
  299. onConfirm({
  300. detail
  301. }) {
  302. this.setData({
  303. disabled: detail
  304. })
  305. }
  306. })