lhl 2 år sedan
förälder
incheckning
c86028a168

+ 164 - 0
components/CustomCamera/APP/index.nvue

@@ -0,0 +1,164 @@
+<template>
+	<view>
+		<live-pusher id="livePusher" ref="livePusher" class="livePusher" mode="FHD" beauty="0" whiteness="0"
+			device-position="back" :auto-focus="true" :muted="true" :enable-camera="true" :enable-mic="true"
+			:zoom="true" :style="[{height: cameraHeight ,width:'750rpx'}]">
+
+		</live-pusher>
+		<cover-image v-if="coverImage" class="cover-image" :style="[{height:cameraHeight+'px',width:'750rpx'}]"
+			:src="coverImage" />
+		<view class="camera-options" :style="[{height:optionsHeight+'px'}]">
+			<view class="camera-options-left camera-item">
+				<image class="camera-item-image" src="/static/images/back.png" mode="scaleToFill"
+					@click="handleInstruct('back')"></image>
+			</view>
+			<view class="camera-options-center camera-item">
+				<image class="camera-item-image" src="/static/images/shutter.png" mode="scaleToFill"
+					@click="handleInstruct('shutter')"></image>
+			</view>
+			<!-- <view class="camera-options-ritht camera-item" @click="handleInstruct('reversal')">
+				<image class="camera-item-image" src="/static/images/reversal.png" mode="scaleToFill"></image>
+			</view> -->
+			<view class="camera-options-ritht camera-item">
+				<image class="camera-item-image" src="/static/images/album.png" mode="scaleToFill"
+					@click="handleInstruct('album')"></image>
+			</view>
+		</view>
+	</view>
+
+</template>
+
+<script>
+	// 这个组件仅限APP使用!!!
+	import config from '../config.js'
+	export default {
+		props: {
+			coverImageType: { //遮罩层的类型 (必须在config里面的定义的)
+				type: String,
+				default: 'portrait'
+			}
+		},
+		data() {
+			return {
+				livePusher: null,
+				ready: true,
+				cameraHeight: '', //相机画面宽度
+				optionsHeight: '', //操作台高度
+
+				coverImage: null,
+			}
+		},
+		mounted() {
+			this.cameraHeight = uni.getSystemInfoSync().screenHeight * 0.82
+			this.optionsHeight = uni.getSystemInfoSync().screenHeight * 0.18
+			this.init()
+			try {
+				this.coverImage = config[this.coverImageType]
+			} catch (e) {
+				uni.showToast({
+					title: '传入的coverImageType不存在',
+					icon: 'none'
+				})
+			}
+		},
+		methods: {
+			init() {
+				this.livePusher = uni.createLivePusherContext('livePusher', this);
+				setTimeout(() => {
+					this.startPreview()
+				}, 1000)
+			},
+			startPreview() {
+				this.livePusher.startPreview({
+					success: () => {
+						console.log('相机初始化成功');
+						switch (plus.os.name) {
+							case 'Android':
+								break;
+							case 'iOS':
+								this.livePusher.switchCamera()
+								break
+						}
+					},
+					fail: (err) => {
+						console.log(err)
+					}
+				});
+			},
+			handleInstruct(instruct) {
+				switch (instruct) {
+					// 返回
+					case 'back':
+						this.$emit('back')
+						break;
+						// 快门
+					case 'shutter':
+						if (this.ready) {
+							this.ready = false
+							this.livePusher.snapshot({
+								success: (res) => {
+									console.log(res)
+									this.ready = true
+									this.$emit('getImage', res.message.tempImagePath)
+								}
+							})
+						}
+						break;
+						// 反转
+					case 'reversal':
+						this.livePusher.switchCamera();
+						break;
+						// 相册
+					case 'album':
+						uni.chooseImage({
+							count: 1, //默认9
+							sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
+							sourceType: ['album'], //从相册选择
+							success: (res) => {
+								this.$emit('getImage', res.tempFilePaths[0])
+							}
+						})
+						break;
+				}
+			}
+		}
+	}
+</script>
+
+<style scoped>
+	.camera-background {
+		width: 100%;
+		height: 100%;
+		background-color: rgba(0, 0, 0, 0.3);
+	}
+
+	.cover-image {
+		position: fixed;
+		top: 0;
+		left: 0;
+		z-index: 99;
+	}
+
+	.camera-options {
+		flex-direction: row;
+		align-items: center;
+	}
+
+	.camera-item {
+		flex: 1;
+		flex-direction: row;
+		justify-content: center;
+		align-items: center;
+		height: 100%;
+	}
+
+	.camera-item .camera-item-image {
+		width: 80rpx;
+		height: 80rpx;
+	}
+
+	.camera-options-center .camera-item-image {
+		width: 120rpx;
+		height: 120rpx;
+	}
+</style>

+ 44 - 0
components/CustomCamera/README.md

@@ -0,0 +1,44 @@
+使用:
+
+<template>
+	<view>
+		<CustomCamera ref="CustomCamera" coverImageType="side" @back="back" @getImage="getImage" />
+	</view>
+</template>
+
+<script>
+	// #ifdef APP
+	import CustomCamera from "@/components/CustomCamera/APP/index.nvue"
+	// #endif
+	// #ifdef MP-WEIXIN
+	import CustomCamera from "@/components/CustomCamera/WeChat/index.vue"
+	// #endif
+	export default {
+		components: {
+			CustomCamera
+		},
+		methods: {
+			back() {
+				uni.navigateBack()
+			},
+			getImage(res) {
+				console.log(res)
+			}
+		}
+	}
+</script>
+
+记录:
+1.因为uniapp的camera组件只支持微信小程序,所以APP只能采用live-pusher组件来解决这个问题,当然live-pusher组件没有camera的性能好,而且必须是nvue文件(这些官方也有介绍[](https://uniapp.dcloud.net.cn/component/live-pusher.html))
+2.难点就是适配页面以及页面的布局,采用百分比布局更能适配各个手机端
+3.common 为公共布局组件 (app和小程序布局样式基本一致,只有相机那块是替换组件 所以布局可以抽离为一个公共的layout组件)
+
+
+遇到的问题:
+nvue组件下的“live-pusher”不能嵌套在“slot”插槽内,具体没深度研究。总之我把APP的组件单独写了一份!!!
+
+
+
+贴图自己可以放任意的遮罩图片
+
+我这边就放了三张(身份证人像面,身份证国徽面,人像框)

+ 83 - 0
components/CustomCamera/WeChat/Layout.vue

@@ -0,0 +1,83 @@
+<!-- 公共布局组件 -->
+<template>
+	<view class="custom-camera">
+		<view class="camera-wrap" :style="{height:cameraHeight+'px'}">
+			<slot></slot>
+		</view>
+		<view class="camera-options flex" >
+			<view class="camera-options-left camera-item" >
+				<image src="/static/images/back.png" mode="scaleToFill" @click="handleClikFn('back')"></image>
+			</view>
+			<view class="camera-options-center camera-item">
+				<image src="/static/images/shutter.png" mode="" @click="handleClikFn('shutter')" ></image>
+			</view>
+			<!-- <view class="camera-options-ritht camera-item" @click="handleClikFn('reversal')">
+				<image src="/static/images/reversal.png" mode="scaleToFill"></image>
+			</view> -->
+			<view class="camera-options-ritht camera-item">
+				<image src="/static/images/album.png" mode="" @click="handleClikFn('album')" ></image>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	// 提供一个相机的插槽位置
+	// 底部可以自定义最右侧按钮(相册/反转)
+	export default {
+		data() {
+			return {
+				cameraHeight: '', //相机画面宽度
+				optionsHeight: '', //操作区域
+			}
+		},
+		methods: {
+			handleClikFn(instruct) {
+				this.$emit('instruct', instruct)
+			}
+		},
+		mounted() {
+			this.cameraHeight = uni.getSystemInfoSync().screenHeight * 0.8
+			this.optionsHeight = uni.getSystemInfoSync().screenHeight * 0.2
+			console.log(this.optionsHeight)
+		},
+	}
+</script>
+
+<style lang="scss">
+	.custom-camera {
+		height: 100vh;
+		background-color: #000;
+
+		.camera-wrap {
+			// background-color: #f90;
+		}
+
+		.camera-options {
+			position: fixed;
+			height: 200rpx;
+			width: 750rpx;
+			bottom: 0;
+			background-color: #000;
+			justify-content: space-evenly;
+			align-items: center;
+			.camera-item {
+				flex-direction: row;
+				justify-content: center;
+				align-items: center;
+				// flex: 1;
+				image {
+					width: 80rpx;
+					height: 80rpx;
+				}
+			}
+
+			.camera-options-center {
+				image {
+					width: 120rpx;
+					height: 120rpx;
+				}
+			}
+		}
+	}
+</style>

+ 109 - 0
components/CustomCamera/WeChat/index.vue

@@ -0,0 +1,109 @@
+<template>
+	<Layout @instruct="handleInstruct">
+		<camera class="camera" mode="normal" :device-position="device" @error="error"
+			style="width: 100%; height: 100%;" resolution="750x1234">
+			<cover-image v-if="coverImage" :src="coverImage" style="width: 100%;height: 100%;"></cover-image>
+		</camera>
+	</Layout>
+</template>
+
+<script>
+	import Layout from './Layout.vue'
+	import config from '../config.js'
+	export default {
+		components: {
+			Layout
+		},
+		props: {
+			coverImageType: { //遮罩层的类型 (必须在config里面的定义的)
+				type: String,
+				default: 'portrait'
+			}
+		},
+		data() {
+			return {
+				device: 'back',
+				cameraContext: null,
+				shutterShow: false,
+				coverImage: null,
+			}
+		},
+		mounted() {
+			this.cameraContext = uni.createCameraContext();
+			try {
+				this.coverImage = config[this.coverImageType]
+			} catch (e) {
+				uni.showToast({
+					title: '传入的coverImageType不存在',
+					icon: 'none'
+				})
+			}
+		},
+		methods: {
+			error(err) {
+				console.log(err)
+			},
+			handleInstruct(instruct) {
+				switch (instruct) {
+					// 返回
+					case 'back':
+						this.$emit('back')
+						break;
+						// 快门
+					case 'shutter':
+						this.cameraContext.takePhoto({
+							quality: 'high',
+							success: (res) => {
+								// console.log(res)
+								this.$emit('getImage', res.tempImagePath)
+							}
+						})
+						break;
+						// 反转
+					case 'reversal':
+						this.device = this.device === 'back' ? 'front' : 'back'
+						break;
+						// 相册
+					case 'album':
+						uni.chooseImage({
+							count: 1, //默认9
+							sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
+							sourceType: ['album'], //从相册选择
+							success: (res) => {
+								this.$emit('getImage', res.tempFilePaths[0])
+							}
+						})
+						break;
+				}
+			}
+		}
+	}
+</script>
+
+<style scoped>
+	.camera-background {
+		width: 100%;
+		height: 100%;
+		background-color: rgba(0, 0, 0, 0.3);
+	}
+
+	.camera {
+		position: relative;
+	}
+
+	.shutter-light {
+		position: absolute;
+		top: 0;
+		left: 0;
+		z-index: 9;
+		width: 100%;
+		height: 100%;
+		background-color: #fff;
+		opacity: 0;
+		transition: opacity 0.1s ease-out;
+	}
+
+	.shutter-light-active {
+		opacity: 1;
+	}
+</style>

+ 5 - 0
components/CustomCamera/config.js

@@ -0,0 +1,5 @@
+export default {
+	side: '/static/masking/side.jpg', //身份证国徽面
+	front: '/static/masking/front.jpg', //身份证正面
+	portrait:'/static/masking/portrait.jpg', //半身照
+}

+ 2 - 2
manifest.json

@@ -1,5 +1,5 @@
 {
-    "name" : "卡羚能",
+    "name" : "卡羚能",
     "appid" : "__UNI__F0EBD91",
     "description" : "",
     "versionName" : "1.0.0",
@@ -174,7 +174,7 @@
     // "lazyCodeLoading" : "requiredComponents",
     // "requiredBackgroundModes" : [ "location" ]
     "h5" : {
-        "title" : "卡羚能",
+        "title" : "卡羚能",
         "domain" : "",
         "router" : {
             "base" : "/index/",

+ 96 - 90
pages.json

@@ -8,7 +8,7 @@
 					"titleNView": false
 				},
 				// #endif
-				"navigationBarTitleText": "卡羚能"
+				"navigationBarTitleText": "卡羚能"
 			}
 		},
 		{
@@ -30,66 +30,66 @@
 				"navigationStyle": "custom",
 				"navigationBarTitleText": "个人中心"
 			}
-		},
-		{
-			"path": "pages/product/reply",
-			"style": {
-				"navigationBarTitleText": "商品评价",
-				"app-plus": {
-					"titleNView": {
-						"type": "transparent"
-					}
-				}
-			}
-		},
-		{
-			"path": "pages/product/product",
-			"style": {
-				"navigationBarTitleText": "详情展示",
-				"app-plus": {
-					"titleNView": {
-						"type": "transparent"
-					}
-				}
-			}
-		},
-		{
-			"path": "pages/product/list",
-			"style": {
-				"enablePullDownRefresh": true,
-				"navigationBarTitleText": "商品列表"
-			}
-		},
-		{
-			"path": "pages/product/search",
-			"style": {
-				"enablePullDownRefresh": true,
-				// #ifdef APP-PLUS
-				"navigationStyle": "custom",
-				// #endif
-				// #ifndef MP || APP-PLUS
-				"app-plus": {
-					"titleNView": {
-						"searchInput": {
-							"backgroundColor": "rgba(231, 231, 231,.7)",
-							"borderRadius": "16px",
-							"placeholder": "请输入关键字",
-							"disabled": false,
-							"placeholderColor": "#606266",
-							"align": "left"
-						},
-						"buttons": [{
-							"text": "搜索",
-							"fontSize": "14",
-							"color": "#303133",
-							"background": "rgba(0,0,0,0)",
-							"width": "40px"
-						}]
-					}
-				},
-				// #endif
-				"navigationBarTitleText": "搜索"
-			}
+		},
+		{
+			"path": "pages/product/reply",
+			"style": {
+				"navigationBarTitleText": "商品评价",
+				"app-plus": {
+					"titleNView": {
+						"type": "transparent"
+					}
+				}
+			}
+		},
+		{
+			"path": "pages/product/product",
+			"style": {
+				"navigationBarTitleText": "详情展示",
+				"app-plus": {
+					"titleNView": {
+						"type": "transparent"
+					}
+				}
+			}
+		},
+		{
+			"path": "pages/product/list",
+			"style": {
+				"enablePullDownRefresh": true,
+				"navigationBarTitleText": "商品列表"
+			}
+		},
+		{
+			"path": "pages/product/search",
+			"style": {
+				"enablePullDownRefresh": true,
+				// #ifdef APP-PLUS
+				"navigationStyle": "custom",
+				// #endif
+				// #ifndef MP || APP-PLUS
+				"app-plus": {
+					"titleNView": {
+						"searchInput": {
+							"backgroundColor": "rgba(231, 231, 231,.7)",
+							"borderRadius": "16px",
+							"placeholder": "请输入关键字",
+							"disabled": false,
+							"placeholderColor": "#606266",
+							"align": "left"
+						},
+						"buttons": [{
+							"text": "搜索",
+							"fontSize": "14",
+							"color": "#303133",
+							"background": "rgba(0,0,0,0)",
+							"width": "40px"
+						}]
+					}
+				},
+				// #endif
+				"navigationBarTitleText": "搜索"
+			}
 		}
 	],
 	"subPackages": [{
@@ -125,17 +125,17 @@
 						"navigationBarTitleText": "申请退款"
 					}
 				},
-				{
-					"path": "createOrder",
-					"style": {
-						"navigationBarTitleText": "创建订单"
-					}
-				},
-				{
-					"path": "hxqm",
-					"style": {
-						"navigationBarTitleText": "券码"
-					}
+				{
+					"path": "createOrder",
+					"style": {
+						"navigationBarTitleText": "创建订单"
+					}
+				},
+				{
+					"path": "hxqm",
+					"style": {
+						"navigationBarTitleText": "券码"
+					}
 				}
 			]
 		},
@@ -159,17 +159,23 @@
 					"style": {
 						"navigationBarTitleText": "身份认证"
 					}
-				},
-				{
-					"path": "shopTab",
-					"style": {
-						// "enablePullDownRefresh": true,
-						"navigationStyle": "custom",
-						"navigationBarTitleText": "附近门店",
-						"app-plus": {
-							"titleNView": false
-						}
-					}
+				},
+				{
+					"path": "shopTab",
+					"style": {
+						// "enablePullDownRefresh": true,
+						"navigationStyle": "custom",
+						"navigationBarTitleText": "附近门店",
+						"app-plus": {
+							"titleNView": false
+						}
+					}
+				},
+				{
+					"path": "upimg",
+					"style": {
+						"navigationBarTitleText": ""
+					}
 				}
 			]
 		}, {
@@ -259,12 +265,12 @@
 					"style": {
 						"navigationBarTitleText": "邀请好友"
 					}
-				},
-				{
-					"path": "myRent",
-					"style": {
-						"navigationBarTitleText": "我的电池"
-					}
+				},
+				{
+					"path": "myRent",
+					"style": {
+						"navigationBarTitleText": "我的电池"
+					}
 				}
 
 			]
@@ -406,7 +412,7 @@
 	],
 	"globalStyle": {
 		"navigationBarTextStyle": "black",
-		"navigationBarTitleText": "卡羚能",
+		"navigationBarTitleText": "卡羚能",
 		"navigationBarBackgroundColor": "#FFFFFF",
 		"backgroundColor": "#f8f8f8"
 	},

+ 5 - 5
pages/index/index.vue

@@ -29,7 +29,7 @@
 					租电
 				</view>
 				<view class="tit-jj">
-					以租代购 方便省钱
+					信用免押
 				</view>
 			</view>
 			<view class="gn-btn" @click="navTo('/pages/shop/rent',1)">
@@ -42,14 +42,14 @@
 			</view>
 			<view class="gn-tit">
 				<view class="">
-					配件购买
+					租车
 				</view>
 				<view class="tit-jj">
-					扫码租电
+					信用免押
 				</view>
 			</view>
 			<view class="gn-btn" @click="navTo('/pages/shop/accessory')">
-				立即购买
+				立即租车
 			</view>
 		</view>
 		<!-- 功能区 ed-->
@@ -85,7 +85,7 @@
 				<view class="content-item flex">
 					<image src="../../static/icon/sy3.png" mode="" class="sy-icon"></image>
 					<view class="">
-						购买租电
+						租电/租车
 					</view>
 				</view>
 

+ 3 - 3
pages/index/share.vue

@@ -182,7 +182,7 @@
 			let path = '/pages/index/index?' + 'spread=' + this.userInfo.uid;
 			let data = {
 				path: path,
-				title: this.userInfo.nickname + '邀请您进入卡羚能',
+				title: this.userInfo.nickname + '邀请您进入卡羚能',
 			};
 			return data;
 		},
@@ -196,7 +196,7 @@
 				uni.share({
 					provider: 'weixin',
 					type: 0,
-					title:  this.userInfo.nickname + '邀请您进入卡羚能',
+					title:  this.userInfo.nickname + '邀请您进入卡羚能',
 					summary: '新一代智能电动车,手机开关锁、智能防盗、卫星定位,时刻掌握爱车位置。品牌大厂生产,质量好,款式多,售后优,所有车辆支持0元购新车!',
 					imageUrl:  '/pages/index/index?spread=' + this.userInfo.uid,
 					href: this.baseURL + this.urlFile + '/pages/public/register?spread=' + this.userInfo.uid
@@ -208,7 +208,7 @@
 				uni.share({
 					provider: 'weixin',
 					type: 0,
-					title:  this.userInfo.nickname + '邀请您进入卡羚能',
+					title:  this.userInfo.nickname + '邀请您进入卡羚能',
 					summary: '新一代智能电动车,手机开关锁、智能防盗、卫星定位,时刻掌握爱车位置。品牌大厂生产,质量好,款式多,售后优,所有车辆支持0元购新车!',
 					imageUrl:  '/pages/index/index?spread=' + this.userInfo.uid,
 					href: this.baseURL + this.urlFile + '/pages/public/register?spread=' + this.userInfo.uid

+ 1 - 1
pages/public/agreement.vue

@@ -7,7 +7,7 @@
 		</view>
 		<text class="margin-l-10">勾选代表同意</text>
 		<navigator url="./userAgreement">
-			<text class="font-color-greed">卡羚能服务</text>
+			<text class="font-color-greed">卡羚能服务</text>
 		</navigator>
 		<text>与</text>
 		<navigator url="./privacyAgreement">

+ 2 - 2
pages/public/domApp.vue

@@ -4,10 +4,10 @@
 			<image class="logoImg" src="../../static/img/domLogo.png" mode="aspectFit"></image>
 			<view class="text">
 				<view class="name">
-					卡羚能
+					卡羚能
 				</view>
 				<view class="content margin-t-20">
-					卡羚能智能电动车
+					卡羚能智能电动车
 				</view>
 			</view>
 			<view class="tipBox">

+ 3 - 3
pages/public/login.vue

@@ -5,7 +5,7 @@
 				<image class="banner-img" src="../../static/image/logo.png" mode="scaleToFill"></image>
 			</view>
 			<view class="logName">
-				卡羚能智能电动车
+				卡羚能智能电动车
 			</view>
 		</view>
 		<view class="login_text">
@@ -99,7 +99,7 @@
 					this.logout();
 					uni.showModal({
 						title: '提示',
-						content: '请先阅读同意《卡羚能服务》《隐私条例》',
+						content: '请先阅读同意《卡羚能服务》《隐私条例》',
 						showCancel: false,
 					});
 					return;
@@ -154,7 +154,7 @@
 				if(!this.checked){
 					uni.showModal({
 						title: '提示',
-						content: '请先阅读同意《卡羚能服务》《隐私条例》',
+						content: '请先阅读同意《卡羚能服务》《隐私条例》',
 						showCancel: false,
 					});
 					return;

+ 2 - 2
pages/public/phoneLogin.vue

@@ -5,7 +5,7 @@
 				<image class="banner-img" src="../../static/image/logo.png" mode="scaleToFill"></image>
 			</view>
 			<view class="logName">
-				卡羚能智能电动车
+				卡羚能智能电动车
 			</view>
 		</view>
 		<view class="login_text">
@@ -138,7 +138,7 @@
 				if (!obj.checked) {
 					uni.showModal({
 						title: '提示',
-						content: '请先阅读同意《卡羚能服务》《隐私条例》',
+						content: '请先阅读同意《卡羚能服务》《隐私条例》',
 						showCancel: false,
 					});
 					return;

+ 12 - 12
pages/public/privacyAgreement.vue

@@ -1,16 +1,16 @@
 <template>
 	<view class="content">
 		<view class="title">
-			卡羚能隐私及定位服务规则
+			卡羚能隐私及定位服务规则
 		</view>
 		<view class="lineSt margin-t-40">
-			为卡羚能租智能电动车平台、浙江卡羚能租智能科技有限公司提供相应服务之必须,您以自愿填写的方式提供注册所需的姓名、性别、电话以及其他类似的个人信息,则表示您已经了解并接受您个人信息的用途,同意卡羚能租智能电动车平台、浙江卡羚能租智能科技有限公司为实现该特定目的使用您的个人信息。除此个人信息之外,其他任何您发送或提供给卡羚能租智能电动车平台、浙江卡羚能租智能科技有限公司的材料、信息或文本(以下统称信息)均将被视为非保密和非专有的。卡羚能租智能电动车平台、浙江卡羚能租智能科技有限公司对这些信息不承担任何义务。同时如果您提交时没有特别声明的,可视为同意卡羚能租智能电动车平台、浙江卡羚能租智能科技有限公司及其授权人可以因商业或非商业的目的复制、透露、分发、合并和以其他方式利用这些信息和所有数据、图像、声音、文本及其他内容。您可阅读下面的隐私规则以了解更加详细的内容。
+			为卡羚能服智能电动车平台、浙江卡羚能服智能科技有限公司提供相应服务之必须,您以自愿填写的方式提供注册所需的姓名、性别、电话以及其他类似的个人信息,则表示您已经了解并接受您个人信息的用途,同意卡羚能服智能电动车平台、浙江卡羚能服智能科技有限公司为实现该特定目的使用您的个人信息。除此个人信息之外,其他任何您发送或提供给卡羚能服智能电动车平台、浙江卡羚能服智能科技有限公司的材料、信息或文本(以下统称信息)均将被视为非保密和非专有的。卡羚能服智能电动车平台、浙江卡羚能服智能科技有限公司对这些信息不承担任何义务。同时如果您提交时没有特别声明的,可视为同意卡羚能服智能电动车平台、浙江卡羚能服智能科技有限公司及其授权人可以因商业或非商业的目的复制、透露、分发、合并和以其他方式利用这些信息和所有数据、图像、声音、文本及其他内容。您可阅读下面的隐私规则以了解更加详细的内容。
 		</view>
 		<view class="lineSt strongItem">
 			隐私规则
 		</view>
 		<view class="lineSt">
-			卡羚能租智能电动车平台、浙江卡羚能租智能科技有限公司非常重视对您的个人隐私保护,我们将按照本规则收集、使用、共享和保护您的个人信息。在您使用卡羚能租智能电动车平台、浙江卡羚能租智能科技有限公司的产品及服务前,请您仔细阅读并全面了解本规则。如果您是未成年人,您的监护人需要仔细阅读本规则并同意您依照本规则使用我们的产品或服务。对于本规则中与您的权益存在重大关系的条款,我们已将字体加粗以提示您注意。当您浏览、访问卡羚能租智能电动车平台、浙江卡羚能租智能科技有限公司平台及/或使用卡羚能租智能电动车平台、浙江卡羚能租智能科技有限公司的产品或服务时,即表示您已经同意我们按照本规则来收集、使用、共享和保护您的个人信息。
+			卡羚能服智能电动车平台、浙江卡羚能服智能科技有限公司非常重视对您的个人隐私保护,我们将按照本规则收集、使用、共享和保护您的个人信息。在您使用卡羚能服智能电动车平台、浙江卡羚能服智能科技有限公司的产品及服务前,请您仔细阅读并全面了解本规则。如果您是未成年人,您的监护人需要仔细阅读本规则并同意您依照本规则使用我们的产品或服务。对于本规则中与您的权益存在重大关系的条款,我们已将字体加粗以提示您注意。当您浏览、访问卡羚能服智能电动车平台、浙江卡羚能服智能科技有限公司平台及/或使用卡羚能服智能电动车平台、浙江卡羚能服智能科技有限公司的产品或服务时,即表示您已经同意我们按照本规则来收集、使用、共享和保护您的个人信息。
 		</view>
 		<view class="lineSt strongItem">
 			信息的收集范围
@@ -46,10 +46,10 @@
 			您授权我们通过以下方法收集您的个人信息:
 		</view>
 		<view class="lineSt">
-			我们将收集和储存在您浏览、访问卡羚能租智能电动车平台、浙江卡羚能租智能科技有限公司平台及/或使用卡羚能租智能电动车平台、浙江卡羚能租智能科技有限公司的产品或服务时主动向我们提供的信信息;
+			我们将收集和储存在您浏览、访问卡羚能服智能电动车平台、浙江卡羚能服智能科技有限公司平台及/或使用卡羚能服智能电动车平台、浙江卡羚能服智能科技有限公司的产品或服务时主动向我们提供的信信息;
 		</view>
 		<view class="lineSt">
-			我们将收集和储存我们在向您提供卡羚能租智能电动车平台、浙江卡羚能租智能科技有限公司的产品或服务的过程中记录的与您有关的信息;
+			我们将收集和储存我们在向您提供卡羚能服智能电动车平台、浙江卡羚能服智能科技有限公司的产品或服务的过程中记录的与您有关的信息;
 		</view>
 		<view class="lineSt">
 			我们将收集和储存您通过我们的客服人员及/或其他渠道主动提交或反馈的信息;
@@ -67,19 +67,19 @@
 			您授权我们出于以下用途使用您的个人信息:
 		</view>
 		<view class="lineSt">
-			向您提供卡羚能租智能电动车平台、浙江卡羚能租智能科技有限公司的产品及服务,并进行卡羚能租智能电动车平台、浙江卡羚能租智能科技有限公司相关网站及APP的管理和优化;
+			向您提供卡羚能服智能电动车平台、浙江卡羚能服智能科技有限公司的产品及服务,并进行卡羚能服智能电动车平台、浙江卡羚能服智能科技有限公司相关网站及APP的管理和优化;
 		</view>
 		<view class="lineSt">
-			提升和改善卡羚能租智能电动车平台、浙江卡羚能租智能科技有限公司现有产品及服务的功能和质量,包括但不限于产品及服务内容的个性化定制及更新;
+			提升和改善卡羚能服智能电动车平台、浙江卡羚能服智能科技有限公司现有产品及服务的功能和质量,包括但不限于产品及服务内容的个性化定制及更新;
 		</view>
 		<view class="lineSt">
-			开展卡羚能租智能电动车平台、浙江卡羚能租智能科技有限公司产品及服务相关的市场活动,向您推送最新的市场活动信息及优惠方案;
+			开展卡羚能服智能电动车平台、浙江卡羚能服智能科技有限公司产品及服务相关的市场活动,向您推送最新的市场活动信息及优惠方案;
 		</view>
 		<view class="lineSt">
 			设计、开发、推广全新的产品及服务;
 		</view>
 		<view class="lineSt">
-			提高卡羚能租智能电动车平台、浙江卡羚能租智能科技有限公司产品及服务安全性,包括但不限于身份验证、客户服务、安全防范、诈骗监测、存档和备份;
+			提高卡羚能服智能电动车平台、浙江卡羚能服智能科技有限公司产品及服务安全性,包括但不限于身份验证、客户服务、安全防范、诈骗监测、存档和备份;
 		</view>
 		<view class="lineSt">
 			协助行政机关、司法机构等有权机关开展调査,并遵守适用法律法规及其他向有权机关承诺之义务;
@@ -88,7 +88,7 @@
 			在收集信息之时所通知您的用途以及与上述任何用途有关的其他用途;
 		</view>
 		<view class="lineSt">
-			此外,我们可能向您发送与上述用途有关的信息和通知,包括但不限于为保证服务完成所必须的验证码、使用产品或服务时所必要的推送通知、当前费用优惠及减免信息、关于卡羚能租智能电动车平台、浙江卡羚能租智能科技有限公司产品或服务的新闻以及市场活动及优惠促销信息。
+			此外,我们可能向您发送与上述用途有关的信息和通知,包括但不限于为保证服务完成所必须的验证码、使用产品或服务时所必要的推送通知、当前费用优惠及减免信息、关于卡羚能服智能电动车平台、浙江卡羚能服智能科技有限公司产品或服务的新闻以及市场活动及优惠促销信息。
 		</view>
 		<view class="lineSt strongItem">
 			信息的共享
@@ -124,10 +124,10 @@
 			您访问的第三方网站经营者、您使用的第三方服务提供者和通过我们获取您的个人信息的第三方可能有自己的隐私权保护规则以及获取您个人信息的方法和措施,这些第三方的隐私权保护规则、获取个人信息的方法和措施将不会受到我们的控制。虽然我们将与可能接触到您的个人信息的我们的合作方等第三方签署保密协议并尽合理的努力督促其履行保密义务,但我们无法保证第三方一定会按照我们的要求采取保密措施,我们亦不对第三方的行为及后果承担任何责任。
 		</view>
 		<view class="lineSt">
-			作为用户,您可根据您的意愿决定是否使用卡羚能租智能电动车平台、浙江卡羚能租智能科技有限公司平台的服务,是否主动提供个人信息。同时,您可以查看您提供给我们的个人信息及行程信息。如果您希望删除或更正您的个人信息,请联系我们的客服人员。
+			作为用户,您可根据您的意愿决定是否使用卡羚能服智能电动车平台、浙江卡羚能服智能科技有限公司平台的服务,是否主动提供个人信息。同时,您可以查看您提供给我们的个人信息及行程信息。如果您希望删除或更正您的个人信息,请联系我们的客服人员。
 		</view>
 		<view class="lineSt">
-			如果我们监测到您将卡羚能租智能电动车平台、浙江卡羚能租智能科技有限公司的产品及服务以及相关信息用于欺诈或非法目的,我们将会采取相应措施,包括但不限于中止或终止向您提供任何产品或服务。
+			如果我们监测到您将卡羚能服智能电动车平台、浙江卡羚能服智能科技有限公司的产品及服务以及相关信息用于欺诈或非法目的,我们将会采取相应措施,包括但不限于中止或终止向您提供任何产品或服务。
 		</view>
 	</view>
 </template>

+ 1 - 1
pages/public/register.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="container">
-		<view class="loginTitle"><text>注册卡羚能</text></view>
+		<view class="loginTitle"><text>注册卡羚能</text></view>
 		<view class="login_text">
 			<view class="login_input flex">
 				<view class="login_img">

+ 66 - 66
pages/public/userAgreement.vue

@@ -1,13 +1,13 @@
 <template>
 	<view class="content">
 		<view class="title">
-			卡羚能智能电动车使用及用户服务协议
+			卡羚能智能电动车使用及用户服务协议
 		</view>
 		<view class="margin-t-40">
-			感谢用户购买并使用卡羚能智能电动车。
+			感谢用户购买并使用卡羚能智能电动车。
 		</view>
 		<view class="lineSt">
-			欢迎用户与浙江卡羚能租智能科技有限公司(以下简称“本公司”)共同签署《卡羚能租APP平台用户使用协议》(以下简称“本协议”)并使用卡羚能租APP平台服务(以下简称“本产品”)。
+			欢迎用户与浙江卡羚能服智能科技有限公司(以下简称“本公司”)共同签署《卡羚能服APP平台用户使用协议》(以下简称“本协议”)并使用卡羚能服APP平台服务(以下简称“本产品”)。
 		</view>
 		<view class="lineSt">
 			本公司一向尊重并会严格保护用户在使用本产品时的合法权益(包括用户隐私、用户数据等)不受到任何侵犯。
@@ -28,7 +28,7 @@
 			&nbsp;
 		</view>
 		<view class="lineSt">
-			当用户按照注册页面提示填写个人信息、阅读并同意本协议且完成全部注册后即表示用户已经充分阅读、理解并接受本协议的全部内容,与本公司达成一致并成为卡羚能租智能电动车的使用人和卡羚能租平台服务用户。阅读本协议的过程中,如用户不同意本协议的相关内容,请用户立即停止注册程序,不再使用本产品。
+			当用户按照注册页面提示填写个人信息、阅读并同意本协议且完成全部注册后即表示用户已经充分阅读、理解并接受本协议的全部内容,与本公司达成一致并成为卡羚能服智能电动车的使用人和卡羚能服平台服务用户。阅读本协议的过程中,如用户不同意本协议的相关内容,请用户立即停止注册程序,不再使用本产品。
 		</view>
 		<view class="lineSt strongItem">
 			1、定义
@@ -37,16 +37,16 @@
 			在本协议中,除上下文有其他约定,下列表达均做如下解释:
 		</view>
 		<view class="lineSt">
-			1.1 卡羚能APP平台:指本公司旗下运营的电动车定位、售后服务互联网平台,以及其在IOS、安卓、windows等个人计算机或移动电话设备等终端系统上的客户端。
+			1.1 卡羚能APP平台:指本公司旗下运营的电动车定位、售后服务互联网平台,以及其在IOS、安卓、windows等个人计算机或移动电话设备等终端系统上的客户端。
 		</view>
 		<view class="lineSt">
-			1.2浙江卡羚能租智能科技有限公司:“卡羚能租”智能电动车的提供方、卡羚能租平台服务运营商。
+			1.2浙江卡羚能服智能科技有限公司:“卡羚能服”智能电动车的提供方、卡羚能服平台服务运营商。
 		</view>
 		<view class="lineSt">
-			1.3用户:指具备完全民事行为能力、具备相应驾驶资格的购买“卡羚能租”系列智能电动车并使用卡羚能租APP平台各项服务的使用人。
+			1.3用户:指具备完全民事行为能力、具备相应驾驶资格的购买“卡羚能服”系列智能电动车并使用卡羚能服APP平台各项服务的使用人。
 		</view>
 		<view class="lineSt">
-			1.4 产品:指“卡羚能”系列智能电动车。
+			1.4 产品:指“卡羚能”系列智能电动车。
 		</view>
 		<view class="lineSt">
 			1.5认证用户:指与本公司签订《本协议》并完成注册流程的用户。一个认证用户仅可以拥有一个账户,每个账户对应唯一的用户名。
@@ -56,10 +56,10 @@
 		</view>
 		<view class="lineSt">
 			1.7
-			购车服务:指本公司通过卡羚能APP平台向认证用户提供分期付款购买本公司所持有的电动自行车所有权,并由本公司收取尾款及提供售后服务的等相关行为,主要包括用户的在线注册登录、在线支付费用、在线充退押金、在线信用评级以及相对应的奖惩方案、在线智能预订车辆、智能车辆位置搜寻、智能开锁、智能锁车、评价及举报投诉、查询、分享用车历史记录、基于大数据的车辆研发设计以改进客户体验等。本公司和认证用户均应遵守本协议中设定的权利义务。
+			购车服务:指本公司通过卡羚能APP平台向认证用户提供分期付款购买本公司所持有的电动自行车所有权,并由本公司收取尾款及提供售后服务的等相关行为,主要包括用户的在线注册登录、在线支付费用、在线充退押金、在线信用评级以及相对应的奖惩方案、在线智能预订车辆、智能车辆位置搜寻、智能开锁、智能锁车、评价及举报投诉、查询、分享用车历史记录、基于大数据的车辆研发设计以改进客户体验等。本公司和认证用户均应遵守本协议中设定的权利义务。
 		</view>
 		<view class="lineSt">
-			1.8电动车经营者:是指在平台方提供电动车出售服务的卡羚能品牌电动车加盟商。
+			1.8电动车经营者:是指在平台方提供电动车出售服务的卡羚能品牌电动车加盟商。
 		</view>
 		<view class="lineSt strongItem">
 			2、协议范围及服务内容
@@ -74,10 +74,10 @@
 			2.2补充协议
 		</view>
 		<view class="lineSt">
-			用户明确同意,本公司有权根据需要时制订、修改本协议及相关规则,变更后的协议和规则一经公布,立即取代原协议及规则并自动生效。如用户不同意相关变更,应当立即停止使用卡羚能租APP平台服务,如用户继续使用卡羚能租APP平台服务,即表示用户已接受经修订的协议和规则。
+			用户明确同意,本公司有权根据需要时制订、修改本协议及相关规则,变更后的协议和规则一经公布,立即取代原协议及规则并自动生效。如用户不同意相关变更,应当立即停止使用卡羚能服APP平台服务,如用户继续使用卡羚能服APP平台服务,即表示用户已接受经修订的协议和规则。
 		</view>
 		<view class="lineSt">
-			2.3电动车经营者在卡羚能APP平台上以一次性支付或分期支付的形式向用户提供电动车售卖服务。
+			2.3电动车经营者在卡羚能APP平台上以一次性支付或分期支付的形式向用户提供电动车售卖服务。
 		</view>
 		<view class="lineSt strongItem">
 			3、用户注册与认证
@@ -86,7 +86,7 @@
 			3.1 用户资格
 		</view>
 		<view class="lineSt">
-			用户需确认,在用户开始通过用户认证程序获得具备使用卡羚能APP的资格前,用户应具备中华人民共和国法律规定的与用户行为相适应的民事行为能力(特别提示,用户应为符合骑行电动自行车上路的年龄(16周岁以上)及身体条件的健康人士。用户如未满16周岁或患有包括但不限于影响骑行的如癫痫、心脏病、高血压、暂时性眩晕、视力障碍、听觉障碍、残疾等各种疾病的,不得使用本服务)。用户不具备前述与用户行为相适应的民事行为能力,则用户及其监护人应依照法律规定承担因此而导致的一切后果。
+			用户需确认,在用户开始通过用户认证程序获得具备使用卡羚能APP的资格前,用户应具备中华人民共和国法律规定的与用户行为相适应的民事行为能力(特别提示,用户应为符合骑行电动自行车上路的年龄(16周岁以上)及身体条件的健康人士。用户如未满16周岁或患有包括但不限于影响骑行的如癫痫、心脏病、高血压、暂时性眩晕、视力障碍、听觉障碍、残疾等各种疾病的,不得使用本服务)。用户不具备前述与用户行为相适应的民事行为能力,则用户及其监护人应依照法律规定承担因此而导致的一切后果。
 		</view>
 		<view class="lineSt">
 			3.2注册信息和隐私保护
@@ -95,13 +95,13 @@
 			3.2.1注册信息
 		</view>
 		<view class="lineSt">
-			用户作为访客通过手机验证等程序注册卡羚能租APP平台后,用户即成为卡羚能租APP平台的用户并拥有自己的账户。卡羚能租APP平台帐号(即卡羚能租APP平台用户ID)的所有权归本公司所有,用户在完成注册申请手续后,即获得卡羚能APP平台账号的使用权。
+			用户作为访客通过手机验证等程序注册卡羚能服APP平台后,用户即成为卡羚能服APP平台的用户并拥有自己的账户。卡羚能服APP平台帐号(即卡羚能服APP平台用户ID)的所有权归本公司所有,用户在完成注册申请手续后,即获得卡羚能APP平台账号的使用权。
 		</view>
 		<view class="lineSt">
-			但当且仅当用户完成了实名认证程序成为卡羚能APP平台的认证用户后,用户方可使用购车服务。
+			但当且仅当用户完成了实名认证程序成为卡羚能APP平台的认证用户后,用户方可使用购车服务。
 		</view>
 		<view class="lineSt">
-			当用户按照实名认证程序提示填写信息、阅读并同意本协议且完成全部认证程序后,用户可获得卡羚能APP平台认证用户账户。用户应及时提供真实、完整、具体及准确的个人资料,符合完整、详尽、准确的要求。用户知晓并同意,因国家相关规定,本服务谢绝向无民事行为能力人及不满十八周岁的限制行为能力人提供。如果因用户提供的注册信息不真实而引起的问题及其产生的一切法律责任,由用户自行承担。
+			当用户按照实名认证程序提示填写信息、阅读并同意本协议且完成全部认证程序后,用户可获得卡羚能APP平台认证用户账户。用户应及时提供真实、完整、具体及准确的个人资料,符合完整、详尽、准确的要求。用户知晓并同意,因国家相关规定,本服务谢绝向无民事行为能力人及不满十八周岁的限制行为能力人提供。如果因用户提供的注册信息不真实而引起的问题及其产生的一切法律责任,由用户自行承担。
 		</view>
 		<view class="lineSt">
 			由于认证用户的账户关联到其本人的信用信息,故用户不得转让该账户,也不得许可或协助他人使用该认证用户账户使用购车服务,否则由此产生的一切责任均由用户承担连带责任。
@@ -131,7 +131,7 @@
 			本公司的上述行为,符合法律规定,无须承担相关法律责任。
 		</view>
 		<view class="lineSt">
-			(2)在用户使用本协议项下服务时,用户同意并将意味着不可撤销地授权本公司就服务过程中需要的其相关信息(包括但不限于用户的姓名、身份证号、联系地址、联系电话、IP地址、地理位置、行程信息等相关信息)进行收集、存储等,以用于优化、推广卡羚能APP平台软件以及本协议项下的服务。本公司可能会与第三方合作向用户提供相关的服务,或与关联企业合作提供服务;在此情况下,如该第三方同意承担与本公司同等的保护用户隐私的责任,则本公司有权将用户的注册数据等提供给该第三方。
+			(2)在用户使用本协议项下服务时,用户同意并将意味着不可撤销地授权本公司就服务过程中需要的其相关信息(包括但不限于用户的姓名、身份证号、联系地址、联系电话、IP地址、地理位置、行程信息等相关信息)进行收集、存储等,以用于优化、推广卡羚能APP平台软件以及本协议项下的服务。本公司可能会与第三方合作向用户提供相关的服务,或与关联企业合作提供服务;在此情况下,如该第三方同意承担与本公司同等的保护用户隐私的责任,则本公司有权将用户的注册数据等提供给该第三方。
 		</view>
 		<view class="lineSt">
 			(3)用户知晓并同意,本公司有权将用户的信息提供给信用查询机构及其它合作机构,用于验证用户信息的真实性,或者进一步查询用户的其他信息。用户授权信用查询机构及其它合作机构,可根据本公司提供的信息,及用户留存的信息进行对比分析并反馈相应查询结果或关联风险的判断。
@@ -143,7 +143,7 @@
 			3.3认证信息管理
 		</view>
 		<view class="lineSt">
-			3.3.1在用户认证过程中,用户应按卡羚能APP平台页面的提示准确、真实、完整地提供用户的个人信息(包阔并不限于用户的真实姓名、用户个人的身份证号、人脸识别等)和个人征信信息(包括并不限于中国人民银行征信报告、蚂蚁信用、微信支付分、芝麻信用等)。用户对认证程序所需收集的信息了解并同意,用户有义务保证其提供信息的真实性及有效性。
+			3.3.1在用户认证过程中,用户应按卡羚能APP平台页面的提示准确、真实、完整地提供用户的个人信息(包阔并不限于用户的真实姓名、用户个人的身份证号、人脸识别等)和个人征信信息(包括并不限于中国人民银行征信报告、蚂蚁信用、微信支付分、芝麻信用等)。用户对认证程序所需收集的信息了解并同意,用户有义务保证其提供信息的真实性及有效性。
 		</view>
 		<view class="lineSt">
 			3.3.2如果用户的认证信息有所变更,用户应当及时更新用户提供的信息,本公司将依法不定时地对用户的信息进行检查核实,用户应当配合提供最及时、真实、完整的信息。
@@ -152,7 +152,7 @@
 			如本公司根据用户最后一次提供的信息与用户联系未果,或用户未按本公司的要求及时提供信息,或用户提供的信息存在明显不实的,用户将针对上述情形承担其对自身、他人及本公司造成的全部损失与不利后果。
 		</view>
 		<view class="lineSt">
-			3.3.3开通购车及车辆使用权限。用户在成功通过用户认证程序并付费后,即可购买、使用卡羚能APP平台所提供的电动自行车。
+			3.3.3开通购车及车辆使用权限。用户在成功通过用户认证程序并付费后,即可购买、使用卡羚能APP平台所提供的电动自行车。
 		</view>
 		<view class="lineSt">
 			上述用户认证的审核和通过均由本公司最终决定。本公司可以根据用户上传的文件对其文件的真实性、合法性进行合理的质询和怀疑,并给予用户不通过认证的结果且无需对该结果做任何解释;用户可以通过再次申请认证或申诉进行重新认证。
@@ -161,13 +161,13 @@
 			3.4账户安全规范
 		</view>
 		<view class="lineSt">
-			3.4.1用户的账户为用户自行设置并由用户保管,本公司任何时候均不会主动要求用户提供其账户信息。因此,请务必保管好账户信息,账户安全由用户自行负责,请确保在每个上网时段结束时退出登录并以正确步骤关闭卡羚能APP。如果用户的账户因用户主动泄露或遭受他人攻击、诈骗等行为而造成的任何损失及后果,该等损失和后果均由用户自行承担。
+			3.4.1用户的账户为用户自行设置并由用户保管,本公司任何时候均不会主动要求用户提供其账户信息。因此,请务必保管好账户信息,账户安全由用户自行负责,请确保在每个上网时段结束时退出登录并以正确步骤关闭卡羚能APP。如果用户的账户因用户主动泄露或遭受他人攻击、诈骗等行为而造成的任何损失及后果,该等损失和后果均由用户自行承担。
 		</view>
 		<view class="lineSt">
 			3.4.2除本公司存在过错外,用户应对用户账户项下的所有行为和结果(包括但不限于购买电车、使用电动车、发布信息、披露信息、开放通讯录等)负责,无论该等行为和结果是否对用户自身或第三方造成任何损害。
 		</view>
 		<view class="lineSt">
-			3.4.3如发现任何未经授权使用用户账户登录卡羚能APP平台或其他可能导致用户账户遭窃、遗失的情况,建议用户立即联系卡羚能APP平台客服。用户须理解本公司对用户的任何请求采取行动均需要合理时间,除本公司存在过错外,本公司对在采取行动前已经产生的后果不承担任何责任。
+			3.4.3如发现任何未经授权使用用户账户登录卡羚能APP平台或其他可能导致用户账户遭窃、遗失的情况,建议用户立即联系卡羚能APP平台客服。用户须理解本公司对用户的任何请求采取行动均需要合理时间,除本公司存在过错外,本公司对在采取行动前已经产生的后果不承担任何责任。
 		</view>
 		<view class="lineSt">
 			3.5 用户承诺与保证
@@ -209,46 +209,46 @@
 			3.7.5. 用户不得删除或破坏包含在本产品中的任何版权声明或其他所有权标记。
 		</view>
 		<view class="lineSt">
-			3.8 卡羚能APP平台服务规则
+			3.8 卡羚能APP平台服务规则
 		</view>
 		<view class="lineSt">
-			经认证的用户可通过卡羚能APP平台使用购车服务。
+			经认证的用户可通过卡羚能APP平台使用购车服务。
 		</view>
 		<view class="lineSt">
-			3.8.1用户应遵守本协议项下用户的义务,用户可行使本协议项下用户的权利。用户应确保用户不会利用卡羚能APP平台进行任何违法行为或下述行为:
+			3.8.1用户应遵守本协议项下用户的义务,用户可行使本协议项下用户的权利。用户应确保用户不会利用卡羚能APP平台进行任何违法行为或下述行为:
 		</view>
 		<view class="lineSt">
-			(1)利用技术手段故意访问、记录、盗取、传播卡羚能APP平台的数据和相关信息;
+			(1)利用技术手段故意访问、记录、盗取、传播卡羚能APP平台的数据和相关信息;
 		</view>
 		<view class="lineSt">
 			(2)以任何方式侵犯他人的合法权益;
 		</view>
 		<view class="lineSt">
-			(3)干扰或破坏卡羚能APP平台、其服务器或其网络;
+			(3)干扰或破坏卡羚能APP平台、其服务器或其网络;
 		</view>
 		<view class="lineSt">
 			(4)未经合法授权而截取、篡改、收集、储存、使用、传播或删除其他用户的个人信息或提供的其他信息;
 		</view>
 		<view class="lineSt">
-			(5)不得利用卡羚能APP平台服务系统进行任何不利于本公司的行为;
+			(5)不得利用卡羚能APP平台服务系统进行任何不利于本公司的行为;
 		</view>
 		<view class="lineSt">
 			(6)未经本公司同意,不论电动车处于上锁或开锁状态,用户不得以除正常骑行外的任何其他方式将电动车或其任何部件转移至任何地区;
 		</view>
 		<view class="lineSt">
-			(7)不得以任何形式使用卡羚能APP平台服务侵犯本公司的商业利益,包括但不限于发布非经本公司许可的商业广告;
+			(7)不得以任何形式使用卡羚能APP平台服务侵犯本公司的商业利益,包括但不限于发布非经本公司许可的商业广告;
 		</view>
 		<view class="lineSt">
-			(8)不得利用卡羚能APP平台服务系统进行任何可能对互联网或移动网正常运转造成不利影响的行为;
+			(8)不得利用卡羚能APP平台服务系统进行任何可能对互联网或移动网正常运转造成不利影响的行为;
 		</view>
 		<view class="lineSt">
-			(9)不得利用卡羚能APP平台服务系统进行任何不利于本公司的行为;
+			(9)不得利用卡羚能APP平台服务系统进行任何不利于本公司的行为;
 		</view>
 		<view class="lineSt">
 			(10)其他未经合法授权的行为。
 		</view>
 		<view class="lineSt">
-			3.8.2 用户应确保用户在卡羚能APP平台上所发布和传播的内容不得包含下述信息:
+			3.8.2 用户应确保用户在卡羚能APP平台上所发布和传播的内容不得包含下述信息:
 		</view>
 		<view class="lineSt">
 			(1)违反宪法确定的基本原则的;
@@ -278,7 +278,7 @@
 			(9)侵犯他人知识产权或涉及第三方商业秘密及其他专有权利的;
 		</view>
 		<view class="lineSt">
-			(10)存在可能破坏、篡改、删除、影响卡羚能租APP平台任何系统正常运行或未经授权秘密获取卡羚能租APP平台及其他用户的数据、个人资料的病毒、木马、爬虫等恶意软件、程序代码的;
+			(10)存在可能破坏、篡改、删除、影响卡羚能服APP平台任何系统正常运行或未经授权秘密获取卡羚能服APP平台及其他用户的数据、个人资料的病毒、木马、爬虫等恶意软件、程序代码的;
 		</view>
 		<view class="lineSt">
 		 (11)危害社会公德,诋毁民族优秀文化的;
@@ -290,16 +290,16 @@
 			3.8.3用户同意本公司有权在提供网络服务过程中以各种方式投放各种商业性广告或其他任何类型的商业信息,并且,用户同意接受本公司通过电子邮件、或其他方式向用户发送商品促销或其他商业信息。用户同意本公司无须对前述广告或促销信息的内容负责,用户应自行审慎判断内容的正确性与商品或服务的质量。
 		</view>
 		<view class="lineSt">
-			3.8.4本公司针对某些特定的卡羚能APP平台服务的使用行为通过各种方式(包括但不限于网页公告、电子邮件、短信提醒等)做出的任何声明、通知、警示等内容视为本协议的一部分,用户使用该服务,视为用户知悉并同意该等声明、通知、警示的内容,如用户不同意该等声明、通知或警示,应当立即停止使用本服务。
+			3.8.4本公司针对某些特定的卡羚能APP平台服务的使用行为通过各种方式(包括但不限于网页公告、电子邮件、短信提醒等)做出的任何声明、通知、警示等内容视为本协议的一部分,用户使用该服务,视为用户知悉并同意该等声明、通知、警示的内容,如用户不同意该等声明、通知或警示,应当立即停止使用本服务。
 		</view>
 		<view class="lineSt">
-			3.8.5本公司有权对用户使用卡羚能APP平台服务(包括但不限于免费或付费服务)的情况进行审查和监督(包括但不限于对用户存储在本公司的内容进行审核),如用户在使用服务时违反上述任何规定,本公司有权要求用户改正或直接采取一切必要的措施(包括但不限于更改或删除用户的内容、暂停或终止用户使用本服务的权利)以减轻用户不当行为的影响。因用户自身行为需向第三人承担责任的,由用户自行承担,与本公司无关。
+			3.8.5本公司有权对用户使用卡羚能APP平台服务(包括但不限于免费或付费服务)的情况进行审查和监督(包括但不限于对用户存储在本公司的内容进行审核),如用户在使用服务时违反上述任何规定,本公司有权要求用户改正或直接采取一切必要的措施(包括但不限于更改或删除用户的内容、暂停或终止用户使用本服务的权利)以减轻用户不当行为的影响。因用户自身行为需向第三人承担责任的,由用户自行承担,与本公司无关。
 		</view>
 		<view class="lineSt">
-			3.8.6本公司有权基于其独立判断,在其认为可能发生危害卡羚能APP平台或本公司等的情形时(包括但不限于用户违反本协议第八条第1项下的原则),不经事前通知用户而先行暂停、中断或终止向用户提供本协议项下的全部或部分用户服务,且无需对用户或任何第三方承担任何责任。当用户因本条原因被暂停、中断或终止服务时,用户应按照本公司指示行事,否则将被视为违约,用户应承担本协议第十一条第2项下的违约责任,并且本公司保留追究用户法律责任的权利。
+			3.8.6本公司有权基于其独立判断,在其认为可能发生危害卡羚能APP平台或本公司等的情形时(包括但不限于用户违反本协议第八条第1项下的原则),不经事前通知用户而先行暂停、中断或终止向用户提供本协议项下的全部或部分用户服务,且无需对用户或任何第三方承担任何责任。当用户因本条原因被暂停、中断或终止服务时,用户应按照本公司指示行事,否则将被视为违约,用户应承担本协议第十一条第2项下的违约责任,并且本公司保留追究用户法律责任的权利。
 		</view>
 		<view class="lineSt">
-			3.8.7用户作为车辆的使用方或购买方,用户在申请使用卡羚能APP平台服务时,必须向本公司提供准确、真实的个人相关资料,且需通过本公司的认证后方能开始使用软件。如个人资料有任何变动,必须及时更新。更新过程中,本公司有权暂停该用户的使用权,经过本公司对更新信息的再次认证后方能继续使用软件。
+			3.8.7用户作为车辆的使用方或购买方,用户在申请使用卡羚能APP平台服务时,必须向本公司提供准确、真实的个人相关资料,且需通过本公司的认证后方能开始使用软件。如个人资料有任何变动,必须及时更新。更新过程中,本公司有权暂停该用户的使用权,经过本公司对更新信息的再次认证后方能继续使用软件。
 		</view>
 		<view class="lineSt strongItem">
 			4、费用
@@ -358,7 +358,7 @@
 			用户在使用电动车期间如与第三方发生纠纷应由纠纷双方自行解决,本公司不承担任何赔偿义务,如给本公司造成损失的,用户应向本公司承担赔偿义务。用户不得以此为由违反或拒绝遵守相关规定中之任何约定。
 		</view>
 		<view class="lineSt">
-			6.3 用户有义务接受本公司通过卡羚能APP平台自带的GPS定位功能对产品的行程监控及锁车服务。
+			6.3 用户有义务接受本公司通过卡羚能APP平台自带的GPS定位功能对产品的行程监控及锁车服务。
 		</view>
 		<view class="lineSt">
 			6.4 用户有义务妥善保管本产品,不得人为破坏、故意丢弃所选产品。若因用户本人使用原因导致产品毁损的,本公司可以提供维修服务,但用户应支付相应修理费及零部件更换的费用,同时不免除用户运营周期内的单日运营费用。
@@ -404,20 +404,20 @@
 			8、 著作权
 		</view>
 		<view class="lineSt">
-			8.1 用户同意本协议并成为卡羚能租APP平台用户的行为,仅使得用户本人得以按照本协议的规范使用卡羚能租APP平台的各项服务。用户与卡羚能租APP平台或本公司之间并不存在其他授权、合作、代理、委托、雇佣等关系。
+			8.1 用户同意本协议并成为卡羚能服APP平台用户的行为,仅使得用户本人得以按照本协议的规范使用卡羚能服APP平台的各项服务。用户与卡羚能服APP平台或本公司之间并不存在其他授权、合作、代理、委托、雇佣等关系。
 		</view>
 		<view class="lineSt">
 			8.2
-			用户了解卡羚能APP平台和相关专有保密资料的知识产权归属于本公司,除非本公司另行声明,卡羚能APP平台出售服务包含的所有产品、技术、软件、程序、数据及其他信息(包括但不限于文字、图像、图片、照片、音频、视频、图表、色彩、版面设计、电子文档)的所有知识产权(包括但不限于版权、商标权、专利权、商业秘密等)及相关权利均归本公司所有。
+			用户了解卡羚能APP平台和相关专有保密资料的知识产权归属于本公司,除非本公司另行声明,卡羚能APP平台出售服务包含的所有产品、技术、软件、程序、数据及其他信息(包括但不限于文字、图像、图片、照片、音频、视频、图表、色彩、版面设计、电子文档)的所有知识产权(包括但不限于版权、商标权、专利权、商业秘密等)及相关权利均归本公司所有。
 		</view>
 		<view class="lineSt">
-			用户了解卡羚能APP平台上的任何赞助广告或信息的知识产权归属于相关赞助广告或信息的提供商。用户了解并同意,未经知识产权所有人的书面明示授权,用户不得对上述知识产权实施包括但不限于出租、出借、出售、散布、复制、修改、转载、汇编、发表、出版、还原工程、反向汇编、反向编译,或以其它方式发现原始码等任何侵犯本公司权益的行为。
+			用户了解卡羚能APP平台上的任何赞助广告或信息的知识产权归属于相关赞助广告或信息的提供商。用户了解并同意,未经知识产权所有人的书面明示授权,用户不得对上述知识产权实施包括但不限于出租、出借、出售、散布、复制、修改、转载、汇编、发表、出版、还原工程、反向汇编、反向编译,或以其它方式发现原始码等任何侵犯本公司权益的行为。
 		</view>
 		<view class="lineSt">
-			8.3卡羚能租APP平台软件涉及的Logo、“卡羚能租电动车”等文字、图形及其组成,以及“卡羚能租电动车”其他标识、徵记、产品和服务名称均为本公司在中国和其它国家的商标,用户未经本公司书面授权不得以任何方式展示、使用或作其他处理,也不得向他人表明用户有权展示、使用、或作其他处理。
+			8.3卡羚能服APP平台软件涉及的Logo、“卡羚能服电动车”等文字、图形及其组成,以及“卡羚能服电动车”其他标识、徵记、产品和服务名称均为本公司在中国和其它国家的商标,用户未经本公司书面授权不得以任何方式展示、使用或作其他处理,也不得向他人表明用户有权展示、使用、或作其他处理。
 		</view>
 		<view class="lineSt">
-			8.4用户理解并同意授权卡羚能APP平台在宣传和推广中使用用户的名称、商标、标识,但仅限于表明用户属于本公司的用户或合作伙伴。
+			8.4用户理解并同意授权卡羚能APP平台在宣传和推广中使用用户的名称、商标、标识,但仅限于表明用户属于本公司的用户或合作伙伴。
 		</view>
 		<view class="lineSt strongItem">
 			9、 有限责任
@@ -426,23 +426,23 @@
 			9.1 由于互联网服务实时更新的性质,用户了解并同意,本公司不对下述内容承担任何保证责任,对该等原因对用户造成的任何损失,本公司不承担任何责任:
 		</view>
 		<view class="lineSt">
-			(1)卡羚能APP平台服务不受任何干扰、服务提供及时、安全可靠、不出现任何差错;
+			(1)卡羚能APP平台服务不受任何干扰、服务提供及时、安全可靠、不出现任何差错;
 		</view>
 		<view class="lineSt">
-			(2)使用卡羚能APP平台服务所取得的信息在任何情况下均正确可靠;
+			(2)使用卡羚能APP平台服务所取得的信息在任何情况下均正确可靠;
 		</view>
 		<view class="lineSt">
-			(3)用户经由卡羚能APP平台所购买的电动车符合用户的期望;
+			(3)用户经由卡羚能APP平台所购买的电动车符合用户的期望;
 		</view>
 		<view class="lineSt">
-			(4)是否通过卡羚能APP平台下载或取得的任何资料不会导致用户的个人电脑或移动设备有任何损坏或数据有任何流失。
+			(4)是否通过卡羚能APP平台下载或取得的任何资料不会导致用户的个人电脑或移动设备有任何损坏或数据有任何流失。
 		</view>
 		<view class="lineSt">
 			9.2
-			本公司负责「按现状」和「可得到」的状态向用户提供卡羚能APP平台的服务。除本协议内所做出的保证或本公司以书面形式做出的其他明示保证外,本公司未向用户做出任何形式的保证或承诺,包括但不限于商业适售性、特定目的之适用性或其他明示或暗示的保证。
+			本公司负责「按现状」和「可得到」的状态向用户提供卡羚能APP平台的服务。除本协议内所做出的保证或本公司以书面形式做出的其他明示保证外,本公司未向用户做出任何形式的保证或承诺,包括但不限于商业适售性、特定目的之适用性或其他明示或暗示的保证。
 		</view>
 		<view class="lineSt">
-			9.3本公司对卡羚能APP平台服务所涉的技术和信息的有效性,准确性,正确性,可靠性,质量,稳定,完整和及时性均不作承诺和保证。不保证本协议项下服务不受任何干扰,不保证电动车符合用户的期望,不保证通过卡羚能APP平台软件获得的任何资料不会导致用户的个人电脑或移动设备或任何数据有任何损害。
+			9.3本公司对卡羚能APP平台服务所涉的技术和信息的有效性,准确性,正确性,可靠性,质量,稳定,完整和及时性均不作承诺和保证。不保证本协议项下服务不受任何干扰,不保证电动车符合用户的期望,不保证通过卡羚能APP平台软件获得的任何资料不会导致用户的个人电脑或移动设备或任何数据有任何损害。
 		</view>
 		<view class="lineSt">
 			9.4不论在何种情况下,本公司均不对由于Internet连接故障,电脑,通讯或其他系统的故障,电力故障,罢工,劳动争议,暴乱,起义,骚乱,生产力或生产资料不足,火灾,洪水,风暴,爆炸,不可抗力,战争,政府行为,国际、国内法院的命令或第三方的不作为而造成的不能服务或延迟服务承担责任。
@@ -469,10 +469,10 @@
 			9.7用户了解并同意:在使用服务过程中可能存在来自任何他人的包括威胁性的、诽谤性的、令人反感的或非法的内容或行为或对他人权利的侵犯(包括知识产权)及匿名或冒名的信息的风险,该等风险应由用户自行承担,本公司对此不承担任何责任。
 		</view>
 		<view class="lineSt">
-			9.8用户理解安全骑行、停车的重要性,且保证在任何可能引起安全隐患的情况下均不得使用卡羚能租APP平台服务,并同意一切因使用卡羚能租APP平台服务而产生的纠纷和交通事故,均应由用户负责,并由权威部门认定的责任方承担责任,本公司概不负责赔偿。如有举证需要,本公司可以向有关部门提供相关资料作为证据。
+			9.8用户理解安全骑行、停车的重要性,且保证在任何可能引起安全隐患的情况下均不得使用卡羚能服APP平台服务,并同意一切因使用卡羚能服APP平台服务而产生的纠纷和交通事故,均应由用户负责,并由权威部门认定的责任方承担责任,本公司概不负责赔偿。如有举证需要,本公司可以向有关部门提供相关资料作为证据。
 		</view>
 		<view class="lineSt">
-			9.9用户理解并同意:卡羚能APP平台所提供的功能受制于中国的交通法律法规和管理条例,即与本产品的功能和条例发生冲突时,应以各地的交通法律法规和管理条例为最高准则。任何在使用卡羚能APP平台服务过程中直接或间接违反当地交通法律法规和管理条例的行为,该后果应由用户承担。如有举证需要,本公司可以向有关部门提供相关数据作为证据。
+			9.9用户理解并同意:卡羚能APP平台所提供的功能受制于中国的交通法律法规和管理条例,即与本产品的功能和条例发生冲突时,应以各地的交通法律法规和管理条例为最高准则。任何在使用卡羚能APP平台服务过程中直接或间接违反当地交通法律法规和管理条例的行为,该后果应由用户承担。如有举证需要,本公司可以向有关部门提供相关数据作为证据。
 		</view>
 		<view class="lineSt">
 			9.10本公司使用第三方电子支付服务,处理用户使用本服务相关的付款时,本公司将获取与用户使用服务相关的特定交易明细,在使用这些信息时本公司将严格遵守相关法律法规和公司各项政策。
@@ -502,7 +502,7 @@
 			(5)如用户采用不正当手段谋取利益的行为,包括向本公司工作人员及/或其关联人士提供财物、消费、款待或商业机会,或通过其他手段谋取不正当利益;
 		</view>
 		<view class="lineSt">
-			(6)如用户扰乱卡羚能租APP平台的秩序,以任何方式,刻意规避卡羚能租APP平台的各类规则或市场管控措施,或以不正当的方式获取、使用卡羚能租APP平台资源的行为;
+			(6)如用户扰乱卡羚能服APP平台的秩序,以任何方式,刻意规避卡羚能服APP平台的各类规则或市场管控措施,或以不正当的方式获取、使用卡羚能服APP平台资源的行为;
 		</view>
 		<view class="lineSt">
 			(7)如用户违反中国相关法律法规的规定;
@@ -512,22 +512,22 @@
 		</view>
 		<view class="lineSt">
 			10.2
-			为适应互联网平台发展和满足海量用户对高效优质服务的需求,用户理解并同意,本公司可在卡羚能APP平台规则中约定违约认定的程序和标准。如:本公司可依据用户的用户数据与海量用户数据的关系来认定用户是否构成违约;用户有义务对用户的数据异常现象进行充分举证和合理解释,否则将被认定为违约。
+			为适应互联网平台发展和满足海量用户对高效优质服务的需求,用户理解并同意,本公司可在卡羚能APP平台规则中约定违约认定的程序和标准。如:本公司可依据用户的用户数据与海量用户数据的关系来认定用户是否构成违约;用户有义务对用户的数据异常现象进行充分举证和合理解释,否则将被认定为违约。
 		</view>
 		<view class="lineSt">
-			10.3 为保障其他用户或卡羚能APP平台的正当权益,维持市场正常运营秩序,在用户违规处理期间本公司按照本规则规定的情形对用户采取违规处理措施,本公司没有义务在采取违规处理前通知用户:
+			10.3 为保障其他用户或卡羚能APP平台的正当权益,维持市场正常运营秩序,在用户违规处理期间本公司按照本规则规定的情形对用户采取违规处理措施,本公司没有义务在采取违规处理前通知用户:
 		</view>
 		<view class="lineSt">
-			(1)停止购车服务:指停止认证用户通过卡羚能APP平台使用电动自行车、电动摩托车的权利;
+			(1)停止购车服务:指停止认证用户通过卡羚能APP平台使用电动自行车、电动摩托车的权利;
 		</view>
 		<view class="lineSt">
 			(2)关闭账户:指删除用户的账户或停止用户的所有权限,并将用户列入黑名单,不再向用户提供任何服务;
 		</view>
 		<view class="lineSt">
-			(3)公示警告:指在卡羚能APP平台的管理系统等位置对其正在被执行的处理进行公示;
+			(3)公示警告:指在卡羚能APP平台的管理系统等位置对其正在被执行的处理进行公示;
 		</view>
 		<view class="lineSt">
-			本公司可将对用户上述违约行为处理措施信息以及其他经国家行政或司法机关生效法律文书确认的违法信息在卡羚能APP平台上予以公示。
+			本公司可将对用户上述违约行为处理措施信息以及其他经国家行政或司法机关生效法律文书确认的违法信息在卡羚能APP平台上予以公示。
 		</view>
 		<view class="lineSt strongItem">
 			11、赔偿责任
@@ -554,7 +554,7 @@
 			12.3如用户不同意变更事项,用户有权于变更事项确定的生效日前联系本公司反馈意见。如反馈意见得以采纳,本公司将酌情调整变更事项。
 		</view>
 		<view class="lineSt">
-			12.4如用户对已生效的变更事项仍不同意的,用户应当于变更事项确定的生效之日起停止使用卡羚能APP平台服务,变更事项对用户不产生效力;如用户在变更事项生效后仍继续使用卡羚能APP平台服务,则视为用户同意已生效的变更事项。
+			12.4如用户对已生效的变更事项仍不同意的,用户应当于变更事项确定的生效之日起停止使用卡羚能APP平台服务,变更事项对用户不产生效力;如用户在变更事项生效后仍继续使用卡羚能APP平台服务,则视为用户同意已生效的变更事项。
 		</view>
 		<view class="lineSt strongItem">
 			13、 通知
@@ -563,19 +563,19 @@
 			13.1用户同意本公司以以下合理的方式向用户送达各类通知:
 		</view>
 		<view class="lineSt">
-			(1)卡羚能APP平台公示的文案;
+			(1)卡羚能APP平台公示的文案;
 		</view>
 		<view class="lineSt">
-			(2)站内短信、卡羚能APP平台弹出消息、客户端推送的消息;
+			(2)站内短信、卡羚能APP平台弹出消息、客户端推送的消息;
 		</view>
 		<view class="lineSt">
-			(3)根据用户预留于卡羚能APP平台的联系方式发出的电子邮件、短信、函件等。
+			(3)根据用户预留于卡羚能APP平台的联系方式发出的电子邮件、短信、函件等。
 		</view>
 		<view class="lineSt">
 			13.2本公司向用户发出的任何通知,可采用电子邮件、网站或软件页面公开区域公告、个人网络区域提示、手机短信或常规信件等方式,且该等通知应自发送之日视为已向用户送达或生效。
 		</view>
 		<view class="lineSt">
-			13.3用户同意,用户向卡羚能APP平台发出的任何通知应发至本公司对外正式公布的联系信息,或使用其他本公司认可的其他通知方式进行送达。该等通知以本公司实际收到日为送达日。
+			13.3用户同意,用户向卡羚能APP平台发出的任何通知应发至本公司对外正式公布的联系信息,或使用其他本公司认可的其他通知方式进行送达。该等通知以本公司实际收到日为送达日。
 		</view>
 		<view class="lineSt strongItem">
 			14、协议的终止
@@ -587,7 +587,7 @@
 			用户有权通过以下任一方式终止本协议:
 		</view>
 		<view class="lineSt">
-			(1)用户不再继续使用卡羚能APP平台服务;
+			(1)用户不再继续使用卡羚能APP平台服务;
 		</view>
 		<view class="lineSt">
 			(2)变更事项生效前用户停止使用并明示不愿接受变更事项的。
@@ -614,13 +614,13 @@
 			(1)用户违反本协议约定,本公司依据违约条款终止本协议的;
 		</view>
 		<view class="lineSt">
-			(2)用户的用户行为存在异常,本公司合理怀疑用户可能存在违反本协议约定的行为,如果不终止本协议则可能对卡羚能APP平台或其他用户造成不利影响的;
+			(2)用户的用户行为存在异常,本公司合理怀疑用户可能存在违反本协议约定的行为,如果不终止本协议则可能对卡羚能APP平台或其他用户造成不利影响的;
 		</view>
 		<view class="lineSt">
 			(3)用户盗用他人账户、发布违禁信息、骗取他人财物、采取不正当手段谋利等行为,本公司依据本协议对用户的账户予以查封的;
 		</view>
 		<view class="lineSt">
-			(4)除上述情形外,因用户多次违反卡羚能APP平台相关规定且情节严重,本公司依据本协议对用户的账户予以查封的;
+			(4)除上述情形外,因用户多次违反卡羚能APP平台相关规定且情节严重,本公司依据本协议对用户的账户予以查封的;
 		</view>
 		<view class="lineSt">
 			(5)用户运营期结束后停止使用该账户达【2】年的;
@@ -638,7 +638,7 @@
 			14.4.2本协议终止后,本公司仍享有下列权利:
 		</view>
 		<view class="lineSt">
-			14.4.3继续保存用户留存于卡羚能APP平台的各类信息;
+			14.4.3继续保存用户留存于卡羚能APP平台的各类信息;
 		</view>
 		<view class="lineSt">
 			14.4.4对于用户过往的违约行为导致本公司损失的,本公司可依据本协议向用户追究违约责任,并要求用户承担损害赔偿责任,包括并不限于直接经济损失、商誉损失、对外支付的赔偿金、解款、律师费、诉讼费等。
@@ -668,7 +668,7 @@
 			16.1 本协议之订立、生效、解释、修订、补充、终止、执行与争议解决均适用中华人民共和国大陆地区法律;如法律无相关规定的,参照商业惯例及/或行业惯例。
 		</view>
 		<view class="lineSt">
-			16.2 用户因使用卡羚能租APP平台服务所产生及与卡羚能租APP平台服务有关的争议,由本公司与用户协商解决。协商不成时,任何一方均在广西壮族自治区向有管辖权的法院会提起诉讼;诉讼结果对双方均有约束力。
+			16.2 用户因使用卡羚能服APP平台服务所产生及与卡羚能服APP平台服务有关的争议,由本公司与用户协商解决。协商不成时,任何一方均在广西壮族自治区向有管辖权的法院会提起诉讼;诉讼结果对双方均有约束力。
 		</view>
 		<view class="lineSt">
 			16.3 本协议任一条款被视为废止、无效或不可执行,该条应视为可分的且并不影响本协议其余条款的有效性及可执行性。

+ 2 - 2
pages/public/workwork.vue

@@ -1,7 +1,7 @@
 <template>
 	<view class="content">
 		<view class=" " @click="openPhone">
-			浙江卡羚能科技有限公司
+			浙江卡羚能科技有限公司
 		</view>
 		<view class="margin-t-10">
 			联系地址:浙江,台州,路桥区 央钿大厦20楼
@@ -18,7 +18,7 @@
 			<text class="xy" @click="navTo('/pages/public/userAgreement')">《用户协议》</text>		
 		</view>
 		<view class="text margin-t-30">
-			卡羚能租是由浙江卡羚能租科技有限公司打造的新一代智能电动车品牌,电慧安是一家集智能设备制造、软件开发、销售贸易、物带动互、社会服务为一体的高科技企业,公司以便、惠、安为核心发展理念,以做物联网产业的推动者,互联网行业的服务者为立企初衷。 公司通过不断创新商业模式,打造产品和服务品牌,以生产销售智能型电动车为主,研发全智能电动车软硬件配套,打造卡羚能自主品牌,致力于成为新一代智能电动车领域的第一品牌。
+			卡羚能服是由浙江卡羚能服科技有限公司打造的新一代智能电动车品牌,电慧安是一家集智能设备制造、软件开发、销售贸易、物带动互、社会服务为一体的高科技企业,公司以便、惠、安为核心发展理念,以做物联网产业的推动者,互联网行业的服务者为立企初衷。 公司通过不断创新商业模式,打造产品和服务品牌,以生产销售智能型电动车为主,研发全智能电动车软硬件配套,打造卡羚能自主品牌,致力于成为新一代智能电动车领域的第一品牌。
 		</view>
 	</view>
 </template>

+ 1 - 1
pages/public/wxLogin.vue

@@ -105,7 +105,7 @@
 				if (!that.checked) {
 					uni.showModal({
 						title: '提示',
-						content: '请先阅读同意《卡羚能服务》《隐私条例》',
+						content: '请先阅读同意《卡羚能服务》《隐私条例》',
 						showCancel: false,
 					});
 					return;

+ 24 - 8
pages/shop/attestation.vue

@@ -44,17 +44,15 @@
 				<!-- #ifdef H5 -->
 				<image class="" :src="sfzz||this.urlFile + '/static/img/sfzz.png'" mode="widthFix"
 					@click="navCroper(664,414,'sfzz')"></image>
-				<!-- #endif -->
-				<!-- #ifndef H5 -->
-				<image class="" :src="sfzz||'/static/img/sfzz.png'" mode="widthFix" @click="navCroper(664,414,'sfzz')">
-				</image>
-				<!-- #endif -->
-				<!-- #ifdef H5 -->
 				<image class="" :src="sfzf||this.urlFile + '/static/img/sfzf.png'" mode="widthFix"
 					@click="navCroper(664,414,'sfzf')"></image>
 				<!-- #endif -->
 				<!-- #ifndef H5 -->
-				<image class="" :src="sfzf||'/static/img/sfzf.png'" mode="widthFix" @click="navCroper(664,414,'sfzf')">
+				<image class="" :src="sfzz||'/static/img/sfzz.png'" mode="widthFix"
+					@click="navTo('/pages/shop/upimg?type=front')">
+				</image>
+				<image class="" :src="sfzf||'/static/img/sfzf.png'" mode="widthFix"
+					@click="navTo('/pages/shop/upimg?type=side')">
 				</image>
 				<!-- #endif -->
 				<view class="">
@@ -120,7 +118,7 @@
 			// #ifdef H5
 			...mapState(['urlFile']),
 			// #endif
-			...mapState('user',['userInfo'])
+			...mapState('user', ['userInfo'])
 		},
 		onReachBottom() {
 
@@ -129,6 +127,24 @@
 
 		},
 		methods: {
+			upimgg(path, name) {
+				let that = this
+				that.upLoad(path).then((urldata) => {
+					console.log(urldata, '这里')
+					that[name] = urldata.url;
+				})
+			},
+			navTo(url) {
+				uni.navigateTo({
+					url
+				})
+			},
+			back() {
+				uni.navigateBack()
+			},
+			getImage(res) {
+				console.log(res)
+			},
 			subsfz() {
 				let that = this
 

+ 160 - 93
pages/shop/rent.vue

@@ -1,5 +1,11 @@
-<template>
+<template>
 	<view class="content">
+		<view class="top-tit">
+			<view class="tit">
+				为您展示【台州市】地区套餐,其他地域套餐待开放。
+			</view>
+			
+		</view>
 		<!-- 门店选择 -->
 		<view class="yt-list tc-wrap" @click="navTo('/pages/shop/shopTab?select=1')">
 			<view class="top-wrap flex">
@@ -29,23 +35,23 @@
 					</view>
 					<view class="addressBox flex">
 						<image class="iconA margin-r-10" src="../../static/icon/shopPhone.png" mode="">
-						
-						<text class="clamp">
-							{{selctStore.phone}}
-						</text>
+
+							<text class="clamp">
+								{{selctStore.phone}}
+							</text>
 					</view>
 					<view class="yysj">
 						营业时间:{{selctStore.day_time}}
 					</view>
-					
-					
+
+
 				</view>
 			</view>
 			<view class="store-wrap-empty" v-else>
 				选择门店
 			</view>
 		</view>
-		<!-- 套餐 -->
+		<!-- 套餐 -->
 		<view class="tc-wrap">
 			<view class="top-wrap flex">
 				<view class="top-left">
@@ -53,15 +59,17 @@
 				</view>
 			</view>
 			<view class="contet-list flex">
-				<view class="tc flex" v-for="(item,index) in tcList" :class="{'action': selectTcIndex == index}" @click="choosTc(index,item)">
-					<view class="tc-time">
-						{{item.month}}月
-					</view>
+				<view class="tc flex" v-for="(item,index) in tcList" :class="{'action': selectTcIndex == index}"
+					@click="choosTc(index,item)">
+
 					<view class="tc-price">
 						{{item.price}}
+						<text class="tc-time-t">
+							&nbsp;/&nbsp;{{item.day}}天
+						</text>
 					</view>
 					<view class="tc-time-price">
-					<text>{{(item.price*1/(item.month*1*30)).toFixed(2)}}</text>元/天
+						<text>{{(item.price*1/(item.day*1)).toFixed(2)}}</text>元/天
 					</view>
 				</view>
 			</view>
@@ -110,7 +118,7 @@
 			<view class="sysm" v-html="sm">
 			</view>
 		</view>
-		
+
 		<view class="yt-list">
 			<view class="yt-list-cell b-b" @click="payType='weixin'">
 				<view class="cell-tit flex">
@@ -143,7 +151,7 @@
 			</view>
 		</view>
 		<view class="ts">
-			
+
 		</view>
 		<view class="btm-btn flex">
 			<view class="pay-price" v-if="userInfo.battery_deposit == 1">
@@ -155,57 +163,68 @@
 			<view class="pay-btn" @click="toBuy" :class="{'zfz': loading}">
 				{{loading?'支付中':'立即支付'}}
 			</view>
-		</view>
-	</view>
-</template>
-
+		</view>
+	</view>
+</template>
+
 <script>
 	// #ifdef H5
 	import weixinObj from "@/plugin/jweixin-module/index.js";
 	// #endif
-	import { mapState,mapMutations} from 'vuex'
+	import {
+		mapState,
+		mapMutations
+	} from 'vuex'
 	import {
 		storeList,
 	} from '@/api/product.js';
 	import {
 		getUserInfo
 	} from '@/api/user.js';
-	import { orderPay } from '@/api/order.js'
-	import {getRents,rentCreate,details} from '@/api/index.js'
-	export default {
-		data() {
+	import {
+		orderPay
+	} from '@/api/order.js'
+	import {
+		getRents,
+		rentCreate,
+		details
+	} from '@/api/index.js'
+	export default {
+		data() {
 			return {
-				selctStore: {id: ''},
-				now_money: '',
+				selctStore: {
+					id: ''
+				},
+				now_money: '',
 				tcList: [],
 				selectTc: {},
 				selectTcIndex: 0,
 				payType: 'yue',
-				sm: '',//使用说明
-				loading: false,//是否支付中
-			}
+				sm: '', //使用说明
+				loading: false, //是否支付中
+			}
 		},
 		computed: {
-			...mapState('user', ['address','userInfo'])
-		},
-		onLoad() {
+			...mapState('user', ['address', 'userInfo'])
+		},
+		onLoad() {
 			this.getRents()
 			this.getSm()
-		},
-		onShow() {
-			this.userinfo()
-		},
-		onReachBottom() {
-
-		},
-		onReady() {
-
-		},
+		},
+		onShow() {
+			this.userinfo()
+		},
+		onReachBottom() {
+
+		},
+		onReady() {
+
+		},
 		methods: {
-			...mapMutations('user',['setUserInfo']),
+			...mapMutations('user', ['setUserInfo']),
 			// 获取使用说明
 			getSm() {
-				details({},1).then(res => {
+				details({}, 1).then(res => {
 					this.sm = res.data.content
 				})
 			},
@@ -226,15 +245,15 @@
 					this.now_money = data.now_money;
 					this.setUserInfo(data)
 				});
-			},
-			choosTc(index,item) {
+			},
+			choosTc(index, item) {
 				this.selectTcIndex = index
 				this.selectTc = item
 			},
 			getRents() {
 				getRents().then(res => {
-				this.tcList = res.data.rent
-				this.selectTc = this.tcList[0]
+					this.tcList = res.data.rent
+					this.selectTc = this.tcList[0]
 				})
 			},
 			paySuccessTo() {
@@ -249,7 +268,7 @@
 			},
 			toBuy() {
 				let that = this
-				if(that.selctStore.id == '') {
+				if (that.selctStore.id == '') {
 					return that.$api.msg('请选择门店')
 				}
 				that.loading = true
@@ -265,12 +284,12 @@
 					// #ifdef APP-PLUS
 					from: 'app', //来源
 					// #endif
-					pay_type: that.payType//支付方式
-				}).then(({
-						data,
-						status,
-						msg
-					}) => {
+					pay_type: that.payType //支付方式
+				}).then(({
+					data,
+					status,
+					msg
+				}) => {
 					if (data.status == 'ORDER_EXIST') {
 						uni.showModal({
 							title: '提示',
@@ -363,7 +382,7 @@
 							wx.requestPayment(data);
 							// #endif
 							// #ifdef APP
-							console.log( e.data.result.jsConfig,'返回数值');
+							console.log(e.data.result.jsConfig, '返回数值');
 							uni.requestPayment({
 								provider: 'wxpay',
 								orderInfo: e.data.result.jsConfig,
@@ -371,7 +390,7 @@
 									obj.paySuccessTo();
 								},
 								fail: (e) => {
-									console.log(e,'支付失败');
+									console.log(e, '支付失败');
 									uni.navigateTo({
 										url: '/pages/order/order?state=0'
 									});
@@ -380,7 +399,7 @@
 							// #endif
 						}
 						// #ifdef APP
-						if(obj.payType == 'ali'){
+						if (obj.payType == 'ali') {
 							uni.requestPayment({
 								provider: 'alipay',
 								orderInfo: e.data.result.jsConfig,
@@ -388,7 +407,7 @@
 									obj.paySuccessTo();
 								},
 								fail: (e) => {
-									console.log(e,'支付失败');
+									console.log(e, '支付失败');
 									uni.navigateTo({
 										url: '/pages/order/order?state=0'
 									});
@@ -405,27 +424,31 @@
 						obj.payLoding = false;
 						console.log(e);
 					});
-			},
-		}
-	}
-</script>
-
+			},
+		}
+	}
+</script>
+
 <style lang="scss" scoped>
 	.content {
 		padding-top: 1rpx;
 	}
-	.dy-wrap, .tc-wrap {
+
+	.dy-wrap,
+	.tc-wrap {
 		width: 702rpx;
 		background: #FFFFFF;
 		border-radius: 15rpx;
 		// padding: 25rpx 25rpx 45rpx;
 		margin: 20rpx auto;
-		
+
 	}
+
 	.contet-list {
 		flex-wrap: wrap;
 		justify-content: space-between;
 		padding: 0 25rpx 45rpx;
+
 		.tc {
 			width: 315rpx;
 			height: 212rpx;
@@ -435,6 +458,7 @@
 			margin-bottom: 20rpx;
 			flex-direction: column;
 			justify-content: center;
+
 			// align-items: center;
 			.tc-time {
 				font-size: 28rpx;
@@ -442,45 +466,60 @@
 				color: #00001A;
 				display: flex;
 				align-items: center;
+
 				image {
 					height: 34rpx;
 					margin-right: 10rpx;
 				}
 			}
+
 			.tc-price {
 				font-size: 55rpx;
 				font-weight: bold;
 				color: #52C696;
 				padding: 4rpx 0;
+
 				&::before {
 					content: '¥';
 					font-size: 20rpx;
-					
+
 				}
+
 				text {
 					font-size: 22rpx;
 					font-weight: 500;
 					text-decoration: line-through;
 					color: #999999;
 				}
+				.tc-time-t {
+					font-size: 28rpx;
+					font-weight: bold;
+					color: #00001A;
+					text-decoration: none;
+				}
 			}
+
 			.tc-time-price {
 				font-size: 22rpx;
 				font-weight: 500;
 				color: #999999;
+
 				text {
 					font-weight: bold;
 				}
 			}
 		}
+
 		.dy {
 			height: 187rpx;
 		}
+
 		.action {
 			background: #F3FFFB;
 			border: 2px solid #5FCCA7;
 		}
 	}
+
 	.top-wrap {
 		justify-content: space-between;
 		padding: 0 25rpx;
@@ -488,30 +527,34 @@
 		font-weight: bold;
 		color: #00001A;
 		height: 85rpx;
-		.top-left {
-			
-		}
+
+		.top-left {}
+
 		.top-right {
 			text {
 				font-size: 25rpx;
 				font-weight: 500;
 				color: #999999;
 			}
+
 			image {
 				height: 22rpx;
 				margin-left: 10rpx;
 			}
 		}
 	}
+
 	.sysm {
 		padding: 34rpx;
 		font-size: 22rpx;
 		font-weight: 500;
 		color: #666666;
 	}
+
 	.ts {
 		height: 200rpx;
 	}
+
 	.btm-btn {
 		width: 750rpx;
 		height: 100rpx;
@@ -519,22 +562,26 @@
 		bottom: 0;
 		background-color: #fff;
 		z-index: 999;
+
 		.pay-price {
 			padding-left: 33rpx;
 			flex-grow: 1;
 			font-size: 32rpx;
 			font-weight: 500;
 			color: #333333;
+
 			text {
-				font-size:48rpx;
+				font-size: 48rpx;
 				font-weight: 500;
 				color: #FF6B2E;
+
 				&::before {
 					content: '¥';
 					font-size: 28rpx;
 				}
 			}
 		}
+
 		.pay-btn {
 			flex-shrink: 0;
 			width: 287rpx;
@@ -547,12 +594,14 @@
 			color: #FFFFFF;
 		}
 	}
+
 	.yt-list {
 		background: #fff;
 		margin: 0 $page-row-spacing;
 		margin-top: 30rpx;
 		border-radius: 20rpx;
 	}
+
 	.yt-list-cell {
 		display: flex;
 		align-items: center;
@@ -560,26 +609,26 @@
 		padding: 10rpx 30rpx 10rpx 40rpx;
 		line-height: 70rpx;
 		position: relative;
-	
+
 		.checked,
 		.noChecked {
 			width: 36rpx;
 			height: 36rpx;
 		}
-	
+
 		.noChecked {
 			border: 1px solid $font-color-light;
 			border-radius: 100rpx;
 		}
-	
+
 		&.cell-hover {
 			background: #fafafa;
 		}
-	
+
 		&.b-b:after {
 			left: 30rpx;
 		}
-	
+
 		.cell-icon {
 			height: 32rpx;
 			width: 32rpx;
@@ -590,16 +639,16 @@
 			background: #f85e52;
 			border-radius: 4rpx;
 			margin-right: 12rpx;
-	
+
 			&.hb {
 				background: #ffaa0e;
 			}
-	
+
 			&.lpk {
 				background: #3ab54a;
 			}
 		}
-	
+
 		.cell-more {
 			align-self: center;
 			font-size: 24rpx;
@@ -607,85 +656,91 @@
 			margin-left: 8rpx;
 			margin-right: -10rpx;
 		}
-	
+
 		.cell-tit {
 			font-size: 26rpx;
 			color: $font-color-light;
 			margin-right: 10rpx;
-	
+
 			.orderIcon {
 				width: 48rpx;
 			}
 		}
-	
+
 		.cell-tip {
 			font-size: 26rpx;
 			color: $font-color-dark;
-	
+
 			&.disabled {
 				color: $font-color-light;
 			}
-	
+
 			&.active {
 				color: $base-color;
 			}
-	
+
 			&.red {
 				color: $base-color;
 			}
 		}
-	
+
 		&.desc-cell {
 			.cell-tit {
 				max-width: 90rpx;
 			}
 		}
-	
+
 		.desc {
 			text-align: right;
 			font-size: $font-base;
 			color: $font-color-light;
 		}
 	}
+
 	.store-wrap-empty {
 		text-align: center;
 		height: 100rpx;
 	}
+
 	.store-wrap {
 		background-color: #FFFFFF;
 		margin-bottom: 30rpx;
 		padding: 30rpx;
 		border-radius: 20rpx;
-		.list,.km{
+
+		.list,
+		.km {
 			color: $font-color-light;
 			font-size: $font-sm;
 		}
+
 		.logo {
 			height: 200rpx;
 			width: 200rpx;
 			border-radius: 20rpx;
 		}
-	
+
 		.title {
 			font-size: 36rpx;
 			color: $font-color-dark;
 		}
-	
+
 		.iconR {
 			height: 24rpx;
 		}
-	
+
 		.iconA {
 			width: 24rpx;
 			height: 24rpx;
 		}
-	
+
 		.addressBox {
 			font-size: 24rpx;
 			color: $font-color-light;
 			justify-content: flex-start;
 			padding: 10rpx 0;
 		}
+
 		.yysj {
 			display: inline-block;
 			// width: 239rpx;
@@ -701,7 +756,19 @@
 			margin-top: 10rpx;
 		}
 	}
+
 	.zfz {
 		background: #999 !important;
-	}
+	}
+	.top-tit {
+		width: 750rpx;
+		background-color: #fff;
+		padding: 10rpx;
+		.tit {
+			font-size: 28rpx;
+			background-color:rgba(108, 217, 192, 0.4);
+			border-radius: 5rpx;
+			padding: 10rpx;
+		}
+	}
 </style>

+ 26 - 2
pages/shop/shopTab.vue

@@ -63,7 +63,11 @@
 						</view>
 						<view class="yysj">
 							营业时间:{{item.day_time}}
-						</view>
+						</view>
+						
+					</view>
+					<view class="dh-wrap" @click.stop="todh(item)">
+						<image src="../../static/icon/dh.png" mode=""></image>
 					</view>
 				</view>
 			</view>
@@ -281,6 +285,14 @@
 				console.log(this.province, this.city, this.district);
 				console.log(arr);
 				this.searchData()
+			},
+			todh(item) {
+				wx.openLocation({
+					latitude: item.latitude * 1,
+					longitude: item.longitude * 1,
+					name: item.name,
+					address: item.detailed_address
+				})
 			}
 		},
 
@@ -312,7 +324,8 @@
 			background-color: #FFFFFF;
 			margin-bottom: 30rpx;
 			padding: 30rpx;
-			border-radius: 20rpx;
+			border-radius: 20rpx;
+			position: relative;
 			.list,.km{
 				color: $font-color-light;
 				font-size: $font-sm;
@@ -413,5 +426,16 @@
 
 			}
 		}
+	}
+	.dh-wrap {
+		width: 40rpx;
+		height: 40rpx;
+		position: absolute;
+		bottom:50rpx;
+		right: 50rpx;
+		image {
+			width: 100%;
+			height: 100%;
+		}
 	}
 </style>

+ 40 - 0
pages/shop/upimg.vue

@@ -0,0 +1,40 @@
+<template>
+	<view>
+		<CustomCamera ref="CustomCamera" :coverImageType="type" @back="back" @getImage="getImage" />
+	</view>
+</template>
+
+<script>
+	// #ifdef APP
+	import CustomCamera from "@/components/CustomCamera/APP/index.nvue"
+	// #endif
+	// #ifdef MP-WEIXIN
+	import CustomCamera from "@/components/CustomCamera/WeChat/index.vue"
+	// #endif
+	export default {
+		data() {
+			return {
+				type: 'side'
+			}
+		},
+		components: {
+			CustomCamera
+		},
+		onLoad(opt) {
+			this.type = opt.type
+		},
+		methods: {
+			back() {
+				uni.navigateBack()
+			},
+			getImage(res) {
+				this.$api.prePage().upimgg(res,this.type == 'side'?'sfzf':'sfzz');
+				setTimeout(()=> {
+					uni.navigateBack()
+				})
+				
+				// console.log(res)
+			}
+		}
+	}
+</script>

+ 1 - 1
pages/user_home/money/paySuccess.vue

@@ -5,7 +5,7 @@
 			<text class="tit">支付成功</text>
 			<!-- <view class="tip" >
 				<text v-if="type==0">
-				请前往卡羚能加盟商一领取
+				请前往卡羚能加盟商一领取
 				</text>
 			</view> -->
 			<view class="btn-group flex">

+ 1 - 1
pages/user_home/shareQrCode.vue

@@ -64,7 +64,7 @@ export default {
 			let data = {
 				path: path,
 				imageUrl: this.poster,
-				title: this.userInfo.nickname + '邀请您进入卡羚能'
+				title: this.userInfo.nickname + '邀请您进入卡羚能'
 			};
 			console.log('---data---',data)
 			return data;

BIN
static/icon/dh.png


BIN
static/icon/in2.png


BIN
static/images/album.png


BIN
static/images/back.png


BIN
static/images/reversal.png


BIN
static/images/shutter.png


BIN
static/masking/album.png


BIN
static/masking/front.jpg


BIN
static/masking/portrait.jpg


BIN
static/masking/side.jpg