Browse Source

Merge branch 'gyq_test' into lw_test

liuwei 2 days ago
parent
commit
8c691389aa
44 changed files with 619 additions and 442 deletions
  1. 1 1
      .hbuilderx/launch.json
  2. 12 13
      common/common.js
  3. 1 1
      component/allPrice/allPrice.vue
  4. 13 13
      component/carPlan/carPlan.vue
  5. 2 2
      component/comPopup/Notice.vue
  6. 2 2
      component/customSwitch.vue
  7. 3 3
      component/payTypeModel/payTypeModel.vue
  8. 4 4
      component/returnCar/returnCar.vue
  9. 34 34
      component/scanBtn/scanBtn.vue
  10. 12 10
      component/scanCabBtn/scanBtn.vue
  11. 16 7
      component/useGuidance/useGuidance.vue
  12. 139 139
      components/navBar/navigation.vue
  13. 39 26
      locale/en.json
  14. 14 1
      locale/zh.json
  15. 3 3
      output3.json
  16. 1 7
      pages.json
  17. 5 4
      pages/activation/activation.vue
  18. 4 0
      pages/addUser/addUser.vue
  19. 4 4
      pages/battery/battery.vue
  20. 1 1
      pages/batteryPackage/batteryPackage.css
  21. 6 4
      pages/batteryPackage/batteryPackage.vue
  22. 1 1
      pages/carDetail/carDetail.css
  23. 135 76
      pages/carDetail/carDetail.vue
  24. 7 2
      pages/index/components/mapCard/mapCard.vue
  25. 1 1
      pages/index/components/unleasedPages/unleasedPages.vue
  26. 51 34
      pages/index/index.vue
  27. 1 1
      pages/loginRegister/changePassword.vue
  28. 10 5
      pages/loginRegister/login.vue
  29. 8 3
      pages/loginRegister/register.vue
  30. 2 3
      pages/message/index.vue
  31. 1 1
      pages/my/my.scss
  32. 2 3
      pages/my/my.vue
  33. 26 2
      pages/my/set.vue
  34. 27 6
      pages/orderStatus/orderStatus.vue
  35. 3 3
      pages/package/package.css
  36. 4 3
      pages/package/package.vue
  37. 5 1
      pages/powerSetting/powerSetting.vue
  38. 4 4
      pages/purchaseOrder/purchaseOrder.vue
  39. 3 3
      pages/service/components/carRentalList/carRentalList.vue
  40. 2 2
      pages/service/components/leaseType/leaseType.vue
  41. 0 1
      pages/service/service.vue
  42. 7 3
      pages/userManagement/userManagement.vue
  43. 1 1
      utils/gyq_utils.js
  44. 2 4
      utils/util.js

+ 1 - 1
.hbuilderx/launch.json

@@ -20,7 +20,7 @@
         },
         {
             "openVueDevtools" : false,
-            "playground" : "standard",
+            "playground" : "custom",
             "type" : "uni-app:app-android"
         },
         {

+ 12 - 13
common/common.js

@@ -150,7 +150,7 @@ function alert(title, content, successCallBack) {
 
 function loading() {
 	uni.showLoading({
-		title: '正在加载数据 ...',
+		title: i18n.t('正在加载数据')+'...',
 		mask: true
 	});
 }
@@ -160,7 +160,7 @@ function loading() {
 
 function successToast(title, duration) {
 	uni.showToast({
-		title: title || '成功',
+		title: title || i18n.t('成功'),
 		icon: 'success',
 		duration: duration || 1500,
 		mask: true
@@ -172,7 +172,7 @@ function successToast(title, duration) {
 
 function simpleToast(title, duration) {
 	uni.showToast({
-		title: title || '成功',
+		title: title || i18n.t('成功'),
 		icon: 'none',
 		duration: duration || 1500
 	});
@@ -215,8 +215,8 @@ function uploadImg(callback) {
 						callback(rtDataObj.data[0].url);
 					} else {
 						uni.showModal({
-							title: '错误',
-							content: '上传图片错误[' + rtDataObj.message + ']'
+							title: i18n.t('错误'),
+							content: i18n.t('上传图片错误')+'[' + rtDataObj.message + ']'
 						});
 					}
 				}
@@ -256,7 +256,7 @@ function upLoadImgQiNiu(callback, type = ['album', 'camera']) {
 							callback(config.QINIU_SITE + key);
 						},
 						fail: function(res) {
-							simpleToast('上传失败');
+							simpleToast(i18n.t('上传失败'));
 							uni.hideLoading();
 						}
 					});
@@ -307,7 +307,7 @@ function upLoadImgQiNiu2(callback, filePath) {
 					callback(config.QINIU_SITE + key);
 				},
 				fail: function(res) {
-					simpleToast('上传失败');
+					simpleToast(i18n.t('上传失败'));
 					uni.hideLoading();
 				}
 			});
@@ -845,7 +845,7 @@ async function callPhone(phone) {
 	// const text=that.$t()+phone+'?'
 	let res = await uni.showModal({
 		content: text,
-		confirmText: '确定',
+		confirmText: i18n.t('确定'),
 	})
 	if (res[1].confirm) {
 		uni.makePhoneCall({
@@ -873,14 +873,13 @@ function formatTimeDifference(timestamp) {
 	const totalHours = diff / (1000 * 60 * 60)
 	let days = 0;
 	let hours;
-	
 	if (totalHours >= 24) {
 		days = Math.floor(totalHours / 24); // 计算完整天数
 		hours = Math.round(totalHours % 24); // 剩余小时四舍五入
 		
 		const result = [];
-		if (days > 0) result.push(`${days}`);
-		if (hours > 0 || result.length === 0) result.push(`${hours}小时`);
+		if (days > 0) result.push(`${days + i18n.t('天')}`);
+		if (hours > 0 || result.length === 0) result.push(`${hours + i18n.t('小时')}`);
 		return result.join("");
 		
 	} else {
@@ -897,9 +896,9 @@ function formatTimeDifference(timestamp) {
 		}
 		days = 0;
 		if (hours) {
-			return `${hours}小时 ${minutes}分钟`;
+			return `${hours + i18n.t('小时')} ${minutes + i18n.t('分钟')}`;
 		}else {
-			return `${minutes}分钟`;
+			return `${minutes + i18n.t('分钟')}`;
 		}
 		
 	}

+ 1 - 1
component/allPrice/allPrice.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="container flex-row">
-		<view>¥</view>
+		<view>{{$()}}</view>
 		<view class="integer-part">{{integerPart}}</view>
 		<view style="font-size: 32rpx;">{{decimalPart}}</view>
 	</view>

+ 13 - 13
component/carPlan/carPlan.vue

@@ -7,16 +7,16 @@
 					</view>
 				<view class="car-model-detail flex-row">
 					<!-- <priceTool :price="58" :font_size="40"/> -->
-					<allPrice :amount="((priceAll || 0)/100)"/>
+					<allPrice :amount="((price || 0)/100)"/>
 					<view v-if="params.overdueData && params.overdueData.money" style="align-items: baseline;" class="flex-row">
 						<text>逾期金额:</text>
 						<allPrice  :amount="(params.overdueData.money || 0/100)"/>
 					</view>
 					
 					<view v-if="type!=100" class="car-model-price-view">
-						<text>已选择</text>
+						<text>{{ $t('已选择') }}</text>
 						<text>{{leaseUnitsResult}}</text>
-						<text style="margin-left: 12rpx;">时长 {{count}} 
+						<text style="margin-left: 12rpx;">{{ $t('时长') }} {{count}} 
 							<text>{{leaseUnits}}</text>
 						</text>
 						<!-- <text>共计{{tools.countToDay(count,type)}}天</text> -->
@@ -29,19 +29,19 @@
 				</view>
 			</view>
 			<view class="car-plan-view">
-				<view class="car-plan-title">用车方案</view>
+				<view class="car-plan-title">{{ $t('用车方案') }}</view>
 				<view class="car-plan-list-view flex-row">
 					<view v-for="(item,index) in params.rental_setting" :key="index" @click="tapSelectType(item)" :class="['flex-row' , (type == item.hire_duration_unit ? 'car-plan-list-i' : 'car-plan-list')] " 
 					>
 					
 						<view :class="(type == item.hire_duration_unit ? 'car-plan-unit-i' : 'car-plan-unit') ">
-							<text v-if="item.hire_duration_unit==1">日租</text>
-							<text v-if="item.hire_duration_unit==2">月租</text>
-							<text v-if="item.hire_duration_unit==3">年租</text>
-							<text v-if="item.hire_duration_unit==4">时租</text>
-							<text v-if="item.hire_duration_unit==5">分租</text>
-							<text v-if="item.hire_duration_unit==6">周租</text>
-							<text v-if="item.hire_duration_unit==7">季租</text>
+							<text v-if="item.hire_duration_unit==1">{{ $t('日租') }}</text>
+							<text v-if="item.hire_duration_unit==2">{{ $t('月租') }}</text>
+							<text v-if="item.hire_duration_unit==3">{{ $t('年租') }}</text>
+							<text v-if="item.hire_duration_unit==4">{{ $t('时租') }}</text>
+							<text v-if="item.hire_duration_unit==5">{{ $t('分租') }}</text>
+							<text v-if="item.hire_duration_unit==6">{{ $t('周租') }}</text>
+							<text v-if="item.hire_duration_unit==7">{{ $t('季租') }}</text>
 						</view>
 						<view :class="(type == item.hire_duration_unit ? 'car-plan-price-i' : 'car-plan-price') ">$<text style="font-size: 48rpx;margin-left: 6rpx;">{{item.hire_price/100}}</text></view>
 					</view>
@@ -64,7 +64,7 @@
 					<view class="flex-row free-num-tip">自费换电:$1/次</view>
 				</view> -->
 				<view v-if="type!=100" class="plan-time flex-row flex-between">
-					<view>租车时长</view>
+					<view>{{ $t('租车时长') }}</view>
 					<view class="quantity-count flex-row flex-between">
 						<view class="total-time flex-row">
@@ -92,7 +92,7 @@
 				</view> -->
 			</view>
 			<view class="lift-btn-view">
-				<view @tap="checkOrder" class="lift-btn">确认</view>
+				<view @tap="checkOrder" class="lift-btn">{{ $t('确认') }}</view>
 			</view>
 		</view>
 		

+ 2 - 2
component/comPopup/Notice.vue

@@ -5,8 +5,8 @@
             <view class="title">{{ title }}</view>
             <view class="tips">
                 <text v-if="type=='bluetoothPail'">{{text}}</text>
-                <text v-else-if="type=='register'">我们已向 <span style="color: #0A59F7;">{{email}}</span> 发送注册邮件,请您登录邮箱点击链接完成注册。</text>
-                <text v-else-if="type=='forgetPassword'">我们已向 <span style="color: #0A59F7;">{{email}}</span> 发送了一封密码重置邮件,请您登录邮箱操作处理。</text>
+                <text v-else-if="type=='register'">{{$t('我们已向')}} <span style="color: #0A59F7;">{{email}}</span> {{$t('发送注册邮件,请您登录邮箱点击链接完成注册。')}}</text>
+                <text v-else-if="type=='forgetPassword'">{{$t('我们已向')}} <span style="color: #0A59F7;">{{email}}</span> {{$t('发送了一封密码重置邮件,请您登录邮箱操作处理。')}}</text>
             </view>
             <view class="btn" @tap="close">{{ btnText }}</view>
         </view>

+ 2 - 2
component/customSwitch.vue

@@ -78,11 +78,9 @@
 			},
 			handleClick() {
 				if (this.isSwiping) return;
-				this.isShowSwitchText = false;
 				this.triggerRequest();
 			},
 			onTouchStart(e) {
-				this.isShowSwitchText = false;
 				this.isSwiping = false;
 				this.startX = e.touches[0].clientX;
 			},
@@ -90,6 +88,7 @@
 				let moveX = e.touches[0].clientX - this.startX;
 				if (Math.abs(moveX) > 10) {
 					this.isSwiping = true;
+					this.isShowSwitchText = false;
 				}
 			},
 			onTouchEnd() {
@@ -136,6 +135,7 @@
 		justify-content: center;
 		align-items: center;
 		position: absolute;
+		z-index: 9;
 		/* top: 6rpx; */
 		left: 6rpx;
 	}

+ 3 - 3
component/payTypeModel/payTypeModel.vue

@@ -7,14 +7,14 @@
 					<img class="close-icon" src="https://qiniu.bms16.com/FtoTEHOJiUf_gjPCJGGHMsAtHI5M" alt="">
 				</view>
 				<view class="pay-moneu-view">
-					<view class="pay-money-text">付款金额/¥</view>
+					<view class="pay-money-text">{{$t('付款金额')}}/¥</view>
 					<view class="pay-money"><allPrice :amount="(free_price/100)"/></view>
 				</view>
 			</view>
 			<view class="pay-type-view">
 				<view @tap="changePayType" :data-type="1" class="pay-view flex-row">
 					<img class="pay-icon" src="https://qiniu.bms16.com/FjtmRXUBGOrPGYOD6wcNhc0Z39IW" alt="">
-					<view class="pay-view-text">线下支付</view>
+					<view class="pay-view-text">{{$t('线下支付')}}</view>
 					<img class="wx-pay-icon"
 						:src="payType==1?'https://qiniu.bms16.com/FhWimtmWybKlYMB6mgIReVWArbfq':'https://qiniu.bms16.com/FkmDjxBNZhFGFU5inza2usdtDlX8'"
 						alt="">
@@ -42,7 +42,7 @@
 				</view> -->
 			</view>
 			<view class="over-btn-view">
-				<view class="over-btn flex-row" @tap="toPayOrFreeExchange">立即支付</view>
+				<view class="over-btn flex-row" @tap="toPayOrFreeExchange">{{$t('立即支付')}}</view>
 			</view>
 		</view>
 	</view>

+ 4 - 4
component/returnCar/returnCar.vue

@@ -2,13 +2,13 @@
     	<view v-if="isShowReturnCar" class="return-box">
 			<view class="return-item">
 				<view class="return-title flex-row flex-between">
-					<view>还车到门店</view>
+					<view>{{ $t('还车到门店') }}</view>
 					<view @tap="closeShowReturnCar" class="close-view"><img style="width: 24rpx;height: 24rpx;" src="https://qiniu.bms16.com/FoWVlo-Nmx6wTDpsL2Rf9_BamU7L" alt=""></view>
 				</view>
-				<view class="return-text">系统会根据您的定位判断您是否已到还车位置,如您已经到达门店,请点击「我已到店」按钮,待门店确认还车后,即可还车成功。</view>
+				<view class="return-text">{{ $t('系统会根据您的定位判断您是否已到还车位置,如您已经到达门店,请点击「我已到店」按钮,待门店确认还车后,即可还车成功。') }}</view>
 				<view class="return-btn flex-row">
-					<view @tap="navStore">导航到店</view>
-					<view @tap="immediatelyReturn">我已到店</view>
+					<view @tap="navStore">{{ $t('导航到店') }}</view>
+					<view @tap="immediatelyReturn">{{ $t('我已到店') }}</view>
 				</view>
 				<view v-if="typePage=='index'" style="height: 110rpx;"></view>
 			</view>

+ 34 - 34
component/scanBtn/scanBtn.vue

@@ -3,14 +3,14 @@
 		<view class="cabinet-bottom">
 			<view @tap="navToGuild" class="guide-view flex-row">
 				<img class="battery-img" src="https://qiniu.bms16.com/FkJlBRAxbGzR85wOO8WB_bAUTp-i" alt="">
-				<view class="guide-text">电池换电指南</view>
+				<view class="guide-text">{{$t('电池换电指南')}}</view>
 				<img class="arrow-img" src="https://qiniu.bms16.com/FtC9Hb8y1QEOidsI2UySz85iUQHy" alt="">
 			</view>
 			<view class="scan-btn-view">
 				<view v-if="num>0" class="free-num-view">
-					免费换电<text class="free-num"> {{num}} </text>次
+					{{$t('免费换电')}}<text class="free-num"> {{num}} </text>次
 				</view>
-				<view @tap="sacnBtn" class="scan-btn"><text>扫码换电</text></view>
+				<view @tap="sacnBtn" class="scan-btn"><text>{{$t('扫码换电')}}</text></view>
 			</view>
 		</view>
 		
@@ -22,7 +22,7 @@
 						<img class="close-icon" src="https://qiniu.bms16.com/FtoTEHOJiUf_gjPCJGGHMsAtHI5M" alt="">
 					</view>
 					<view class="pay-moneu-view">
-						<view class="pay-money-text">付款金额/¥</view>
+						<view class="pay-money-text">{{$t('付款金额')}}/¥</view>
 						<view class="pay-money">{{free_price}}</view>
 					</view>
 				</view>
@@ -31,20 +31,20 @@
 						<view class="fee-rules-title flex-row">
 							<img class="fee-rules-icon" src="https://qiniu.bms16.com/FjJ70vT8ydLEGfeABSFYWFe-zosV"
 								alt="">
-							<text style="margin-left:16rpx;">换电收费规则</text>
+							<text style="margin-left:16rpx;">{{$t('换电收费规则')}}</text>
 						</view>
 						<view class="fee-rules-money-view">
 							<text class="fee-rules-money">¥{{free_price}}</text>
 							<text>/1次</text>
 						</view>
 					</view>
-					<view class="open-result-tip">您的免费换电次数已用完,后续换电需要支付</view>
+					<view class="open-result-tip">{{$t('您的免费换电次数已用完,后续换电需要支付')}}</view>
 				</view>
 				<view class="pay-type-view">
 					<!-- #ifdef MP-WEIXIN  -->
 					<view class="pay-view flex-row">
 						<img class="pay-icon" src="https://qiniu.bms16.com/FkmtlfJrmGfAh9n1138KC1WloQkZ" alt="">
-						<view class="pay-view-text">微信支付</view>
+						<view class="pay-view-text">{{$t('微信支付')}}</view>
 						<img @tap="changePayType" :data-type="0" class="wx-pay-icon"
 							:src="payType==0?'https://qiniu.bms16.com/FhWimtmWybKlYMB6mgIReVWArbfq':'https://qiniu.bms16.com/FkmDjxBNZhFGFU5inza2usdtDlX8'"
 							alt="">
@@ -53,7 +53,7 @@
 					<!-- #ifdef MP-ALIPAY-->
 					<view class="pay-view flex-row">
 						<img class="pay-icon" src="https://qiniu.bms16.com/Fk4YmG_RbdH0LNo1s8qHKDtpCTXl" alt="">
-						<view class="pay-view-text">支付宝支付</view>
+						<view class="pay-view-text">{{$t('支付宝支付')}}</view>
 						<img @tap="changePayType" :data-type="2" class="wx-pay-icon"
 							:src="payType==2?'https://qiniu.bms16.com/FhWimtmWybKlYMB6mgIReVWArbfq':'https://qiniu.bms16.com/FkmDjxBNZhFGFU5inza2usdtDlX8'"
 							alt="">
@@ -61,14 +61,14 @@
 					<!-- #endif  -->
 					<view class="pay-view flex-row">
 						<img class="pay-icon" src="	https://qiniu.bms16.com/FiGNLQ5lqhEK5im_mUVgRrE8PJMB" alt="">
-						<view class="pay-view-text">钱包余额支付(¥{{wallet_money}})</view>
+						<view class="pay-view-text">{{$t('钱包余额支付')}}(¥{{wallet_money}})</view>
 						<img @tap="changePayType" :data-type="9" class="wx-pay-icon"
 							:src="payType==9?'https://qiniu.bms16.com/FhWimtmWybKlYMB6mgIReVWArbfq':'https://qiniu.bms16.com/FkmDjxBNZhFGFU5inza2usdtDlX8'"
 							alt="">
 					</view>
 				</view>
 				<view class="over-btn-view">
-					<view class="over-btn flex-row" @tap="toPayOrFreeExchange">立即支付</view>
+					<view class="over-btn flex-row" @tap="toPayOrFreeExchange">{{$t('立即支付')}}</view>
 				</view>
 			</view>
 		</view>
@@ -79,10 +79,10 @@
 						src="https://qiniu.bms16.com/FtoTEHOJiUf_gjPCJGGHMsAtHI5M" alt=""></view>
 				<view class="bluetooth-view flex-row"><img class="bluetooth-icon"
 						src="https://qiniu.bms16.com/FjWK8ZBtxCmspiOtHJWrNEoPRA0M" alt=""></view>
-				<view class="need-bluetooth-text">本次换电需要连接蓝牙</view>
-				<view class="need-bluetooth-tip">请开启手机蓝牙,点击 (蓝牙换电) 按钮</view>
+				<view class="need-bluetooth-text">{{$t('本次换电需要连接蓝牙')}}</view>
+				<view class="need-bluetooth-tip">{{$t('请开启手机蓝牙,点击 (蓝牙换电) 按钮')}}</view>
 				<view class="bluetooth-connect-view">
-					<view class="bluetooth-connect-btn" @tap="tapOpenBluetooth">蓝牙换电</view>
+					<view class="bluetooth-connect-btn" @tap="tapOpenBluetooth">{{$t('蓝牙换电')}}</view>
 				</view>
 			</view>
 		</view>
@@ -186,9 +186,9 @@
 							if(me.carInfo.battery_sn&&me.carInfo.remain){
 								me.loadNowCabinetDetail(cabinet_dev_id)
 							}else if(!me.carInfo.battery_sn){
-								common.simpleToast('车辆未绑定电池')
+								common.simpleToast(me.$t('车辆未绑定电池'))
 							}else if(!me.carInfo.remain){
-								common.simpleToast('车辆已到期,请及时前往续费')
+								common.simpleToast(me.$t('车辆已到期,请及时前往续费'))
 							}
 							
 						}
@@ -348,7 +348,7 @@
 			   var order_sn = this.payResp.data.data.order_sn;
 			   user.wxPay(order_sn, payParams, function (isSuccess) {
 			     if (isSuccess) {
-			       common.simpleToast('支付成功')
+			       common.simpleToast(me.$t('支付成功'))
 					//跳转换电流程页面
 					me.orderInfo = {
 						order_sn: me.payResp.data.data.order_sn,
@@ -369,7 +369,7 @@
 			   	tradeNO: me.payResp.data.data.trade_no,
 			   	success: function(res) {
 			   		if (res.resultCode == 9000) {
-						common.simpleToast('支付成功')
+						common.simpleToast(me.$t('支付成功'))
 			   			me.orderInfo = {
 			   				order_sn: me.payResp.data.data.order_sn,
 			   				empty_door_id: me.payResp.data.data.empty_door_id,
@@ -403,7 +403,7 @@
 											if (data.state === DF_CAB_INFO_DONE) {
 												me.reportCabintInfo(me.cabinetInfo.dev_id, data.commandList);
 												uni.hideLoading();
-												common.simpleToast('蓝牙连接成功')
+												common.simpleToast(me.$t('蓝牙连接成功'))
 												me.setData({
 													isOpenBluetooth: false,
 													isBluetooth:true
@@ -430,7 +430,7 @@
 												isBluetooth:false
 											});
 										} else {
-											common.simpleToast('蓝牙连接成功',2000)
+											common.simpleToast(me.$t('蓝牙连接成功'),2000)
 											// 蓝牙已连接
 											me.setData({
 												isOpenBluetooth: false,
@@ -457,9 +457,9 @@
 												isOpenBluetooth: false
 											});
 											uni.showModal({
-												title: '提示',
-												confirmText: '重新连接',
-												content: '连接失败,请尝试重新连接',
+												title: me.$t('提示'),
+												confirmText: me.$t('重新连接'),
+												content: me.$t('连接失败,请尝试重新连接'),
 												success: function(res) {
 													if (res.confirm) {
 														me.loadBluetooth();
@@ -478,21 +478,21 @@
 									var showContent = ""
 									if (res && ("errCode" in res)) {
 										if (res.errCode == 9000001) {
-										   var showContent= "观察周围是否有其他骑手连接,请等待对方完成 或 微信是否开启了蓝牙权限!!"
+										   var showContent= me.$t('观察周围是否有其他骑手连接,请等待对方完成') + me.$t('') + me.$t('微信是否开启了蓝牙权限')!!
 										}else{
-											var showContent= "连接失败,请尝试重新连接"
+											var showContent= me.$t('连接失败,请尝试重新连接')
 										}
 									  }
 									  else {
-										 var showContent= "连接失败,请尝试重新连接"
+										 var showContent= me.$t('连接失败,请尝试重新连接')
 									  }
 									me.setData({
 										isOpenBluetooth: false,
 										isBluetooth:false
 									});
 									uni.showModal({
-										title: '提示',
-										confirmText: '重新连接',
+										title: me.$t('提示'),
+										confirmText: me.$t('重新连接'),
 										content: showContent,
 										success: function(res) {
 											if (res.confirm) {
@@ -510,9 +510,9 @@
 											isOpenBluetooth: false
 										});
 										uni.showModal({
-											title: '提示',
-											confirmText: '我知道了',
-											content: '蓝牙未打开或请在右上角设置授权小程序使用蓝牙',
+											title: me.$t('提示'),
+											confirmText: me.$t('我知道了'),
+											content: me.$t('蓝牙未打开或请在右上角设置授权小程序使用蓝牙'),
 											success: function(res) {
 												if (res.confirm) {
 													me.loadBluetooth();
@@ -531,10 +531,10 @@
 					//蓝牙连接未成功
 					uni.hideLoading();
 					uni.showModal({
-						confirmText: '我知道了',
-						content: '当前机柜未找到符合的蓝牙类型',
+						confirmText: me.$t('我知道了'),
+						content: me.$t('当前机柜未找到符合的蓝牙类型'),
 						showCancel: false,
-						title: '提示',
+						title: me.$t('提示'),
 						complete: (res) => {
 							// uni.navigateBack({
 							// 	delta: 1
@@ -612,7 +612,7 @@
 			changePayType(e){
 				const type = e.currentTarget.dataset.type
 				if(this.wallet_money<this.free_price){
-					common.simpleToast('钱包余额不足')
+					common.simpleToast(this.$t('钱包余额不足'))
 					return
 				}
 				this.setData({

+ 12 - 10
component/scanCabBtn/scanBtn.vue

@@ -1,7 +1,7 @@
 <template>
 	<view class="container-view">
 		<view style="height: 160rpx;"></view>
-		<view @tap="sacnBtn" class="refund-btn"><text>扫码换电</text></view>
+		<view @tap="sacnBtn" class="refund-btn"><text>换电</text></view>
 		<view v-if="isModelCenter" class="model_center">
 			<image class="pack_model" src="https://zxappfile.bms16.com/zx_client/buy_pack_model.png" />
 			<view v-if="packType==0" class="pack_model_text">您还未购买换电套餐,需先完成购买后再扫码领取电池</view>
@@ -246,16 +246,17 @@
 				uni.showLoading({
 					title:' 加载中...'
 				})
-				uni.hideLoading()
-				let res = await uni.scanCode({
-					onlyFromCamera: true,
-					scanType: ['qrCode'],
-				});
+				this.loadNowCabinetDetail(this.dev_id)
+				// return
+				// let res = await uni.scanCode({
+				// 	onlyFromCamera: true,
+				// 	scanType: ['qrCode'],
+				// });
 				
-				var cabinet_dev_id = '';
-				if(res[0]) return
-				res = res[1]
-				this.loadGeneralQRData(res)
+				// var cabinet_dev_id = '';
+				// if(res[0]) return
+				// res = res[1]
+				// this.loadGeneralQRData(res)
 				
 				// if ('path' in res && res.path) {
 				// 	if (res.path.split('%26devid%3D').length > 1) {
@@ -427,6 +428,7 @@
 					pay_type:0,
 					battery_sn_list,
 				})
+				uni.hideLoading()
 				if(data.code == 200){
 					uni.navigateTo({
 						url:`/pages/openCabinet/openCabinet?order_sn=${data.data.order_sn}`

+ 16 - 7
component/useGuidance/useGuidance.vue

@@ -1,8 +1,9 @@
 <template>
 	<view class="tip-view">
 		<view class="tip-title-view flex-row align-center">
-			<image style="width: 144rpx;height: 40rpx;" src="https://qiniu.bms16.com/FjUW1kuRvXWTEftyn9nH1AbGWuxK"
-				mode='aspectFit'></image>
+			<!-- <image style="width: 144rpx;height: 40rpx;" src="https://qiniu.bms16.com/FjUW1kuRvXWTEftyn9nH1AbGWuxK"
+				mode='aspectFit'></image> -->
+			<text class="txt-guide">{{ $t('使用指导') }}</text>
 			<image style="width: 86rpx;height: 80rpx;" src="https://qiniu.bms16.com/FibAaPERzqi6m95EP2jREUKixjUi"
 				mode='aspectFill'></image>
 			<view class="w-bg flex-row"></view>
@@ -13,13 +14,11 @@
 			</view>
 			<view class="dashed-line"></view>
 			<view class="icon-list-view">
-				<image class="img1" src="https://qiniu.bms16.com/FqDzYwAbnSEgf3yv9SAb92Vq4ZEB"
-					mode='aspectFit'></image>
+				<image class="img1" src="https://qiniu.bms16.com/FqDzYwAbnSEgf3yv9SAb92Vq4ZEB" mode='aspectFit'></image>
 			</view>
 			<view class="dashed-line"></view>
 			<view class="icon-list-view">
-				<image class="img1" src="https://qiniu.bms16.com/FlFMHzco6j9XOpMI21tSnR9500Un"
-					mode='aspectFit'></image>
+				<image class="img1" src="https://qiniu.bms16.com/FlFMHzco6j9XOpMI21tSnR9500Un" mode='aspectFit'></image>
 			</view>
 		</view>
 		<view class="step-tip-view flex-row  align-center">
@@ -64,12 +63,22 @@
 		/* height: 80rpx; */
 	}
 
+	.txt-guide {
+		font-family: PingFangSC, PingFang SC;
+		height: 40rpx;
+		color: #FFFFFF;
+		font-size: 32rpx;
+		font-weight: 600;
+	}
+
 	.tip-title-view {
 		padding-left: 24rpx;
 		/* border-radius: 40rpx; */
 	}
+
 	.w-bg {
-		width: 100%;
+
+		flex: 1;
 		height: 80rpx;
 		background: #FFFFFF;
 		border-radius: 0rpx 40rpx 0rpx 0rpx;

+ 139 - 139
components/navBar/navigation.vue

@@ -1,166 +1,166 @@
 <template>
-		<view>
-			<view class="top-view flex-row"
-			:style="{'padding-top':`${statusBarHeight1}px`,background:`rgba(255,255,255,${opacity})`}">
-			<view class="navHei" :style="{'height':`calc(${navabarHeight}rpx)`,'width':'100%',}">
-				<view v-if="isback" class="left" @tap="bindReturnView">
-					<img v-if="type" class="return-view" :src="'https://qiniu.bms16.com/'+ (whiteColor?'Fjpnr3cH9ZqTQrGlw3Ywp3qbJGIG':'FnHXbzly7aXi8zLghrTU5BZdwH5_')" />
-					<view v-else class="pos">
-						<view   class="car-detail-style">
-							<image  class="return-view"
-								src="https://qiniu.bms16.com/FnHXbzly7aXi8zLghrTU5BZdwH5_" mode="aspectFit"></image>
-						</view>
-						<view :style="{opacity:1 - opacity,background:`rgba(0,0,0,0.4)`}" class="car-detail-style">
-							<image  class="return-view"
-								src="https://qiniu.bms16.com/Fjpnr3cH9ZqTQrGlw3Ywp3qbJGIG" mode="aspectFit"></image>
-						</view>
+	<view>
+		<view class="top-view flex-row"
+		:style="{'padding-top':`${statusBarHeight1}px`,background:`rgba(255,255,255,${opacity})`}">
+		<view class="navHei" :style="{'height':`calc(${navabarHeight}rpx)`,'width':'100%',}">
+			<view v-if="isback" class="left" @tap="bindReturnView">
+				<img v-if="type" class="return-view" :src="'https://qiniu.bms16.com/'+ (whiteColor?'Fjpnr3cH9ZqTQrGlw3Ywp3qbJGIG':'FnHXbzly7aXi8zLghrTU5BZdwH5_')" />
+				<view v-else class="pos">
+					<view   class="car-detail-style">
+						<image  class="return-view"
+							src="https://qiniu.bms16.com/FnHXbzly7aXi8zLghrTU5BZdwH5_" mode="aspectFit"></image>
+					</view>
+					<view :style="{opacity:1 - opacity,background:`rgba(0,0,0,0.4)`}" class="car-detail-style">
+						<image  class="return-view"
+							src="https://qiniu.bms16.com/Fjpnr3cH9ZqTQrGlw3Ywp3qbJGIG" mode="aspectFit"></image>
 					</view>
 				</view>
-				<text class="top-text" :class="whiteColor?'whiteClass':''">{{name}}</text>
 			</view>
+			<text class="top-text" :class="whiteColor?'whiteClass':''">{{name}}</text>
 		</view>
-		<view v-if="type" :style="{'height':`calc(${navabarHeight}rpx + ${statusBarHeight1}px)`}"></view>
-		</view>
+	</view>
+	<view v-if="type" :style="{'height':`calc(${navabarHeight}rpx + ${statusBarHeight1}px)`}"></view>
+	</view>
 </template>
 
 <script>
-	export default {
-		props: {
-			isback:{
-				type: Boolean,
-				default: true
-			},
-			name: {
-				type: String,
-				default: ''
-			},
-			scroll: {
-				default: 0,
-				type: Number
-			},
-			type:{
-				type: Boolean,
-				default: false
-			},
-			whiteColor:{
-				type: Boolean,
-				default: false
-			},
+export default {
+	props: {
+		isback:{
+			type: Boolean,
+			default: true
+		},
+		name: {
+			type: String,
+			default: ''
 		},
-		watch: {
-			scroll(n) {
-				this.opacity = n / 160
-			}
+		scroll: {
+			default: 0,
+			type: Number
 		},
-		data() {
-			return {
-				opacity: 0,
-				statusBarHeight1: 0,
-				navabarHeight: 0,
-			}
+		type:{
+			type: Boolean,
+			default: false
 		},
-		mounted() {
-			this._getCustomBar()
-			this.opacity = this.scroll
+		whiteColor:{
+			type: Boolean,
+			default: false
 		},
-		methods: {
-			_getCustomBar() {
-				const sysinfo = uni.getSystemInfoSync()
-				// let GAP = 8
-				// // #ifdef MP-ALIPAY
-				// GAP = 0
-				// // #endif
-				// // #ifdef APP-PLUS
+	},
+	watch: {
+		scroll(n) {
+			this.opacity = n / 160
+		}
+	},
+	data() {
+		return {
+			opacity: 0,
+			statusBarHeight1: 0,
+			navabarHeight: 0,
+		}
+	},
+	mounted() {
+		this._getCustomBar()
+		this.opacity = this.scroll
+	},
+	methods: {
+		_getCustomBar() {
+			const sysinfo = uni.getSystemInfoSync()
+			// let GAP = 8
+			// // #ifdef MP-ALIPAY
+			// GAP = 0
+			// // #endif
+			// // #ifdef APP-PLUS
 
-				// // #endif
-				// // #ifdef MP-WEIXIN
-				// const clientRect = uni.getMenuButtonBoundingClientRect()
-				// const navabarHeight = (clientRect.bottom - sysinfo.statusBarHeight) + (clientRect.top - sysinfo.statusBarHeight) + GAP
-				// this.navabarHeight = navabarHeight
-				// // #endif
+			// // #endif
+			// // #ifdef MP-WEIXIN
+			// const clientRect = uni.getMenuButtonBoundingClientRect()
+			// const navabarHeight = (clientRect.bottom - sysinfo.statusBarHeight) + (clientRect.top - sysinfo.statusBarHeight) + GAP
+			// this.navabarHeight = navabarHeight
+			// // #endif
 
-				this.statusBarHeight1 = sysinfo.statusBarHeight
-				this.navabarHeight = 100
-			},
+			this.statusBarHeight1 = sysinfo.statusBarHeight
+			this.navabarHeight = 100
+		},
 
-			bindReturnView() {
-				uni.navigateBack({
-					delta: 1,
-				}) // 返回上一页
-			},
-		}
+		bindReturnView() {
+			uni.navigateBack({
+				delta: 1,
+			}) // 返回上一页
+		},
 	}
+}
 </script>
 
 <style scoped>
-	.navHei {
-		display: flex;
-		align-items: center;
-		justify-content: center;
-		position: relative;
-	}
+.navHei {
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	position: relative;
+}
 
-	.left {
-		width: 40rpx;
-		height: 40rpx;
-		position: absolute;
-		left: 0;
-	}
+.left {
+	width: 40rpx;
+	height: 40rpx;
+	position: absolute;
+	left: 0;
+}
 
-	.top-view {
-		width: 100%;
-		position: fixed;
-		z-index: 99999;
-		left: 0;
-		top: 0;
-		align-items: center;
-		padding: 0 26rpx;
-		text-align: center;
+.top-view {
+	width: 100%;
+	position: fixed;
+	z-index: 99999;
+	left: 0;
+	top: 0;
+	align-items: center;
+	padding: 0 26rpx;
+	text-align: center;
 
-	}
+}
 
-	.navHei {
-		position: relative;
-		width: 56rpx;
-		height: 56rpx;
-	}
+.navHei {
+	position: relative;
+	width: 56rpx;
+	height: 56rpx;
+}
 
-	.return-view {
-		width: 40rpx;
-		height: 40rpx;
-		
-		/* margin-top: 24rpx; */
-		/* 		margin-left: 32rpx; */
-	}
+.return-view {
+	width: 40rpx;
+	height: 40rpx;
+	
+	/* margin-top: 24rpx; */
+	/* 		margin-left: 32rpx; */
+}
 
-	.top-text {
-		color: #060809;
-		font-size: 36rpx;
-		font-weight: 600;
-		line-height: 36rpx;
-		text-align: center;
-		font-style: normal;
-		font-family: PingFangSC, PingFang SC;
-	}
-	.top-text.whiteClass {
-		color: #FFFFFF;
-	}
-	.view-height {
-		/* border-bottom:2rpx solid #060809 ; */
-		/* margin-bottom: 32rpx; */
-	}
+.top-text {
+	color: #060809;
+	font-size: 36rpx;
+	font-weight: 600;
+	line-height: 36rpx;
+	text-align: center;
+	font-style: normal;
+	font-family: PingFangSC, PingFang SC;
+}
+.top-text.whiteClass {
+	color: #FFFFFF;
+}
+.view-height {
+	/* border-bottom:2rpx solid #060809 ; */
+	/* margin-bottom: 32rpx; */
+}
 
-	.car-detail-style {
-		width: 56rpx;
-		height: 56rpx;
-		
-		border-radius: 16rpx 0rpx 16rpx 0rpx;
-		padding-left: 6rpx;
-		display: flex;
-		align-items: center;
-		justify-content: center;
-		position: absolute;
-		left: 0;
-		top: 0;
-	}
+.car-detail-style {
+	width: 56rpx;
+	height: 56rpx;
+	
+	border-radius: 16rpx 0rpx 16rpx 0rpx;
+	padding-left: 6rpx;
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	position: absolute;
+	left: 0;
+	top: 0;
+}
 </style>

+ 39 - 26
locale/en.json

@@ -64,7 +64,7 @@
 	"日租": "Daily",
 	"周租": "Weekly",
 	"租车时长": "Rent duration",
-	"天": "Day",
+	"天": " Day",
 	"优惠券": "Coupon",
 	"折": "Discount",
 	"骑行保障服务": "Riding protection",
@@ -128,7 +128,7 @@
 	"温度": "Temperature",
 	"换电套餐": "Swap Plan",
 	"适用类型": "Model",
-	"5秒换电,瞬间满电,畅享骑行新体验!": "5s swap, full power, ride on!",
+	"5秒换电,瞬间满电,畅享骑行新体验!": "5s swap,full power,ride on!",
 	"适用电池:": "Applicable battery:",
 	"当前购买为虚拟": "Virtual purchase",
 	"卡": "Card",
@@ -229,8 +229,8 @@
 	"营业中": "Open",
 	"已休息": "Resting",
 	"直线距您": " ",
-	"千米": "km",
-	"米": "m",
+	"千米": " km",
+	"米": " m",
 	"导航": "Nav",
 	"格口详情": "Box Detail",
 	"电柜编号:": "Cabinet ID:",
@@ -271,7 +271,7 @@
 	"次免费换电数,超出后需要单独支付换电费用;": "Free swaps, extra swaps will require payment;",
 	"我要用车": "I want to use the vehicle",
 	"获取直线距离": "Get Straight-line Distance",
-	"您是否要拨打电话": "Do you want to call?",
+	"您是否要拨打电话": "Do you want to call",
 	"更多功能": "More",
 	"固定导航栏": "Fixed Navigation Bar",
 	"其他功能": "Other Features",
@@ -280,7 +280,7 @@
 	"开机": "Slide to Turn On",
 	"开启车辆": "Start Vehicle",
 	"关机": "Shutdown",
-	"您确认": "Are you sure?",
+	"您确认": "Are you sure",
 	"吗": "?",
 	"处理修改之后的数据": "Process modified data",
 	"输入注册账号的密码即可解绑": "Enter the registration account password to unbind",
@@ -295,7 +295,7 @@
 	"当前选择": "CurSel",
 	"租赁设备": "Leased Device",
 	"绑定设备": "Bind Device",
-	"是否确定": "Are you sure?",
+	"是否确定": "Are you sure? ",
 	"清空当前设备蓝牙相关": "Clear current device Bluetooth data",
 	"切换成功!": "Switch successful!",
 	"由于": "Due to",
@@ -324,7 +324,7 @@
 	"重新签名": "Resign",
 	"上报小程序账号信息": "Report mini-program account information",
 	"您当前没有手写签名,是否要进行填写": "You do not have a handwritten signature, do you want to fill it?",
-	"续航": "Range",
+	"续航": "Range ",
 	"骑行里程": "Ride Distance",
 	"骑行时长": "Ride Time",
 	"最大速度": "Max Speed",
@@ -430,7 +430,7 @@
 	"蓝牙配对成功": "Bluetooth Pairing Successful",
 	"请先连接蓝牙": "Please Connect Bluetooth First",
 	"用车人管理": "User Management",
-	"个家庭账号": "Family Accounts",
+	"个家庭账号": " Family Accounts",
 	"设备信息": "Device Info",
 	"软件版本": "Current Version",
 	"用户车辆列表": "User Vehicle List",
@@ -478,6 +478,7 @@
 	"确认修改": "Confirm modification",
 	"是否确认修改密码?": "Confirm password change?",
 	"修改成功": "Change successful",
+	"请重新登录": "Please login again",
 	"忘记密码": "Forgot password",
 	"请输入要重置的邮箱账号": "Enter the email address to reset password",
 	"重置密码": "Reset password",
@@ -539,10 +540,10 @@
 	"骑行次数": "Ride Count",
 	"累计功率": "Total Power",
 	"减少排放量": "Emissions Reduction",
-	"总": "total",
-	"年": "year",
-	"月": "month",
-	"周": "week",
+	"总": "total ",
+	"年": " year",
+	"月": " month",
+	"周": " week",
 	"请输入绑定的新手机号": "Please enter the new phone number to bind",
 	"请输入验证码": "Please enter the verification code",
 	"秒后再次获取": "Get again after seconds",
@@ -597,8 +598,8 @@
 	"还车申请中": "Return Pending",
 	"还车中": "Returning Vehicle",
 	"车辆已归还": "Vehicle Returned",
-	"订单已支付": "Order Paid",
-	"订单未支付": "Order Not Paid",
+	"订单已支付": "Paid",
+	"订单未支付": "Not Paid",
 	"已完结": "Finished",
 	"支付中": "Paying",
 	"支付成功": "Payment Success",
@@ -619,8 +620,9 @@
 	"已退款": "Refunded",
 	"套餐金额": "Plan Amount",
 	"订单金额": "Order Amount",
+	"付款金额": "Payment Amount",
 	"租车购车": "Rent/Sell",
-	"请于": "By",
+	"请于": "By ",
 	"到门店取车": "Pick up at the store",
 	"请上传车辆图片激活车辆": "Please upload vehicle picture to activate vehicle",
 	"待门店确认": "Pending Store Confirm",
@@ -634,7 +636,7 @@
 	"展开": "Expand",
 	"租借周期:购买": "Rental Period: Purchase",
 	"订单信息": "Order Information",
-	"订单编号": "Order No.",
+	"订单编号": "Order No",
 	"支付时间": "Payment Time",
 	"支付方式": "Payment Method",
 	"微信支付": "WeChat Pay",
@@ -646,7 +648,7 @@
 	"订单结束后随时退": "Return anytime after order ends",
 	"自行去门店取还": "Pickup Store",
 	"未知地址": "Unknown Address",
-	"重量": "Weight",
+	"重量": "Weight ",
 	"换电信息": "Battery Swap Information",
 	"共": "Total",
 	"本单可享": "This order includes",
@@ -709,7 +711,7 @@
 	"有保险的时候": "When insured",
 	"为免押": "For deposit-free",
 	"为总金额": "For total amount",
-	"押金": "Deposit",
+	"押金": " Deposit",
 	"时": "Hour",
 	"无保险": "No Insurance",
 	"金额": "Amount",
@@ -744,7 +746,7 @@
 	"选择取车时间": "Select Pickup Time",
 	"共计": "Total",
 	"车辆押金": "Vehicle Deposit",
-	"需要支付": "Amount to Pay",
+	"需要支付": "Amount to Pay ",
 	"元押金,诺无车损、违章及逾期,还车后可退": "Deposit, refundable upon return if no damage, violations, or overdue.",
 	"前往门店取还": "Pickup/Return Shop",
 	"门店距您": " ",
@@ -754,8 +756,8 @@
 	"支付金额": "Payment Amount",
 	"导航到店": "Navigate to Store",
 	"租车订单已提交": "Rental Order Submitted",
-	"到": "To",
-	"取车": "Pick Up",
+	"到": " To ",
+	"取车": " Pick Up",
 	"订单详情": "Order Details",
 	"选择预约订单时间": "Select Reservation Time",
 	"单价": "Unit Price",
@@ -794,7 +796,7 @@
 	"车辆类型": "Vehicle Type",
 	"租借类型": "Rental Type",
 	"地图控件": "Map Control",
-	"请输入搜索内容": "Please enter search content",
+	"请输入搜索内容": "Enter search content",
 	"清空": "Clear",
 	"搜索": "Search",
 	"门店": "Shop",
@@ -825,11 +827,11 @@
 	"车辆激活": "Vehicle activation",
 	"车辆品牌:": "Vehicle brand",
 	"车辆颜色:": "Vehicle color",
-	"车牌号": "Plate Number",
+	"车牌号": "Plate Number",
 	"上传照片": "Upload Photo",
 	"你确定要删除吗?": "Confirm Deletion?",
 	"还车成功!": "Return Successful!",
-	"秒换电,瞬间满电,畅享骑行新体验!": "Instant Swap, Full Charge, Smooth Ride!",
+	"秒换电,瞬间满电,畅享骑行新体验!": "Instant Swap,Full Charge,Smooth Ride!",
 	"不限次数": "Unlimited",
 	"部分成功": "Partially Successful",
 	"是否切换到车辆": "Switch Vehicle?",
@@ -846,5 +848,16 @@
 	"完成弹窗": "Completion Popup",
 	"祝您骑行愉快": "Enjoy Your Ride!",
 	"车辆已被租售!": "Vehicle Rented or Sold!",
-	"全部": "All"
+	"全部": "All",
+	"立即支付": "Pay Now",
+	"使用指导": "Usage Guide",
+	"本次消费门店": "Store of this purchase",
+	"已选择": "Selected",
+	"用车方案": "Vehicle Usage Plan",
+	"时长": "Rental Duration",
+	"系统会根据您的定位判断您是否已到还车位置,如您已经到达门店,请点击「我已到店」按钮,待门店确认还车后,即可还车成功。": "The system will determine whether you have arrived at the return location based on your positioning. If you have already arrived at the store, please click the 'I have arrived at the store' button. After the store confirms the return, the car return process will be successfully completed",
+	"购买时间":"Buy Time",
+	"¥": "$",
+	"当前电池存在未知型号,请联系门店处理!":"The current battery is of an unknown model. Please contact the store for assistance!",
+	"正在加载数据":"Loading"
 }

+ 14 - 1
locale/zh.json

@@ -478,6 +478,7 @@
 	"确认修改": "确认修改",
 	"是否确认修改密码?": "是否确认修改密码?",
 	"修改成功": "修改成功",
+	"请重新登录": "请重新登录",
 	"忘记密码": "忘记密码",
 	"请输入要重置的邮箱账号": "请输入要重置的邮箱账号",
 	"重置密码": "重置密码",
@@ -619,6 +620,7 @@
 	"已退款": "已退款",
 	"套餐金额": "套餐金额",
 	"订单金额": "订单金额",
+	"付款金额": "付款金额",
 	"租车购车": "租车购车",
 	"请于": "请于",
 	"到门店取车": "到门店取车",
@@ -846,5 +848,16 @@
 	"完成弹窗": "完成弹窗",
 	"祝您骑行愉快": "祝您骑行愉快",
 	"车辆已被租售!": "车辆已被租售!",
-	"全部": "全部"
+	"全部": "全部",
+	"立即支付": "立即支付",
+	"使用指导": "使用指导",
+	"本次消费门店": "本次消费门店",
+	"已选择": "已选择",
+	"用车方案": "用车方案",
+	"时长": "时长",
+	"系统会根据您的定位判断您是否已到还车位置,如您已经到达门店,请点击「我已到店」按钮,待门店确认还车后,即可还车成功。": "系统会根据您的定位判断您是否已到还车位置,如您已经到达门店,请点击「我已到店」按钮,待门店确认还车后,即可还车成功。",
+	"购买时间":"购买时间",
+	"¥": "¥",
+	"当前电池存在未知型号,请联系门店处理!":"当前电池存在未知型号,请联系门店处理!",
+	"正在加载数据":"正在加载数据"
 }

+ 3 - 3
output3.json

@@ -280,7 +280,7 @@
   "开机": "Slide to Turn On",
   "开启车辆": "Start Vehicle",
   "关机": "Shutdown",
-  "您确认": "Are you sure?",
+  "您确认": "Are you sure? ",
   "吗": "?",
   "处理修改之后的数据": "Process modified data",
   "输入注册账号的密码即可解绑": "Enter the registration account password to unbind",
@@ -295,7 +295,7 @@
   "当前选择": "Current Selection",
   "租赁设备": "Leased Device",
   "绑定设备": "Bind Device",
-  "是否确定": "Are you sure?",
+  "是否确定": "Are you sure? ",
   "清空当前设备蓝牙相关": "Clear current device Bluetooth data",
   "切换成功!": "Switch successful!",
   "由于": "Due to",
@@ -794,7 +794,7 @@
   "车辆类型": "Vehicle Type",
   "租借类型": "Rental Type",
   "地图控件": "Map Control",
-  "请输入搜索内容": "Please enter search content",
+  "请输入搜索内容": "Enter search content",
   "清空": "Clear",
   "搜索": "Search",
   "门店": "Pickup Store",

+ 1 - 7
pages.json

@@ -15,13 +15,7 @@
 		{
 			"path": "pages/my/my",
 			"style": {
-				"navigationStyle": "custom",
-				"app-plus" : {
-					"titleNView": {
-						"type": "transparent"
-					}
-				}
-				
+				"navigationStyle": "custom"
 			}
 		},
 		{

+ 5 - 4
pages/activation/activation.vue

@@ -265,8 +265,9 @@
 				})
 				if (data.code == 200) {
 					this.shopList = data.data
-					if(this.shopList.flk_hire_return_car_img.length < this.shopList.share_car_max_user_num){
-						let num = this.shopList.share_car_max_user_num - this.shopList.flk_hire_return_car_img.length
+					data.data.flk_hire_car_img_num = Number(data.data.flk_hire_car_img_num)
+					if(this.shopList.flk_hire_return_car_img.length < this.shopList.flk_hire_car_img_num){
+						let num = this.shopList.flk_hire_car_img_num - this.shopList.flk_hire_return_car_img.length
 						for (let i = 0; i < num; i++) {
 							this.shopList.flk_hire_return_car_img.push({
 								url:"",
@@ -276,9 +277,9 @@
 							
 						}
 					}
-					if(this.shopList.flk_hire_return_car_img.length > this.shopList.share_car_max_user_num){
+					if(this.shopList.flk_hire_return_car_img.length > this.shopList.flk_hire_car_img_num){
 						let flk_hire_return_car_img = []
-						for (let i = 0; i < this.shopList.share_car_max_user_num; i++) {
+						for (let i = 0; i < this.shopList.flk_hire_car_img_num; i++) {
 							let item = this.shopList.flk_hire_return_car_img[i]
 							this.shopList.flk_hire_return_car_img.push(item)
 						}

+ 4 - 0
pages/addUser/addUser.vue

@@ -48,6 +48,10 @@
 				}else{
 					msg(data.msg)
 				}
+			},
+			
+			clearInput() {
+				this.email = ''
 			}
 		}
 	};

+ 4 - 4
pages/battery/battery.vue

@@ -128,21 +128,21 @@
 								:class="isSelectStatus == 0?'ptyped-item':'ptype-item'">
 								<view class="ptype-title">{{ $t('时租') }}</view>
 								<view :class="isSelectStatus == 0?'ptyped-text':'ptype-text'">
-									¥<text>8</text>
+									{{$()}}<text>8</text>
 								</view>
 							</view>
 							<view @tap="bindChangeStatus" data-status="1"
 								:class="isSelectStatus == 1?'ptyped-item':'ptype-item'">
 								<view class="ptype-title">{{ $t('日租') }}</view>
 								<view :class="isSelectStatus == 1?'ptyped-text':'ptype-text'">
-									¥<text>48</text>
+									{{$()}}<text>48</text>
 								</view>
 							</view>
 							<view @tap="bindChangeStatus" data-status="2"
 								:class="isSelectStatus == 2?'ptyped-item':'ptype-item'">
 								<view class="ptype-title">{{ $t('周租') }}</view>
 								<view :class="isSelectStatus == 2?'ptyped-text':'ptype-text'">
-									¥<text>208</text>
+									{{$()}}<text>208</text>
 								</view>
 							</view>
 						</view>
@@ -215,7 +215,7 @@
 						</view>
 						<view class="payment-bottom flex-row flex-between">
 							<view class="bottom-left flex-row">
-								<view>¥92.23</view>
+								<view>{{$()}}92.23</view>
 								<view>{{ $t('明细') }}<img src="https://qiniu.bms16.com/FmEDQp82D5k9lkHMEcCoCeLO8ZQL" /></view>
 							</view>
 							<view @tap="navToPage" data-url="/pages/orderStatus/orderStatus">{{ $t('支付') }}·{{ $t('授权免押') }}</view>

+ 1 - 1
pages/batteryPackage/batteryPackage.css

@@ -19,7 +19,7 @@
 	color: #060809;
 	background: rgba(255,255,255,0.4);
 	border-radius: 0rpx 38rpx 38rpx 0rpx;
-	padding: 16rpx 0 16rpx 32rpx ;
+	padding: 16rpx 0 16rpx 13rpx ;
 	flex-grow: 1;
 	text-align: justify;
 	letter-spacing: 2rpx;

+ 6 - 4
pages/batteryPackage/batteryPackage.vue

@@ -1,10 +1,9 @@
 <template>
 	<view class="battery-package-main">
-		<navigation :type="true" :name="$t('换电套餐')" />
-		
+		<navigation :scroll='scrollTop' :type="true" :name="$t('换电套餐')" />
 		<view class="package-icon-view flex-row">
 			<img src="https://qiniu.bms16.com/FqF7erLOB8OutmFnre7-mbTkwpZr" alt="">
-			<view class="package-icon-text flex-row">5{{ $t('秒换电,瞬间满电,畅享骑行新体验!') }}</view>
+			<view class="package-icon-text flex-row">5 {{ $t('秒换电,瞬间满电,畅享骑行新体验!') }}</view>
 		</view>
 		<view v-for="(item,index) of list" @click="selectItem(item)" :key="index" class="package-list-view" :class="{'active' : item.package_code == form.package_code }">
 			<view class="package-num-view flex-row"><text class="package-num">{{item.total_day || 0}}</text> {{ $t('天') }} <text
@@ -60,6 +59,9 @@ import { fenToYuan, msg } from '../../utils/util.js';
 	import payTypeModel from '@/component/payTypeModel/payTypeModel';
 	export default {
 		components:{payTypeModel},
+		onPageScroll(e) {
+			this.scrollTop = e.scrollTop
+		},
 		data() {
 			return {
 				isShowToBuy:false,
@@ -89,7 +91,7 @@ import { fenToYuan, msg } from '../../utils/util.js';
 				}
 				uni.showLoading({
 					mask:true,
-					title:this.$t('提交中...')
+					title:this.$t('提交中')+'...'
 				})
 				let {
 					data

+ 1 - 1
pages/carDetail/carDetail.css

@@ -163,7 +163,7 @@
 	text-align: center;
 }
 .w-bg{
-	width: 100%;
+	flex: 1;
 	height: 80rpx;
 	background: #FFFFFF;
 	border-radius: 0rpx 40rpx 0rpx 0rpx;

+ 135 - 76
pages/carDetail/carDetail.vue

@@ -1,41 +1,45 @@
 <template>
 	<view>
-	<view class="car-detail-main">
-		<Navigation :scroll='scrollTop'></Navigation>
-		<view class="store-img-view">
-			<swiper v-if="car_detail.model_images && car_detail.model_images.length!=0" class="swiper" :indicator-dots="true" :autoplay="true" :interval="2000"
-				indicator-color="rgba(0, 0, 0, 0.3)" indicator-active-color="#000000" :duration="1000" circular>
-				<swiper-item class="swiper-item" v-for="(item,index) in car_detail.model_images" :key="index">
-					<image style="width: 100%;height: 100%;" class="swiper-item-img" :src="item" mode="aspectFit"></image>
-				</swiper-item>
-			</swiper>
-			<image v-else class="bg-img" src="https://qiniu.bms16.com/FhRnr7rADHHsOFfpWO4duD15SgIt" mode="aspectFit">
-			</image>
-		</view>
-		
-		<view class="car-detail-model">
-			<view class="car-detail-name">{{car_detail.car_model_name}}</view>
-			<view class="car-detail-price">
-				<allPrice :amount="Number(price)" />
+		<view class="car-detail-main">
+			<Navigation :scroll='scrollTop'></Navigation>
+			<view class="store-img-view">
+				<swiper v-if="car_detail.model_images && car_detail.model_images.length!=0" class="swiper"
+					:indicator-dots="true" :autoplay="true" :interval="2000" indicator-color="rgba(0, 0, 0, 0.3)"
+					indicator-active-color="#000000" :duration="1000" circular>
+					<swiper-item class="swiper-item" v-for="(item,index) in car_detail.model_images" :key="index">
+						<image style="width: 100%;height: 100%;" class="swiper-item-img" :src="item" mode="aspectFit">
+						</image>
+					</swiper-item>
+				</swiper>
+				<image v-else class="bg-img" src="https://qiniu.bms16.com/FhRnr7rADHHsOFfpWO4duD15SgIt"
+					mode="aspectFit">
+				</image>
 			</view>
-			<view style="flex-wrap: wrap;justify-content: flex-start;" class="flex-row car-detail-time">
-				<view v-for="(item,index) in car_detail.rental_setting" :key="index" @click="tapSelectType(item)"
-					:class="['time-unit',selectType==item.hire_duration_unit? 'time-unit-i':'']">
-					<text v-if="item.hire_duration_unit==1">{{ $t('日租') }}</text>
-					<text v-if="item.hire_duration_unit==2">{{ $t('月租') }}</text>
-					<text v-if="item.hire_duration_unit==3">{{ $t('年租') }}</text>
-					<text v-if="item.hire_duration_unit==4">{{ $t('时租') }}</text>
-					<text v-if="item.hire_duration_unit==5">{{ $t('分租') }}</text>
-					<text v-if="item.hire_duration_unit==6">{{ $t('周租') }}</text>
-					<text v-if="item.hire_duration_unit==7">{{ $t('季租') }}</text>
+
+			<view class="car-detail-model">
+				<view class="car-detail-name">{{car_detail.car_model_name}}</view>
+				<view class="car-detail-price">
+					<allPrice :amount="Number(price)" />
 				</view>
+				<view style="flex-wrap: wrap;justify-content: flex-start;" class="flex-row car-detail-time">
+					<view v-for="(item,index) in car_detail.rental_setting" :key="index" @click="tapSelectType(item)"
+						:class="['time-unit',selectType==item.hire_duration_unit? 'time-unit-i':'']">
+						<text v-if="item.hire_duration_unit==1">{{ $t('日租') }}</text>
+						<text v-if="item.hire_duration_unit==2">{{ $t('月租') }}</text>
+						<text v-if="item.hire_duration_unit==3">{{ $t('年租') }}</text>
+						<text v-if="item.hire_duration_unit==4">{{ $t('时租') }}</text>
+						<text v-if="item.hire_duration_unit==5">{{ $t('分租') }}</text>
+						<text v-if="item.hire_duration_unit==6">{{ $t('周租') }}</text>
+						<text v-if="item.hire_duration_unit==7">{{ $t('季租') }}</text>
+					</view>
 
-				<view v-if="car_detail.sell_price != 0" @click="tapSelectType({hire_duration_unit:100,hire_price:car_detail.sell_price})"
-					:data-select_type="100" :data-price="car_detail.sell_price"
-					:class="['time-unit',selectType==100? 'time-unit-i':'']">{{ $t('购买') }}</view>
+					<view v-if="car_detail.sell_price != 0"
+						@click="tapSelectType({hire_duration_unit:100,hire_price:car_detail.sell_price})"
+						:data-select_type="100" :data-price="car_detail.sell_price"
+						:class="['time-unit',selectType==100? 'time-unit-i':'']">{{ $t('购买') }}</view>
+				</view>
 			</view>
-		</view>
-		<!-- <view class="free-num-model">
+			<!-- <view class="free-num-model">
 			<view class="flex-row flex-between">
 				<view class="free-num-view">
 					<img style="width: 40rpx;height: 40rpx;" src="https://qiniu.bms16.com/FtlfBtBE5-TeTI5EdrciX_u8u_Sx" alt="">
@@ -45,54 +49,53 @@
 			</view>
 			<view class="free-num-tip">{{ $t('日租享') }}1{{ $t('次免费换电数,超出后需要单独支付换电费用;') }}</view>
 		</view> -->
-		<useGuidance />
-		<view class="card-car-detail">
-			<view class="step-title-view flex-row align-center">
-				<img style="width: 208rpx;height: 40rpx;" src="https://qiniu.bms16.com/Fms8V0l4bNwGUgWwkdRku4dIx_tt"
-					alt="">
-				<img style="width: 86rpx;height: 80rpx;" src="https://qiniu.bms16.com/FibAaPERzqi6m95EP2jREUKixjUi"
-					alt="">
-				<view class="w-bg flex-row"></view>
-			</view>
-			<view class="step-car-view">
-				<view class="step-img-view"></view>
-				<view class="flex-row flex-between" style="margin-bottom: 24rpx;">
-					<view class="store-name-view">
-						<view>{{car_detail.shop_name}}</view>
-						<view class="address-txt">{{car_detail.address}}</view>
-					</view>
-					<view class="distance-num">{{car_detail.distance}}m</view>
+			<useGuidance />
+			<view class="card-car-detail">
+				<view class="step-title-view flex-row align-center">
+					<text class="txt-guide">{{ $t('本次消费门店') }}</text>
+					<img style="width: 86rpx;height: 80rpx;" src="https://qiniu.bms16.com/FibAaPERzqi6m95EP2jREUKixjUi"
+						alt="">
+					<view class="w-bg flex-row"></view>
 				</view>
-				<view class="flex-row flex-between align-center">
-					<view class="time-view flex-row alert-center">
-						<img class="time-icon" src="https://qiniu.bms16.com/FlGVpR2fdrD1GfeHfDgt-dUMgkOq" alt="">
-						<text>{{car_detail.work_begin_time + '-' + car_detail.work_end_time}}</text>
-					</view>
-					<view class="phone-or-nav flex-row">
-						<view @tap="tapCallPhone">
-							<img style="width: 84rpx;height: 64rpx;margin-right: 20rpx;"
-								src="https://qiniu.bms16.com/FkZYljvsgGtXUGnQaA0wk_sbjlUC" alt="">
+				<view class="step-car-view">
+					<view class="step-img-view"></view>
+					<view class="flex-row flex-between" style="margin-bottom: 24rpx;">
+						<view class="store-name-view">
+							<view>{{car_detail.shop_name}}</view>
+							<view class="address-txt">{{car_detail.address}}</view>
 						</view>
-						<view @tap="navAddress">
-							<img style="width: 112rpx;height: 64rpx;"
-								src="https://qiniu.bms16.com/Fts38M35doVjK09GfOza5qD-wwkK" alt="">
+						<view class="distance-num">{{car_detail.distance}}m</view>
+					</view>
+					<view class="flex-row flex-between align-center">
+						<view class="time-view flex-row alert-center">
+							<img class="time-icon" src="https://qiniu.bms16.com/FlGVpR2fdrD1GfeHfDgt-dUMgkOq" alt="">
+							<text>{{car_detail.work_begin_time + '-' + car_detail.work_end_time}}</text>
 						</view>
+						<view class="phone-or-nav flex-row">
+							<view @tap="tapCallPhone">
+								<img style="width: 84rpx;height: 64rpx;margin-right: 20rpx;"
+									src="https://qiniu.bms16.com/FkZYljvsgGtXUGnQaA0wk_sbjlUC" alt="">
+							</view>
+							<view @tap="navAddress">
+								<img style="width: 112rpx;height: 64rpx;"
+									src="https://qiniu.bms16.com/Fts38M35doVjK09GfOza5qD-wwkK" alt="">
+							</view>
 
+						</view>
 					</view>
 				</view>
 			</view>
+			<view class="nodes">
+				<rich-text v-if="car_detail.model_desc" :nodes="car_detail.model_desc"></rich-text>
+			</view>
+			<view style="height: 150rpx;"></view>
+			<view class="use-car-view flex-row">
+				<view @tap="useCarBtn" class="use-car-btn">{{ $t('我要用车') }}</view>
+			</view>
+			<carPlan v-if="showCarPlan" @changeSelectType="changeSelectType" @closeShowMore="closeShowMore"
+				:params="params" :selectType="selectType" />
 		</view>
-		<view class="nodes">
-			<rich-text v-if="car_detail.model_desc" :nodes="car_detail.model_desc"></rich-text>
-		</view>
-		<view style="height: 150rpx;"></view>
-		<view class="use-car-view flex-row">
-			<view @tap="useCarBtn" class="use-car-btn">{{ $t('我要用车') }}</view>
-		</view>
-		<carPlan v-if="showCarPlan" @changeSelectType="changeSelectType" @closeShowMore="closeShowMore" :params="params"
-			:selectType="selectType" />
 	</view>
-</view>
 </template>
 <script module="tools" lang="wxs" src="@/pages/common/wxs/tools.wxs"></script>
 <script module="tools" lang="sjs" src="@/pages/common/wxs/tools.sjs"></script>
@@ -110,6 +113,7 @@
 	export default {
 		data() {
 			return {
+				shop_type: 0,
 				recommend_id: '',
 				car_detail: {},
 				showCarPlan: false,
@@ -130,9 +134,10 @@
 				this.locationFn()
 			}
 			if (options.shop_type) {
+				this.shop_type = options.shop_type
 				const d = {
-					hire_duration_unit:options.shop_type,
-					hire_price:Number(options.hire_price)
+					hire_duration_unit: options.shop_type,
+					hire_price: Number(options.hire_price)
 				}
 				this.tapSelectType(d)
 			}
@@ -155,14 +160,49 @@
 				}, (resp) => {
 					if (resp.data.code === 200) {
 						// resp.data.data.desc = resp.data.data.desc.replaceAll('/<img\b/gi, '$& style="1"'')
-						
+
 						// me.tapSelectType(resp.data.data.rental_setting[0])
 						resp.data.data.distance = common.formatDistance(Number(resp.data.data.distance))
-						resp.data.data.desc = this.$htmlData(resp.data.data.desc)
+
+
+						const imgRegex = /<img([^>]*)>/gi;
+
+						// 替换函数,设置 width="100%" 和 height="auto"
+						const updatedRichText = resp.data.data.model_desc.replace(imgRegex, (match) => {
+							// 使用正则表达式移除已有的 width 和 height 属性
+							const cleanedMatch = match.replace(/(width|height)="[^"]*"/gi, '');
+
+							// 添加新的 width="100%" 和 height="auto"
+							return cleanedMatch.replace('<img', '<img width="100%" height="auto"');
+						});
+
+
+						resp.data.data.model_desc = updatedRichText
+
 						me.setData({
 							car_detail: resp.data.data,
 							// price: ((resp.data.data.rental_setting[0]?.hire_price || 0) / 100).toFixed(2)
 						})
+						let rental_setting = []
+						resp.data.data.rental_setting.map((item, index) => {
+							if (index === 0) {
+								if (!me.shop_type) {
+									me.tapSelectType({
+										hire_duration_unit: item.hire_duration_unit,
+										hire_price: Number(item.hire_price),
+									})
+								}
+							}
+							LEASE_TYPE_ARR.map(items => {
+								if (items.value == item.hire_duration_unit) {
+									item.sort = items.sort
+									rental_setting.push(item)
+								}
+							})
+						})
+						resp.data.data.rental_setting = rental_setting.sort((x, y) => {
+							return x.sort - y.sort
+						})
 					} else {
 						common.simpleToast(resp.data.msg);
 					}
@@ -211,7 +251,17 @@
 					success: function(res) {},
 				})
 			},
+			loadIsLogin() {
+				uni.navigateTo({
+					url: '/pages/loginRegister/login',
+				})
+			},
 			useCarBtn() {
+				const user_token = storage.getUserToken()
+				if (!user_token) {
+					this.loadIsLogin()
+					return
+				}
 				const pData = {
 					...this.car_detail,
 					price: this.price
@@ -237,9 +287,18 @@
 </script>
 <style>
 	@import './carDetail.css';
-	.nodes{
+
+	.nodes {
 		color: #333;
 		font-size: 28rpx;
 		padding: 34rpx 32rpx 32rpx;
 	}
+
+	.txt-guide {
+		font-family: PingFangSC, PingFang SC;
+		height: 40rpx;
+		color: #FFFFFF;
+		font-size: 32rpx;
+		font-weight: 600;
+	}
 </style>

+ 7 - 2
pages/index/components/mapCard/mapCard.vue

@@ -2,7 +2,7 @@
 	<view class="container-view-car" @tap="navCarLocation">
 		<!-- #ifdef APP -->
 		<view :style="{width:'100%',height: height?'258rpx':'140rpx'}" class="map">
-			<cover-view  class="top-car-location">
+			<cover-view v-if="!isShowReturnCar"  class="top-car-location">
 				<cover-image class='img' style="width: 36rpx;height: 36rpx;" src="https://qiniu.bms16.com/FrKY7Ex5za22plr39ddIsJcjFVpi" ></cover-image>
 				<cover-view class="text">{{ $t('车辆位置') }}</cover-view>
 			</cover-view>
@@ -16,7 +16,7 @@
 		<!-- #ifndef APP -->
 		<map class="map"  :longitude="car_info.longitude"
 			:latitude="car_info.latitude" scale="16" show-location :style="{width:'100%',height: height?'258rpx':'140rpx'}" :markers="carLocation">
-			<view class="top-car-location flex-row">
+			<view  class="top-car-location flex-row">
 				<img style="width: 36rpx;height: 36rpx;" src="https://qiniu.bms16.com/FrKY7Ex5za22plr39ddIsJcjFVpi" alt="">
 				<text>{{ $t('车辆位置') }}</text>
 			</view>
@@ -45,6 +45,7 @@
 		 * 组件的属性列表
 		 */
 		props: {
+			
 			car_info: {
 				type: Object,
 				default: {}
@@ -53,6 +54,10 @@
 				type: Boolean,
 				default: true
 			},
+			isShowReturnCar: {
+				type: Boolean,
+				default: true
+			},
 		},
 		
 		mounted() {

+ 1 - 1
pages/index/components/unleasedPages/unleasedPages.vue

@@ -9,7 +9,7 @@
 		<!-- #endif -->
 
 
-		<view v-if="!isShow">
+		<view v-if="isShow">
 			<view style="margin: 0 50rpx 0rpx;height: 420rpx;">
 				<u-swiper v-if="img_list.length!=0" :list="img_list" @change="tapSwiper" :autoplay="false" mode="none"
 					:height="420" bgColor="transparent" class="custom-swiper">

+ 51 - 34
pages/index/index.vue

@@ -6,27 +6,37 @@
 		<view v-if="isConnected">
 			<block v-if="isLogin && car_info.car_sn">
 				<view class="container-view">
-					<!-- #ifdef MP-WEIXIN -->
-					<view :style="{height: `${statusBarHeight + 30}px`}"></view>
-					<!-- #endif -->
-					<!-- #ifdef APP -->
-					<view :style="{height: `${statusBarHeight}px`}"></view>
-					<!-- #endif -->
-					<!-- <navBar type="index" /> -->
-					<view class="flex-row flex-between align-center padding_about_40">
-						<view class="car-name-view" @tap="navSwitchCar">
-							<text class="text" style="margin-right: 10rpx;">{{car_info.car_name}}</text>
-							<img src="https://qiniu.bms16.com/FoSXDpVGvbdmwbX3CMUBvR7X4IzI"
-								style="width: 14rpx;height: 14rpx;" alt="">
-						</view>
-						<view @click="routerLink('/pages/message/index?isSys=0')" class="news">
-							<view v-if="newsList.device_count > 0" class="num">
-								{{ newsList.device_count}}
+					<view class="header_view">
+						<!-- #ifdef MP-WEIXIN -->
+						<view :style="{height: `${statusBarHeight + 30}px`}"></view>
+						<!-- #endif -->
+						<!-- #ifdef APP -->
+						<view :style="{height: `${statusBarHeight}px`}"></view>
+						<!-- #endif -->
+						<!-- <navBar type="index" /> -->
+						<view class="flex-row flex-between align-center padding_about_40">
+							<view class="car-name-view" @tap="navSwitchCar">
+								<text class="text" style="margin-right: 10rpx;">{{car_info.car_name}}</text>
+								<img src="https://qiniu.bms16.com/FoSXDpVGvbdmwbX3CMUBvR7X4IzI"
+									style="width: 14rpx;height: 14rpx;" alt="">
+							</view>
+							<view @click="routerLink('/pages/message/index?isSys=0')" class="news">
+								<view v-if="newsList.device_count > 0" class="num">
+									{{ newsList.device_count}}
+								</view>
+								<image src="https://qiniu.bms16.com/FtlfBtBE5-TeTI5EdrciX_u8u_Sx"
+									style="width: 48rpx;height: 48rpx;" mode=""></image>
 							</view>
-							<image src="https://qiniu.bms16.com/FtlfBtBE5-TeTI5EdrciX_u8u_Sx"
-								style="width: 48rpx;height: 48rpx;" mode=""></image>
 						</view>
 					</view>
+					<view>
+						<!-- #ifdef MP-WEIXIN -->
+						<view :style="{height: `${statusBarHeight + 80}px`}"></view>
+						<!-- #endif -->
+						<!-- #ifdef APP -->
+						<view :style="{height: `${statusBarHeight + 50}px`}"></view>
+						<!-- #endif -->
+					</view>
 					<view v-if="isOverdueShow" class="overdue-view flex-row flex-between">
 						<view class="overdue-view-text flex-row">
 							<text class="overdue-text-left">{{$t("您已逾期")}}
@@ -64,11 +74,10 @@
 						<!-- <img :src="'https://qiniu.bms16.com/Fg8_p7083jpsy8BXG4bR6yMs7jQX'"
 							style="width: 100%;height: 526rpx;" alt=""> -->
 							<view class="custom-swiper-view">
-								<u-swiper @click="toMoreInfoPage" v-if="car_image.length!=0" :list="car_image"  :autoplay="false" mode="none"
+								<u-swiper @click="toMoreInfoPage" :list="car_image"  :autoplay="false" mode="none"
 									 :height="480" bgColor="transparent" class="custom-swiper">
 								</u-swiper>
-								<image @click="toMoreInfoPage" v-else style="width: 100%;height: 480rpx;" src="https://qiniu.bms16.com/Fg8_p7083jpsy8BXG4bR6yMs7jQX" mode="">
-								</image>
+						
 							</view>
 							
 						<view class="flex-row align-center update-time-view">
@@ -82,7 +91,7 @@
 					
 			
 					<view :class="['flex-row', 'flex-between', 'map-card-view',car_info.exchange_package_info && car_info.exchange_package_info.activity_time?'height_362':'height_260']">
-						<MapCard :car_info="car_info" :height="!!(car_info.exchange_package_info && car_info.exchange_package_info.activity_time)"/>
+						<MapCard :isShowReturnCar='isShowReturnCar' :car_info="car_info" :height="!!(car_info.exchange_package_info && car_info.exchange_package_info.activity_time)"/>
 			
 						<view class="card-right">
 							<view class="card-bg" @tap="navTravelingTrack">
@@ -96,7 +105,7 @@
 											style="width: 24rpx;height: 20rpx;"
 											src="https://qiniu.bms16.com/FltPK-o7KGS3dQ2pfQHXGSxOdzaN" alt=""></view>
 								</view>
-								<view class="card-top-text">{{car_info.current_mail}}<text class="font_24">km</text>
+								<view class="card-top-text">{{isTrackOrAll?car_info.current_mail:car_info.total_mil}}<text class="font_24">km</text>
 								</view>
 							</view>
 			
@@ -168,7 +177,9 @@
 			<IosUnlockAuth :authStepList="authStepList" :value="isShowPermission" @closePermission="closePermission"
 				v-else-if="isShowPermission && (platform === 'ios')" />
 		</view>
-		<returnCar :isShowReturnCar="isShowReturnCar" typePage="index" @closeShowReturnCarBtn="()=>isShowReturnCar=false"
+		
+		
+		<returnCar :isShowReturnCar='isShowReturnCar' typePage="index" @closeShowReturnCarBtn="isShowReturnCar=false"
 			@navStoreBtn="navStoreBtn" @immediatelyReturnBtn="immediatelyReturnBtn" />
 	</view>
 </template>
@@ -197,6 +208,11 @@
 	let bluetooth = require('@/common/bluetooth.js');
 
 	export default {
+		watch: {
+			'car_info.sar_sn'(newValue, oldValue) {
+				
+			}
+		},
 		data() {
 			return {
 				orderInfo:{},
@@ -293,6 +309,10 @@
 			// #endif
 
 		},
+		
+		onHide(){
+			this.clearIntervalTimer()
+		},
 
 		// 分享给好友
 		onShareAppMessage: function(res) { //发送给朋友
@@ -488,7 +508,7 @@
 					uni.hideLoading();
 					if (resp.data.code === 200) {
 						resp.data.data.car_sn = car_sn
-						const _car_image=resp.data.data.model_images?resp.data.data.model_images.split(','):[]
+						const _car_image=resp.data.data.model_images?resp.data.data.model_images.split(','):['https://qiniu.bms16.com/Fg8_p7083jpsy8BXG4bR6yMs7jQX']
 						me.setData({
 							car_info: resp.data.data,
 							car_image:_car_image
@@ -496,7 +516,8 @@
 						uni.setStorageSync('car_info', this.car_info);
 						const app=getApp()
 						//车辆离线连接蓝牙
-						if(me.car_info.online==1){
+						console.log('me.car_info.online',me.car_info.online);
+						if(me.car_info.online==0){
 							me.loadBluetooth()
 						}
 						
@@ -511,11 +532,8 @@
 							this.isOverdueShow = false
 							app.globalData.isOverdueShow=false
 						}
-						if(!this.time){
-							// this.time = setInterval(()=>{
-							// 	this.loadCarDetail(car_sn)
-							// },5000)
-						}
+						console.log('this.time',this.time);
+						
 					} else {
 						// common.simpleToast(resp.data.msg);
 					}
@@ -563,9 +581,8 @@
 			},
 			tapReturnCar() {
 				this.overdueMoneyFn(this.car_info.car_sn)
-				this.setData({
-					isShowReturnCar: true
-				})
+				this.isShowReturnCar = true
+				console.log(this.isShowReturnCar)
 			},
 			//逾期费用计算
 			async overdueMoneyFn(car_sn) {

+ 1 - 1
pages/loginRegister/changePassword.vue

@@ -62,7 +62,7 @@ export default {
 			if(res[1].confirm){
 				let {data} = await http.postApi(config.API_FLK_ACCOUNT_IMODIFY_PASSWD,this.form)
 				if(data.code == 200){
-					common.simpleToast(this.$t('修改成功,请重新登录'))
+					common.simpleToast(this.$t('修改成功') + ',' + this.$t('请重新登录'))
 					storage.removeUserToken()
 					uni.removeStorageSync('USER_INFO_DATA')
 					uni.reLaunch({

+ 10 - 5
pages/loginRegister/login.vue

@@ -2,7 +2,7 @@
     <view class="zx-page-linear login-page">
 		<navBar type="login" left="0" bgColor="transparent"></navBar>
       <view class="title-wrap">
-        <view class="title">{{ $t('欢迎来到') }}FRANCO MORINI</view>
+        <view class="title">{{ $t('欢迎来到') }} <br> FRANCO MORINI</view>
         <view class="sub-title">{{ $t('邮箱密码登录') }}</view>
       </view>
       <view class="main">
@@ -17,6 +17,7 @@
             :isPassword="form.passwd"
         />
         <view 
+			v-if="Language == 'zh'"
           :class="['agreement-row', checkShakeObj.agreemen && 'shake']" 
           @tap="isCheckAgreement = !isCheckAgreement"
         >
@@ -37,7 +38,7 @@
           </view>
           <view class="split-line"/>
           <view class="register" @tap="routerLink('/pages/loginRegister/register')">
-            {{ $t('没有账号') + ' ' + $t('立即注册') }}
+            {{ $t('立即注册') }}
           </view>
         </view>
 <!--        <view class="other-type-login">
@@ -57,10 +58,14 @@
 	const http = require('@/common/http.js');
   const common = require('@/common/common.js');
 	const storage = require('@/common/storage.js');
+	import {
+		Language
+	} from '@/utils/util.js'
   export default {
     data() {
       return {
         QINIU_URL,
+		Language:Language,
         isCheckAgreement: false,
         checkShakeObj: {
           email: false,
@@ -101,7 +106,7 @@
         uni.showToast({ title: message, icon: 'none' })
       },
       loginHandle() {
-        if (!this.isCheckAgreement) {
+        if (!this.isCheckAgreement && this.Language == 'zh') {
           this._applyCheck('agreemen', this.$t('请勾选用户协议和隐私政策'))
           return
         }
@@ -140,7 +145,7 @@
             font-weight: 800;
             font-size: 56rpx;
             color: #060809;
-            line-height: 56rpx;
+            line-height: 76rpx;
             text-align: left;
             font-style: normal;
             margin-bottom: 24rpx;
@@ -196,7 +201,7 @@
         }
   
         .register-row {
-            margin: 32rpx 80rpx 0;
+            margin: 32rpx 70rpx 0;
             font-family: PingFangSC, PingFang SC;
             font-weight: bold;
             font-size: 28rpx;

+ 8 - 3
pages/loginRegister/register.vue

@@ -17,6 +17,7 @@
             isPassword
         />
         <view 
+			v-if="Language == 'zh'"
           :class="['agreement-row', checkShakeObj.agreemen && 'shake']" 
           @tap="isCheckAgreement = !isCheckAgreement"
         >
@@ -46,6 +47,9 @@ import NoticeDialog from '@/component/comPopup/Notice.vue'
 import ZxInput from './components/ZxInput.vue'
 const config = require('@/common/config.js');
 const http = require('@/common/http.js');
+	import {
+		Language
+	} from '@/utils/util.js'
 export default {
     components: {
         NoticeDialog,
@@ -53,6 +57,7 @@ export default {
     },
     data() {
         return {
+			Language:Language,
             isCheckAgreement: false,
             isSendSucceed: false,
             form: {},
@@ -92,7 +97,7 @@ export default {
 		    return regex.test(password);
 		},
         submit() {
-            if (!this.isCheckAgreement) {
+            if (!this.isCheckAgreement && this.Language == 'zh') {
                 this._applyCheck('agreemen', this.$t('请勾选用户协议和隐私政策'))
                 return
             }
@@ -102,7 +107,7 @@ export default {
             }
 			
 			if(!this.validatePassword(this.form.passwd) || !this.validatePassword(this.form.second_passwd)){
-				 uni.showToast({ title: this.$t('请输入8-18位密码,包含字母数字'), icon: 'none' })
+				 uni.showToast({ title: this.$t('请输入')+'8-18'+this.$t('位密码,包含字母数字'), icon: 'none' })
 				return
 			}
 			
@@ -113,7 +118,7 @@ export default {
             http.postApi(config.API_REGISTER_EMAIL, {
                 ...this.form
             }, res => {
-                const { msg: title } = res.body
+                const { msg: title } = res.data
                 if (res.succeed) {
                     uni.showToast({ title:this.$t('注册邮件发送成功'), icon: 'none' })
                     this.isSendSucceed = true

+ 2 - 3
pages/message/index.vue

@@ -113,7 +113,6 @@
 					car_id: item.car_id,
 					msg_id: item.id
 				})
-
 				uni.navigateTo({
 					url: `/pages/message/detail?id=${item.car_id}`
 				})
@@ -245,7 +244,7 @@
 		.sys-msg-wrap {
 
 			.row {
-				margin-bottom: 40rpx;
+				margin-bottom: 20rpx;
 				display: flex;
 				justify-content: space-between;
 
@@ -286,7 +285,7 @@
 			}
 
 			.msg-item {
-				padding: 40rpx 0;
+				padding: 20rpx 0;
 				border-bottom: 1px solid #F1F4F5;
 
 				&:last-child {

+ 1 - 1
pages/my/my.scss

@@ -1,7 +1,7 @@
 
 @import "@/libs/css/layout.scss";
 .container-view {
-    padding: 36rpx 32rpx 264rpx;
+    padding: 36rpx 32rpx 0rpx;
     box-sizing: border-box;
     .user-switch-row {
         display: flex;

+ 2 - 3
pages/my/my.vue

@@ -6,7 +6,7 @@
 		<!-- #ifdef APP -->
 		<view :style="{height: `${statusBarHeight}px`}"></view>
 		<!-- #endif -->
-		<view style="position: relative;z-index: 999999;"  class="user-switch-row">
+		<view style="position: fixed;z-index: 999999;right: 40rpx;"  class="user-switch-row">
 			<view  @click="routerLink({ url: '/pages/message/index?isSys=1',isLogin:1 })" class="news">
 				<view v-if="newsList.plate_count> 0" class="num">{{newsList.plate_count}}</view>
 				<image :src="QINIU_URL + 'FlL5BtEdMES2-mntjR9D3CX_LWYv'" class="message"
@@ -177,13 +177,12 @@ var request = require('@/common/request.js');
 				}
 			},
 			checkHandle_combo() {
-				
 				if(!this.car_info.sold_time){
 					this.$msg(this.$t('您还未购买车辆,购买车辆才可享受换电套餐'))
 					return
 				}
 				if(!this.car_info.battery_tag_info.tag_code){
-					this.$msg(this.$t('当前没有可更换的电池,购买车辆绑定电池后才可享受换电套餐'))
+					this.$msg(this.$t('当前电池存在未知型号,请联系门店处理!'))
 					return
 				}
 				if(!this.car_info.car_sn){

+ 26 - 2
pages/my/set.vue

@@ -21,7 +21,7 @@
 				</view>
 			</view>
 		</view>
-		<view class="zx-form-btn fix-bottom-btn logout-btn" @tap="handleQuit">{{ $t('退出登录') }}</view>
+		<view v-if='userInfo.user_name' class="zx-form-btn fix-bottom-btn logout-btn" @tap="handleQuit">{{ $t('退出登录') }}</view>
 	</view>
 </template>
 
@@ -36,6 +36,9 @@
 	const common = require('../../common/common.js');
 	import dayjs from 'dayjs'
 	import 'dayjs/locale/zh-cn';
+	import {
+		Language
+	} from '@/utils/util.js'
 	export default {
 		data() {
 			return {
@@ -62,7 +65,6 @@
 						title: this.$t('关于我们'),
 						url: '/pages/aboutMy/aboutMy',
 						textProp: 'version',
-						hideArrow: true
 					},
 					{
 						title: this.$t('隐私协议'),
@@ -76,6 +78,28 @@
 			}
 		},
 		onLoad() {
+			if(Language != 'zh'){
+				this.list =[{
+						title: this.$t('昵称'),
+						url: '',
+						textProp: 'nickname'
+					},
+					{
+						title: this.$t('注册时间'),
+						textProp: 'registrationTime',
+						hideArrow: true
+					},
+					{
+						title: this.$t('修改密码'),
+						url: '/pages/loginRegister/changePassword'
+					},
+					{
+						title: this.$t('关于我们'),
+						url: '/pages/aboutMy/aboutMy',
+						textProp: 'version',
+					}
+				]
+			}
 			let getAppBaseInfo = uni.getAppBaseInfo()
 			this.setData({
 				// app_logo: appConfig.app_logo,

+ 27 - 6
pages/orderStatus/orderStatus.vue

@@ -3,7 +3,7 @@
 	
 	<view class="container-view">
 		<view class="time-info">
-			<navBar bgColor="transparent" left="0"></navBar>
+			<navigation :scroll='scrollTop' type></navigation>
 			<view>
 				<view v-if="orderInfo.pay_status!=2">
 					<view class="get-time-view flex-row" v-if="orderInfo.pay_status == 0">{{ $t('待支付') }}</view>
@@ -24,8 +24,8 @@
 					<view class="get-time-view flex-row" v-if="orderInfo.order_status == 7">{{ $t('已完成') }}</view>
 					<view class="get-time-view flex-row"
 						v-if="orderInfo.order_status == 8||orderInfo.order_status == 9">{{ $t('已取消') }}</view>
-					<view class="get-time-view flex-row" v-if="orderInfo.order_status == 1 "><text>{{ $t('请于') }}</text><text
-							class="get-car-time">{{tools.formatTimeSecond( orderInfo.pick_up_time)}}</text><text>{{ $t('到门店取车') }}</text>
+					<view class="get-time-view " v-if="orderInfo.order_status == 1 "><text>{{ $t('请于') }}</text><text
+							class="get-car-time">{{tools.formatTimeSecond( orderInfo.pick_up_time)}} </text><text>{{ $t('到门店取车') }}</text>
 					</view>
 					<view v-if="orderInfo.order_status == 10">{{ $t('已完结') }}</view>
 				</block>
@@ -186,7 +186,7 @@
 			<!-- </view> -->
 		</view>
 
-		<view v-if="(orderInfo.hire_begin_time!=0&&orderInfo.hire_end_time!=0)||orderInfo.order_type!=3" class="return-info">
+		<view v-if="(orderInfo.hire_begin_time!=0&&orderInfo.hire_end_time!=0 && orderInfo.order_type!=3) && orderInfo.order_status!=5 && orderInfo.order_status!=6 " class="return-info">
 			<view class="return-top flex-row flex-between">
 				<view>{{ $t('取还时间') }}</view>
 				<view>
@@ -206,6 +206,15 @@
 				<view>{{tools.formatTimeDate(orderInfo.hire_end_time)}}</view> -->
 			</view>
 		</view>
+		
+		<view v-if="orderInfo.order_type == 3" class="return-info">
+			<view class="return-top flex-row flex-between">
+				<view>{{ $t('购买时间') }}</view>
+			</view>
+			<view class="return-bottom flex-row">
+				<view>{{dayjsFn(orderInfo.pay_time)}}</view>
+			</view>
+		</view>
 
 
 		<view v-if="orderInfo.order_status==2||orderInfo.order_status==3||orderInfo.order_status==4"
@@ -254,6 +263,9 @@
 					<view class="grow_1" v-if="(orderInfo.order_status == 5||orderInfo.order_status == 6||orderInfo.order_status == 7||orderInfo.order_status == 8||orderInfo.order_status == 9)">
 						<view  @tap="callStorePhone" class="link-phone-btn">{{$t('联系门店')}}</view>
 					</view>	
+					<view class="grow_1" v-if="orderInfo.order_type == 3">
+						<view  @tap="callStorePhone" class="link-phone-btn">{{$t('联系门店')}}</view>
+					</view>	
 			</view>
 		</block>
 		<!-- <view class="payment-info flex-row flex-between">
@@ -358,6 +370,9 @@
 			PayTypeModel,
 			carPlan
 		},
+		onPageScroll(e) {
+			this.scrollTop = e.scrollTop
+		},
 		data() {
 			return {
 				overdueData: {},
@@ -407,6 +422,9 @@
 		computed: {},
 
 		methods: {
+			dayjsFn(time){
+				return dayjs(time * 1000).format('YYYY-MM-DD HH:mm:ss')
+			},
 			getAddressName(latitude, longitude) {
 				const pData = {
 					lng: longitude,
@@ -602,7 +620,10 @@
 					if (resp.data.code === 200) {
 						me.orderInfo = resp.data.data.order_info
 						me.orderInfo.model_images = me.orderInfo.model_images.split(',')[0]
-						me.getAddressName(this.orderInfo.latitude,this.orderInfo.longitude)
+						if(!me.orderInfo.address){
+							me.getAddressName(me.orderInfo.latitude,me.orderInfo.longitude)
+						}
+						
 						// 
 						if (resp.data.data.order_info.model_id) {
 							me.loadCarInfo(resp.data.data.order_info.model_id)
@@ -973,7 +994,7 @@
 							tradeNO: resp.data.data.trade_no,
 							success: function(res) {
 								if (res.resultCode == 9000) {
-									common.simpleToast(this.$t('支付成功'));
+									common.simpleToast(me.$t('支付成功'));
 								}
 								setTimeout(function() {
 									me.bindOrderInfo()

+ 3 - 3
pages/package/package.css

@@ -9,7 +9,7 @@
 }
 
 
-.top-text {
+/* .top-text {
 	margin-left: 230rpx;
 	color: #FFFFFF;
 	font-size: 36rpx;
@@ -18,7 +18,7 @@
 	text-align: center;
 	font-style: normal;
 	font-family: PingFangSC, PingFang SC;
-}
+} */
 
 .package-card {
 	/* margin-top: -100rpx;
@@ -89,7 +89,7 @@
 .box-view {
 	padding-left: 24rpx;
 	padding-right: 24rpx;
-	margin-top: 210rpx;
+	margin-top: 93rpx;
 }
 
 .package-view {

+ 4 - 3
pages/package/package.vue

@@ -1,8 +1,8 @@
 <template>
 	<view class="container-view">
 		<view class="top-bg">
-			<Navigation :scroll='scrollTop'></Navigation>
-			<view :style="{height: `calc(${statusBarHeight}px + 100px)`}"></view>
+			<navigation whiteColor="true" type="true" :scroll='scrollTop' :name="$t('我的套餐')"></navigation>
+			<!-- <view :style="{height: `calc(${statusBarHeight}px + 100px)`}"></view> -->
 			<view class="package-card flex-row flex-between">
 				<view class="flex-row flex-column" style="align-items: flex-start;">
 					<view @click="$srcFn(`/pages/carList/carList`)" class="left-first flex-row">
@@ -47,6 +47,7 @@
 							style="color: #9FA7B7;">/{{item.total_day}}{{ $t('天') }}</text>
 					</view>
 				</view>
+				<!-- 套餐类型 1 天卡 2 次卡 3 天次卡 -->
 				<view v-if="item.package_type == 1" class="package-item">
 					<view class="item-title">{{ $t('免费换电数') }}</view>
 					<!-- <view style="color: #060809;" class="item-info">{{item.last_num}}{{ $t('次') }}</view> -->
@@ -58,7 +59,7 @@
 				</view>
 				<view v-if="item.package_type == 3" class="package-item">
 					<view class="item-title">{{ $t('免费换电数') }}</view>
-					<view style="color: #060809;" class="item-info">{{item.total_day}}{{ $t('天') }}/{{item.last_num}}{{ $t('次') }}</view>
+					<view style="color: #060809;" class="item-info">{{item.last_num}}/{{item.num}}{{ $t('次') }}</view>
 				</view>
 			</view>
 		</view>

+ 5 - 1
pages/powerSetting/powerSetting.vue

@@ -2,7 +2,7 @@
 		<view class="power-setting-main">
 			<navBar :name="$t('权限设置')" bgColor="transparent"></navBar>
 			<view class="flex-row power-setting-head">
-				<image class="head-img" :src="form.headimg"></image>
+				<image class="head-img" :src="form.headimg || defaultHeadImg"></image>
 				<view class="head-name">{{form.nickname}}</view>
 				<text class="head-email">{{form.email}}</text>
 			</view>
@@ -53,12 +53,16 @@
 <script>
 	var config = require('../../common/config_gyq.js');
 	var http = require('../../common/request.js');
+	import {
+		defaultHeadImg
+	} from '@/common/constant'
 	import {
 		msg
 	} from '../../utils/util.js';
 	export default {
 		data() {
 			return {
+				defaultHeadImg,
 				isSet:"",
 				target_user_id:0,
 				form: {

+ 4 - 4
pages/purchaseOrder/purchaseOrder.vue

@@ -90,13 +90,13 @@
 						<view>{{ $t('车辆租金') }}</view>
 						<view>
 							<!-- ¥{{(leaseTime * price_list[0].hire_price) /100}} -->
-							¥{{price+'x'+modelInfo.count}}
+							{{$()}}{{price+'x'+modelInfo.count}}
 							<text>{{leaseUnits}}</text>
 						</view>
 					</view>
 					<view class="flex-row flex-between" style="margin-bottom: 44rpx;">
 						<view>{{ $t('车辆押金') }}</view>
-						<view>¥{{modelInfo.deposit /100}}</view>
+						<view>{{$()}}{{modelInfo.deposit /100}}</view>
 					</view>
 
 					<view class="detail-money flex-row" style="padding-bottom: 44rpx;">
@@ -211,7 +211,7 @@
 					unitPrice: model_info.rental_setting.find(v => v.hire_duration_unit == model_info
 						.selectType)?.hire_price,
 					service_list: model_info.service_list || [],
-					price: model_info.totalPrice / 100,
+					price: model_info.price,
 					totalPrice: model_info.selectType != 100 ? ((model_info.totalPrice + model_info.deposit) / 100).toFixed(2) : ((model_info.sell_price) / 100).toFixed(2)
 				})
 			}
@@ -341,7 +341,7 @@
 					uni.hideLoading();
 					if (resp.data.code === 200) {
 						if (!resp.data.data.need_pay) {
-							common.simpleToast(this.$t('支付成功'));
+							common.simpleToast(me.$t('支付成功'));
 							me.order_sn = resp.data.data.order_sn;
 							me.sub_sn = resp.data.data.sub_sn;
 							me.setData({

+ 3 - 3
pages/service/components/carRentalList/carRentalList.vue

@@ -36,7 +36,7 @@
 								<view class="flex-row flex-between">
 									<view class="bottom-text">
 										{{ leaseUnitsResult }} <text
-											style="margin-left: 10rpx;">¥</text><text>{{item.model_list[0].hire_price}}</text>
+											style="margin-left: 10rpx;">{{$()}}</text><text>{{(item.model_list[0].hire_price / 100).toFixed(2)}}</text>
 									</view>
 								</view>
 							</view>
@@ -63,11 +63,11 @@
 								<view class="flex-row flex-between">
 									<view class="bottom-text">
 										{{ leaseUnitsResult }}<text
-											style="margin-left: 10rpx;">¥</text><text>{{(items.hire_price /100).toFixed(2)}}</text>
+											style="margin-left: 10rpx;">{{$()}}</text><text>{{(items.hire_price /100).toFixed(2)}}</text>
 									</view>
 									<view v-if="items.sell_price && isBuy" class="bottom-text">
 										{{ $t('购买') }}<text
-											style="margin-left: 10rpx;">¥</text><text>{{(items.sell_price /100).toFixed(2)}}</text>
+											style="margin-left: 10rpx;">{{$()}}</text><text>{{(items.sell_price /100).toFixed(2)}}</text>
 									</view>
 								</view>
 							</view>

+ 2 - 2
pages/service/components/leaseType/leaseType.vue

@@ -39,8 +39,8 @@
 		        </scroll-view>
 				
 				<view class="options-wrap">
-		            <view class="btn cancle" @click="closeLeaseType">取消</view>
-		            <view class="btn confirm" @click="chooseLeaseType">确定</view>
+		            <view class="btn cancle" @click="closeLeaseType">{{$t('取消')}}</view>
+		            <view class="btn confirm" @click="chooseLeaseType">{{$t('确定')}}</view>
 		        </view>
 				<view style="height: 170rpx;"></view>
 		    </view>

+ 0 - 1
pages/service/service.vue

@@ -305,7 +305,6 @@
 					common.simpleToast(data.msg);
 				}
 			},
-
 			getLocationPostion(centerLocation, markers) {
 				const locationData = {
 					longitude: centerLocation.longitude,

+ 7 - 3
pages/userManagement/userManagement.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="bgClass">
-		<navigation :whiteColor="true" :type="true" :name="$t('用车人管理')" />
+		<navigation whiteColor="true"  type="true" :name="$t('共享用户')" />
 		<view class="user-card">
 			<view class="flex-row align-center user-card-heard">
 				<img style="width: 48rpx;height: 48rpx;" src="https://qiniu.bms16.com/FieeNq75ybyjIzQO6fmNcdTlRsp5" alt="">
@@ -9,7 +9,7 @@
 			<view class="user-card-text">{{ $t('家人、朋友长期共用车辆,授权账户可以使用感应解锁,寻车定位,查看设置等功能;') }}</view>
 			<!-- <view v-for="(item,index) in userList" :key="index"> -->
 			<view @click="srcFn(`/pages/powerSetting/powerSetting?id=${item.target_user_id}`)" v-for="(item,index) of list" :key="index" class="user-list flex-row align-center">
-				<image class="user-heard-img" :src="item.headimg" mode="aspectFill"></image>
+				<image class="user-heard-img" :src="item.headimg || defaultHeadImg" mode="aspectFill"></image>
 				<view class="user-name-view">
 					<view class="user-name">{{item.nickname}}</view>
 					<view class="user-email">{{item.email}}</view>
@@ -27,9 +27,13 @@
 <script>
 	var config = require('../../common/config_gyq.js');
 	var http = require('../../common/request.js');
+	import {
+		defaultHeadImg
+	} from '@/common/constant'
 	export default {
 		data() {
 			return {
+				defaultHeadImg,
 				list:[],
 				car_info:{}
 			};
@@ -73,7 +77,7 @@
 		}
 	};
 </script>
-<style scoped>
+<style>
 .bgClass {
 	height: 396rpx;
 	background: url('https://qiniu.bms16.com/Fvu5ulYgrXiB_0cXs715TcvYYnsb') no-repeat;

+ 1 - 1
utils/gyq_utils.js

@@ -26,7 +26,7 @@ async function location() {
 }
 
 function htmlData(str){
-	return str.replace(/\<img/gi, '<img style="width:100%;height:auto;display:block" ')
+	return str.replace(/\<img/gi, '<img style="max-width:100%;height:auto;display:block" ')
 }
 
 

+ 2 - 4
utils/util.js

@@ -2,10 +2,8 @@ import dayjs from 'dayjs'
 import duration from 'dayjs/plugin/duration'
 dayjs.extend(duration);
 const systemInfo = uni.getSystemInfoSync();
-console.log(systemInfo.language)
-
- // const Language = systemInfo.language == 'zh_CN' ? 'zh' : 'en' // 'zh' | 'en'
- const Language ='zh' // 'zh' | 'en'
+// const Language = (systemInfo.language == 'zh-CN' || systemInfo.language == 'zh_CN') ? 'zh' : 'en' // 'zh' | 'en'
+const Language = 'en' // 'zh' | 'en'
 const formatTime = (date) => {
 	const year = date.getFullYear();
 	const month = date.getMonth() + 1;