Compare commits
2 Commits
78c25f3050
...
afb124ee19
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
afb124ee19 | ||
| e9dbb3d44f |
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<view class="chat-mine bg-17294E">
|
||||
<text>{{ text }}</text>
|
||||
<text class="font-size-15 color-white">{{ text }}</text>
|
||||
<slot></slot>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -5,15 +5,7 @@
|
||||
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-width: 100px;
|
||||
max-width: 100%; // ✅ 限制最大宽度
|
||||
overflow-x: hidden; // ✅ 防止横向撑开
|
||||
|
||||
text {
|
||||
font-size: 15px;
|
||||
color: #ffffff;
|
||||
line-height: 22px;
|
||||
text-align: justify;
|
||||
font-style: normal;
|
||||
text-transform: none;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
>
|
||||
<template v-if="item.msgType === MessageRole.AI">
|
||||
<ChatCardAI
|
||||
class="message-item-ai"
|
||||
class="flex flex-justify-start"
|
||||
:key="`ai-${item.msgId}-${item.msg ? item.msg.length : 0}`"
|
||||
:text="item.msg || ''"
|
||||
:isLoading="item.isLoading"
|
||||
@@ -77,11 +77,11 @@
|
||||
</template>
|
||||
|
||||
<template v-else-if="item.msgType === MessageRole.ME">
|
||||
<ChatCardMine class="message-item-mine" :text="item.msg" />
|
||||
<ChatCardMine class="flex flex-justify-end" :text="item.msg" />
|
||||
</template>
|
||||
|
||||
<template v-else>
|
||||
<ChatCardOther class="message-item-other" :text="item.msg">
|
||||
<ChatCardOther class="flex flex-justify-center" :text="item.msg">
|
||||
<ActivityListComponent
|
||||
v-if="
|
||||
mainPageDataModel.activityList &&
|
||||
|
||||
@@ -19,36 +19,41 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { onMounted, ref } from "vue";
|
||||
import { ref } from "vue";
|
||||
import { currentClientType, ClientType } from "@/constant/base";
|
||||
|
||||
const itemList = ref([
|
||||
{
|
||||
icon: "",
|
||||
title: "快速预定",
|
||||
type: "Command.quickBooking",
|
||||
type: "quickBooking",
|
||||
},
|
||||
{
|
||||
icon: "",
|
||||
title: "探索发现",
|
||||
type: "Command.discovery",
|
||||
type: "discovery",
|
||||
},
|
||||
{
|
||||
icon: "",
|
||||
title: "呼叫服务",
|
||||
type: "Command.callService",
|
||||
type: "callService",
|
||||
},
|
||||
{
|
||||
icon: "https://oss.nianxx.cn/mp/static/version_101/home/more.png",
|
||||
title: "更多",
|
||||
type: "Command.more",
|
||||
type: "more",
|
||||
},
|
||||
]);
|
||||
|
||||
const emits = defineEmits(["replySent"]);
|
||||
|
||||
const sendReply = (item) => {
|
||||
emits("replySent", item); // 向父组件传递数据
|
||||
if (item.type === "more") {
|
||||
uni.$emit("SHOW_MORE_POPUP");
|
||||
return;
|
||||
}
|
||||
|
||||
emits("replySent", item);
|
||||
};
|
||||
|
||||
// onMounted(() => {
|
||||
|
||||
99
src/pages/index/components/module/MoreService/index.vue
Normal file
99
src/pages/index/components/module/MoreService/index.vue
Normal file
@@ -0,0 +1,99 @@
|
||||
<template>
|
||||
<uni-popup ref="popup" type="bottom" :safe-area="false">
|
||||
<view class="popup-content border-box pt-12 pl-12 pr-12">
|
||||
<view class="header flex flex-items-center pb-12">
|
||||
<view class="title flex-full font-size-17 color-000 font-500"
|
||||
>更多服务</view
|
||||
>
|
||||
<uni-icons type="close" size="20" color="#CACFD8" @click="close" />
|
||||
</view>
|
||||
|
||||
<view class="list bg-white border-box pl-20 pr-20">
|
||||
<view
|
||||
class="item border-box border-bottom pt-20 pb-20"
|
||||
v-for="(item, index) in list"
|
||||
:key="index"
|
||||
@click="close"
|
||||
>
|
||||
<view class="flex flex-items-center flex-justify-center">
|
||||
<image v-if="item.icon" class="left" :src="item.icon" />
|
||||
<view class="center flex-full">
|
||||
<view class="font-size-16 color-000 line-height-24 font-500">
|
||||
{{ item.title }}
|
||||
</view>
|
||||
<view class="font-size-12 color-A3A3A3 line-height-16">
|
||||
{{ item.content }}
|
||||
</view>
|
||||
</view>
|
||||
<view
|
||||
class="right border-box font-size-12 color-white line-height-16"
|
||||
>
|
||||
{{ item.btnText }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from "vue";
|
||||
|
||||
const popup = ref(null);
|
||||
|
||||
const list = ref([
|
||||
{
|
||||
icon: "https://oss.nianxx.cn/mp/static/version_101/home/ksyd.png",
|
||||
title: "快速预定",
|
||||
content: "预定门票、房间、餐食",
|
||||
btnText: "去预定",
|
||||
type: "quickBooking",
|
||||
},
|
||||
{
|
||||
icon: "https://oss.nianxx.cn/mp/static/version_101/home/tsfx.png",
|
||||
title: "探索发现",
|
||||
content: "发现景点、活动、特色内容",
|
||||
btnText: "去探索",
|
||||
type: "discovery",
|
||||
},
|
||||
{
|
||||
icon: "https://oss.nianxx.cn/mp/static/version_101/home/mddd.png",
|
||||
title: "我的订单",
|
||||
content: "查看门票、住宿、餐饮等订单",
|
||||
btnText: "去查看",
|
||||
type: "myOrder",
|
||||
},
|
||||
{
|
||||
icon: "https://oss.nianxx.cn/mp/static/version_101/home/wdgd.png",
|
||||
title: "我的工单",
|
||||
content: "查看服务工单、进度与处理情况",
|
||||
btnText: "去查看",
|
||||
type: "myWorkOrder",
|
||||
},
|
||||
{
|
||||
icon: "https://oss.nianxx.cn/mp/static/version_101/home/fkyj.png",
|
||||
title: "反馈意见",
|
||||
content: "提交使用问题、建议与需求",
|
||||
btnText: "去反馈",
|
||||
type: "feedback",
|
||||
},
|
||||
]);
|
||||
|
||||
const open = () => {
|
||||
popup.value && popup.value.open();
|
||||
};
|
||||
|
||||
const close = () => {
|
||||
popup.value && popup.value.close();
|
||||
};
|
||||
|
||||
// 接收更多服务
|
||||
uni.$on("SHOW_MORE_POPUP", () => {
|
||||
open();
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "./styles/index.scss";
|
||||
</style>
|
||||
@@ -0,0 +1,29 @@
|
||||
.popup-content {
|
||||
background-color: #f5f7fa;
|
||||
border-radius: 15px 15px 0 0;
|
||||
padding-bottom: Max(env(safe-area-inset-bottom), 12px) !important;
|
||||
}
|
||||
|
||||
.list {
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
.item {
|
||||
gap: 20px;
|
||||
|
||||
&:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
}
|
||||
|
||||
.left {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
margin-right: 12px;
|
||||
}
|
||||
|
||||
.right {
|
||||
background-color: #2d91ff;
|
||||
border-radius: 5px;
|
||||
padding: 6px;
|
||||
}
|
||||
@@ -11,6 +11,9 @@
|
||||
@close="handleCalendarClose"
|
||||
@select="handleDateSelect"
|
||||
/>
|
||||
|
||||
<!-- 更多服务 -->
|
||||
<MoreService />
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
@@ -20,6 +23,7 @@ import { getUrlParams } from "@/utils/UrlParams";
|
||||
import { useAppStore } from "@/store";
|
||||
import ChatMainList from "./components/chat/ChatMainList/index.vue";
|
||||
import Calender from "@/components/Calender/index.vue";
|
||||
import MoreService from "./components/module/MoreService/index.vue";
|
||||
|
||||
const appStore = useAppStore();
|
||||
|
||||
|
||||
@@ -2,3 +2,7 @@
|
||||
.border {
|
||||
border: 1px solid #000;
|
||||
}
|
||||
|
||||
.border-bottom {
|
||||
border-bottom: 1px solid #e5e8ee;
|
||||
}
|
||||
|
||||
@@ -4,22 +4,26 @@
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.color-00 {
|
||||
.color-000 {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.color-33 {
|
||||
.color-333 {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.color-66 {
|
||||
.color-666 {
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.color-99 {
|
||||
.color-999 {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.color-A3A3A3 {
|
||||
color: #a3a3a3;
|
||||
}
|
||||
|
||||
.color-525866 {
|
||||
color: #525866;
|
||||
}
|
||||
|
||||
@@ -7,6 +7,14 @@
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.flex-justify-start {
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
.flex-justify-end {
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.flex-justify-center {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
// 行高
|
||||
.line-height-16 {
|
||||
line-height: 16px;
|
||||
}
|
||||
|
||||
.line-height-17 {
|
||||
line-height: 17px;
|
||||
}
|
||||
@@ -18,3 +22,7 @@
|
||||
.line-height-22 {
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
.line-height-24 {
|
||||
line-height: 24px;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user