const _Http = getApp().globalData.http, currency = require("../../utils/currency"), CNY = value => currency(value, { symbol: "¥", precision: 2 }).format(); Page({ data: { isLeader: false, //是否为负责人 tabsActive: 0, //tabs 选中项 sat_orderclueid: "", deletereasonShow: false, deletereason: "", invalidreasonShow: false, invalidreason: "", detail: '', tabsList: [{ label: "详细信息", icon: "icon-tabxiangxixinxi1" }, { label: "跟进记录", icon: "icon-tabgenjinjilu", model: "#follow" }, { label: "操作", icon: "icon-tabcaozuojilu1", model: "#Record" }, { label: "跟进动态", icon: "icon-tabgenjinjilu", model: "#Trace" }, { label: "任务", icon: "icon-tabrenwu", model: "#Work" }], 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) { let arr5 = [{ icon: "icon-dibu-wuxiao", label: "无效" }]; if (res.data.isprivate == 0) arr5.push({ icon: "icon-dibu-tuihui", label: "退回" }); tabbarList = tabbarList.concat(arr5) } this.setData({ isLeader, tabbarList, detail: res.data, briefs: [{ label: "联系人", value: res.data.name }, { label: "手机号", value: res.data.phonenumber }, { 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.enterprisename_customer }, { label: "联系人", value: res.data.name }, { label: "手机号码", value: res.data.phonenumber }, { label: "省市县", value: res.data.province ? res.data.province + res.data.city + res.data.county : '' }, { label: "地址", value: res.data.address }, { label: "项目名称", value: res.data.projectname }, { label: "项目规模", value: res.data.scale }, { label: "总投资额(万元)", value: CNY(res.data.totalinvestment) }, { label: "造价(万元)", value: CNY(res.data.costofconstruction) }, { label: "预计开工时间", value: res.data.begdate_due }, { label: "预计完工时间", value: res.data.enddate_due }, { label: "市场活动", value: res.data.campaign_name }, { label: "来源", value: res.data.cluesource }, { label: "线索概括", value: res.data.notes }, { 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 }], list2: [{ label: "创建人", value: res.data.createBy }, { label: "创建时间", value: res.data.createDate }, { label: "分配人", value: res.data.assignedBy }, { label: "分配时间", value: res.data.assignedDate }, { label: "分配人", value: res.data.assignedBy }, { label: "分配时间", value: res.data.assignedDate }, { label: "最近跟进人", value: res.data.followBy }, { label: "最近跟进时间", value: res.data.followDate }, { label: "最近编辑人", value: res.data.editBy }, { label: "最近编辑时间", value: res.data.editDate }, { label: "无效原因", value: res.data.invalidreason }, { label: "作废原因", value: res.data.deletereason }, { label: "跟进次数", value: res.data.followcount }, { label: "转手次数", value: res.data.leader[0].leadernum }], 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 model = this.data.tabsList[this.data.tabsActive].model; if (model) { let Component = this.selectComponent(model), { total, pageNumber, pageTotal } = Component.data.content, id = this.data.sat_orderclueid; if (total == null || init) { Component.getList(id, init); } else if (pageNumber < pageTotal) { Component.getList(id, false); } } }, 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 "作废": that.setData({ deletereasonShow: true }) break; case "无效": that.setData({ invalidreasonShow: true }) break; case "退回": wx.showModal({ title: '提示', content: `是否退回该线索,确定后无法撤销!`, complete: ({ confirm }) => { if (confirm) _Http.basic({ "id": 20221207160802, "content": { sat_orderclueid: data.sat_orderclueid } }).then(res => { wx.showToast({ title: res.msg == '成功' ? `退回成功` : res.msg, icon: "none" }); setTimeout(() => { let page = getCurrentPages().find(v => v.__route__ == 'packageA/saleClue/index'); if (page) page.getList(true) wx.navigateBack(); }, 500) }) } }) 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() {}, /* 完成情况说明输入 */ areaInput(e) { this.setData({ [e.currentTarget.dataset.name]: e.detail.value }) }, /* 确认无效 */ invalidItem() { let that = this; _Http.basic({ id: "20221208100602", "content": { "sat_orderclueid": this.data.detail.sat_orderclueid, sat_ordercluefollowuplogid: 0, "content": this.data.invalidreason, "followupmode": "", "logtype": "无效", "competitor": "" } }).then(res => { console.log("无效", res) wx.showToast({ title: res.msg == '成功' ? `操作成功` : res.msg, icon: "none", mask: true }); if (res.msg == '成功') setTimeout(() => { this.getDetail(); this.selectComponent("#follow").getList(that.data.detail.sat_orderclueid, true) this.onCancel() this.setData({ invalidreason: "" }) }, 300) }) }, deleteItem() { let that = this; _Http.basic({ "id": 20221123193702, "content": { "sat_orderclueids": [this.data.detail.sat_orderclueid], deletereason: this.data.deletereason } }).then(res => { wx.showToast({ title: res.msg == '成功' ? `操作成功` : res.msg, icon: "none" }); this.onCancel(); this.setData({ deletereason: "" }) that.getDetail(); 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), "content.total": page.data.content.total - 1, }) }, 300) }) }, onCancel() { this.setData({ deletereasonShow: false, invalidreasonShow: false, }) } })