| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501 |
- const _Http = getApp().globalData.http,
- getTime = require("../../utils/getTime");
- Page({
- data: {
- loading: false,
- isReset: true,
- showAll: false,
- form: [{
- label: "任务标题",
- error: false,
- errMsg: "",
- type: "textarea",
- value: "",
- placeholder: "请输入0/40字",
- valueName: "title",
- checking: "base",
- required: true,
- maxlength: '40'
- }, {
- label: "任务内容",
- error: false,
- errMsg: "",
- type: "textarea",
- value: "",
- placeholder: "",
- valueName: "remarks",
- checking: "base",
- required: false,
- slot: "synchronization"
- }, {
- label: "执行人",
- error: false,
- errMsg: "",
- type: "route",
- url: "/packageA/select/contacts/select",
- value: "",
- params: {
- "id": "20221018122201",
- "content": {
- "ownertable": "sys_task",
- "ownerid": 0,
- "where": {
- "condition": "",
- "withoutselect": 1
- }
- }
- },
- query: "&radio=true&idname=userid",
- interrupt: true,
- placeholder: "选择任务执行人",
- valueName: "principal",
- checking: "base",
- required: true
- }, {
- label: "协助人",
- error: false,
- errMsg: "",
- type: "route",
- url: "/packageA/select/contacts/select",
- value: "",
- params: {
- "id": "20221018122201",
- "content": {
- "ownertable": "sys_task",
- "ownerid": 0,
- "where": {
- "condition": "",
- "withoutselect": 1
- }
- }
- },
- query: "&idname=userid",
- interrupt: true,
- placeholder: "选择任务协助人",
- valueName: "member",
- checking: "base",
- required: false
- }, {
- label: "开始日期",
- error: false,
- errMsg: "",
- type: "date",
- start: getTime.formatTime(new Date(), '-').split(' ')[0],
- value: "",
- placeholder: "开始日期",
- interrupt: true,
- valueName: "starttime",
- checking: "base",
- required: true
- }],
- synchronization: null, //同步任务内容参数
- disabled: true
- },
- onLoad(options) {
- getApp().globalData.Language.getLanguagePackage(this, '新建任务')
- let content = {
- "sys_taskid": 0,
- "ownertable": "sys_task",
- "ownerid": options.ownerid || 0,
- };
- // 详情中进入
- if (options.data) {
- getApp().globalData.Language.getLanguagePackage(this, '编辑任务')
- let data = JSON.parse(options.data);
- if (options.group) {
- let group = JSON.parse(options.group)
- let leader = group.findIndex(v => v.userid == data.leader[0].userid);
- if (leader != -1) {
- data.principal = [group[leader].name, [group[leader].userid]]
- group.splice(leader, 1)
- data.member = [group.map(s => s.name), group.map(s => s.userid - 0)]
- }
- }
- data.starttime = data.starttime.split(" ")[0]
- data.endtime = data.endtime ? data.endtime.split(" ")[0] : ""
- let form = this.data.form.concat([{
- label: "结束日期",
- error: false,
- errMsg: "",
- type: "date",
- start: data.value,
- value: "",
- interrupt: true,
- placeholder: "结束日期",
- valueName: "endtime",
- checking: "base",
- required: false
- }, {
- label: "提醒时间",
- error: false,
- errMsg: "",
- type: "namber",
- value: "",
- placeholder: "结束时间前几天提醒",
- valueName: "remindday",
- checking: "base",
- required: false
- }]);
- content = {
- "sys_taskid": data.sys_taskid,
- "ownertable": data.ownertable || "sys_task",
- "ownerid": data.ownerid || 0,
- }
- this.setData({
- content,
- isReset: false,
- disabled: false,
- form: form.map(v => {
- if (data[v.valueName]) v.value = data[v.valueName];
- return v
- })
- })
- } else if (options.ownertable) {
- content = {
- "ownertable": options.ownertable || "sys_task",
- "ownerid": options.ownerid || 0
- }
- this.setData({
- synchronization: content
- })
- } else {
- //可修改情况
- if (["sys_task", "sat_orderclue", "sa_customers", "sa_project"].includes(content.ownertable)) {
- let form = this.data.form,
- synchronization = content.ownertable != 'sys_task' ? {
- "ownertable": content.ownertable,
- "ownerid": content.ownerid,
- } : null;
- form.splice(1, 0, {
- label: "关联应用",
- error: false,
- errMsg: "",
- hint: "",
- type: "radio",
- value: content.ownertable,
- radioList: [{
- id: 'sa_customers',
- name: '我的客户'
- }, {
- id: 'sa_project',
- name: '项目商机'
- }, {
- id: 'sat_orderclue',
- name: '销售线索'
- }, {
- id: 'sys_task',
- name: '不关联'
- }],
- valueName: "ownertable", //绑定的字段名称
- required: false, //必填
- interrupt: true,
- disabled: content.ownerid != 0
- });
- if (content.ownertable != 'sys_task') this.setSelectAppRoute(form, content.ownertable, content.ownerid != 0)
- this.setData({
- form
- })
- }
- }
- this.setData({
- content
- })
- },
- /* 打断处理form */
- interrupt(e) {
- let {
- data,
- form,
- temporary
- } = e.detail;
- console.log(data, form, temporary)
- let obj = null,
- index = null;
- switch (temporary.item.label) {
- case '开始日期':
- obj = {
- label: "结束日期",
- error: false,
- errMsg: "",
- type: "date",
- start: data.value,
- value: "",
- interrupt: true,
- placeholder: "结束日期",
- valueName: "endtime",
- checking: "base",
- required: false
- };
- let index = form.findIndex(v => v.label == '结束日期');
- index == -1 ? form.push(obj) : form[index] = obj;
- this.setData({
- isReset: false
- })
- break;
- case '结束日期':
- index = form.findIndex(v => v.label == '提醒时间');
- if (index == -1) form.push({
- label: "提醒时间",
- error: false,
- errMsg: "",
- type: "namber",
- value: "",
- placeholder: "结束时间前几天提醒",
- valueName: "remindday",
- checking: "base",
- required: false
- });
- break;
- case '执行人':
- index = form.findIndex(v => v.label == '协助人');
- form[index].params.excludeid = data.value[1][0];
- if (index != -1 && form[index].value[1]) {
- let i = form[index].value[1].findIndex(v => v == data.value[1][0]);
- if (i != -1) {
- form[index].value[0].splice(i, 1);
- form[index].value[1].splice(i, 1);
- if (form[index].value[0].length == 0) form[index].value = '';
- }
- }
- temporary.item.value = data.value;
- form[temporary.index] = temporary.item;
- wx.navigateBack()
- break;
- case '协助人':
- index = form.findIndex(v => v.label == '执行人');
- if (index != -1 && form[index].value[1]) {
- if (data.value[1].findIndex(v => v == form[index].value[1][0]) != -1) form[index].value = ''
- }
- temporary.item.value = data.value;
- form[temporary.index] = temporary.item;
- wx.navigateBack()
- break;
- case '关联应用':
- this.setSelectAppRoute(form, data.value)
- this.setData({
- synchronization: null
- })
- break;
- case '关联数据':
- form[temporary.index].value = data.value;
- wx.navigateBack()
- this.setData({
- synchronization: {
- "ownertable": form[temporary.index - 1].value,
- "ownerid": data.id[0]
- }
- })
- break;
- };
- this.setData({
- form
- })
- this.selectComponent("#Form").confirm();
- },
- startSynchronization() {
- console.log("开始同步", this.data.synchronization)
- wx.navigateTo({
- url: '/packageA/work/synchronization?data=' + JSON.stringify(this.data.synchronization),
- });
- _Http.selectSync = (item, ownertable) => {
- let form = this.selectComponent("#Form").data.form,
- index = form.findIndex(v => v.label == '任务内容');
- if (index != -1) {
- if (ownertable == 'sat_orderclue') {
- form[index].value = `跟进类型:${item.followupmode}\n跟进内容:${item.content}`;
- } else {
- form[index].value = `跟进类型:${item.type}\n跟进对象:${item.contacts ? item.contacts.join(","):""}\n${item.content}`;
- }
- }
- this.setData({
- form
- })
- wx.navigateBack()
- }
- },
- setSelectAppRoute(form, ownertable, disabled = false) {
- let owneridIndex = form.findIndex(v => v.valueName == 'ownerid');
- if (ownertable == "sys_task") {
- if (owneridIndex != -1) form.splice(owneridIndex, 1);
- } else {
- let data = {
- label: "关联数据",
- error: false,
- errMsg: "",
- type: "route",
- url: "",
- value: "",
- query: "&radio=true",
- interrupt: true,
- valueName: "ownerid",
- checking: "base",
- required: true,
- disabled
- };
- switch (ownertable) {
- case "sa_project":
- data.params = {
- "id": 20221020143502,
- "content": {
- "nochace": true,
- "pageNumber": 1,
- "pageSize": 20,
- "where": {
- "condition": ""
- },
- "type": 1,
- "deleted": 0
- }
- }
- data.placeholder = "选择项目商机";
- data.url = "/packageA/select/project/select";
- break;
- case "sa_customers":
- data.params = {
- "content": {
- isExport: 0,
- "pageNumber": 1,
- "pageSize": 20,
- "where": {
- "condition": ""
- },
- "type": 1,
- "deleted": 0,
- "isend": 0
- },
- "id": 20221012164402,
- }
- data.placeholder = "选择我的客户";
- data.url = "/packageA/select/setclient/select";
- break;
- case "sat_orderclue":
- data.params = {
- "content": {
- "pageNumber": 1,
- "pageSize": 20,
- "where": {
- "condition": ""
- },
- "type": 1
- },
- "id": 20221101094502,
- }
- data.placeholder = "选择销售线索";
- data.url = "/packageA/select/clue/select";
- break;
- };
- form.splice(2, owneridIndex == -1 ? 0 : 1, data);
- }
- this.setData({
- form
- })
- },
- submit() {
- this.setData({
- loading: true
- })
- let content = {
- ...this.data.content,
- ...this.selectComponent("#Form").submit()
- };
- content.leaderuserid = content.principal[1][0];
- delete(content.principal)
- content.team = {
- "userids": content.member.length ? content.member[1] : [],
- "justuserids": 1
- }
- delete(content.member)
- if (content.ownerid && typeof (content.ownerid) == 'object') content.ownerid = content.ownerid.length == 2 ? content.ownerid[1][0] : "";
- if (!content.ownerid) content.ownertable = "";
- _Http.basic({
- "id": 20221211112101,
- content
- }).then(res => {
- console.log("创建任务成功", res)
- this.setData({
- loading: false
- })
- wx.showToast({
- title: res.msg == '成功' ? this.data.language['成功的'] || '保存成功' : res.msg,
- icon: "none"
- });
- /* _Http.basic({
- "id": 20220930103601,
- "content": {
- "ownertable": "sys_task",
- "ownerid": res.data.sys_taskid,
- }
- }, false).then(e => {
- console.log("设置团队", e)
- }) */
- if (res.msg == '成功') setTimeout(() => {
- getCurrentPages().forEach(v => {
- if (v.__route__ == 'packageA/work/index') {
- let index = v.data.list.findIndex(v => v.sys_taskid == res.data.sys_taskid);
- if (index == -1) {
- v.data.list.unshift(res.data)
- v.setData({
- list: v.data.list,
- "content.total": v.data.content.total + 1
- })
- } else {
- v.setData({
- [`list[${index}]`]: res.data
- })
- }
- }
- });
- let pages = getCurrentPages(),
- page = pages[pages.length - 2];
- if (page.__route__ == 'packageA/work/index') {
- wx.redirectTo({
- url: '/packageA/work/detail?id=' + res.data.sys_taskid,
- fail(err) {
- console.log(err)
- }
- })
- } else if (page.__route__ == 'packageA/work/detail') {
- wx.navigateBack();
- page.getDetail();
- } else {
- page.getTags && page.getTags();
- let p = page.selectComponent("#Work");
- if (p) p.getList(0, true);
- wx.navigateBack();
- }
- }, 500);
- })
- },
- reset() {
- let form = this.data.form;
- let index = form.findIndex(v => v.label == '开始日期');
- form[index].value = "";
- form.splice(index + 1, 2);
- this.setData({
- isReset: true,
- disabled: true,
- form
- });
- wx.showToast({
- title: this.data.language['重置成功'] || '重置成功',
- icon: "none"
- })
- },
- // 是否显示全部
- onChange({
- detail
- }) {
- this.setData({
- showAll: detail
- })
- },
- /* 表单必填项是否完成 */
- onConfirm({
- detail
- }) {
- this.setData({
- disabled: detail
- })
- }
- })
|