多租户商城-商户小程序端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

332 lines
7.2 KiB

<template>
<view
class="qaBox"
v-if="ifShow"
>
<view class="qaTopInfo">
<view
class="qaTopInfoBox"
@click="goGoodsDetails"
>
<image :src="detailList.image"></image>
<view class="qaInfoText">
<h3>{{ detailList.productName }}</h3>
<span>共{{ detailList.count }}个问题</span>
</view>
</view>
<view class="qaTitBox">
<view class="qaTit"><i>问</i>
<h3>{{ detailList.problem }}</h3></view>
<view class="qaTitTime"><img :src="detailList.headImage" />
<span class="qaName">{{ detailList.name }}</span>
<span class="qaTimeInfo">{{ detailList.createTime }}</span></view>
</view>
</view>
<view class="answerListBox">
<view class="answerNum">共{{ answerslength }}条回答</view>
<view
class="answerList"
v-for="item in detailList.answers"
:key="item.answerId"
>
<view class="answerItem">
<view class="itemTit">
<view class="itemAvatarBox">
<img
:src="item.headImage"
alt=""
>
<span class="answerName">{{ item.name }}</span>
</view>
<view class="answerTime">{{ item.createTime }}</view>
</view>
<view class="answerInfo">{{ item.answer }}</view>
</view>
</view>
</view>
<view
v-if="detailList.ifExhibition==1"
class="pad-bot-100"
></view>
<view
class="answerBtn"
v-if="detailList.ifExhibition==1"
:style="{'padding-bottom':(isIphone==true? 50:0)+'rpx'}"
>
<view class="uni-form-item uni-column answerBtnBox">
<input
class="uni-input"
v-model="answerText"
maxlength="200"
focus
placeholder="被邀请的用户才能回答"
/>
<view
class="answerButton"
@click="answer"
>回答
</view>
</view>
</view>
</view>
</template>
<script>
const NET = require('../../utils/request')
const API = require('../../config/api')
import QuestionsAndAnswersList from "./components/QuestionsAndAnswersList";
export default {
name: "qADetail",
components:{QuestionsAndAnswersList},
data() {
return {
detailList: {},//商品问答详情
productId: '',
images: '',
productName: '',
problemsData: {},
answerText: "",
answerslength: 0,
num: 0,
isIphone: false,
ifShow: false
}
},
onLoad(options) {
this.isIphone = getApp().globalData.isIphone;
this.problemsData = this.$getJumpParam(options)
this.getProblems()
},
methods: {
goGoodsDetails() {
let shopId = this.detailList.shopId
let productId = this.detailList.productId
let skuId = this.detailList.skuId
uni.navigateTo({
url: 'goodsDetails?shopId=' + shopId + '&productId=' + productId + '&skuId=' + skuId
})
},
//商品问答数据
getProblems() {
NET.request(API.getProblemDetail, {
problemId: this.problemsData.problemId,
productId: this.problemsData.productId,
}, 'GET').then(res => {
this.detailList = res.data
this.ifShow = true
this.answerslength = this.detailList.answers.length
uni.removeStorageSync('seeAllFnData')
}).catch(res => {
uni.showToast({
title: '失败',
icon: "none"
})
})
},
//回答
answer() {
NET.request(API.addAnswer, {
productId: this.problemsData.productId,
answer: this.answerText,
problemId: this.problemsData.problemId
}, 'POST').then(res => {
this.getProblems()
this.answerText = ""
uni.showToast({
title: '回答成功',
icon: "success"
})
}).catch(res => {
uni.showToast({
title: '失败',
icon: "none"
})
})
}
}
}
</script>
<style
lang="scss"
scoped
>
.qaBox {
padding: 0 30upx;
.qaTopInfo {
margin-top: 20upx;
.qaTopInfoBox {
border-radius: 10upx;
display: flex;
align-items: center;
padding: 15upx 20upx;
margin-bottom: 55upx;
image {
border: 2px solid #E4E5E6;
width: 120upx;
height: 120upx;
margin-right: 20upx;
}
.qaInfoText {
h3 {
font-size: 30upx;
font-weight: 500;
color: #333333;
margin-bottom: 20rpx;
}
span {
font-size: 24upx;
color: #999999;
}
}
}
.qaTitBox {
padding-bottom: 30upx;
border-bottom: 1upx solid #EEEEEE;
.qaTit {
display: flex;
align-items: center;
margin-bottom: 35upx;
i {
width: 38upx;
height: 38upx;
background: #C83732;
font-style: normal;
text-align: center;
color: #FFFFFF;
font-size: 20upx;
margin-right: 30upx;
}
h3 {
font-size: 28upx;
font-weight: 500;
color: #333333;
}
}
.qaTitTime {
display: flex;
align-items: center;
img {
width: 44upx;
height: 44upx;
margin-right: 20upx;
}
.qaName {
font-size: 28upx;
color: #666666;
margin-right: 35upx;
}
.qaTimeInfo {
color: #CCCCCC;
font-size: 22upx;
}
}
}
}
.answerListBox {
.answerNum {
font-size: 24upx;
color: #CCCCCC;
margin-bottom: 40upx;
margin-top: 30upx;
}
.answerList {
padding-bottom: 50upx;
.answerItem {
margin-bottom: 10upx;
.itemTit {
display: flex;
align-items: center;
justify-content: space-between;
.itemAvatarBox {
display: flex;
img {
width: 46upx;
height: 46upx;
margin-right: 20upx;
}
.answerName {
font-size: 26upx;
color: #333333;
font-weight: bold;
}
}
.answerTime {
color: #CCCCCC;
font-size: 20upx;
}
}
.answerInfo {
color: #333333;
font-size: 28upx;
margin-top: 20upx;
font-weight: 400;
}
}
}
}
.answerBtn {
position: fixed;
width: 100%;
bottom: 0;
left: 0;
.answerBtnBox {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
padding: 30upx;
background: #FFFFFF;
input {
margin-right: 30upx;
width: 530upx;
background: #F1F1F1;
min-height: 84upx;
padding-left: 30upx;
font-size: 28upx;
color: #999999;
}
.input-placeholder {
font-size: 24upx;
color: #999999;
}
.answerButton {
width: 152upx;
height: 84upx;
background: #333333;
text-align: center;
line-height: 84upx;
font-size: 30upx;
color: #FFEBC4;
}
}
}
}
</style>