var util = require('../../../../../utils/util.js'); var api = require('../../../../../utils/api'); var Parse = getApp().Parse; import placeArrays from "../../../../../utils/citysearch" const placeArray=placeArrays.placeArray Page({ data: { type:1, address: { id: 0, province_id: 0, city_id: 0, district_id: 0, address: '', full_region: '', name: '', mobile: '', is_default: 0 }, addressId: 0, openSelectRegion: false, selectRegionList: [{ id: 0, name: '省份', parent_id: 1, type: 1 }, { id: 0, name: '城市', parent_id: 1, type: 2 }, { id: 0, name: '区县', parent_id: 1, type: 3 } ], regionType: 1, regionList: [], selectRegionDone: false, placeArray: placeArray, province: placeArray[0].name, //- 省 pIndex: 0, city: placeArray[0].city[0].name, //- 市 cIndex: 0, area: placeArray[0].city[0].area[0], //- 区 aIndex: 0, isAddress:false, fullName:"" }, onClose(){ this.setData({ isAddress:false }) }, confirm(){ let full_region = this.data.province+this.data.city+this.data.area this.setData({ ['address.full_region']:full_region, isAddress:false }) }, showAddress(){ this.setData({ isAddress:true }) }, changeProvince: function(e){ const val = e.detail.value //这些val都是数组形式的了 this.setData({ pIndex: val, cIndex: 0, aIndex: 0, province: placeArray[val].name, city: placeArray[val].city[0].name, area: placeArray[val].city[0].area[0] }) }, changeCity: function(e){ const val = e.detail.value this.setData({ cIndex: val, aIndex: 0, city: placeArray[this.data.pIndex].city[val].name, area: placeArray[this.data.pIndex].city[val].area[0] }) }, changeArea: function(e){ const val = e.detail.value this.setData({ aIndex: val, area: placeArray[this.data.pIndex].city[this.data.cIndex].area[val] }) }, mobilechange(e) { let mobile = e.detail.value; let address = this.data.address; if (util.testMobile(mobile)) { address.mobile = mobile; this.setData({ address: address }); } }, bindinputName(event) { let address = this.data.address; address.name = event.detail.value; this.setData({ address: address }); }, bindinputAddress(event) { let address = this.data.address; address.address = event.detail.value; this.setData({ address: address }); }, switchChange(e) { let status = e.detail.value; let is_default = 0; if (status == true) { is_default = 1; } let address = 'address.is_default'; this.setData({ [address]: is_default }); }, async getAddressDetail() { let that = this; let checkedAddress = {} let query = new Parse.Query("ShopAddress"); query.equalTo("objectId", that.data.addressId); let address = await query.first() if(address) { checkedAddress.name = address.get("name") checkedAddress.country_id = address.get("country_id") checkedAddress.province_id = address.get("province_id") checkedAddress.city_id = address.get("city_id") checkedAddress.district_id = address.get("district_id") checkedAddress.address = address.get("address") checkedAddress.mobile = address.get("mobile") checkedAddress.is_default = address.get("is_default") checkedAddress.province_name = address.get("province_name") checkedAddress.city_name = address.get("city_name") checkedAddress.district_name = address.get("district_name") checkedAddress.full_region = address.get("full_region") that.setData({ address:checkedAddress }) } // util.request(api.AddressDetail, { // id: that.data.addressId // }).then(function(res) { // if (res.errno === 0) { // that.setData({ // address: res.data // }); // } // }); }, deleteAddress: function() { let id = this.data.addressId; wx.showModal({ title: '提示', content: '您确定要删除么?', success: function(res) { if (res.confirm) { util.request(api.DeleteAddress, { id: id }, 'POST').then(function(res) { if (res.errno === 0) { wx.removeStorageSync('addressId'); util.showErrorToast('删除成功'); wx.navigateBack(); } else { util.showErrorToast(res.errmsg); } }); } } }) }, setRegionDoneStatus() { let that = this; let doneStatus = that.data.selectRegionList.every(item => { return item.id != 0; }); that.setData({ selectRegionDone: doneStatus }) }, chooseRegion() { let that = this; this.setData({ openSelectRegion: !this.data.openSelectRegion }); //设置区域选择数据 let address = this.data.address; if (address.province_id > 0 && address.city_id > 0 && address.district_id > 0) { let selectRegionList = this.data.selectRegionList; selectRegionList[0].id = address.province_id; selectRegionList[0].name = address.province_name; selectRegionList[0].parent_id = 1; selectRegionList[1].id = address.city_id; selectRegionList[1].name = address.city_name; selectRegionList[1].parent_id = address.province_id; selectRegionList[2].id = address.district_id; selectRegionList[2].name = address.district_name; selectRegionList[2].parent_id = address.city_id; this.setData({ selectRegionList: selectRegionList, regionType: 3 }); this.getRegionList(address.city_id); } else { this.setData({ selectRegionList: [{ id: 0, name: '省份', parent_id: 1, type: 1 }, { id: 0, name: '城市', parent_id: 1, type: 2 }, { id: 0, name: '区县', parent_id: 1, type: 3 } ], regionType: 1 }) this.getRegionList(1); } this.setRegionDoneStatus(); }, onLoad: function(options) { let {activeColor,titleColor}=options this.setData({activeColor,titleColor}) // 页面初始化 options为页面跳转所带来的参数 if (options.id) { this.setData({ addressId: options.id, type:2 }); this.getAddressDetail(); } // this.getRegionList(1); }, onReady: function() { }, async saveEditAddress(){ let that = this let query = new Parse.Query("ShopAddress"); query.equalTo("objectId", that.data.addressId); let shopAddress = await query.first() shopAddress.set("name",that.data.address.name) shopAddress.set("mobile",that.data.address.mobile) shopAddress.set("province_id",that.data.address.province_id) shopAddress.set("city_id",that.data.address.city_id) shopAddress.set("district_id",that.data.address.district_id) shopAddress.set("address",that.data.address.address) shopAddress.set("province_name",that.data.province) shopAddress.set("city_name",that.data.city) shopAddress.set("district_name",that.data.area) shopAddress.set("full_region",that.data.address.full_region) shopAddress.set("is_default",that.data.address.is_default) if(that.data.address.is_default == 1){ that.setDefault() } await shopAddress.save().then(data=>{ wx.navigateBack() }) }, selectRegionType(event) { let that = this; let regionTypeIndex = event.target.dataset.regionTypeIndex; let selectRegionList = that.data.selectRegionList; //判断是否可点击 if (regionTypeIndex + 1 == this.data.regionType || (regionTypeIndex - 1 >= 0 && selectRegionList[regionTypeIndex - 1].id <= 0)) { return false; } this.setData({ regionType: regionTypeIndex + 1 }) let selectRegionItem = selectRegionList[regionTypeIndex]; this.getRegionList(selectRegionItem.parent_id); this.setRegionDoneStatus(); }, selectRegion(event) { let that = this; let regionIndex = event.target.dataset.regionIndex; let regionItem = this.data.regionList[regionIndex]; let regionType = regionItem.type; let selectRegionList = this.data.selectRegionList; selectRegionList[regionType - 1] = regionItem; if (regionType != 3) { this.setData({ selectRegionList: selectRegionList, regionType: regionType + 1 }) this.getRegionList(regionItem.id); } else { this.setData({ selectRegionList: selectRegionList }) } //重置下级区域为空 selectRegionList.map((item, index) => { if (index > regionType - 1) { item.id = 0; item.name = index == 1 ? '城市' : '区县'; item.parent_id = 0; } return item; }); this.setData({ selectRegionList: selectRegionList }) that.setData({ regionList: that.data.regionList.map(item => { //标记已选择的 if (that.data.regionType == item.type && that.data.selectRegionList[that.data.regionType - 1].id == item.id) { item.selected = true; } else { item.selected = false; } return item; }) }); this.setRegionDoneStatus(); }, doneSelectRegion() { if (this.data.selectRegionDone === false) { return false; } let address = this.data.address; let selectRegionList = this.data.selectRegionList; address.province_id = selectRegionList[0].id; address.city_id = selectRegionList[1].id; address.district_id = selectRegionList[2].id; address.province_name = selectRegionList[0].name; address.city_name = selectRegionList[1].name; address.district_name = selectRegionList[2].name; address.full_region = selectRegionList.map(item => { return item.name; }).join(''); this.setData({ address: address, openSelectRegion: false }); }, cancelSelectRegion() { this.setData({ openSelectRegion: false, regionType: this.data.regionDoneStatus ? 3 : 1 }); }, getRegionList(regionId) { let that = this; let regionType = that.data.regionType; util.request(api.RegionList, { parentId: regionId }).then(function(res) { if (res.errno === 0) { that.setData({ regionList: res.data.map(item => { //标记已选择的 if (regionType == item.type && that.data.selectRegionList[regionType - 1].id == item.id) { item.selected = true; } else { item.selected = false; } return item; }) }); } }); }, async saveAddress() { let address = this.data.address; let company = getApp().globalData.company let user = Parse.User.current(); if (address.name == '' || address.name == undefined) { util.showErrorToast('请输入姓名'); return false; } if (address.mobile == '' || address.mobile == undefined) { util.showErrorToast('请输入手机号码'); return false; } if (address.province == "" || address.city == "") { util.showErrorToast('请输入省市区'); return false; } if (address.address == '' || address.address == undefined) { util.showErrorToast('请输入详细地址'); return false; } let that = this; let ShopAddress = Parse.Object.extend("ShopAddress"); let shopAddress = new ShopAddress(); shopAddress.set("user",{ "__type": "Pointer", "className": "_User", "objectId": user.id }) shopAddress.set("company",{ "__type": "Pointer", "className": "Company", "objectId": company }) shopAddress.set("name",that.data.address.name) shopAddress.set("mobile",that.data.address.mobile) shopAddress.set("province_id",that.data.address.province_id) shopAddress.set("city_id",that.data.address.city_id) shopAddress.set("district_id",that.data.address.district_id) shopAddress.set("address",that.data.address.address) shopAddress.set("province_name",that.data.province) shopAddress.set("city_name",that.data.city) shopAddress.set("district_name",that.data.area) shopAddress.set("full_region",that.data.address.full_region) shopAddress.set("is_default",that.data.address.is_default) if(that.data.address.is_default == 1){ that.setDefault() } await shopAddress.save().then(data=>{ wx.navigateBack() }) // util.request(api.SaveAddress, { // id: address.id, // name: address.name, // mobile: address.mobile, // province_id: address.province_id, // city_id: address.city_id, // district_id: address.district_id, // address: address.address, // is_default: address.is_default, // }, 'POST').then(function(res) { // if (res.errno === 0) { // // } // }); }, setDefault(){ let ShopAddress = new Parse.Query("ShopAddress") ShopAddress.equalTo("user",Parse.User.current().id) ShopAddress.equalTo("is_default",1) ShopAddress.first().then(res=>{ if(res){ res.set("is_default",0) res.save() } }) }, onShow: function() { let id = this.data.addressId; if (id > 0) { wx.setNavigationBarTitle({ title: '编辑地址', }) } else { wx.setNavigationBarTitle({ title: '新增地址', }) } }, onHide: function() { // 页面隐藏 }, onUnload: function() { // 页面关闭 } })