const _Http = getApp().globalData.http; Page({ data: { isLeader: false, //是否为负责人 tabsActive: 0, //tabs 选中项 sat_orderclueid: "", detail: '', tabsList: [{ label: "详细信息", icon: "icon-tabxiangxixinxi1" }, { label: "跟进记录", icon: "icon-tabgenjinjilu" }, { label: "操作", icon: "icon-tabcaozuojilu1" }, { label: "跟进动态", icon: "icon-tabgenjinjilu" }, { label: "任务", icon: "icon-tabrenwu" }], tabbarList: [], }, onLoad(options) { this.setData({ sat_orderclueid: options.sat_orderclueid, isAdmin: wx.getStorageSync('auth').wCustomer.options.some(v => v == "admin"), //是否具有管理权限 }); this.getDetail(); }, getDetail() { _Http.basic({ "classname": "saletool.orderclue.web.orderclue", "method": "selectDetail", "version": 1, "content": { "nocache": true, "sat_orderclueid": this.data.sat_orderclueid }, }).then(res => { console.log("线索详情", res) if (res.msg != '成功') return wx.showToast({ title: res.msg, icon: "none" }); let isLeader = res.data.leader.some(some => some.userid == wx.getStorageSync('userMsg').userid), tabbarList = [{ icon: "icon-genjin", label: "跟进" }]; if (this.data.isAdmin || isLeader) tabbarList = tabbarList.concat([{ icon: "icon-bianji", label: "编辑" }, { icon: "icon-dibu-zhuanhuan", label: "转化项目" }, { icon: "icon-dibu-zhuanhuan", label: "转化客户" }, { icon: "icon-zhuanyi", label: "更换负责人" }, { icon: "icon-dibu-jieshu", label: "作废" }]); if (isLeader) tabbarList = tabbarList.concat([{ icon: "icon-dibu-tuihui", label: "退回" }, { icon: "icon-dibu-wuxiao", label: "无效" }]) this.setData({ isLeader, tabbarList, detail: res.data, briefs: [{ label: "联系人", value: res.data.name }, { label: "手机号", value: res.data.phonenumber }, { label: "来源", value: res.data.cluesource }, { label: "市场活动", value: res.data.campaign_name }, { label: '负责人', value: res.data.leader && res.data.leader.length > 0 ? res.data.leader[0].name : '' }, { label: '分配状态', value: res.data.allocationstatus }, { label: '跟进状态', value: res.data.status }, { label: '跟进次数', value: res.data.followcount || '0' }, ], list1: [{ label: "联系人", value: res.data.name }, { label: "手机号", value: res.data.phonenumber }, { label: "来源", value: res.data.cluesource }, { label: '负责人', value: res.data.leader && res.data.leader.length > 0 ? res.data.leader[0].name : '' }, { label: '分配状态', value: res.data.allocationstatus }, { label: '跟进状态', value: res.data.status }, { label: '跟进次数', value: res.data.followcount || '0' }, ], list2: [{ label: "创建人", value: res.data.createBy }, { label: "创建时间", value: res.data.createDate }, { label: "分配人", value: res.data.assignedBy }, { label: "最近跟进人", value: res.data.followBy }, { label: "最近编辑人", value: res.data.editBy }, { label: "转手次数", value: res.data.changecount }, { label: "创建时间", value: res.data.createDate }, { label: "分配时间", value: res.data.assignedDate }, { label: "最近跟进时间", value: res.data.followDate }, { label: "最近编辑时间", value: res.data.editDate }], tabsList: this.data.tabsList, }); /* 更新列表中状态 */ let page = getCurrentPages().find(v => v.__route__ == 'packageA/saleClue/index'); if (page) { let index = page.data.list.findIndex(v => v.sat_orderclueid == res.data.sat_orderclueid); console.log("列表中位置", index) if (index != -1) page.setData({ [`list[${index}].status`]: res.data.status }) } if (res.data.status == '已转化') { tabbarList = tabbarList.filter(item => { return item.label == '编辑' || item.label == '跟进' || item.label == '转化客户' || item.label == '转化项目' }) if (res.data.isproject == 1) { let i = tabbarList.findIndex(item => item.label == '转化项目') tabbarList.splice(i,1) console.log('触发项目'); } if (res.data.iscustomer == 1) { let i = tabbarList.findIndex(item => item.label == '转化客户') tabbarList.splice(i,1) console.log('触发客户'); } console.log(tabbarList); this.setData({ tabbarList }) } if (res.data.status != '待跟进' && res.data.status != '跟进中' && res.data.status != '已转化') this.setData({ tabbarList: [] }) this.getTags(); this.getGroup(); this.partialRenewal(); }) }, //tabs 切换 tabsChange({ detail }) { this.setData({ tabsActive: detail }); this.partialRenewal(); }, //更新标签 getTags() { this.selectComponent("#Tags").getTags(); }, //更新团队成员 getGroup() { this.selectComponent("#Group").getList(); }, //局部数据更新 tabs partialRenewal(init = false) { let id = this.data.detail.sat_orderclueid; let model = ''; let name = this.data.tabsList[this.data.tabsActive].label; switch (name) { case "任务": model = "#Work" break; case "跟进记录": model = "#follow" break; case "操作": model = "#Record" break; case "跟进动态": model = "#Trace" break; }; if (model) { // 确定好模块ID total = null 是第一次加载 加载数据 // init是新增或修改需要清数据 let Component = this.selectComponent(model); const { total, pageNumber, pageTotal } = Component.data.content; if (total == null || init) { Component.getList(id, init); } else if (pageNumber <= pageTotal) { Component.getList(id, false); } else { //用来判断 在搜索页面修改,与tabs选项不一致 但是切换到该选项 重置数据 } } }, onReachBottom() { this.partialRenewal(); }, //详情按钮回调 tabbarOnClick({ detail }) { let data = this.data.detail, that = this; switch (detail.label) { case "编辑": wx.navigateTo({ url: `/packageA/saleClue/addClue?rowData=${JSON.stringify(this.data.detail)}`, }) break; case "作废": wx.showModal({ title: '提示', content: `是否确认作废该线索?`, complete: ({ confirm }) => { if (confirm) _Http.basic({ "id": 20221123193702, "content": { "sat_orderclueids": [that.data.detail.sat_orderclueid] } }).then(res => { wx.showToast({ title: res.msg == '成功' ? `操作成功` : res.msg, icon: "none" }); setTimeout(() => { let pages = getCurrentPages(), page = pages[pages.length - 2]; if (page.getList) page.setData({ list: page.data.list.filter(v => v.sat_orderclueid != that.data.detail.sat_orderclueid) }) }, 300) }) } }) break; case "无效": wx.showModal({ title: '提示', content: `是否设置该线索为"无效"状态,确定后无法撤销!`, complete: ({ confirm }) => { if (confirm) _Http.basic({ id: "20221208100602", "content": { "sat_orderclueid": that.data.detail.sat_orderclueid, sat_ordercluefollowuplogid: 0, "content": "", "followupmode": "", "logtype": "无效", "competitor": "" } }).then(res => { if (res.msg == '成功') { that.getDetail(); that.selectComponent("#follow").getList(that.data.detail.sat_orderclueid, true) } setTimeout(() => { wx.showToast({ title: res.msg == '成功' ? `操作成功` : res.msg, icon: "none" }); }, 1000) }) } }) break; case "退回": wx.showModal({ title: '提示', content: `是否退回该线索,确定后无法撤销!`, complete: ({ confirm }) => { if (confirm) _Http.basic({ "id": 20221207160802, "content": { sat_orderclueid: this.data.detail.sat_orderclueid } }).then(res => { if (res.msg == '成功') { that.getDetail(); } setTimeout(() => { wx.showToast({ title: res.msg == '成功' ? `操作成功` : res.msg, icon: "none" }); }, 1000) }) } }) break; case "转化项目": wx.navigateTo({ url: `/packageA/saleClue/change?rowData=${JSON.stringify(this.data.detail)}`, }) break; case "转化客户": wx.navigateTo({ url: `/packageA/saleClue/translate?data=${JSON.stringify(this.data.detail)}`, }) break; case "跟进": wx.navigateTo({ url: `/packageA/saleClue/addFollow?sat_orderclueid=` + this.data.detail.sat_orderclueid }) break; case "更换负责人": wx.navigateTo({ url: `/pages/group/select?data=${JSON.stringify({ ownertable:"sat_orderclue", ownerid:data.sat_orderclueid, })}&radio=true&principal=true`, }) break; } }, /* 更换负责人 */ handelSubmit(arr) { const that = this; wx.showModal({ title: '提示', content: '是否确认更换负责人', complete: ({ confirm }) => { if (confirm) _Http.basic({ "id": 20220930103701, "content": { ownertable: "sat_orderclue", ownerid: that.data.detail.sat_orderclueid, userid: arr[0] } }).then(res => { console.log("更换负责人", res) if (res.msg != '成功') return wx.showToast({ title: res.data, icon: "none" }); wx.showToast({ title: '更换成功!', icon: "none" }); setTimeout(() => { that.getDetail(); wx.navigateBack(); /* getCurrentPages().forEach(v => { if (['packageA/project/index'].includes(v.__route__)) v.getList(true) }) */ }, 300) }) } }) }, onShareAppMessage() {} })