|
@@ -30,12 +30,12 @@
|
|
</view>
|
|
</view>
|
|
</van-popup>
|
|
</van-popup>
|
|
</view>
|
|
</view>
|
|
- <view class="report-empty-box" v-if="quesionList.length==0">
|
|
|
|
- <image :src="globalImgUrls.chartEmpty" mode="widthFix" />
|
|
|
|
- <view>暂无数据</view>
|
|
|
|
|
|
+ <view class="report-empty-box" v-if="questionList.length==0">
|
|
|
|
+ <image :src="globalImgUrls.activityNoAuth" mode="widthFix" />
|
|
|
|
+ <view>暂无提问<text v-if="visitor.type===2">,快试试提问功能吧</text></view>
|
|
</view>
|
|
</view>
|
|
<view class="question-list">
|
|
<view class="question-list">
|
|
- <view class="question-item" v-for="item in quesionList" :key="item.community_question_id">
|
|
|
|
|
|
+ <view class="question-item" v-for="item in questionList" :key="item.community_question_id">
|
|
<view class="question-info">
|
|
<view class="question-info">
|
|
<view style="flex:1;" class="question-title">
|
|
<view style="flex:1;" class="question-title">
|
|
<text class="item-label">{{item.chart_permission_name}}</text>
|
|
<text class="item-label">{{item.chart_permission_name}}</text>
|
|
@@ -85,82 +85,46 @@
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
-import { apiApplyPermission, apiUserInfo } from '@/api/user'
|
|
|
|
-import {apiQuestionList,apiOptionList} from '@/api/question'
|
|
|
|
-const moment = require('@/utils/moment-with-locales.min')
|
|
|
|
-moment.locale('zh-cn');
|
|
|
|
|
|
+import mixin from "../../mixin/questionMixin";
|
|
|
|
+import {apiOptionList} from '@/api/question'
|
|
export default {
|
|
export default {
|
|
|
|
+ mixins: [mixin],
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
- moment:moment,
|
|
|
|
- quesionList: [],
|
|
|
|
|
|
+ questionList: [],
|
|
isPopupShow: false,//弹出层是否展示
|
|
isPopupShow: false,//弹出层是否展示
|
|
optionList: [],
|
|
optionList: [],
|
|
activeNames: [],//collapse
|
|
activeNames: [],//collapse
|
|
activeName:'',
|
|
activeName:'',
|
|
- innerAudio: null,//该页面的音频
|
|
|
|
vistor: {//用户信息
|
|
vistor: {//用户信息
|
|
type: 1,//1研究员,2客户
|
|
type: 1,//1研究员,2客户
|
|
status: '正式',//type为2的时候才判断
|
|
status: '正式',//type为2的时候才判断
|
|
},
|
|
},
|
|
- currentAudioMsg: {
|
|
|
|
- id: '',
|
|
|
|
- audioCurrentTime: 0,//音频播放实时时间
|
|
|
|
- audioTime: 0,//当前音频时间
|
|
|
|
- audioCurrentUrl: '',//当前音频地址
|
|
|
|
- },//当前正在播放音频的一些信息
|
|
|
|
- pupData: {
|
|
|
|
- show: false,
|
|
|
|
- content: '',//弹窗html字符串
|
|
|
|
- type: '',
|
|
|
|
- mobile: "",
|
|
|
|
- customer_info:{}
|
|
|
|
- },
|
|
|
|
- selectType:'all',
|
|
|
|
selectName:'',
|
|
selectName:'',
|
|
- selectId:-1,
|
|
|
|
pauseImgSrc:'../../static/audio-pause-2.png',
|
|
pauseImgSrc:'../../static/audio-pause-2.png',
|
|
playImgSrc:'../../static/audio-doing.png',
|
|
playImgSrc:'../../static/audio-doing.png',
|
|
- page:1,
|
|
|
|
- pageSize:20,
|
|
|
|
- finished:false,
|
|
|
|
noAuth:['潜在','流失','冻结客户','暂停试用']
|
|
noAuth:['潜在','流失','冻结客户','暂停试用']
|
|
}
|
|
}
|
|
},
|
|
},
|
|
watch:{
|
|
watch:{
|
|
selectName(){
|
|
selectName(){
|
|
- this.getQuestionList()
|
|
|
|
|
|
+ this.getQuestionList(3)
|
|
}
|
|
}
|
|
},
|
|
},
|
|
onLoad() {
|
|
onLoad() {
|
|
- this.initAudio()
|
|
|
|
this.getVistor()
|
|
this.getVistor()
|
|
this.getOptionList()
|
|
this.getOptionList()
|
|
- this.getQuestionList()
|
|
|
|
|
|
+ this.getQuestionList(3)
|
|
},
|
|
},
|
|
onShow() {
|
|
onShow() {
|
|
|
|
|
|
- },
|
|
|
|
- onUnload() {
|
|
|
|
- this.destroyAudio()
|
|
|
|
},
|
|
},
|
|
onReachBottom() {
|
|
onReachBottom() {
|
|
if(this.finished) return
|
|
if(this.finished) return
|
|
this.page++
|
|
this.page++
|
|
- this.getQuestionList()
|
|
|
|
|
|
+ this.getQuestionList(3)
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
- //初始化audio
|
|
|
|
- initAudio() {
|
|
|
|
- this.innerAudio = uni.createInnerAudioContext()
|
|
|
|
- this.handleAudioFun()
|
|
|
|
- },
|
|
|
|
- //销毁audio
|
|
|
|
- destroyAudio() {
|
|
|
|
- if (this.innerAudio) {
|
|
|
|
- this.innerAudio.destroy()
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
//获取访客信息:研究员/客户
|
|
//获取访客信息:研究员/客户
|
|
getVistor() {
|
|
getVistor() {
|
|
const {userInfo} = this.$store.state.user
|
|
const {userInfo} = this.$store.state.user
|
|
@@ -178,169 +142,16 @@ export default {
|
|
if(res.code===200){
|
|
if(res.code===200){
|
|
this.optionList = res.data
|
|
this.optionList = res.data
|
|
}
|
|
}
|
|
- },
|
|
|
|
- //获取问题列表
|
|
|
|
- async getQuestionList(){
|
|
|
|
- let questionData = []
|
|
|
|
- const res = await apiQuestionList(
|
|
|
|
- {
|
|
|
|
- page_index:this.page,
|
|
|
|
- page_size:this.pageSize,
|
|
|
|
- chart_permission_id:this.selectId===-1?'':this.selectId,
|
|
|
|
- reply_status:3
|
|
|
|
- }
|
|
|
|
- )
|
|
|
|
- if(res.code===200){
|
|
|
|
- if(res.data){
|
|
|
|
- questionData = res.data
|
|
|
|
- }else{
|
|
|
|
- this.finished = true
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- let tempArr = []
|
|
|
|
- questionData.forEach(item=>{
|
|
|
|
- let temp = item
|
|
|
|
- const {audio_url,audio_play_seconds} = item.audio_list[0]
|
|
|
|
- temp.answer = {
|
|
|
|
- source:audio_url,
|
|
|
|
- audioTime:parseInt(audio_play_seconds)*1000,
|
|
|
|
- isplay:false,
|
|
|
|
- ispause:false
|
|
|
|
- }
|
|
|
|
- temp.id = item.community_question_id
|
|
|
|
- temp.loading = false
|
|
|
|
- tempArr.push(temp)
|
|
|
|
- })
|
|
|
|
- if(this.page>1){
|
|
|
|
- this.quesionList = this.quesionList.concat(tempArr)
|
|
|
|
- }else{
|
|
|
|
- this.quesionList= tempArr
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- },
|
|
|
|
- //audio事件
|
|
|
|
- handleAudioFun() {
|
|
|
|
- this.innerAudio.onPlay(() => {
|
|
|
|
- console.log('开始了')
|
|
|
|
- this.quesionList.map(i=>{
|
|
|
|
- if(i.id===this.currentAudioMsg.id){
|
|
|
|
- i.loading = false
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
- })
|
|
|
|
- this.innerAudio.onTimeUpdate(() => {
|
|
|
|
- //console.log('时间更新')
|
|
|
|
- this.currentAudioMsg.audioCurrentTime = this.innerAudio.currentTime * 1000
|
|
|
|
- //console.log('duration',this.innerAudio.duration)
|
|
|
|
- })
|
|
|
|
- this.innerAudio.onPause(() => {
|
|
|
|
- console.log("暂停");
|
|
|
|
- })
|
|
|
|
- this.innerAudio.onEnded(() => {
|
|
|
|
- console.log('音频播放完毕')
|
|
|
|
- const { id } = this.currentAudioMsg
|
|
|
|
- this.quesionList.map(i => {
|
|
|
|
- if (i.id === id) {
|
|
|
|
- i.answer.isplay = false
|
|
|
|
- i.answer.ispause = false
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
- this.changeCurrentAudio({ id: '', answer: { source: '', audioTime: 0 } })
|
|
|
|
- })
|
|
|
|
- },
|
|
|
|
- //初始化无权限弹窗
|
|
|
|
- initPupData(item) {
|
|
|
|
- let str = '<p>您暂无权限查看语音回复</p>'
|
|
|
|
- const {type,mobile,name,customer_info} = item.permission_info
|
|
|
|
- if (type==='apply') {
|
|
|
|
- this.pupData.type = 'apply'
|
|
|
|
- str += '<p>若想查看可以申请开通</p>'
|
|
|
|
- }
|
|
|
|
- if (type==='contact') {
|
|
|
|
- this.pupData.mobile = mobile+''
|
|
|
|
- this.pupData.saleName = name
|
|
|
|
- this.pupData.type = 'contact'
|
|
|
|
- str += `<p>若想查看可以联系对口销售</p>`
|
|
|
|
- }
|
|
|
|
- this.pupData.customer_info= customer_info
|
|
|
|
- this.pupData.content = str
|
|
|
|
- this.pupData.show = true
|
|
|
|
- },
|
|
|
|
- //拨号
|
|
|
|
- handleCallPhone(tel) {
|
|
|
|
- uni.makePhoneCall({
|
|
|
|
- phoneNumber: tel?tel:'123456',
|
|
|
|
- success:()=>{
|
|
|
|
- this.pupData.show=false
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
- },
|
|
|
|
- //申请权限
|
|
|
|
- async handleApply() {
|
|
|
|
- if (this.pupData.customer_info.has_apply) {//已经申请过
|
|
|
|
- this.pupData.content = `<p>您已提交过申请,请耐心等待</p>`
|
|
|
|
- this.pupData.type = ''
|
|
|
|
- } else {
|
|
|
|
- if (!this.pupData.customer_info.status || this.pupData.customer_info.status != '流失') {
|
|
|
|
- uni.navigateTo({
|
|
|
|
- url: "/pages-applyPermission/applyPermission?source=5"
|
|
|
|
- })
|
|
|
|
- } else {//主动调一次申请权限接口
|
|
|
|
- const res=await apiApplyPermission({
|
|
|
|
- company_name:this.pupData.customer_info.company_name,
|
|
|
|
- real_name:this.pupData.customer_info.name,
|
|
|
|
- source:2,
|
|
|
|
- from_page:'活动列表'
|
|
|
|
- })
|
|
|
|
- if(res.code===200){}
|
|
|
|
- this.pupData.content = `<p>申请已提交</p><p>请等待销售人员与您联系</p>`
|
|
|
|
- this.pupData.type = ''
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
- //播放音频
|
|
|
|
- handleAudioPlay() {
|
|
|
|
- this.innerAudio.onCanplay(() => {
|
|
|
|
- this.innerAudio.play()
|
|
|
|
- //console.log('音频长度:', this.innerAudio)
|
|
|
|
- //this.currentAudioMsg.audioTime = this.innerAudio.duration
|
|
|
|
- })
|
|
|
|
- },
|
|
|
|
- //切换当前播放音频
|
|
|
|
- changeCurrentAudio(item) {
|
|
|
|
- const { id } = item
|
|
|
|
- const { source, audioTime } = item.answer
|
|
|
|
- this.currentAudioMsg = {
|
|
|
|
- id: id,
|
|
|
|
- audioCurrentTime: 0 * 1000,
|
|
|
|
- audioTime: audioTime,
|
|
|
|
- audioCurrentUrl: source
|
|
|
|
- }
|
|
|
|
- this.quesionList.map(i=>{
|
|
|
|
- if(i.id===item.id){
|
|
|
|
- i.loading = true
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
- },
|
|
|
|
- //点击'热门回答'/'只看我的'/筛选弹窗的按钮
|
|
|
|
- changeSelect(type) {
|
|
|
|
- if(type!=='name'){
|
|
|
|
- this.selectType = type
|
|
|
|
- }else{
|
|
|
|
- this.isPopupShow = false
|
|
|
|
- }
|
|
|
|
- //getData()
|
|
|
|
- },
|
|
|
|
|
|
+ },
|
|
//点击筛选
|
|
//点击筛选
|
|
showPopup() {
|
|
showPopup() {
|
|
this.isPopupShow = true
|
|
this.isPopupShow = true
|
|
},
|
|
},
|
|
- changeBtnShow() {
|
|
|
|
- },
|
|
|
|
|
|
+ //点击一级分类
|
|
changeSelecOption(e) {
|
|
changeSelecOption(e) {
|
|
this.activeName = e.detail
|
|
this.activeName = e.detail
|
|
},
|
|
},
|
|
|
|
+ //点击二级分类
|
|
handleOptionClick(item){
|
|
handleOptionClick(item){
|
|
//重复点击代表取消
|
|
//重复点击代表取消
|
|
if(this.selectId===item.PermissionId){
|
|
if(this.selectId===item.PermissionId){
|
|
@@ -353,44 +164,7 @@ export default {
|
|
this.page = 1
|
|
this.page = 1
|
|
this.isPopupShow = false
|
|
this.isPopupShow = false
|
|
},
|
|
},
|
|
- //点击某条音频
|
|
|
|
- handleAudio(item) {
|
|
|
|
- //如果没有权限,弹窗并return
|
|
|
|
- if (!item.auth_ok) {
|
|
|
|
- this.initPupData(item)
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- const { source, isplay } = item.answer
|
|
|
|
- if (isplay) {
|
|
|
|
- //说明是播放->暂停
|
|
|
|
- this.innerAudio.pause()
|
|
|
|
- } else if (item.id === this.currentAudioMsg.id) {
|
|
|
|
- //说明是暂停->播放
|
|
|
|
- this.innerAudio.play()
|
|
|
|
- } else {
|
|
|
|
- console.log('aaa', source, this.innerAudio.src)
|
|
|
|
- //说明是第一次播放或点击其他播放项
|
|
|
|
- this.changeCurrentAudio(item)
|
|
|
|
- this.innerAudio.stop()
|
|
|
|
- this.innerAudio.src = source
|
|
|
|
- /* this.innerAudio.play() */
|
|
|
|
- this.handleAudioPlay()
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- this.quesionList.map((i) => {
|
|
|
|
- if (i.id === item.id) {
|
|
|
|
- if (i.answer.isplay) {
|
|
|
|
- i.answer.ispause = true
|
|
|
|
- }
|
|
|
|
- i.answer.isplay = !i.answer.isplay
|
|
|
|
- } else {
|
|
|
|
- i.answer.isplay = false
|
|
|
|
- i.answer.ispause = false
|
|
|
|
- i.loading = false
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
- },
|
|
|
|
- //点击'我要提问'/'待回答'
|
|
|
|
|
|
+ //点击'我要提问' or '待回答'
|
|
toPage(item) {
|
|
toPage(item) {
|
|
const { type } = item
|
|
const { type } = item
|
|
if (type === 1) {
|
|
if (type === 1) {
|
|
@@ -400,7 +174,6 @@ export default {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|
|
|
|
|
|
@@ -525,6 +298,7 @@ page {
|
|
}
|
|
}
|
|
.question-info{
|
|
.question-info{
|
|
display: flex;
|
|
display: flex;
|
|
|
|
+ padding: 10rpx 0;
|
|
.question-title{
|
|
.question-title{
|
|
font-size: 32rpx;
|
|
font-size: 32rpx;
|
|
color:#333333;
|
|
color:#333333;
|