You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
1.9 KiB
91 lines
1.9 KiB
10 months ago
|
import upload from '@/uni_modules/uview-ui/components/u-upload/u-upload'
|
||
|
|
||
|
|
||
|
function getLocationInfo() {
|
||
|
return new Promise((resolve, reject) => {
|
||
|
uni.getLocation({
|
||
|
type: 'gcj02',
|
||
|
geocode: true,
|
||
|
success: (res) => {
|
||
|
resolve(res)
|
||
|
},
|
||
|
fail: (res) => {
|
||
|
reject(err)
|
||
|
}
|
||
|
});
|
||
|
})
|
||
|
}
|
||
|
|
||
|
|
||
|
function string2unicode(str) {
|
||
|
var ret = "";
|
||
|
var ustr = "";
|
||
|
|
||
|
for (var i = 0; i < str.length; i++) {
|
||
|
|
||
|
var code = str.charCodeAt(i);
|
||
|
var code16 = code.toString(16);
|
||
|
|
||
|
if (code < 0xf) {
|
||
|
ustr = "\\u" + "000" + code16;
|
||
|
} else if (code < 0xff) {
|
||
|
ustr = "\\u" + "00" + code16;
|
||
|
} else if (code < 0xfff) {
|
||
|
ustr = "\\u" + "0" + code16;
|
||
|
} else {
|
||
|
ustr = "\\u" + code16;
|
||
|
}
|
||
|
ret += ustr;
|
||
|
//ret += "\\u" + str.charCodeAt(i).toString(16);
|
||
|
}
|
||
|
return ret
|
||
|
}
|
||
|
|
||
|
export default {
|
||
|
functional: true,
|
||
|
render: function(h, context) {
|
||
|
return h(upload, {
|
||
|
...context.data,
|
||
|
on: {
|
||
|
...context.data.on,
|
||
|
afterRead: async (event) => {
|
||
|
try {
|
||
|
// #ifdef APP-PLUS
|
||
|
const locationInfo = await getLocationInfo()
|
||
|
const {
|
||
|
province = '', city = '', district = '', street = '', streetNum = '',
|
||
|
poiName = ''
|
||
|
} = locationInfo.address
|
||
|
const position =
|
||
|
`${province}${city}${district}${street}${streetNum}${poiName}`
|
||
|
console.log(position)
|
||
|
console.log(string2unicode(position))
|
||
|
context.listeners.afterRead({
|
||
|
...event,
|
||
|
longitude: locationInfo.longitude || '',
|
||
|
latitude: locationInfo.latitude || '',
|
||
|
position
|
||
|
})
|
||
|
// #endif
|
||
|
// #ifdef H5
|
||
|
|
||
|
context.listeners.afterRead({
|
||
|
...event,
|
||
|
"longitude": 120.485218,
|
||
|
"latitude": 36.147391,
|
||
|
position: string2unicode('山东省青岛市崂山区新锦路173号青岛国际创新园')
|
||
|
})
|
||
|
// #endif
|
||
|
|
||
|
} catch (e) {
|
||
|
console.log(e, 'event')
|
||
|
context.listeners.afterRead({
|
||
|
...event,
|
||
|
})
|
||
|
//TODO handle the exception
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}, context.children)
|
||
|
}
|
||
|
}
|