This commit is contained in:
oneao committed 2025-10-11 17:31:56 +08:00
1 parent 2db3eb2408
commit 76957e637d
179 files changed
+11901 -2178

No files matched your search

@@ -0,0 +1,227 @@
<script setup>
import { Search } from '@element-plus/icons-vue'
import Avatar from '@/components/avatar.vue'
import Icon from '@/components/icon.vue'
</script>
<template>
<div class="im">
<div class="im__container">
<div class="im__header">
<div class="im__desc">
<div class="im__logo">
<Icon icon="solar:buildings-2-linear" :size="28" color="#fff" />
</div>
<div class="im__desc-extra">
<div class="im__title">
企业IM通信平台
</div>
<div class="im__subtitle">
Enterprise IM Communication Platform
</div>
</div>
</div>
<div class="im__user">
<Avatar name="User" />
<div class="im__user-info">
<div class="im__user-name">
用户A
</div>
<div class="im__user-status im__user-status--online">
<span>在线</span>
</div>
</div>
</div>
</div>
<div class="im__body">
<div class="im__list">
<div class="im__list-input">
<el-input placeholder="请根据名称搜索" :prefix-icon="Search" />
</div>
<div class="im__list-item">
<div class="im__list-header">
单聊
</div>
<div class="im__list-body">
<div>
Operation feedback: enable the users to clearly perceive their
operations by style updates and interactive effects;
</div>
<div>
Visual feedback: reflect current state by updating or rearranging
elements of the page.
</div>
<div>
Operation feedback: enable the users to clearly perceive their
operations by style updates and interactive effects;
</div>
<div>
Visual feedback: reflect current state by updating or rearranging
elements of the page.
</div>
<div>
Operation feedback: enable the users to clearly perceive their
operations by style updates and interactive effects;
</div>
<div>
Visual feedback: reflect current state by updating or rearranging
elements of the page.
</div>
<div>
Operation feedback: enable the users to clearly perceive their
operations by style updates and interactive effects;
</div>
<div>
Visual feedback: reflect current state by updating or rearranging
elements of the page.
</div>
</div>
</div>
<div class="im__list-item">
<div class="im__list-header">
群聊
</div>
<div class="im__list-body">
body
</div>
</div>
</div>
<div class="im__window">
chat
</div>
</div>
</div>
</div>
</template>
<style lang="scss" scoped>
.im {
display: flex;
justify-content: center;
align-items: center;
height: 100%;
width: 100%;
background-color: #f5f6fa;
.im__container {
width: 1300px;
height: 80%;
background-color: #fff;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
border-radius: 2px;
overflow: hidden;
}
.im__header {
padding: 0 16px;
height: 64px;
border-bottom: 1px solid #e6e9ef;
display: flex;
align-items: center;
justify-content: space-between;
.im__desc {
display: flex;
align-items: center;
.im__logo {
background-color: #1553f1;
display: flex;
align-items: center;
justify-content: center;
width: 40px;
height: 40px;
border-radius: 8px;
box-shadow:
0 4px 6px -1px rgba(0, 0, 0, 0.1),
0 2px 4px -2px rgba(0, 0, 0, 0.1);
}
.im__desc-extra {
margin-left: 12px;
.im__title {
font-size: 16px;
font-weight: bold;
}
.im__subtitle {
font-size: 14px;
color: #666;
}
}
}
.im__user {
display: flex;
align-items: center;
height: 100%;
padding: 0px 8px;
&:hover {
cursor: pointer;
background-color: #f4f4f4;
}
.im__user-info {
margin-left: 8px;
display: flex;
flex-direction: column;
.im__user-name {
font-size: 14px;
}
.im__user-status {
display: flex;
align-items: center;
font-size: 12px;
color: #666;
}
.im__user-status--online {
color: #4caf50;
}
}
}
}
.im__body {
display: flex;
flex: 1;
}
.im__list {
width: 300px;
border-right: 1px solid #ddd;
overflow: none;
display: flex;
flex-direction: column;
height: 100%;
.im__list-input {
padding: 10px;
background-color: #1553f1;
}
.im__list-item {
flex: 1;
display: flex;
flex-direction: column;
.im__list-header {
font-size: 14px;
padding: 8px 10px;
background-color: #f8f9fc;
flex-shrink: 0;
}
.im__list-body {
overflow-y: auto;
flex: 1;
}
}
}
.im__window {
flex: 1;
background-color: #fff;
padding: 10px;
overflow-y: auto;
}
}
</style>