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" : { "splashscreen" : {
"useOriginalMsgbox" : true, "useOriginalMsgbox" : true,
"androidStyle" : "common", "androidStyle" : "default",
"android" : { "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, "enablePullDownRefresh": true,
"navigationBarTitleText": "Contact" "navigationBarTitleText": "Contact"
} }
},
{
"path": "pages/index/firstLogin",
"style": {
"navigationBarTitleText": "",
"enablePullDownRefresh": true,
"navigationStyle": "custom"
}
} }
], ],
"globalStyle": { "globalStyle": {

View File

@ -1,61 +1,126 @@
<template> <template>
<view class="container"> <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_"> <view class="img_">
<image :src="item.icon" mode=""></image> <image :src="selectedIndex === index ? item.selectedIcon : item.icon" mode="scaleToFill"></image>
</view> </view>
<view class="right_">
<view class="right_top">{{item.title}}</view>
</view> </view>
</view> </view>
<view class="k_"></view> <view class="introduction">
<!-- <tabbar :msg='msg'></tabbar> --> <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> </view>
</template> </template>
<script> <script>
import request from '../../utils/request' import request from '../../utils/request'
import tabbar from '../../components/tabbar/tabbar.vue' import tabbar from '../../components/tabbar/tabbar.vue'
export default { export default {
data() { data() {
return { return {
msg: "2", msg: "2",
list: [ list: [
{title:'Translator', {
icon:'../../static/chatImg/fy.png', title: 'Translator',
icon: '../../static/chatImg/tran.png',
token: 'Bearer app-EcJaT2EkUjHNJsax9SwESQuK', token: 'Bearer app-EcJaT2EkUjHNJsax9SwESQuK',
detail: '', detail: '',
conversation:'Translator'}, conversation: 'Translator',
{title:'Trip Advisor', introduction: '../../static/chatImg/fanyi.png',
icon:'../../static/chatImg/lxgw.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', token: 'Bearer app-4Wqu03XTw297LtEsTXhotOuP',
detail: '', detail: '',
conversation:'Trip'}, conversation: 'Trip',
{title:'Budget Planner', introduction: '../../static/chatImg/ai.png',
icon:'../../static/chatImg/ysjh.png', selectedIcon: '../../static/chatImg/tripselect.png',
step: [
'Return key',
'Send images',
]
},
{
title: 'Budget Planner',
icon: '../../static/chatImg/bud.png',
token: 'Bearer app-wNZ3qcMRhNUj0K9FrH8ERPwF', token: 'Bearer app-wNZ3qcMRhNUj0K9FrH8ERPwF',
detail: '', detail: '',
conversation:'Budget'}, conversation: 'Budget',
{title:'Ai Search', introduction: '../../static/chatImg/ai.png',
icon:'../../static/chatImg/znss.png', selectedIcon: '../../static/chatImg/budselect.png',
step: [
'Return key',
'Send images',
]
},
{
title: 'Ai Search',
icon: '../../static/chatImg/search.png',
token: 'Bearer app-4Wqu03XTw297LtEsTXhotOuP', token: 'Bearer app-4Wqu03XTw297LtEsTXhotOuP',
detail: '', 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() { onLoad() {
this.selectedItem = this.list[0];
this.selectedIndex = 0;
}, },
components: { components: {
tabbar tabbar
}, },
methods: { methods: {
async goDetails(item, index) {
async goDetails(item){ //
this.selectedIndex = index;
this.selectedItem = item;
let res = await request({ let res = await request({
url: 'system/user/getUserBaseInfo', url: 'system/user/getUserBaseInfo',
method: 'get', method: 'get',
@ -66,9 +131,15 @@
uni.navigateTo({ uni.navigateTo({
url: '/pages/Chat/newChat?data=' + data 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) { async goNewChat(item) {
let res = await request({ let res = await request({
url: 'system/user/getUserBaseInfo', url: 'system/user/getUserBaseInfo',
@ -80,51 +151,63 @@
uni.navigateTo({ uni.navigateTo({
url: '/pages/Chat/newChat/index?data=' + data url: '/pages/Chat/newChat/index?data=' + data
}) })
} }
} }
} }
} }
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.container {
//
padding: 30rpx 20rpx;
}
.list_top { .list_top {
width: 100%; display: inline-flex;
width: calc(25% - 10rpx);
box-sizing: border-box; box-sizing: border-box;
padding: 10px; justify-content: center;
display: flex;
align-items: center; align-items: center;
margin: 10px 0px; padding: 0 5rpx;
border-bottom: 1px solid #d4d4d4;
} }
.img_ { .img_ {
width: 100rpx;
height: 100rpx;
border-radius: 50%;
overflow: hidden;
margin-right: 10px;
image{
width: 100%; width: 100%;
height: 100%; // height: 180rpx; //
display: flex;
justify-content: center;
align-items: center;
} }
.img_ image {
width: 100%;
height: 180rpx;
object-fit: contain; //
} }
.k_ { .k_ {
width: 100%; width: 100%;
height: 120px; height: 120px;
} }
.right_{
width: 80%;
.right_ {
width: auto;
} }
.right_top { .right_top {
font-weight: bold; font-weight: bold;
font-size: 16px; font-size: 18rpx;
color: #242E42; margin-bottom: 10rpx;
margin-bottom: 10px; /* 新增文本不换行属性 */
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
width: 100%;
} }
.right_buttom { .right_buttom {
ont-weight: 500; font-weight: 500;
font-size: 14px; font-size: 14px;
color: #999999; color: #999999;
overflow: hidden; overflow: hidden;
@ -132,4 +215,90 @@
text-overflow: ellipsis; text-overflow: ellipsis;
-o-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> </style>

View File

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

View File

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

View File

@ -806,7 +806,7 @@
} }
.bz_width { .bz_width {
//width: 100%; width: 600rpx;
} }
.segment-item{ .segment-item{
width: 300rpx; 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 getToken
} from '@/utils/auth' } from '@/utils/auth'
import request from '../../utils/request' import request from '../../utils/request'
export default { export default {
data() { data() {
return { return {
@ -37,7 +38,15 @@
} }
}, },
onShow() { onShow() {
const isFirst = this.getIsFirst()
if (isFirst) {
//
uni.reLaunch({
url: '/pages/index/firstLogin'
})
} else {
this.getBaseInfo() this.getBaseInfo()
}
}, },
components: { components: {
@ -47,8 +56,15 @@
}, },
methods: { methods: {
// //
//isFirst
getIsFirst() {
console.log(288, 'isFirst', uni.getStorageSync('isFirst'))
if (uni.getStorageSync('isFirst') != '1') {
return true
} else {
return false
}
},
getBaseInfo() { getBaseInfo() {
request({ request({

View File

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

View File

@ -3,7 +3,7 @@
<u-card title="Contact Us" class="card"> <u-card title="Contact Us" class="card">
<view class="info"> <view class="info">
<u-icon name="email" size="28" color="#2E7D32"/> <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> </view>
</u-card> </u-card>

View File

@ -29,7 +29,7 @@
</view> </view>
<view class="f_" @click="goMyRouter(5)"> <view class="f_" @click="goMyRouter(5)">
<view class="icon_"> <view class="icon_">
<image src="../../static/imgs/me2.png" mode=""></image> <image src="../../static/imgs/connection.png" mode=""></image>
</view> </view>
<view class="">Contact Us</view> <view class="">Contact Us</view>
</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", "version": "1",
"env": { "env": {
"compilerVersion": "4.45.2025010502" "compilerVersion": "4.29.2024093009"
}, },
"files": { "files": {
"utssdk/app-android/index.uts": { "utssdk/app-android/index.uts": {
@ -11,16 +11,16 @@
"md5": "0ef341bba9f99907e18ce67611e4f917" "md5": "0ef341bba9f99907e18ce67611e4f917"
}, },
"utssdk/interface.uts": { "utssdk/interface.uts": {
"md5": "db15187a9fadbca426061057ae59c979" "md5": "cc107c301f81d7258b06e2275c8bd580"
}, },
"utssdk/unierror.uts": { "utssdk/unierror.uts": {
"md5": "93cda918cb6cdfcb499987746a492d17" "md5": "aedbc1a046aa54cb4b419cb7cf9cf794"
}, },
"package.json": { "package.json": {
"md5": "6c74f7276527d2834eed5a1806a1daa5" "md5": "10b15779033e7e8d4e5812a40553f84e"
}, },
"utssdk/app-android/config.json": { "utssdk/app-android/config.json": {
"md5": "49e34dad9b85d9ddf183e599555456fa" "md5": "643b2980a54aaca20ecd07d593fb4099"
} }
} }
} }