diff --git a/aiChat/components/orderItem.vue b/aiChat/components/orderItem.vue index 50b53c0..2e9b37f 100644 --- a/aiChat/components/orderItem.vue +++ b/aiChat/components/orderItem.vue @@ -6,7 +6,7 @@ diff --git a/aiChat/mixins/chatMixinsV2.js b/aiChat/mixins/chatMixinsV2.js index 473b3f6..a9b2fb0 100644 --- a/aiChat/mixins/chatMixinsV2.js +++ b/aiChat/mixins/chatMixinsV2.js @@ -3,8 +3,11 @@ import { getCompletionsV3, deleteChatItemByConversationId, // getAnalyzeKeywordsV1, - getAnalyzeKeywordsChangeV1 + getAnalyzeKeywordsChangeV3 } from '@/api/chat/index' +import { + postCartAdd +} from '@/api/store' import { VUE_APP_API_URL } from '@/config' import settings from '@/config/baseSetting.js' import { formatAiMsgContent } from '../utils/aiChat' @@ -46,6 +49,7 @@ export const chatMixinsV2 = { isScrollToBottom: false, // 状态栏高度 statusBarHeight: 20, + bottomSafeDistance: 0, fileHttpStr: Object.freeze(VUE_APP_API_URL + settings.sysPrefix), keyboardHeight: 0, optionsFrom: '', @@ -75,7 +79,9 @@ export const chatMixinsV2 = { audioAyy: [], isPlayAudio: false, audioContext: null, - audioPlayId: '' + audioPlayId: '', + showGiftBtn: false, + buyLoading: false } }, computed: { @@ -118,6 +124,7 @@ export const chatMixinsV2 = { // #endif // 状态栏高度 _this.statusBarHeight = statusBar + _this.bottomSafeDistance = e.safeAreaInsets.bottom } }) _this.createdCallbak() @@ -226,6 +233,19 @@ export const chatMixinsV2 = { conversationId: '', prompt, listQuestion: [], + // 特产商品 + goodsList: [], + // 礼品商品 + giftGoodsList: [], + // 非遗文化 + ichList: [], + // 千县名品 + qianxianList: [], + // 抽奖 + prizeList: [], + // 店铺 + shopList: [], + // 订单 orderList: [], type: -2, showMoreInfo: {} @@ -315,6 +335,11 @@ export const chatMixinsV2 = { this.chatMessageList[this.chatMessageListLength - 1].orderList = message.listCards || [] } } + if (contentType ==='shop') { + if (!finish && message.listCards) { + this.chatMessageList[this.chatMessageListLength - 1].shopList = message.listCards || [] + } + } this.$forceUpdate() this.$nextTick(() => { this.scrollToBottomHandle() @@ -346,23 +371,39 @@ export const chatMixinsV2 = { console.log('send failed (' + err.code + ')') } }, - analyzeKeywordsChangeHandle(conversationId, showMoreInfo) { - getAnalyzeKeywordsChangeV1({ - conversationId, - ...showMoreInfo + analyzeKeywordsChangeHandle(conversationId, item) { + let listKey = '' + // 抽奖和订单查询没有换一换 + if (item.goodsList.length > 0) { + listKey = 'goodsList' + } + if (item.giftGoodsList.length > 0) { + listKey = 'giftGoodsList' + } + if (item.ichList.length > 0) { + listKey = 'ichList' + } + if (item.qianxianList.length > 0) { + listKey = 'qianxianList' + } + if (item.shopList.length > 0) { + listKey = 'shopList' + } + getAnalyzeKeywordsChangeV3({ + conversationId }).then(res => { const { success, data } = res if (success) { - let resultItems = [] + let changeList = [] let idx = -1 this.chatMessageList.map((item, index) => { if (item.conversationId === conversationId) { - resultItems = data.resultItems || [] + changeList = data.list || [] idx = index } }) - if (idx > -1) { - this.$set(this.chatMessageList[idx].showMoreInfo, 'resultItems', resultItems) + if (idx > -1 && listKey) { + this.$set(this.chatMessageList[idx], 'listKey', changeList) this.$forceUpdate() } } @@ -377,6 +418,56 @@ export const chatMixinsV2 = { } }) }, + productItemBuyNowClickHandle(item) { + this.showGiftBtn = false + this.cart_num = 1 + this.addToCart(item) + }, + productItemGiftBuyClickHandle(item) { + this.showGiftBtn = true + this.cart_num = 1 + this.addToCart(item) + }, + buyNowOrGiftBuyReq(type) { + const _this = this + if (_this.buyLoading) { + return + } + _this.buyLoading = true + postCartAdd({ + productId: _this.m_id, + cartNum: _this.attr.productSelect.cart_num, + new: 1, + uniqueId: _this.attr.productSelect !== undefined ? _this.attr.productSelect.unique : '' + }).then(function (res) { + try { + _this.$set(_this.attr, 'cartAttr', false) + const { cartId } = res.data + if (type === 1) { + uni.navigateTo({ + url: '/pages/order/OrderSubmission/index?id=' + cartId + }) + return + } + if(type === 2) { + uni.navigateTo({ + url: '/pkg_user/views/gift/gift?cartId=' + cartId + }) + return + } + } catch (error) { + console.log(error) + } + }).catch(error => { + uni.showToast({ + title: error.msg, + icon: "none", + duration: 5000 + }) + }).finally(() => { + _this.buyLoading = false + }) + }, hotelItemClickHandle(item) { this.audioStopHandle() this.$yrouter.push({ diff --git a/aiChat/views/index.vue b/aiChat/views/index.vue index 78942ed..dda3512 100644 --- a/aiChat/views/index.vue +++ b/aiChat/views/index.vue @@ -38,7 +38,7 @@ })">播放 --> - + - + - + @@ -413,11 +465,24 @@ :status-bar-height="statusBarHeight" @enter-history="audioStopHandle" /> +