Просмотр исходного кода

问答社区样式+接口调试

cxmo 2 лет назад
Родитель
Сommit
b5f994b537

+ 17 - 0
api/question.js

@@ -0,0 +1,17 @@
+//问答社区模块
+import { httpGet, httpPost } from "@/utils/request.js";
+
+/**
+ * 问答列表
+ * @param chart_permission_id
+ * @param reply_status
+ */
+ export const apiQuestionList=params=>{
+    return httpGet('/community/question/list',params)
+}
+/**
+ * FICC品种权限
+ */
+ export const apiOptionList=params=>{
+    return httpGet('/company/permission/tree',params)
+}

+ 1 - 1
pages-applyPermission/applyPermission.vue

@@ -78,7 +78,7 @@ export default {
                 tel: '',
                 permission: '',
             },
-            source:"",//来源 1-我的 2-活动 3-图库 4-问答
+            source:"",//来源 1-我的 2-活动 3-图库 4-研报 5-问答
             from_page:''
         }
     },

+ 0 - 201
pages/question/mock.js

@@ -1,201 +0,0 @@
-const moment=require('@/utils/moment-with-locales.min')
-moment.locale('zh-cn');
-const varietyData = [{
-        title: '宏观经济',
-        btnList: [{
-                name: '宏观',
-            },
-            {
-                name: '利率债'
-            }
-        ]
-    },
-    {
-        title: '化工',
-        btnList: [{
-                name: '原油'
-            },
-            {
-                name: '沥青'
-            },
-            {
-                name: 'PTA'
-            },
-            {
-                name: 'MEG'
-            },
-            {
-                name: '聚酯'
-            },
-            {
-                name: '织造终端'
-            },
-            {
-                name: '纯苯+苯乙烯'
-            },
-            {
-                name: '甲醇'
-            },
-            {
-                name: '聚烯烃'
-            },
-            {
-                name: '橡胶'
-            },
-            {
-                name: 'PVC'
-            }
-        ]
-    },
-    {
-        title: '黑色',
-        btnList: [{
-                name: '钢材'
-            },
-            {
-                name: '铁矿'
-            },
-            {
-                name: '双焦(焦煤、焦炭)'
-            },
-            {
-                name: '玻璃纯碱'
-            }
-        ]
-    },
-    {
-        title: '有色',
-        btnList: [{
-                name: '有色(铜、铝)'
-            },
-            {
-                name: '有色(锌、铅)'
-            },
-            {
-                name: '镍+不锈钢'
-            },
-            {
-                name: '钴锂'
-            }
-        ]
-    }
-]
-const questionData = [
-    {
-        id: 1,
-        question: {//提问者
-            text: '疫情下全球苯乙烯市场有什么动荡和影响?',//提问内容
-            time: '2022.5.23 14:40',//提问时间
-        },
-        answer: {//回答者
-            img: 'xxx.png',//头像
-            name: '林秋馨',
-            group: '能化组',// ->弘则能化组研究员
-            source: 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-hello-uniapp/2cc220e0-c27a-11ea-9dfb-6da8e309e0d8.mp3',// 回答音频
-            time: '2022.5.23 15:40',//回答时间
-            audioTime:moment(21*1000).format('mm:ss'),//音频长度,单位秒
-            isplay: false,
-            ispause:false,
-        },
-        loading:false,
-        label: '苯乙烯',// 问题分类
-    },
-    {
-        id: 2,
-        question: {//提问者
-            text: '疫情下全球苯乙烯市场有什么动荡和影响?',//提问内容
-            time: '2022.5.23 14:40',//提问时间
-        },
-        answer: {//回答者
-            img: 'xxx.png',//头像
-            name: '林秋馨',
-            group: '能化组',// ->弘则能化组研究员
-            source: 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-hello-uniapp/2cc220e0-c27a-11ea-9dfb-6da8e309e0d8.mp3',// 回答音频
-            time: '2022.5.23 15:40',//回答时间
-            audioTime:moment(21*1000).format('mm:ss'),//音频长度,单位秒
-            isplay: false,
-            ispause:false,
-        },
-        loading:false,
-        label: '苯乙烯',// 问题分类
-    },
-    {
-        id: 3,
-        question: {//提问者
-            text: '疫情下全球苯乙烯市场有什么动荡和影响3?',//提问内容
-            time: '2022.5.23 14:40',//提问时间
-        },
-        answer: {//回答者
-            img: 'xxx.png',//头像
-            name: '林秋馨',
-            group: '能化组',// ->弘则能化组研究员
-            source: 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-hello-uniapp/2cc220e0-c27a-11ea-9dfb-6da8e309e0d8.mp3',// 回答音频
-            time: '2022.5.23 15:40',//回答时间
-            audioTime:moment(21*1000).format('mm:ss'),//音频长度,单位秒
-            isplay: false,
-            ispause:false,
-        },
-        loading:false,
-        label: '苯乙烯',// 问题分类
-    },
-    {
-        id: 4,
-        question: {//提问者
-            text: '疫情下全球苯乙烯市场有什么动荡和影响4?',//提问内容
-            time: '2022.5.23 14:40',//提问时间
-        },
-        answer: {//回答者
-            img: 'xxx.png',//头像
-            name: '林秋馨',
-            group: '能化组',// ->弘则能化组研究员
-            source: 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-hello-uniapp/2cc220e0-c27a-11ea-9dfb-6da8e309e0d8.mp3',// 回答音频
-            time: '2022.5.23 15:40',//回答时间
-            audioTime:moment(21*1000).format('mm:ss'),//音频长度,单位秒
-            isplay: false,
-            ispause:false,
-        },
-        loading:false,
-        label: '苯乙烯',// 问题分类
-    },
-    {
-        id: 5,
-        question: {//提问者
-            text: '疫情下全球苯乙烯市场有什么动荡和影响?5',//提问内容
-            time: '2022.5.23 14:40',//提问时间
-        },
-        answer: {//回答者
-            img: 'xxx.png',//头像
-            name: '林秋馨',
-            group: '能化组',// ->弘则能化组研究员
-            source: 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-hello-uniapp/2cc220e0-c27a-11ea-9dfb-6da8e309e0d8.mp3',// 回答音频
-            time: '2022.5.23 15:40',//回答时间
-            audioTime:moment(21*1000).format('mm:ss'),//音频长度,单位秒
-            isplay: false,
-            ispause:false,
-        },
-        loading:false,
-        label: '苯乙烯',// 问题分类
-    },
-    {
-        id: 6,
-        question: {//提问者
-            text: '疫情下全球苯乙烯市场有什么动荡和影响?6',//提问内容
-            time: '2022.5.23 14:40',//提问时间
-        },
-        answer: {//回答者
-            img: 'xxx.png',//头像
-            name: '林秋馨',
-            group: '能化组',// ->弘则能化组研究员
-            source: 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-hello-uniapp/2cc220e0-c27a-11ea-9dfb-6da8e309e0d8.mp3',// 回答音频
-            time: '2022.5.23 15:40',//回答时间
-            audioTime:moment(21*1000).format('mm:ss'),//音频长度,单位秒
-            isplay: false,
-            ispause:false,
-        },
-        loading:false,
-        label: '苯乙烯',// 问题分类
-    }
-]
-export {
-    varietyData,questionData
-}

+ 220 - 162
pages/question/question.vue

@@ -1,11 +1,11 @@
 <template>
 	<view class="question-wrap">
 		<view class="question-top">
-			<template>
-			<image src="../../static/chart/menu.png" mode="widthFix" class="menu-icon"
-				@click="showPopup" />
-			筛选	
-			</template>	
+			<view @click="showPopup" v-if="vistor.type===1||vistor.status&&!noAuth.includes(vistor.status)"
+				  style="display:flex;align-items: center;margin-left:30rpx;">
+				<image src="../../static/question/select.png" mode="widthFix" class="menu-icon"/>
+				<text style="color:#E3B377;font-size:28rpx;">筛选</text>
+			</view>	
 			<van-popup :show="isPopupShow" position="left"  :close-on-click-overlay="true"
 				@close="isPopupShow = false"
 				custom-style="height: 100%;width:50%;"
@@ -13,11 +13,15 @@
 				<view class="pop-wrap">
 					<view class="pop-option-list">
 						<van-collapse :value="activeName" @change="changeSelecOption" accordion :border="false">
-							<van-collapse-item :border="false" :title="item.title" :name="index" v-for="(item, index) in optionList"
+							<van-collapse-item :border="false" :title="item.ClassifyName" :name="index" v-for="(item, index) in optionList"
 								:key="index">
 								<view class="option-btn-wrap">
-									<view class="option-btn" @click="()=>{selectName=i.name;isPopupShow = false}" :class="{'active':selectName===i.name,'full':i.name.length>4}" v-for="(i, _index) in item.btnList" :key="_index">
-										{{ i.name }}
+									<view class="option-btn" 
+										v-for=" i in item.Items" :key="i.PermissionId"
+										@click="handleOptionClick(i)" 
+										:class="{'active':selectName===i.PermissionName,'full':i.PermissionName.length>4}" 
+										>
+											{{ i.PermissionName }}
 									</view>
 								</view>
 							</van-collapse-item>
@@ -26,45 +30,54 @@
 				</view>	
 			</van-popup>		
 		</view>
+		<view class="report-empty-box" v-if="quesionList.length==0">
+      		<image :src="globalImgUrls.chartEmpty" mode="widthFix" />
+      		<view>暂无数据</view>
+    	</view>
 		<view class="question-list">
-			<view class="question-item" v-for="item in quesionList" :key="item.id">
-				<view style="display:flex;">
-					<text class="item-label">{{item.label}}</text>
-					<text class="item-title">{{ item.question.text }}</text>
-				</view>
-				<text class="item-time">提问时间:{{ item.question.time }}</text>
-				<view class="item-answer">
+			<view class="question-item" v-for="item in quesionList" :key="item.community_question_id">
+				<view class="question-info">
+					<view style="flex:1;" class="question-title">
+						<text class="item-label">{{item.chart_permission_name}}</text>
+						<!-- <text class="item-title"> -->{{ item.question_content }}<!-- </text> -->
+					</view>	
+					<view class="item-answer">
 						<view class="answer" @click="handleAudio(item)">
 							<template v-if="!item.loading">
-								<text>{{ item.answer.isplay ? '暂停' : '播放' }}</text>
+								<!-- <text>{{ item.answer.isplay ? '暂停' : '播放' }}</text> -->
+								<image class="music-img" :src="item.answer.isplay?playImgSrc:pauseImgSrc" mode="aspectFill"/>
 								<template v-if="item.answer.isplay || item.answer.ispause">
-									<text>{{ currentAudioMsg.audioCurrentTime }}/{{ item.answer.audioTime }}</text>
+									<!-- <text>{{ currentAudioMsg.audioCurrentTime }}/{{ item.answer.audioTime }}</text> -->
+									<text>{{moment(item.answer.audioTime - currentAudioMsg.audioCurrentTime).format('mm:ss')}}</text>
 								</template>
 								<template v-else>
-									<text>{{ item.answer.audioTime }}</text>
+									<text>{{ moment(item.answer.audioTime).format('mm:ss') }}</text>
 								</template>
 							</template>
 							<template v-else>
 								<image class="load-img" src="../../static/loading.png" mode="aspectFill" />
+								<text>{{ moment(item.answer.audioTime).format('mm:ss') }}</text>
 							</template>
 						</view>
+					</view>
 				</view>
+				<text class="item-time">提问时间:{{ item.create_time }}</text>
 			</view>
 		</view>
-		<view class="topage-btn" @click="toPage(vistor)">
+		<view class="topage-btn" @click="toPage(vistor)" v-if="vistor.type===1||vistor.status&&!noAuth.includes(vistor.status)">
 			{{ vistor.type === 1 ? '待回答' : '我要提问' }}
 		</view>
 		<!-- 弹窗 -->
-		<van-popup :show="pupData.show" @close="pupData.show = false" closeable :close-on-click-overlay="false">
+		<van-popup :show="pupData.show" round @close="pupData.show = false" closeable :close-on-click-overlay="false">
 			<view class="global-pup">
 				<view class="content">
-					<rich-text :nodes="pupData.content"></rich-text>
-				</view>
-				<view class="flex bot" v-if="pupData.type == 'contact'">
-					<view @click="handleCallPhone(pupData.mobile)">拨号</view>
-				</view>
-				<view class="flex bot" v-else-if="pupData.type == 'apply'">
-					<view @click="handleApply">立即申请</view>
+					<rich-text style="flex:none;margin-bottom:20rpx;" :nodes="pupData.content"></rich-text>
+					<view class="contact" v-if="pupData.type == 'contact'">
+						{{pupData.saleName||'梁娜'}}:<text @click="handleCallPhone(pupData.mobile)">{{pupData.mobile||'123456'}}</text>
+					</view>
+					<view class="apply" v-else-if="pupData.type == 'apply'">
+						<view @click="handleApply">立即申请</view>
+					</view>
 				</view>
 			</view>
 		</van-popup>
@@ -72,29 +85,23 @@
 </template>
 
 <script>
-import { varietyData, questionData } from './mock.js'
 import { apiApplyPermission, apiUserInfo } from '@/api/user'
+import {apiQuestionList,apiOptionList} from '@/api/question'
 const moment = require('@/utils/moment-with-locales.min')
 moment.locale('zh-cn');
 export default {
 	data() {
 		return {
-			onlySeeAuth: false,//只看我的
-			quesionList: questionData,
+			moment:moment,
+			quesionList: [],
 			isPopupShow: false,//弹出层是否展示
-			optionList: varietyData,
+			optionList: [],
 			activeNames: [],//collapse
 			activeName:'',
 			innerAudio: null,//该页面的音频
 			vistor: {//用户信息
 				type: 1,//1研究员,2客户
-				status: '潜在',//type为2的时候才判断
-				premission: {
-					seeAuth: true,//只看我的筛选框
-					option: true,//弹窗筛选框
-					isApply: false,//之前是否提交过申请
-					canPlay: false,//是否能够播放音频
-				}
+				status: '正式',//type为2的时候才判断
 			},
 			currentAudioMsg: {
 				id: '',
@@ -110,7 +117,14 @@ export default {
 				customer_info:{}
 			},
 			selectType:'all',
-			selectName:'宏观'
+			selectName:'',
+			selectId:-1,
+			pauseImgSrc:'../../static/audio-pause-2.png',
+			playImgSrc:'../../static/audio-doing.png',
+			page:1,
+      		pageSize:20,
+      		finished:false,
+			noAuth:['潜在','流失','冻结客户','暂停试用']
 		}
 	},
 	watch:{
@@ -130,6 +144,11 @@ export default {
 	onUnload() {
 		this.destroyAudio()
 	},
+	onReachBottom() {
+		if(this.finished) return
+		this.page++
+		this.getQuestionList()
+ 	},
 	methods: {
 		//初始化audio
 		initAudio() {
@@ -144,23 +163,60 @@ export default {
 		},
 		//获取访客信息:研究员/客户
 		getVistor() {
-			this.vistor = {
-				type: 2,
-				status: '正式',
-				premission: {
-					seeAuth: true,//只看我的筛选框
-					option: true,//弹窗筛选框
-					isApply: true,//之前是否提交过申请
-					canPlay: true,//是否能够播放音频
-				}
+			const {userInfo} = this.$store.state.user
+			//如果用户在ficc研究部下(departmentId:1),则为研究员.其他情况为客户
+			if(userInfo.admin_info&&userInfo.admin_info.departmentId===1){
+				this.vistor.type = 1
+			}else{
+				this.vistor.type = 2
 			}
+			//this.vistor.status = userInfo.status
 		},
 		//获取筛选列表
-		getOptionList(){
+		async getOptionList(){
+			const res = await apiOptionList()
+			if(res.code===200){
+				this.optionList = res.data
+			}
 		},
 		//获取问题列表
-		getQuestionList(){
-
+		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() {
@@ -169,15 +225,17 @@ export default {
 				this.quesionList.map(i=>{
 				if(i.id===this.currentAudioMsg.id){
 					i.loading = false
-					/* uni.hideLoading(); */
 				}
 			})
 			})
 			this.innerAudio.onTimeUpdate(() => {
 				//console.log('时间更新')
-				this.currentAudioMsg.audioCurrentTime = moment(this.innerAudio.currentTime * 1000).format('mm:ss')
+				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
@@ -191,26 +249,31 @@ export default {
 			})
 		},
 		//初始化无权限弹窗
-		initPupData() {
+		initPupData(item) {
 			let str = '<p>您暂无权限查看语音回复</p>'
-			const { status} = this.vistor
-			if (['潜在', '流失'].includes(status)) {
+			const {type,mobile,name,customer_info} = item.permission_info
+			if (type==='apply') {
 				this.pupData.type = 'apply'
 				str += '<p>若想查看可以申请开通</p>'
 			}
-			if (['冻结', '暂停试用'].includes(status)) {
-				this.pupData.mobile = 123456
+			if (type==='contact') {
+				this.pupData.mobile = mobile+''
+				this.pupData.saleName = name
 				this.pupData.type = 'contact'
-				str += '<p>若想查看可以联系对口销售</p>'
+				str += `<p>若想查看可以联系对口销售</p>`
 			}
-			this.pupData.customer_info.status = status
-			this.pupData.customer_info.has_apply = this.vistor.premission.isApply
+			this.pupData.customer_info= customer_info
 			this.pupData.content = str
 			this.pupData.show = true
 		},
 		//拨号
-		handleCallPhone(mobile) {
-
+		handleCallPhone(tel) {
+			uni.makePhoneCall({
+        		phoneNumber: tel?tel:'123456',
+        		success:()=>{
+          			this.pupData.show=false
+        		}
+      		});
 		},
 		//申请权限
 		async handleApply() {
@@ -220,16 +283,16 @@ export default {
 			} else {
 				if (!this.pupData.customer_info.status || this.pupData.customer_info.status != '流失') {
 					uni.navigateTo({
-						url: "/pages-applyPermission/applyPermission?source=4"
+						url: "/pages-applyPermission/applyPermission?source=5"
 					})
 				} else {//主动调一次申请权限接口 
-					/*  const res=await apiApplyPermission({
+					 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){} */
+					 if(res.code===200){}
 					this.pupData.content = `<p>申请已提交</p><p>请等待销售人员与您联系</p>`
 					this.pupData.type = ''
 
@@ -250,16 +313,13 @@ export default {
 			const { source, audioTime } = item.answer
 			this.currentAudioMsg = {
 				id: id,
-				audioCurrentTime: moment(0 * 1000).format('mm:ss'),
+				audioCurrentTime: 0 * 1000,
 				audioTime: audioTime,
 				audioCurrentUrl: source
 			}
 			this.quesionList.map(i=>{
 				if(i.id===item.id){
 					i.loading = true
-					/* uni.showLoading({
-						title: '加载中'
-					}); */
 				}
 			})
 		},
@@ -274,7 +334,6 @@ export default {
 		},
 		//点击筛选
 		showPopup() {
-			console.log('a')
 			this.isPopupShow = true
 		},
 		changeBtnShow() {
@@ -282,11 +341,23 @@ export default {
 		changeSelecOption(e) {
 			this.activeName = e.detail
 		},
+		handleOptionClick(item){
+			//重复点击代表取消
+			if(this.selectId===item.PermissionId){
+				this.selectId=-1
+				this.selectName=''
+			}else{
+				this.selectId = item.PermissionId
+				this.selectName = item.PermissionName	
+			}
+			this.page = 1
+			this.isPopupShow = false
+		},
 		//点击某条音频
 		handleAudio(item) {
 			//如果没有权限,弹窗并return
-			if (!this.vistor.premission.canPlay) {
-				this.initPupData()
+			if (!item.auth_ok) {
+				this.initPupData(item)
 				return
 			}
 			const { source, isplay } = item.answer
@@ -368,14 +439,15 @@ page {
 	.question-top {
 		display: flex;
 		flex: auto;
-		justify-content: flex-end;
 		align-items: center;
 		height: 100rpx;
 		background-color: white;
 		position: sticky;
 		top: 0;
 		left: 0;
+		margin:0 -30rpx;
 		z-index: 99;
+		border-top: 1rpx solid rgba(0, 0, 0, 0.1);
 		.text{
 			width:240rpx;
 			height:70rpx;
@@ -394,7 +466,8 @@ page {
 		}
 
 		.menu-icon {
-			width: 40rpx;
+			width: 34rpx;
+			height:34rpx;
 		}
 		.pop-wrap{
 			height: 100%;
@@ -450,101 +523,64 @@ page {
 					background-color: #FFFFFF;
 				}
 			}
-			.item-label{
-				width: 90rpx;
-				height:41rpx;
-				font-size: 24rpx;
-				text-align: center;
-				line-height: 41rpx;
-				background-color: #333333;
-				color: #E4B478;			
-			}
-			.item-title {
-				display: block;
-				font-size: 32rpx;
-				color:#333333
-			}
-
-			.item-time {
-				color: #999999;
-				font-size: 24rpx;
-				margin:20rpx 0;
-				display: block;
-			}
-
-			.item-answer {
+			.question-info{
 				display: flex;
-				width:100%;
-				/* height: 213rpx;
-				background-color: #FDF8F2; */
-				box-sizing: border-box;
-				padding:20rpx;
-				align-items: center;
-				position:relative;
-				/* .answer-img {
-					width: 146rpx;
-					height: 146rpx;
-					border: 4rpx solid #FFFFFF;
-					border-radius: 50%;
-					margin-right: 20rpx;
-				} */
-
-				.answer-other {
-					display: flex;
-					flex-direction: column;
-
-					.answer-info {
-						.name {
-							color: #333333;
-							font-size: 28rpx;
-							margin-right: 20rpx;
-						}
-
-						.group {
-							color: #999999;
-							font-size: 24rpx;
-						}
-
-						.label {
-							position: absolute;
-							right:0;
-							top:0;
-							width: 90rpx;
-							height:41rpx;
-							font-size: 24rpx;
-							text-align: center;
-							line-height: 41rpx;
-							background-color: #333333;
-							color: #E4B478;
-						}
+				.question-title{
+					font-size: 32rpx;
+					color:#333333;
+					.item-label{
+						padding:7rpx 12rpx;
+						font-size: 22rpx;
+						text-align: center;
+						background-color: #333333;
+						color: #E4B478;	
+						border-radius: 21rpx;
+						margin-right:15rpx ;		
 					}
 				}
-				.answer {
-					/* margin-top: 20rpx; */
-					width: 340rpx;
-					height: 74rpx;
-					box-sizing: border-box;
-					padding:20rpx 30rpx;
-					border-radius: 37rpx;
-					background:linear-gradient(253deg, #E3B377 0%, #FBCA8E 100%);
+				.item-answer {
 					display: flex;
-					justify-content: space-between;
-					color: #FFFFFF;
-					 .load-img{
-            			width: 44rpx;
-            			height: 44rpx;
-            			animation: circle 1s linear infinite;
-        			}
-        			@keyframes circle {
-						0%{
-							transform: rotateZ(0);
+					align-items: center;
+					.answer {
+						width:150rpx;
+						height: 97rpx;
+						box-sizing: border-box;
+						padding:30rpx 15rpx;
+						border-radius: 18rpx;
+						background:linear-gradient(253deg, #E3B377 0%, #FBCA8E 100%);
+						display: flex;
+						justify-content: space-between;
+						color: #FFFFFF;
+						font-size: 24rpx;
+						.load-img{
+							width: 34rpx;
+							height: 34rpx;
+							margin-right: 10rpx;
+							animation: circle 1s linear infinite;
+						}
+						.music-img{
+							width: 34rpx;
+							height: 34rpx;
+							margin-right: 10rpx;
 						}
-						100%{
-							transform: rotateZ(360deg);
+						@keyframes circle {
+							0%{
+								transform: rotateZ(0);
+							}
+							100%{
+								transform: rotateZ(360deg);
+							}
 						}
-        			}
+					}
 				}
 			}
+			.item-time {
+				color: #999999;
+				font-size: 24rpx;
+				margin:20rpx 0;
+				display: block;
+			}
+			
 		}
 	}
 
@@ -562,5 +598,27 @@ page {
 		box-shadow: 0px 4px 20px 1px rgba(160, 126, 84, 0.25);
 		color: #E3B377;
 	}
+	.global-pup{
+		.content{
+			padding:90rpx 34rpx;
+			flex-direction: column;
+			.contact{
+				text{
+					margin-left: 15rpx;
+					color:#E6B77D;
+				}
+			}
+			.apply{
+				margin-top: 40rpx;
+				width:390rpx;
+				height:80rpx;
+				background-color: #E6B77D;
+				color: #FFFFFF;
+				text-align: center;
+				line-height: 80rpx;
+				border-radius: 40rpx;
+			}
+		}
+	}
 }
 </style>

BIN
static/question/askquestion.png


BIN
static/question/select.png


BIN
static/tabbar/question-s.png


BIN
static/tabbar/question.png