feat: 调整首页组件目录结构
This commit is contained in:
@@ -36,7 +36,6 @@ export const CLIENT_CONFIGS = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 获取当前用户端配置
|
// 获取当前用户端配置
|
||||||
export const getCurrentConfig = () => CLIENT_CONFIGS.tianmu;
|
export const getCurrentConfig = () => CLIENT_CONFIGS.duohua;
|
||||||
|
|
||||||
export const clientId = getCurrentConfig().clientId;
|
export const clientId = getCurrentConfig().clientId;
|
||||||
export const appId = getCurrentConfig().appId;
|
export const appId = getCurrentConfig().appId;
|
||||||
|
|||||||
25
pages.json
25
pages.json
@@ -12,23 +12,6 @@
|
|||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"path": "pages/chat/ChatMainList",
|
|
||||||
"style": {
|
|
||||||
"navigationStyle": "custom",
|
|
||||||
"app-plus": {
|
|
||||||
"softinputMode": "adjustPan",
|
|
||||||
"bounce": "none",
|
|
||||||
"titleNView": false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "pages/chat/ChatQuickAccess",
|
|
||||||
"style": {
|
|
||||||
"navigationBarTitleText": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"path": "pages/order/list",
|
"path": "pages/order/list",
|
||||||
"style": {
|
"style": {
|
||||||
@@ -46,14 +29,6 @@
|
|||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "pages/webview/index",
|
|
||||||
"style": {
|
|
||||||
"navigationStyle": "custom",
|
|
||||||
"navigationBarBackgroundColor": "#F8F8F8",
|
|
||||||
"navigationBarTitleColor": "#000000"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"globalStyle": {
|
"globalStyle": {
|
||||||
|
|||||||
@@ -19,8 +19,8 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { defineProps, computed, ref, watch } from "vue";
|
import { defineProps, computed, ref, watch } from "vue";
|
||||||
import ChatMarkdown from "./ChatMarkdown.vue";
|
import ChatMarkdown from "../ChatMarkdown/index.vue";
|
||||||
import DotLoading from "@/pages/loading/DotLoading.vue";
|
import DotLoading from "../../loading/DotLoading.vue";
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
text: {
|
text: {
|
||||||
@@ -66,38 +66,5 @@ watch(
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.container {
|
@import "./styles/index.scss";
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
max-width: 100%; // ✅ 限制最大宽度
|
|
||||||
overflow-x: hidden; // ✅ 防止横向撑开
|
|
||||||
|
|
||||||
.chat-ai {
|
|
||||||
margin: 6px 12px;
|
|
||||||
padding: 0 12px;
|
|
||||||
max-width: 100%; // ✅ 限制最大宽度
|
|
||||||
min-width: 100px;
|
|
||||||
background: rgba(255, 255, 255, 0.4);
|
|
||||||
box-shadow: 2px 2px 6px 0px rgba(0, 0, 0, 0.1);
|
|
||||||
border-radius: 4px 20px 20px 20px;
|
|
||||||
border: 1px solid;
|
|
||||||
border-color: #ffffff;
|
|
||||||
overflow: hidden; // ✅ 超出内容被切掉
|
|
||||||
word-wrap: break-word; // ✅ 长单词自动换行
|
|
||||||
word-break: break-all; // ✅ 强制换行
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.loading-container {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
padding: 4px 0;
|
|
||||||
max-width: 100%; // ✅ 限制最大宽度
|
|
||||||
}
|
|
||||||
|
|
||||||
.loading-img {
|
|
||||||
margin-right: 8px;
|
|
||||||
width: 30px;
|
|
||||||
height: 25px;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
34
pages/index/components/chat/ChatCardAi/styles/index.scss
Normal file
34
pages/index/components/chat/ChatCardAi/styles/index.scss
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
.container {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
max-width: 100%; // ✅ 限制最大宽度
|
||||||
|
overflow-x: hidden; // ✅ 防止横向撑开
|
||||||
|
|
||||||
|
.chat-ai {
|
||||||
|
margin: 6px 12px;
|
||||||
|
padding: 0 12px;
|
||||||
|
max-width: 100%; // ✅ 限制最大宽度
|
||||||
|
min-width: 100px;
|
||||||
|
background: rgba(255, 255, 255, 0.4);
|
||||||
|
box-shadow: 2px 2px 6px 0px rgba(0, 0, 0, 0.1);
|
||||||
|
border-radius: 4px 20px 20px 20px;
|
||||||
|
border: 1px solid;
|
||||||
|
border-color: #ffffff;
|
||||||
|
overflow: hidden; // ✅ 超出内容被切掉
|
||||||
|
word-wrap: break-word; // ✅ 长单词自动换行
|
||||||
|
word-break: break-all; // ✅ 强制换行
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.loading-container {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
padding: 4px 0;
|
||||||
|
max-width: 100%; // ✅ 限制最大宽度
|
||||||
|
}
|
||||||
|
|
||||||
|
.loading-img {
|
||||||
|
margin-right: 8px;
|
||||||
|
width: 30px;
|
||||||
|
height: 25px;
|
||||||
|
}
|
||||||
20
pages/index/components/chat/ChatCardMine/index.vue
Normal file
20
pages/index/components/chat/ChatCardMine/index.vue
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<template>
|
||||||
|
<view class="chat-mine">
|
||||||
|
<text>{{ text }}</text>
|
||||||
|
<slot></slot>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { defineProps } from "vue";
|
||||||
|
defineProps({
|
||||||
|
text: {
|
||||||
|
type: String,
|
||||||
|
default: "",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import "./styles/index.scss";
|
||||||
|
</style>
|
||||||
@@ -1,21 +1,3 @@
|
|||||||
<template>
|
|
||||||
<view class="chat-mine">
|
|
||||||
<text>{{ text }}</text>
|
|
||||||
<slot></slot>
|
|
||||||
</view>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
import { defineProps } from "vue";
|
|
||||||
defineProps({
|
|
||||||
text: {
|
|
||||||
type: String,
|
|
||||||
default: "",
|
|
||||||
},
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.chat-mine {
|
.chat-mine {
|
||||||
margin: 6px 12px;
|
margin: 6px 12px;
|
||||||
padding: 8px 16px;
|
padding: 8px 16px;
|
||||||
@@ -42,4 +24,3 @@ defineProps({
|
|||||||
text-transform: none;
|
text-transform: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
|
||||||
20
pages/index/components/chat/ChatCardOther/index.vue
Normal file
20
pages/index/components/chat/ChatCardOther/index.vue
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<template>
|
||||||
|
<view class="chat-other">
|
||||||
|
<text>{{ text }}</text>
|
||||||
|
<slot></slot>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { defineProps } from "vue";
|
||||||
|
defineProps({
|
||||||
|
text: {
|
||||||
|
type: String,
|
||||||
|
default: "",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import "./styles/index.scss";
|
||||||
|
</style>
|
||||||
@@ -1,21 +1,3 @@
|
|||||||
<template>
|
|
||||||
<view class="chat-other">
|
|
||||||
<text>{{ text }}</text>
|
|
||||||
<slot></slot>
|
|
||||||
</view>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
import { defineProps } from "vue";
|
|
||||||
defineProps({
|
|
||||||
text: {
|
|
||||||
type: String,
|
|
||||||
default: "",
|
|
||||||
},
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.chat-other {
|
.chat-other {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin: 6px 0;
|
margin: 6px 0;
|
||||||
@@ -32,4 +14,3 @@ defineProps({
|
|||||||
color: #333333;
|
color: #333333;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
|
||||||
@@ -231,5 +231,5 @@ defineExpose({ focusInput });
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@import "./styles/ChatInputArea.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
@@ -154,24 +154,24 @@ import {
|
|||||||
NOTICE_EVENT_LOGOUT,
|
NOTICE_EVENT_LOGOUT,
|
||||||
} from "@/constant/constant";
|
} from "@/constant/constant";
|
||||||
import { WSS_URL } from "@/request/base/baseUrl";
|
import { WSS_URL } from "@/request/base/baseUrl";
|
||||||
import { MessageRole, MessageType, CompName } from "../../model/ChatModel";
|
import { MessageRole, MessageType, CompName } from "@/model/ChatModel";
|
||||||
import ChatTopWelcome from "./ChatTopWelcome.vue";
|
import ChatTopWelcome from "../ChatTopWelcome/index.vue";
|
||||||
import ChatTopBgImg from "./ChatTopBgImg.vue";
|
import ChatTopBgImg from "../ChatTopBgImg/index.vue";
|
||||||
import ChatTopNavBar from "./ChatTopNavBar.vue";
|
import ChatTopNavBar from "../ChatTopNavBar/index.vue";
|
||||||
import ChatCardAI from "./ChatCardAI.vue";
|
import ChatCardAI from "../ChatCardAi/index.vue";
|
||||||
import ChatCardMine from "./ChatCardMine.vue";
|
import ChatCardMine from "../ChatCardMine/index.vue";
|
||||||
import ChatCardOther from "./ChatCardOther.vue";
|
import ChatCardOther from "../ChatCardOther/index.vue";
|
||||||
import ChatQuickAccess from "./ChatQuickAccess.vue";
|
import ChatQuickAccess from "../ChatQuickAccess/index.vue";
|
||||||
import ChatMoreTips from "./ChatMoreTips.vue";
|
import ChatMoreTips from "../ChatMoreTips/index.vue";
|
||||||
import ChatInputArea from "./ChatInputArea.vue";
|
import ChatInputArea from "../ChatInputArea/index.vue";
|
||||||
import QuickBookingComponent from "../module/booking/QuickBookingComponent.vue";
|
import QuickBookingComponent from "../../module/QuickBookingComponent/index.vue";
|
||||||
import DiscoveryCardComponent from "../module/discovery/DiscoveryCardComponent.vue";
|
import DiscoveryCardComponent from "../../module/DiscoveryCardComponent/index.vue";
|
||||||
import ActivityListComponent from "../module/banner/ActivityListComponent.vue";
|
import ActivityListComponent from "../../module/ActivityListComponent/index.vue";
|
||||||
import RecommendPostsComponent from "../module/recommend/RecommendPostsComponent.vue";
|
import RecommendPostsComponent from "../../module/RecommendPostsComponent/index.vue";
|
||||||
import AttachListComponent from "../module/attach/AttachListComponent.vue";
|
import AttachListComponent from "../../module/AttachListComponent/index.vue";
|
||||||
|
import DetailCardCompontent from "../../module/DetailCardCompontent/index.vue";
|
||||||
import CreateServiceOrder from "@/components/CreateServiceOrder/index.vue";
|
import CreateServiceOrder from "@/components/CreateServiceOrder/index.vue";
|
||||||
import Feedback from "@/components/Feedback/index.vue";
|
import Feedback from "@/components/Feedback/index.vue";
|
||||||
import DetailCardCompontent from "../module/detail/DetailCardCompontent.vue";
|
|
||||||
import AddCarCrad from "@/components/AddCarCrad/index.vue";
|
import AddCarCrad from "@/components/AddCarCrad/index.vue";
|
||||||
import { mainPageData } from "@/request/api/MainPageDataApi";
|
import { mainPageData } from "@/request/api/MainPageDataApi";
|
||||||
import {
|
import {
|
||||||
@@ -805,5 +805,5 @@ const resetConfig = () => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@import "styles/ChatMainList.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
@@ -39,5 +39,5 @@ const sendReply = (text) => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@import "./styles/ChatMoreTips.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
@@ -67,5 +67,5 @@ const initData = () => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@import "./styles/ChatQuickAccess.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
9
pages/index/components/chat/ChatTopBgImg/index.vue
Normal file
9
pages/index/components/chat/ChatTopBgImg/index.vue
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<template>
|
||||||
|
<view class="top-bg"> </view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script></script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import "./styles/index.scss";
|
||||||
|
</style>
|
||||||
@@ -1,18 +1,11 @@
|
|||||||
<template>
|
|
||||||
<view class="top-bg"> </view>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script></script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.top-bg {
|
.top-bg {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 270px;
|
height: 270px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
background: linear-gradient(180deg, #42adf9 0%, #6cd1ff 51%, #e9f3f7 99%);
|
background: linear-gradient(180deg, #42adf9 0%, #6cd1ff 51%, #e9f3f7 99%);
|
||||||
|
|
||||||
.top-bg-img {
|
.top-bg-img {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref } from "vue";
|
import { ref } from "vue";
|
||||||
import DrawerHome from "@/pages/drawer/DrawerHome.vue";
|
import DrawerHome from "../../drawer/DrawerHome/index.vue";
|
||||||
import { checkToken } from "@/hooks/useGoLogin";
|
import { checkToken } from "@/hooks/useGoLogin";
|
||||||
const showLeft = ref(false);
|
const showLeft = ref(false);
|
||||||
|
|
||||||
@@ -33,20 +33,5 @@ const closeDrawer = (e) => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.nav-bar {
|
@import "./styles/index.scss";
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
height: 44px;
|
|
||||||
padding: 0 15px;
|
|
||||||
|
|
||||||
.nav-item {
|
|
||||||
width: 24px;
|
|
||||||
height: 24px;
|
|
||||||
margin-right: 10px;
|
|
||||||
}
|
|
||||||
.nav-item-icon {
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
16
pages/index/components/chat/ChatTopNavBar/styles/index.scss
Normal file
16
pages/index/components/chat/ChatTopNavBar/styles/index.scss
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
.nav-bar {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
height: 44px;
|
||||||
|
padding: 0 15px;
|
||||||
|
|
||||||
|
.nav-item {
|
||||||
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
.nav-item-icon {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,15 +7,19 @@
|
|||||||
:src="initPageImages.welcomeImageUrl"
|
:src="initPageImages.welcomeImageUrl"
|
||||||
mode="aspectFit"
|
mode="aspectFit"
|
||||||
></image>
|
></image>
|
||||||
<image class="top-item-right" :src="initPageImages.logoImageUrl" mode="aspectFit"></image>
|
<image
|
||||||
|
class="top-item-right"
|
||||||
|
:src="initPageImages.logoImageUrl"
|
||||||
|
mode="aspectFit"
|
||||||
|
></image>
|
||||||
</view>
|
</view>
|
||||||
<ChatCardAI v-if="welcomeContent.length" :text="welcomeContent" />
|
<ChatCardAI v-if="welcomeContent.length" :text="welcomeContent" />
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { defineProps, computed, ref } from "vue";
|
import { defineProps, computed } from "vue";
|
||||||
import ChatCardAI from "./ChatCardAI.vue";
|
import ChatCardAI from "../ChatCardAi/index.vue";
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
initPageImages: {
|
initPageImages: {
|
||||||
@@ -45,29 +49,5 @@ const backgroundStyle = computed(() => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.top-bg-content {
|
@import "./styles/index.scss";
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
align-items: stretch;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
.top-item {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
justify-content: space-between;
|
|
||||||
align-items: center;
|
|
||||||
padding: 0 32px;
|
|
||||||
margin-bottom: -6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.top-item-left {
|
|
||||||
width: 118px;
|
|
||||||
height: 52px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.top-item-right {
|
|
||||||
width: 130px;
|
|
||||||
height: 130px;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
25
pages/index/components/chat/ChatTopWelcome/styles/index.scss
Normal file
25
pages/index/components/chat/ChatTopWelcome/styles/index.scss
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
.top-bg-content {
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
align-items: stretch;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-item {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
padding: 0 32px;
|
||||||
|
margin-bottom: -6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-item-left {
|
||||||
|
width: 118px;
|
||||||
|
height: 52px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-item-right {
|
||||||
|
width: 130px;
|
||||||
|
height: 130px;
|
||||||
|
}
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
color="#333333"
|
color="#333333"
|
||||||
class="close-icon"
|
class="close-icon"
|
||||||
@click="closeDrawer"
|
@click="closeDrawer"
|
||||||
></uni-icons>
|
/>
|
||||||
<text class="title">我的</text>
|
<text class="title">我的</text>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
@@ -16,12 +16,12 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import MineSetting from "./MineSetting.vue";
|
|
||||||
import { defineEmits, ref, onMounted, onUnmounted } from "vue";
|
import { defineEmits, ref, onMounted, onUnmounted } from "vue";
|
||||||
|
import MineSetting from "../MineSetting/index.vue";
|
||||||
|
|
||||||
const emits = defineEmits(["closeDrawer"]);
|
const emits = defineEmits(["closeDrawer"]);
|
||||||
|
|
||||||
const isDrawerVisible = ref(false);
|
const isDrawerVisible = ref(false);
|
||||||
|
|
||||||
const closeDrawer = () => {
|
const closeDrawer = () => {
|
||||||
console.log("关闭抽屉");
|
console.log("关闭抽屉");
|
||||||
isDrawerVisible.value = false;
|
isDrawerVisible.value = false;
|
||||||
@@ -50,29 +50,5 @@ onUnmounted(() => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.drawer-home {
|
@import "./styles/index.scss";
|
||||||
width: 100%;
|
|
||||||
height: 100vh;
|
|
||||||
background-color: #fff;
|
|
||||||
padding-top: 44px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.drawer-home-nav {
|
|
||||||
position: relative;
|
|
||||||
padding: 12px;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center; /* 文字水平居中 */
|
|
||||||
align-items: center; /* 垂直居中 */
|
|
||||||
|
|
||||||
.title {
|
|
||||||
font-size: 18px;
|
|
||||||
text-align: center;
|
|
||||||
color: #333333;
|
|
||||||
}
|
|
||||||
|
|
||||||
.close-icon {
|
|
||||||
position: absolute;
|
|
||||||
left: 12px; /* 距离左边12px */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
25
pages/index/components/drawer/DrawerHome/styles/index.scss
Normal file
25
pages/index/components/drawer/DrawerHome/styles/index.scss
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
.drawer-home {
|
||||||
|
width: 100%;
|
||||||
|
height: 100vh;
|
||||||
|
background-color: #fff;
|
||||||
|
padding-top: 44px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.drawer-home-nav {
|
||||||
|
position: relative;
|
||||||
|
padding: 12px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center; /* 文字水平居中 */
|
||||||
|
align-items: center; /* 垂直居中 */
|
||||||
|
|
||||||
|
.title {
|
||||||
|
font-size: 18px;
|
||||||
|
text-align: center;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close-icon {
|
||||||
|
position: absolute;
|
||||||
|
left: 12px; /* 距离左边12px */
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -115,69 +115,5 @@ const handleLogout = () => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.page {
|
@import './styles/index.scss'
|
||||||
padding: 24rpx;
|
|
||||||
background-color: #f6f6f6;
|
|
||||||
min-height: 100vh;
|
|
||||||
}
|
|
||||||
|
|
||||||
.user-card,
|
|
||||||
.menu-card {
|
|
||||||
background-color: #fff;
|
|
||||||
border-radius: 12rpx;
|
|
||||||
padding-left: 24rpx;
|
|
||||||
margin-bottom: 20rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.row {
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
align-items: center;
|
|
||||||
padding: 28rpx 24rpx 28rpx 0;
|
|
||||||
border-bottom: 1px solid #f0f0f0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.row:last-child {
|
|
||||||
border-bottom: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.avatar-row .avatar {
|
|
||||||
width: 80rpx;
|
|
||||||
height: 80rpx;
|
|
||||||
border-radius: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.label {
|
|
||||||
font-size: 28rpx;
|
|
||||||
color: #333;
|
|
||||||
}
|
|
||||||
|
|
||||||
.value {
|
|
||||||
font-size: 28rpx;
|
|
||||||
color: #666;
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu-item {
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
align-items: center;
|
|
||||||
padding: 28rpx 24rpx 28rpx 0;
|
|
||||||
border-bottom: 1px solid #f0f0f0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.menu-item:last-child {
|
|
||||||
border-bottom: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.logout-btn {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
height: 42px;
|
|
||||||
margin-top: 40px;
|
|
||||||
background-color: #fff;
|
|
||||||
color: #333;
|
|
||||||
border-radius: 8rpx;
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
65
pages/index/components/drawer/MineSetting/styles/index.scss
Normal file
65
pages/index/components/drawer/MineSetting/styles/index.scss
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
.page {
|
||||||
|
padding: 24rpx;
|
||||||
|
background-color: #f6f6f6;
|
||||||
|
min-height: 100vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
.user-card,
|
||||||
|
.menu-card {
|
||||||
|
background-color: #fff;
|
||||||
|
border-radius: 12rpx;
|
||||||
|
padding-left: 24rpx;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
padding: 28rpx 24rpx 28rpx 0;
|
||||||
|
border-bottom: 1px solid #f0f0f0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row:last-child {
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.avatar-row .avatar {
|
||||||
|
width: 80rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.label {
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.value {
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu-item {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
padding: 28rpx 24rpx 28rpx 0;
|
||||||
|
border-bottom: 1px solid #f0f0f0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu-item:last-child {
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logout-btn {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
height: 42px;
|
||||||
|
margin-top: 40px;
|
||||||
|
background-color: #fff;
|
||||||
|
color: #333;
|
||||||
|
border-radius: 8rpx;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
@@ -41,42 +41,5 @@ const handleClick = (item) => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.container {
|
@import "./styles/index.scss";
|
||||||
margin-bottom: 6px;
|
|
||||||
|
|
||||||
.uni-margin-wrap {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
.swiper {
|
|
||||||
height: 120px;
|
|
||||||
border-radius: 8px;
|
|
||||||
}
|
|
||||||
.swiper-item {
|
|
||||||
position: relative;
|
|
||||||
display: block;
|
|
||||||
height: 120px;
|
|
||||||
line-height: 120px;
|
|
||||||
text-align: center;
|
|
||||||
|
|
||||||
image {
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
border-radius: 8px;
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.corner-btn {
|
|
||||||
position: absolute;
|
|
||||||
right: 12px;
|
|
||||||
bottom: 12px;
|
|
||||||
background-color: #ffeb00;
|
|
||||||
color: #333;
|
|
||||||
font-size: 14px;
|
|
||||||
font-weight: 500;
|
|
||||||
padding: 4px 12px;
|
|
||||||
border-radius: 20px;
|
|
||||||
line-height: 1.5;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
.container {
|
||||||
|
margin-bottom: 6px;
|
||||||
|
|
||||||
|
.uni-margin-wrap {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.swiper {
|
||||||
|
height: 120px;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
.swiper-item {
|
||||||
|
position: relative;
|
||||||
|
display: block;
|
||||||
|
height: 120px;
|
||||||
|
line-height: 120px;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
image {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
border-radius: 8px;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.corner-btn {
|
||||||
|
position: absolute;
|
||||||
|
right: 12px;
|
||||||
|
bottom: 12px;
|
||||||
|
background-color: #ffeb00;
|
||||||
|
color: #333;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 500;
|
||||||
|
padding: 4px 12px;
|
||||||
|
border-radius: 20px;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -15,6 +15,7 @@
|
|||||||
import { ref, nextTick, defineEmits } from "vue";
|
import { ref, nextTick, defineEmits } from "vue";
|
||||||
import { onMounted } from "vue";
|
import { onMounted } from "vue";
|
||||||
import { SCROLL_TO_BOTTOM } from "@/constant/constant";
|
import { SCROLL_TO_BOTTOM } from "@/constant/constant";
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
question: {
|
question: {
|
||||||
type: String,
|
type: String,
|
||||||
@@ -40,25 +41,5 @@ onMounted(() => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.tag-list {
|
@import "./styles/index.scss";
|
||||||
display: flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
padding: 6px 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tag-item {
|
|
||||||
background-color: #ffffff;
|
|
||||||
border-radius: 8px;
|
|
||||||
padding: 4px 10px;
|
|
||||||
margin-right: 8px;
|
|
||||||
margin-bottom: 8px;
|
|
||||||
display: inline-flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tag-text {
|
|
||||||
color: #00a6ff; /* 蓝色文字,可根据设计调整 */
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
.tag-list {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
padding: 6px 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tag-item {
|
||||||
|
background-color: #ffffff;
|
||||||
|
border-radius: 8px;
|
||||||
|
padding: 4px 10px;
|
||||||
|
margin-right: 8px;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tag-text {
|
||||||
|
color: #00a6ff; /* 蓝色文字,可根据设计调整 */
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
import { defineProps } from "vue";
|
import { defineProps } from "vue";
|
||||||
import ModuleTitle from "@/components/ModuleTitle/index.vue";
|
import ModuleTitle from "@/components/ModuleTitle/index.vue";
|
||||||
import ImageSwiper from "@/components/ImageSwiper/index.vue";
|
import ImageSwiper from "@/components/ImageSwiper/index.vue";
|
||||||
import DetailCardGoodsContentList from "./DetailCardGoodsContentList.vue";
|
import DetailCardGoodsContentList from "../DetailCardGoodsContentList/index.vue";
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
toolCall: {
|
toolCall: {
|
||||||
@@ -26,5 +26,5 @@ const props = defineProps({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@import "./styles/DetailCardCompontent.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
@@ -69,5 +69,5 @@ const placeOrderHandle = (item) => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@import "./styles/DetailCardGoodsContentList.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
@@ -7,11 +7,10 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, nextTick } from "vue";
|
import { ref, onMounted, nextTick } from "vue";
|
||||||
import { onMounted } from "vue";
|
|
||||||
import { discoveryCradComponent } from "@/request/api/MainPageDataApi";
|
|
||||||
import RecommendPostsList from "../recommend/RecommendPostsList.vue";
|
|
||||||
import { SCROLL_TO_BOTTOM } from "@/constant/constant";
|
import { SCROLL_TO_BOTTOM } from "@/constant/constant";
|
||||||
|
import { discoveryCradComponent } from "@/request/api/MainPageDataApi";
|
||||||
|
import RecommendPostsList from "../RecommendPostsList/index.vue";
|
||||||
|
|
||||||
const themeDTOList = ref([]);
|
const themeDTOList = ref([]);
|
||||||
|
|
||||||
@@ -34,5 +33,5 @@ onMounted(() => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@import "./styles/DiscoveryCardComponent.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
@@ -38,5 +38,5 @@ const sendReply = (item) => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@import "./styles/DiscoveryCradContentList.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
@@ -71,5 +71,5 @@ onMounted(() => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@import "./styles/QuickBookingCalender.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
@@ -11,8 +11,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import QuickBookingCalender from "./QuickBookingCalender.vue";
|
import QuickBookingCalender from "../QuickBookingCalender/index.vue";
|
||||||
import QuickBookingContentList from "./QuickBookingContentList.vue";
|
import QuickBookingContentList from "../QuickBookingContentList/index.vue";
|
||||||
import { ref, nextTick } from "vue";
|
import { ref, nextTick } from "vue";
|
||||||
import { onMounted } from "vue";
|
import { onMounted } from "vue";
|
||||||
import { quickBookingComponent } from "@/request/api/MainPageDataApi";
|
import { quickBookingComponent } from "@/request/api/MainPageDataApi";
|
||||||
@@ -62,5 +62,5 @@ onMounted(() => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@import './styles/QuickBookingComponent.scss'
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
@@ -45,9 +45,9 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import ModuleTitle from "@/components/ModuleTitle/index.vue";
|
|
||||||
import { defineProps } from "vue";
|
import { defineProps } from "vue";
|
||||||
import { checkToken } from "@/hooks/useGoLogin";
|
import { checkToken } from "@/hooks/useGoLogin";
|
||||||
|
import ModuleTitle from "@/components/ModuleTitle/index.vue";
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
commodityDTO: {
|
commodityDTO: {
|
||||||
@@ -67,5 +67,5 @@ const placeOrderHandle = (item) => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@import "./styles/QuickBookingContentList.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import RecommendPostsList from "./RecommendPostsList.vue";
|
import RecommendPostsList from "../RecommendPostsList/index.vue";
|
||||||
|
|
||||||
import { defineProps } from "vue";
|
import { defineProps } from "vue";
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
@@ -22,5 +22,5 @@ const props = defineProps({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
@import "./styles/RecommendPostsComponent.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
@@ -37,5 +37,5 @@ const sendReply = (item) => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@import "./styles/RecommendPostsList.scss";
|
@import "./styles/index.scss";
|
||||||
</style>
|
</style>
|
||||||
@@ -14,13 +14,12 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, onMounted, onUnmounted } from "vue";
|
|
||||||
import ChatMainList from "../chat/ChatMainList.vue";
|
|
||||||
import Calender from "@/components/Calender/index.vue";
|
|
||||||
import { onLoad } from "@dcloudio/uni-app";
|
import { onLoad } from "@dcloudio/uni-app";
|
||||||
|
import { ref, onUnmounted } from "vue";
|
||||||
import { getUrlParams } from "@/utils/UrlParams";
|
import { getUrlParams } from "@/utils/UrlParams";
|
||||||
|
|
||||||
import { useAppStore } from "@/store";
|
import { useAppStore } from "@/store";
|
||||||
|
import ChatMainList from "./components/chat/ChatMainList/index.vue";
|
||||||
|
import Calender from "@/components/Calender/index.vue";
|
||||||
|
|
||||||
const appStore = useAppStore();
|
const appStore = useAppStore();
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
font-family: PingFang SC, PingFang SC;
|
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
padding-top: 168px;
|
padding-top: 168px;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|||||||
Reference in New Issue
Block a user