Page({ /** * 页面的初始数据 */ data: { allowNext:false, searchValue:'', searchDValue:'', searchBValue:'', searchRValue:'', searchNValue:'', searchTValue:"", searchTList:[], searchNList:[], searchRList:[], searchBList:[], searchDList:[], searchList:[], sureRollFilmList:[], show:false, d_show:false, b_show:false, r_show:false, n_show:false, t_show:false, showCamera:false, chooseList:[ {code:'',title:'',number:'',roll_film_combine_id:'',detail:[]} ], productList:[], sureProductList:[], showImg:false, carDepartList:[], basicRollFilmList:[], rollFilmList:[], chooseIndex:'', chooseItemIndex:'', set_status:'', special_type:false }, handleCancel(){ this.setData({ show:false }) }, handleCancelN(){ this.setData({ n_show:false }) }, handleCancelD(){ this.setData({ d_show:false }) }, handleCancelB(){ this.setData({ b_show:false }) }, handleCancelR(){ this.setData({ r_show:false }) }, handleCancelT(){ this.setData({ t_show:false }) }, onSearch(event){ let arr = this.data.sureProductList.filter(v=>v.code.indexOf(event.detail)!=-1); this.setData({ searchList:arr }) }, onSearchT(event){ let arr = this.data.sureProductList.filter(v=>v.title.indexOf(event.detail)!=-1); this.setData({ searchTList:arr }) }, onSearchD(event){ let arr = this.data.carDepartList.filter(v=>v.title.indexOf(event.detail)!=-1); this.setData({ searchDList:arr }) }, onSearchB(event){ let arr = this.data.basicRollFilmList.filter(v=>v.title.indexOf(event.detail)!=-1); this.setData({ searchBList:arr }) }, onSearchR(event){ let arr = this.data.sureRollFilmList.filter(v=>v.title.indexOf(event.detail)!=-1); this.setData({ searchRList:arr }) }, onSearchN(event){ let roll_film_id = this.data.chooseList[this.data.chooseIndex].detail[this.data.chooseItemIndex].roll_film_id; let list = this.data.rollFilmList.find(v=>v.id == roll_film_id).roll_film_number_arr; let arr = list.filter(v=>v.roll_film_number.indexOf(event.detail)!=-1); this.setData({ searchNList:arr }) }, onChoose(data){ let id = this.data.chooseList.map(v=>v.id); let arr = this.data.productList.filter(v=>id.indexOf(v.id)==-1); this.setData({ show:true, searchList:arr, sureProductList:JSON.parse(JSON.stringify(arr)), chooseIndex:data.target.dataset.index }) }, onChooseT(data){ let id = this.data.chooseList.map(v=>v.id); let arr = this.data.productList.filter(v=>id.indexOf(v.id)==-1); this.setData({ t_show:true, searchTList:arr, sureProductList:JSON.parse(JSON.stringify(arr)), chooseIndex:data.target.dataset.index }) }, takePhoto() { const ctx = wx.createCameraContext() ctx.takePhoto({ quality: 'high', success: (res) => { this.upRecord(res.tempImagePath); } }) }, upRecord(video){ var that =this; let app = getApp(); let openid = app.globalData.openID; let formData = { openid }; wx.uploadFile({ url: `${app.globalData.url}wx/uploadConstructionFile`,//这是你自己后台的连接 filePath: video, name:"file",//后台要绑定的名称 header: { "Content-Type": "multipart/form-data" }, //参数绑定 formData: formData,// HTTP 请求中其他额外的 form data success:function(ress){ wx.showToast({ title: '上传成功', }) let src = JSON.parse(ress.data).data.url; that.data.chooseList[that.data.chooseIndex].detail[that.data.chooseItemIndex].src = `${app.globalData.url}${src}`; if(that.data.set_status){ that.data.chooseList[that.data.chooseIndex].detail[that.data.chooseItemIndex].show_url = `${app.globalData.url}${src}`; } that.setData({ chooseList:that.data.chooseList, showCamera:false }) }, fail: function(ress){ wx.showToast({ title: '上传失败', }) that.setData({ showCamera:false }) } }) }, scanBarcode(data) { var that = this; var index = data.target.dataset.index; var itemindex = data.target.dataset.itemindex; var app = getApp(); var openid = app.globalData.openID; var storehouse_id = app.globalData.storehouse_id; wx.scanCode({ success: function(res) { let arr = that.data.chooseList; wx.p.request({ url: `${app.globalData.url}wx/getFilmByNumber`, method:'POST', data:{ openid, roll_film_number:res.result, storehouse_id } }).then(req=>{ if(req.data.code==200){ arr[index].detail[itemindex].basic_roll_film_id = req.data.data.b_r_f_id; arr[index].detail[itemindex].basic_roll_film_name = req.data.data.b_r_f_name; arr[index].detail[itemindex].roll_film_id = req.data.data.id; arr[index].detail[itemindex].roll_film_name = req.data.data.title; arr[index].detail[itemindex].roll_film_number = res.result;//条形码信息 that.setData({ chooseList:arr, }) }else{ wx.showToast({ title: req.data.msg, }) } }) }, fail: function(res) {} }) }, handleOpenCamera(data){ console.log(data); if(this.data.chooseList[data.currentTarget.dataset.index].detail[data.currentTarget.dataset.itemindex].src){ wx.previewImage({ urls:[this.data.chooseList[data.currentTarget.dataset.index].detail[data.currentTarget.dataset.itemindex].src] }) return } if(this.data.set_status=='is_detail'){ return } this.setData({ showCamera:true, chooseIndex:data.currentTarget.dataset.index, chooseItemIndex:data.currentTarget.dataset.itemindex }) }, handleNext(){ let app = getApp(); let arr = this.data.chooseList; let imgSrc = []; arr.forEach(v=>{ v.detail.forEach(c=>{ imgSrc.push(c.src) }) }) app.globalData.img = app.globalData.img.filter(v=>v.type!=3); app.globalData.img.push({ type:'3', src:imgSrc.toString() }) app.globalData.chooseList = arr; if(this.data.set_status){ wx.redirectTo({ url: '../sixth/sixth', }) }else{ let openid = app.globalData.openID; app.globalData.stepData = app.globalData.stepData.filter(v=>v.sort!=6); app.globalData.stepData.push({ sort:6, data:{ chooseList:this.data.chooseList, } }) wx.p.request({ url: `${app.globalData.url}wx/saveWxConstructionData`, method:'POST', data:{ type:1, openid, data:JSON.stringify(app.globalData) } }).then(res=>{ if(res.data.code==200){ wx.redirectTo({ url: '../sixth/sixth', }) } }) } }, handleChooseD(item){ let data = item.target.dataset.item; let arr = this.data.chooseList; arr[this.data.chooseIndex].detail[this.data.chooseItemIndex].car_depart_id = data.id; arr[this.data.chooseIndex].detail[this.data.chooseItemIndex].car_depart_name = data.title; arr[this.data.chooseIndex].detail[this.data.chooseItemIndex].expend_meters = data.expend_meters; this.setData({ chooseList:arr, d_show:false }) }, handleChooseB(item){ let data = item.target.dataset.item; let arr = this.data.chooseList; arr[this.data.chooseIndex].detail[this.data.chooseItemIndex].basic_roll_film_id = data.id; arr[this.data.chooseIndex].detail[this.data.chooseItemIndex].basic_roll_film_name = data.title; arr[this.data.chooseIndex].detail[this.data.chooseItemIndex].roll_film_id = ''; arr[this.data.chooseIndex].detail[this.data.chooseItemIndex].roll_film_name = ''; this.setData({ chooseList:arr, b_show:false }) }, handleChooseR(item){ let data = item.target.dataset.item; let arr = this.data.chooseList; arr[this.data.chooseIndex].detail[this.data.chooseItemIndex].basic_roll_film_id = data.b_r_f_id; arr[this.data.chooseIndex].detail[this.data.chooseItemIndex].basic_roll_film_name = data.b_r_f_name; arr[this.data.chooseIndex].detail[this.data.chooseItemIndex].roll_film_id = data.id; arr[this.data.chooseIndex].detail[this.data.chooseItemIndex].roll_film_name = data.title; arr[this.data.chooseIndex].detail[this.data.chooseItemIndex].warranty_year = data.warranty_year; this.setData({ chooseList:arr, r_show:false }) }, handleChooseN(item){ let data = item.target.dataset.item; let arr = this.data.chooseList; arr[this.data.chooseIndex].detail[this.data.chooseItemIndex].roll_film_number = data.roll_film_number; this.setData({ chooseList:arr, n_show:false }) }, handleChoose(item){ let app = getApp(); let openid=app.globalData.openID; let data = this.data.chooseList; data[this.data.chooseIndex].title = item.target.dataset.item.title; data[this.data.chooseIndex].code = item.target.dataset.item.code; data[this.data.chooseIndex].number=''; data[this.data.chooseIndex].roll_film_combine_id=item.target.dataset.item.id;; wx.p.request({ url: `${app.globalData.url}wx/carDepartCombineDetail`, method:'POST', data:{ openid, id:item.target.dataset.item.c_d_c_id } }).then(res=>{ if(res.data.code==200){ let sub = []; if(app.globalData.is_big){ sub =JSON.parse(JSON.stringify(this.data.carDepartList.filter(c=>res.data.data.car_depart_sub_big.indexOf(c.id)!=-1))); }else{ sub =JSON.parse(JSON.stringify(this.data.carDepartList.filter(c=>res.data.data.car_depart_sub.indexOf(c.id)!=-1))); } console.log(item.target.dataset.item.roll_film_id,this.data.rollFilmList) if(!this.data.rollFilmList.find(c=>c.id==item.target.dataset.item.roll_film_id)){ return wx.showToast({ icon:'none', title: '套餐中的对应卷膜的未找到!', }) } sub.forEach(b=>{ b.car_depart_id = b.id, b.car_depart_name = b.title, b.basic_roll_film_id=item.target.dataset.item.basic_roll_film_id, b.basic_roll_film_name=item.target.dataset.item.roll_film_type, b.roll_film_id=item.target.dataset.item.roll_film_id, b.warranty_year = this.data.rollFilmList.find(c=>c.id==b.roll_film_id).warranty_year b.roll_film_name=item.target.dataset.item.roll_film_name, b.roll_film_number='', b.src='' if(app.globalData.is_big){ b.expend_meters= res.data.data.car_depart_meters_big.find(x => x.car_depart_id == b.id).car_depart_meter&&res.data.data.car_depart_meters_big.find(x => x.car_depart_id == b.id).car_depart_meter!=0 ? res.data.data.car_depart_meters_big.find(x => x.car_depart_id == b.id).car_depart_meter : b.expend_meters; }else{ b.expend_meters= res.data.data.car_depart_meters.find(x => x.car_depart_id == b.id).car_depart_meter&& res.data.data.car_depart_meters.find(x => x.car_depart_id == b.id).car_depart_meter!=0 ? res.data.data.car_depart_meters.find(x => x.car_depart_id == b.id).car_depart_meter : b.expend_meters; } }) data[this.data.chooseIndex].detail = sub; this.setData({ chooseList:data, show:false, t_show:false }) } }) }, onChooseRollFilm(data){ let b_r_f_id = data.target.dataset.item.basic_roll_film_id; let list = []; if(b_r_f_id){ list = this.data.rollFilmList.filter(v=>v.b_r_f_id==b_r_f_id); }else{ list = JSON.parse(JSON.stringify(this.data.rollFilmList)); } this.setData({ chooseIndex:data.target.dataset.index, chooseItemIndex:data.target.dataset.itemindex, r_show:true, searchRValue:'', searchRList:list, sureRollFilmList:list }) }, onChooseBasicFilm(data){ this.setData({ chooseIndex:data.target.dataset.index, chooseItemIndex:data.target.dataset.itemindex, b_show:true, searchBValue:'', searchBList:this.data.basicRollFilmList }) }, onChooseNumber(data){ let roll_film_id = data.target.dataset.item.roll_film_id; if(roll_film_id){ let list = this.data.rollFilmList.find(v=>v.id==roll_film_id).roll_film_number_arr; this.setData({ chooseIndex:data.target.dataset.index, chooseItemIndex:data.target.dataset.itemindex, n_show:true, searchNValue:'', searchNList:list }) }else{ wx.showToast({ icon:'error', title: '先选择卷膜型号', }) } }, onChooseCarDepart(data){ this.setData({ chooseIndex:data.target.dataset.index, chooseItemIndex:data.target.dataset.itemindex, d_show:true, searchDValue:'', searchDList:this.data.carDepartList }) }, handleAddItem(data){ let index = data.target.dataset.index; let itemIndex = data.target.dataset.itemindex; let arr = this.data.chooseList; arr[index].detail.splice(itemIndex+1,0,{ car_depart_id:'', car_depart_name:'', basic_roll_film_id:'', basic_roll_film_name:'', roll_film_id:'', roll_film_name:'', roll_film_number:'', src:'', expend_meters:'' }) this.setData({ chooseList:arr }) }, handleDeleteItem(data){ let index = data.target.dataset.index; let itemIndex = data.target.dataset.itemindex; let arr = this.data.chooseList; arr[index].detail.splice(itemIndex,1) if(arr[index].detail.length==0){ arr = [{code:'',title:'',roll_film_combine_id:'',number:'',detail:[]}] } this.setData({ chooseList:arr }) }, handleAdd(data){ let arr = this.data.chooseList; arr.splice(data.target.dataset.index+1,0,{code:'',roll_film_combine_id:"",number:'',detail:[],title:''}); this.setData({ chooseList:arr }) }, handleDelete(data){ let arr = this.data.chooseList; if(arr.length==1){ arr = [{code:'',number:'',roll_film_combine_id:"",detail:[],title:''}] }else{ arr.splice(data.target.dataset.index,1); } this.setData({ chooseList:arr }) }, handleChangeNumber(data){ let arr = this.data.chooseList; arr[data.target.dataset.index].number = data.detail; this.setData({ chooseList:arr }) }, handleDelPic(e){ let arr = this.data.chooseList; arr[e.currentTarget.dataset.index].detail[e.currentTarget.dataset.itemindex].src=''; if(this.data.set_status){ arr[e.currentTarget.dataset.index].detail[e.currentTarget.dataset.itemindex].show_url=''; } this.setData({ chooseList: arr }) }, handleReturn(){ let app = getApp(); let openid = app.globalData.openID; if(this.data.set_status){ wx.redirectTo({ url: '../fourth/fourth', }) }else{ app.globalData.stepData.forEach((v,index)=>{ if(v.sort === 6){ app.globalData.stepData.splice(index,1); } }) wx.p.request({ url: `${app.globalData.url}wx/saveWxConstructionData`, method:'POST', data:{ openid, type:1, data:JSON.stringify(app.globalData) } }).then(res=>{ if(res.data.code==200){ wx.redirectTo({ url: '../fourth/fourth', }) } }) } }, getArr(arr){ let data = []; arr.forEach(v=>{ if(v.children.length==0){ data.push(v); }else{ data = [...data,...this.getArr(v.children)] } }) return data; }, /** * 生命周期函数--监听页面加载 */ onLoad(option) { let app = getApp(); let openid = app.globalData.openID; //获取套餐列表 productList wx.p.request({ url: `${app.globalData.url}wx/rollFilmCombineList`, method:'POST', data:{ openid, roll_film_id:1, use:1 } }).then(res=>{ if(res.data.code==200){ res.data.data.data.forEach(ele => { ele.is_choose = false; }); this.setData({ productList:res.data.data.data.filter(v=>(v.company_id==app.globalData.company_id)&&(app.globalData.choose_b_r_f_id.indexOf(v.basic_roll_film_id)!=-1)) }) } }) //获取施工部位 wx.p.request({ url: `${app.globalData.url}wx/carDepartList`, method:'POST', data:{ openid } }).then(res=>{ if(res.data.code==200){ this.setData({ carDepartList:res.data.data.data }) } }) //获取卷膜分类 wx.p.request({ url: `${app.globalData.url}wx/basicRollFilmList`, method:'POST', data:{ openid } }).then(res=>{ if(res.data.code==200){ this.setData({ basicRollFilmList:this.getArr(res.data.data) }) } }) let storehouse_id = app.globalData.storehouse_id; let company_id = app.globalData.company_id; let img_type = app.globalData.img_type||''; let data = {} if(app.globalData.set_status){ data.order_number = app.globalData.detailData.order_number } //获取卷膜型号 wx.p.request({ url: `${app.globalData.url}wx/rollFilmList`, method:'POST', data:{ use:1, openid, storehouse_id, company_id, ...data } }).then(res=>{ if(res.data.code==200){ this.setData({ rollFilmList:res.data.data.data }) } }) //如果选择的产品选择了卷膜图片的showImg为true,卷膜的图片类型是3 if(img_type.indexOf('3')!=-1){ this.setData({ showImg:true }) } if(app.globalData.set_status){ let sub = app.globalData.detailData.sub; let index = 0 sub.forEach((v)=>{ v.detail.forEach((o)=>{ o.basic_roll_film_name = o.b_r_f_name; o.roll_film_name = o.title; o.expend_meters = o.meter; if(app.globalData.detailData.img.find(d=>d.type==3)){ let src = app.globalData.detailData.img.find(d=>d.type==3).src.split(',') let show_url = app.globalData.detailData.img.find(d=>d.type==3).show_url.split(',') o.src = src[index]?`${app.globalData.url}${src[index]}`:''; o.show_url = show_url[index]?show_url[index]:'' }else{ o.src=''; o.show_url= ''; } index++; }) }) this.setData({ chooseList:sub, set_status:app.globalData.set_status, special_type:app.globalData.bussiness_special_type }) }else{ wx.p.request({ url: `${app.globalData.url}wx/getWxConstructionData`, method:'POST', data:{ type:1, openid } }).then(res=>{ if(res.data.code==200){ if(res.data.data.data){ let data = JSON.parse(res.data.data.data); let box = data.stepData.find(v=>v.sort==6); app.globalData = data; app.globalData.set_status = ''; if(box){ this.setData({ chooseList:box.data.chooseList, set_status:'', special_type:data.bussiness_special_type }) }else{ this.setData({ set_status:'', special_type:data.bussiness_special_type }) } } } }) } }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { }, /** * 生命周期函数--监听页面显示 */ onShow() { }, /** * 生命周期函数--监听页面隐藏 */ onHide() { }, /** * 生命周期函数--监听页面卸载 */ onUnload() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { }, /** * 用户点击右上角分享 */ onShareAppMessage() { } })