|
|
|
|
const app = getApp<IAppOption>()
|
|
|
|
|
|
|
|
|
|
Page({
|
|
|
|
|
data: {
|
|
|
|
|
id: '',
|
|
|
|
|
detail: {} as any,
|
|
|
|
|
LNG: '' as number | string,
|
|
|
|
|
LAT: '' as number | string,
|
|
|
|
|
pagination: {
|
|
|
|
|
page: 1,
|
|
|
|
|
pages: 1,
|
|
|
|
|
count: 0,
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
asideOut: false,
|
|
|
|
|
timeToast: false,
|
|
|
|
|
timeToastType: '18',
|
|
|
|
|
timeToastParams: {
|
|
|
|
|
rewardScore: 0,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
onLoad(options) {
|
|
|
|
|
app.zdWaitLogin().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.getDetail()
|
|
|
|
|
} else if (res.confirm) {
|
|
|
|
|
//确定授权,通过wx.openSetting发起授权请求
|
|
|
|
|
wx.openSetting({
|
|
|
|
|
success(res) {
|
|
|
|
|
if (res.authSetting['scope.userFuzzyLocation'] == true) {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '授权成功',
|
|
|
|
|
icon: 'success',
|
|
|
|
|
duration: 1000
|
|
|
|
|
})
|
|
|
|
|
// 再次授权,调用wx.getLocation的API
|
|
|
|
|
that.getFuzzyLocation()
|
|
|
|
|
} else {
|
|
|
|
|
wx.showToast({
|
|
|
|
|
title: '授权失败',
|
|
|
|
|
icon: 'none',
|
|
|
|
|
duration: 1000
|
|
|
|
|
})
|
|
|
|
|
that.getDetail()
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
})
|
|
|
|
|
} else {
|
|
|
|
|
that.setData({
|
|
|
|
|
LNG: '',
|
|
|
|
|
LAT: '',
|
|
|
|
|
})
|
|
|
|
|
this.getDetail()
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
getFuzzyLocation() {
|
|
|
|
|
const that = this
|
|
|
|
|
wx.getFuzzyLocation({
|
|
|
|
|
success(res) {
|
|
|
|
|
console.log(res)
|
|
|
|
|
that.setData({
|
|
|
|
|
LNG: res.longitude,
|
|
|
|
|
LAT: res.latitude,
|
|
|
|
|
})
|
|
|
|
|
that.getDetail()
|
|
|
|
|
},
|
|
|
|
|
fail() {
|
|
|
|
|
that.getDetail()
|
|
|
|
|
},
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
getDetail() {
|
|
|
|
|
wx.ajax({
|
|
|
|
|
method: 'GET',
|
|
|
|
|
url: '?r=xd/hospital/detail',
|
|
|
|
|
data: {
|
|
|
|
|
Id: this.data.id,
|
|
|
|
|
lng: this.data.LNG,
|
|
|
|
|
lat: this.data.LAT,
|
|
|
|
|
},
|
|
|
|
|
}).then((res) => {
|
|
|
|
|
if (res.CanGetScore) {
|
|
|
|
|
this.handleTimeOut(res.Id)
|
|
|
|
|
}
|
|
|
|
|
this.setData({
|
|
|
|
|
detail: {
|
|
|
|
|
...res,
|
|
|
|
|
doctors: res.doctors.map((item: any) => {
|
|
|
|
|
let weekName = ''
|
|
|
|
|
if (item.ClinicType == 2) {
|
|
|
|
|
weekName = item.Clinic
|
|
|
|
|
} else {
|
|
|
|
|
weekName = (JSON.parse(item.Clinic) ? JSON.parse(item.Clinic) : []).map(
|
|
|
|
|
(subItem: { weekday: string | number; timeType: string | number }) => {
|
|
|
|
|
const week = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
|
|
|
|
|
const timeDay = { 1: '上午', 2: '下午' }
|
|
|
|
|
return { week: week[Number(subItem.weekday) - 1], timeDay: timeDay[subItem.timeType] }
|
|
|
|
|
},
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
return {
|
|
|
|
|
weekName,
|
|
|
|
|
...item,
|
|
|
|
|
}
|
|
|
|
|
}),
|
|
|
|
|
},
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
handlePhone() {
|
|
|
|
|
const { detail } = this.data
|
|
|
|
|
wx.makePhoneCall({
|
|
|
|
|
phoneNumber: detail.Telephone,
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
handleOpenMap() {
|
|
|
|
|
const { detail } = this.data
|
|
|
|
|
wx.openLocation({
|
|
|
|
|
latitude: detail.LAT,
|
|
|
|
|
longitude: detail.LNG,
|
|
|
|
|
name: detail.Name,
|
|
|
|
|
address: `${detail.ProvinceName}${detail.CityName}${detail.CountyName}${detail.Address}`,
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
handleTimeOut(Id) {
|
|
|
|
|
wx.ajax({
|
|
|
|
|
method: 'POST',
|
|
|
|
|
url: '?r=xd/score/send-score',
|
|
|
|
|
data: {
|
|
|
|
|
Type: this.data.timeToastType,
|
|
|
|
|
Id,
|
|
|
|
|
},
|
|
|
|
|
}).then((res) => {
|
|
|
|
|
if (!Array.isArray(res)) {
|
|
|
|
|
this.setData({
|
|
|
|
|
timeToast: true,
|
|
|
|
|
timeToastParams: {
|
|
|
|
|
rewardScore: res.rewardScore,
|
|
|
|
|
},
|
|
|
|
|
})
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
this.setData({
|
|
|
|
|
timeToast: false,
|
|
|
|
|
})
|
|
|
|
|
}, 3000)
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
routerTo(e) {
|
|
|
|
|
const { url } = e.currentTarget.dataset
|
|
|
|
|
wx.navigateTo({
|
|
|
|
|
url,
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
handleBack() {
|
|
|
|
|
wx.navigateBack()
|
|
|
|
|
},
|
|
|
|
|
onPageScroll() {},
|
|
|
|
|
})
|