Compare commits
2 Commits
78c25f3050
...
afb124ee19
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
afb124ee19 | ||
| e9dbb3d44f |
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="chat-mine bg-17294E">
|
<view class="chat-mine bg-17294E">
|
||||||
<text>{{ text }}</text>
|
<text class="font-size-15 color-white">{{ text }}</text>
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -5,15 +5,7 @@
|
|||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
min-width: 100px;
|
||||||
max-width: 100%; // ✅ 限制最大宽度
|
max-width: 100%; // ✅ 限制最大宽度
|
||||||
overflow-x: hidden; // ✅ 防止横向撑开
|
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">
|
<template v-if="item.msgType === MessageRole.AI">
|
||||||
<ChatCardAI
|
<ChatCardAI
|
||||||
class="message-item-ai"
|
class="flex flex-justify-start"
|
||||||
:key="`ai-${item.msgId}-${item.msg ? item.msg.length : 0}`"
|
:key="`ai-${item.msgId}-${item.msg ? item.msg.length : 0}`"
|
||||||
:text="item.msg || ''"
|
:text="item.msg || ''"
|
||||||
:isLoading="item.isLoading"
|
:isLoading="item.isLoading"
|
||||||
@@ -77,11 +77,11 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template v-else-if="item.msgType === MessageRole.ME">
|
<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>
|
||||||
|
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<ChatCardOther class="message-item-other" :text="item.msg">
|
<ChatCardOther class="flex flex-justify-center" :text="item.msg">
|
||||||
<ActivityListComponent
|
<ActivityListComponent
|
||||||
v-if="
|
v-if="
|
||||||
mainPageDataModel.activityList &&
|
mainPageDataModel.activityList &&
|
||||||
|
|||||||
@@ -19,36 +19,41 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { onMounted, ref } from "vue";
|
import { ref } from "vue";
|
||||||
import { currentClientType, ClientType } from "@/constant/base";
|
import { currentClientType, ClientType } from "@/constant/base";
|
||||||
|
|
||||||
const itemList = ref([
|
const itemList = ref([
|
||||||
{
|
{
|
||||||
icon: "",
|
icon: "",
|
||||||
title: "快速预定",
|
title: "快速预定",
|
||||||
type: "Command.quickBooking",
|
type: "quickBooking",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
icon: "",
|
icon: "",
|
||||||
title: "探索发现",
|
title: "探索发现",
|
||||||
type: "Command.discovery",
|
type: "discovery",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
icon: "",
|
icon: "",
|
||||||
title: "呼叫服务",
|
title: "呼叫服务",
|
||||||
type: "Command.callService",
|
type: "callService",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
icon: "https://oss.nianxx.cn/mp/static/version_101/home/more.png",
|
icon: "https://oss.nianxx.cn/mp/static/version_101/home/more.png",
|
||||||
title: "更多",
|
title: "更多",
|
||||||
type: "Command.more",
|
type: "more",
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const emits = defineEmits(["replySent"]);
|
const emits = defineEmits(["replySent"]);
|
||||||
|
|
||||||
const sendReply = (item) => {
|
const sendReply = (item) => {
|
||||||
emits("replySent", item); // 向父组件传递数据
|
if (item.type === "more") {
|
||||||
|
uni.$emit("SHOW_MORE_POPUP");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
emits("replySent", item);
|
||||||
};
|
};
|
||||||
|
|
||||||
// onMounted(() => {
|
// 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"
|
@close="handleCalendarClose"
|
||||||
@select="handleDateSelect"
|
@select="handleDateSelect"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<!-- 更多服务 -->
|
||||||
|
<MoreService />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
@@ -20,6 +23,7 @@ import { getUrlParams } from "@/utils/UrlParams";
|
|||||||
import { useAppStore } from "@/store";
|
import { useAppStore } from "@/store";
|
||||||
import ChatMainList from "./components/chat/ChatMainList/index.vue";
|
import ChatMainList from "./components/chat/ChatMainList/index.vue";
|
||||||
import Calender from "@/components/Calender/index.vue";
|
import Calender from "@/components/Calender/index.vue";
|
||||||
|
import MoreService from "./components/module/MoreService/index.vue";
|
||||||
|
|
||||||
const appStore = useAppStore();
|
const appStore = useAppStore();
|
||||||
|
|
||||||
|
|||||||
@@ -2,3 +2,7 @@
|
|||||||
.border {
|
.border {
|
||||||
border: 1px solid #000;
|
border: 1px solid #000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.border-bottom {
|
||||||
|
border-bottom: 1px solid #e5e8ee;
|
||||||
|
}
|
||||||
|
|||||||
@@ -4,22 +4,26 @@
|
|||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.color-00 {
|
.color-000 {
|
||||||
color: #000;
|
color: #000;
|
||||||
}
|
}
|
||||||
|
|
||||||
.color-33 {
|
.color-333 {
|
||||||
color: #333;
|
color: #333;
|
||||||
}
|
}
|
||||||
|
|
||||||
.color-66 {
|
.color-666 {
|
||||||
color: #666;
|
color: #666;
|
||||||
}
|
}
|
||||||
|
|
||||||
.color-99 {
|
.color-999 {
|
||||||
color: #999;
|
color: #999;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.color-A3A3A3 {
|
||||||
|
color: #a3a3a3;
|
||||||
|
}
|
||||||
|
|
||||||
.color-525866 {
|
.color-525866 {
|
||||||
color: #525866;
|
color: #525866;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,14 @@
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.flex-justify-start {
|
||||||
|
justify-content: flex-start;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex-justify-end {
|
||||||
|
justify-content: flex-end;
|
||||||
|
}
|
||||||
|
|
||||||
.flex-justify-center {
|
.flex-justify-center {
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,8 @@
|
|||||||
// 行高
|
// 行高
|
||||||
|
.line-height-16 {
|
||||||
|
line-height: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
.line-height-17 {
|
.line-height-17 {
|
||||||
line-height: 17px;
|
line-height: 17px;
|
||||||
}
|
}
|
||||||
@@ -18,3 +22,7 @@
|
|||||||
.line-height-22 {
|
.line-height-22 {
|
||||||
line-height: 22px;
|
line-height: 22px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.line-height-24 {
|
||||||
|
line-height: 24px;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user