This commit is contained in:
许允枞 2025-03-19 16:46:34 +08:00
parent 2b06f3d50f
commit f44c20c547
27 changed files with 899 additions and 589 deletions

View File

@ -128,9 +128,11 @@
},
"splashscreen" : {
"useOriginalMsgbox" : true,
"androidStyle" : "common",
"androidStyle" : "default",
"android" : {
"hdpi" : "C:/Users/19943/Desktop/43980605a54b98e16d4dec19a08ba33.png"
"hdpi" : "E:\\Works\\lighting\\guoJiDaChe\\Flinto@2x.png",
"xhdpi" : "E:\\Works\\lighting\\guoJiDaChe\\Flinto@2x.png",
"xxhdpi" : "E:\\Works\\lighting\\guoJiDaChe\\Flinto@2x.png"
}
}
},

View File

@ -203,6 +203,14 @@
"enablePullDownRefresh": true,
"navigationBarTitleText": "Contact"
}
},
{
"path": "pages/index/firstLogin",
"style": {
"navigationBarTitleText": "",
"enablePullDownRefresh": true,
"navigationStyle": "custom"
}
}
],
"globalStyle": {

View File

@ -1,61 +1,126 @@
<template>
<view class="container">
<view class="list_top" v-for="(item,index) in list" :key="index" @click="goDetails(item)">
<view style="text-align: center">
<!-- 循环渲染列表项添加动态样式绑定 -->
<view
class="list_top"
v-for="(item, index) in list"
:key="index"
@click="selectItem(item, index)"
>
<view class="img_">
<image :src="item.icon" mode=""></image>
<image :src="selectedIndex === index ? item.selectedIcon : item.icon" mode="scaleToFill"></image>
</view>
<view class="right_">
<view class="right_top">{{item.title}}</view>
</view>
</view>
<view class="k_"></view>
<!-- <tabbar :msg='msg'></tabbar> -->
<view class="introduction">
<scroll-view scroll-y="true">
<view>Agent Introduction</view>
<view>
<u-image height="400" :src="selectedItem.introduction" mode=""></u-image>
</view>
<view v-for="(item, index) in selectedItem.step" style="justify-content:left" :key="index" class="step-item">
<view class="step-index">{{ index + 1 }}</view>
<view class="step-content">{{ item }}</view>
</view>
</scroll-view>
</view>
<!-- 新增底部按钮 -->
<view class="enter-btn" @click="handleEnter">
Enter
</view>
</view>
</template>
<script>
import request from '../../utils/request'
import tabbar from '../../components/tabbar/tabbar.vue'
export default {
data() {
return {
msg: "2",
list: [
{title:'Translator',
icon:'../../static/chatImg/fy.png',
{
title: 'Translator',
icon: '../../static/chatImg/tran.png',
token: 'Bearer app-EcJaT2EkUjHNJsax9SwESQuK',
detail: '',
conversation:'Translator'},
{title:'Trip Advisor',
icon:'../../static/chatImg/lxgw.png',
conversation: 'Translator',
introduction: '../../static/chatImg/fanyi.png',
selectedIcon: '../../static/chatImg/transelect.png',
step: [
'Choose the language to be translated',
'Choose the language to translate',
'Return key',
'Translate images in to text(Long press trigger)',
'Send images for translation',
'Send voice for translation',
'Send text for translation',
'Translate text into images(Only for sending pictures)',
'Translate voice(Long press trigger)'
]
},
{
title: 'Trip Advisor',
icon: '../../static/chatImg/trip.png',
token: 'Bearer app-4Wqu03XTw297LtEsTXhotOuP',
detail: '',
conversation:'Trip'},
{title:'Budget Planner',
icon:'../../static/chatImg/ysjh.png',
conversation: 'Trip',
introduction: '../../static/chatImg/ai.png',
selectedIcon: '../../static/chatImg/tripselect.png',
step: [
'Return key',
'Send images',
]
},
{
title: 'Budget Planner',
icon: '../../static/chatImg/bud.png',
token: 'Bearer app-wNZ3qcMRhNUj0K9FrH8ERPwF',
detail: '',
conversation:'Budget'},
{title:'Ai Search',
icon:'../../static/chatImg/znss.png',
conversation: 'Budget',
introduction: '../../static/chatImg/ai.png',
selectedIcon: '../../static/chatImg/budselect.png',
step: [
'Return key',
'Send images',
]
},
{
title: 'Ai Search',
icon: '../../static/chatImg/search.png',
token: 'Bearer app-4Wqu03XTw297LtEsTXhotOuP',
detail: '',
conversation:'Ai'},
conversation: 'Ai',
introduction: '../../static/chatImg/ai.png',
selectedIcon: '../../static/chatImg/searchselect.png',
step: [
'Return key',
'Send images',
]
},
],
userInfo:{}
userInfo: {},
//
selectedIndex: null,
selectedItem: null,
}
},
onLoad() {
this.selectedItem = this.list[0];
this.selectedIndex = 0;
},
components: {
tabbar
},
methods: {
async goDetails(item){
async goDetails(item, index) {
//
this.selectedIndex = index;
this.selectedItem = item;
let res = await request({
url: 'system/user/getUserBaseInfo',
method: 'get',
@ -66,9 +131,15 @@
uni.navigateTo({
url: '/pages/Chat/newChat?data=' + data
})
}
},
selectItem(item, index) {
this.selectedIndex = index;
this.selectedItem = item;
},
handleEnter(){
this.goDetails(this.selectedItem, this.selectedIndex)
},
async goNewChat(item) {
let res = await request({
url: 'system/user/getUserBaseInfo',
@ -80,51 +151,63 @@
uni.navigateTo({
url: '/pages/Chat/newChat/index?data=' + data
})
}
}
}
}
</script>
<style scoped lang="scss">
.container {
//
padding: 30rpx 20rpx;
}
.list_top {
width: 100%;
display: inline-flex;
width: calc(25% - 10rpx);
box-sizing: border-box;
padding: 10px;
display: flex;
justify-content: center;
align-items: center;
margin: 10px 0px;
border-bottom: 1px solid #d4d4d4;
padding: 0 5rpx;
}
.img_ {
width: 100rpx;
height: 100rpx;
border-radius: 50%;
overflow: hidden;
margin-right: 10px;
image{
width: 100%;
height: 100%;
// height: 180rpx; //
display: flex;
justify-content: center;
align-items: center;
}
.img_ image {
width: 100%;
height: 180rpx;
object-fit: contain; //
}
.k_ {
width: 100%;
height: 120px;
}
.right_{
width: 80%;
.right_ {
width: auto;
}
.right_top {
font-weight: bold;
font-size: 16px;
color: #242E42;
margin-bottom: 10px;
font-size: 18rpx;
margin-bottom: 10rpx;
/* 新增文本不换行属性 */
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
width: 100%;
}
.right_buttom {
ont-weight: 500;
font-weight: 500;
font-size: 14px;
color: #999999;
overflow: hidden;
@ -132,4 +215,90 @@
text-overflow: ellipsis;
-o-text-overflow: ellipsis;
}
/* 新增样式 */
.intro-container {
height: 200rpx;
margin-top: 20rpx;
padding: 20rpx;
background-color: #fff;
border-radius: 10rpx;
box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.1);
}
.intro-content {
font-size: 26rpx;
color: #666;
line-height: 1.6;
}
.enter-btn {
position: fixed;
bottom: 0;
left: 50%;
transform: translateX(-50%);
width: 80%;
height: 80rpx;
background-color: #337151;
color: #fff;
border-radius: 40rpx;
text-align: center;
line-height: 80rpx;
font-size: 32rpx;
box-shadow: 0 4rpx 10rpx rgba(51, 113, 81, 0.3);
}
.introduction{
background-color: #F4F4F4;
padding: 20rpx;
margin-top: 20rpx;
margin-bottom: 60rpx; //
text-align: center;
font-weight: bold;
border-radius: 20rpx;
//
view {
display: flex;
justify-content: center;
align-items: center;
margin-top: 20rpx;
}
//
.u-image {
width: 100%;
object-fit: contain;
}
}
.step-item {
display: flex;
align-items: center;
margin-top: 20rpx;
justify-content: flex-start; //
}
.step-content {
font-size: 28rpx;
color: #333;
text-align: left; //
}
.step-index {
width: 40rpx;
height: 40rpx;
border-radius: 50%;
background-color: #FBB72A;
color: #fff;
display: flex;
align-items: center;
justify-content: center;
font-size: 24rpx;
margin-right: 20rpx;
}
.step-content {
font-size: 28rpx;
color: #333;
}
</style>

View File

@ -10,7 +10,7 @@
<text style="flex: 1; text-align: center;">{{ info.title }}</text>
<!-- 右侧内容 -->
<view style="display: flex; align-items: center;">
<view style="display: flex; align-items: center;" v-if="ifShowLang">
<view v-if="info.conversation == 'Translator'" class="sm-text" @click="chooseSayLang">
{{ sayLangStr }}
<u-icon style="margin-top: 6rpx; margin-left: 5rpx;" name="arrow-down" color="#fff" size="12"></u-icon>
@ -235,7 +235,8 @@ export default {
sendFlag: false
},
scrollId: 'bottomId',
storeList: 'msgHisList'
storeList: 'msgHisList',
ifShowLang: false,
}
},
onLoad(option) {
@ -249,6 +250,9 @@ export default {
userAvatar: infoData.userAvatar,
title: infoData.title
}
if (infoData.title == 'Translator') {
this.ifShowLang = true
}
uni.setStorageSync('userId', infoData.userId)
this.info = tempInfo
this.userId = infoData.userId

View File

@ -2,7 +2,7 @@
<view>
<view class="submit">
<view class="submit-chat">
<view class="bt-img" @tap="records">
<view class="bt-img" @tap="records" v-if="isShow">
<image :src="toc"></image>
</view>
<view class="bt-img" @tap="more">
@ -82,6 +82,7 @@ export default {
timer: '', //
vlength: 0,
translatorImageUploadUrl: config.translatorImageUploadUrl,
isShow: false
};
},
components: {
@ -94,6 +95,11 @@ export default {
default: ''
},
},
mounted() {
if (this.title == 'Translator') {
this.isShow = true
}
},
methods: {
//
getElementHeight() {

View File

@ -806,7 +806,7 @@
}
.bz_width {
//width: 100%;
width: 600rpx;
}
.segment-item{
width: 300rpx;

View File

@ -0,0 +1,103 @@
<template>
<view class="container">
<swiper class="swiper" :indicator-dots="true" :autoplay="false" :interval="3000" :duration="1000" @change="onSwiperChange">
<swiper-item indicator-active-color="#347053" v-for="(item, index) in swiperList" :key="index">
<view class="swiper-item">
<u-image height="300" shape="circle" :src="item.image" ></u-image>
<h2 style="margin-top: 150rpx">{{ item.title }}</h2>
<text>{{ item.text }}</text>
<!-- 新增按钮 -->
<view class="start-btn" v-if="item.isShow" @click="goNewChat">GET STARTED!</view>
</view>
</swiper-item>
</swiper>
</view>
</template>
<script>
export default {
data() {
return {
swiperList: [
{
image: '../../static/imgs/first1.png',
text: 'Request a ride get picked upby a\n' +
'nearbycommunitydriver',
title: 'Request Ride',
isShow:false
},
{
image: '../../static/imgs/first2.png',
text: 'Al Agents represent a paradigm\n' +
'shift from passive Al to proactive,\n' +
'tool-augmented systems',
title: 'AI Agent',
isShow:true
}
]
};
},
onShow() {
console.log('进入了jjj');
},
methods: {
onSwiperChange(e) {
console.log('当前滑动的索引:', e.detail.current);
},
goNewChat() {
//
uni.setStorageSync('isFirst', '1');
uni.navigateTo({
url: '/pages/index/index'
});
}
}
};
</script>
<style>
.container {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
.swiper {
width: 100%;
height: 100%;
}
.swiper-item {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100%;
}
image {
width: 100%;
height: 300px;
border-radius: 50%;
overflow: hidden;
}
text {
margin-top: 20px;
font-size: 18px;
color: #333;
text-align: center;
}
.start-btn {
margin-top: 40rpx;
padding: 20rpx 60rpx;
background-color: #337151;
color: #fff;
font-size: 32rpx;
border-radius: 40rpx;
text-align: center;
box-shadow: 0 4rpx 10rpx rgba(51, 113, 81, 0.3);
}
</style>

View File

@ -12,6 +12,7 @@
getToken
} from '@/utils/auth'
import request from '../../utils/request'
export default {
data() {
return {
@ -37,7 +38,15 @@
}
},
onShow() {
const isFirst = this.getIsFirst()
if (isFirst) {
//
uni.reLaunch({
url: '/pages/index/firstLogin'
})
} else {
this.getBaseInfo()
}
},
components: {
@ -47,8 +56,15 @@
},
methods: {
//
//isFirst
getIsFirst() {
console.log(288, 'isFirst', uni.getStorageSync('isFirst'))
if (uni.getStorageSync('isFirst') != '1') {
return true
} else {
return false
}
},
getBaseInfo() {
request({

View File

@ -403,6 +403,8 @@
this.watchData()
this.getBaseInfo()
this.getOrderInfo()
//移除缓存
// uni.removeStorageSync('isFirst')
},
created() {
uni.setLocale("en")

View File

@ -3,7 +3,7 @@
<u-card title="Contact Us" class="card">
<view class="info">
<u-icon name="email" size="28" color="#2E7D32"/>
<text class="info-text">contact@company.com</text>
<text class="info-text">flinto.registra@flintown.cn</text>
</view>
</u-card>

View File

@ -29,7 +29,7 @@
</view>
<view class="f_" @click="goMyRouter(5)">
<view class="icon_">
<image src="../../static/imgs/me2.png" mode=""></image>
<image src="../../static/imgs/connection.png" mode=""></image>
</view>
<view class="">Contact Us</view>
</view>

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@ -1,7 +1,7 @@
{
"version": "1",
"env": {
"compilerVersion": "4.45.2025010502"
"compilerVersion": "4.29.2024093009"
},
"files": {
"utssdk/app-android/index.uts": {
@ -11,16 +11,16 @@
"md5": "0ef341bba9f99907e18ce67611e4f917"
},
"utssdk/interface.uts": {
"md5": "db15187a9fadbca426061057ae59c979"
"md5": "cc107c301f81d7258b06e2275c8bd580"
},
"utssdk/unierror.uts": {
"md5": "93cda918cb6cdfcb499987746a492d17"
"md5": "aedbc1a046aa54cb4b419cb7cf9cf794"
},
"package.json": {
"md5": "6c74f7276527d2834eed5a1806a1daa5"
"md5": "10b15779033e7e8d4e5812a40553f84e"
},
"utssdk/app-android/config.json": {
"md5": "49e34dad9b85d9ddf183e599555456fa"
"md5": "643b2980a54aaca20ecd07d593fb4099"
}
}
}