Răsfoiți Sursa

增加webview页面/修改部分显示/增加咨询按钮跳转/登出

空白格 3 ani în urmă
părinte
comite
6b7e2f157f

+ 44 - 38
h5_web/common/apiurl.js

@@ -3,21 +3,23 @@
 */
 const apiurl = {
 	// 手机登录验证码
-	phoneLoginCodeUrl:'/auth/sendSmsCode',
+	phoneLoginCodeUrl: '/auth/sendSmsCode',
+	// 退出登录
+	logoutUrl: '/auth/logout',
 	// 手机登录验证码验证
-	phoneLoginAuthUrl:'/auth/verifyCode',
+	phoneLoginAuthUrl: '/auth/verifyCode',
 	// 获取系统信息
 	getSystermsApi: '/systerms/getByType/',
 	// 新闻详情
-	newsDetailsUrl:'/sec/article/door/info',
+	newsDetailsUrl: '/sec/article/door/info',
 	// 政策法规详情
-	policyNewsDetailsUrl:'/policy/article/door/info',
+	policyNewsDetailsUrl: '/policy/article/door/info',
 	// 提交申请材料 认证
-	veteEducUrl:'/veteEduc',
+	veteEducUrl: '/veteEduc',
 	//认证状态查询
-	veteEducCheckUrl:'/veteEduc/check',
+	veteEducCheckUrl: '/veteEduc/check',
 	// 我的详细信息
-	memberinfoUrl:'/memberinfo',
+	memberinfoUrl: '/memberinfo',
 	// 政策法规列表
 	policyNewsListUrl: '/policy/article/door/list',
 	// 枚举值key查询
@@ -44,10 +46,10 @@ const apiurl = {
 	getSchoolListUrl: '/school/list',
 	// 修改用户信息
 	modifyUserInfoUrl: '/memberinfo',
-	
+
 	// 查看技能包更多课程
 	getMoreCourseListUrl: '/learncourse/list/',
-	
+
 	/**
 	 * 首页模块
 	 */
@@ -55,7 +57,7 @@ const apiurl = {
 		// 获取消息未读条数
 		getUnreadInfoNumUrl: '/notice/countUnread',
 		// 首页轮播
-		indexBannerListUrl:'/sysadv/list',
+		indexBannerListUrl: '/sysadv/list',
 		// 获取首页三条最新消息
 		getNewestInfoUrl: '/notice/queryNewest',
 		// 首页新闻列表
@@ -72,7 +74,7 @@ const apiurl = {
 		// 获取通知详情
 		getNoticeDetailsUrl: '/notice/getDetail/'
 	},
-	
+
 	// 学院模块
 	school: {
 		// 合作学校分页数据
@@ -91,9 +93,9 @@ const apiurl = {
 		getPackageCourseDetailsUrl: '/learncourse/getDetail/',
 		// 获取学院招生就业详情
 		getSchoolIntroductionUrl: '/school/selectIntro/'
-		
+
 	},
-  
+
 	// 公司模块
 	company: {
 		// 公司列表
@@ -109,33 +111,33 @@ const apiurl = {
 		// 判断是否已投递
 		judgeIsSubmitUrl: '/delivery/queryIsDelivered/'
 	},
-  
-  /**
-   * 政策资讯模块
-   */
-  policyInfo: {
-    // 政策资讯列表
-    getPolicyInfoListUrl: '/policy/article/door/list',
-    // 政策资讯详情
-    getPolicyInfoDetailsUrl: '/policy/article/door/info'
-  },
-	
+
+	/**
+	 * 政策资讯模块
+	 */
+	policyInfo: {
+		// 政策资讯列表
+		getPolicyInfoListUrl: '/policy/article/door/list',
+		// 政策资讯详情
+		getPolicyInfoDetailsUrl: '/policy/article/door/info'
+	},
+
 	// 我的投递
 	delivery: {
 		deliveryListUrl: '/delivery/myDeliveredList'
 	},
-  
-  /**
-   * 招聘就业模块
-   */
-  recruitment: {
-    // 企业推荐列表
-    getRecommendListUrl: '/company/queryRecommendList',
-    // 招聘就业岗位列表
-    getRecruitmentJobListUrl: '/companypost/pageList',
-    // 岗位详情
-    getJobDetailsUrl: '/companypost/getDetail'
-  },
+
+	/**
+	 * 招聘就业模块
+	 */
+	recruitment: {
+		// 企业推荐列表
+		getRecommendListUrl: '/company/queryRecommendList',
+		// 招聘就业岗位列表
+		getRecruitmentJobListUrl: '/companypost/pageList',
+		// 岗位详情
+		getJobDetailsUrl: '/companypost/getDetail'
+	},
 	/**
 	 * 我的面试
 	 */
@@ -168,7 +170,11 @@ const apiurl = {
 		// 查询积分统计
 		totalCountUrl: '/integral/count',
 		// 积分列表
-		integralListUrl: '/integral/list'
+		integralListUrl: '/integral/list',
+		// 获取个人统计(技能培训,学习时长,获得面试)
+		getCountResultUrl: '/memberinfo/getCountResult',
+		// 获取个人总积分
+		getIntegralTotalUrl: '/integral/total'
 	},
 	/**
 	 * 适应性培训
@@ -222,4 +228,4 @@ const apiurl = {
 
 export {
 	apiurl
-}
+}

+ 5 - 11
h5_web/common/config.js

@@ -1,18 +1,12 @@
 /**
  * 配置通用 
  */
-let base = '';
-if(process.env.NODE_ENV=="development"){
-	base = 'https://wx.hw.hongweisoft.com/veterans/app';
-	// base = 'http://172.16.90.110:7200/app';
-} else if(process.env.NODE_ENV=="production"){
-	base = 'https://wx.hw.hongweisoft.com/veterans/app';
-	// base = 'https://veterwebpro.hw.hongweisoft.com/veterans-prod-api/app';
-}
 const config = {
-	baseUrl: base ,// 201服务器地址
-	uploadUrl: 'https://wx.hw.hongweisoft.com/veterans/file/upload/single/minio',
-	version: '1.0.1'
+	baseUrl: 'https://wx.hw.hongweisoft.com/veterans/app' ,// 201服务器地址
+	// baseUrl: 'https://veterwebpro.hw.hongweisoft.com/veterans-prod-api/app' ,// 正式服务器地址
+	uploadUrl: 'https://wx.hw.hongweisoft.com/veterans/file/upload/single/minio', // 上传地址
+	timChatUrl: 'http://172.16.90.126:8081/#/pages/login/login', // 退役军人聊天TIM
+	version: '1.0.2'
 }
 export {
 	config

+ 5 - 1
h5_web/common/http.api.js

@@ -5,6 +5,7 @@ import {
 // 此处第二个参数vm,就是我们在页面使用的this,你可以通过vm获取vuex等操作,更多内容详见uView对拦截器的介绍部分:
 const install = (Vue, vm) => {
 	let getPhoneLoginCode = (params = {}) => vm.$u.post(apiurl.phoneLoginCodeUrl, params);
+	let logoutApi = (params = {}) => vm.$u.delete(apiurl.logoutUrl, params);
 	let phoneLoginAuth = (params = {}) => vm.$u.post(apiurl.phoneLoginAuthUrl, {
 		code: params.code
 	}, {
@@ -161,7 +162,9 @@ const install = (Vue, vm) => {
 	let mine = {
 		submitEmploymentCondition: (params = {}) => vm.$u.post(apiurl.mine.employmentConditionUrl, params),
 		totalCount: (params = {}) => vm.$u.get(apiurl.mine.totalCountUrl, params),
-		integralList: (params = {}) => vm.$u.get(apiurl.mine.integralListUrl, params)
+		integralList: (params = {}) => vm.$u.get(apiurl.mine.integralListUrl, params),
+		getCountResulApi: (params = {}) => vm.$u.get(apiurl.mine.getCountResultUrl, params),
+		getIntegralTotalApi: (params = {}) => vm.$u.get(apiurl.mine.getIntegralTotalUrl, params)
 	}
 
 	// 适应性培训
@@ -195,6 +198,7 @@ const install = (Vue, vm) => {
 	// 将各个定义的接口名称,统一放进对象挂载到vm.$u.api(因为vm就是this,也即this.$u.api)下
 	vm.$u.api = {
 		getPhoneLoginCode,
+		logoutApi,
 		phoneLoginAuth,
 		getSysterms,
 		getNewsDetails,

+ 9 - 0
h5_web/pages.json

@@ -540,6 +540,15 @@
 				"navigationBarTextStyle": "white"
 			}
 
+		}, {
+			"path": "pages/webView/webView",
+			"style": {
+				"navigationBarTitleText": "",
+				"enablePullDownRefresh": false,
+				"navigationBarBackgroundColor": "#3D5D4C",
+				"navigationBarTextStyle": "white"
+			}
+
 		}
 	],
 	"globalStyle": {

+ 33 - 6
h5_web/pages/mine/mine.vue

@@ -18,7 +18,7 @@
 				</view>
 				<view class="mine-info-header-right" @click="jumpPage('/pages/progressiveIntegral/progressiveIntegral')">
 					<view>进步<br/>积分</view>
-					<view>{{ memberinfo.integral || 0 }}</view>
+					<view>{{ integral || 0 }}</view>
 					<u-icon name="arrow-right" color="#fff" size="30"/>
 				</view>
 			</view>
@@ -41,15 +41,15 @@
 			<!-- 个人获得 -->
 			<view class="mine-info-gain">
 				<view class="mine-info-gain-item">
-					<view>0<text>个</text></view>
+					<view>{{ countData.classCount || 0 }}<text>个</text></view>
 					<view>技能培训</view>
 				</view>
 				<view class="mine-info-gain-item">
-					<view>0<text>小时</text></view>
+					<view>{{ countData.learnTime || 0 }}<text>小时</text></view>
 					<view>学习时长</view>
 				</view>
 				<view class="mine-info-gain-item">
-					<view>0<text>次</text></view>
+					<view>{{ countData.interviewTimes || 0 }}<text>次</text></view>
 					<view>获得面试</view>
 				</view>
 			</view>
@@ -74,7 +74,7 @@
 					<u-cell-item title="我的技能培训" @click="jumpPage('/pages/mine/skillsTraining/skillsTraining')">
 						<image class="cell-icon peixun" slot="icon" src="../../static/img/jinengx.png" mode=""></image>
 					</u-cell-item>
-					<u-cell-item title="我的评价" @click="jumpPage('/pages/myEvaluation/myEvaluation')">
+					<u-cell-item title="我的评价" @click="jumpPage('/pages/inbuild/inbuild')">
 						<image class="cell-icon pingjia" slot="icon" src="../../static/img/pingjia.png" mode=""></image>
 					</u-cell-item>
 				</u-cell-group>
@@ -111,18 +111,45 @@
 			return {
         tabbarConfig: tabbarconfig,
 				veteEducStatus: '',
-				memberinfo: ''
+				memberinfo: '',
+				countData: '',
+				integral: 0
 			}
 		},
 		onShow() {
 			this.getMemberinfo()
+			this.getCountResul()
+			this.getIntegralTotal()
 		},
 		methods: {
+			/**
+			 * 获取个人总积分
+			 */
+			getIntegralTotal() {
+				this.$u.api.mine.getIntegralTotalApi().then(res => {
+					// console.log('用户统计信息:', res.data)
+					if (res.code === 200) {
+						this.integral = res.data
+					}
+				})
+			},
+			/**
+			 * 获取用户统计信息
+			 */
+			getCountResul() {
+				this.$u.api.mine.getCountResulApi().then(res => {
+					// console.log('用户统计信息:', res.data)
+					if (res.code === 200) {
+						this.countData = res.data
+					}
+				})
+			},
 			/**
 			 * 获取用户基本信息
 			 */
 			getMemberinfo(){
 				this.$u.api.getmemberinfo().then(res => {
+					console.log('用户基本信息:', res.data)
 					if (res.code === 200){
 						this.memberinfo = res.data;
 					} else {

+ 15 - 1
h5_web/pages/mine/skillsTraining/skillsTrainingDetails/skillsTrainingDetails.vue

@@ -40,7 +40,7 @@
 							<u-icon name="arrow-right" size="20"></u-icon>
 						</view>
 					</view>
-					<view class="item">
+					<view class="item" @click="teacherInteract(details)">
 						<view>
 							<u-image src="../../../../static/img/interaction-icon.png" mode="aspectFill" width="46" height="46"></u-image>
 						</view>
@@ -147,6 +147,20 @@
 					url,
 					params
 				})
+			},
+			/**
+			 * 教师互动
+			 * @param {Object} item
+			 */
+			teacherInteract(item) {
+				let url =
+					`${this.config.timChatUrl}?userID=${this.vuex_user.userId}&title=教师互动&permission=1&type=retire&classId=${item.id}`
+				this.$u.route({
+					url: '/pages/webView/webView',
+					params: {
+						url: encodeURIComponent(url)
+					}
+				})
 			}
 		}
 	}

+ 31 - 2
h5_web/pages/myDelivery/myDelivery.vue

@@ -22,7 +22,7 @@
 						<view class="delivery-list-item-left-info">
 							<view>{{ item.postName }}</view>
 							<!-- <view>{{ `${} | ${item.workYear}年 | ${}` }}</view> -->
-							<view>{{ `${item.workPlace} | 经验${item.workYear ? item.workYear + '年' : '不限'} | ${item.educationBg}` }}</view>
+							<view>{{ `${item.provinceName} | 经验${item.workYear ? item.workYear + '年' : '不限'} | ${getEducationBg(item.educationBg)}` }}</view>
 							<view>{{ item.companyName }}</view>
 						</view>
 					</view>
@@ -41,10 +41,39 @@
 	export default {
 		data() {
 			return {
-				deliveryList: []
+				deliveryList: [],
+				degrEducList: []
 			}
 		},
+		onShow() {
+			this.getDictEduc()
+		},
 		methods: {
+			/**
+			 * 获取教育等级名称
+			 * @param {Object} value
+			 */
+			getEducationBg(value) {
+				let name;
+				this.degrEducList.forEach(item => {
+					if (item.text == value) {
+						name = item.label
+					}
+				})
+				return name;
+			},
+			/**
+			 * 获取字典
+			 */
+			getDictEduc() {
+				this.$u.api.getDictdataUrl({
+					key: 'degr_educ'
+				}).then(res => {
+					if (res.code === 200) {
+						this.degrEducList = res.data;
+					}
+				})
+			},
 			getList(pageNum, pageSize) {
 				this.$u.api.delivery.getDeliveryList({
 					pageNum,

+ 2 - 1
h5_web/pages/myEvaluation/myEvaluation.vue

@@ -68,7 +68,8 @@
 			 * @param { Number } pageSize
 			 */
 			queryList(pageNo, pageSize) {
-				this.getList(pageNo, pageSize)
+				// this.getList(pageNo, pageSize)
+				this.$refs.paging.complete([])
 			}
 		}
 	}

+ 43 - 29
h5_web/pages/myInterview/myInterview.vue

@@ -18,12 +18,12 @@
 					<view class="interview-list-item-way">{{ item.interviewAddress }}</view>
 					<view class="interview-list-item-position">
 						<view class="left">
-							<view>
-								<image :src="item.companyLogoUrl"/>
+							<view style="margin-right: 20rpx;">
+								<u-image :src="item.companyLogoUrl" width="100" height="100" border-radius="10"/>
 							</view>
 							<view class="info">
 								<view>{{ item.postName }}</view>
-								<view>{{ `${item.workPlace} | 经验${item.workYear}年 | ${item.educationBg}` }}</view>
+								<view>{{ `${item.provinceName} | 经验${item.workYear}年 | ${getEducationBg(item.educationBg)}` }}</view>
 								<view>{{ item.companyName }}</view>
 							</view>
 						</view>
@@ -33,14 +33,11 @@
 							<view v-else>{{ item.createTime.split(' ')[0] }}</view>
 						</view>
 					</view>
-					<!-- <view class="interview-list-item-button">
-						<view class="submit btn" @click="submit">发起视频面试</view>
-					</view> -->
-					<view class="interview-list-item-button" v-if="Number(item.status) === 20 && new Date('2021-10-29 10:00').valueOf() > new Date().valueOf()">
-						<view class="submit btn">发起视频面试</view>
+					<view class="interview-list-item-button" v-if="Number(item.status) === 20 && new Date(item.interviewTime).valueOf() < new Date().valueOf()">
+						<view class="submit btn" @click="videoInterview(item)">发起视频面试</view>
 					</view>
 					
-					<view class="interview-list-item-button" v-else-if="Number(item.status) === 20 && new Date('2021-10-29 10:00').valueOf() <= new Date().valueOf()">
+					<view class="interview-list-item-button" v-else-if="Number(item.status) === 20 && new Date(item.interviewTime).valueOf() >= new Date().valueOf()">
 						<view class="not btn">未到视频面试</view>
 					</view>
 					
@@ -56,21 +53,46 @@
 </template>
 
 <script>
-	import TRTCCalling from 'trtc-calling-js';
-	import {tim} from 'tim-js-sdk';
 	export default {
 		data() {
 			return {
 				// 面试列表
 				interviewList: [],
 				// 面试状态
-				deliveryStatusList: []
+				deliveryStatusList: [],
+				degrEducList: []
 			}
 		},
 		onLoad() {
 			this.getDict('delivery_status')
+			this.getDictEduc();
 		},
 		methods: {
+			/**
+			 * 获取教育等级名称
+			 * @param {Object} value
+			 */
+			getEducationBg(value) {
+				let name;
+				this.degrEducList.forEach(item => {
+					if (item.text == value) {
+						name = item.label
+					}
+				})
+				return name;
+			},
+			/**
+			 * 获取字典
+			 */
+			getDictEduc() {
+				this.$u.api.getDictdataUrl({
+					key: 'degr_educ'
+				}).then(res => {
+					if (res.code === 200) {
+						this.degrEducList = res.data;
+					}
+				})
+			},
 			/**
 			 * 获取我的面试列表
 			 * @param { Number } pageNum 
@@ -132,23 +154,15 @@
 				return label;
 			},
 			submit () {
-				const userID = '2000'
-				let options = {
-				  SDKAppID: 1400594521, // 接入时需要将0替换为您的 SDKAppID
-				  // 从v0.10.2起,新增 tim 参数
-				  // tim 参数适用于业务中已存在 TIM 实例,为保证 TIM 实例唯一性
-				  tim: tim
-				};
-				const trtcCalling = new TRTCCalling(options);
-				trtcCalling.login({
-				  userID,
-				  userSig: 'eJw1zFELgjAUhuH-suuQ49xOKXRpEC4KSrwWnHqMYtmwZvTfG60uv*eD98VO6hhNemQZ4xGwxXdTo6*WWgoM8Pd7c66NoYZlsQCQqZA8Do*li-aKCYpkCUkaVD8Njd4RxArg16DOR*Wm3M0V9lxVzmGptoPc4*T6Q30rHtBO1oJGXnTDnK-Z*wMZFTAC',
-				});
-				trtcCalling.call({
-				  userID: '2001',  //用户 ID
-				  type: 2, //通话类型,0-未知, 1-语音通话,2-视频通话
-				  timeout: 10000  //邀请超时时间, 单位 s(秒)
-				});
+			},
+			videoInterview(item) {
+				let url = `https://veterhwebchat.hw.hongweisoft.com/#/?veteMemberId=${item.companyId}&inviterId=${this.vuex_user.userId}&from=veterans`
+				this.$u.route({
+					url: '/pages/webView/webView',
+					params: {
+						url: encodeURIComponent(url)
+					}
+				})
 			}
 		}
 	}

+ 1 - 2
h5_web/pages/phoneLogin/phoneLogin.vue

@@ -146,12 +146,11 @@
 				this.$u.api.phoneLoginAuth(params)
 					.then(res => {
 						if (res.code == '200') {
-							// console.log('finish res',res);
+							console.log('登录信息:', res);
 							this.$u.vuex('vuex_user', res.data);
 							this.$u.vuex('vuex_hasLogin', true);
 							this.veteEducCheck();
 							// this.wechatLogin()
-
 						} else {
 							this.toastMsg = res.msg;
 							this.showToast();

+ 12 - 10
h5_web/pages/policyInfo/policyInfo.vue

@@ -27,7 +27,8 @@
 					<view class="item">
 						<view class="title">{{item.artTitle}}</view>
 						<view class="item-image">
-							<u-image :src="item.artImage" mode="aspectFill" class="image" width="128" height="102" border-radius="10"/>
+							<u-image :src="item.artImage" mode="aspectFill" class="image" width="128" height="102"
+								border-radius="10" />
 						</view>
 					</view>
 				</view>
@@ -38,8 +39,7 @@
 			<view class="policybtn-container">
 				<view class="policybtn-content">
 					<view>
-						<u-button type="primary" @click="policySubmitBtnClick" class="policysubmitbtn">政策咨询(0851-863789)
-						</u-button>
+						<u-button type="primary" @click="policySubmitBtnClick" class="policysubmitbtn">政策咨询</u-button>
 					</view>
 				</view>
 			</view>
@@ -86,9 +86,9 @@
 			},
 			getBannerList() {
 				this.$u.api.indexApi.indexBannerListApi().then(res => {
-						if (!res) return;
-						this.bannerList = res?.data || [];
-					})
+					if (!res) return;
+					this.bannerList = res?.data || [];
+				})
 			},
 			// 轮播图点击
 			swiperClick(index) {
@@ -154,15 +154,17 @@
 				}
 			},
 			/**
-			 * 政策咨询事件
+			 * 政策咨询
 			 */
 			policySubmitBtnClick() {
+				let url =
+					`${this.config.timChatUrl}?userID=${this.vuex_user.userId}&title=政策咨询&permission=1&type=retire`
 				this.$u.route({
-					url: 'pages/questionConsulting/questionConsulting',
+					url: '/pages/webView/webView',
 					params: {
-						id: '9999'
+						url: encodeURIComponent(url)
 					}
-				});
+				})
 			}
 		}
 	}

+ 1 - 1
h5_web/pages/progressiveIntegral/progressiveIntegral.vue

@@ -28,7 +28,7 @@
 					</view>
 					<view class="integral-content-header-rules" @click="jumpPage('/pages/integralRule/integralRule')">积分规则<u-icon name="arrow-right"/></view>
 					<view class="integral-content-header-behavior">
-						<view class="item" v-for="(item, index) in behaviorList" :key="index">{{ item.count }}<text>个{{ item.type === 1 ? '加' : '减' }}分行为</text></view>
+						<view class="item" v-for="(item, index) in behaviorList" :key="index">{{ item.count }}<text>个{{ item.type == 1 ? '加' : '减' }}分行为</text></view>
 						<!-- <view class="item">0<text>个减分行为</text></view> -->
 					</view>
 				</view>

+ 18 - 4
h5_web/pages/setting/setting.vue

@@ -30,10 +30,24 @@
 			 * 退出登录
 			 */
 			logout() {
-				this.$u.vuex('vuex_hasLogin', false);
-				this.$u.vuex('vuex_token', '');
-				this.$u.vuex('vuex_user', '');
-				this.$u.route('/pages/phoneLogin/phoneLogin');
+				this.$u.api.logoutApi().then(res => {
+					if (res.code === 200) {
+						this.$u.vuex('vuex_hasLogin', false);
+						this.$u.vuex('vuex_token', '');
+						this.$u.vuex('vuex_user', '');
+						this.$u.route('/pages/phoneLogin/phoneLogin');
+					} else {
+						uni.showToast({
+							title: res.msg,
+							icon: 'error'
+						})
+					}
+				}).catch(() => {
+					uni.showToast({
+						title: '退出登录失败!',
+						icon: 'error'
+					})
+				})
 			}
 		}
 	}

+ 14 - 3
h5_web/pages/skillsTraining/skillsTraining.vue

@@ -69,9 +69,7 @@
 		</view>
 
 		<!-- 问题咨询 -->
-		<view class="training-bottom">
-			问题咨询(0851-863789)
-		</view>
+		<view class="training-bottom" @click="questionAsk">问题咨询</view>
 		<u-toast ref="uToast" />
 	</view>
 </template>
@@ -172,6 +170,19 @@
 						})
 					}
 				})
+			},
+			/**
+			 * 问题咨询
+			 */
+			questionAsk() {
+				let url =
+					`${this.config.timChatUrl}?userID=${this.vuex_user.userId}&title=问题咨询&permission=2&type=retire`
+				this.$u.route({
+					url: '/pages/webView/webView',
+					params: {
+						url: encodeURIComponent(url)
+					}
+				})
 			}
 		}
 	}

+ 14 - 3
h5_web/pages/upgrade/upgrade/upgrade.vue

@@ -55,9 +55,7 @@
 		</view>
 		
 		<!-- 底部问题咨询 -->
-		<view class="upgrade-consult-button">
-			问题咨询(0851-863789)
-		</view>
+		<view class="upgrade-consult-button" @click="questionAsk">问题咨询</view>
 		<u-select v-model="schoolShow" :list="schoolList" @confirm="schoolChange" :default-value="schoolDefaultIndex"/>
 		<u-toast ref="uToast"/>
 	</view>
@@ -193,6 +191,19 @@
 				this.$u.api.postAnalysis(query).then(res => {
 					this.jumpPage('/pages/upgrade/professionalIntroduction/professionalIntroduction', { id: item.id }, 'acitivity')
 				})
+			},
+			/**
+			 * 问题咨询
+			 */
+			questionAsk() {
+				let url =
+					`${this.config.timChatUrl}?userID=${this.vuex_user.userId}&title=问题咨询&permission=3&type=retire`
+				this.$u.route({
+					url: '/pages/webView/webView',
+					params: {
+						url: encodeURIComponent(url)
+					}
+				})
 			}
 		}
 	}

+ 28 - 0
h5_web/pages/webView/webView.vue

@@ -0,0 +1,28 @@
+<!-- 第三方页面webview -->
+<template>
+	<web-view :src="url" :progress="false"></web-view>
+</template>
+
+<script>
+	import getUrlParams from '@/utils/getUrlParams.js'
+	export default {
+		data() {
+			return {
+				url: '',
+				title: '视频聊天'
+			}
+		},
+		onLoad(res) {
+			this.url = decodeURIComponent(res.url);
+			const title = getUrlParams(this.url, 'title');
+			if (title) {
+				this.title = title
+			}
+		},
+		onReady() {
+			uni.setNavigationBarTitle({
+				title: this.title
+			})
+		}
+	}
+</script>