Browse Source

提交核保、比价、补传影像

@dongkboy 1 năm trước cách đây
mục cha
commit
1e8e1ae11d
73 tập tin đã thay đổi với 2497 bổ sung1109 xóa
  1. 1 1
      components/common/serviceWidget.vue
  2. 1 1
      config/baseUrl.js
  3. 2 2
      manifest.json
  4. 6 1
      pages/ad/ad.vue
  5. 22 14
      pages/ad/index.vue
  6. 17 10
      pages/carInsure/Information.vue
  7. 6 0
      pages/carInsure/carType.vue
  8. 6 1
      pages/carInsure/companyQuotable.vue
  9. 27 21
      pages/carInsure/entry.vue
  10. 986 25
      pages/carInsure/premiumCalc.vue
  11. 6 3
      pages/carInsure/quoteDetail.vue
  12. 33 13
      pages/caragent/addcar.vue
  13. 6 0
      pages/caragent/addressSearch.vue
  14. 6 0
      pages/caragent/confirmorder.vue
  15. 6 0
      pages/caragent/editcar.vue
  16. 6 0
      pages/caragent/index.vue
  17. 6 0
      pages/caragent/map.vue
  18. 9 59
      pages/orders/paymentCode.vue
  19. 9 59
      pages/orders/paymentCode1.vue
  20. 6 0
      pages/orders/priceComparison.vue
  21. 6 0
      pages/orders/quotation.vue
  22. 6 0
      pages/orders/quotation1.vue
  23. 7 0
      pages/orders/quoteHistory.vue
  24. 6 0
      pages/realname/realname.vue
  25. 6 0
      pages/roadRescue/Grounding.vue
  26. 6 0
      pages/roadRescue/index.vue
  27. 6 0
      pages/roadRescue/map.vue
  28. 6 0
      pages/roadRescue/replacement.vue
  29. 6 0
      pages/roadRescue/trailer.vue
  30. 22 13
      pages/ticket/confirmorder.vue
  31. 85 81
      pages/ticket/issue.vue
  32. 7 1
      pages/ticket/order.vue
  33. 10 2
      pages/ticket/ticket.vue
  34. 6 0
      pages/tools/achievement/achievement.vue
  35. 6 0
      pages/tools/addStaff/addStaff.vue
  36. 6 0
      pages/tools/addStaff/authentication1.vue
  37. 6 0
      pages/tools/addStaff/authentication2.vue
  38. 6 0
      pages/tools/addStaff/authentication3.vue
  39. 7 1
      pages/tools/addStaff/authenticationdetails.vue
  40. 6 1
      pages/tools/addStaff/codeDownload.vue
  41. 6 1
      pages/tools/addStaff/orderissuer.vue
  42. 6 1
      pages/tools/addStaff/recommendCode.vue
  43. 6 0
      pages/tools/calculator/calculator.vue
  44. 65 53
      pages/tools/coupon/coupon.vue
  45. 23 13
      pages/tools/customer/customer.vue
  46. 6 0
      pages/tools/customer/custormerDetail.vue
  47. 158 132
      pages/tools/insuranceClaims/insuranceClaims.vue
  48. 6 0
      pages/tools/messageReminder/details.vue
  49. 6 0
      pages/tools/messageReminder/messageReminder.vue
  50. 6 0
      pages/tools/policy/policy.vue
  51. 6 0
      pages/tools/policy/quoteDetail.vue
  52. 6 0
      pages/tools/policy/subOrders.vue
  53. 6 0
      pages/tools/poster/poster-detail.vue
  54. 6 0
      pages/tools/poster/poster.vue
  55. 6 0
      pages/tools/team/team.vue
  56. 6 0
      pages/tools/team/teamMember.vue
  57. 9 4
      pages/user/certification.vue
  58. 45 34
      pages/user/infoExamine.vue
  59. 184 154
      pages/user/infoInput.vue
  60. 68 59
      pages/user/protocol.vue
  61. 6 0
      pages/user/userInfo.vue
  62. 59 46
      pages/user/userInfoImage.vue
  63. 6 0
      pages/wallet/bankCard.vue
  64. 6 0
      pages/wallet/billDetails2.vue
  65. 6 0
      pages/wallet/billDetails3.vue
  66. 6 0
      pages/wallet/billInfo.vue
  67. 6 0
      pages/wallet/billInfo1.vue
  68. 6 0
      pages/wallet/bindBank.vue
  69. 6 0
      pages/wallet/preReceivedDetails.vue
  70. 6 1
      pages/wallet/transactionDetails.vue
  71. 6 0
      pages/wallet/wallet.vue
  72. 6 0
      pages/wallet/withdraw.vue
  73. 353 302
      pages/wallet/withdraw1.vue

+ 1 - 1
components/common/serviceWidget.vue

@@ -21,7 +21,7 @@
 			},
 			bottomPx: {
 				type: Number,
-				default: 100
+				default: 120
 			}
 		},
 		data() {

+ 1 - 1
config/baseUrl.js

@@ -18,7 +18,7 @@ if (process.env.NODE_ENV === 'development') {
 } else if (process.env.NODE_ENV === 'production') {
 	// 生产环境
 	// baseUrl = "https://test.baoxianzhanggui.com/web-api"; //测试
-	// h5BaseUrl = "https://test.baoxianzhanggui.com/h5";s
+	// h5BaseUrl = "https://test.baoxianzhanggui.com/h5";
 	// baseUrl = "https://pre.baoxianzhanggui.com/web-api"; //预生产
 	// h5BaseUrl = "https://pre.baoxianzhanggui.com/h5";
 	baseUrl = "https://sxzgkj.baoxianzhanggui.com/web-api"; //生产

+ 2 - 2
manifest.json

@@ -7,8 +7,8 @@
 		"sizes": "分辨率,192x192",
 		"src": "图片路径"
 	}],
-	"versionName": "2.9.1",
-	"versionCode": 291,
+	"versionName": "2.9.2",
+	"versionCode": 292,
 	"app-plus": {
 		"error": {
 			"url": "hybrid/html/error.html"

+ 6 - 1
pages/ad/ad.vue

@@ -1,5 +1,6 @@
 <template>
 	<view class="page" :style="{height:windowHeight}">
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="dis j-s a-c" style="padding: 0 10px;">
 			<view class="maskTool">
 				<text>广告</text>
@@ -62,7 +63,11 @@
 			this.marketQuery();
 		},
 		methods: {
-
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			confirm() {
 				this.videoContext.play();
 				// 继续倒计时

+ 22 - 14
pages/ad/index.vue

@@ -1,5 +1,6 @@
 <template>
 	<view>
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="bg">
 			<image src="/static/icon/ad/bg.png" mode="widthFix"></image>
 		</view>
@@ -30,7 +31,8 @@
 						<!-- <u-button type="primary" style="width:100px;" size="mini"  :disabled="loading" :loading="loading">去完成</u-button> -->
 						<!-- <button :disabled="loading" :loading="loading" class="video-button">去完成</button> -->
 					</ad-rewarded-video>
-					<button v-if="taskStatus == false" :disabled="isLoading" :loading="isLoading" class="video-button" @click="showAd">去完成</button>
+					<button v-if="taskStatus == false" :disabled="isLoading" :loading="isLoading" class="video-button"
+						@click="showAd">去完成</button>
 				</view>
 			</view>
 		</view>
@@ -74,10 +76,15 @@
 			this.callbackData.userId = this.userInfo.sysUser.id
 		},
 		onReady() {
-		  // this.isLoading = true;
-		  // this.$refs.adRewardedVideo.load();
+			// this.isLoading = true;
+			// this.$refs.adRewardedVideo.load();
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			onadload(e) {
 				// this.isLoading = false;
 				console.log(e, 'onadload')
@@ -85,11 +92,11 @@
 			// 去看广告
 			async showAd() {
 				if (this.isLoading) {
-				  return
+					return
 				}
 				// 获取广告id /callback/advertisingLog
 				let res = await this.$http.post('https://marketing.baoxianzhanggui.com/api/callback/advertisingLog', {
-				// let res = await this.$http.post('/callback/advertisingLog', {
+					// let res = await this.$http.post('/callback/advertisingLog', {
 					userId: this.userInfo.sysUser.id
 				})
 				console.log(res)
@@ -100,9 +107,9 @@
 					this.callbackData.extra = this.adId
 					this.$refs.adRewardedVideo.show();
 				}
-				
+
 			},
-			 async onadclose(e) {
+			async onadclose(e) {
 				const detail = e.detail
 				// 用户点击了【关闭广告】按钮
 				let that = this
@@ -110,10 +117,11 @@
 					//重新拉取数据
 					let times = 0
 					this.timer = setInterval(async () => {
-						times ++
-						let res = await that.$http.get('https://marketing.baoxianzhanggui.com/api/callback/verifyWatch', {
-							id: that.adId
-						})
+						times++
+						let res = await that.$http.get(
+							'https://marketing.baoxianzhanggui.com/api/callback/verifyWatch', {
+								id: that.adId
+							})
 						if (times >= 30 || res.data) {
 							clearInterval(that.timer)
 							that.refreshData()
@@ -140,7 +148,7 @@
 			refreshData() {
 				console.log(this.userInfo)
 				this.$http.post('https://marketing.baoxianzhanggui.com/api/advertising/getUserWatchCount', {
-				// this.$http.post('/advertising/getUserWatchCount', {
+					// this.$http.post('/advertising/getUserWatchCount', {
 					userId: this.userInfo.sysUser.id
 				}).then(res => {
 					console.log(res)
@@ -180,8 +188,7 @@
 				uni.navigateToMiniProgram({
 					appId: 'wx4014825e79c10552',
 					path: 'pages/index/index?userId=' + this.userInfo.sysUser.id,
-					extraData: {
-					},
+					extraData: {},
 					success(res) {
 						// 打开成功
 						console.log(res)
@@ -285,6 +292,7 @@
 				font-size: 36rpx;
 				margin-bottom: 54rpx;
 			}
+
 			.todraw1 {
 				background: linear-gradient(180deg, #fffbf4 0%, #ffe1a1 100%);
 				color: #8F3A21;

+ 17 - 10
pages/carInsure/Information.vue

@@ -1,6 +1,7 @@
 <template>
 	<view class="page">
 		<public-module></public-module>
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="fixed dis a-c j-start" :style="headerStyle">
 			<u-icon name="arrow-left" size="40" @tap="back"></u-icon>
 			<text style="margin:  auto;">{{headerText}}</text>
@@ -48,16 +49,6 @@
 							<input class="uni-input-input textColor" placeholder="输入车牌号" v-model="carInfo.licenseNo"
 								placeholder-style="font-size:28upx" @input="upperCaseType('licenseNo')" />
 						</uni-forms-item>
-						<uni-forms-item name="frameNo" required label="车辆识别码:">
-							<view class="d-flex a-center" style="height: 100%;">
-								<input class="uni-input-input flex-1 textColor" placeholder="请输入车辆识别码"
-									v-model="carInfo.frameNo" maxlength="17" placeholder-style="font-size:28upx"
-									@input="upperCaseType('frameNo')" />
-								<image src="/static/image/car-insure/search.png" mode=""
-									style="width: 22px;height: 22px;" @tap="toChooseVin(carInfo.frameNo)">
-								</image>
-							</view>
-						</uni-forms-item>
 						<uni-forms-item name="modelcname" required label="品牌型号: ">
 							<view class="d-flex a-center textColor" style="height: 100%;">
 								<input class="uni-input-input flex-1 textColor" placeholder="请输入品牌型号"
@@ -69,6 +60,17 @@
 								</image>
 							</view>
 						</uni-forms-item>
+						<uni-forms-item name="frameNo" required label="车辆识别码:">
+							<view class="d-flex a-center" style="height: 100%;">
+								<input class="uni-input-input flex-1 textColor" placeholder="请输入车辆识别码"
+									v-model="carInfo.frameNo" maxlength="17" placeholder-style="font-size:28upx"
+									@input="upperCaseType('frameNo')" />
+								<image src="/static/image/car-insure/search.png" mode=""
+									style="width: 22px;height: 22px;" @tap="toChooseVin(carInfo.frameNo)">
+								</image>
+							</view>
+						</uni-forms-item>
+
 						<uni-forms-item name="engineNo" required label="发动机号: ">
 							<input class="uni-input-input textColor" placeholder="请输入发动机号" v-model="carInfo.engineNo"
 								@blur="binddata('engineNo', $event.detail.value,'carForm')"
@@ -1179,6 +1181,11 @@
 			uni.$off('scroll', this.handleScroll);
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			async getDicType(type) {
 				let res = await this.$http.get('/sysDict/dictDetails/' + type);
 				if (res.code == 200) {

+ 6 - 0
pages/carInsure/carType.vue

@@ -1,5 +1,6 @@
 <template>
 	<view class="page">
+		<service-widget @btnClick="btn_click"></service-widget>
 		<!-- 公共组件-每个页面必须引入 -->
 		<public-module></public-module>
 		<view class="box">
@@ -64,6 +65,11 @@
 			}
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			async queryList(pageNo, pageSize) {
 
 				// if (!!this.brandName) {

+ 6 - 1
pages/carInsure/companyQuotable.vue

@@ -1,5 +1,6 @@
 <template>
 	<view class="">
+		<service-widget @btnClick="btn_click"></service-widget>
 		<image src="/static/image/car-insure/Quotablebanner.png" mode=""
 			style="width: 100%;height: 110px;position: absolute;"></image>
 		<view class="page">
@@ -307,7 +308,11 @@
 			this.ruleFilterCompany();
 		},
 		methods: {
-
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			async ruleFilterCompany() {
 				let params = {
 					carInfo: this.carInfo,

+ 27 - 21
pages/carInsure/entry.vue

@@ -1,6 +1,7 @@
 <template>
 	<view class="page">
-		<view class="banner mb-3">
+		<service-widget @btnClick="btn_click"></service-widget>
+		<view class="banner mb-3" v-if="insuranceType==1">
 			<image src="/static/image/car-insure/carban.png" mode=""></image>
 		</view>
 		<view class="carinfo">
@@ -118,16 +119,6 @@
 										v-model="carInfo.licenseNo" placeholder-style="font-size:28upx"
 										@input="upperCaseType('licenseNo')" />
 								</uni-forms-item>
-								<uni-forms-item name="frameNo" required label="车辆识别码:">
-									<view class="d-flex a-center" style="height: 100%;">
-										<input class="uni-input-input flex-1 textColor" placeholder="请输入车辆识别码"
-											v-model="carInfo.frameNo" maxlength="17" placeholder-style="font-size:28upx"
-											@input="upperCaseType('frameNo')" />
-										<image src="/static/image/car-insure/search.png" mode=""
-											style="width: 20px;height: 20px;" @tap="toChooseVin(carInfo.frameNo)">
-										</image>
-									</view>
-								</uni-forms-item>
 								<uni-forms-item name="modelcname" required label="品牌型号: ">
 									<view class="d-flex a-center textColor" style="height: 100%;">
 										<input class="uni-input-input flex-1 textColor" placeholder="请输入品牌型号"
@@ -140,6 +131,16 @@
 										</image>
 									</view>
 								</uni-forms-item>
+								<uni-forms-item name="frameNo" required label="车辆识别码:">
+									<view class="d-flex a-center" style="height: 100%;">
+										<input class="uni-input-input flex-1 textColor" placeholder="请输入车辆识别码"
+											v-model="carInfo.frameNo" maxlength="17" placeholder-style="font-size:28upx"
+											@input="upperCaseType('frameNo')" />
+										<image src="/static/image/car-insure/search.png" mode=""
+											style="width: 20px;height: 20px;" @tap="toChooseVin(carInfo.frameNo)">
+										</image>
+									</view>
+								</uni-forms-item>
 								<uni-forms-item name="engineNo" required label="发动机号: ">
 									<input class="uni-input-input textColor" placeholder="请输入发动机号"
 										v-model="carInfo.engineNo"
@@ -266,16 +267,6 @@
 							<input class="uni-input-input textColor" placeholder="输入车牌号" v-model="carInfo.licenseNo"
 								placeholder-style="font-size:28upx" @input="upperCaseType('licenseNo')" />
 						</uni-forms-item>
-						<uni-forms-item name="frameNo" required label="车辆识别码:">
-							<view class="d-flex a-center" style="height: 100%;">
-								<input class="uni-input-input flex-1 textColor" placeholder="请输入车辆识别码"
-									v-model="carInfo.frameNo" maxlength="17" placeholder-style="font-size:28upx"
-									@input="upperCaseType('frameNo')" />
-								<image src="/static/image/car-insure/search.png" mode=""
-									style="width: 20px;height: 20px;" @tap="toChooseVin(carInfo.frameNo)">
-								</image>
-							</view>
-						</uni-forms-item>
 						<uni-forms-item name="modelcname" required label="品牌型号: ">
 							<view class="d-flex a-center textColor" style="height: 100%;">
 								<input class="uni-input-input flex-1 textColor" placeholder="请输入品牌型号"
@@ -287,6 +278,16 @@
 								</image>
 							</view>
 						</uni-forms-item>
+						<uni-forms-item name="frameNo" required label="车辆识别码:">
+							<view class="d-flex a-center" style="height: 100%;">
+								<input class="uni-input-input flex-1 textColor" placeholder="请输入车辆识别码"
+									v-model="carInfo.frameNo" maxlength="17" placeholder-style="font-size:28upx"
+									@input="upperCaseType('frameNo')" />
+								<image src="/static/image/car-insure/search.png" mode=""
+									style="width: 20px;height: 20px;" @tap="toChooseVin(carInfo.frameNo)">
+								</image>
+							</view>
+						</uni-forms-item>
 						<uni-forms-item name="engineNo" required label="发动机号: ">
 							<input class="uni-input-input textColor" placeholder="请输入发动机号" v-model="carInfo.engineNo"
 								@blur="binddata('engineNo', $event.detail.value,'carForm')"
@@ -708,6 +709,11 @@
 			},
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			toggleSwitch() {
 				this.isActive = !this.isActive;
 			},

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 986 - 25
pages/carInsure/premiumCalc.vue


+ 6 - 3
pages/carInsure/quoteDetail.vue

@@ -1,5 +1,6 @@
 <template>
 	<view :style="getHeight">
+		<service-widget @btnClick="btn_click"></service-widget>
 		<!-- 公共组件-每个页面必须引入 -->
 		<public-module></public-module>
 		<!-- 头部 -->
@@ -863,9 +864,6 @@
 						<rich-text :nodes="underwriteMsg"></rich-text>
 					</view>
 				</scroll-view>
-				<!-- <view class="scrollBar">
-					<view>{{underwriteMsg}}</view>
-				</view> -->
 			</view>
 		</u-modal>
 	</view>
@@ -1509,6 +1507,11 @@
 					}, "switchTab",
 					true);
 			},
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			underwriteconfirm() {
 				switch (this.underwriteTitle) {
 					case '订单自核成功':

+ 33 - 13
pages/caragent/addcar.vue

@@ -1,11 +1,12 @@
 <template>
 	<view class="">
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="headers">
 			<u-icon name="camera-fill" color="#2979ff" size="80" @tap="upload()">
 			</u-icon>
 		</view>
-		<u-form :model="form" ref="uForm" label-width="230">
-			<u-form-item label="车主">
+		<u-form :model="form" ref="uForm" label-width="230" :rules="rules">
+			<u-form-item label="车主" prop="ownerName">
 				<u-input placeholder="填写车主姓名" v-model="form.ownerName" type="text"></u-input>
 			</u-form-item>
 			<u-form-item label="车牌号">
@@ -52,6 +53,13 @@
 	export default {
 		data() {
 			return {
+				rules: {
+					ownerName: [{
+						required: true,
+						message: '请输入姓名',
+					}],
+
+				},
 				form: {
 					engineNo: "", //发动机号		
 					expireTime: "", //年检到期时间	
@@ -117,21 +125,33 @@
 
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			blur(e) {
 				console.log(e);
 			},
 			async carAdd() {
-				let res = await this.$http.post('/ser/carInfo/addCarInfo', this.form);
-				if (res.code == '200') {
-					uni.showToast({
-						title: '添加成功',
-						duration: 2000,
-						icon: "success"
-					});
-					setTimeout(() => {
-						return uni.navigateBack();
-					}, 2000);
-				}
+				this.$refs.uForm.validate(valid => {
+					if (valid) {
+						console.log('验证通过');
+					} else {
+						console.log('验证失败');
+					}
+				});
+				// let res = await this.$http.post('/ser/carInfo/addCarInfo', this.form);
+				// if (res.code == '200') {
+				// 	uni.showToast({
+				// 		title: '添加成功',
+				// 		duration: 2000,
+				// 		icon: "success"
+				// 	});
+				// 	setTimeout(() => {
+				// 		return uni.navigateBack();
+				// 	}, 2000);
+				// }
 			},
 			vehicleTypeConfirm(e) {
 				this.form.vehicleType = e[0].value;

+ 6 - 0
pages/caragent/addressSearch.vue

@@ -1,5 +1,6 @@
 <template>
 	<view class="page">
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="search">
 			<view class="region dis a-c j-s" style="position: absolute; z-index: 9;">
 				<text>{{city}}</text>
@@ -45,6 +46,11 @@
 
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			search(val) {
 				this.address = val;
 				this.addressConversion();

+ 6 - 0
pages/caragent/confirmorder.vue

@@ -1,5 +1,6 @@
 <template>
 	<view class="">
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="headers">
 			<u-icon name="camera-fill" color="#2979ff" size="80" @tap="upload()">
 			</u-icon>
@@ -58,6 +59,11 @@
 			}
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			async submit() {
 				let res = await this.$http.post('/ser/annualAuditOrder/addAnnualAuditOrder', this.form);
 				if (res.code == '200') {

+ 6 - 0
pages/caragent/editcar.vue

@@ -1,5 +1,6 @@
 <template>
 	<view class="">
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="headers">
 			<u-icon name="camera-fill" color="#2979ff" size="80" @tap="upload()">
 			</u-icon>
@@ -124,6 +125,11 @@
 			}
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			blur(e) {
 				console.log(e);
 			},

+ 6 - 0
pages/caragent/index.vue

@@ -1,5 +1,6 @@
 <template>
 	<view class="">
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="headers"></view>
 		<view class="wab">
 			<view class="wab_query">
@@ -283,6 +284,11 @@
 			this.getCarInfo();
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			async getCarInfo() {
 				let res = await this.$http.post('/ser/carInfo/queryByUserId');
 				if (res.code == '200') {

+ 6 - 0
pages/caragent/map.vue

@@ -1,5 +1,6 @@
 <template>
 	<view class="page">
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="search" @click="searchaddress">
 			<view class="region dis a-c j-s" style="position: absolute; z-index: 9;">
 				<text>{{city}}</text>
@@ -78,6 +79,11 @@
 			this.mapContext = uni.createMapContext("map1", this);
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			getCurrentLocation() {
 				//获取当前的地理位置
 				let vthis = this;

+ 9 - 59
pages/orders/paymentCode.vue

@@ -1,5 +1,6 @@
 <template>
 	<view class="">
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="page" id="panelcanvas">
 			<view class="Shadow"></view>
 			<view class="content">
@@ -162,64 +163,9 @@
 					this.jqEndDate = res.data.jqEndDate; // 交强起保日期
 					this.syStartDate = res.data.syStartDate; // 商业起保日期
 					this.sysEndDate = res.data.sysEndDate; // 商业起保日期
-					if (this.companyName == '太平财险' || this.companyName == '诚泰财险') {
-						let result = res.data.qrCodeUrl.replace(/[\r\n]/g, "");
-						let imgBase64 = `data:image/png;base64,${result}`;
-						base64ToPath(imgBase64)
-							.then(path => {
-								pathToBase64(path)
-									.then(base64 => {
-										this.paycodeimg = base64;
-									})
-									.catch(error => {});
-							})
-					} else if (this.companyName == '华泰财险') {
-						switch (data.apiType) {
-							case 1:
-							case '1':
-								this.paycodeimg = res.data.qrCodeUrl;
-								break;
-							case 2:
-							case '2':
-								let result = res.data.qrCodeUrl.replace(/[\r\n]/g, "");
-								let imgBase64 = `data:image/png;base64,${result}`;
-								base64ToPath(imgBase64)
-									.then(path => {
-										pathToBase64(path)
-											.then(base64 => {
-												this.paycodeimg = base64;
-											})
-											.catch(error => {});
-									})
-								break;
-						}
-					} else if (this.companyName == '大家财险') {
-						switch (data.apiType) {
-							case 1:
-							case '1':
-								this.paycodeimg = QR.createQrCodeImg(res.data.qrCodeUrl, {
-									size: parseInt(300) //二维码大小  
-								})
-								break;
-							case 2:
-							case '2':
-								let result = res.data.qrCodeUrl.replace(/[\r\n]/g, "");
-								let imgBase64 = `data:image/png;base64,${result}`;
-								base64ToPath(imgBase64)
-									.then(path => {
-										pathToBase64(path)
-											.then(base64 => {
-												this.paycodeimg = base64;
-											})
-											.catch(error => {});
-									})
-								break;
-						}
-					} else {
-						this.paycodeimg = QR.createQrCodeImg(res.data.qrCodeUrl, {
-							size: parseInt(300) //二维码大小  
-						})
-					}
+					this.paycodeimg = QR.createQrCodeImg(res.data.qrCodeUrl, {
+						size: parseInt(300) //二维码大小  
+					})
 					this.$base.insCompanyList.map(ele => {
 						if (ele.name == res.data.inscompany) {
 							uni.getImageInfo({
@@ -262,7 +208,11 @@
 					size: parseInt(300) //二维码大小  
 				})
 			},
-
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			//发送收款码到微信
 			sendPayCode() {
 				// var that = this;

+ 9 - 59
pages/orders/paymentCode1.vue

@@ -1,6 +1,7 @@
 <template>
 	<view class=" page" :style="getHeight">
 		<!-- 公共组件-每个页面必须引入 -->
+		<service-widget @btnClick="btn_click"></service-widget>
 		<public-module></public-module>
 		<view class="panel dis f-c j-c a-c" id="panelcanvas">
 			<view class="d-flex a-center j-center qrcode" style="position: relative;">
@@ -131,64 +132,9 @@
 					this.jqEndDate = res.data.jqEndDate; // 交强起保日期
 					this.syStartDate = res.data.syStartDate; // 商业起保日期
 					this.sysEndDate = res.data.sysEndDate; // 商业起保日期
-					if (this.companyName == '太平财险' || this.companyName == '诚泰财险') {
-						let result = res.data.qrCodeUrl.replace(/[\r\n]/g, "");
-						let imgBase64 = `data:image/png;base64,${result}`;
-						base64ToPath(imgBase64)
-							.then(path => {
-								pathToBase64(path)
-									.then(base64 => {
-										this.paycodeimg = base64;
-									})
-									.catch(error => {});
-							})
-					} else if (this.companyName == '华泰财险') {
-						switch (data.apiType) {
-							case 1:
-							case '1':
-								this.paycodeimg = res.data.qrCodeUrl;
-								break;
-							case 2:
-							case '2':
-								let result = res.data.qrCodeUrl.replace(/[\r\n]/g, "");
-								let imgBase64 = `data:image/png;base64,${result}`;
-								base64ToPath(imgBase64)
-									.then(path => {
-										pathToBase64(path)
-											.then(base64 => {
-												this.paycodeimg = base64;
-											})
-											.catch(error => {});
-									})
-								break;
-						}
-					} else if (this.companyName == '大家财险') {
-						switch (data.apiType) {
-							case 1:
-							case '1':
-								this.paycodeimg = QR.createQrCodeImg(res.data.qrCodeUrl, {
-									size: parseInt(300) //二维码大小  
-								})
-								break;
-							case 2:
-							case '2':
-								let result = res.data.qrCodeUrl.replace(/[\r\n]/g, "");
-								let imgBase64 = `data:image/png;base64,${result}`;
-								base64ToPath(imgBase64)
-									.then(path => {
-										pathToBase64(path)
-											.then(base64 => {
-												this.paycodeimg = base64;
-											})
-											.catch(error => {});
-									})
-								break;
-						}
-					} else {
-						this.paycodeimg = QR.createQrCodeImg(res.data.qrCodeUrl, {
-							size: parseInt(300) //二维码大小  
-						})
-					}
+					this.paycodeimg = QR.createQrCodeImg(res.data.qrCodeUrl, {
+						size: parseInt(300) //二维码大小  
+					})
 					this.$base.insCompanyList.map(ele => {
 						if (ele.name == res.data.inscompany) {
 							uni.getImageInfo({
@@ -231,7 +177,11 @@
 					size: parseInt(300) //二维码大小  
 				})
 			},
-
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			//发送收款码到微信
 			sendPayCode() {
 				// var that = this;

+ 6 - 0
pages/orders/priceComparison.vue

@@ -1,5 +1,6 @@
 <template>
 	<view style="height: 100vh;position: relative;">
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="page" id="panelcanvas">
 			<image :src="bannerImg" mode="" style="width: 100%;height: 450px;position: absolute;"></image>
 			<view class="content">
@@ -315,6 +316,11 @@
 
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			//页面返回按钮
 			back() {
 				uni.navigateBack({

+ 6 - 0
pages/orders/quotation.vue

@@ -1,5 +1,6 @@
 <template>
 	<view style="height: 100vh;position: relative;">
+		<service-widget @btnClick="btn_click"></service-widget>
 		<public-module></public-module>
 		<view class="page" id="panelcanvas">
 			<image :src="bannerImg" mode="" style="width: 100%;height: 450px;position: absolute;"></image>
@@ -386,6 +387,11 @@
 
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			async getDicType(type) {
 				let res = await this.$http.get('/sysDict/dictDetails/' + type);
 				if (res.code == 200) {

+ 6 - 0
pages/orders/quotation1.vue

@@ -1,5 +1,6 @@
 <template>
 	<view>
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="page dis f-c a-c" id="panelcanvas">
 			<view class="quotation-header dis a-c">
 				<image :src="caricon" class="image-icon" mode=""></image>
@@ -210,6 +211,11 @@
 			});
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			//本地图片转换成base64
 			turnBase64Image() {
 				this.

+ 7 - 0
pages/orders/quoteHistory.vue

@@ -1,6 +1,7 @@
 <template>
 	<view class="page">
 		<public-module></public-module>
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class=" flexd " style="z-index: 99;">
 			<view class="search dis f-c" v-for="(item, index) in statusList" :key="index"
 				:style="{backgroundImage: item.headerimg}" v-if="item.value==orderStatus">
@@ -622,6 +623,11 @@
 			}
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			async underwriteconfirm() {
 				await this.uploadRetry();
 				switch (this.inscompany) {
@@ -810,6 +816,7 @@
 						imageList: mergedArray,
 						quoteNo: this.quoteno,
 					})
+
 				}
 			},
 			//影像预览

+ 6 - 0
pages/realname/realname.vue

@@ -1,5 +1,6 @@
 <template>
 	<view>
+		<service-widget @btnClick="btn_click"></service-widget>
 		<!-- 公共组件-每个页面必须引入 -->
 		<public-module></public-module>
 		<u-form :model="form" ref="uForm" class="addStaffManage">
@@ -165,6 +166,11 @@
 		},
 
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			sexSelect(e) {
 				this.form.sex = e[0].label
 			},

+ 6 - 0
pages/roadRescue/Grounding.vue

@@ -1,5 +1,6 @@
 <template>
 	<view class="page">
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="address p-3 mb-4" @click="stopMap">
 			<view class="title">
 				<u-icon name="map" color="#2c2a35" size="38"></u-icon>
@@ -60,6 +61,11 @@
 		},
 		onLoad() {},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			getCurrentLocation() {
 				//获取当前的地理位置
 				let vthis = this;

+ 6 - 0
pages/roadRescue/index.vue

@@ -1,5 +1,6 @@
 <template>
 	<view class="page">
+		<service-widget @btnClick="btn_click"></service-widget>
 		<image class="swiper" src="/static/image/rescue/swpier.png" mode=""></image>
 		<view class="classification p-3 dis f-c ">
 			<view class="module m-btn-15 p-3 dis j-s a-c" v-for="(item,index) in moduleList" :key="index"
@@ -68,6 +69,11 @@
 
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			moduleClick(path) {
 				this.path = path;
 				this.show = true;

+ 6 - 0
pages/roadRescue/map.vue

@@ -1,5 +1,6 @@
 <template>
 	<view class="page">
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="search" @click="searchaddress">
 			<view class="region dis a-c j-s" style="position: absolute; z-index: 9;">
 				<text>{{city}}</text>
@@ -81,6 +82,11 @@
 			this.mapContext = uni.createMapContext("map1", this);
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			getCurrentLocation() {
 				//获取当前的地理位置
 				let vthis = this;

+ 6 - 0
pages/roadRescue/replacement.vue

@@ -1,5 +1,6 @@
 <template>
 	<view class="page">
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="address p-3 mb-4" @click="stopMap">
 			<view class="title">
 				<u-icon name="map" color="#2c2a35" size="38"></u-icon>
@@ -61,6 +62,11 @@
 		},
 		onLoad() {},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			getCurrentLocation() {
 				//获取当前的地理位置
 				let vthis = this;

+ 6 - 0
pages/roadRescue/trailer.vue

@@ -1,5 +1,6 @@
 <template>
 	<view class="page">
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="address p-4 mb-4">
 			<view class="mb-3" @click="stopMap">
 				<view class="title dis a-c">
@@ -97,6 +98,11 @@
 		},
 		onLoad() {},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			getCurrentLocation() {
 				//获取当前的地理位置
 				let vthis = this;

+ 22 - 13
pages/ticket/confirmorder.vue

@@ -1,5 +1,6 @@
 <template>
 	<view class="">
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="wab1 shu1">
 			<view>晋 <text style="font-weight: bold;">RX4066</text> 的罚单缴费</view>
 			<view class="binhao">
@@ -50,9 +51,8 @@
 				<text>¥15</text>
 			</view>
 		</view>
-		<u-checkbox-group  size="26">
-			<u-checkbox  v-model="item.checked" v-for="(item, index) in list" :key="index"
-				:name="item.name">
+		<u-checkbox-group size="26">
+			<u-checkbox v-model="item.checked" v-for="(item, index) in list" :key="index" :name="item.name">
 				<view style="font-size: 24rpx;">
 					{{item.name}}
 				</view>
@@ -86,7 +86,7 @@
 					checked: false,
 					disabled: false
 				}, ],
-				
+
 			}
 		},
 		onLoad() {
@@ -94,7 +94,11 @@
 				" " + this.bianhao.substr(12, 4);
 		},
 		methods: {
-			
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 		}
 	}
 </script>
@@ -134,6 +138,7 @@
 		align-items: center;
 		justify-content: center;
 	}
+
 	.heng2 {
 		display: flex;
 		align-items: center;
@@ -173,20 +178,22 @@
 		height: auto;
 		position: fixed;
 		left: 36rpx;
-		right:36rpx;
+		right: 36rpx;
 		bottom: 60rpx;
 		background-color: #fffdee;
 		border-bottom-left-radius: 60rpx;
 		border-bottom-right-radius: 60rpx;
 	}
-	.flexd_btn{
+
+	.flexd_btn {
 		width: 100%;
 		height: 100rpx;
 		border-radius: 60rpx;
-		box-shadow:0 6px 10px -6px #aaacac;
-		
+		box-shadow: 0 6px 10px -6px #aaacac;
+
 	}
-	.flexd_btn>view:nth-child(1){
+
+	.flexd_btn>view:nth-child(1) {
 		width: 70%;
 		height: 100%;
 		background-color: #FFFFFF;
@@ -197,7 +204,8 @@
 		padding: 0 40rpx;
 		box-sizing: border-box;
 	}
-	.flexd_btn>view:nth-child(2){
+
+	.flexd_btn>view:nth-child(2) {
 		width: 30%;
 		height: 100%;
 		background-color: #007BFF;
@@ -207,7 +215,8 @@
 		font-size: 36rpx;
 		color: #FFFFFF;
 	}
-	.flexd_tishi{
+
+	.flexd_tishi {
 		width: 100%;
 		height: 60rpx;
 		padding: 0 40rpx;
@@ -215,4 +224,4 @@
 		color: #f1622a;
 		font-size: 24rpx;
 	}
-</style>
+</style>

+ 85 - 81
pages/ticket/issue.vue

@@ -1,5 +1,6 @@
 <template>
 	<view class="">
+		<service-widget @btnClick="btn_click"></service-widget>
 		<u-collapse accordion="false">
 			<u-collapse-item :open="item.open" :disabled="item.disabled" :title="item.head"
 				v-for="(item, index) in itemList" :key="index"
@@ -14,86 +15,85 @@
 	export default {
 		data() {
 			return {
-				itemList: [
+				itemList: [{
+						head: "一、罚款代缴支持办理哪些业务?",
+						body: "罚款代缴业务用于已认罚未缴费的违章业务代办,一般都是已领取处罚决定书的违章罚款缴费,目前支持全国各类型车辆代办,需提供处罚决定书编号以及对应罚单信息。",
+						open: false,
+						disabled: false
+					}, {
+						head: "二、罚款代缴需提供哪些资料?",
+						body: "罚款代缴需提供处罚决定书编号、车牌号、认罚日期,部分地区需提供已认罚驾照信息及上传处罚决定书照片,具体以您下单界面提示为准。如需上传处罚决定书照片,请务必上传清晰准确。",
+						open: false,
+					}, {
+						head: "三、处罚决定书的罚单编号在哪里查?",
+						body: "您认罚之后领取的处罚决定书上均有罚单编号,一般为表头正下方或右侧方。",
+						open: false,
+					},
 					{
-					head: "一、罚款代缴支持办理哪些业务?",
-					body: "罚款代缴业务用于已认罚未缴费的违章业务代办,一般都是已领取处罚决定书的违章罚款缴费,目前支持全国各类型车辆代办,需提供处罚决定书编号以及对应罚单信息。",
-					open: false,
-					disabled: false
-				}, {
-					head: "二、罚款代缴需提供哪些资料?",
-					body: "罚款代缴需提供处罚决定书编号、车牌号、认罚日期,部分地区需提供已认罚驾照信息及上传处罚决定书照片,具体以您下单界面提示为准。如需上传处罚决定书照片,请务必上传清晰准确。",
-					open: false,
-				}, {
-					head: "三、处罚决定书的罚单编号在哪里查?",
-					body: "您认罚之后领取的处罚决定书上均有罚单编号,一般为表头正下方或右侧方。",
-					open: false,
-				},
-				{
-					head: "四、罚单编号输错了怎么办?",
-					body: "罚单编号是缴纳罚款的依据,罚单编号输入错误会导致罚款缴错或无法缴费成功,建议您致电客服退单后重新下单。如因编号输入错误导致的经济损失需客户自行承担。",
-					open: false,
-				},
-				{
-					head: "五、处罚日期填什么?",
-					body: "处罚日期是您领取处罚决定书的具体日期,处罚决定书上均有显示,与违章日期无关,请您准确填写日期,以便确认罚款金额。",
-					open: false,
-				},
-				{
-					head: "六、为什么会有滞纳金?",
-					body: "违章认罚或领取出罚金决定书之后务必于15日内缴费,如逾期未缴费则按每日3%的滞纳金收取,直至滞纳金与罚款相等则不再继续叠加。因办理周期限制,我司自认罚第13天开始计算滞纳金。",
-					open: false,
-				},
-				{
-					head: "七、处罚金额怎么和处罚决定书上的不一致?",
-					body: "订单中的处罚金额包括罚金本金及服务费,如已产生滞纳金则为包括滞纳金的总和。",
-					open: false,
-				},
-				{
-					head: "八、订单办理流程是什么?",
-					body: "您填写处罚决定书及相关罚款信息后下单并完成支付,有对应客服人员跟进订单处理,办理完成或退单均有短信提醒发送至订单预留手机号。",
-					open: false,
-				},
-				{
-					head: "九、办理周期多长?",
-					body: "下单后1-2个工作日可办理完成,省内的违章数据订单完成后1-2天可消网,跨省数据传输较慢,短则3-5个工作日消网,长则半个月或更长周期,具体以官方数据传输为准。",
-					open: false,
-				},
-				{
-					head: "十、可以退单吗?",
-					body: "正在办理中的订单无法退单,如需退单请致电客服申请,如未联系客服申请退单又自行缴费导致的重复付款,均由客户自行承担。",
-					open: false,
-				},
-				{
-					head: "十一、订单退单后退款到哪里?",
-					body: "您的退款将于订单退单后3-5个工作日退回原支付账户,请您注意查收。",
-					open: false,
-				},
-				{
-					head: "十二、无法上传处罚决定书照片会影响么?",
-					body: "如下单界面显示需提供处罚决定书照片,建议您上传去清晰准确的照片以便办理过程中确认信息,如无法提供处罚决定书照片,请在下单前确保已完成认罚及订单各项信息填写无误。",
-					open: false,
-				},
-				{
-					head: "十三、车牌号填错了怎么办?",
-					body: "建议您提供正确完整车牌号,如车牌号信息填写错误,请及时联系客服更正。",
-					open: false,
-				},
-				{
-					head: "十四、为什么我的罚款代缴不能下单?",
-					body: "当日认罚的订单因交警部门需要采集信息录入系统更新,更新至系统中后才可以查询下单,因此需延后1-2个工作日方可下单办理代缴。",
-					open: false,
-				},
-				{
-					head: "十五、办理完成后可否提供发票?",
-					body: "因罚款代缴均为系统办理非人工处理因此无法提供发票。",
-					open: false,
-				},
-				{
-					head: "十六、办理完成后是否有缴款凭证?",
-					body: "已完结订单均可提供缴款凭证,大部分为缴费回单。如需要可在订单办结后联系客服提供。",
-					open: false,
-				},
+						head: "四、罚单编号输错了怎么办?",
+						body: "罚单编号是缴纳罚款的依据,罚单编号输入错误会导致罚款缴错或无法缴费成功,建议您致电客服退单后重新下单。如因编号输入错误导致的经济损失需客户自行承担。",
+						open: false,
+					},
+					{
+						head: "五、处罚日期填什么?",
+						body: "处罚日期是您领取处罚决定书的具体日期,处罚决定书上均有显示,与违章日期无关,请您准确填写日期,以便确认罚款金额。",
+						open: false,
+					},
+					{
+						head: "六、为什么会有滞纳金?",
+						body: "违章认罚或领取出罚金决定书之后务必于15日内缴费,如逾期未缴费则按每日3%的滞纳金收取,直至滞纳金与罚款相等则不再继续叠加。因办理周期限制,我司自认罚第13天开始计算滞纳金。",
+						open: false,
+					},
+					{
+						head: "七、处罚金额怎么和处罚决定书上的不一致?",
+						body: "订单中的处罚金额包括罚金本金及服务费,如已产生滞纳金则为包括滞纳金的总和。",
+						open: false,
+					},
+					{
+						head: "八、订单办理流程是什么?",
+						body: "您填写处罚决定书及相关罚款信息后下单并完成支付,有对应客服人员跟进订单处理,办理完成或退单均有短信提醒发送至订单预留手机号。",
+						open: false,
+					},
+					{
+						head: "九、办理周期多长?",
+						body: "下单后1-2个工作日可办理完成,省内的违章数据订单完成后1-2天可消网,跨省数据传输较慢,短则3-5个工作日消网,长则半个月或更长周期,具体以官方数据传输为准。",
+						open: false,
+					},
+					{
+						head: "十、可以退单吗?",
+						body: "正在办理中的订单无法退单,如需退单请致电客服申请,如未联系客服申请退单又自行缴费导致的重复付款,均由客户自行承担。",
+						open: false,
+					},
+					{
+						head: "十一、订单退单后退款到哪里?",
+						body: "您的退款将于订单退单后3-5个工作日退回原支付账户,请您注意查收。",
+						open: false,
+					},
+					{
+						head: "十二、无法上传处罚决定书照片会影响么?",
+						body: "如下单界面显示需提供处罚决定书照片,建议您上传去清晰准确的照片以便办理过程中确认信息,如无法提供处罚决定书照片,请在下单前确保已完成认罚及订单各项信息填写无误。",
+						open: false,
+					},
+					{
+						head: "十三、车牌号填错了怎么办?",
+						body: "建议您提供正确完整车牌号,如车牌号信息填写错误,请及时联系客服更正。",
+						open: false,
+					},
+					{
+						head: "十四、为什么我的罚款代缴不能下单?",
+						body: "当日认罚的订单因交警部门需要采集信息录入系统更新,更新至系统中后才可以查询下单,因此需延后1-2个工作日方可下单办理代缴。",
+						open: false,
+					},
+					{
+						head: "十五、办理完成后可否提供发票?",
+						body: "因罚款代缴均为系统办理非人工处理因此无法提供发票。",
+						open: false,
+					},
+					{
+						head: "十六、办理完成后是否有缴款凭证?",
+						body: "已完结订单均可提供缴款凭证,大部分为缴费回单。如需要可在订单办结后联系客服提供。",
+						open: false,
+					},
 				],
 			}
 		},
@@ -101,7 +101,11 @@
 
 		},
 		methods: {
-
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 		}
 
 	}
@@ -111,4 +115,4 @@
 	page {
 		border-top: 2rpx solid #F2F2F2;
 	}
-</style>
+</style>

+ 7 - 1
pages/ticket/order.vue

@@ -1,5 +1,6 @@
 <template>
 	<view class="">
+		<service-widget @btnClick="btn_click"></service-widget>
 		<u-tabs name="cate_name" count="cate_count" bar-width="150" bar-height="3" :list="list" :is-scroll="false"
 			:current="current" @change="change">
 		</u-tabs>
@@ -38,6 +39,11 @@
 
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			change(index) {
 				this.current = index;
 			}
@@ -59,4 +65,4 @@
 		right: 0;
 		z-index: -1;
 	}
-</style>
+</style>

+ 10 - 2
pages/ticket/ticket.vue

@@ -1,5 +1,6 @@
 <template>
 	<view>
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="headers"></view>
 		<view class="wab">
 			<view class="wab_query shu">
@@ -131,6 +132,11 @@
 
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			chooseImage() {
 				uni.chooseImage({
 					count: 1,
@@ -155,7 +161,7 @@
 			inquire() {
 				this.show2 = true;
 			},
-			banli(){
+			banli() {
 				this.show2 = false;
 				uni.navigateTo({
 					url: "/pages/ticket/confirmorder"
@@ -174,12 +180,14 @@
 	page {
 		background-color: #F3F4F8;
 	}
+
 	.headers {
 		width: 100%;
 		height: 240rpx;
 		background-image: url(../../static/image/claim/claimtop.png);
 		background-size: 100% 100%;
 	}
+
 	.wab {
 		width: 100%;
 		height: auto;
@@ -273,4 +281,4 @@
 		padding: 60rpx 40rpx;
 		box-sizing: border-box;
 	}
-</style>
+</style>

+ 6 - 0
pages/tools/achievement/achievement.vue

@@ -1,5 +1,6 @@
 <template>
 	<view>
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="headers ">
 			<view class="dis a-c j-start ">
 				<u-icon name="arrow-left" color="#fff" size="40" @tap="back"></u-icon>
@@ -220,6 +221,11 @@
 			this.totalsummt();
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			async totalsummt() {
 				let res = await this.$http.get('/app/reporet/getAllpremium?year=' + this.dataInfo.searchYear);
 				this.totalsumPremium = res.data.sumPremium;

+ 6 - 0
pages/tools/addStaff/addStaff.vue

@@ -2,6 +2,7 @@
 	<view>
 		<!-- 公共组件-每个页面必须引入 -->
 		<public-module></public-module>
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="headers dis a-c j-start " :style="headerStyle">
 			<u-icon name="arrow-left" size="40" @tap="back"></u-icon>
 			<text style="margin: auto;">会员分享</text>
@@ -106,6 +107,11 @@
 			...mapState(['userInfo', 'sources']),
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			//页面返回按钮
 			back() {
 				uni.navigateBack({

+ 6 - 0
pages/tools/addStaff/authentication1.vue

@@ -2,6 +2,7 @@
 	<view>
 		<!-- 公共组件-每个页面必须引入 -->
 		<public-module></public-module>
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="headers " :style="headerStyle">
 			<view class="dis a-c j-start ">
 				<u-icon name="arrow-left" size="40" @tap="back"></u-icon>
@@ -92,6 +93,11 @@
 			...mapState(['userInfo', 'sources']),
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			async querylist() {
 				let res = await this.$http.post('/app/customer/authenticationQuery', this.pageRequest);
 				if (res.code == '200') {

+ 6 - 0
pages/tools/addStaff/authentication2.vue

@@ -2,6 +2,7 @@
 	<view>
 		<!-- 公共组件-每个页面必须引入 -->
 		<public-module></public-module>
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="headers " :style="headerStyle">
 			<view class="dis a-c j-start ">
 				<u-icon name="arrow-left" size="40" @tap="back"></u-icon>
@@ -92,6 +93,11 @@
 			...mapState(['userInfo', 'sources']),
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			async querylist() {
 				let res = await this.$http.post('/app/customer/authenticationQuery', this.pageRequest);
 				if (res.code == '200') {

+ 6 - 0
pages/tools/addStaff/authentication3.vue

@@ -2,6 +2,7 @@
 	<view>
 		<!-- 公共组件-每个页面必须引入 -->
 		<public-module></public-module>
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="headers " :style="headerStyle">
 			<view class="dis a-c j-start ">
 				<u-icon name="arrow-left" size="40" @tap="back"></u-icon>
@@ -132,6 +133,11 @@
 			...mapState(['userInfo', 'sources']),
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			async querylist() {
 				let res = await this.$http.post('/app/customer/authenticationQuery', this.pageRequest);
 				if (res.code == '200') {

+ 7 - 1
pages/tools/addStaff/authenticationdetails.vue

@@ -2,6 +2,7 @@
 	<view>
 		<!-- 公共组件-每个页面必须引入 -->
 		<public-module></public-module>
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="headers " :style="headerStyle">
 			<view class="dis a-c j-start ">
 				<u-icon name="arrow-left" size="40" @tap="back"></u-icon>
@@ -39,7 +40,7 @@
 					<text v-if="userData.state==1">已认证</text>
 					<text v-else>未认证</text>
 				</view>
-				<view class="pag-data dis j-s a-c" >
+				<view class="pag-data dis j-s a-c">
 					<text>注册时间:</text>
 					<text>{{userData.createTime}}</text>
 				</view>
@@ -106,6 +107,11 @@
 			...mapState(['userInfo', 'sources']),
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			details() {
 				this.navigate({
 					url: '/pages/tools/addStaff/authenticationdetails'

+ 6 - 1
pages/tools/addStaff/codeDownload.vue

@@ -2,6 +2,7 @@
 	<view :style="getHeight">
 		<!-- 公共组件-每个页面必须引入 -->
 		<public-module></public-module>
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="content d-flex flex-column a-center j-center">
 			<image src="/static/image/addStaff/face_sao.png" mode="widthFix" lazy-load style="width: 500upx;"></image>
 			<image :src="recommendImg" mode="widthFix" lazy-load style="width: 450upx;"></image>
@@ -50,7 +51,11 @@
 			})
 		},
 		methods: {
-
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 		}
 	}
 </script>

+ 6 - 1
pages/tools/addStaff/orderissuer.vue

@@ -2,6 +2,7 @@
 	<view :style="getHeight">
 		<!-- 公共组件-每个页面必须引入 -->
 		<public-module></public-module>
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="content d-flex flex-column a-center j-center">
 			<image src="/static/image/addStaff/face_sao.png" mode="widthFix" lazy-load style="width: 500upx;"></image>
 			<image :src="recommendImg" mode="widthFix" lazy-load style="width: 450upx;"></image>
@@ -35,7 +36,11 @@
 			})
 		},
 		methods: {
-
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 		}
 	}
 </script>

+ 6 - 1
pages/tools/addStaff/recommendCode.vue

@@ -2,6 +2,7 @@
 	<view :style="getHeight">
 		<!-- 公共组件-每个页面必须引入 -->
 		<public-module></public-module>
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="content d-flex flex-column a-center j-center">
 			<image src="/static/image/addStaff/face_sao.png" mode="widthFix" lazy-load style="width: 500upx;"></image>
 			<image :src="recommendImg" mode="widthFix" lazy-load style="width: 450upx;"></image>
@@ -34,7 +35,11 @@
 			})
 		},
 		methods: {
-
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 		}
 	}
 </script>

+ 6 - 0
pages/tools/calculator/calculator.vue

@@ -2,6 +2,7 @@
 	<view class="page">
 		<!-- 公共组件-每个页面必须引入 -->
 		<public-module></public-module>
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view style="margin-bottom: 20upx;">
 			<view class="title d-flex a-center j-sb">
 				<view>原价(元)</view>
@@ -100,6 +101,11 @@
 
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			clear() {
 				this.compulsoryPrice = "";
 				this.bueinessPrice = "";

+ 65 - 53
pages/tools/coupon/coupon.vue

@@ -1,5 +1,6 @@
 <template>
 	<view class="coupon_box">
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="other_type">
 			<view class="text"><span>全面型消费券</span></view>
 		</view>
@@ -17,74 +18,85 @@
 		components: {
 			coupon
 		},
-		data(){
+		data() {
 			return {
-				coupon:[{
+				coupon: [{
 					list: [{
-						url: "/pages/brand/index/id/1",
-						money: "150",
-						title: "满2000减150元",
-						ticket: "YMC_5c929fbf47235",
-						seller_name: "太原政府消费券",
-						end_time: "2019-04-20 01:51:20",
-						state: "1"
-					},
-					{
-						url: "/pages/brand/index/id/1",
-						money: "50",
-						title: "满1000减50元",
-						ticket: "YMC_5c929fbf47235",
-						seller_name: "太原政府消费券",
-						end_time: "2019-04-20 01:51:20",
-						state: "1"
-					}]
+							url: "/pages/brand/index/id/1",
+							money: "150",
+							title: "满2000减150元",
+							ticket: "YMC_5c929fbf47235",
+							seller_name: "太原政府消费券",
+							end_time: "2019-04-20 01:51:20",
+							state: "1"
+						},
+						{
+							url: "/pages/brand/index/id/1",
+							money: "50",
+							title: "满1000减50元",
+							ticket: "YMC_5c929fbf47235",
+							seller_name: "太原政府消费券",
+							end_time: "2019-04-20 01:51:20",
+							state: "1"
+						}
+					]
 				}]
 			}
 		},
 		onLoad() {
 
 		},
-		methods:{
-
+		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 		}
 	}
 </script>
 
 <style lang='scss'>
-page { background:white; }
-.coupon_box {
-	height:auto;
-	display:table;
-	padding:6upx 26upx 26upx 26upx;
-	width:100%;
-	box-sizing: border-box;
-}
+	page {
+		background: white;
+	}
 
-.other_type {
-	width:100%;
-	height:90upx;
-	padding-top:50upx;
-	box-sizing: border-box;
-	.text { 
-		width:100%;
-		border-top:1px solid #eeeeee;
-		display:block;
-		text-align:center;
-		position:relative;
+	.coupon_box {
+		height: auto;
+		display: table;
+		padding: 6upx 26upx 26upx 26upx;
+		width: 100%;
 		box-sizing: border-box;
 	}
-	.text span { 
-		width:180upx;
-		height:40upx;
-		line-height:40upx;
-		color:#999999;
-		display:block;
-		background:#ffffff;
-		position:absolute;
-		left:50%; top:50%;
-		margin-left:-90upx;
-		margin-top:-20upx;
-		font-size:24upx;
+
+	.other_type {
+		width: 100%;
+		height: 90upx;
+		padding-top: 50upx;
+		box-sizing: border-box;
+
+		.text {
+			width: 100%;
+			border-top: 1px solid #eeeeee;
+			display: block;
+			text-align: center;
+			position: relative;
+			box-sizing: border-box;
+		}
+
+		.text span {
+			width: 180upx;
+			height: 40upx;
+			line-height: 40upx;
+			color: #999999;
+			display: block;
+			background: #ffffff;
+			position: absolute;
+			left: 50%;
+			top: 50%;
+			margin-left: -90upx;
+			margin-top: -20upx;
+			font-size: 24upx;
+		}
 	}
-}
 </style>

+ 23 - 13
pages/tools/customer/customer.vue

@@ -1,5 +1,6 @@
 <template>
 	<view class="parent">
+		<service-widget @btnClick="btn_click"></service-widget>
 		<!-- 查询区域Start -->
 		<view>
 			<view class=" flexd " style="z-index: 99;">
@@ -31,7 +32,7 @@
 											<text v-if="pageRequest.jqStartDate!=''">{{pageRequest.jqStartDate}}</text>
 											<text v-else>{{transformTime()}}</text>
 										</view>
-										
+
 										<view class="status-data" @tap="jqEndShowmethod()" style="margin-left: 10px;">
 											<text v-if="pageRequest.jqEndDate!=''">{{pageRequest.jqEndDate}}</text>
 											<text v-else>{{transformTimeEnd()}}</text>
@@ -89,7 +90,7 @@
 		<!-- 回到顶部 -->
 		<u-picker v-model="jqstartShow" mode="time" :params="params" @confirm="jqconfirm"></u-picker>
 		<u-picker v-model="systartShow" mode="time" :params="params" @confirm="syconfirm"></u-picker>
-		
+
 		<u-picker v-model="jqendShow" mode="time" :params="params" @confirm="jqEndConfirm"></u-picker>
 		<u-picker v-model="syendShow" mode="time" :params="params" @confirm="syEndConfirm"></u-picker>
 	</view>
@@ -112,8 +113,8 @@
 				/* 时间筛选相关 */
 				jqendShow: false,
 				syendShow: false,
-				jqstartShow:false,
-				systartShow:false,
+				jqstartShow: false,
+				systartShow: false,
 				endShow: false,
 				params: {
 					year: true, //年
@@ -125,9 +126,9 @@
 				},
 				/* 时间筛选相关 */
 				pageRequest: { //查询的默认条件
-					jqStartDate:"",
+					jqStartDate: "",
 					jqEndDate: "",
-					syStartDate:"",
+					syStartDate: "",
 					syEndDate: "",
 					userId: "",
 					param: "",
@@ -177,10 +178,15 @@
 			this.pageRequest.syEndDate = this.transformTimeEnd();
 			this.pageRequest.syStartDate = this.transformTime();
 			this.pageRequest.jqStartDate = this.transformTime();
-			
+
 			this.querylist();
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			details(id) {
 				uni.navigateTo({
 					url: "/pages/tools/customer/custormerDetail?companyId=" + id
@@ -234,11 +240,13 @@
 			},
 
 			jqconfirm(e) {
-				this.pageRequest.jqStartDate = e.year + '-' + e.month + '-' + e.day + " " + e.hour + ":" + e.minute + ":" + e
+				this.pageRequest.jqStartDate = e.year + '-' + e.month + '-' + e.day + " " + e.hour + ":" + e.minute + ":" +
+					e
 					.second;
 			},
 			syconfirm(e) {
-				this.pageRequest.syStartDate = e.year + '-' + e.month + '-' + e.day + " " + e.hour + ":" + e.minute + ":" + e
+				this.pageRequest.syStartDate = e.year + '-' + e.month + '-' + e.day + " " + e.hour + ":" + e.minute + ":" +
+					e
 					.second;
 			},
 			jqEndConfirm(e) {
@@ -268,9 +276,9 @@
 			},
 			//往后一月时间
 			transformTimeEnd(day) {
-				let current= new Date().getTime()
-				let monthInms=30*24*60*60*1000
-				var date = new Date(monthInms+current);
+				let current = new Date().getTime()
+				let monthInms = 30 * 24 * 60 * 60 * 1000
+				var date = new Date(monthInms + current);
 				date.setFullYear(date.getFullYear());
 				date.setTime(date.getTime());
 				var strYear = date.getFullYear();
@@ -307,9 +315,11 @@
 </style>
 <style lang="scss" scoped>
 	@import '@/style/mixin.scss';
-	.pa-cent .on{
+
+	.pa-cent .on {
 		color: red !important;
 	}
+
 	/deep/ uni-tabbar .uni-tabbar-bottom {
 		position: fixed;
 		left: 0;

+ 6 - 0
pages/tools/customer/custormerDetail.vue

@@ -1,6 +1,7 @@
 <template>
 	<view :style="getHeight">
 		<!-- 公共组件-每个页面必须引入 -->
+		<service-widget @btnClick="btn_click"></service-widget>
 		<public-module></public-module>
 		<!-- 头部 -->
 		<view class="headers dis f-c j-end">
@@ -1331,6 +1332,11 @@
 		},
 		methods: {
 			...mapMutations(['setOrderStage', 'setOrderType']),
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			//字典name匹配
 			dictionaryMatching(list, value) {
 				let obj = list.find(val => val.dictValue == value);

+ 158 - 132
pages/tools/insuranceClaims/insuranceClaims.vue

@@ -2,6 +2,7 @@
 	<view class="pagebody">
 		<!-- 公共组件-每个页面必须引入 -->
 		<public-module></public-module>
+		<service-widget @btnClick="btn_click"></service-widget>
 		<z-paging auto-show-back-to-top :style="getHeight">
 			<view class="claimimg">
 				<image src="/static/image/claim/claimtop.png" mode="widthFix"></image>
@@ -24,13 +25,13 @@
 			<view class="claimmobile">
 				<view class="claimmobiletitle  d-flex a-center">
 					<p>各大保险公司理赔报案电话</p>
-					
+
 				</view>
 				<view class=" search-input d-flex a-center">
-					<u-input v-model="value" type="text" :border="true" @confirm="onConfirm" placeholder="请输入保险公司名称"/>
-					
+					<u-input v-model="value" type="text" :border="true" @confirm="onConfirm" placeholder="请输入保险公司名称" />
+
 				</view>
-				
+
 				<view class="claimmobilecontent">
 					<view class="claimmobileitem d-flex a-center j-center" v-for="(item,index) in claimmobiles"
 						:key="index">
@@ -265,13 +266,13 @@
 						name: "天安财险",
 						mobile: "95505"
 					}
-					
+
 				],
-				companyList:[],
+				companyList: [],
 			}
 		},
 		created() {
-			this.companyList=[...this.claimmobiles]
+			this.companyList = [...this.claimmobiles]
 		},
 		computed: {
 			getHeight() {
@@ -305,18 +306,23 @@
 
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			// 搜索电话
-			onConfirm(e){
+			onConfirm(e) {
 				// console.log(e)
-				let arr=[...this.companyList]
-				let newAarr=[]
-					
-				arr.forEach((v,i)=>{
-					if(v.name.includes(e)){
+				let arr = [...this.companyList]
+				let newAarr = []
+
+				arr.forEach((v, i) => {
+					if (v.name.includes(e)) {
 						newAarr.push(v)
 					}
 				})
-				this.claimmobiles=e!=''?[...newAarr]:[...this.companyList]
+				this.claimmobiles = e != '' ? [...newAarr] : [...this.companyList]
 			},
 			// 电话咨询
 			mobileCall(mobile) {
@@ -324,18 +330,18 @@
 				uni.authorize({
 					scope: 'scope.makePhoneCall',
 					success: () => {
-					  uni.makePhoneCall({
-						phoneNumber: mobile,
-						success: () => {
-							console.log("成功拨打电话")
-						}
-					  })
+						uni.makePhoneCall({
+							phoneNumber: mobile,
+							success: () => {
+								console.log("成功拨打电话")
+							}
+						})
 					},
 					fail: () => {
-					  console.error('授权失败,请允许拨打电话权限!');
+						console.error('授权失败,请允许拨打电话权限!');
 					}
-				  });
-				
+				});
+
 				// #endif
 			},
 		}
@@ -343,113 +349,133 @@
 </script>
 
 <style>
-.pagebody{
-	background-color: #ededed;
-}
-.claimimg{
-	background-color: #FFFFFF;
-	width: 100%;
-}
-.claimimg>image{
-	width: 100%;
-}
-.claimsteps{
-	background-color: #FFFFFF;
-	padding: 20upx 30upx;
-}
-.claimsteps .claimstep{
-	padding-bottom: 10upx;
-	border-bottom: 1px solid #F5F3F6;
-}
-.claimsteps .claimstep .stepinfo{
-	width: 510upx;
-	padding: 30upx 18upx 20upx;
-	box-sizing: border-box;
-}
-.claimsteps .claimstep .stepinfo .stepindex{
-	width: 50upx;
-	height: 50upx;
-	font-size: 32upx;
-	font-weight: bold;
-	color: #FFFFFF;
-	border-radius: 50%;
-	background-color: #3C95FE;
-}
-.claimsteps .claimstep .stepinfo .steptitle{
-	line-height: 80upx;
-	font-size: 32upx;
-	font-weight: bold;
-}
-.claimsteps .claimstep .stepinfo .stepcontent{
-	line-height: 40upx;
-	color: #A39FA3;
-	font-size: 26upx;
-}
-.claimsteps .claimstep .stepimg{
-	width: 180upx;
-	flex-shrink: 1;
-}
-.claimsteps .claimstep .stepimg>image{
-	width: 170upx;
-}
-.claimmobile{
-	margin: 15upx 0;
-}
-.claimmobile .search-input{
-	padding: 10px;
-	box-sizing: border-box;
-	background: #FFFFFF;
-}
-.claimmobile .claimmobiletitle{
-	height: 80upx;
-	background: #FFFFFF;
-}
-.claimmobile .claimmobiletitle p{
-	margin-left: 50upx;
-	font-size: 32upx;
-	font-weight: bold;
-}
-.claimmobile .claimmobiletitle p:before{
-	width: 8upx;
-	height: 34upx;
-	margin-top: 15upx;
-	position:absolute;
-	align-items: center;
-	left: 30upx;
-	content:'';
-	background: #008DF0;
-}
-.claimmobile .claimmobilecontent{
-	
-}
-.claimmobile .claimmobilecontent .claimmobileitem{
-	height: 80upx;
-	background: #FFFFFF;
-	margin: 10upx 15upx;
-	padding: 0upx 20upx;
-	border-radius: 10upx;
-}
-.claimmobile .claimmobilecontent .claimmobileitem .companyicon{
-	width: 60upx;
-	height: 60upx;
-	border: 1px solid #F0F1F3;
-	border-radius: 5upx;
-	flex-shrink: 1;
-}
-.claimmobile .claimmobilecontent .claimmobileitem .companyicon>image{
-	width: 80%;
-	height: 80%;
-}
-.claimmobile .claimmobilecontent .claimmobileitem .companyname{
-	margin: 0upx 20upx;
-	font-size: 32upx;
-}
-.claimmobile .claimmobilecontent .claimmobileitem .companymobile{
-	width: 300upx;
-	flex-shrink: 1;
-}
-.claimmobile .claimmobilecontent .claimmobileitem .companymobile .iconfont{
-	font-size: 28upx;
-	margin:0 20upx 0 30upx;
-}
+	.pagebody {
+		background-color: #ededed;
+	}
+
+	.claimimg {
+		background-color: #FFFFFF;
+		width: 100%;
+	}
+
+	.claimimg>image {
+		width: 100%;
+	}
+
+	.claimsteps {
+		background-color: #FFFFFF;
+		padding: 20upx 30upx;
+	}
+
+	.claimsteps .claimstep {
+		padding-bottom: 10upx;
+		border-bottom: 1px solid #F5F3F6;
+	}
+
+	.claimsteps .claimstep .stepinfo {
+		width: 510upx;
+		padding: 30upx 18upx 20upx;
+		box-sizing: border-box;
+	}
+
+	.claimsteps .claimstep .stepinfo .stepindex {
+		width: 50upx;
+		height: 50upx;
+		font-size: 32upx;
+		font-weight: bold;
+		color: #FFFFFF;
+		border-radius: 50%;
+		background-color: #3C95FE;
+	}
+
+	.claimsteps .claimstep .stepinfo .steptitle {
+		line-height: 80upx;
+		font-size: 32upx;
+		font-weight: bold;
+	}
+
+	.claimsteps .claimstep .stepinfo .stepcontent {
+		line-height: 40upx;
+		color: #A39FA3;
+		font-size: 26upx;
+	}
+
+	.claimsteps .claimstep .stepimg {
+		width: 180upx;
+		flex-shrink: 1;
+	}
+
+	.claimsteps .claimstep .stepimg>image {
+		width: 170upx;
+	}
+
+	.claimmobile {
+		margin: 15upx 0;
+	}
+
+	.claimmobile .search-input {
+		padding: 10px;
+		box-sizing: border-box;
+		background: #FFFFFF;
+	}
+
+	.claimmobile .claimmobiletitle {
+		height: 80upx;
+		background: #FFFFFF;
+	}
+
+	.claimmobile .claimmobiletitle p {
+		margin-left: 50upx;
+		font-size: 32upx;
+		font-weight: bold;
+	}
+
+	.claimmobile .claimmobiletitle p:before {
+		width: 8upx;
+		height: 34upx;
+		margin-top: 15upx;
+		position: absolute;
+		align-items: center;
+		left: 30upx;
+		content: '';
+		background: #008DF0;
+	}
+
+	.claimmobile .claimmobilecontent {}
+
+	.claimmobile .claimmobilecontent .claimmobileitem {
+		height: 80upx;
+		background: #FFFFFF;
+		margin: 10upx 15upx;
+		padding: 0upx 20upx;
+		border-radius: 10upx;
+	}
+
+	.claimmobile .claimmobilecontent .claimmobileitem .companyicon {
+		width: 60upx;
+		height: 60upx;
+		border: 1px solid #F0F1F3;
+		border-radius: 5upx;
+		flex-shrink: 1;
+	}
+
+	.claimmobile .claimmobilecontent .claimmobileitem .companyicon>image {
+		width: 80%;
+		height: 80%;
+	}
+
+	.claimmobile .claimmobilecontent .claimmobileitem .companyname {
+		margin: 0upx 20upx;
+		font-size: 32upx;
+	}
+
+	.claimmobile .claimmobilecontent .claimmobileitem .companymobile {
+		width: 300upx;
+		flex-shrink: 1;
+	}
+
+	.claimmobile .claimmobilecontent .claimmobileitem .companymobile .iconfont {
+		font-size: 28upx;
+		margin: 0 20upx 0 30upx;
+	}
 </style>

+ 6 - 0
pages/tools/messageReminder/details.vue

@@ -1,5 +1,6 @@
 <template>
 	<view class="page">
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="message dis f-c" v-for="(item,index) in dataList" :key="index">
 			<view class="time dis j-c a-c">{{item.createTime}}</view>
 			<view class="content dis f-c">
@@ -63,6 +64,11 @@
 			}
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			async list(page, size) {
 				this.pageRequest.pageNum = page;
 				this.pageRequest.pageSize = size;

+ 6 - 0
pages/tools/messageReminder/messageReminder.vue

@@ -2,6 +2,7 @@
 	<view class="aui-news-box">
 		<!-- 公共组件-每个页面必须引入 -->
 		<public-module></public-module>
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="headers dis a-c j-start ">
 			<u-icon name="arrow-left" size="40" @tap="back"></u-icon>
 			<text style="margin: auto;">掌柜秘书</text>
@@ -78,6 +79,11 @@
 			this.getUserMessage();
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			//页面返回按钮
 			back() {
 				uni.navigateBack({

+ 6 - 0
pages/tools/policy/policy.vue

@@ -1,5 +1,6 @@
 <template>
 	<view class="parent">
+		<service-widget @btnClick="btn_click"></service-widget>
 		<!-- 查询区域Start -->
 		<view>
 			<view class=" flexd " style="z-index: 99;">
@@ -273,6 +274,11 @@
 		},
 		methods: {
 			...mapMutations(['setOrderType', 'setOrderStage']),
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			async getOrdersList() {
 				let res = await this.$http.post('/insurance/order/queryPageOrder', this.pageRequest);
 				if (res.code == '200') {

+ 6 - 0
pages/tools/policy/quoteDetail.vue

@@ -1,6 +1,7 @@
 <template>
 	<view :style="getHeight">
 		<!-- 公共组件-每个页面必须引入 -->
+		<service-widget @btnClick="btn_click"></service-widget>
 		<public-module></public-module>
 		<!-- 头部 -->
 		<view class="" style="width: 100%;
@@ -1520,6 +1521,11 @@
 					}, "switchTab",
 					true);
 			},
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			underwriteconfirm() {
 				switch (this.underwriteTitle) {
 					case '订单自核成功':

+ 6 - 0
pages/tools/policy/subOrders.vue

@@ -1,5 +1,6 @@
 <template>
 	<view @click.native="init" class="page">
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="car-header dis a-c">
 			<image src="/static/image/car-insure/Group.png" mode="" style="width: 40px;height: 40px;"></image>
 			<view class="dis f-c head-name">
@@ -166,6 +167,11 @@
 			this.querylist();
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			handle(type) {
 				this.show = !this.show
 				this.modeClass = type

+ 6 - 0
pages/tools/poster/poster-detail.vue

@@ -1,6 +1,7 @@
 <template>
 	<view class="pc-container" @longpress="saveImage">
 		<!-- 公共组件-每个页面必须引入 -->
+		<service-widget @btnClick="btn_click"></service-widget>
 		<public-module></public-module>
 		<image :src="imgurl" mode="widthFix" v-show="!canvasShow"></image>
 		<canvas id="mycanvas" ref="mycanvas" canvas-id="mycanvas" style="width: 690rpx;height: 1246rpx;"></canvas>
@@ -46,6 +47,11 @@
 			this.canvasImage();
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			canvasImage() {
 				let myCanvas = uni.createCanvasContext('mycanvas', this);
 				var ww = uni.upx2px("690");

+ 6 - 0
pages/tools/poster/poster.vue

@@ -1,6 +1,7 @@
 <template>
 	<view>
 		<public-module></public-module>
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="" style="position: fixed;width: 100%;z-index: 99;">
 			<u-tabs :is-scroll="false" :list="list" :current="current" @change="change"></u-tabs>
 		</view>
@@ -110,6 +111,11 @@
 
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			change(index) {
 				console.log(index)
 				this.current = index;

+ 6 - 0
pages/tools/team/team.vue

@@ -1,6 +1,7 @@
 <template>
 	<view>
 		<!-- 公共组件-每个页面必须引入 -->
+		<service-widget @btnClick="btn_click"></service-widget>
 		<public-module></public-module>
 		<view class="headers " :style="headerStyle">
 			<view class="dis a-c j-start ">
@@ -269,6 +270,11 @@
 		},
 
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			startconfirm(e) {
 				this.startdate = e.year + '-' + e.month + '-' + e.day;
 			},

+ 6 - 0
pages/tools/team/teamMember.vue

@@ -1,5 +1,6 @@
 <template>
 	<view class="page">
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="achievementInfo">
 			<view class="infoTitle d-flex a-center">业绩信息</view>
 			<view class="achievementStatistics d-flex">
@@ -151,6 +152,11 @@
 			})
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			callPhone(tel) {
 				uni.makePhoneCall({
 					phoneNumber: tel,

+ 9 - 4
pages/user/certification.vue

@@ -2,6 +2,7 @@
 	<view class="page">
 		<!-- 公共组件-每个页面必须引入 -->
 		<public-module></public-module>
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="posi p-3 d-flex j-center">
 			<view class="posi2">推荐关系</view>
 			<view class="posi2 on">实名认证</view>
@@ -247,7 +248,11 @@
 		},
 		methods: {
 			...mapMutations(['setUserModules']),
-
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			// 下拉选择
 			bindPickerChange(e, type) {
 				this[type + 'Index'] = e.detail.value;
@@ -266,14 +271,14 @@
 					var such = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
 					var sum = 0;
 					for (var i = 0; i < upperCaseValue.length - 1; i++) {
-					 var product = upperCaseValue[i] * such[i];
+						var product = upperCaseValue[i] * such[i];
 						sum += product;
 					}
 					var result = sum % 11;
 					var example = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
 					if (upperCaseValue[17] == example[result]) {
 						that.staffInfo.identity = upperCaseValue;
-					 that.staffInfo.birthday = upperCaseValue.substr(6, 4) + '-' + upperCaseValue.substr(10, 2) + '-' +
+						that.staffInfo.birthday = upperCaseValue.substr(6, 4) + '-' + upperCaseValue.substr(10, 2) + '-' +
 							upperCaseValue.substr(12, 2);
 						that.staffInfo.sex = (upperCaseValue.substr(16, 1) % 2 == 0) ? '女' : '男';
 						return true;
@@ -689,4 +694,4 @@
 	.popup_content .body image {
 		width: 540upx;
 	}
-</style>
+</style>

+ 45 - 34
pages/user/infoExamine.vue

@@ -2,6 +2,7 @@
 	<view>
 		<!-- 公共组件-每个页面必须引入 -->
 		<public-module></public-module>
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="d-flex a-center j-center m-5">
 			<image src="/static/bigLogo.png" mode="widthFix" style="width: 180rpx;height: 180rpx;"></image>
 		</view>
@@ -11,69 +12,79 @@
 		<view class="remark" v-if="(userStatus=='3')|| (userStatus=='4')">
 			{{remark}}
 		</view>
-		
+
 		<template v-if="userStatus=='4'">
 			<view class="d-flex flex-column">
-				<button class="d-flex a-center j-center main-bg-color mt-4 mx-3" type="primary" @tap="toNext">重新认证</button>
-				<button class="d-flex a-center j-center main-bf-hover-color mt-4 mx-3" type="primary" @tap="toLogin">下次再说</button>
+				<button class="d-flex a-center j-center main-bg-color mt-4 mx-3" type="primary"
+					@tap="toNext">重新认证</button>
+				<button class="d-flex a-center j-center main-bf-hover-color mt-4 mx-3" type="primary"
+					@tap="toLogin">下次再说</button>
 			</view>
 		</template>
 	</view>
 </template>
 
 <script>
-	import {mapState} from "vuex"
+	import {
+		mapState
+	} from "vuex"
 	export default {
 		data() {
 			return {
-				remark:"",
-				statusstage:""
+				remark: "",
+				statusstage: ""
 			}
 		},
 		onLoad() {
-			if(this.userStatus == '2'){
-				this.statusstage="正在审核中"; 
-			}else if(this.userStatus == '3'){
-				this.statusstage="审核驳回";
-			}else if(this.userStatus == '4'){
-				this.statusstage="退回修改";
+			if (this.userStatus == '2') {
+				this.statusstage = "正在审核中";
+			} else if (this.userStatus == '3') {
+				this.statusstage = "审核驳回";
+			} else if (this.userStatus == '4') {
+				this.statusstage = "退回修改";
 			}
 			this.getRemark();
 		},
-		computed:{
-			...mapState(['userStatus',"userInfo","userCheckInfo"])
+		computed: {
+			...mapState(['userStatus', "userInfo", "userCheckInfo"])
 		},
 		methods: {
-			getRemark(){
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
+			getRemark() {
 				this.remark = this.userCheckInfo.esmUserInternal.remark;
 			},
-			toNext(){
+			toNext() {
 				uni.navigateTo({
-					url:"/pages/user/infoInput"
+					url: "/pages/user/infoInput"
 				})
 			},
-			toLogin(){
+			toLogin() {
 				uni.switchTab({
-					url:"/pages/index/index"
+					url: "/pages/index/index"
 				})
 			}
-			
+
 		}
 	}
 </script>
 
 <style scoped>
-.status{
-	font-size: 36rpx;
-	font-weight: bold;
-	margin-top: 20rpx;
-	padding: 0 40rpx;
-}
-.remark{
-	min-height: 160rpx;
-	margin-top: 20rpx;
-	margin: 10rpx 30rpx;
-	padding: 20rpx;
-	border: 1px solid #ddd;
-}
-</style>
+	.status {
+		font-size: 36rpx;
+		font-weight: bold;
+		margin-top: 20rpx;
+		padding: 0 40rpx;
+	}
+
+	.remark {
+		min-height: 160rpx;
+		margin-top: 20rpx;
+		margin: 10rpx 30rpx;
+		padding: 20rpx;
+		border: 1px solid #ddd;
+	}
+</style>

+ 184 - 154
pages/user/infoInput.vue

@@ -2,6 +2,7 @@
 	<view>
 		<!-- 公共组件-每个页面必须引入 -->
 		<public-module></public-module>
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="posi p-3 mb-3 d-flex j-center">
 			<view class="posi2 on">推荐关系</view>
 			<view class="posi2">实名认证</view>
@@ -20,107 +21,122 @@
 			<view class="title">从业告知</view>
 			<view>
 				<view class="btns d-flex j-sb">
-					<view :class="(noticeBtn1 == '1')?'active':''" @tap="adjustNoticeBtn('noticeBtn1',1)" >有相关经验</view>
+					<view :class="(noticeBtn1 == '1')?'active':''" @tap="adjustNoticeBtn('noticeBtn1',1)">有相关经验</view>
 					<view :class="(noticeBtn2 == '1')?'active':''" @tap="adjustNoticeBtn('noticeBtn2',1)">有犯罪记录</view>
-					<view :class="(noticeBtn3 == '1')?'active':''" @tap="adjustNoticeBtn('noticeBtn3',1)">有接受过保监会处罚</view>
+					<view :class="(noticeBtn3 == '1')?'active':''" @tap="adjustNoticeBtn('noticeBtn3',1)">有接受过保监会处罚
+					</view>
 				</view>
 				<view class="btns  d-flex j-sb">
 					<view :class="(noticeBtn1 == '2')?'active':''" @tap="adjustNoticeBtn('noticeBtn1',2)">无相关经验</view>
 					<view :class="(noticeBtn2 == '2')?'active':''" @tap="adjustNoticeBtn('noticeBtn2',2)">无犯罪记录</view>
-					<view :class="(noticeBtn3 == '2')?'active':''" @tap="adjustNoticeBtn('noticeBtn3',2)">无接受过保监会处罚</view>
+					<view :class="(noticeBtn3 == '2')?'active':''" @tap="adjustNoticeBtn('noticeBtn3',2)">无接受过保监会处罚
+					</view>
 				</view>
-				
+
 			</view>
 		</view>
 		<view class="p-3">
-			<checkbox-group @change="changeAgree" >
+			<checkbox-group @change="changeAgree">
 				<label>
-					<checkbox  value="true" :checked="agree" style="transform:scale(0.6)" ></checkbox >本人已如实告知相关信息,如因不实信息产生的一切后果,本人愿承担一切法律责任。
-				</label>	
+					<checkbox value="true" :checked="agree" style="transform:scale(0.6)"></checkbox>
+					本人已如实告知相关信息,如因不实信息产生的一切后果,本人愿承担一切法律责任。
+				</label>
 			</checkbox-group>
-				 
+
 		</view>
-		<button class="mx-3 mt-4 d-flex a-center j-center  main-bg-color" :class="{'main-bf-hover-color':disabled}" type="primary" @tap="toNext" :disabled="disabled">下一步</button>
-		
-		
-		
+		<button class="mx-3 mt-4 d-flex a-center j-center  main-bg-color" :class="{'main-bf-hover-color':disabled}"
+			type="primary" @tap="toNext" :disabled="disabled">下一步</button>
+
+
+
 	</view>
 </template>
 
 <script>
-	import {mapState} from "vuex"
+	import {
+		mapState
+	} from "vuex"
 	export default {
 		data() {
 			return {
-				noticeBtn1:"",	//按钮1
-				noticeBtn2:"",	//按钮2
-				noticeBtn3:"", //按钮3
-				
-				agree:false,	//是否同意协议
-				disabled:true, //按钮是否可用
-				
-				recommenderId:"",//推荐人会员号
-				recommendDept:"",//推荐机构
-				
+				noticeBtn1: "", //按钮1
+				noticeBtn2: "", //按钮2
+				noticeBtn3: "", //按钮3
+
+				agree: false, //是否同意协议
+				disabled: true, //按钮是否可用
+
+				recommenderId: "", //推荐人会员号
+				recommendDept: "", //推荐机构
+
 			}
 		},
 		async onLoad() {
 			this.recommenderId = this.userCheckInfo.esmUserAgent.recommenderid;
 			// 查询推荐人信息
-			let res = await this.$http.get('/user/findById?id='+this.recommenderId);
-			if((res.code == '200') && (res.data!= null)){
+			let res = await this.$http.get('/user/findById?id=' + this.recommenderId);
+			if ((res.code == '200') && (res.data != null)) {
 				this.recommendDept = res.data.comname;
 			}
 		},
-		computed:{
+		computed: {
 			...mapState(['userCheckInfo'])
 		},
-		watch:{
-			noticeBtn1(val){
+		watch: {
+			noticeBtn1(val) {
 				this.OnBtnChange();
 			},
-			noticeBtn2(val){
+			noticeBtn2(val) {
 				this.OnBtnChange();
 			},
-			noticeBtn3(val){
+			noticeBtn3(val) {
 				this.OnBtnChange();
 			},
-			agree(val){
+			agree(val) {
 				this.OnBtnChange();
 			}
 		},
 		methods: {
-			changeAgree(e){
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
+			changeAgree(e) {
 				this.agree = e.detail.value[0];
 			},
-			
+
 			// 改变按钮状态value
-			OnBtnChange(){
-				if( (!!this.noticeBtn1) && (!!this.noticeBtn2) && (!!this.noticeBtn3) && (!!this.agree) ){
-					this.disabled=false; return;
+			OnBtnChange() {
+				if ((!!this.noticeBtn1) && (!!this.noticeBtn2) && (!!this.noticeBtn3) && (!!this.agree)) {
+					this.disabled = false;
+					return;
 				}
-				this.disabled=true;
+				this.disabled = true;
 			},
-			
-			toNext(){
-				if((this.noticeBtn2 == '1') || (this.noticeBtn3 == '1')){
-					return uni.showToast({ title: '您不符合我司的入司要求,感谢关注', icon:"none" });
+
+			toNext() {
+				if ((this.noticeBtn2 == '1') || (this.noticeBtn3 == '1')) {
+					return uni.showToast({
+						title: '您不符合我司的入司要求,感谢关注',
+						icon: "none"
+					});
 				}
 				uni.showModal({
-				    title: '重要提示',
-				    content: '您即将成为掌柜车险代理人,请问您是否已充分了解监管部门对展业地区的限制和要求,并承诺在监管部门指定的合规的地区开展业务?',
-					cancelText:'不了解',
-					confirmText:'我已了解',
-				    success: (res)=> {
-				        if (res.confirm) {
+					title: '重要提示',
+					content: '您即将成为掌柜车险代理人,请问您是否已充分了解监管部门对展业地区的限制和要求,并承诺在监管部门指定的合规的地区开展业务?',
+					cancelText: '不了解',
+					confirmText: '我已了解',
+					success: (res) => {
+						if (res.confirm) {
 							this.navigate({
-								url:"/pages/user/certification"
-							},'navigateTo')
-				        }
-				    }
+								url: "/pages/user/certification"
+							}, 'navigateTo')
+						}
+					}
 				});
 			},
-			adjustNoticeBtn(btnLabel,status){
+			adjustNoticeBtn(btnLabel, status) {
 				this[btnLabel] = status;
 			}
 		}
@@ -128,105 +144,119 @@
 </script>
 
 <style lang="scss" scoped>
-@import '@/style/mixin.scss';
-.posi{ counter-reset: num; }
-.posi2{
-	position: relative;
-	display: inline-block;
-	height: 40rpx;
-	line-height: 40rpx;
-	text-align: right;
-	padding-right: 15rpx;
-	width: 140rpx;
-	border-radius: 30rpx;
-	border: 1px solid #F0F0F0;
-	background: #F0F0F0;
-	margin-left: 30rpx;
-	color: #999;
-	font-size: 24rpx;
-}
-.posi2.on{
-	border: 1px solid $themeColor;
-	background: #FFFFFF;
-	color: $themeColor;
-}
-.posi2:before{
-	position: absolute;
-	display: block;
-	left: 2rpx;
-	top: 6rpx;
-	width: 28rpx;
-	height: 28rpx;
-	border-radius: 100%;
-	background: #fff;
-	color: #999;
-	counter-increment: num;
-	content: counter(num);
-	text-align: center;
-	line-height: 28rpx;
-}
-.posi2.on:before{
-	background: $themeColor;
-	color: #FFF;
-}
-.posi>view:nth-of-type(1):after{
-	position: absolute;
-	display: block;
-	content: "";
-	right: -20rpx;
-	top: 12rpx;
-	width: 16rpx;
-	height: 16rpx;
-	border-top: 1px solid $themeColor;
-	border-right: 1px solid $themeColor;
-	transform: rotate(45deg);
-}
-.posi>.posi2:nth-of-type(1){
-	margin-left: 0;
-}
-
-.inputView{
-	background:#FFFFFF;
-}
-.inputView>view{
-	height: 90rpx;
-	border-bottom: 1px solid #ddd;
-}
-.inputView>view>view:nth-of-type(1){
-	flex-shrink: 0;
-	width: 190upx;
-	padding-left: 15upx;
-	color: #999;
-}
-
-.notice{
-	background-color: #FFFFFF;
-}
-.notice .title{
-	height: 80upx;
-	line-height: 80upx;
-	font-size: 32upx;
-	border-bottom: 1px solid #ddd;
-}
-.notice .btns{
-	padding-top:20upx;
-	padding-bottom:20upx;
-}
-.notice .btns>view{
-	display: block;
-	padding: 0 16rpx;
-	color: #999;
-	line-height: 52rpx;
-	font-size: 24rpx;
-	border-radius: 30rpx;
-	border: 1px solid #f0f0f0;
-	background-color: #f0f0f0;
-	height: 56rpx;
-}
-
-.notice .btns>view.active{
-	color: #fff;
-	border: 1px solid $themeColor;
-	background-color: $themeColor;
-}
-</style>
+	@import '@/style/mixin.scss';
+
+	.posi {
+		counter-reset: num;
+	}
+
+	.posi2 {
+		position: relative;
+		display: inline-block;
+		height: 40rpx;
+		line-height: 40rpx;
+		text-align: right;
+		padding-right: 15rpx;
+		width: 140rpx;
+		border-radius: 30rpx;
+		border: 1px solid #F0F0F0;
+		background: #F0F0F0;
+		margin-left: 30rpx;
+		color: #999;
+		font-size: 24rpx;
+	}
+
+	.posi2.on {
+		border: 1px solid $themeColor;
+		background: #FFFFFF;
+		color: $themeColor;
+	}
+
+	.posi2:before {
+		position: absolute;
+		display: block;
+		left: 2rpx;
+		top: 6rpx;
+		width: 28rpx;
+		height: 28rpx;
+		border-radius: 100%;
+		background: #fff;
+		color: #999;
+		counter-increment: num;
+		content: counter(num);
+		text-align: center;
+		line-height: 28rpx;
+	}
+
+	.posi2.on:before {
+		background: $themeColor;
+		color: #FFF;
+	}
+
+	.posi>view:nth-of-type(1):after {
+		position: absolute;
+		display: block;
+		content: "";
+		right: -20rpx;
+		top: 12rpx;
+		width: 16rpx;
+		height: 16rpx;
+		border-top: 1px solid $themeColor;
+		border-right: 1px solid $themeColor;
+		transform: rotate(45deg);
+	}
+
+	.posi>.posi2:nth-of-type(1) {
+		margin-left: 0;
+	}
+
+	.inputView {
+		background: #FFFFFF;
+	}
+
+	.inputView>view {
+		height: 90rpx;
+		border-bottom: 1px solid #ddd;
+	}
+
+	.inputView>view>view:nth-of-type(1) {
+		flex-shrink: 0;
+		width: 190upx;
+		padding-left: 15upx;
+		color: #999;
+	}
+
+	.notice {
+		background-color: #FFFFFF;
+	}
+
+	.notice .title {
+		height: 80upx;
+		line-height: 80upx;
+		font-size: 32upx;
+		border-bottom: 1px solid #ddd;
+	}
+
+	.notice .btns {
+		padding-top: 20upx;
+		padding-bottom: 20upx;
+	}
+
+	.notice .btns>view {
+		display: block;
+		padding: 0 16rpx;
+		color: #999;
+		line-height: 52rpx;
+		font-size: 24rpx;
+		border-radius: 30rpx;
+		border: 1px solid #f0f0f0;
+		background-color: #f0f0f0;
+		height: 56rpx;
+	}
+
+	.notice .btns>view.active {
+		color: #fff;
+		border: 1px solid $themeColor;
+		background-color: $themeColor;
+	}
+</style>

+ 68 - 59
pages/user/protocol.vue

@@ -1,6 +1,7 @@
 <template>
 	<view class="protocol_page">
 		<!-- 公共组件-每个页面必须引入 -->
+		<service-widget @btnClick="btn_click"></service-widget>
 		<public-module></public-module>
 		<view class="title">{{title}}</view>
 		<jyf-parser ref="article"></jyf-parser>
@@ -8,67 +9,75 @@
 </template>
 
 <script>
-import jyfParser from '@/components/common/jyf-parser/jyf-parser.vue';
-export default {
-	components: { jyfParser },
-	data() {
-		return {
-			type:1000,
-			title:"用户协议"
-		};
-	},
-	//第一次加载
-	onLoad(e) {
-		if(e.type){
-			this.type = parseInt(e.type);
-			let title;
-			switch (this.type) {
-				case 1000:
-					title = "登录注册用户协议";
-					break;
+	import jyfParser from '@/components/common/jyf-parser/jyf-parser.vue';
+	export default {
+		components: {
+			jyfParser
+		},
+		data() {
+			return {
+				type: 1000,
+				title: "用户协议"
+			};
+		},
+		//第一次加载
+		onLoad(e) {
+			if (e.type) {
+				this.type = parseInt(e.type);
+				let title;
+				switch (this.type) {
+					case 1000:
+						title = "登录注册用户协议";
+						break;
+				}
+				this.title = title;
 			}
-			this.title = title;
-		}
-		this.pageData();
-	},
-	//页面显示
-	onShow() {},
-	//方法
-	methods: {
-		pageData() {
-			this.$http
-				.get('api/common/v1/protocol', {
-					type: this.type
+			this.pageData();
+		},
+		//页面显示
+		onShow() {},
+		//方法
+		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
 				})
-				.then(res => {
-					this.$refs.article.setContent(res);
-				});
+			},
+			pageData() {
+				this.$http
+					.get('api/common/v1/protocol', {
+						type: this.type
+					})
+					.then(res => {
+						this.$refs.article.setContent(res);
+					});
+			}
+		},
+		//页面隐藏
+		onHide() {},
+		//页面卸载
+		onUnload() {},
+		//页面下来刷新
+		onPullDownRefresh() {},
+		//页面上拉触底
+		onReachBottom() {},
+		//用户点击分享
+		onShareAppMessage(e) {
+			return this.wxShare();
 		}
-	},
-	//页面隐藏
-	onHide() {},
-	//页面卸载
-	onUnload() {},
-	//页面下来刷新
-	onPullDownRefresh() {},
-	//页面上拉触底
-	onReachBottom() {},
-	//用户点击分享
-	onShareAppMessage(e) {
-		return this.wxShare();
-	}
-};
+	};
 </script>
 <style scoped>
-.protocol_page {
-	background-color: #fff;
-	padding: 30upx;
-	font-size: 30upx;
-	line-height: 180%;
-	
-}
-.protocol_page .title {
-	font-size: 50upx;
-	padding-bottom: 30upx;
-}
-</style>
+	.protocol_page {
+		background-color: #fff;
+		padding: 30upx;
+		font-size: 30upx;
+		line-height: 180%;
+
+	}
+
+	.protocol_page .title {
+		font-size: 50upx;
+		padding-bottom: 30upx;
+	}
+</style>

+ 6 - 0
pages/user/userInfo.vue

@@ -1,6 +1,7 @@
 <template>
 	<view class="page">
 		<!-- 公共组件-每个页面必须引入 -->
+		<service-widget @btnClick="btn_click"></service-widget>
 		<public-module></public-module>
 		<view class="basicInfo">
 			<view class="user-set-userinfo-list d-flex a-center j-sb" @tap="popupShow = true">
@@ -139,6 +140,11 @@
 			...mapState(['userInfo', 'userCheckInfo']),
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			//保存头像
 			saveAvatar() {
 				var that = this;

+ 59 - 46
pages/user/userInfoImage.vue

@@ -1,95 +1,108 @@
 <template>
 	<view>
 		<!-- 公共组件-每个页面必须引入 -->
+		<service-widget @btnClick="btn_click"></service-widget>
 		<public-module></public-module>
 		<view class="IDcardInfo p-3 my-3" style="background-color: #FFFFFF;">
 			<view class="cardImages d-flex j-sb">
 				<view>
-					
+
 					<view class="imgArea" :class="(IdCardBefore=='')?'idCardBefore':'imageBorder'">
 						<template v-if="IdCardBefore!=''">
 							<image :src="IdCardBefore" mode="aspectFill"></image>
 						</template>
 					</view>
-					<view class="d-flex a-center j-center mt-2 font-weight main-text-color" >身份证人像面</view>
+					<view class="d-flex a-center j-center mt-2 font-weight main-text-color">身份证人像面</view>
 				</view>
 				<view>
-					
+
 					<view class="imgArea" :class="(IdCardAfter=='')?'idCardAfter':'imageBorder'">
 						<template v-if="IdCardAfter!=''">
 							<image :src="IdCardAfter" mode="aspectFill"></image>
 						</template>
 					</view>
-					<view class="d-flex a-center j-center mt-2 font-weight main-text-color" >身份证国徽面</view>
+					<view class="d-flex a-center j-center mt-2 font-weight main-text-color">身份证国徽面</view>
 				</view>
 			</view>
 		</view>
-		
+
 	</view>
 </template>
 
 <script>
-	import {mapState} from "vuex"
+	import {
+		mapState
+	} from "vuex"
 	export default {
 		data() {
 			return {
-				IdCardBefore:"",
-				IdCardAfter:"",
+				IdCardBefore: "",
+				IdCardAfter: "",
 			}
 		},
-		computed:{
+		computed: {
 			...mapState(['userInfo']),
 		},
 		onLoad() {
-			this.$http.get('/insTaskImage/findById?imgtype=T1&taskid='+this.userInfo.sysUser.id).then(res=>{
-				if(res.data.imgList.length>0){
+			this.$http.get('/insTaskImage/findById?imgtype=T1&taskid=' + this.userInfo.sysUser.id).then(res => {
+				if (res.data.imgList.length > 0) {
 					this.IdCardBefore = res.data.imgList[0];
-				}else{
+				} else {
 					this.IdCardBefore = '';
 				}
-				
+
 			})
-			
-			this.$http.get('/insTaskImage/findById?imgtype=T2&taskid='+this.userInfo.sysUser.id).then(res=>{
-				if(res.data.imgList.length>0){
+
+			this.$http.get('/insTaskImage/findById?imgtype=T2&taskid=' + this.userInfo.sysUser.id).then(res => {
+				if (res.data.imgList.length > 0) {
 					this.IdCardAfter = res.data.imgList[0];
-				}else{
+				} else {
 					this.IdCardAfter = '';
 				}
 			})
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 		}
 	}
 </script>
 
 <style lang="scss" scoped>
-@import '@/style/mixin.scss';
-.idCardBefore{
-	background: rgba($themeColor,0.1) url('/static/image/user/identy2.png') center center no-repeat;
-	background-size: auto 70%;
-	padding: 10upx;
-	box-sizing: border-box;
-}
-.idCardAfter{
-	background: rgba($themeColor,0.1) url('/static/image/user/identy1.png') center center no-repeat;
-	background-size: auto 70%;
-	padding: 10upx;
-	box-sizing: border-box;
-}
-.imageBorder{
-	border: 2px solid #ddd;
-	box-sizing: border-box;
-	padding: 10upx;
-}
-.cardImages .imgArea{
-	// width: 100%;
-	// height: 420rpx;
-	width: 310rpx;
-	height: 260upx;
-}
-.cardImages .imgArea>image{
-	width: 100%;
-	height: 100%;
-}
-</style>
+	@import '@/style/mixin.scss';
+
+	.idCardBefore {
+		background: rgba($themeColor, 0.1) url('/static/image/user/identy2.png') center center no-repeat;
+		background-size: auto 70%;
+		padding: 10upx;
+		box-sizing: border-box;
+	}
+
+	.idCardAfter {
+		background: rgba($themeColor, 0.1) url('/static/image/user/identy1.png') center center no-repeat;
+		background-size: auto 70%;
+		padding: 10upx;
+		box-sizing: border-box;
+	}
+
+	.imageBorder {
+		border: 2px solid #ddd;
+		box-sizing: border-box;
+		padding: 10upx;
+	}
+
+	.cardImages .imgArea {
+		// width: 100%;
+		// height: 420rpx;
+		width: 310rpx;
+		height: 260upx;
+	}
+
+	.cardImages .imgArea>image {
+		width: 100%;
+		height: 100%;
+	}
+</style>

+ 6 - 0
pages/wallet/bankCard.vue

@@ -1,5 +1,6 @@
 <template>
 	<view class="">
+		<service-widget @btnClick="btn_click"></service-widget>
 		<u-tabs :list="list" :is-scroll="false" :current="current" @change="change"></u-tabs>
 		<view class="page" v-if="cardPackList1.length>0 || cardPackList2.length>0 || cardPackList3.length>0">
 			<view v-if="current==0" class="bankClass dis a-start f-c j-s" v-for="(item,index) in cardPackList1"
@@ -321,6 +322,11 @@
 			this.$http.get('/sysMenuRecord/add?type=1&menuType=3')
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			async updateSubmit() {
 				if (!this.form.bankNumber || !this.form.realUserName || !this.form.bankAccount || !this.form
 					.bankAddress) {

+ 6 - 0
pages/wallet/billDetails2.vue

@@ -1,6 +1,7 @@
 <template>
 	<view>
 		<!-- 公共组件-每个页面必须引入 -->
+		<service-widget @btnClick="btn_click"></service-widget>
 		<public-module></public-module>
 		<view class="fixed">
 			<view class="white-box">
@@ -228,6 +229,11 @@
 			this.getOrdersList(1, 20);
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			async stausSearch() {
 				switch (this.active) {
 					case 0:

+ 6 - 0
pages/wallet/billDetails3.vue

@@ -1,6 +1,7 @@
 <template>
 	<view>
 		<!-- 公共组件-每个页面必须引入 -->
+		<service-widget @btnClick="btn_click"></service-widget>
 		<public-module></public-module>
 		<view class="fixed">
 			<view class="white-box">
@@ -229,6 +230,11 @@
 			this.getOrdersList(1, 20);
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			async stausSearch() {
 				switch (this.active) {
 					case 0:

+ 6 - 0
pages/wallet/billInfo.vue

@@ -1,6 +1,7 @@
 <template>
 	<view>
 		<!-- 公共组件-每个页面必须引入 -->
+		<service-widget @btnClick="btn_click"></service-widget>
 		<public-module></public-module>
 		<view style="z-index: 99;" class="flexd">
 			<view class="search dis  a-c j-s">
@@ -177,6 +178,11 @@
 		},
 		onShow() {},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			closeImage(img) {
 				uni.previewImage({
 					urls: [img],

+ 6 - 0
pages/wallet/billInfo1.vue

@@ -1,6 +1,7 @@
 <template>
 	<view :style="getHeight">
 		<!-- 公共组件-每个页面必须引入 -->
+		<service-widget @btnClick="btn_click"></service-widget>
 		<public-module></public-module>
 		<!-- 头部 -->
 		<view class="" style="width: 100%;
@@ -1360,6 +1361,11 @@
 					}, "switchTab",
 					true);
 			},
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			underwriteconfirm() {
 				switch (this.underwriteTitle) {
 					case '订单自核成功':

+ 6 - 0
pages/wallet/bindBank.vue

@@ -1,6 +1,7 @@
 <template>
 	<view>
 		<public-module></public-module>
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="binding dis f-c a-c ">
 			<view class="title dis f-c a-c ">
 				<text>添加银行卡</text>
@@ -187,6 +188,11 @@
 			confirm(e) {
 				this.bankform.bankname = e[0].label;
 			},
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			// 验证银行卡
 			async validateBankCard() {
 				var that = this;

+ 6 - 0
pages/wallet/preReceivedDetails.vue

@@ -1,6 +1,7 @@
 <template>
 	<view class="page">
 		<public-module></public-module>
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="flexd">
 			<view class="headerFilter dis a-c j-s">
 				<view class="drop dis a-c j-s" @tap="searchPopup">
@@ -182,6 +183,11 @@
 			this.queryList();
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			startShowmethod() {
 				this.startShow = true;
 			},

+ 6 - 1
pages/wallet/transactionDetails.vue

@@ -1,6 +1,7 @@
 <template>
 	<view class="page">
 		<public-module></public-module>
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="flexd">
 			<view class="headerFilter dis a-c j-s">
 				<view class="drop dis a-c j-s" @tap="searchPopup">
@@ -234,7 +235,11 @@
 		},
 
 		methods: {
-
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			details(item) {
 				switch (item.transactionType) {
 					case '1':

+ 6 - 0
pages/wallet/wallet.vue

@@ -2,6 +2,7 @@
 	<view>
 		<!-- 公共组件-每个页面必须引入 -->
 		<public-module></public-module>
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view style="z-index: 99;">
 			<view class="search dis  a-c j-s">
 				<u-icon name="arrow-left" size="40" @tap="back"></u-icon>
@@ -68,6 +69,11 @@
 			this.$http.get('/sysMenuRecord/add?type=1&menuType=3')
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			// 预收账户金额查询
 			async getAdvanceMoney() {
 				let res = await this.$http.get('/sysUserAccount/getUserSumAmountByUserId?userId=' + this.userInfo

+ 6 - 0
pages/wallet/withdraw.vue

@@ -2,6 +2,7 @@
 	<view class="withdraw">
 		<!-- 公共组件-每个页面必须引入 -->
 		<public-module></public-module>
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="withdraw-head dis f-c" @click="bankCardOption">
 			<text class="withdraw-head-to mb-2">到账银行卡</text>
 			<view class="dis a-start j-s">
@@ -210,6 +211,11 @@
 			this.getbankCard();
 		},
 		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
 			arrinput(val) {
 				console.log(val);
 			},

+ 353 - 302
pages/wallet/withdraw1.vue

@@ -2,9 +2,11 @@
 	<view class="withdraw">
 		<!-- 公共组件-每个页面必须引入 -->
 		<public-module></public-module>
+		<service-widget @btnClick="btn_click"></service-widget>
 		<view class="withdraw-head d-flex a-center">
 			<view class="withdraw-head-to">到账渠道</view>
-			<view class="withdraw-head-way" style="color:#576B95">{{userInfo.esmUserInternal.bankname}} ({{userInfo.esmUserInternal.accountno.substring(userInfo.esmUserInternal.accountno.length - 4)}})</view>
+			<view class="withdraw-head-way" style="color:#576B95">{{userInfo.esmUserInternal.bankname}}
+				({{userInfo.esmUserInternal.accountno.substring(userInfo.esmUserInternal.accountno.length - 4)}})</view>
 		</view>
 		<view style="color: #ACACAC;background-color: #F7F7F7;padding: 5upx 60upx;">注:仅支持整数,72小时内到账</view>
 		<view class="withdraw-body">
@@ -25,22 +27,25 @@
 					<text class="info-money-all" @click="getAll">全部提现</text>
 				</view>
 			</view>
-			<view :class="'tx' + (is_post ? '-active' : '')"><button  type="default" @click="handleShowModel">提现</button></view>
+			<view :class="'tx' + (is_post ? '-active' : '')"><button type="default" @click="handleShowModel">提现</button>
+			</view>
 		</view>
 
-			<view :class="['keyboard', keyboradShow ? '' : 'active', isIphoneX ? 'isIphone' : '']">
+		<view :class="['keyboard', keyboradShow ? '' : 'active', isIphoneX ? 'isIphone' : '']">
 			<block v-for="(item, index) in 9" :key="index">
 				<view class="keyboard-item" @tap="keyboradKey(index + 1)">{{ index + 1 }}</view>
 			</block>
 			<view class="keyboard-item hide"></view>
 			<view class="keyboard-item" @tap="keyboradKey(0)"><text>0</text></view>
-			<view class="keyboard-item delte" @tap="keyboradDel()"><image class="img" src="/static/common/del.png" mode="aspectFill" :lazy-load="true"></image></view>
+			<view class="keyboard-item delte" @tap="keyboradDel()">
+				<image class="img" src="/static/common/del.png" mode="aspectFill" :lazy-load="true"></image>
+			</view>
 		</view>
-		
-		<wyb-popup ref="withdrawPopup" type="center" height="480" width="680" radius="6" :maskClickClose="false" >
-		    <view class="popup-content">
-		        <view class="withdrawHeader d-flex a-center j-center">提现确认</view>
-		        <view class="withdrawBody">
+
+		<wyb-popup ref="withdrawPopup" type="center" height="480" width="680" radius="6" :maskClickClose="false">
+			<view class="popup-content">
+				<view class="withdrawHeader d-flex a-center j-center">提现确认</view>
+				<view class="withdrawBody">
 					<view>
 						<text>提现金额:</text>
 						<text class="text-red">{{ money }}元</text>
@@ -58,313 +63,359 @@
 						<text class="text-red">{{ fee }}%</text>
 					</view>
 				</view>
-		        <view class="withdrawFooter d-flex a-center j-end"><view class="d-flex a-center j-center" @tap="closeWithdrawPopup">我再想想</view><view class="d-flex a-center j-center" @tap="getMoney">确认提现</view></view>
-		    </view>
+				<view class="withdrawFooter d-flex a-center j-end">
+					<view class="d-flex a-center j-center" @tap="closeWithdrawPopup">我再想想</view>
+					<view class="d-flex a-center j-center" @tap="getMoney">确认提现</view>
+				</view>
+			</view>
 		</wyb-popup>
-		
-	
+
+
 	</view>
 </template>
 
 <script>
-import {mapState} from "vuex"
-import wybPopup from '@/components/common/wyb-popup/wyb-popup.vue'
-export default {
-	components: {
-		wybPopup
-	},
-	computed:{
-		...mapState(['userInfo'])
-	},
-	data() {
-		return {
-			lowest: 0,		//最低提现金额
-			fee: 0,			//提现费率
-			pool: 0,		//可提现余额
-			
-			extract: '',	//选择的提现金额
-			service_fee: 0.0,//提现服务费
-			showModal: false,
-			is_out: false,
-			is_lowest: false,
-			is_post: false,
-			money: '',		//提现金额
-			real_money: '',	//实际到账
-			keyboradShow: false,
-			isIphoneX: false,
-			isRefuse: false
-		};
-	},
-	watch: {
-		extract(oldVal, newVal) {}
-	},
-	async onLoad() {
-		await this.getPayAccount();//获取可提现余额
-		this.loadData();
-	},
-	methods: { 
-		// 可提现余额查询
-		async getPayAccount() {
-			let res = await this.$http.get('/insPayApply/extendAccount?userid=' + this.userInfo.sysUser.id);
-			this.pool = res.data.accountBalance;
-		},
-		
-		showWithdrawPopup(){
-			this.$refs.withdrawPopup.show() // 显示
+	import {
+		mapState
+	} from "vuex"
+	import wybPopup from '@/components/common/wyb-popup/wyb-popup.vue'
+	export default {
+		components: {
+			wybPopup
 		},
-		closeWithdrawPopup(){
-			this.$refs.withdrawPopup.hide() // 显示
+		computed: {
+			...mapState(['userInfo'])
 		},
-		loadData() {
-			this.lowest = 10;
-			this.fee = "0";
-			// this.pool = "136.5";
-			this.$nextTick(() => {
-				this.keyboradShow = true;
-			});
+		data() {
+			return {
+				lowest: 0, //最低提现金额
+				fee: 0, //提现费率
+				pool: 0, //可提现余额
+
+				extract: '', //选择的提现金额
+				service_fee: 0.0, //提现服务费
+				showModal: false,
+				is_out: false,
+				is_lowest: false,
+				is_post: false,
+				money: '', //提现金额
+				real_money: '', //实际到账
+				keyboradShow: false,
+				isIphoneX: false,
+				isRefuse: false
+			};
 		},
-		stopKeyborad() {
-			uni.hideKeyboard();
+		watch: {
+			extract(oldVal, newVal) {}
 		},
-		keyboradKey(key) {
-			this.extract = this.extract * 10 + key;
-			this.checkMoney();
+		async onLoad() {
+			await this.getPayAccount(); //获取可提现余额
+			this.loadData();
 		},
-		keyboradDel() {
-			if (this.extract && this.extract > 0) {
-				let val = parseInt(this.extract / 10);
-				if (val == 0) val = '';
-				this.extract = val;
+		methods: {
+			btn_click() {
+				uni.navigateTo({
+					url: '/pages/chat/chat'
+				})
+			},
+			// 可提现余额查询
+			async getPayAccount() {
+				let res = await this.$http.get('/insPayApply/extendAccount?userid=' + this.userInfo.sysUser.id);
+				this.pool = res.data.accountBalance;
+			},
+
+			showWithdrawPopup() {
+				this.$refs.withdrawPopup.show() // 显示
+			},
+			closeWithdrawPopup() {
+				this.$refs.withdrawPopup.hide() // 显示
+			},
+			loadData() {
+				this.lowest = 10;
+				this.fee = "0";
+				// this.pool = "136.5";
+				this.$nextTick(() => {
+					this.keyboradShow = true;
+				});
+			},
+			stopKeyborad() {
+				uni.hideKeyboard();
+			},
+			keyboradKey(key) {
+				this.extract = this.extract * 10 + key;
 				this.checkMoney();
+			},
+			keyboradDel() {
+				if (this.extract && this.extract > 0) {
+					let val = parseInt(this.extract / 10);
+					if (val == 0) val = '';
+					this.extract = val;
+					this.checkMoney();
+				}
+			},
+			getAll() {
+				this.extract = parseInt(this.pool);
+				this.checkMoney();
+			},
+			checkMoney() {
+				if (!this.extract || this.extract < this.lowest) {
+					this.is_lowest = true;
+					this.is_post = false;
+				} else if (this.extract > this.pool) {
+					this.is_out = true;
+					this.is_lowest = false;
+					this.is_post = false;
+				} else {
+					this.is_out = false;
+					this.is_lowest = false;
+					this.is_post = true;
+				}
+				if (parseFloat(this.extract).toString() == 'NaN') {
+					this.is_post = false;
+					uni.showToast({
+						title: '输入金额不合法',
+						icon: "none"
+					});
+				}
+			},
+			handleShowModel() {
+				if (this.isRefuse) return;
+				this.checkMoney();
+				if (!this.is_post) return;
+				this.money = this.extract;
+				this.service_fee = Number((this.extract * (this.fee / 100)).toString().match(/^\d+(?:\.\d{0,2})?/));
+				this.real_money = Number((this.extract - this.service_fee).toString().match(/^\d+(?:\.\d{0,2})?/));
+				this.showWithdrawPopup();
+			},
+			async getMoney() {
+				this.closeWithdrawPopup();
+				if (this.isRefuse) return;
+				this.isRefuse = true;
+				let res = await this.$http.post('/insPayApply/extendApply?amount=' + this.real_money + '&userid=' +
+					this.userInfo.sysUser.id);
+				uni.showToast({
+					title: '提现申请已提交,等待管理员处理',
+					icon: "none",
+					duration: 2000
+				});
+				setTimeout(() => {
+					uni.navigateBack();
+				}, 2000);
 			}
 		},
-		getAll() {
-			this.extract = parseInt(this.pool);
-			this.checkMoney();
-		},
-		checkMoney() {
-			if (!this.extract || this.extract < this.lowest) {
-				this.is_lowest = true;
-				this.is_post = false;
-			} else if (this.extract > this.pool) {
-				this.is_out = true;
-				this.is_lowest = false;
-				this.is_post = false;
-			} else {
-				this.is_out = false;
-				this.is_lowest = false;
-				this.is_post = true;
-			}
-			if (parseFloat(this.extract).toString() == 'NaN') {
-				this.is_post = false;
-				uni.showToast({ title: '输入金额不合法', icon:"none" });
-			}
-		},
-		handleShowModel() {
-			if (this.isRefuse) return;
-			this.checkMoney();
-			if (!this.is_post) return;
-			this.money = this.extract;
-			this.service_fee = Number((this.extract * (this.fee / 100)).toString().match(/^\d+(?:\.\d{0,2})?/));
-			this.real_money = Number((this.extract - this.service_fee).toString().match(/^\d+(?:\.\d{0,2})?/));
-			this.showWithdrawPopup();
-		},
-		async getMoney() {
-			this.closeWithdrawPopup();
-			if (this.isRefuse) return;
-			this.isRefuse = true;
-			let res = await this.$http.post('/insPayApply/extendApply?amount='+ this.real_money +'&userid=' + this.userInfo.sysUser.id);
-			uni.showToast({ title: '提现申请已提交,等待管理员处理', icon:"none",duration:2000 });
-			setTimeout(() => {
-				uni.navigateBack();
-			}, 2000);
+		async onPullDownRefresh() {
+			this.extract = '';
+			await this.getPayAccount();
+			this.loadData();
+			this.is_out = false;
+			this.is_lowest = false;
+			this.is_post = false;
+			setTimeout(function() {
+				uni.stopPullDownRefresh();
+			}, 500);
 		}
-	},
-	async onPullDownRefresh() {
-		this.extract = '';
-		await this.getPayAccount();
-		this.loadData();
-		this.is_out = false;
-		this.is_lowest = false;
-		this.is_post = false;
-		setTimeout(function() {
-			uni.stopPullDownRefresh();
-		}, 500);
-	}
-};
+	};
 </script>
 
 <style scoped>
-page {
-	background-color: #ededed;
-}
-
-.withdraw{
-	padding: 20px;
-	background-color: #ededed;
-	position:absolute;
-	width: 100%;
-	height: 100%;
-	box-sizing: border-box;
-}
-.withdraw-head{
-	background-color: #f7f7f7;
-	display: flex;
-	align-content: center;
-	padding: 10px 30px;
-	font-size: 14px;
-}
-.withdraw-head-way{
-	display: flex;
-	flex-direction: column;
-	align-content: center;
-	margin-left: 20px;
-}
-.withdraw-head-way-1{
-	color: #576b95;
-	margin-bottom: 10px;
-}
-.withdraw-head-way-1 .way-icon{
-	width: 16px;
-	height: 16px;
-	margin-right: 5px;
-	top: 2px;
-}
-.withdraw-head-way-2{
-	color: #acacac;
-	font-size: 12px;
-}
-
-.withdraw-body{
-	background-color: #fff;
-	padding: 20px 30px;
-	font-size: 28upx;
-}
-.withdraw-body .input-money{
-	display: flex;
-	align-content: center;
-	font-weight: 600;
-	border-bottom: 0.5px solid #eaeef1;
-}
-.withdraw-body .input-money .rmb{
-	font-size: 2em;
-	top: 10px;
-	position: relative;
-}
-.withdraw-body .input-money .t-input{
-	height: 1.9em;
-	font-size: 2.5em;
-	border: none;
-	position: relative;
-	left: 3.5%;
-	outline: none;
-}
-.withdraw-body .info-money{
-	margin-top: 10px;
-	font-size: 12px;
-	margin-bottom: 20px;
-}
-.withdraw-body .info-money-num{
-	color: #b2b2b2;
-}
-.withdraw-body .info-money-all{
-	color: #576b95;
-}
-.withdraw-body .tx button{
-	color: #b2b2b2;
-	font-size: 30upx;
-}
-.withdraw-body .tx-active button{
-	font-size: 30upx;
-	color: #fff;
-	background: #1E85FE;
-}
-.withdraw .keyboard{
-	position: fixed;
-	bottom: 0;
-	left: 0;
-	width: 100%;
-	background: #ebebeb;
-	display: flex;
-	justify-content: center;
-	z-index: 2;
-	flex-wrap: wrap;
-	transition: all 0.2s ease-in 0.2s;
-}
-.withdraw .active {
-	bottom: -400rpx;
-}
-.withdraw .keyboard-item {
-	box-sizing: border-box;
-	width: 250rpx;
-	display: flex;
-	flex-direction: column;
-	justify-content: center;
-	align-items: center;
-	background: #fff;
-	font-size: 40rpx;
-	color: #333;
-	height: 99rpx;
-	border: 1rpx solid #ebebeb;
-	border-top: none;
-	border-left: none;
-}
-
-.withdraw .hide {
-	opacity: 0;
-}
-.withdraw .delte {
-	background: none;
-	box-shadow: none;
-}
-.withdraw .delte image {
-	width: 60rpx;
-	height: 60rpx;
-}
-.withdraw .isIphone {
-	padding-bottom: 68rpx !important;
-}
-.withdraw .fee em {
-	font-size: 0.5rem;
-	font-style: normal;
-}
-
-.popup-content .withdrawHeader{
-	height: 100upx;
-	background-color: #fff;
-	color: #666666;
-	font-size: 32upx;
-	border-radius: 10upx;
-}
-.popup-content .withdrawBody{
-	height: 220upx;
-	padding: 25upx;
-	background-color: #F8F8F8;
-}
-.popup-content .withdrawBody view>text:nth-of-type(1){
-	font-size: 26upx;
-}
-.popup-content .withdrawBody view.margin-top-sm {
-	margin-top: 10upx;
-}
-.popup-content .withdrawBody .text-red{
-	color: #E54D42;
-}
-.popup-content .withdrawFooter{
-	height: 120upx;
-}
-.popup-content .withdrawFooter view{
-	width: 120upx;
-	height: 70upx;
-	margin: 0upx 30upx;
-	border-radius: 10upx;
-	padding: 0upx 15upx;
-}
-.popup-content .withdrawFooter view:nth-of-type(1){
-	background-color: #f0f0f0;
-}
-.popup-content .withdrawFooter view:nth-of-type(2){
-	background-color: #1E85FE;
-	color: #FFFFFF;
-}
-</style>
+	page {
+		background-color: #ededed;
+	}
+
+	.withdraw {
+		padding: 20px;
+		background-color: #ededed;
+		position: absolute;
+		width: 100%;
+		height: 100%;
+		box-sizing: border-box;
+	}
+
+	.withdraw-head {
+		background-color: #f7f7f7;
+		display: flex;
+		align-content: center;
+		padding: 10px 30px;
+		font-size: 14px;
+	}
+
+	.withdraw-head-way {
+		display: flex;
+		flex-direction: column;
+		align-content: center;
+		margin-left: 20px;
+	}
+
+	.withdraw-head-way-1 {
+		color: #576b95;
+		margin-bottom: 10px;
+	}
+
+	.withdraw-head-way-1 .way-icon {
+		width: 16px;
+		height: 16px;
+		margin-right: 5px;
+		top: 2px;
+	}
+
+	.withdraw-head-way-2 {
+		color: #acacac;
+		font-size: 12px;
+	}
+
+	.withdraw-body {
+		background-color: #fff;
+		padding: 20px 30px;
+		font-size: 28upx;
+	}
+
+	.withdraw-body .input-money {
+		display: flex;
+		align-content: center;
+		font-weight: 600;
+		border-bottom: 0.5px solid #eaeef1;
+	}
+
+	.withdraw-body .input-money .rmb {
+		font-size: 2em;
+		top: 10px;
+		position: relative;
+	}
+
+	.withdraw-body .input-money .t-input {
+		height: 1.9em;
+		font-size: 2.5em;
+		border: none;
+		position: relative;
+		left: 3.5%;
+		outline: none;
+	}
+
+	.withdraw-body .info-money {
+		margin-top: 10px;
+		font-size: 12px;
+		margin-bottom: 20px;
+	}
+
+	.withdraw-body .info-money-num {
+		color: #b2b2b2;
+	}
+
+	.withdraw-body .info-money-all {
+		color: #576b95;
+	}
+
+	.withdraw-body .tx button {
+		color: #b2b2b2;
+		font-size: 30upx;
+	}
+
+	.withdraw-body .tx-active button {
+		font-size: 30upx;
+		color: #fff;
+		background: #1E85FE;
+	}
+
+	.withdraw .keyboard {
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		width: 100%;
+		background: #ebebeb;
+		display: flex;
+		justify-content: center;
+		z-index: 2;
+		flex-wrap: wrap;
+		transition: all 0.2s ease-in 0.2s;
+	}
+
+	.withdraw .active {
+		bottom: -400rpx;
+	}
+
+	.withdraw .keyboard-item {
+		box-sizing: border-box;
+		width: 250rpx;
+		display: flex;
+		flex-direction: column;
+		justify-content: center;
+		align-items: center;
+		background: #fff;
+		font-size: 40rpx;
+		color: #333;
+		height: 99rpx;
+		border: 1rpx solid #ebebeb;
+		border-top: none;
+		border-left: none;
+	}
+
+	.withdraw .hide {
+		opacity: 0;
+	}
+
+	.withdraw .delte {
+		background: none;
+		box-shadow: none;
+	}
+
+	.withdraw .delte image {
+		width: 60rpx;
+		height: 60rpx;
+	}
+
+	.withdraw .isIphone {
+		padding-bottom: 68rpx !important;
+	}
+
+	.withdraw .fee em {
+		font-size: 0.5rem;
+		font-style: normal;
+	}
+
+	.popup-content .withdrawHeader {
+		height: 100upx;
+		background-color: #fff;
+		color: #666666;
+		font-size: 32upx;
+		border-radius: 10upx;
+	}
+
+	.popup-content .withdrawBody {
+		height: 220upx;
+		padding: 25upx;
+		background-color: #F8F8F8;
+	}
+
+	.popup-content .withdrawBody view>text:nth-of-type(1) {
+		font-size: 26upx;
+	}
+
+	.popup-content .withdrawBody view.margin-top-sm {
+		margin-top: 10upx;
+	}
+
+	.popup-content .withdrawBody .text-red {
+		color: #E54D42;
+	}
+
+	.popup-content .withdrawFooter {
+		height: 120upx;
+	}
+
+	.popup-content .withdrawFooter view {
+		width: 120upx;
+		height: 70upx;
+		margin: 0upx 30upx;
+		border-radius: 10upx;
+		padding: 0upx 15upx;
+	}
+
+	.popup-content .withdrawFooter view:nth-of-type(1) {
+		background-color: #f0f0f0;
+	}
+
+	.popup-content .withdrawFooter view:nth-of-type(2) {
+		background-color: #1E85FE;
+		color: #FFFFFF;
+	}
+</style>

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác