Merge branch 'dev' into test
This commit is contained in:
@@ -120,6 +120,14 @@ export default {
|
||||
webUrl: this.$VUE_APP_RESOURCES_URL,
|
||||
// 输入模式:input-键盘,sound-语音
|
||||
inputModel: 'input',
|
||||
/**
|
||||
* 端午节送礼攻略
|
||||
* 丽江逛吃攻略
|
||||
* 云南非遗有哪些?
|
||||
* 怎么申请地理标志保护产品?
|
||||
* 想找个像《去有风的地方》那样的治愈县城
|
||||
* 云南有哪些小众县城适合旅居?
|
||||
*/
|
||||
prompt: '',
|
||||
recordManager: null,
|
||||
// 录音权限是否开通
|
||||
|
||||
+100
-3
@@ -1,7 +1,9 @@
|
||||
import {
|
||||
getSseConfigV1,
|
||||
getCompletionsV2,
|
||||
deleteChatItemByConversationId
|
||||
deleteChatItemByConversationId,
|
||||
getAnalyzeKeywordsV1,
|
||||
getAnalyzeKeywordsChangeV1
|
||||
} from '@/api/chat/index'
|
||||
import { VUE_APP_API_URL } from '@/config'
|
||||
import settings from '@/config/baseSetting.js'
|
||||
@@ -104,10 +106,21 @@ export const chatMixins = {
|
||||
copyContentHandle(data) {
|
||||
uni.setClipboardData({
|
||||
data,
|
||||
success: () =>
|
||||
success: () => {
|
||||
uni.showToast({
|
||||
title: '已复制'
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
copyMoreInfoHandle(item) {
|
||||
uni.setClipboardData({
|
||||
data: JSON.stringify(item.showMoreInfo),
|
||||
success: () => {
|
||||
uni.showToast({
|
||||
title: '已复制'
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
shareHandle() {
|
||||
@@ -181,7 +194,8 @@ export const chatMixins = {
|
||||
conversationId: '',
|
||||
prompt,
|
||||
listQuestion: [],
|
||||
type: -2
|
||||
type: -2,
|
||||
showMoreInfo: {}
|
||||
})
|
||||
_this.loading = true
|
||||
_this.showCursor = false
|
||||
@@ -207,6 +221,32 @@ export const chatMixins = {
|
||||
_this.chatErrorSetContent()
|
||||
})
|
||||
})
|
||||
getAnalyzeKeywordsV1({
|
||||
'chatNumber': _this.chatNumber,
|
||||
conversationId,
|
||||
prompt
|
||||
}).then(keywordRes => {
|
||||
if (keywordRes.success) {
|
||||
const keywordResData = keywordRes.data
|
||||
const show = (keywordResData.searchArtworks ||
|
||||
keywordResData.searchDiscount ||
|
||||
keywordResData.searchGoods ||
|
||||
keywordResData.searchLandmark ||
|
||||
keywordResData.searchTowns ||
|
||||
keywordResData.searchTravelGuide
|
||||
) && (keywordResData.resultItems && keywordResData.resultItems.length > 0)
|
||||
_this.chatMessageList[_this.chatMessageListLength - 1].showMoreInfo = keywordResData
|
||||
_this.chatMessageList[_this.chatMessageListLength - 1].showMoreInfo.show = show
|
||||
// 展示类型
|
||||
_this.chatMessageList[_this.chatMessageListLength - 1].showMoreInfo.showType = ''
|
||||
if (show && keywordResData.resultItems) {
|
||||
keywordResData.resultItems.map(resItem => {
|
||||
_this.chatMessageList[_this.chatMessageListLength - 1].showMoreInfo.showType = resItem.type
|
||||
})
|
||||
}
|
||||
console.log(_this.chatMessageList[_this.chatMessageListLength - 1])
|
||||
}
|
||||
})
|
||||
} else {
|
||||
_this.chatErrorSetContent()
|
||||
}
|
||||
@@ -215,6 +255,63 @@ export const chatMixins = {
|
||||
_this.chatErrorSetContent()
|
||||
})
|
||||
},
|
||||
analyzeKeywordsChangeHandle(conversationId, showMoreInfo) {
|
||||
getAnalyzeKeywordsChangeV1({
|
||||
conversationId,
|
||||
...showMoreInfo
|
||||
}).then(res => {
|
||||
const { success, data } = res
|
||||
if (success) {
|
||||
let resultItems = []
|
||||
let idx = -1
|
||||
this.chatMessageList.map((item, index) => {
|
||||
if (item.conversationId === conversationId) {
|
||||
resultItems = data.resultItems || []
|
||||
idx = index
|
||||
}
|
||||
})
|
||||
if (idx > -1) {
|
||||
this.$set(this.chatMessageList[idx].showMoreInfo, 'resultItems', resultItems)
|
||||
this.$forceUpdate()
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
productItemClickHandle(item) {
|
||||
this.$yrouter.push({
|
||||
path: '/pages/shop/GoodsCon/index',
|
||||
query: {
|
||||
id: item.id
|
||||
}
|
||||
})
|
||||
},
|
||||
hotelItemClickHandle(item) {
|
||||
this.$yrouter.push({
|
||||
path: '/pagesInn/inn/innHome',
|
||||
query: {
|
||||
id: item.id
|
||||
}
|
||||
})
|
||||
},
|
||||
ichItemClickHandle(item) {
|
||||
this.$yrouter.push({
|
||||
path: '/pkg_product/views/heritage/details',
|
||||
query: {
|
||||
id: item.id
|
||||
}
|
||||
})
|
||||
},
|
||||
qianxianItemClickHandle(item) {
|
||||
this.$yrouter.push({
|
||||
path: '/pkg_product/views/famousQianxianShop',
|
||||
query: {
|
||||
id: item.id
|
||||
}
|
||||
})
|
||||
},
|
||||
prizeItemClickHandle() {
|
||||
this.$yrouter.push({ path: '/pkg-video/views/lottery' })
|
||||
},
|
||||
chatErrorSetContent() {
|
||||
this.chatMessageList[this.chatMessageListLength - 1].isError = true
|
||||
this.chatMessageList[this.chatMessageListLength - 1].content = this.errorMsg
|
||||
|
||||
+117
-1
@@ -100,6 +100,121 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 换一换 -->
|
||||
<view
|
||||
v-if="!item.showCursor && item.nodes && item.nodes.length && !item.isError && item.showMoreInfo.show"
|
||||
class="change-list-wrap"
|
||||
>
|
||||
<view v-if="item.showMoreInfo.showType === '特产商品'" class="list-wrap">
|
||||
<view
|
||||
v-for="(productItem, productIndex) in item.showMoreInfo.resultItems"
|
||||
:key="productIndex"
|
||||
class="product-item"
|
||||
@click="productItemClickHandle(productItem)"
|
||||
>
|
||||
<image
|
||||
:src="productItem.img"
|
||||
class="img"
|
||||
/>
|
||||
<view class="product-info">
|
||||
<view class="name one-t">
|
||||
{{ productItem.name }}
|
||||
</view>
|
||||
<view class="price-wrap">
|
||||
<view class="price">
|
||||
<text class="txt">¥</text>{{ productItem.price }}
|
||||
</view>
|
||||
<view class="btn">立即查看</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="item.showMoreInfo.showType === '店铺'" class="list-wrap">
|
||||
<view
|
||||
v-for="(hotel, hotelIndex) in item.showMoreInfo.resultItems"
|
||||
:key="hotelIndex"
|
||||
class="product-item"
|
||||
@click="hotelItemClickHandle(hotel)"
|
||||
>
|
||||
<view class="hotel-type">
|
||||
{{ hotel.hotelTypeName }}
|
||||
</view>
|
||||
<image
|
||||
:src="hotel.img"
|
||||
class="img"
|
||||
/>
|
||||
<view class="product-info">
|
||||
<view class="name one-t">
|
||||
{{ hotel.name }}
|
||||
</view>
|
||||
<view class="desc-wrap one-t">
|
||||
{{ hotel.description || '' }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="item.showMoreInfo.showType === '非遗文化'" class="list-wrap">
|
||||
<view
|
||||
v-for="(ich, ichIndex) in item.showMoreInfo.resultItems"
|
||||
:key="ichIndex"
|
||||
class="product-item"
|
||||
@click="ichItemClickHandle(ich)"
|
||||
>
|
||||
<image
|
||||
:src="ich.img"
|
||||
class="img"
|
||||
/>
|
||||
<view class="product-info">
|
||||
<view class="name one-t">
|
||||
{{ ich.name }}
|
||||
</view>
|
||||
<view class="desc-wrap one-t">
|
||||
{{ ich.description || '' }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="item.showMoreInfo.showType === '千县名品'" class="list-wrap">
|
||||
<view
|
||||
v-for="(qianxian, qianxianIndex) in item.showMoreInfo.resultItems"
|
||||
:key="qianxianIndex"
|
||||
class="product-item"
|
||||
@click="qianxianItemClickHandle(qianxian)"
|
||||
>
|
||||
<image
|
||||
:src="qianxian.img"
|
||||
class="img"
|
||||
/>
|
||||
<view class="product-info">
|
||||
<view class="name name2 one-t">
|
||||
{{ qianxian.name }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="item.showMoreInfo.showType === '优惠活动'" class="list-wrap prize-list-wrap">
|
||||
<view
|
||||
v-for="(prize, prizeIndex) in item.showMoreInfo.resultItems"
|
||||
:key="prizeIndex"
|
||||
class="prize-item"
|
||||
@click="prizeItemClickHandle(prize)"
|
||||
>
|
||||
<image
|
||||
:src="prize.img"
|
||||
class="img"
|
||||
mode="widthFix"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="item.showMoreInfo.showType !== '优惠活动'" class="change-btn">
|
||||
<image
|
||||
:src="webUrl + '/aiChat/icon-change.png'"
|
||||
class="icon"
|
||||
mode="widthFix"
|
||||
@click="analyzeKeywordsChangeHandle(item.conversationId, item.showMoreInfo)"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
<view
|
||||
v-if="index === (chatMessageListLength - 1) && item.listQuestion.length > 0"
|
||||
class="suggestion-wrap"
|
||||
@@ -222,7 +337,8 @@ export default {
|
||||
conversationId: item.messageId,
|
||||
showCursor: false,
|
||||
listQuestion: item.listQuestion || [],
|
||||
type: -2
|
||||
type: -2,
|
||||
showMoreInfo: {}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
+234
-7
@@ -12,7 +12,7 @@
|
||||
color="#333"
|
||||
transparent="auto"
|
||||
barPlaceholder="hidden"
|
||||
title="云灵AI智能助手"
|
||||
title="云灵AI助手"
|
||||
@click-left="clickBackHandle"
|
||||
/>
|
||||
<page-container
|
||||
@@ -21,8 +21,9 @@
|
||||
:z-index="1"
|
||||
@beforeleave="pageContainerBeforeleave"
|
||||
>
|
||||
<view style="opacity: 0;"></view>
|
||||
遮罩层,用于监听实体键返回
|
||||
<view style="opacity: 0;">
|
||||
遮罩层,用于监听实体键返回
|
||||
</view>
|
||||
</page-container>
|
||||
<view
|
||||
id="fixTbabarBody"
|
||||
@@ -48,6 +49,73 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="weatherData.city && holidayData.suit" class="weather-holiday-wrap">
|
||||
<view class="weather-data data-wrap">
|
||||
<block v-if="!weatherDataLoading">
|
||||
<view v-if="weatherIsLoad">
|
||||
<!-- 各种天气对应的图标
|
||||
https://yikeapi.com/help/wea
|
||||
https://yikeapi.com/help/tianqiimg -->
|
||||
<view class="title">
|
||||
<image
|
||||
:src="webUrl + '/aiChat/weather/' + weatherData.wea_img +'.png'"
|
||||
class="icon"
|
||||
mode="widthFix"
|
||||
/>
|
||||
<view class="tem-wrap">
|
||||
<view class="tem">{{ weatherData.tem }}</view>
|
||||
<view class="unit">℃</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="loca">
|
||||
<view class="addr">
|
||||
<image
|
||||
:src="webUrl + '/aiChat/addr.png'"
|
||||
class="icon"
|
||||
mode="widthFix"
|
||||
/>
|
||||
{{ weatherData.city }}
|
||||
</view>
|
||||
<view class="tem-range">
|
||||
{{ weatherData.wea }} {{ weatherData.tem2 }}℃~{{ weatherData.tem1 }}℃
|
||||
</view>
|
||||
</view>
|
||||
<view class="content">今日风向:{{ weatherData.win }}</view>
|
||||
<view class="content">紫外线指数:{{ weatherData.uvIndex }} {{ weatherData.uvDescription }}</view>
|
||||
</view>
|
||||
<view v-else class="no-weather">
|
||||
<image
|
||||
:src="webUrl + '/aiChat/weather/no-weather.png'"
|
||||
class="img"
|
||||
mode="widthFix"
|
||||
/>
|
||||
<view>无法获取天气信息</view>
|
||||
</view>
|
||||
</block>
|
||||
<block v-else>
|
||||
<view class="txt-loading">加载中...</view>
|
||||
</block>
|
||||
</view>
|
||||
<view v-if="holidayData.suit" class="holiday-data data-wrap">
|
||||
<view class="title">
|
||||
<view class="day">{{ holidayData.lunarCalendar }}</view>
|
||||
<view>{{ holidayData.date.substr(5).replace('-', '/') }} {{ weekDayArr[holidayData.weekDay] }}</view>
|
||||
</view>
|
||||
<view class="desc">{{ holidayData.yearTips }}年/{{ holidayData.chineseZodiac }}</view>
|
||||
<view class="tip">
|
||||
<view class="label">宜</view>
|
||||
<view class="content">
|
||||
{{ holidayData.suit }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="tip">
|
||||
<view class="label label2">忌</view>
|
||||
<view class="content">
|
||||
{{ holidayData.avoid }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="topic-wrap">
|
||||
<view class="title">
|
||||
<image
|
||||
@@ -165,9 +233,125 @@
|
||||
/>
|
||||
重新生成
|
||||
</view>
|
||||
<view class="item item2" @click="copyMoreInfoHandle(item)">拷贝</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 换一换 -->
|
||||
<view
|
||||
v-if="!item.showCursor && item.nodes && item.nodes.length && !item.isError && item.showMoreInfo.show"
|
||||
class="change-list-wrap"
|
||||
>
|
||||
<view v-if="item.showMoreInfo.showType === '特产商品'" class="list-wrap">
|
||||
<view
|
||||
v-for="(productItem, productIndex) in item.showMoreInfo.resultItems"
|
||||
:key="productIndex"
|
||||
class="product-item"
|
||||
@click="productItemClickHandle(productItem)"
|
||||
>
|
||||
<image
|
||||
:src="productItem.img"
|
||||
class="img"
|
||||
/>
|
||||
<view class="product-info">
|
||||
<view class="name one-t">
|
||||
{{ productItem.name }}
|
||||
</view>
|
||||
<view class="price-wrap">
|
||||
<view class="price">
|
||||
<text class="txt">¥</text>{{ productItem.price }}
|
||||
</view>
|
||||
<view class="btn">立即查看</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="item.showMoreInfo.showType === '店铺'" class="list-wrap">
|
||||
<view
|
||||
v-for="(hotel, hotelIndex) in item.showMoreInfo.resultItems"
|
||||
:key="hotelIndex"
|
||||
class="product-item"
|
||||
@click="hotelItemClickHandle(hotel)"
|
||||
>
|
||||
<view class="hotel-type">
|
||||
{{ hotel.hotelTypeName }}
|
||||
</view>
|
||||
<image
|
||||
:src="hotel.img"
|
||||
class="img"
|
||||
/>
|
||||
<view class="product-info">
|
||||
<view class="name one-t">
|
||||
{{ hotel.name }}
|
||||
</view>
|
||||
<view class="desc-wrap one-t">
|
||||
{{ hotel.description || '' }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="item.showMoreInfo.showType === '非遗文化'" class="list-wrap">
|
||||
<view
|
||||
v-for="(ich, ichIndex) in item.showMoreInfo.resultItems"
|
||||
:key="ichIndex"
|
||||
class="product-item"
|
||||
@click="ichItemClickHandle(ich)"
|
||||
>
|
||||
<image
|
||||
:src="ich.img"
|
||||
class="img"
|
||||
/>
|
||||
<view class="product-info">
|
||||
<view class="name one-t">
|
||||
{{ ich.name }}
|
||||
</view>
|
||||
<view class="desc-wrap one-t">
|
||||
{{ ich.description || '' }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="item.showMoreInfo.showType === '千县名品'" class="list-wrap">
|
||||
<view
|
||||
v-for="(qianxian, qianxianIndex) in item.showMoreInfo.resultItems"
|
||||
:key="qianxianIndex"
|
||||
class="product-item"
|
||||
@click="qianxianItemClickHandle(qianxian)"
|
||||
>
|
||||
<image
|
||||
:src="qianxian.img"
|
||||
class="img"
|
||||
/>
|
||||
<view class="product-info">
|
||||
<view class="name name2 one-t">
|
||||
{{ qianxian.name }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="item.showMoreInfo.showType === '优惠活动'" class="list-wrap prize-list-wrap">
|
||||
<view
|
||||
v-for="(prize, prizeIndex) in item.showMoreInfo.resultItems"
|
||||
:key="prizeIndex"
|
||||
class="prize-item"
|
||||
@click="prizeItemClickHandle(prize)"
|
||||
>
|
||||
<image
|
||||
:src="prize.img"
|
||||
class="img"
|
||||
mode="widthFix"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="item.showMoreInfo.showType !== '优惠活动'" class="change-btn">
|
||||
<image
|
||||
:src="webUrl + '/aiChat/icon-change.png'"
|
||||
class="icon"
|
||||
mode="widthFix"
|
||||
@click="analyzeKeywordsChangeHandle(item.conversationId, item.showMoreInfo)"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
<view
|
||||
v-if="index === (chatMessageListLength - 1) && item.listQuestion.length > 0"
|
||||
class="suggestion-wrap"
|
||||
@@ -195,7 +379,11 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view id="bottom_postion" class="bottom-postion" />
|
||||
<view
|
||||
v-if="chatNumber"
|
||||
id="bottom_postion"
|
||||
class="bottom-postion"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
<view
|
||||
@@ -246,6 +434,10 @@ import {
|
||||
getAiSystemInfoSetting,
|
||||
getAiSystemInfoTopic
|
||||
} from '@/api/public'
|
||||
import {
|
||||
getWeatherData,
|
||||
getHolidayData
|
||||
} from '@/api/chat/index'
|
||||
import AiHistoryList from '../components/historyList'
|
||||
import BottomSend from '../components/bottomSend.vue'
|
||||
export default {
|
||||
@@ -257,12 +449,21 @@ export default {
|
||||
mixins: [chatMixins],
|
||||
data() {
|
||||
return {
|
||||
cityName: '',
|
||||
weatherDataLoading: false,
|
||||
weatherIsLoad: true,
|
||||
weatherData: {},
|
||||
holidayData: {},
|
||||
weekDayArr: Object.freeze(['', '周一', '周二', '周三', '周四', '周五', '周六', '周日']),
|
||||
animationWidth: '150%',
|
||||
animationStr: '',
|
||||
settingInfo: {},
|
||||
topicList: []
|
||||
}
|
||||
},
|
||||
onLoad(options) {
|
||||
this.cityName = options.cityName || ''
|
||||
},
|
||||
onShow() {
|
||||
const addNewChat = uni.getStorageSync('addNewChat') === '1'
|
||||
// 从历史界面点击新增对话
|
||||
@@ -287,12 +488,37 @@ export default {
|
||||
this.animationStr = `TranslateXSwiper-${data.systemTopicDivMaxWidth * 10} ${data.systemTopicDivScrollDuration}s infinite linear alternate`
|
||||
}
|
||||
})
|
||||
getAiSystemInfoTopic().then(res => {
|
||||
this.loadData()
|
||||
})
|
||||
},
|
||||
loadData() {
|
||||
getAiSystemInfoTopic().then(res => {
|
||||
const { success, data } = res
|
||||
if (success) {
|
||||
this.topicList = data || []
|
||||
}
|
||||
})
|
||||
if (this.cityName) {
|
||||
this.weatherDataLoading = true
|
||||
getWeatherData({
|
||||
cityName: this.cityName
|
||||
}).then(res => {
|
||||
const { success, data } = res
|
||||
if (success) {
|
||||
this.topicList = data || []
|
||||
this.weatherData = data
|
||||
}
|
||||
this.weatherIsLoad = true
|
||||
this.weatherDataLoading = false
|
||||
}).catch(() => {
|
||||
this.weatherDataLoading = false
|
||||
this.weatherIsLoad = false
|
||||
})
|
||||
}
|
||||
getHolidayData().then(res => {
|
||||
const { success, data } = res
|
||||
if (success) {
|
||||
this.holidayData = data
|
||||
}
|
||||
})
|
||||
},
|
||||
// 创建新会话
|
||||
@@ -304,6 +530,7 @@ export default {
|
||||
this.loading = false
|
||||
this.getConfigLoading = false
|
||||
this.chatMessageList = []
|
||||
this.loadData()
|
||||
},
|
||||
clickBackHandle() {
|
||||
if (!this.chatNumber) {
|
||||
@@ -372,7 +599,7 @@ export default {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 60rpx 40rpx;
|
||||
padding: 0 40rpx;
|
||||
.guide-left {
|
||||
.avatar {
|
||||
display: block;
|
||||
|
||||
@@ -12,6 +12,16 @@ export function getCompletionsV2(params) {
|
||||
return request.get('/v1/chat/sse/completions2', params, { login: true })
|
||||
}
|
||||
|
||||
// 通过关键字-搜索列表
|
||||
export function getAnalyzeKeywordsV1(data) {
|
||||
return request.post('/v1/chat/analyzeKeywords', data, { login: true })
|
||||
}
|
||||
|
||||
// 通过关键字-搜索列表-换一换
|
||||
export function getAnalyzeKeywordsChangeV1(data) {
|
||||
return request.post('/v1/chat/aiSearch', data, { login: true })
|
||||
}
|
||||
|
||||
export function deleteChatItemByConversationId(id) {
|
||||
return request.delete('/v1/chat/message/' + id, {}, { login: true })
|
||||
}
|
||||
@@ -27,3 +37,11 @@ export function historyChatMessage(params) {
|
||||
export function deleteChatListByType(type) {
|
||||
return request.delete('/v1/chat/type/' + type, {}, { login: true })
|
||||
}
|
||||
|
||||
export function getWeatherData(params) {
|
||||
return request.get('/v1/chat/weatherData', params, { login: true })
|
||||
}
|
||||
|
||||
export function getHolidayData(params) {
|
||||
return request.get('/v1/chat/holidayData', params, { login: true })
|
||||
}
|
||||
|
||||
@@ -488,6 +488,7 @@ page {
|
||||
}
|
||||
}
|
||||
.bottom-btns {
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
padding: 20rpx 0 0 0;
|
||||
@@ -510,6 +511,13 @@ page {
|
||||
margin: 0 6rpx 0 0;
|
||||
}
|
||||
}
|
||||
.item2 {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
margin: 0;
|
||||
color: transparent;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -919,4 +927,249 @@ page {
|
||||
100% {
|
||||
height: 20rpx;
|
||||
}
|
||||
}
|
||||
.change-list-wrap {
|
||||
.list-wrap {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
width: 100%;
|
||||
flex-shrink: 0;
|
||||
padding: 40rpx 0;
|
||||
overflow-x: auto;
|
||||
.product-item {
|
||||
position: relative;
|
||||
width: 240rpx;
|
||||
margin: 0 24rpx 0 0;
|
||||
border-radius: 20rpx;
|
||||
background-color: #fff;
|
||||
box-shadow: 0rpx 6rpx 12rpx rgba(0,0,0,0.16);
|
||||
&:last-child {
|
||||
margin: 0;
|
||||
}
|
||||
.img {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
display: block;
|
||||
width: 240rpx;
|
||||
height: 240rpx;
|
||||
border-radius: 20rpx;
|
||||
}
|
||||
.product-info {
|
||||
padding: 12rpx;
|
||||
.name {
|
||||
height: 34rpx;
|
||||
font-size: 24rpx;
|
||||
color: #333;
|
||||
line-height: 34rpx;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
transition: all linear 0.2s;
|
||||
}
|
||||
.name2 {
|
||||
font-weight: bold;
|
||||
}
|
||||
.price-wrap {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-top: 12rpx;
|
||||
.price {
|
||||
color: #C52733;
|
||||
font-size: 24rpx;
|
||||
font-weight: bold;
|
||||
.txt {
|
||||
font-size: 16rpx;
|
||||
}
|
||||
}
|
||||
.btn {
|
||||
height: 30rpx;
|
||||
padding: 0 12rpx;
|
||||
border-radius: 16rpx;
|
||||
color: #fff;
|
||||
font-size: 22rpx;
|
||||
background-color: #C52733;
|
||||
}
|
||||
}
|
||||
.desc-wrap {
|
||||
font-size: 24rpx;
|
||||
color: #999;
|
||||
line-height: 34rpx;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
}
|
||||
.hotel-type {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 5;
|
||||
height: 40rpx;
|
||||
padding: 0 24rpx;
|
||||
border-top-left-radius: 20rpx;
|
||||
border-bottom-right-radius: 20rpx;
|
||||
color: #fff;
|
||||
font-size: 24rpx;
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
}
|
||||
}
|
||||
.prize-list-wrap {
|
||||
display: block;
|
||||
.prize-item {
|
||||
.img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
border-radius: 20rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
.change-btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 0 0 20rpx 0;
|
||||
.icon {
|
||||
display: block;
|
||||
width: 124rpx;
|
||||
height: 38rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
.weather-holiday-wrap {
|
||||
display: flex;
|
||||
align-items: stretch;
|
||||
justify-content: space-between;
|
||||
gap: 12px;
|
||||
padding: 0 24rpx 48rpx 24rpx;
|
||||
.data-wrap {
|
||||
flex: 1;
|
||||
padding: 20rpx;
|
||||
border-radius: 20rpx;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
box-shadow: 0rpx 0rpx 20rpx rgba(0,0,0,0.16);
|
||||
}
|
||||
.weather-data {
|
||||
.title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
color: #3D4CF1;
|
||||
.icon {
|
||||
display: block;
|
||||
width: 100rpx;
|
||||
height: 100rpx;
|
||||
margin: 0 12rpx 0 0;
|
||||
}
|
||||
.tem-wrap {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
}
|
||||
.tem {
|
||||
font-size: 70rpx;
|
||||
line-height: 70rpx;
|
||||
font-weight: bold;
|
||||
}
|
||||
.unit {
|
||||
font-size: 36rpx;
|
||||
line-height: 36rpx;
|
||||
}
|
||||
}
|
||||
.loca {
|
||||
display: flex;
|
||||
padding: 24rpx 0;
|
||||
font-size: 26rpx;
|
||||
line-height: 36rpx;
|
||||
color: #333;
|
||||
.addr {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.icon {
|
||||
display: block;
|
||||
width: 24rpx;
|
||||
height: 24rpx;
|
||||
margin: 0 4rpx 0 0;
|
||||
}
|
||||
}
|
||||
.tem-range {
|
||||
padding: 0 0 0 24rpx;
|
||||
}
|
||||
}
|
||||
.content + .content {
|
||||
padding: 12rpx 0 0 0;
|
||||
}
|
||||
.content {
|
||||
color: #3D4CF1;
|
||||
font-size: 26rpx;
|
||||
line-height: 36rpx;
|
||||
font-weight: bold;
|
||||
}
|
||||
.txt-loading {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 28rpx;
|
||||
min-height: 200rpx;
|
||||
}
|
||||
.no-weather {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 100%;
|
||||
font-size: 26rpx;
|
||||
color: #999;
|
||||
line-height: 38rpx;
|
||||
.img {
|
||||
display: block;
|
||||
width: 226rpx;
|
||||
height: 130rpx;
|
||||
margin: 0 0 12rpx 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
.holiday-data {
|
||||
.title {
|
||||
display: flex;
|
||||
font-size: 24rpx;
|
||||
color: #333;
|
||||
line-height: 36rpx;
|
||||
.day {
|
||||
margin: 0 8rpx 0 0;
|
||||
color: #3D4CF1;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
}
|
||||
.desc {
|
||||
font-size: 24rpx;
|
||||
color: #333;
|
||||
line-height: 36rpx;
|
||||
}
|
||||
.tip {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
padding: 20rpx 0 0 0;
|
||||
.label {
|
||||
display: block;
|
||||
width: 32rpx;
|
||||
height: 32rpx;
|
||||
margin: 0 12rpx 0 0;
|
||||
border-radius: 8rpx;
|
||||
text-align: center;
|
||||
line-height: 32rpx;
|
||||
font-size: 24rpx;
|
||||
color: #fff;
|
||||
background-color: #3D4CF1;
|
||||
}
|
||||
.label2 {
|
||||
background-color: #C52733;
|
||||
}
|
||||
.content {
|
||||
width: calc(100% - 44rpx);
|
||||
margin: -6rpx 0 0 0;
|
||||
font-size: 24rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -31,7 +31,7 @@
|
||||
<image
|
||||
v-if="activeVideo !== 'video' + evaluateWtapperIndex"
|
||||
:src="item.video + '?vframe/jpg/offset/1'"
|
||||
class="image"
|
||||
class="image pic-img"
|
||||
@click="pauseOtherVideo('video' + evaluateWtapperIndex)"
|
||||
>
|
||||
|
||||
@@ -106,6 +106,7 @@ export default {
|
||||
};
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
|
||||
.attr-bg{
|
||||
background: rgba(197,39,51,0.1);
|
||||
padding: 7rpx 5px;
|
||||
@@ -118,6 +119,7 @@ export default {
|
||||
.evaluateWtapper .evaluateItem .imgList .pictrue{
|
||||
position: relative;
|
||||
width: 300rpx;
|
||||
height: 300rpx;
|
||||
.play-icon {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
|
||||
@@ -15,6 +15,12 @@ import {
|
||||
} from '@/api/public'
|
||||
export default {
|
||||
name: 'AiEntrance',
|
||||
props: {
|
||||
cityName: {
|
||||
type: String,
|
||||
default: ''
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
showImg: false,
|
||||
@@ -36,7 +42,7 @@ export default {
|
||||
},
|
||||
enterAiChat() {
|
||||
uni.navigateTo({
|
||||
url: '/aiChat/views/index?click=1'
|
||||
url: '/aiChat/views/index?click=1&cityName=' + this.cityName
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -855,7 +855,7 @@
|
||||
{
|
||||
"path": "views/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "云灵AI智能助手",
|
||||
"navigationBarTitleText": "云灵AI助手",
|
||||
"navigationStyle": "custom",
|
||||
"navigationBarTextStyle": "white"
|
||||
}
|
||||
@@ -863,7 +863,7 @@
|
||||
{
|
||||
"path": "views/history",
|
||||
"style": {
|
||||
"navigationBarTitleText": "云灵AI智能助手",
|
||||
"navigationBarTitleText": "云灵AI助手",
|
||||
"navigationStyle": "custom",
|
||||
"navigationBarTextStyle": "white"
|
||||
}
|
||||
|
||||
@@ -353,7 +353,9 @@
|
||||
paddingBottom="200rpx"
|
||||
/>
|
||||
<FunctionGuide :maxStep="15" @hide="setGuide('index')" :guideData="functionGuideData" ref="FunctionGuide"></FunctionGuide>
|
||||
<AiEntrance />
|
||||
<AiEntrance
|
||||
:city-name="cityName"
|
||||
/>
|
||||
<xdd-tabbar :curr-index="0" @getElementData="elementData" @getIcon="getIcon"/>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -178,6 +178,7 @@
|
||||
<Loading :loaded="loaded" :loading="loading"></Loading>
|
||||
<Payment v-model="pay" :types="payType" @checked="toPay" :balance="userInfo.nowMoney"></Payment>
|
||||
<passkeyborad
|
||||
v-if="isShowPayPwdPop"
|
||||
:money="orderInfo.payPrice"
|
||||
showMoney
|
||||
:show="isShowPayPwdPop"
|
||||
@@ -279,6 +280,7 @@ export default {
|
||||
icon: 'success',
|
||||
title: '修改成功!'
|
||||
})
|
||||
uni.setStorageSync('sourceAddress', chooseAddress)
|
||||
_this.changeType()
|
||||
}).finally(() => {
|
||||
uni.hideLoading()
|
||||
|
||||
@@ -426,7 +426,7 @@
|
||||
:src="'https://apis.map.qq.com/uri/v1/geocoder?coord=' + system_store.latitude + ',' +system_store.longitude +'&referer=' +mapKey"></iframe>
|
||||
</view>
|
||||
|
||||
<passkeyborad :money="orderInfo.payPrice" showMoney :show="isShowPayPwdPop" ref='payPwdPop' @close="pwdPopClose"
|
||||
<passkeyborad v-if="isShowPayPwdPop" :money="orderInfo.payPrice" showMoney :show="isShowPayPwdPop" ref='payPwdPop' @close="pwdPopClose"
|
||||
@finish="pwdPopFinish"></passkeyborad>
|
||||
|
||||
</view>
|
||||
@@ -502,9 +502,10 @@ export default {
|
||||
...mapGetters(["userInfo"])
|
||||
},
|
||||
onShow() {
|
||||
const _this = this
|
||||
const chooseAddress = uni.getStorageSync('chooseAddress') || {}
|
||||
const addressId = chooseAddress.id || ''
|
||||
console.log(addressId, 'addressId');
|
||||
|
||||
// 监听到选择收货地址
|
||||
if (addressId) {
|
||||
uni.setStorageSync('chooseAddress', {})
|
||||
@@ -519,13 +520,14 @@ export default {
|
||||
uni.showLoading()
|
||||
editAddress({
|
||||
addressId,
|
||||
orderId: _this.orderInfo.orderId
|
||||
orderId: this.orderInfo.orderId
|
||||
}).then(res => {
|
||||
uni.showToast({
|
||||
icon: 'success',
|
||||
title: '修改成功!'
|
||||
})
|
||||
_this.getDetail()
|
||||
uni.setStorageSync('sourceAddress', chooseAddress)
|
||||
this.getDetail()
|
||||
}).finally(() => {
|
||||
uni.hideLoading()
|
||||
})
|
||||
@@ -536,8 +538,8 @@ export default {
|
||||
}
|
||||
})
|
||||
} else {
|
||||
_this.id = _this.$yroute.query.id;
|
||||
_this.getDetail();
|
||||
this.id = this.$yroute.query.id;
|
||||
this.getDetail();
|
||||
}
|
||||
},
|
||||
// inject: ["app"],
|
||||
|
||||
@@ -288,6 +288,7 @@
|
||||
@redirect="addressRedirect"
|
||||
/>
|
||||
<passkeyborad
|
||||
v-if="isShowPayPwdPop"
|
||||
ref='payPwdPop'
|
||||
showMoney
|
||||
:money="orderPrice.payPrice"
|
||||
@@ -413,6 +414,31 @@ export default {
|
||||
_this.getCartInfo()
|
||||
//获取用户信息
|
||||
_this.$store.dispatch("getUser", true)
|
||||
// 监听到选择收货地址
|
||||
const chooseAddress = uni.getStorageSync('chooseAddress') || {}
|
||||
const sourceAddress = uni.getStorageSync('sourceAddress') || uni.getStorageSync('chooseAddress')
|
||||
// 监听到选择收货地址
|
||||
if (chooseAddress.id && (chooseAddress.id !== sourceAddress.id)) {
|
||||
uni.showModal({
|
||||
title:'确定修改地址吗?',
|
||||
content: '',
|
||||
showCancel: true,
|
||||
cancelText: '取消',
|
||||
confirmText: '确认',
|
||||
success: (res) => {
|
||||
if(res.confirm) {
|
||||
_this.addressInfo = chooseAddress
|
||||
// 地址切换也要重新计算一下
|
||||
uni.setStorageSync('sourceAddress', _this.addressInfo || '')
|
||||
_this.computedPrice('onLoad chooseAddress')
|
||||
}
|
||||
},
|
||||
complete: () => {
|
||||
uni.hideLoading()
|
||||
uni.setStorageSync('chooseAddress', {})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
methods: {
|
||||
@@ -504,32 +530,11 @@ export default {
|
||||
if(_this.$yroute.query.address !== undefined ) {
|
||||
_this.addressInfo = JSON.parse(_this.$yroute.query.address) || {}
|
||||
} else {
|
||||
_this.addressInfo = uni.getStorageSync('chooseAddress') ? uni.getStorageSync('chooseAddress') : data.addressInfo || {}
|
||||
}
|
||||
const chooseAddress = uni.getStorageSync('chooseAddress') || {}
|
||||
const sourceAddress = uni.getStorageSync('sourceAddress') || data.addressInfo || uni.getStorageSync('chooseAddress')
|
||||
// 监听到选择收货地址
|
||||
if (chooseAddress.id && (chooseAddress.id !== sourceAddress.id)) {
|
||||
uni.showModal({
|
||||
title:'确定修改地址吗?',
|
||||
content: '',
|
||||
showCancel: true,
|
||||
cancelText: '取消',
|
||||
confirmText: '确认',
|
||||
success: (res) => {
|
||||
if(res.confirm) {
|
||||
_this.addressInfo = chooseAddress
|
||||
// 地址切换也要重新计算一下
|
||||
uni.setStorageSync('sourceAddress', _this.addressInfo || '')
|
||||
_this.computedPrice('onLoad chooseAddress')
|
||||
}
|
||||
},
|
||||
complete: () => {
|
||||
uni.hideLoading()
|
||||
// uni.setStorageSync('chooseAddress', {})
|
||||
}
|
||||
})
|
||||
_this.addressInfo = uni.getStorageSync('sourceAddress') || data.addressInfo || {}
|
||||
console.log(data.addressInfo);
|
||||
|
||||
}
|
||||
|
||||
_this.systemStore = data.systemStore || {}
|
||||
_this.storeSelfMention = data.storeSelfMention
|
||||
_this.computedPrice()
|
||||
@@ -683,7 +688,7 @@ export default {
|
||||
storeId: this.storeItems ? this.storeItems.id : this.systemStore.id,
|
||||
...from
|
||||
}
|
||||
|
||||
uni.setStorageSync('chooseAddress', {})
|
||||
//余额支付的支付密码
|
||||
if (this.active == 'yue') {
|
||||
params.passwordPay = this.payPassword;
|
||||
|
||||
@@ -252,7 +252,8 @@ export default {
|
||||
setHistory(word) {
|
||||
const index = this.historyKey.findIndex(item => item.word === word)
|
||||
if (index > -1) {
|
||||
return
|
||||
this.historyKey.splice(index, 1)
|
||||
// return
|
||||
}
|
||||
this.historyKey.unshift({id: this.$global.generateMixed(10), word })
|
||||
uni.setStorageSync('historyKey', JSON.stringify(this.historyKey))
|
||||
|
||||
@@ -172,7 +172,7 @@ export default {
|
||||
this.loadend = res.data.length < this.limit
|
||||
this.page = this.page + 1
|
||||
if (this.choosMode === 1) {
|
||||
this.currentId = uni.getStorageSync('chooseAddress') ? uni.getStorageSync('chooseAddress').id : this.addressList.find(e => e.isDefault === 1) ? this.addressList.find(e => e.isDefault === 1).id : null
|
||||
this.currentId = uni.getStorageSync('sourceAddress') ? uni.getStorageSync('sourceAddress').id : this.addressList.find(e => e.isDefault === 1) ? this.addressList.find(e => e.isDefault === 1).id : null
|
||||
}
|
||||
// 来源购物车
|
||||
if (this.choosMode === 2) {
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
<view class="">
|
||||
<CitySelect
|
||||
ref="cityselect"
|
||||
:defaultValue="addressText"
|
||||
:defaultValue="addressText || ''"
|
||||
@callback="result"
|
||||
:items="district"
|
||||
></CitySelect>
|
||||
|
||||
@@ -619,6 +619,7 @@ export default {
|
||||
} else {
|
||||
this.fetchInnInfoList()
|
||||
}
|
||||
this.initPoster()
|
||||
this.fetchInnDetail()
|
||||
// this.fetchGoods(this.id)
|
||||
},
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
<view class="input-box">
|
||||
<textarea
|
||||
v-model="content"
|
||||
maxlength="150"
|
||||
maxlength="500"
|
||||
:auto-height="true"
|
||||
:fixed="true"
|
||||
:show-confirm-bar="false"
|
||||
@@ -279,7 +279,8 @@ export default {
|
||||
},
|
||||
|
||||
userInput(event) {
|
||||
this.content = event.detail.value;
|
||||
// 只取前500字
|
||||
this.content = event.detail.value.slice(0, 500);
|
||||
},
|
||||
|
||||
userSend(msg_type) {
|
||||
|
||||
@@ -268,7 +268,7 @@
|
||||
<view class="u-text__value" :class="{'area-item':form.area && form.area.length===0}">
|
||||
<CitySelect
|
||||
ref="cityselect"
|
||||
:defaultValue="form.area"
|
||||
:defaultValue="form.area || ''"
|
||||
:disabled="reviewing"
|
||||
:items="district"
|
||||
@callback="result"
|
||||
|
||||
@@ -152,7 +152,7 @@
|
||||
<view class="u-text__value" :class="{'area-item':formSupplier.area && formSupplier.area.length===0}">
|
||||
<CitySelect
|
||||
ref="cityselect"
|
||||
:defaultValue="formSupplier.area"
|
||||
:defaultValue="formSupplier.area || ''"
|
||||
:disabled="reviewing"
|
||||
:items="district"
|
||||
@callback="resultSupplier"
|
||||
@@ -391,7 +391,7 @@
|
||||
<view class="u-text__value" :class="{'area-item':form.area && form.area.length===0}">
|
||||
<CitySelect
|
||||
ref="cityselect2"
|
||||
:defaultValue="form.area"
|
||||
:defaultValue="form.area || ''"
|
||||
:disabled="reviewing"
|
||||
:items="district"
|
||||
@callback="result"
|
||||
@@ -432,7 +432,7 @@
|
||||
<text class="required">*</text>
|
||||
</template>
|
||||
<template #value>
|
||||
<u--text :text="form.serviceTime + ' - ' + form.serviceEndTime"></u--text>
|
||||
<u--text :text="`${form.serviceTime || ''} - ${form.serviceEndTime || ''}`"></u--text>
|
||||
<tpf-time-range
|
||||
startTime="00:00"
|
||||
endTime="23:59"
|
||||
@@ -928,9 +928,9 @@ export default {
|
||||
this.formSupplier = data.supplierInfo
|
||||
this.formSupplier.typeText = this.columnsSupplierType[this.indexSupplierType].value
|
||||
this.formSupplier.position = this.$forceToDecimal(this.formSupplier.longitude, 6) + ',' + this.$forceToDecimal(this.formSupplier.latitude, 6)
|
||||
this.formSupplier.area = `${this.formSupplier.provinceName || ''} ${this.formSupplier.cityName || ''} ${this.formSupplier.areaName || ''}`
|
||||
this.formSupplier.area = `${this.formSupplier.provinceName || ''} ${this.formSupplier.cityName || ''} ${this.formSupplier.areaName || ''}` || ''
|
||||
this.indexSupplierType = this.columnsSupplierType.findIndex(item => item.key === this.formSupplier.subType)
|
||||
// console.log(this.formSupplier);
|
||||
console.log(this.formSupplier);
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -161,7 +161,7 @@
|
||||
<view class="u-text__value" :class="{'area-item':form.area.length===0}">
|
||||
<CitySelect
|
||||
ref="cityselect"
|
||||
:defaultValue="form.area"
|
||||
:defaultValue="form.area || ''"
|
||||
:disabled="reviewing"
|
||||
:items="district"
|
||||
@callback="result"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<view
|
||||
class="ys-btn v12-mr-3 v12-radius-100 v12-dark-text v12-px-5 v12-py-2 v12-font-28 v12-font-bold"
|
||||
@click="toSanctun"
|
||||
>养生圣地</view
|
||||
>养生胜地</view
|
||||
>
|
||||
<view
|
||||
class="v12-radius-100 v12-primary v12-white-text v12-px-5 v12-py-2 v12-font-28 v12-font-bold"
|
||||
|
||||
@@ -380,6 +380,73 @@ export default {
|
||||
this.getFarmerData()
|
||||
},
|
||||
methods: {
|
||||
saveImg() {
|
||||
const _this = this
|
||||
uni.getSetting({
|
||||
success: getRes => {
|
||||
if (getRes.authSetting["scope.writePhotosAlbum"]) {
|
||||
_this.downloadImage()
|
||||
} else {
|
||||
uni.authorize({
|
||||
scope: "scope.writePhotosAlbum",
|
||||
success: () => {
|
||||
_this.downloadImage()
|
||||
},
|
||||
fail: () => {
|
||||
uni.openSetting({
|
||||
success: openRes => {
|
||||
console.log(typeof openRes, openRes)
|
||||
},
|
||||
fail: () => {
|
||||
uni.showToast({
|
||||
title: "请在设置中打开对应权限",
|
||||
icon: "none"
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
fail: (err) => {
|
||||
console.log(err, 2)
|
||||
}
|
||||
})
|
||||
},
|
||||
downloadImage() {
|
||||
const _this = this
|
||||
const randomID = () => Math.random().toString(36).substring(2)
|
||||
uni.downloadFile({
|
||||
url: this.posterUrl, // 网络图片的地址
|
||||
filePath: wx.env.USER_DATA_PATH + "/share_" + randomID() + ".png", // 指定的本地文件路径
|
||||
success: downRes => {
|
||||
uni.saveImageToPhotosAlbum({
|
||||
filePath: downRes.filePath, // 临时文件地址
|
||||
success: function () {
|
||||
uni.showToast({
|
||||
title: "保存成功",
|
||||
icon: "success",
|
||||
success() {
|
||||
_this.showShare = false
|
||||
}
|
||||
})
|
||||
},
|
||||
fail: function (err) {
|
||||
uni.showToast({
|
||||
title: err,
|
||||
icon: "none"
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
fail: function (err) {
|
||||
uni.showToast({
|
||||
title: err.errMsg,
|
||||
icon: "error"
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
changeShare() {
|
||||
uni.showLoading()
|
||||
postJiaLouShare(this.id).then(res => {
|
||||
|
||||
@@ -125,6 +125,7 @@
|
||||
<passkeyborad
|
||||
ref='payPwdPop'
|
||||
showMoney
|
||||
v-if="isShowPayPwdPop"
|
||||
:money="payPrice"
|
||||
:show="isShowPayPwdPop"
|
||||
@close="isShowPayPwdPop = false"
|
||||
|
||||
@@ -187,6 +187,7 @@
|
||||
showMoney
|
||||
:show="isShowPayPwdPop"
|
||||
ref='payPwdPop'
|
||||
v-if="isShowPayPwdPop"
|
||||
@close="pwdPopClose"
|
||||
@finish="pwdPopFinish"
|
||||
></passkeyborad>
|
||||
|
||||
Reference in New Issue
Block a user