import request from "@config/rerquest"; import { wxRequestPost, wxGetSetting, wxGetUserProfile, } from "@utils/promise-wx-api"; import getLocation from "@utils/location"; const app = getApp(); Component({ properties: { isNovice: { type: Boolean, value: false, }, }, data: { hasChose: false, isShowHouseList: true, selectedarea: false, region: ["山东省", "青岛市", "市北区"], // region: ["", "", ""], currentAddress: "", contact: "", qrUrl: "", gridList: [], params: { pageNo: 1, pageSize: 20, isNone: false, isAuthorized: 1, // 0 1 是否首次位置授权 areaCode: "", selectedAreaCode: "", province: "", city: "", area: "", }, idCard: "", buildingName: "", }, observers: { buildingName() { this.resetGridList(); this.getList(); }, }, methods: { async onLoad() { this.getContactPhone(); wx.showLoading({ title: "请求中" }); await this.getLocation(); wx.hideLoading(); }, getContactPhone() { request({ method: "POST", url: "resi/guide/stranger/marketcontactinfo", ifToken: false, }).then((res) => { console.log(res.data); this.setData({ contact: res.data.phone, qrUrl: res.data.qrUrl, }); }); }, // 获取地理位置信息 async getLocation(isQuiet = true) { const st = await wxGetSetting(); let isAuthorized = 0; if ( st.msg == "success" && st.data.authSetting["scope.userLocation"] ) { isAuthorized = 1; } const { msg, data } = await getLocation(isQuiet); console.log(msg, data); if (msg === "success") { this.setData({ selectedarea: true, currentAddress: data.address, "params.isAuthorized": isAuthorized, "params.province": data.province, "params.city": data.city, "params.area": data.district, "params.selectedAreaCode": data.adcode, "params.areaCode": data.adcode, }); this.resetGridList(); this.getList(); } }, async reLocation() { console.log("重新获取定位"); this.getLocation(false); }, bindRegionChange: function (e) { console.log("picker发送选择改变,携带值为", e.detail.value[0]); let province = e.detail.value[0]; let city = e.detail.value[1]; let area = e.detail.value[2]; let adcode = e.detail.code[2]; this.setData({ selectedarea: true, region: e.detail.value, // currentAddress: "", "params.province": province, "params.city": city, "params.area": area, "params.areaCode": adcode, "params.selectedAreaCode": adcode, }); this.resetGridList(); this.getList(); }, // 到底部自动加载 onReachBottom() { console.log("========onReachBottom"); this.getList(); }, handleBlur(e) { const { value } = e.detail; if (!this.identityCodeValid(value)) { return wx.showToast({ title: "证件号格式错误", icon: "none", duration: 1500, }); } }, async handleBlur_new(e) { console.log(JSON.stringify(e)); const { value } = e.detail; // if (value.length > 0) { // this.setData({ // buildingName: value, // isShowHouseList: true // }) // this.getNeighborhoodlist('bind') // } else { // this.setData({ // buildingName: '', // isShowHouseList: false // }) // this.resetGridList(); // await this.getList(); // } console.log("value:", value); // if(!this.identityCodeValid(value)) { // return wx.showToast({ // title: '证件号格式错误', // icon: 'none', // duration: 1500 // }) // } }, handleInput(e) { const { value } = e.detail; this.setData({ idCard: value, }); }, handleInput_new(e) { const { value } = e.detail; this.setData({ buildingName: value, isShowHouseList: true, }); }, identityCodeValid(idcode) { // 返回验证结果,校验码和格式同时正确才算是合法的身份证号码 return /^(\d{15}$)|(^\d{17}([0-9]|X)$)|(^[a-zA-Z]{2}\d{7}$|^[a-zA-Z]{1}\d{8}$)/.test( idcode ); }, // handleCancle() { // this.setData({ // idCard: '' // }) // this.reLocation() // }, handleCancle_new() { this.setData({ buildingName: "", // isShowHouseList: false }); this.resetGridList(); this.getList(); }, async handleItem(e) { console.log("eeee----", e.currentTarget.dataset.index); const { index } = e.currentTarget.dataset; const { gridList } = this.data; let item = gridList[index]; if (item.showItem) { item.showItem = false; this.setData({ gridList, }); return; } const { msg, data: { data: { code, data }, }, } = await wxRequestPost( "gov/org/icneighborhood/open/list", { gridId: item.gridId, }, { isQuiet: false, } ); wx.hideLoading(); if (msg === "success" && code === 0) { console.log("data----", data); if (data.total > 0) { item.showItem = true; item.village = data.list .map((n) => n.neighborHoodName) .join("、"); this.setData({ gridList, }); } else { wx.showToast({ title: "还没有小区哦", icon: "none", duration: 1500, }); } } else { wx.showToast({ title: msg, icon: "none", duration: 1500, }); } }, async handleSearch() { if (!this.data.idCard) { wx.showToast({ title: "请输入证件号", icon: "none", duration: 1500, }); return; } const url = "epmetuser/icresiuser/icUserMatchGrid"; const extAppid = wx.getStorageSync("extAppid"); wx.showLoading({ title: "" }); const { msg, data: { data: { code, data }, }, } = await wxRequestPost( url, { appId: extAppid, idCard: this.data.idCard, }, { isQuiet: false, } ); wx.hideLoading(); if (msg === "success" && code === 0) { this.resetGridList(); let { gridList } = this.data; gridList = []; gridList.push({ ...data, showItem: false }); this.setData({ gridList, }); console.log("data-sssss", data); } else { wx.showToast({ title: msg, icon: "none", duration: 1500, }); } }, async handleFocus() { this.setData({ isShowHouseList: true, }); this.getList(); }, getList() { const { isShowHouseList } = this.data; if (isShowHouseList) { this.getNeighborhoodlist(); } else { this.getGridList(); } }, // 重置网格列表 resetGridList() { this.setData({ // gridList: [], "params.pageNo": 1, "params.isNone": false, }); }, async getNeighborhoodlist22222() { const url = "gov/org/icneighborhood/neighborhoodlist"; // wx.showLoading({ title: "" }); const { msg, data: { data: { code, data }, }, } = await wxRequestPost( url, { buildingName: this.data.buildingName, }, { isQuiet: false, } ); // wx.hideLoading(); if (msg === "success" && code === 0) { this.resetGridList(); let { gridList } = this.data; gridList = []; let _data = data && data.map((item) => { return { ...item, showItem: false, }; }); gridList = _data; this.setData({ gridList, }); // console.log('data-sssss', JSON.stringify(this.data.gridList)) } else { wx.showToast({ title: msg, icon: "none", duration: 1500, }); } }, // 获取网格列表 async getNeighborhoodlist() { const { params } = this.data; if (params.isNone) return console.log("没有更多了"); const url = "gov/org/icneighborhood/neighborhoodlist"; wx.showLoading({ title: "" }); const { msg, data: { data: { code, data }, }, } = await wxRequestPost( url, { buildingName: this.data.buildingName, pageNo: params.pageNo, pageSize: params.pageSize, }, { isQuiet: false, } ); wx.hideLoading(); if (msg === "success" && code === 0) { let { gridList } = this.data; let _data = data && data.map((item) => { return { ...item, showItem: false, }; }); if (params.pageNo == 1) { gridList = _data; } else { gridList.push(..._data); } this.setData({ gridList, hasChose: true, "params.pageNo": params.pageNo + 1, "params.isNone": data.length < params.pageSize, }); return false; } }, // 获取网格列表 async getGridList() { const { params } = this.data; if (params.isNone) return console.log("没有更多了"); const extAppid = wx.getStorageSync("extAppid"); const url = extAppid ? "resi/guide/stranger/publiclocationgridlist" : "resi/guide/stranger/getlocationcustomergridlist"; wx.showLoading({ title: "" }); const { msg, data: { data: { code, data }, }, } = await wxRequestPost( url, { ...params, appId: extAppid, isNovice: this.data.isNovice, }, { isQuiet: false, } ); wx.hideLoading(); if (msg === "success" && code === 0) { let { gridList } = this.data; let _data = data && data.map((item) => { return { ...item, showItem: false, }; }); if (params.pageNo == 1) { gridList = _data; } else { gridList.push(..._data); } this.setData({ gridList, hasChose: true, "params.pageNo": params.pageNo + 1, "params.isNone": data.length < params.pageSize, }); return false; } }, // 点击网格登录 async loginGrid(e) { let gid = e.currentTarget.dataset.gid; let cid = e.currentTarget.dataset.cid; app.globalData.customerId = cid; app.globalData.gridId = gid; wx.showLoading({ title: "" }); await app.enterGridData(); wx.hideLoading(); app.setAccountInfo({ isLogined: true }); if ( wx.getStorageSync("isFromQr") && wx.getStorageSync("isFromQr") == "1" ) { wx.reLaunch({ url: "/subpages/points/pages/fangyi/xinxi/create/index", }); wx.removeStorageSync("isFromQr"); } else { wx.reLaunch({ url: "/pages/main/index", }); } }, }, });