|
|
@@ -0,0 +1,121 @@
|
|
|
+<template>
|
|
|
+ <div class="page-container">
|
|
|
+ <!-- 姓名和号码部分 -->
|
|
|
+ <div class="name-number" v-if="state.data">
|
|
|
+ <span class="name">{{ state.data.realName }}</span>
|
|
|
+ <span class="spacing"></span> <!-- 新增的间距元素 -->
|
|
|
+ <span class="number">{{ state.data.number }}</span>
|
|
|
+ </div>
|
|
|
+ <!-- 头像容器 -->
|
|
|
+ <div class="avatars">
|
|
|
+ <!-- 绿色头像 -->
|
|
|
+ <div class="avatar-wrap green-icon-wrap" @click="handleClick(true)" v-reclick="1000">
|
|
|
+ <el-avatar :size="100" class="icon green-icon">
|
|
|
+ <i class="iconfont icon-dianhua"></i>
|
|
|
+ </el-avatar>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script lang="ts" name="callTel" setup>
|
|
|
+import { reactive, onMounted } from "vue";
|
|
|
+import { useRoute } from "vue-router";
|
|
|
+const route = useRoute();
|
|
|
+
|
|
|
+const state = reactive({
|
|
|
+ token: null as any,
|
|
|
+ data: {} as any
|
|
|
+});
|
|
|
+
|
|
|
+// 页面初始化
|
|
|
+const initializePage = () => {
|
|
|
+ state.data = JSON.parse(decodeURIComponent(route.query.code || '{}' as any));
|
|
|
+ state.token = route.query.token;
|
|
|
+};
|
|
|
+
|
|
|
+onMounted(() => {
|
|
|
+ initializePage();
|
|
|
+});
|
|
|
+
|
|
|
+// 点击事件
|
|
|
+const handleClick = (success: boolean) => {
|
|
|
+ if (success) location.href = 'tel:' + state.data.number;
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+/* 样式保持不变 */
|
|
|
+.page-container {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ justify-content: flex-start; /* 使用flex-start而不是center以控制垂直对齐 */
|
|
|
+ align-items: center; /* 水平居中 */
|
|
|
+ height: 100vh;
|
|
|
+ padding-top: calc(100vh * (1 - 1/1.618)); /* 使用黄金分割比例计算顶部内边距 */
|
|
|
+}
|
|
|
+
|
|
|
+.name-number {
|
|
|
+ text-align: center;
|
|
|
+ margin-bottom: 20px; /* 添加与头像之间的间距 */
|
|
|
+ .name {
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: 24px; /* 增大字体大小 */
|
|
|
+ }
|
|
|
+
|
|
|
+ .spacing {
|
|
|
+ display: block;
|
|
|
+ height: 10px; /* 设置间距的高度 */
|
|
|
+ }
|
|
|
+
|
|
|
+ .number {
|
|
|
+ font-size: 20px; /* 增大字体大小 */
|
|
|
+ color: #a09e9e; /* 更改号码颜色为指定的浅灰色 */
|
|
|
+ font-weight: 600; /* 加粗字体 */
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.avatars {
|
|
|
+ display: flex;
|
|
|
+ justify-content: center; /* 使子元素(绿色头像)水平居中 */
|
|
|
+ gap: 40px; /* 增加头像之间的间距 */
|
|
|
+ .avatar-wrap {
|
|
|
+ cursor: pointer;
|
|
|
+ transition: background-color 0.2s, transform 0.2s;
|
|
|
+ }
|
|
|
+
|
|
|
+ .avatar-wrap:hover .icon {
|
|
|
+ filter: brightness(90%); /* 鼠标悬停时稍微变暗 */
|
|
|
+ }
|
|
|
+
|
|
|
+ .avatar-wrap:active .icon {
|
|
|
+ filter: brightness(80%); /* 点击时更明显地变暗 */
|
|
|
+ transform: scale(0.94); /* 点击时轻微缩小 */
|
|
|
+ }
|
|
|
+
|
|
|
+ .icon {
|
|
|
+ color: white;
|
|
|
+ transition: filter 0.2s, transform 0.2s;
|
|
|
+ }
|
|
|
+
|
|
|
+ .iconfont {
|
|
|
+ font-size: 70px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .green-icon {
|
|
|
+ background-color: lawngreen;
|
|
|
+ }
|
|
|
+
|
|
|
+ .red-icon {
|
|
|
+ background-color: red;
|
|
|
+ }
|
|
|
+
|
|
|
+ .green-icon-wrap .icon {
|
|
|
+ background-color: lawngreen;
|
|
|
+ }
|
|
|
+
|
|
|
+ .red-icon-wrap .icon {
|
|
|
+ background-color: red;
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|