Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
475972e7d0 | ||
|
|
4c84f63a93 | ||
|
|
f1173ae292 | ||
|
|
83c34d473e | ||
|
|
4708fce5a5 | ||
|
|
47ab649122 | ||
|
|
e7e9ba0ec5 | ||
|
|
49a19fe57d | ||
|
|
2f29a42f9b | ||
|
|
1065fc0c37 | ||
|
|
26ff0d2dd8 | ||
|
|
856d89a42f | ||
|
|
720b7b330c | ||
|
|
a883e7d56f | ||
|
|
d5b7e8e2e8 | ||
|
|
208930ba63 | ||
|
|
318a0f2294 | ||
|
|
f354c9d3b2 | ||
|
|
afc1c9d519 | ||
|
|
cd458a6ec6 | ||
|
|
05bd367e04 | ||
|
|
7c7d19bd16 |
@@ -14,14 +14,14 @@
|
|||||||
{{ item.merName }}
|
{{ item.merName }}
|
||||||
</view>
|
</view>
|
||||||
<view class="order-id">
|
<view class="order-id">
|
||||||
{{ item.orderId }}
|
订单号:{{ item.orderId }}
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="status">
|
<view class="status">
|
||||||
{{ item.statusName }}
|
{{ item.statusName }}
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="product-info-wrap">
|
<view v-if="item.isGiftCardReceiveBlind === 0" class="product-info-wrap">
|
||||||
<view
|
<view
|
||||||
v-for="cartItem in item.cartInfo"
|
v-for="cartItem in item.cartInfo"
|
||||||
:key="cartItem.productId"
|
:key="cartItem.productId"
|
||||||
@@ -53,15 +53,45 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view v-else class="product-info-wrap">
|
||||||
|
<view
|
||||||
|
class="product-info product-info2"
|
||||||
|
>
|
||||||
|
<view class="good-img">
|
||||||
|
<image
|
||||||
|
:src="webUrl + '/orderIcon/盲盒礼包.png'"
|
||||||
|
class="img"
|
||||||
|
mode="widthFix"
|
||||||
|
lazy-load
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
|
<view class="name-wrap">
|
||||||
|
<view class="name one-t">
|
||||||
|
盲盒礼物
|
||||||
|
</view>
|
||||||
|
<view class="attr">
|
||||||
|
待收货后展示商品信息
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="price-num">
|
||||||
|
<view style="color: #fff;">
|
||||||
|
¥0.00
|
||||||
|
</view>
|
||||||
|
<view class="num">
|
||||||
|
x1
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
<view class="order-bottom">
|
<view class="order-bottom">
|
||||||
<view class="time-total">
|
<view class="time-total">
|
||||||
<view class="time">
|
<view class="time">
|
||||||
{{ formatDateTime(item.createTime) }}
|
{{ formatDateTime(item.createTime) }}
|
||||||
</view>
|
</view>
|
||||||
<view class="total">
|
<view class="total">
|
||||||
共{{ item.totalNum }}件商品,
|
共{{ item.totalNum }}件商品
|
||||||
<text class="total-txt">
|
<text v-if="item.isGiftCardReceiveBlind === 0" class="total-txt">
|
||||||
总金额<text class="color-red">¥{{ item.totalPrice }}</text>
|
总金额<text class="color-red">¥{{ item.totalPrice }}</text>
|
||||||
</text>
|
</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -161,13 +191,17 @@ export default {
|
|||||||
}
|
}
|
||||||
.attr {
|
.attr {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
min-height: 50rpx;
|
height: 50rpx;
|
||||||
|
max-width: 100%;
|
||||||
padding: 0 25rpx;
|
padding: 0 25rpx;
|
||||||
margin: 20rpx 0 0 0;
|
margin: 20rpx 0 0 0;
|
||||||
border-radius: 25rpx;
|
border-radius: 25rpx;
|
||||||
line-height: 50rpx;
|
line-height: 50rpx;
|
||||||
color: #252525;
|
color: #252525;
|
||||||
background: rgba(239,239,239,0.39);
|
background: rgba(239,239,239,0.39);
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.price-num {
|
.price-num {
|
||||||
@@ -179,6 +213,19 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.product-info2 {
|
||||||
|
.name-wrap {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: space-between;
|
||||||
|
.attr {
|
||||||
|
padding: 0;
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #999;
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
.order-bottom {
|
.order-bottom {
|
||||||
.time-total {
|
.time-total {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ export const chatMixinsV2 = {
|
|||||||
icon: 'icon-51',
|
icon: 'icon-51',
|
||||||
text: '订单查询',
|
text: '订单查询',
|
||||||
type: 'prompt',
|
type: 'prompt',
|
||||||
prompt: '订单查询',
|
prompt: '帮我查询我的待发货、待收货订单信息',
|
||||||
url: ''
|
url: ''
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -252,7 +252,8 @@ export const chatMixinsV2 = {
|
|||||||
type: -2,
|
type: -2,
|
||||||
showMoreInfo: {},
|
showMoreInfo: {},
|
||||||
currentSwiperIndex: 0,
|
currentSwiperIndex: 0,
|
||||||
showChangeBtn: true
|
showChangeBtn: true,
|
||||||
|
changeIsRotate: false
|
||||||
})
|
})
|
||||||
_this.loading = true
|
_this.loading = true
|
||||||
_this.showCursor = false
|
_this.showCursor = false
|
||||||
@@ -408,6 +409,18 @@ export const chatMixinsV2 = {
|
|||||||
this.chatMessageList[index].currentSwiperIndex = e.detail.current
|
this.chatMessageList[index].currentSwiperIndex = e.detail.current
|
||||||
},
|
},
|
||||||
analyzeKeywordsChangeHandle(conversationId, item) {
|
analyzeKeywordsChangeHandle(conversationId, item) {
|
||||||
|
let idx = -1
|
||||||
|
this.chatMessageList.map((item, index) => {
|
||||||
|
if (item.conversationId === conversationId) {
|
||||||
|
idx = index
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if (idx > -1) {
|
||||||
|
if (this.chatMessageList[idx].changeIsRotate) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.$set(this.chatMessageList[idx], 'changeIsRotate', true)
|
||||||
|
}
|
||||||
let listKey = ''
|
let listKey = ''
|
||||||
// 抽奖和订单查询没有换一换
|
// 抽奖和订单查询没有换一换
|
||||||
if (item.goodsList.length > 0) {
|
if (item.goodsList.length > 0) {
|
||||||
@@ -431,18 +444,21 @@ export const chatMixinsV2 = {
|
|||||||
const { success, data } = res
|
const { success, data } = res
|
||||||
if (success) {
|
if (success) {
|
||||||
let changeList = []
|
let changeList = []
|
||||||
let idx = -1
|
this.chatMessageList.map((item) => {
|
||||||
this.chatMessageList.map((item, index) => {
|
|
||||||
if (item.conversationId === conversationId) {
|
if (item.conversationId === conversationId) {
|
||||||
changeList = data.list || []
|
changeList = data.list || []
|
||||||
idx = index
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
if (idx > -1 && listKey) {
|
if (idx > -1 && listKey) {
|
||||||
this.$set(this.chatMessageList[idx], 'listKey', changeList)
|
this.$set(this.chatMessageList[idx], listKey, changeList)
|
||||||
this.$forceUpdate()
|
this.$forceUpdate()
|
||||||
}
|
}
|
||||||
|
setTimeout(() => {
|
||||||
|
this.$set(this.chatMessageList[idx], 'changeIsRotate', false)
|
||||||
|
}, 1000)
|
||||||
}
|
}
|
||||||
|
}).catch(error => {
|
||||||
|
this.$set(this.chatMessageList[idx], 'changeIsRotate', false)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
productItemClickHandle(item) {
|
productItemClickHandle(item) {
|
||||||
@@ -491,7 +507,7 @@ export const chatMixinsV2 = {
|
|||||||
uniqueId: _this.attr.productSelect !== undefined ? _this.attr.productSelect.unique : ''
|
uniqueId: _this.attr.productSelect !== undefined ? _this.attr.productSelect.unique : ''
|
||||||
}).then(function (res) {
|
}).then(function (res) {
|
||||||
try {
|
try {
|
||||||
_this.$set(_this.attr, 'cartAttr', false)
|
_this.closeAttrWindow()
|
||||||
const { cartId } = res.data
|
const { cartId } = res.data
|
||||||
if (type === 1) {
|
if (type === 1) {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
@@ -518,6 +534,9 @@ export const chatMixinsV2 = {
|
|||||||
_this.buyLoading = false
|
_this.buyLoading = false
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
closeAttrWindow() {
|
||||||
|
this.$set(this.attr, 'cartAttr', false)
|
||||||
|
},
|
||||||
hotelItemClickHandle(item) {
|
hotelItemClickHandle(item) {
|
||||||
this.audioStopHandle()
|
this.audioStopHandle()
|
||||||
this.$yrouter.push({
|
this.$yrouter.push({
|
||||||
|
|||||||
+38
-14
@@ -170,7 +170,7 @@
|
|||||||
mode="widthFix"
|
mode="widthFix"
|
||||||
lazy-load
|
lazy-load
|
||||||
/>
|
/>
|
||||||
<text class="s-name">{{ goodItem.storeName }}</text>
|
<text class="s-name">{{ goodItem.merName ||goodItem.storeName }}</text>
|
||||||
<u-icon name="arrow-right" color="#999" size="12"></u-icon>
|
<u-icon name="arrow-right" color="#999" size="12"></u-icon>
|
||||||
</view>
|
</view>
|
||||||
<view class="title one-t">{{ goodItem.name }}</view>
|
<view class="title one-t">{{ goodItem.name }}</view>
|
||||||
@@ -225,7 +225,7 @@
|
|||||||
{{ hotel.hotelTypeName }}
|
{{ hotel.hotelTypeName }}
|
||||||
</view>
|
</view>
|
||||||
<image
|
<image
|
||||||
:src="hotel.img"
|
:src="hotel.img + ((hotel.img && hotel.img.indexOf('.mp4') > -1) ? '?vframe/jpg/offset/1' : '')"
|
||||||
class="img"
|
class="img"
|
||||||
lazy-load
|
lazy-load
|
||||||
/>
|
/>
|
||||||
@@ -320,12 +320,17 @@
|
|||||||
"
|
"
|
||||||
class="change-btn"
|
class="change-btn"
|
||||||
>
|
>
|
||||||
|
<view class="change-btn-content" @click="analyzeKeywordsChangeHandle(item.conversationId, item)">
|
||||||
<image
|
<image
|
||||||
:src="webUrl + '/aiChat/icon-change.png'"
|
:src="webUrl + '/aiChat/icon-53.png'"
|
||||||
|
:class="{
|
||||||
|
'rotate': item.changeIsRotate
|
||||||
|
}"
|
||||||
class="icon"
|
class="icon"
|
||||||
mode="widthFix"
|
mode="widthFix"
|
||||||
@click="analyzeKeywordsChangeHandle(item.conversationId, item)"
|
|
||||||
/>
|
/>
|
||||||
|
换一换
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- 建议提问 -->
|
<!-- 建议提问 -->
|
||||||
@@ -365,6 +370,15 @@
|
|||||||
}"
|
}"
|
||||||
class="page-to-bottom"
|
class="page-to-bottom"
|
||||||
>
|
>
|
||||||
|
<view class="down-icon-wrap">
|
||||||
|
<image
|
||||||
|
v-if="chatMessageListLength > 0 && !isScrollToBottom && !loading"
|
||||||
|
:src="webUrl + '/aiChat/down.png'"
|
||||||
|
class="icon down-icon"
|
||||||
|
mode="widthFix"
|
||||||
|
@click="scrollToBottomHandle"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
<view class="container">
|
<view class="container">
|
||||||
<view
|
<view
|
||||||
v-if="chatNumber"
|
v-if="chatNumber"
|
||||||
@@ -378,13 +392,6 @@
|
|||||||
/>
|
/>
|
||||||
开启新对话
|
开启新对话
|
||||||
</view>
|
</view>
|
||||||
<image
|
|
||||||
v-if="chatMessageListLength > 0 && !isScrollToBottom && !loading"
|
|
||||||
:src="webUrl + '/aiChat/down.png'"
|
|
||||||
class="icon"
|
|
||||||
mode="widthFix"
|
|
||||||
@click="scrollToBottomHandle"
|
|
||||||
/>
|
|
||||||
<view
|
<view
|
||||||
v-for="(item, index) in bottomTools"
|
v-for="(item, index) in bottomTools"
|
||||||
:key="index"
|
:key="index"
|
||||||
@@ -414,14 +421,29 @@
|
|||||||
form-module="history"
|
form-module="history"
|
||||||
@enter-history="audioStopHandle"
|
@enter-history="audioStopHandle"
|
||||||
/>
|
/>
|
||||||
|
<ProductWindow
|
||||||
|
ref="attrWindow"
|
||||||
|
:attr="attr"
|
||||||
|
:cart-num="cart_num"
|
||||||
|
:show-ok="!showGiftBtn"
|
||||||
|
:is-gift="showGiftBtn"
|
||||||
|
:padding-bottom="'60px'"
|
||||||
|
class-name="ai-product-window"
|
||||||
|
ok-text="立即购买"
|
||||||
|
@changeFun="changeFun"
|
||||||
|
@ok="buyNowOrGiftBuyReq(1)"
|
||||||
|
@gift="buyNowOrGiftBuyReq(2)"
|
||||||
|
/>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { chatMixinsV2 } from '../mixins/chatMixinsV2.js'
|
import { chatMixinsV2 } from '../mixins/chatMixinsV2.js'
|
||||||
|
import goCartMixin from '@/mixins/goCartMixins'
|
||||||
import AiHistoryList from '../components/historyList'
|
import AiHistoryList from '../components/historyList'
|
||||||
import BottomSend from '../components/bottomSend.vue'
|
import BottomSend from '../components/bottomSend.vue'
|
||||||
import OrderItem from '../components/orderItem.vue'
|
import OrderItem from '../components/orderItem.vue'
|
||||||
|
import ProductWindow from '@/components/ProductWindow'
|
||||||
import {
|
import {
|
||||||
historyChatMessage
|
historyChatMessage
|
||||||
} from '@/api/chat/index'
|
} from '@/api/chat/index'
|
||||||
@@ -431,9 +453,10 @@ export default {
|
|||||||
components: {
|
components: {
|
||||||
AiHistoryList,
|
AiHistoryList,
|
||||||
BottomSend,
|
BottomSend,
|
||||||
OrderItem
|
OrderItem,
|
||||||
|
ProductWindow
|
||||||
},
|
},
|
||||||
mixins: [chatMixinsV2],
|
mixins: [chatMixinsV2, goCartMixin],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
pageTitle: ''
|
pageTitle: ''
|
||||||
@@ -489,7 +512,8 @@ export default {
|
|||||||
type: -2,
|
type: -2,
|
||||||
showMoreInfo: {},
|
showMoreInfo: {},
|
||||||
currentSwiperIndex: 0,
|
currentSwiperIndex: 0,
|
||||||
showChangeBtn: false
|
showChangeBtn: false,
|
||||||
|
changeIsRotate: false
|
||||||
}
|
}
|
||||||
if (item.cardData) {
|
if (item.cardData) {
|
||||||
const { contentType, finish, items = [] } = item.cardData
|
const { contentType, finish, items = [] } = item.cardData
|
||||||
|
|||||||
@@ -130,7 +130,7 @@ export default {
|
|||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.image-recognition-result-page {
|
.image-recognition-result-page {
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
background: #F5F8FF;
|
background: #fff;
|
||||||
|
|
||||||
.page-body {
|
.page-body {
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
|
|||||||
+53
-24
@@ -1,6 +1,9 @@
|
|||||||
<template>
|
<template>
|
||||||
<view
|
<view
|
||||||
:class="scrollTop > 0 ? 'page-scroll' : ''"
|
:class="{
|
||||||
|
'page-scroll': scrollTop > 0,
|
||||||
|
'new-chat': chatMessageListLength === 0
|
||||||
|
}"
|
||||||
class="fix-tabbar-page"
|
class="fix-tabbar-page"
|
||||||
>
|
>
|
||||||
<hx-navbar
|
<hx-navbar
|
||||||
@@ -12,7 +15,7 @@
|
|||||||
color="#333"
|
color="#333"
|
||||||
transparent="auto"
|
transparent="auto"
|
||||||
barPlaceholder="hidden"
|
barPlaceholder="hidden"
|
||||||
title="云灵AI助手"
|
title="云灵"
|
||||||
@click-left="clickBackHandle"
|
@click-left="clickBackHandle"
|
||||||
/>
|
/>
|
||||||
<page-container
|
<page-container
|
||||||
@@ -99,9 +102,12 @@
|
|||||||
<view class="topic-wrap">
|
<view class="topic-wrap">
|
||||||
<view class="title">
|
<view class="title">
|
||||||
<view class="title-left">大家都在问</view>
|
<view class="title-left">大家都在问</view>
|
||||||
<view class="title-right" @click="loadData">
|
<view class="title-right" @click="loadData('click')">
|
||||||
<image
|
<image
|
||||||
:src="webUrl + '/aiChat/icon-53.png'"
|
:src="webUrl + '/aiChat/icon-53.png'"
|
||||||
|
:class="{
|
||||||
|
'rotate': topicIsRotate
|
||||||
|
}"
|
||||||
class="icon"
|
class="icon"
|
||||||
mode="widthFix"
|
mode="widthFix"
|
||||||
/>
|
/>
|
||||||
@@ -237,8 +243,6 @@
|
|||||||
<!-- 换一换 -->
|
<!-- 换一换 -->
|
||||||
<view
|
<view
|
||||||
v-if="!item.showCursor &&
|
v-if="!item.showCursor &&
|
||||||
item.nodes &&
|
|
||||||
item.nodes.length &&
|
|
||||||
!item.isError &&
|
!item.isError &&
|
||||||
(item.orderList.length > 0 ||
|
(item.orderList.length > 0 ||
|
||||||
item.giftGoodsList.length > 0 ||
|
item.giftGoodsList.length > 0 ||
|
||||||
@@ -282,7 +286,7 @@
|
|||||||
mode="widthFix"
|
mode="widthFix"
|
||||||
lazy-load
|
lazy-load
|
||||||
/>
|
/>
|
||||||
<text class="s-name">{{ goodItem.storeName }}</text>
|
<text class="s-name">{{ goodItem.merName ||goodItem.storeName }}</text>
|
||||||
<u-icon name="arrow-right" color="#999" size="12"></u-icon>
|
<u-icon name="arrow-right" color="#999" size="12"></u-icon>
|
||||||
</view>
|
</view>
|
||||||
<view class="title one-t">{{ goodItem.name }}</view>
|
<view class="title one-t">{{ goodItem.name }}</view>
|
||||||
@@ -337,7 +341,7 @@
|
|||||||
{{ hotel.hotelTypeName }}
|
{{ hotel.hotelTypeName }}
|
||||||
</view>
|
</view>
|
||||||
<image
|
<image
|
||||||
:src="hotel.img"
|
:src="hotel.img + ((hotel.img && hotel.img.indexOf('.mp4') > -1) ? '?vframe/jpg/offset/1' : '')"
|
||||||
class="img"
|
class="img"
|
||||||
lazy-load
|
lazy-load
|
||||||
/>
|
/>
|
||||||
@@ -433,12 +437,17 @@
|
|||||||
"
|
"
|
||||||
class="change-btn"
|
class="change-btn"
|
||||||
>
|
>
|
||||||
|
<view class="change-btn-content" @click="analyzeKeywordsChangeHandle(item.conversationId, item)">
|
||||||
<image
|
<image
|
||||||
:src="webUrl + '/aiChat/icon-change.png'"
|
:src="webUrl + '/aiChat/icon-53.png'"
|
||||||
|
:class="{
|
||||||
|
'rotate': item.changeIsRotate
|
||||||
|
}"
|
||||||
class="icon"
|
class="icon"
|
||||||
mode="widthFix"
|
mode="widthFix"
|
||||||
@click="analyzeKeywordsChangeHandle(item.conversationId, item)"
|
|
||||||
/>
|
/>
|
||||||
|
换一换
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- 建议提问 -->
|
<!-- 建议提问 -->
|
||||||
@@ -482,6 +491,15 @@
|
|||||||
}"
|
}"
|
||||||
class="page-to-bottom"
|
class="page-to-bottom"
|
||||||
>
|
>
|
||||||
|
<view class="down-icon-wrap">
|
||||||
|
<image
|
||||||
|
v-if="chatMessageListLength > 0 && !isScrollToBottom && !loading"
|
||||||
|
:src="webUrl + '/aiChat/down.png'"
|
||||||
|
class="icon down-icon"
|
||||||
|
mode="widthFix"
|
||||||
|
@click="scrollToBottomHandle"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
<view class="container">
|
<view class="container">
|
||||||
<view
|
<view
|
||||||
v-if="chatNumber"
|
v-if="chatNumber"
|
||||||
@@ -495,13 +513,6 @@
|
|||||||
/>
|
/>
|
||||||
开启新对话
|
开启新对话
|
||||||
</view>
|
</view>
|
||||||
<image
|
|
||||||
v-if="chatMessageListLength > 0 && !isScrollToBottom && !loading"
|
|
||||||
:src="webUrl + '/aiChat/down.png'"
|
|
||||||
class="icon"
|
|
||||||
mode="widthFix"
|
|
||||||
@click="scrollToBottomHandle"
|
|
||||||
/>
|
|
||||||
<view
|
<view
|
||||||
v-for="(item, index) in bottomTools"
|
v-for="(item, index) in bottomTools"
|
||||||
:key="index"
|
:key="index"
|
||||||
@@ -537,7 +548,8 @@
|
|||||||
:cart-num="cart_num"
|
:cart-num="cart_num"
|
||||||
:show-ok="!showGiftBtn"
|
:show-ok="!showGiftBtn"
|
||||||
:is-gift="showGiftBtn"
|
:is-gift="showGiftBtn"
|
||||||
:padding-bottom="bottomSafeDistance + 'px'"
|
:padding-bottom="'60px'"
|
||||||
|
class-name="ai-product-window"
|
||||||
ok-text="立即购买"
|
ok-text="立即购买"
|
||||||
@changeFun="changeFun"
|
@changeFun="changeFun"
|
||||||
@ok="buyNowOrGiftBuyReq(1)"
|
@ok="buyNowOrGiftBuyReq(1)"
|
||||||
@@ -573,7 +585,8 @@ export default {
|
|||||||
animationStr: '',
|
animationStr: '',
|
||||||
settingInfo: {},
|
settingInfo: {},
|
||||||
topicList: [],
|
topicList: [],
|
||||||
onlyOneToAddCart: false
|
onlyOneToAddCart: false,
|
||||||
|
topicIsRotate: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad(options) {
|
onLoad(options) {
|
||||||
@@ -603,7 +616,11 @@ export default {
|
|||||||
this.loadData()
|
this.loadData()
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
loadData() {
|
loadData(type = '') {
|
||||||
|
if (this.topicIsRotate) return
|
||||||
|
if (type === 'click') {
|
||||||
|
this.topicIsRotate = true
|
||||||
|
}
|
||||||
getAiSystemInfoTopic().then(res => {
|
getAiSystemInfoTopic().then(res => {
|
||||||
const { success, data } = res
|
const { success, data } = res
|
||||||
if (success) {
|
if (success) {
|
||||||
@@ -619,11 +636,15 @@ export default {
|
|||||||
}
|
}
|
||||||
list.sort(() => Math.random() - 0.5)
|
list.sort(() => Math.random() - 0.5)
|
||||||
this.topicList = list.slice(0, 3)
|
this.topicList = list.slice(0, 3)
|
||||||
|
setTimeout(() => {
|
||||||
|
this.topicIsRotate = false
|
||||||
|
}, 1000)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 创建新会话
|
// 创建新会话
|
||||||
createNewHandle() {
|
createNewHandle() {
|
||||||
|
this.closeAttrWindow()
|
||||||
if (this.audioContext) {
|
if (this.audioContext) {
|
||||||
this.audioContext.stop()
|
this.audioContext.stop()
|
||||||
}
|
}
|
||||||
@@ -704,8 +725,8 @@ export default {
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
height: calc(100vh - 220rpx);
|
height: calc(100vh - 240rpx);
|
||||||
padding: 0 0 220rpx 0;
|
padding: 0 0 240rpx 0;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
.focus-guide-wrap {
|
.focus-guide-wrap {
|
||||||
@@ -731,7 +752,7 @@ export default {
|
|||||||
font-size: 34rpx;
|
font-size: 34rpx;
|
||||||
}
|
}
|
||||||
.content {
|
.content {
|
||||||
padding: 30rpx 0 0 0;
|
padding: 30rpx 24rpx 0 24rpx;
|
||||||
color: #3D4CF0;
|
color: #3D4CF0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -755,8 +776,12 @@ export default {
|
|||||||
}
|
}
|
||||||
.icon {
|
.icon {
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 40rpx;
|
width: 32rpx;
|
||||||
height: 32rpx;
|
height: 32rpx;
|
||||||
|
margin: 0 8rpx 0 0;
|
||||||
|
&.rotate {
|
||||||
|
animation: spin-icon 1s linear;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.list-wrap {
|
.list-wrap {
|
||||||
@@ -766,15 +791,19 @@ export default {
|
|||||||
.list-cont {
|
.list-cont {
|
||||||
padding: 0 24rpx;
|
padding: 0 24rpx;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: flex-start;
|
||||||
.list-item {
|
.list-item {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
padding: 12rpx 18rpx;
|
padding: 6rpx 12rpx;
|
||||||
margin: 0 0 24rpx 0;
|
margin: 0 0 24rpx 0;
|
||||||
border-radius: 12rpx;
|
border-radius: 12rpx;
|
||||||
border: 1rpx solid #ddd;
|
border: 1rpx solid #ddd;
|
||||||
font-size: 28rpx;
|
font-size: 28rpx;
|
||||||
color: #666;
|
color: #666;
|
||||||
|
background-color: #fff;
|
||||||
.icon {
|
.icon {
|
||||||
display: block;
|
display: block;
|
||||||
width: 24rpx;
|
width: 24rpx;
|
||||||
|
|||||||
+1
-1
@@ -52,7 +52,7 @@ export function getCompletionsV3(params) {
|
|||||||
|
|
||||||
// 通过关键字-搜索列表-换一换
|
// 通过关键字-搜索列表-换一换
|
||||||
export function getAnalyzeKeywordsChangeV3(data) {
|
export function getAnalyzeKeywordsChangeV3(data) {
|
||||||
return request.post('/v1/chat/goods/refresh', data, { login: true })
|
return request.post('/v1/chat/skill/refresh', data, { login: true })
|
||||||
}
|
}
|
||||||
|
|
||||||
// 以图搜索商品
|
// 以图搜索商品
|
||||||
|
|||||||
+41
-11
@@ -12,10 +12,14 @@ page {
|
|||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
background: linear-gradient(155deg, rgba(61, 76, 241, 0.15) 0%, rgba(255,255,255,1) 25%, rgba(255,255,255,1) 75%, rgba(61, 76, 241, 0.15) 100%);
|
background: linear-gradient(155deg, rgba(61, 76, 241, 0.15) 0%, rgba(255,255,255,1) 25%, rgba(255,255,255,1) 75%, rgba(61, 76, 241, 0.15) 100%);
|
||||||
// background-color: #fff;
|
// background-color: #fff;
|
||||||
// background-size: 100% 100vh;
|
// background-size: 100% calc(100vh - 160rpx);
|
||||||
// background-image: url(https://wxapp.xdd618.com/api/file/pic/aiChat/bg.png);
|
// background-image: url(https://wxapp.xdd618.com/api/file/pic/aiChat/bg.png);
|
||||||
// background-repeat: no-repeat;
|
// background-repeat: no-repeat;
|
||||||
// background-attachment: fixed;
|
// background-attachment: fixed;
|
||||||
|
&.new-chat {
|
||||||
|
background-size: 100% calc(100vh - 160rpx);
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
}
|
||||||
.fix-tabbar-header {
|
.fix-tabbar-header {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 0;
|
top: 0;
|
||||||
@@ -90,12 +94,11 @@ page {
|
|||||||
}
|
}
|
||||||
.page-to-bottom {
|
.page-to-bottom {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 180rpx;
|
bottom: 160rpx;
|
||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
z-index: 8;
|
z-index: 8;
|
||||||
transition: all 0.2s;
|
transition: all 0.2s;
|
||||||
overflow-x: auto;
|
|
||||||
&.focus {
|
&.focus {
|
||||||
transform: translateY(-40rpx);
|
transform: translateY(-40rpx);
|
||||||
}
|
}
|
||||||
@@ -104,8 +107,9 @@ page {
|
|||||||
flex-wrap: nowrap;
|
flex-wrap: nowrap;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding: 0 24rpx;
|
padding: 24rpx;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
overflow-x: auto;
|
||||||
}
|
}
|
||||||
.new-chat {
|
.new-chat {
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -119,7 +123,7 @@ page {
|
|||||||
font-size: 30rpx;
|
font-size: 30rpx;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
background-color: #3D4CF1;
|
background-color: #3D4CF1;
|
||||||
box-shadow: 0rpx 6rpx 20rpx rgba(74,74,74,0.1);
|
box-shadow: 0rpx 0 12rpx rgba(74,74,74,0.2);
|
||||||
.btn-icon {
|
.btn-icon {
|
||||||
display: block;
|
display: block;
|
||||||
width: 40rpx;
|
width: 40rpx;
|
||||||
@@ -127,14 +131,19 @@ page {
|
|||||||
margin: 0 8rpx 0 0;
|
margin: 0 8rpx 0 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.down-icon-wrap {
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
padding: 0 24rpx 0 0;
|
||||||
|
}
|
||||||
.icon {
|
.icon {
|
||||||
display: block;
|
display: block;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
width: 64rpx;
|
width: 64rpx;
|
||||||
height: 64rpx;
|
height: 64rpx;
|
||||||
margin: 0 20rpx 0 0;
|
|
||||||
border-radius: 16rpx;
|
border-radius: 16rpx;
|
||||||
box-shadow: 0rpx 6rpx 20rpx rgba(74,74,74,0.1);
|
background-color: #fff;
|
||||||
|
box-shadow: 0rpx 0 12rpx rgba(74,74,74,0.2);
|
||||||
}
|
}
|
||||||
.bottom-tool-item {
|
.bottom-tool-item {
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -149,6 +158,9 @@ page {
|
|||||||
color: #333;
|
color: #333;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
box-shadow: 0rpx 6rpx 20rpx rgba(74,74,74,0.1);
|
box-shadow: 0rpx 6rpx 20rpx rgba(74,74,74,0.1);
|
||||||
|
&:last-child {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
.tool-icon {
|
.tool-icon {
|
||||||
display: block;
|
display: block;
|
||||||
width: 32rpx;
|
width: 32rpx;
|
||||||
@@ -1081,10 +1093,21 @@ page {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
padding: 0 0 20rpx 0;
|
padding: 0 0 20rpx 0;
|
||||||
|
.change-btn-content {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
color: #3D4CF0;
|
||||||
|
font-size: 28rpx;
|
||||||
.icon {
|
.icon {
|
||||||
display: block;
|
display: block;
|
||||||
width: 124rpx;
|
width: 32rpx;
|
||||||
height: 38rpx;
|
height: 32rpx;
|
||||||
|
margin: 0 8rpx 0 0;
|
||||||
|
&.rotate {
|
||||||
|
animation: spin-icon 1s linear;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1224,8 +1247,6 @@ page {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.page-to-bottom {
|
|
||||||
}
|
|
||||||
.recommend-goods-wrap {
|
.recommend-goods-wrap {
|
||||||
width: calc(100% + 48rpx);
|
width: calc(100% + 48rpx);
|
||||||
padding: 24rpx 0;
|
padding: 24rpx 0;
|
||||||
@@ -1335,3 +1356,12 @@ page {
|
|||||||
margin: 24rpx 0 0 0;
|
margin: 24rpx 0 0 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@keyframes spin-icon {
|
||||||
|
0% {
|
||||||
|
transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
transform: rotate(720deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -37,6 +37,12 @@ input{line-height: normal; box-sizing:border-box;}
|
|||||||
.line1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width: 100%;}
|
.line1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width: 100%;}
|
||||||
.line2{word-break:break-all;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
|
.line2{word-break:break-all;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
|
||||||
.mask{position:fixed;top:0;left:0;right:0;bottom:0;z-index:55;background-color:rgba(0,0,0,0.5);}
|
.mask{position:fixed;top:0;left:0;right:0;bottom:0;z-index:55;background-color:rgba(0,0,0,0.5);}
|
||||||
|
.ai-product-window.product-window {
|
||||||
|
z-index: 1002;
|
||||||
|
}
|
||||||
|
.ai-product-window.mask {
|
||||||
|
z-index: 1001;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,13 @@
|
|||||||
<template>
|
<template>
|
||||||
<view>
|
<view>
|
||||||
<view class="product-window" :class="attr.cartAttr === true ? 'on' : ''" :style="{paddingBottom: paddingBottom}">
|
<view
|
||||||
|
:class="{
|
||||||
|
'on': attr.cartAttr === true,
|
||||||
|
[className]: className
|
||||||
|
}"
|
||||||
|
:style="{paddingBottom: paddingBottom}"
|
||||||
|
class="product-window"
|
||||||
|
>
|
||||||
<view class="textpic acea-row row-between-wrapper">
|
<view class="textpic acea-row row-between-wrapper">
|
||||||
<view class="pictrue" @click="previewImg(attrObj.productSelect.image)">
|
<view class="pictrue" @click="previewImg(attrObj.productSelect.image)">
|
||||||
<image :src="attrObj.productSelect.image" class="image" />
|
<image :src="attrObj.productSelect.image" class="image" />
|
||||||
@@ -84,7 +91,13 @@
|
|||||||
>送给朋友</u-button>
|
>送给朋友</u-button>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="mask" @touchmove.prevent :hidden="attr.cartAttr === false" @click="closeAttr"></view>
|
<view
|
||||||
|
:hidden="attr.cartAttr === false"
|
||||||
|
:class="className"
|
||||||
|
class="mask"
|
||||||
|
@touchmove.prevent
|
||||||
|
@click="closeAttr"
|
||||||
|
></view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
@@ -122,6 +135,10 @@ export default {
|
|||||||
okText: {
|
okText: {
|
||||||
type: String,
|
type: String,
|
||||||
default: '加入购物车'
|
default: '加入购物车'
|
||||||
|
},
|
||||||
|
className: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
|||||||
@@ -5,13 +5,15 @@
|
|||||||
v-if="!item.isFarmerShop"
|
v-if="!item.isFarmerShop"
|
||||||
:src="item[imageKey]"
|
:src="item[imageKey]"
|
||||||
class="img"
|
class="img"
|
||||||
|
lazy-load
|
||||||
/>
|
/>
|
||||||
<image
|
<image
|
||||||
:src="item.farmerShopCover"
|
:src="item.farmerShopCover"
|
||||||
v-if="item.farmerShopCoverType === 1 && item.isFarmerShop"
|
v-if="item.farmerShopCoverType === 1 && item.isFarmerShop"
|
||||||
class="img"
|
class="img"
|
||||||
mode="heightFix|widthFix">
|
mode="heightFix|widthFix"
|
||||||
</image>
|
lazy-load
|
||||||
|
/>
|
||||||
<image
|
<image
|
||||||
:src="item.farmerShopCover + '?vframe/jpg/offset/1'"
|
:src="item.farmerShopCover + '?vframe/jpg/offset/1'"
|
||||||
mode="heightFix|widthFix"
|
mode="heightFix|widthFix"
|
||||||
@@ -20,30 +22,35 @@
|
|||||||
:show-fullscreen-btn="false"
|
:show-fullscreen-btn="false"
|
||||||
:show-play-btn="false"
|
:show-play-btn="false"
|
||||||
class="img"
|
class="img"
|
||||||
:poster="item.farmerShopCover + '?vframe/jpg/offset/1'">
|
:poster="item.farmerShopCover + '?vframe/jpg/offset/1'"
|
||||||
</image>
|
lazy-load
|
||||||
|
/>
|
||||||
|
|
||||||
<image
|
<image
|
||||||
v-if="item.isOldBrand"
|
v-if="item.isOldBrand"
|
||||||
:src="webUrl + '/home/old-mark.png'"
|
:src="webUrl + '/home/old-mark.png'"
|
||||||
class="mark-img"
|
class="mark-img"
|
||||||
|
lazy-load
|
||||||
/>
|
/>
|
||||||
<image
|
<image
|
||||||
v-if="item.isGiftCard"
|
v-if="item.isGiftCard"
|
||||||
style="left: 0;width: 120rpx;"
|
style="left: 0;width: 120rpx;"
|
||||||
:src="webUrl + '/home/gift-tag.png'"
|
:src="webUrl + '/home/gift-tag.png'"
|
||||||
class="mark-img"
|
class="mark-img"
|
||||||
|
lazy-load
|
||||||
/>
|
/>
|
||||||
<image
|
<image
|
||||||
v-if="item.isLandmarkGoods"
|
v-if="item.isLandmarkGoods"
|
||||||
:src="webUrl + '/home/mark-land.png'"
|
:src="webUrl + '/home/mark-land.png'"
|
||||||
class="mark-img"
|
class="mark-img"
|
||||||
style="right: 20rpx"
|
style="right: 20rpx"
|
||||||
|
lazy-load
|
||||||
/>
|
/>
|
||||||
<image
|
<image
|
||||||
v-if="item.isCountyFamous"
|
v-if="item.isCountyFamous"
|
||||||
:src="webUrl + '/home/qixian-mark.png'"
|
:src="webUrl + '/home/qixian-mark.png'"
|
||||||
class="mark-img"
|
class="mark-img"
|
||||||
|
lazy-load
|
||||||
/>
|
/>
|
||||||
<image
|
<image
|
||||||
v-if="item.isIch"
|
v-if="item.isIch"
|
||||||
@@ -55,6 +62,7 @@
|
|||||||
v-if="item.isFarmerShop"
|
v-if="item.isFarmerShop"
|
||||||
:src="webUrl + '/orderIcon/nm.png'"
|
:src="webUrl + '/orderIcon/nm.png'"
|
||||||
class="mark-img-nm"
|
class="mark-img-nm"
|
||||||
|
lazy-load
|
||||||
/>
|
/>
|
||||||
</view>
|
</view>
|
||||||
<view v-if="item.isFarmerShop" class="more-t v12-pt-2 v12-font-bold v12-font-28 v12-px-2" >{{ item.farmerShopContent }}</view>
|
<view v-if="item.isFarmerShop" class="more-t v12-pt-2 v12-font-bold v12-font-28 v12-px-2" >{{ item.farmerShopContent }}</view>
|
||||||
@@ -83,12 +91,14 @@
|
|||||||
<text class="v12-font-20">
|
<text class="v12-font-20">
|
||||||
¥
|
¥
|
||||||
</text>
|
</text>
|
||||||
{{ item[priceKey] }}</text>
|
{{ item[priceKey] }}
|
||||||
|
</text>
|
||||||
</view>
|
</view>
|
||||||
<view v-if="item.isNegotiable === 0" class="btn" @click.stop="$emit('add', item)">
|
<view v-if="item.isNegotiable === 0" class="btn" @click.stop="$emit('add', item)">
|
||||||
<image
|
<image
|
||||||
:src="webUrl + '/home/icon-cart.png'"
|
:src="webUrl + '/home/icon-cart.png'"
|
||||||
class="img"
|
class="img"
|
||||||
|
lazy-load
|
||||||
/>
|
/>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -97,7 +107,7 @@
|
|||||||
v-if="item.isFarmerShop"
|
v-if="item.isFarmerShop"
|
||||||
class="v12-justify-start v12-align-center v12-pt-2 v12-px-2 v12-pb-2">
|
class="v12-justify-start v12-align-center v12-pt-2 v12-px-2 v12-pb-2">
|
||||||
<view class="btn v12-mr-2">
|
<view class="btn v12-mr-2">
|
||||||
<image :src="item.farmerShopLogo" class="nm-img-logo v12-radius-100"></image>
|
<image :src="item.farmerShopLogo" class="nm-img-logo v12-radius-100" lazy-load />
|
||||||
</view>
|
</view>
|
||||||
<view class="one-t v12-font-24 v12-dark1-text" style="width:230rpx">{{ item.farmerShopName }}/{{ item.farmerShopCityName || '-' }}</view>
|
<view class="one-t v12-font-24 v12-dark1-text" style="width:230rpx">{{ item.farmerShopName }}/{{ item.farmerShopCityName || '-' }}</view>
|
||||||
</view>
|
</view>
|
||||||
|
|||||||
+2
-2
@@ -885,7 +885,7 @@
|
|||||||
{
|
{
|
||||||
"path": "views/index",
|
"path": "views/index",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "云灵AI助手",
|
"navigationBarTitleText": "云灵",
|
||||||
"navigationStyle": "custom",
|
"navigationStyle": "custom",
|
||||||
"navigationBarTextStyle": "white"
|
"navigationBarTextStyle": "white"
|
||||||
}
|
}
|
||||||
@@ -893,7 +893,7 @@
|
|||||||
{
|
{
|
||||||
"path": "views/history",
|
"path": "views/history",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationBarTitleText": "云灵AI助手",
|
"navigationBarTitleText": "云灵",
|
||||||
"navigationStyle": "custom",
|
"navigationStyle": "custom",
|
||||||
"navigationBarTextStyle": "white"
|
"navigationBarTextStyle": "white"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,10 +39,6 @@
|
|||||||
@click="toTravelResidence"
|
@click="toTravelResidence"
|
||||||
/>
|
/>
|
||||||
<image
|
<image
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
v-show="partnerType === 'province_partner' || partnerType === ''"
|
|
||||||
>>>>>>> 320bda6ed8582fd2c81f73c272076e2b218418ab
|
|
||||||
:src="images.experienceStoreImage"
|
:src="images.experienceStoreImage"
|
||||||
class="img-item"
|
class="img-item"
|
||||||
mode="widthFix"
|
mode="widthFix"
|
||||||
|
|||||||
Reference in New Issue
Block a user