const app = getApp() Page({ data: { id: '', detail: {} as any, LNG: '' as number | string, LAT: '' as number | string, pagination: { page: 1, pages: 1, count: 1, }, }, onLoad(options) { const SystemInfo = app.globalSystemInfo if (SystemInfo) { const { top, bottom } = SystemInfo.capsulePosition this.setData({ top, bottom, }) } app.waitLogin().then((_res) => { this.setData({ id: options.id, }) this.handleToggleSite() }) }, handleToggleSite() { const that = this if (!this.data.LNG) { wx.getSetting({ success(res) { if ( res.authSetting['scope.userFuzzyLocation'] != undefined && res.authSetting['scope.userFuzzyLocation'] == true ) { //获取当前位置 that.getFuzzyLocation() } else if (res.authSetting['scope.userFuzzyLocation'] == undefined) { //获取当前位置 that.getFuzzyLocation() } else { wx.showModal({ title: '请求授权当前位置', content: '需要获取您的地理位置,请确认授权', confirmColor: '#cf5375', success(res) { if (res.cancel) { //取消授权 wx.showToast({ title: '拒绝授权', icon: 'none', duration: 1000, }) that.getFuzzyLocation() } else if (res.confirm) { //确定授权,通过wx.openSetting发起授权请求 wx.openSetting({ success(res) { if (res.authSetting['scope.userFuzzyLocation'] == true) { that.getFuzzyLocation() } else { that.getFuzzyLocation() } }, }) } }, }) } }, }) } else { that.setData({ LNG: '', LAT: '', }) this.getDetail() } }, getFuzzyLocation() { const that = this wx.getFuzzyLocation({ success(res) { that.setData({ LNG: res.longitude, LAT: res.latitude, }) that.getDetail() }, fail(_err) { that.getDetail() }, }) }, getDetail() { wx.ajax({ method: 'GET', url: '?r=igg4/doctor/detail', data: { Id: this.data.id, lng: this.data.LNG, lat: this.data.LAT, }, }).then((res) => { let weekName = '' if (res.ClinicType == 2) { weekName = res.Clinic } else { weekName = (res.Clinic ? res.Clinic : []) .map((subItem: { weekday: string | number; timeType: string | number }) => { const week = ['周一', '周二', '周三', '周四', '周五', '周六', '周日'] const timeDay = { 1: '上午', 2: '下午' } return `${week[Number(subItem.weekday) - 1]}${timeDay[subItem.timeType]}` }) .join(',') } this.setData({ detail: { ...res, weekName, }, }) }) }, handlePhone() { const { detail } = this.data wx.makePhoneCall({ phoneNumber: detail.Telephone, }) }, handleOpenMap() { const { detail: { hospital }, } = this.data wx.openLocation({ latitude: hospital.LAT, longitude: hospital.LNG, name: hospital.Name, address: `${hospital.ProvinceName}${hospital.CityName}${hospital.AreaName}${hospital.Address}`, }) }, handleBack() { wx.navigateBack() }, onPageScroll() {}, })