| | |
| | | <template> |
| | | <div class="pc-chat_room"> |
| | | <div class="pc-chat_room h-full"> |
| | | <div class="flex h100 w100"> |
| | | <div class="pc-chat_aside"> |
| | | <div class="aside_top"> |
| | | <div class="logo"> |
| | | <div class="flex items-center"> |
| | | <img src="/static/images/logo/logo-mini.svg" alt="logo" class="layout-logo-medium-img" /> |
| | | <span class="font-extrabold text-xl text-white tracking-wide">水务 AI平台</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="aside_center"> |
| | | <asideNew /> |
| | | </div> |
| | | <div class="aside_bottom"> |
| | | <asideTitle /> |
| | | </div> |
| | | </div> |
| | | <div class="pc-chat_right"> |
| | | <waterHeader /> |
| | | <div class="w100 h100 overflow-auto"> |
| | | <div class="w100 h100 overflow-hidden"> |
| | | <div class="pc-chatRoom w100 h100"> |
| | | <div class="homeBox w100 h100"> |
| | | <div class="flex items-center flex-column mt-20"> |
| | | <div class="flex items-center flex-column" v-if="!isShowChat"> |
| | | <waterTop @sendClick="sendClick"/> |
| | | <waterCenter /> |
| | | <div class="homeBox w100 h-full"> |
| | | <div class="flex items-center h-full"> |
| | | <div class="flex items-center flex-column" style="overflow: unset !important"> |
| | | <waterTop ref="topRef" /> |
| | | <waterCenter |
| | | @advanceExampleClick="advanceExampleClick" |
| | | :isShowAdvanceExample="state.isShowAdvanceExample" |
| | | ref="waterCenterRef" |
| | | @updateChatInput="updateChatInput" |
| | | /> |
| | | <waterBottom /> |
| | | </div> |
| | | <div v-if="isShowChat"> |
| | | <Chat /> |
| | | </div> |
| | | |
| | | <CustomDrawer v-model:isShow="state.isShowAdvanceExample" ref="customDrawerRef" @updateChatInput="updateChatInput" /> |
| | | </div> |
| | | </div> |
| | | <p class="declare"> |
| | | <!-- <p class="declare"> |
| | | <span |
| | | >声明:本平台仅提供水务智能化服务,不提供任何形式的法律或法规建议,请用户自行判断使用风险,并自行承担因使用本平台而产生的法律责任。</span |
| | | > |
| | | </p> |
| | | </p> --> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { ref } from 'vue'; |
| | | import asideNew from './component/waterLeftAside/asideNew.vue'; |
| | | import asideTitle from './component/waterLeftAside/asideTitle.vue'; |
| | | import { reactive, ref } from 'vue'; |
| | | import waterBottom from './component/waterRight/bottom.vue'; |
| | | import waterCenter from './component/waterRight/center.vue'; |
| | | import waterHeader from './component/waterRight/header.vue'; |
| | | import waterTop from './component/waterRight/top.vue'; |
| | | import Chat from '/@/components/chat/Chat.vue'; |
| | | import CustomDrawer from '/@/components/drawer/CustomDrawer.vue'; |
| | | let state = reactive({ |
| | | isShowAdvanceExample: false, |
| | | }); |
| | | |
| | | const isShowChat = ref(true); |
| | | |
| | | const sendClick = () => { |
| | | isShowChat.value =true; |
| | | const topRef = ref(null); |
| | | const waterCenterRef = ref(null); |
| | | const customDrawerRef = ref(null); |
| | | const updateChatInput = (val) => { |
| | | topRef.value.updateChatInput(val); |
| | | }; |
| | | const advanceExampleClick = (status: boolean) => { |
| | | state.isShowAdvanceExample = status; |
| | | if (status) { |
| | | customDrawerRef.value.getTableData(); |
| | | } |
| | | }; |
| | | </script> |
| | | <style scoped lang="scss"> |
| | | .pc-chat_room { |
| | | width: 100vw; |
| | | height: 100vh; |
| | | margin: 0; |
| | | padding: 0; |
| | | overflow: hidden; |
| | | -webkit-box-sizing: border-box; |
| | | box-sizing: border-box; |
| | | background-color: #1c1e1d; |
| | | font-family: 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; |
| | | } |
| | | .pc-chat_aside { |
| | | width: 252px !important; |
| | |
| | | width: 100%; |
| | | padding: 18px; |
| | | } |
| | | |
| | | .layout-logo-medium-img { |
| | | width: 28px; |
| | | margin-right: 7px; |
| | |
| | | padding: 0; |
| | | background: linear-gradient(180deg, #f5f4f6 0, #f2f2f6 25%, #e9edf7); |
| | | position: relative; |
| | | margin: 6px; |
| | | border-radius: 10px; |
| | | display: block; |
| | | flex: 1; |
| | | -ms-flex-preferred-size: auto; |
| | |
| | | background-color: #f2f4f8; |
| | | transition: padding-right 0.25s; |
| | | .homeBox { |
| | | padding: 42px 40px 0; |
| | | font-size: 14px; |
| | | line-height: 18px; |
| | | box-sizing: border-box; |
| | | overflow-y: auto; |
| | | } |
| | | .declare { |
| | | position: absolute; |