Ai_GirlFriend/xuniYou/pages/chat/loverMessage.vue

182 lines
5.5 KiB
Vue
Raw Normal View History

2026-01-31 19:15:41 +08:00
<template>
<view>
<view class="body">
<view class="list">
<view class="list_content fa">
<view class="list_title">性别</view>
<view class="list_item fa">
{{ getLoverConfigList.gender == 'male' ? '男' : '女' }}
</view>
</view>
<view class="list_content fa">
<view class="list_title">昵称</view>
<view class="list_item fa">
{{ getLoverConfigList.lover.name }}
</view>
</view>
<view class="list_content fa">
<view class="list_title">人物简介</view>
<view class="list_item fa">
{{ getLoverConfigList.lover.intro }}
</view>
</view>
<view class="list_content fa">
<view class="list_title">性格模板</view>
<view class="list_items fa">
<view class="list_table fa">
{{ personalityInfo ? personalityInfo : '' }}
</view>
</view>
</view>
<view class="list_content fa">
<view class="list_title">故事背景</view>
<view class="list_item fa">
{{ getLoverConfigList.lover.story_background }}
</view>
</view>
<view class="list_content fa">
<view class="list_title">开场白</view>
<view class="list_item fa">
{{ getLoverConfigList.lover.opening_line }}
</view>
</view>
<view class="list_content">
<view class="list_title">兴趣标签</view>
<view class="list_items fa wp">
<view class="list_table fa" v-for="(item, index) in hobbyOptions" :key="index">
{{ item.name }}
</view>
</view>
</view>
<view class="list_content fa">
<view class="list_title">音色</view>
<view class="list_item fa">
{{ voicesInfo ? voicesInfo : '' }}
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import {
GetLoverConfig,
} from '@/utils/api.js'
import {
isPhone
} from '@/utils/utils.js'
import notHave from '@/components/not-have.vue';
import topSafety from '@/components/top-safety.vue';
export default {
components: {
notHave,
topSafety,
},
data() {
return {
getLoverConfigList: '',
hobbyOptions: [],
personalityOptions: [],
voicesInfo: '',
personalityInfo: '',
}
},
onLoad() {
},
onShow() {
this.getLoverConfig()
},
methods: {
getLoverConfig() {
GetLoverConfig({}).then(res => {
if (res.code == 1) {
this.getLoverConfigList = res.data
// 根据 interest_tags 找到对应的 hobby_options 项
if (res.data.lover.interest_tags && res.data.hobby_options) {
this.hobbyOptions = res.data.hobby_options.filter(option =>
res.data.lover.interest_tags.includes(option.id)
);
} else {
this.hobbyOptions = [];
}
console.log(this.hobbyOptions);
for (let i = 0; i < this.getLoverConfigList.voices.length; i++) {
if (this.getLoverConfigList.lover.voice_id == this.getLoverConfigList.voices[i].id) {
this.voicesInfo = this.getLoverConfigList.voices[i].name
}
}
for (let i = 0; i < this.getLoverConfigList.personality_options.length; i++) {
if (this.getLoverConfigList.personality_options[i].id == this.getLoverConfigList.lover.personality_tag) {
this.personalityInfo = this.getLoverConfigList.personality_options[i].name
}
}
} else {
uni.showToast({
title: res.msg,
icon: 'none',
position: 'top'
})
}
})
},
}
}
</script>
<style>
page {
background: #F6F8FA;
}
</style>
<style>
.body {
position: relative;
padding: 0 50rpx 50rpx 50rpx;
}
.list {
position: relative;
margin: 54rpx 0 0 0;
}
.list_content {
position: relative;
margin: 0 0 30rpx 0;
padding: 30rpx 40rpx;
background: #FFFFFF;
border-radius: 12rpx;
box-sizing: border-box;
}
.list_title {
margin: 0 80rpx 0 0;
font-weight: 500;
font-size: 32rpx;
color: #222222;
line-height: 50rpx;
flex-shrink: 0;
}
.list_item {
position: relative;
}
.list_items {
position: relative;
margin: 30rpx 0 0 0;
}
.list_table {
margin: 0 30rpx 30rpx 0;
padding: 0 26rpx;
font-weight: 400;
font-size: 28rpx;
color: #FF51B3;
background: #FCE6F3;
line-height: 50rpx;
border-radius: 12rpx;
}
</style>