// miniprogram/customfield/customfield.js const utils = require("../../utils/http"); const app = getApp(); Component({ /** * 组件的属性列表 */ properties: { arrField: Array, nowcid: String | Number }, /** * 组件的初始数据 */ data: { showSelect: true, showlive1: false, showlive2: false, showlive3: false, multiple: false, areaList: "", personame: "", phonenum: "", level: "", sourcetext: "", source: "", sex: "男", curItem: {}, extarr: {}, crmvalarr: [], communityarr:null, }, lifetimes: { attached: function () { // 在组件实例进入页面节点树时执行 }, detached: function () { // 在组件实例被从页面节点树移除时执行 }, }, /** * 组件的方法列表 */ methods: { selectGrade: function (e) { let type = e.currentTarget.dataset.type; this.setData({ level: type }) }, handleCheckbox: function (e) { let item = e.currentTarget.dataset.item; this.data.extarr[item.id].showflag = !this.data.extarr[item.id].showflag; this.setData({ extarr: this.data.extarr }) }, checkboxItem: function (e) { let obj = e.currentTarget.dataset; this.data.extarr[obj.fitem.id].showflag = false; let index = this.data.extarr[obj.fitem.id].value.indexOf(obj.item.id); if (index > -1) { this.data.crmvalarr[obj.index].select[obj.idx].selected = false; this.data.extarr[obj.fitem.id].keytext.splice(index, 1); this.data.extarr[obj.fitem.id].value.splice(index, 1); } else { this.data.crmvalarr[obj.index].select[obj.idx].selected = true; this.data.extarr[obj.fitem.id].keytext.push(obj.item.name); this.data.extarr[obj.fitem.id].value.push(obj.item.id); } if (obj.fitem.keyname == 'live_broadcast') { let liveText = this.data.extarr[obj.fitem.id].keytext.join(''); this.setData({ showlive1: liveText.indexOf("业务直播") >= 0 ? true : false, showlive2: liveText.indexOf("设计直播") >= 0 ? true : false, showlive3: liveText.indexOf("一对多直播") >= 0 ? true : false, }) } this.setData({ crmvalarr: this.data.crmvalarr, extarr: this.data.extarr }) }, handleRadioCheck: function (e) { let item = e.currentTarget.dataset.item; this.data.extarr[item.id].showflag = !this.data.extarr[item.id].showflag; this.setData({ extarr: this.data.extarr }) }, radioSelectItem: function (e) { let obj = e.currentTarget.dataset; if (obj.fitem.keyname == 'source_id') { this.data.extarr[obj.fitem.id].showflag = false; this.setData({ source: obj.item.id, sourcetext: obj.item.name }) } else { this.data.extarr[obj.fitem.id].showflag = false; this.data.extarr[obj.fitem.id].keytext = obj.item.name; this.data.extarr[obj.fitem.id].value = obj.item.id; this.setData({ extarr: this.data.extarr }) } }, radioSexChange: function (e) { this.setData({ sex: e.detail.value }) }, radioOtherChange: function (e) { let item = e.currentTarget.dataset.item; this.data.extarr[item.id].value = e.detail.value; this.setData({ extarr: this.data.extarr }) }, getNumberInput: function (e) { let item = e.currentTarget.dataset.item; let val = e.detail.value; this.data.extarr[item.id].value = val; this.setData({ extarr: this.data.extarr }) }, getPhoneInput: function (e) { let val = e.detail.value; this.setData({ phonenum: val }) }, getNameInput: function (e) { let val = e.detail.value; this.setData({ personame: val }) }, getTextInput: function (e) { let item = e.currentTarget.dataset.item; let val = e.detail.value; this.data.extarr[item.id].value = val; this.setData({ extarr: this.data.extarr }) if(item.keyname == 'community_name'){ this.communityfun(val); } }, communityfun(text){ const that=this; utils.$post({ url: app.globalData.webUrl + 'api/crm_customer/getCommunity', header: { 'Authorization': 'bearer ' + app.globalData.token }, data: { name: text }, success: function (res) { if (res.data.code == 0) { that.setData({ communityarr:res.data.data }) } } }) }, setcommunitytap(e){ let obj = e.currentTarget.dataset.item; let extarr=this.data.extarr; for(let i=0;i v.name).join(','); this.setData({ showSelect: true, extarr: this.data.extarr }) } else { this.data.extarr[this.data.curItem.id].value = e.detail.name; this.setData({ showSelect: true, extarr: this.data.extarr }) } }, chooseImage: function (e) { let that = this; let item = e.currentTarget.dataset.item; wx.chooseMedia({ count: 9, mediaType: ["image"], sourceType: ["album", "camera"], success: function (res) { if (res.errMsg == 'chooseMedia:ok') { let imageArr = res.tempFiles; that.ossuploadimg(imageArr, item); } } }) }, ossuploadimg: function (imageArr, item) { let that = this; var arr = []; for (let i = 0; i < imageArr.length; i++) { // 随机生成文件名称 var fileRandName = Date.now() + "" + parseInt(Math.random() * 10000) + i; var imgName = fileRandName + '.' + 'png'; var date = new Date(); var time = date.getFullYear() + '' + (date.getMonth() * 1 + 1) + '' + date.getDate(); var imgstr = 'crm/' + time + '/' + imgName; wx.uploadFile({ url: 'https://o.nczyzs.com', filePath: imageArr[i].tempFilePath, name: 'file', formData: { key: 'crm/' + time + '/' + imgName, policy: "eyJleHBpcmF0aW9uIjoiMjAyNS0wMS0wMVQxMjowMDowMC4wMDBaIiwiY29uZGl0aW9ucyI6W1siY29udGVudC1sZW5ndGgtcmFuZ2UiLDAsMTA0ODU3NjAwMF1dfQ==", OSSaccessKeyId: "LTAI5tHjWupJSCAycy2yVbQZ", success_action_status: "200", signature: "bWaeUQYnGAcWynj3FxAfGZLy5n0=", }, header: { "Content-Type": "multipart/form-data", 'accept': 'application/json', }, success: function (rs) { if (rs.errMsg == 'uploadFile:ok') { that.data.extarr[item.id].value.push({ img: imageArr[i].tempFilePath, url: imgstr }) that.setData({ extarr: that.data.extarr }) } }, fail(res) { wx.hideLoading() } }) } }, bindDelImage(e) { let index = parseInt(e.currentTarget.dataset.index); let item = e.currentTarget.dataset.item; this.data.extarr[item.id].value.splice(index, 1); this.setData({ extarr: this.data.extarr }) }, getField: function () { const that = this; for (let j in this.data.arrField) { if (this.data.arrField[j].name == "姓名") { that.setData({ personame: this.data.arrField[j].value }) } else if (this.data.arrField[j].name == "手机号") { that.setData({ phonenum: this.data.arrField[j].value ? this.data.arrField[j] .value : that.data.phonenum }) } else if (this.data.arrField[j].name == "客户等级") { that.setData({ level: this.data.arrField[j].valname }) } else if (this.data.arrField[j].name == "客户来源") { that.setData({ source: this.data.arrField[j].value, sourcetext: this.data.arrField[j].valname }) } if (this.data.arrField[j].name == "直播情况") { that.setData({ livearr: this.data.arrField[j].valname ? this.data.arrField[j] .valname.split(',') : [] }) } if ( this.data.arrField[j].name != "姓名" && this.data.arrField[j].name != "手机号" && this.data.arrField[j].name != "性别" && this.data.arrField[j].name != "客户等级" && this.data.arrField[j].keyname != "add_wechat_type" ) { let str, text; str = this.data.arrField[j].type != 4 ? this.data.arrField[j].value ? this.data.arrField[j].value : "" : this.data.arrField[j].value ? this.data.arrField[j].value.split(",") : []; text = this.data.arrField[j].type != 4 ? this.data.arrField[j].valname ? this.data.arrField[j].valname : "" : this.data.arrField[j].valname ? this.data.arrField[j].valname.split(",") : []; if (this.data.arrField[j].keyname == "live_broadcast_personnel") { str = this.data.arrField[j].value && this.data.arrField[j].value.length != 0 ? Array.isArray(this.data.arrField[j].value) ? this.data.arrField[j].value.join(",") : this.data.arrField[j].value : ""; this.setData({ showlive3: this.data.arrField[j].value ? true : false }) } if (this.data.arrField[j].keyname == "live_broadcast_design") { this.setData({ showlive2: this.data.arrField[j].value ? true : false }) } if (this.data.arrField[j].keyname == "live_broadcast_business") { this.setData({ showlive1: this.data.arrField[j].value ? true : false }) } if (this.data.arrField[j].keyname == 'add_wechat_time') { let date = new Date(); let nowTime = date.getFullYear() + '' + (date.getMonth() * 1 + 1) + '' + date.getDate(); str = this.data.arrField[j].value ? this.data.arrField[j] .value : nowTime; } if (this.data.arrField[j].type == 6) { str = Array.isArray(this.data.arrField[j].value) && this.data.arrField[j].value.length ? this.data.arrField[j].value.map( f => { return { img: f.oss_url, url: f.url, serverId: "", localId: "" }; }) : []; } let obj = { keyname: this.data.arrField[j].keyname, value: str, keytext: text, type: this.data.arrField[j].type, showflag: false, isMust: this.data.arrField[j].is_must }; that.data.extarr[this.data.arrField[j].id] = obj; that.setData({ extarr: that.data.extarr }) } else if (this.data.arrField[j].keyname == "add_wechat_type") { let str = this.data.arrField[j].value, text = this.data.arrField[j].valname; for (let r in this.data.arrField[j].select) { if (this.data.arrField[j].select[r].name == '常规加微' && !str) { text = '常规加微'; str = this.data.arrField[j].select[r].id; } } let obj = { id: this.data.arrField[j].id, keyname: this.data.arrField[j].keyname, name: this.data.arrField[j].name, value: str, keytext: text, showflag: false, type: this.data.arrField[j].type, select: this.data.arrField[j].select, isMust: this.data.arrField[j].is_must }; that.data.extarr[this.data.arrField[j].id] = obj; that.setData({ extarr: that.data.extarr }) } } that.setData({ crmvalarr: this.data.arrField }) }, addCustomer: function () { const that = this; let data = { id: that.data.nowcid, name: that.data.personame, phone: that.data.phonenum, sex: that.data.sex == "男" ? 1 : that.data.sex == "女" ? 2 : "", level: that.data.level, source_id: that.data.source, }; Object.keys(data).forEach(key => { if (!data[key]) { delete data[key] } }) utils.$post({ url: app.globalData.webUrl + 'api/crm_customer/edit', header: { 'Authorization': 'bearer ' + app.globalData.token }, data: data, success: function (res) { if (res.data.code == 0) { that.crmExtField(); } } }) }, crmExtField: function () { const that = this; let data, arr = [], extarr = this.data.extarr; // type 1=>输入框,2=>数字框,3=>单选框,4=>多选框,5=>日期, 1,2,5,value,34,value for (let i in extarr) { let obj; if ( extarr[i].type == "1" || extarr[i].type == "2" || extarr[i].type == "5" || extarr[i].type == "3" ) { if (extarr[i].keyname == "live_broadcast_personnel") { obj = { id: i, keyname: extarr[i].keyname, type: extarr[i].type, value: Array.isArray(extarr[i].value) ? extarr[i].value.join(",") : extarr[i].value ? extarr[i].value : "", }; } else { obj = { id: i, keyname: extarr[i].keyname, type: extarr[i].type, value: extarr[i].value, }; } } else if (extarr[i].type == "4") { obj = { id: i, keyname: extarr[i].keyname, type: extarr[i].type, value: extarr[i].value ? extarr[i].value.join(",") : "", }; } else if (extarr[i].type == "6") { obj = { id: i, keyname: extarr[i].keyname, type: extarr[i].type, value: extarr[i].value.length ? extarr[i].value.map(k => { return { serverId: k.serverId || "", img: k.url || "" }; }) : "", }; } arr.push(obj); } if (!arr.length) { return; } data = { id: this.data.nowcid, ext: arr, }; utils.$post({ url: app.globalData.webUrl + 'api/crm_customer/add_customer_extfield', header: { 'Authorization': 'bearer ' + app.globalData.token }, data: data, success: function (res) { if (res.data.code == 0) { } } }) } } })