文件
OmniCard/mpuniapp/pages/API/open-location/open-location.uvue

140 行
3.4 KiB
Plaintext

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

<template>
<view>
<page-head :title="title"></page-head>
<view class="uni-common-mt">
<view class="uni-list">
<view class="uni-list-cell">
<view class="uni-list-cell-left">
<view class="uni-label">经度</view>
</view>
<view class="uni-list-cell-db">
<text class="readonly-text">{{ longitude }}</text>
</view>
</view>
<view class="uni-list-cell">
<view class="uni-list-cell-left">
<view class="uni-label">纬度</view>
</view>
<view class="uni-list-cell-db">
<text class="readonly-text">{{ latitude }}</text>
</view>
</view>
<view class="uni-list-cell">
<view class="uni-list-cell-left">
<view class="uni-label">位置名称</view>
</view>
<view class="uni-list-cell-db">
<text class="readonly-text">{{ name }}</text>
</view>
</view>
<view class="uni-list-cell">
<view class="uni-list-cell-left">
<view class="uni-label">详细位置</view>
</view>
<view class="uni-list-cell-db">
<text class="readonly-text">{{ address }}</text>
</view>
</view>
</view>
<view class="uni-padding-wrap">
<view class="tips">注意:需要正确配置地图服务商的Key才能正常显示位置</view>
<view class="uni-btn-v uni-common-mt">
<button type="primary" @click="openLocation">查看位置</button>
</view>
</view>
</view>
</view>
</template>
<script lang="uts" setup>
import { state, setLifeCycleNum } from '@/store/index.uts';
type DataType = {
dialogPagesNum: number;
};
// 响应式数据
const title = ref('openLocation');
const longitude = ref(116.39747);
const latitude = ref(39.9085);
const name = ref('天安门');
const address = ref('北京市东城区东长安街');
// 自动化测试
const data = reactive({
dialogPagesNum: -1,
} as DataType);
// 生命周期钩子
onPageShow(() => {
console.log('Page Show');
// 自动化测试
setLifeCycleNum(state.lifeCycleNum + 1);
});
onPageHide(() => {
console.log('Page Hide');
// 自动化测试
setLifeCycleNum(state.lifeCycleNum - 1);
});
// 自动化测试
const test = () => {
const pages = getCurrentPages();
const page = pages[pages.length - 1];
// #ifdef APP || WEB
const dialogPages = page.getDialogPages();
data.dialogPagesNum = dialogPages.length;
// #endif
};
// 方法
const openLocation = () => {
uni.openLocation({
longitude: longitude.value,
latitude: latitude.value,
name: name.value,
address: address.value,
});
// 自动化测试
setTimeout(() => {
test();
}, 500);
};
// 自动化测试
const pageSetLifeCycleNum = (value: number) => {
setLifeCycleNum(value);
};
// 自动化测试
const getLifeCycleNum = (): number => {
return state.lifeCycleNum;
};
defineExpose({
data,
openLocation,
pageSetLifeCycleNum,
getLifeCycleNum,
});
</script>
<style>
.readonly-text {
color: #999999;
font-size: 14px;
line-height: 22px;
padding-top: 10px;
padding-bottom: 10px;
}
.uni-list-cell-left {
padding: 0 15px;
}
.tips {
font-size: 12px;
margin-top: 15px;
opacity: 0.8;
}
</style>