|
|
@@ -0,0 +1,157 @@
|
|
|
+<script setup lang="ts">
|
|
|
+import { ref } from 'vue'
|
|
|
+import normalPng from '../image/score_normal.png'
|
|
|
+
|
|
|
+const clickSrc = ref(normalPng)
|
|
|
+const visible = ref(false)
|
|
|
+const AIRobotHoverVisible = ref(false)
|
|
|
+const AIRobotClickVisible = ref(false)
|
|
|
+const clicked = ref(false)
|
|
|
+// 鼠标hover AIRobot图标
|
|
|
+const AvatarMouseEnter = () => {
|
|
|
+ if (!clicked.value) {
|
|
|
+ AIRobotHoverVisible.value = true
|
|
|
+ visible.value = true
|
|
|
+ }
|
|
|
+}
|
|
|
+// 鼠标move AIRobot图标
|
|
|
+const AvatarMouseLeave = () => {
|
|
|
+ if (!clicked.value) {
|
|
|
+ visible.value = false
|
|
|
+ AIRobotHoverVisible.value = false
|
|
|
+ }
|
|
|
+}
|
|
|
+// 点击AIRobot图标
|
|
|
+const AvatarClick = () => {
|
|
|
+ AIRobotHoverVisible.value = false
|
|
|
+ if(AIRobotClickVisible.value == true && visible.value) {
|
|
|
+ AIRobotClickVisible.value = false
|
|
|
+ visible.value = false
|
|
|
+ clicked.value = false
|
|
|
+ } else {
|
|
|
+ visible.value = true
|
|
|
+ AIRobotClickVisible.value = true
|
|
|
+ clicked.value = true
|
|
|
+ }
|
|
|
+}
|
|
|
+const handlePopoverHide = () => {
|
|
|
+ clicked.value = false
|
|
|
+ AIRobotHoverVisible.value = false
|
|
|
+ AIRobotClickVisible.value = false
|
|
|
+}
|
|
|
+</script>
|
|
|
+<template>
|
|
|
+ <!-- 上方显示的弹窗 -->
|
|
|
+ <div class="AIRobot-top">
|
|
|
+ <div class="flex_end">
|
|
|
+ <div class="icon flex_center">
|
|
|
+ <span class="iconfont_icon icon_dark">
|
|
|
+ <svg class="iconfont" aria-hidden="true">
|
|
|
+ <use xlink:href="#icon-icon_reject_b"></use>
|
|
|
+ </svg>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="dialogue_title">
|
|
|
+ Hi! I'm your Freight Assistant, always on call
|
|
|
+ </div>
|
|
|
+ <div class="dialogue_content">
|
|
|
+ <div class="dialogue_content_title">
|
|
|
+ <div class="dialogue_title_left">
|
|
|
+ Frequently Asked Questions
|
|
|
+ </div>
|
|
|
+ <div class="dialogue_title_right">
|
|
|
+ Refresh Questions
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- 悬浮icon -->
|
|
|
+ <div class="AIRobot flex_center">
|
|
|
+ <el-popover
|
|
|
+ :visible="visible"
|
|
|
+ placement="top-end"
|
|
|
+ width="auto"
|
|
|
+ @hide="handlePopoverHide"
|
|
|
+ >
|
|
|
+ <template #reference>
|
|
|
+ <el-avatar @click="AvatarClick" @mouseenter="AvatarMouseEnter" @mouseleave="AvatarMouseLeave" :size="46" shape="square" :src="clickSrc" />
|
|
|
+ </template>
|
|
|
+ <!-- hover时显示的对话框 -->
|
|
|
+ <div v-if="AIRobotHoverVisible" class="AIRobot_dialog">Continue the conversation</div>
|
|
|
+ <!-- click时显示的对话框 -->
|
|
|
+ <div v-if="AIRobotClickVisible" class="AIRobot_dialog">Continue the conversation 156468482</div>
|
|
|
+ </el-popover>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<style lang="scss">
|
|
|
+.iconfont_icon {
|
|
|
+ margin-right: 0;
|
|
|
+}
|
|
|
+.flex_center {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+}
|
|
|
+.flex_end {
|
|
|
+ display: flex;
|
|
|
+ justify-content: end;
|
|
|
+}
|
|
|
+.AIRobot-top {
|
|
|
+ position: absolute;
|
|
|
+ z-index: 2013;
|
|
|
+ right: 20px;
|
|
|
+ bottom: 250px;
|
|
|
+}
|
|
|
+.dialogue_content_title {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+}
|
|
|
+.dialogue_title_left {
|
|
|
+ margin-right: 80px;
|
|
|
+ background: linear-gradient(90deg, #A71549 1.77%, #06256E 46.77%);
|
|
|
+ -webkit-background-clip: text;
|
|
|
+ background-clip: text;
|
|
|
+ color: transparent;
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: 700;
|
|
|
+}
|
|
|
+.icon {
|
|
|
+ width: 24px;
|
|
|
+ height: 24px;
|
|
|
+ background-color: var(--management-bg-color);
|
|
|
+ box-shadow: -2px 2px 12px rgba(0, 0, 0, 15%);
|
|
|
+ border-radius: 6px;
|
|
|
+}
|
|
|
+.AIRobot {
|
|
|
+ width: 64px;
|
|
|
+ height: 64px;
|
|
|
+ border-radius: 12px;
|
|
|
+ background: radial-gradient(50% 43% at 50% 54.79%, #D5B4F3 0%, #FFF9FC 100%);
|
|
|
+ position: absolute;
|
|
|
+ box-shadow: -2px 2px 12px rgba(0, 0, 0, 15%);
|
|
|
+ z-index: 2013;
|
|
|
+ right: 20px;
|
|
|
+ bottom: 164px;
|
|
|
+}
|
|
|
+.AIRobot_dialog {
|
|
|
+ background: linear-gradient(92deg, #EAECFF 1.33%, #F1E3FB 99.63%);
|
|
|
+ box-shadow: -10px 10px 24px 0px rgba(58, 0, 78, 0.15);
|
|
|
+ padding: 5px 8px;
|
|
|
+ border-radius: 3px;
|
|
|
+}
|
|
|
+.dialogue_title {
|
|
|
+ background: linear-gradient(92deg, #EAECFF 1.33%, #F1E3FB 99.63%);
|
|
|
+ padding: 8px;
|
|
|
+ border-radius: 12px;
|
|
|
+ margin: 10px 0;
|
|
|
+ width: 294px;
|
|
|
+}
|
|
|
+.dialogue_content {
|
|
|
+ background: linear-gradient(92deg, #EAECFF 1.33%, #F1E3FB 99.63%);
|
|
|
+ padding: 8px;
|
|
|
+ border-radius: 12px;
|
|
|
+}
|
|
|
+</style>
|