preview的peport页面

This commit is contained in:
X1627315083@163.com
2026-02-23 13:28:43 +08:00
parent d1e70c166c
commit 5c00b54f27
20 changed files with 112 additions and 16 deletions

View File

@@ -0,0 +1,106 @@
<script setup lang="ts">
import { ref, onMounted, onUnmounted, reactive, toRefs } from "vue";
import userHead from '@/assets/images/chatVersion/userHead.png'
import robotHead from '@/assets/images/chatVersion/robotHead.png'
import { useI18n } from 'vue-i18n'
const { t: $t } = useI18n()
const props = defineProps({
type: {
type: String,
default: 'user'
},
})
//const emit = defineEmits([
//])
let data = reactive({
})
onMounted(()=>{
})
onUnmounted(()=>{
})
defineExpose({})
const {} = toRefs(data);
</script>
<template>
<div class="ChatHistory">
<div class="titleInfo">
<div class="userInfo">
<img :src="type == 'user'? userHead:robotHead" alt="">
<span>{{ type == 'user'? $t('VersionTree.input'): $t('VersionTree.sketch') }}</span>
</div>
<div class="time">
<span>12:00:00</span>
</div>
</div>
<div class="infoTitle">{{ type == 'user'? $t('VersionTree.userRequest'): $t('VersionTree.generateResult') }}</div>
<div class="history">
Design a modern yellow sofa that combines comfort, elegance, and contemporary aesthetics. The sofa features a warm, soft yellow tone (mustard or light ochre), with a minimalist silhouette and clean lines. Upholstered in high-quality fabric with a subtle texture, offering a cozy and inviting feel. The seat is deep and plush, with generous cushioning for relaxation, while the backrest and armrests are softly rounded to enhance comfort.
</div>
</div>
</template>
<style lang="less" scoped>
.ChatHistory{
width: 100%;
height: 100%;
position: relative;
display: flex;
flex-direction: column;
> .titleInfo{
height: 2.4rem;
display: flex;
justify-content: space-between;
> .userInfo{
display: flex;
align-items: center;
> img{
margin-right: .2rem;
}
> span{
font-family: 'SemiBold';
font-weight: 600;
font-size: 1.4rem;
line-height: 2rem;
color: #000;
opacity: .5;
}
}
> .time{
font-family: 'SemiBold';
font-weight: 600;
font-size: 1.4rem;
line-height: 2rem;
opacity: .5;
}
}
> .infoTitle{
margin-top: .6rem;
font-size: 1.2rem;
line-height: 2rem;
margin-left: 3rem;
}
> .history{
margin-top: .8rem;
font-family: 'Regular';
font-weight: 400;
font-size: 1.2rem;
line-height: 1.4rem;
letter-spacing: Letter Spacing;
flex: 1;
overflow-y: auto;
margin-left: 3rem;
&::-webkit-scrollbar {
width: 4px;
}
&::-webkit-scrollbar-thumb {
border-radius: 4px;
background: #ababab;
}
&::-webkit-scrollbar-track {
border-radius: 4px;
background: #d9d9d9;
}
}
}
</style>

View File

@@ -0,0 +1,73 @@
<script setup lang="ts">
import { ref, onMounted, onUnmounted, reactive, toRefs } from "vue";
import VersionDetail from './versionDetail.vue'
import ChatDetail from './chatDetail.vue'
//const props = defineProps({
//})
const emit = defineEmits([
])
const detailData = ref({
id:1,
versionDetail:{
version:'1.0.0',
versionTime:'2023-08-01 10:00:00',
versionSketch:'Version 1 - Sketch',
versionSketchTime:'2023-08-01 10:00:00',
},
userChatDetail:{
}
})
onMounted(()=>{
})
onUnmounted(()=>{
})
defineExpose({})
// const {} = toRefs(data);
</script>
<template>
<div class="detailBox">
<div class="versionDetail">
<VersionDetail
:versionDetail="detailData.versionDetail"
></VersionDetail>
</div>
<div class="useInput">
<ChatDetail type="user"></ChatDetail>
</div>
<div class="systemInput">
<ChatDetail type="robot"></ChatDetail>
</div>
</div>
</template>
<style lang="less" scoped>
.detailBox{
width: 100%;
height: 100%;
position: relative;
display: flex;
flex-direction: column;
> div{
border-radius: var(--border-radius, 1rem);
border: 1px solid #D9D9D9;
background-color: #f7f7f7;
margin-bottom: 3.6rem;
padding: 1.5rem 1.4rem;
width: 100%;
&.versionDetail{
height: 21rem;
}
&.useInput{
height: 21.5rem;
}
&.systemInput{
flex: 1;
}
&:last-child{
margin-bottom: 0;
}
}
}
</style>

View File

@@ -0,0 +1,76 @@
<script setup lang="ts">
import { ref, onMounted, onUnmounted, reactive, toRefs } from "vue";
import { useI18n } from 'vue-i18n'
const { t: $t } = useI18n()
const props = defineProps({
versionDetail: {
type: Object,
default: () => ({})
}
})
const emit = defineEmits([
'versionRestore',
'versionDelete',
])
let data = reactive({
})
onMounted(()=>{
})
onUnmounted(()=>{
})
defineExpose({})
const {} = toRefs(data);
</script>
<template>
<div class="versionDetail">
<div class="title">
<span class="titleText">
{{ $t('VersionTree.versionInformation') }}
</span>
</div>
<div class="version">{{versionDetail.version}}</div>
<div class="time marBott1">{{versionDetail.versionTime}}</div>
<div class="version gray">{{versionDetail.versionSketch}}</div>
<div class="time gray">{{versionDetail.versionSketchTime}}</div>
</div>
</template>
<style lang="less" scoped>
.versionDetail{
width: 100%;
height: 100%;
position: relative;
> .title{
line-height: 3.2rem;
font-size: 1.4rem;
color: #000;
display: flex;
justify-content: space-between;
height: 3.2rem;
margin-bottom: 2rem;
> .titleText{
opacity: .5;
font-weight: 600;
font-family: 'SemiBold';
}
}
> .version{
font-family: 'SemiBold';
font-weight: 600;
font-size: 1.4rem;
margin-bottom: .2rem;
line-height: 2rem;
}
> .marBott1{
margin-bottom: 1.2rem;
}
> .time{
font-weight: 500;
font-size: 1.2rem;
line-height: 2rem;
}
> .gray{
color: #C1C1C1;
}
}
</style>