Browse Source

样式修改

1004749546@qq.com 4 năm trước cách đây
mục cha
commit
261ba3a4b0

+ 125 - 0
components/m-input.vue

@@ -0,0 +1,125 @@
+<template>
+	<view class="m-input-view">
+		<input :focus="focus" :type="inputType" :value="value" @input="onInput" class="m-input-input" :placeholder="placeholder"
+		 :password="type==='password'&&!showPassword" :maxlength="maxlength" @focus="onFocus" @blur="onBlur" />
+		<!-- 优先显示密码可见按钮 -->
+		<view v-if="clearable&&!displayable&&value.length" class="m-input-icon">
+			<uni-icons color="#666666" type="clear" @click="clear"></uni-icons>
+		</view>
+		<view v-if="displayable" class="m-input-icon">
+			<uni-icons :style="{color:showPassword?'#666666':'#cccccc'}" type="eye" @click="display"></uni-icons>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		props: {
+			/**
+			 * 输入类型
+			 */
+			type: String,
+			/**
+			 * 值
+			 */
+			value: String,
+			/**
+			 * 占位符
+			 */
+			placeholder: String,
+			/**
+			 * 是否显示清除按钮
+			 */
+			clearable: {
+				type: [Boolean, String],
+				default: false
+			},
+			/**
+			 * 是否显示密码可见按钮
+			 */
+			displayable: {
+				type: [Boolean, String],
+				default: false
+			},
+			/**
+			 * 自动获取焦点
+			 */
+			focus: {
+				type: [Boolean, String],
+				default: false
+			},
+			maxlength: {
+				type: Number,
+				default: -1
+			}
+		},
+		model: {
+			prop: 'value',
+			event: 'input'
+		},
+		data() {
+			return {
+				/**
+				 * 显示密码明文
+				 */
+				showPassword: false,
+				/**
+				 * 是否获取焦点
+				 */
+				isFocus: false
+			}
+		},
+		computed: {
+			inputType() {
+				const type = this.type
+				return type === 'password' ? 'text' : type
+			}
+		},
+		methods: {
+			clear() {
+				this.$emit('input', '')
+			},
+			display() {
+				this.showPassword = !this.showPassword
+			},
+			onFocus() {
+				this.isFocus = true
+			},
+			onBlur() {
+				this.$nextTick(() => {
+					this.isFocus = false
+				})
+			},
+			onInput(e) {
+				this.$emit('input', e.detail.value)
+			}
+		}
+	}
+</script>
+
+<style>
+	.m-input-view {
+		display: inline-flex;
+		flex-direction: row;
+		align-items: center;
+		/* width: 100%; */
+		flex: 1;
+		padding: 0 10px;
+		margin-top: 20rpx;
+	}
+
+	.m-input-input {
+		flex: 1;
+		width: 100%;
+		min-height: 100%;
+		line-height: inherit;
+		background-color: rgba(0, 0, 0, 0);
+	}
+
+	.m-input-icon {
+		width: 20px;
+		font-size: 20px;
+		line-height: 20px;
+		color: #666666;
+	}
+</style>

+ 6 - 50
pages.json

@@ -27,34 +27,10 @@
 			"path": "pages/userCenter/index",
 			"style": {
 				"navigationBarTitleText": "个人中心",
-				"navigationBarBackgroundColor": "#01c9b2",
+				"navigationBarBackgroundColor": "#2ab4e5",
 				"navigationBarTextStyle": "white"
 			}
 		},
-		{
-			"path": "pages/userCenter/userInfo/userInfo",
-			"style": {
-				"navigationBarTitleText": "个人信息"
-			}
-		},
-		{
-			"path": "pages/userCenter/userInfo/smsVerification",
-			"style": {
-				"navigationBarTitleText": "短信验证"
-			}
-		},
-		{
-			"path": "pages/userCenter/userInfo/paymentPwd",
-			"style": {
-				"navigationBarTitleText": "支付密码"
-			}
-		},
-		{
-			"path": "pages/userCenter/userInfo/changePayPwd",
-			"style": {
-				"navigationBarTitleText": "修改支付密码"
-			}
-		},
 		{
 			"path": "pages/userCenter/aboutUs",
 			"style": {
@@ -62,38 +38,18 @@
 			}
 		},
 		{
-			"path": "pages/userCenter/question",
+			"path": "pages/agreement/agreement",
 			"style": {
-				"navigationBarTitleText": "常见问题"
+				"navigationBarTitleText": "用户协议及隐私政策"
 			}
 		},
 		{
-			"path": "pages/agreement/agreement",
+			"path": "pages/userCenter/changePwd",		//  我的>修改密码
 			"style": {
-				"navigationBarTitleText": "注意事项及服务协议"
+				"navigationBarTitleText": "修改密码"
 			}
-		},
-       {
-            "path" : "pages/userCenter/myCode/myCode",
-            "style" :                                                                                    
-            {
-                "navigationBarTitleText": "我的投递码",
-                "enablePullDownRefresh": false
-            }
-            
-        }
+		}
     ],
-	// "subPackages": [{
-	// 	"root": "pagesA",
-	// 	"pages": [
- //            ]
-	// }],
-	// "preloadRule": {
-	// 	"pages/index/index": {
-	// 		"network": "all",
-	// 		"packages": ["pagesA"]
-	// 	}
-	// },
 	"globalStyle": {
 		"navigationBarTextStyle": "black",
 		"navigationBarTitleText": "uni-app",

+ 3 - 3
pages/login/login.vue

@@ -7,11 +7,11 @@
 				</view>
 				<view class="login-btns">
 					<u-button shape="circle" :custom-style="wxButton" class="login-btn" type="success" :hair-line="false" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">
-						微信登录
+						微信授权登录
 					</u-button>
 					<u-gap height="30"></u-gap>
 					<u-button shape="circle" :custom-style="phoneButton" class="login-btn" @click="phoneLogin" type="primary">
-						手机号码登录
+						账号密码登录
 					</u-button>
 				</view>
 			</view>
@@ -21,7 +21,7 @@
 				</u-button>
 			</view>
 		</view>
-		<view @click="toYs">登录即代表同意<text>隐私政策</text>和<text>服务条款</text></view>
+		<view @click="toYs">登录即代表同意<text>乐色助手用户协议及隐私保护政策</text></view>
 	</view>
 </template>
 

+ 82 - 0
pages/login/loginPw.scss

@@ -0,0 +1,82 @@
+.login-wrap, .forget-wrap, .apply-wrap{
+	background-color: #FFFFFF;
+	width: 100%;
+	height: 100vh;
+	box-sizing: border-box;
+	.logo{
+		display: block;
+		width: 150upx;
+		height: 150upx;
+		padding-top: 120upx;
+		margin: 0 auto;
+	}
+	.login-form{
+		display: block;
+		width: 80%;
+		margin: 0 auto;
+		padding-top: 110upx;
+		.form-item{
+			margin-bottom: 20upx;
+			position: relative;
+			display: flex;
+			align-items: center;
+			border-bottom: 1upx solid #dcdee2;
+			.require-tip{
+				position: absolute;
+				left: 0;
+				top: 26upx;
+				color: red;
+			}
+			.item-inp{
+				flex-grow: 1;
+			}
+			.item-inp, .item-picker{
+				font-size: 30upx;
+				padding: 20upx 20upx;
+			}
+			.getcode-btn{
+				position: absolute;
+				right: 20upx;
+				top: 0;
+				font-size: 24upx;
+				margin-top: 14upx;
+			}
+		}
+		.flex-box{
+			display: flex;
+			justify-content: space-between;
+			font-size: 26upx;
+		}
+		.form-btn-con{
+			margin-top: 100upx;
+			.form-btn{
+				font-size: 32upx;
+				display: block;
+				line-height: 84upx;
+				margin: 0 auto;
+				background-color: #2ab4e5;
+				// background-color: #298bf2;
+				color: #fff;
+			}
+			uni-button.form-btn:after{
+				border: none;
+			}
+			.apply-btn{
+				display: block;
+				text-align: center;
+				margin-top: 50upx;
+			}
+		}
+	}
+	
+	.authUserYs{
+		text-align: center;
+		position: absolute;
+		bottom: 5%;
+		width: 100%;
+		font-size: 24upx;
+		text{
+			color: #ff0000;
+		}
+	}
+}

+ 144 - 190
pages/login/phoneLogin.vue

@@ -1,212 +1,166 @@
 <template>
-	<view class="forget-wrap">
-		<view class="logo">
-			<u-image src="/static/logo.png" width="140" height="140" ></u-image>
-		</view>
+	<view class="login-wrap">
+		<!-- <view v-if="!buildType" style="text-align: center;color: #999999;padding-top: 40px;">{{ envTips }}</view> -->
+		<image src="../../static/logo.jpg" class="logo"></image>
 		<form class="login-form" @submit="formSubmit">
 			<view class="form-item">
-				<input v-model="form.phone" class="item-inp" name="phone" type="number" maxlength="11" placeholder="请输入登录手机号" />
+				<u-icon size="34" color="#999" name="account"></u-icon>
+				<input v-model="form.loginName" class="item-inp" name="loginName" type="text" maxlength="30" placeholder="请输入用户名" />
 			</view>
 			<view class="form-item">
-				<input v-model="form.verifyCode" class="item-inp" name="verifyCode" type="number" maxlength="6" placeholder="请输入短信验证码" />
-				<button class="getcode-btn" :disabled="isDisable" @click="getCodeValidate">{{nowVal}}</button>
+				<u-icon size="34" color="#999" name="lock"></u-icon>
+				<input v-model="form.password" class="item-inp" name="password" password type="text" maxlength="12" placeholder="请输入密码" />
+			</view>
+			<view class="flex-box" style="margin-top: 60upx;">
+				<view class="remember-pass">
+					<u-checkbox v-model="isRemember" value="true" :size="30" :label-size="26" active-color="#2ab4e5" class="login-form-checkbox" @change="rememberChange">记住密码</u-checkbox>
+				</view>
 			</view>
 			<view class="form-btn-con">
-				<button class="form-btn" @click="submitFn">登录</button>
+				<button class="form-btn" form-type="submit">登录</button>
 			</view>
 		</form>
-		<!-- 图文验证码 -->
-		<uni-popup ref="imageTxtPopup" type="center">
-			<popup-con title="图文验证码" :popBtn="popBtn" :changeImg="changeImg" @captchaImg="captchaVerify"></popup-con>
-		</uni-popup>
+		<view class="authUserYs">
+			<u-checkbox v-model="isAuthuserYs" value="true" :size="30" :label-size="26" active-color="#2ab4e5" class="login-form-checkbox" @change="authuserChange">登录代表同意</u-checkbox>
+			<text @click="toYsPage()" style="vertical-align: text-top;font-size: 26rpx;text-decoration: underline;">乐色助手用户协议及隐私保护政策</text>
+		</view>
 	</view>
 </template>
 
 <script>
-	import { isvalidPhone } from '@/libs/validate.js'
-	import uniPopup from '@/components/uni-popup/uni-popup.vue'
-	import popupCon from '@/components/uni-popup/popup-con.vue'
-	import { loginPhone, sendVerifyCode, checkCustomerState } from '@/api/user.js'
-	export default{
-		components: {
-			uniPopup,
-			popupCon
-		},
-		data(){
-			return{
-				form: {
-					phone: '',
-					verifyCode: '',
-					password: '',
-					passwords: ''
-				},
-				nowVal: '获取验证码',  //  按钮显示内容
-				count: '',  //  当前秒数
-				timer: null,  //  倒计时
-				isDisable: false,  //  是否禁止获取验证码
-				popBtn: [],  //  name为操作按钮名称,color为操作按钮颜色值
-				changeImg: false,  //  是否重新更换图形验证码
-				randomCode: '',  //  图片验证码随机码
-				wxcode: '',
-				path: '/pages/index/index',
-				lanuch: false,
-				encode:'' // 二维码地址
-			}
-		},
-		onLoad(opts) {
-			console.log(opts,'----参数')
-			this.encode=opts.encode
-			console.log(opts,this.encode,'----参数')
-			// 开启分享
-			uni.showShareMenu({
-				withShareTicket: true,
-				menus: ['shareAppMessage', 'shareTimeline']
+import { checkVersionToLoadUpdate, setStorageForAppVersion,clzConfirm } from '@/libs/tools'
+import { isvalidPhone } from '@/libs/validate.js';
+import { login } from '@/api/user.js';
+import { getSysVersion } from '@/api/data.js'
+export default {
+	data() {
+		return {
+			form: {
+				loginName: this.$store.state.vuex_user.account,
+				password: this.$store.state.vuex_user.password
+			},
+			isRemember: true, //  是否记住密码
+			isAuthuserYs: true, // 是否同意隐私政策
+			envTips: '',
+			buildType: '',
+		};
+	},
+	mounted() {
+		this.isRemember = this.$store.state.vuex_isRemember || true;
+		this.isAuthuserYs = this.$store.state.vuex_isUsrAuthYs || true;
+		this.envTips = getApp().globalData.envTips;
+		this.buildType = getApp().globalData.buildType;
+	},
+	onShow() {
+	},
+	methods: {
+		//  获取微信login  code
+		getWechatCode(){
+			const _this = this
+			wx.login({
+			  success (res) {
+			    if (res.code) {
+					//发起网络请求
+					let formData = JSON.parse(JSON.stringify(_this.form))
+					formData.code = res.code
+					_this.submitForm(formData)
+			    } else {
+					console.log('登录失败,点击“登录”重试!' + res.errMsg)
+			    }
+			  }
 			})
-			const {
-				path,
-				lanuch,
-				encode
-			} = option;
-			// console.log(option,'----参数')
-			this.lanuch = (lanuch + '') === 'true';
 		},
-		onUnload() {
-			uni.$off('getUserInfo')
+		//  表单提交
+		formSubmit() {
+			const _this = this;
+			//  表单校验
+			if (_this.form.loginName == '') {
+				uni.showToast({ icon: 'none', title: '请输入用户名' });
+				return;
+			}
+			// if (!isvalidPhone(_this.form.loginName)) {
+			// 	uni.showToast({ icon: 'none', title: '请输入正确的手机号码' });
+			// 	return;
+			// }
+			if (_this.form.password == '') {
+				uni.showToast({ icon: 'none', title: '请输入密码' });
+				return;
+			}
+			if (_this.form.password.length < 6 || _this.form.password.length > 12) {
+				uni.showToast({ icon: 'none', title: '请输入6-12位密码' });
+				return;
+			}
+			if (!_this.isAuthuserYs) {
+				uni.showToast({ icon: 'none', title: '请同意并阅读用户隐私政策' });
+				return;
+			}
+			uni.showLoading({
+				title: '正在登录...'
+			});
+			// #ifdef MP-WEIXIN
+				//  获取微信login   code
+				this.getWechatCode()
+			// #endif
+			// #ifndef MP-WEIXIN
+				this.submitForm(_this.form)
+			// #endif
 		},
-		methods: {
-			//   登录
-			submitFn(){
-				const _this = this
-				//  表单校验
-				if(this.form.phone == ''){
-					uni.showToast({icon: 'none',title: '请输入登录手机号'})
-					return
-				}
-				if(!isvalidPhone(this.form.phone)){
-				  uni.showToast({icon: 'none',title: '请输入正确的手机号码'})
-				  return
-				}
-				if(this.form.verifyCode == ''){
-					uni.showToast({icon: 'none',title: '请输入验证码'})
-					return
-				}
-				// 校验短信验证码是否正确
-				const obj = {}
-				obj.phone = _this.form.phone
-				obj.random = _this.randomCode  // 当前随机码
-				obj.verifiCode = _this.form.verifyCode
-				if(this.encode){
-					obj.encode=this.encode
-				}
-				uni.login({
-					provider: 'weixin',
-					success(res) {
-						console.log(res)
-						_this.wxcode = res.code
-						obj.code = res.code
-						loginPhone(obj).then(res => {
-						  if(res.status == 200){
-							console.log(res,'login success')
-							getApp().globalData.token = res.data
-							_this.$u.vuex('vuex_token',res.data)
-							uni.$emit("getUserInfo")
-						    if (_this.path === '/pages/index/index' || _this.lanuch) {
-						    	uni.reLaunch({
-						    		url: _this.path
-						    	});
-						    } else {
-						    	uni.redirectTo({
-						    		url: _this.path
-						    	});
-						    }
-						  }else{
-							  uni.showToast({icon: 'none',title: res.message})
-						  }
-						})
-					}
-				})
-			},
-			//  单击获取验证码
-			getCodeValidate(){
-				if(this.form.phone){
-					if(!isvalidPhone(this.form.phone)){
-						uni.showToast({icon: 'none',title: '请输入正确的手机号码'})
-						return
-					}else{
-						// 先校验手机号用户是否禁用
-						checkCustomerState({phone:this.form.phone}).then(res=>{
-							if(res.status == 200) {
-								this.retsetCode()
-								//  图文验证码
-								this.$refs.imageTxtPopup.open()
-							} else {
-								uni.showToast({
-									title: res.message,
-									icon: 'none'
-								})
-							}
-						})
+		submitForm(formData){
+			const _this = this;
+			//  登录
+			login(formData).then(res => {
+				uni.hideLoading();
+				if (res.status == 200) {
+					_this.$u.vuex('vuex_token', res.data);
+					getApp().globalData.token = res.data;
+					//登录成功将用户名密码存储到用户本地
+					if (_this.isRemember) {
+						//用户勾选“记住密码”
+						_this.$u.vuex('vuex_user.account', _this.form.loginName);
+						_this.$u.vuex('vuex_user.password', _this.form.password);
+					} else {
+						//用户没有勾选“记住密码”
+						_this.$u.vuex('vuex_user.account', '');
+						_this.$u.vuex('vuex_user.password', '');
+						_this.form.loginName = '';
+						_this.form.password = '';
 					}
-				}else{
-					uni.showToast({icon: 'none',title: '请先输入手机号'})
+					uni.setStorageSync('loginTimeOut', 'NO');
+					_this.toMain();
+				} else {
+					uni.showToast({ icon: 'none', title: res.message });
 				}
-			},
-			//  开始倒计时
-			getCodeFun(){
-				const TIME_COUNT = 60
-				if (!this.timer) {
-				  this.count = TIME_COUNT
-				  this.timer = setInterval(() => {
-				    if (this.count > 0 && this.count <= TIME_COUNT) {
-				      this.count--
-				      this.nowVal = this.count + 's后重发'
-				      this.isDisable = true
-				    } else {
-				      this.nowVal = '重新获取验证码'
-				      clearInterval(this.timer)
-				      this.timer = null
-				      this.isDisable = false
-				    }
-				  }, 1000)
-				}
-			},
-			//  验证图片验证码
-			captchaVerify(code, nowRandomCode){
-				const _this = this
-				let obj = {}
-				obj.phone = this.form.phone
-				obj.random = nowRandomCode
-				obj.code = code
-				//  发送短信验证码
-				sendVerifyCode(obj).then(res => {
-					console.log(JSON.stringify(res))
-					if(res.status == 200){  //  验证码输入正确
-						_this.randomCode = nowRandomCode  //  图片验证码随机码
-						//  关闭   图形验证码 弹框
-						_this.$refs.imageTxtPopup.close()
-						//  开启倒计时
-						_this.getCodeFun()
-						uni.showToast({icon: 'none',title: '验证码发送成功'})
-					}else {  //  验证码输入错误
-						_this.retsetCode()
-						uni.showToast({icon: 'none',title: res.message})
-					}
-				})
-			},
-			// 重新触发获取图片验证码
-			retsetCode(){
-				const _this = this
-				_this.form.verifyCode = ''
-				_this.randomCode = ''
-				//  切换验证码重新校验
-				_this.changeImg = false
-				_this.$nextTick(function(){
-					_this.changeImg = true
-				})
-			}
+			});
+		},
+		toMain() {
+			// 跳转到首页
+			uni.switchTab({
+				url: '/pages/index/index'
+			});
+		},
+		//  忘记密码
+		forgetPass() {
+			uni.navigateTo({
+				url: '/pages/login/forget-pass?username=' + this.form.loginName
+			});
+		},
+		//  判断是否记住密码
+		rememberChange(e) {
+			this.isRemember = e.value;
+		},
+		// 隐私
+		authuserChange(e) {
+			this.isAuthuserYs = e.value;
+			this.$u.vuex('vuex_isUsrAuthYs', this.isAuthuserYs);
+		},
+		toYsPage() {
+			uni.navigateTo({
+				url: '/pages/agreement/agreement'
+			});
 		}
 	}
+};
 </script>
 <style scoped lang="scss">
-	@import './login.scss';
-</style>
+@import './loginPw.scss';
+</style>

+ 1 - 10
pages/userCenter/aboutUs.vue

@@ -2,7 +2,7 @@
 	<view class="container">
 		<view class="logoContent">
 			<view class="logoBorder">
-				<image class="logoImg" src="/static/logo.png"></image>
+				<image class="logoImg" src="/static/logo.jpg"></image>
 			</view>
 		</view>
 		<view class="textContent">
@@ -12,15 +12,6 @@
 </template>
 
 <script>
-	export default {
-		onLoad() {
-			// 开启分享
-			uni.showShareMenu({
-				withShareTicket: true,
-				menus: ['shareAppMessage', 'shareTimeline']
-			})
-		},
-	}
 </script>
 
 <style lang="less">

+ 190 - 0
pages/userCenter/changePwd.vue

@@ -0,0 +1,190 @@
+<template>
+	<view class="changePwd-container">
+		<view class="content">
+			<view class="tishi">请先输入原密码,按步骤操作</view>
+			<view class="input-group">
+				<view class="input-row border">
+					<text class="title">原密码:</text>
+					<m-input class="m-input" :maxlength="30"  type="password"  displayable v-model="formCustom.oldPwd" placeholder="请输入原密码"></m-input>
+				</view>
+				<view class="input-row">
+					<text class="title">新密码:</text>
+					<m-input class="m-input" :maxlength="12" type="password" displayable v-model="formCustom.passwd" placeholder="请输入6-12位新密码"></m-input>
+				</view>
+				<view class="input-row">
+					<text class="title">再次输入:</text>
+					<m-input class="m-input" :maxlength="12" type="password" displayable v-model="formCustom.passwdCheck" placeholder="请输入6-12位新密码"></m-input>
+				</view>
+			</view>
+		</view>
+		<!-- 消息提醒弹窗 -->
+		<view class="form-footer-btn">
+			<u-button size="medium" hover-class="none" @click="handleReset">重置</u-button>
+			<u-button size="medium" hover-class="none" :loading="loading" :custom-style="customBtnStyle" @click="handleSubmit">保存</u-button>
+		</view>
+	</view>
+</template>
+
+<script>
+	import mInput from '../../components/m-input.vue'
+	import { changePwd, logout } from '@/api/user.js'
+	export default{
+		name:'changePwd',
+		components: {
+			mInput
+		},
+		data(){
+			return{
+				formCustom: {
+				  passwd: '',
+				  passwdCheck: '',
+				  oldPwd: ''
+				},
+				loading: false,
+				customBtnStyle: {  //  自定义按钮样式
+					borderColor: '#2ab4e5',
+					backgroundColor: '#2ab4e5',
+					color: '#fff'
+				},
+			}
+		},
+		methods:{
+			messageInfo(info){
+				uni.showToast({
+					icon:'none',
+					title: info
+				})
+			},
+			handleSubmit(){
+				let _this = this
+				//非空判断密码长度判断
+				if (this.formCustom.oldPwd === '') {
+				   this.messageInfo("请输入原密码")
+				   return 
+				}  
+				if (this.formCustom.passwd === '') {
+				   this.messageInfo("请输入新密码")
+				   return 
+				}
+				if (this.formCustom.passwd.length < 6) {
+				   this.messageInfo("新密码最少6位")
+				   return 
+				}
+				if (this.formCustom.passwdCheck === '') {
+				   this.messageInfo("请再次输入新密码")
+				   return 
+				}
+				if (this.formCustom.passwdCheck.length < 6) {
+				   this.messageInfo("再次输入新密码最少6位")
+				   return 
+				}
+				if (this.formCustom.passwdCheck !== this.formCustom.passwd) {
+				   this.messageInfo("再次输入的密码和新密码不一样")
+				   return 
+				}
+				// 保存
+				this.loading = true
+				changePwd({
+				  oldPassword: this.formCustom.oldPwd,
+				  password: this.formCustom.passwd
+				}).then(res => {
+				  if (res.status == '200') {
+				    this.messageInfo('修改成功, 请重新登录')
+				    setTimeout(function(){
+						_this.logout()
+					},800)
+				  } else {
+				    this.messageInfo(res.message)
+					this.loading = false
+				  }
+				})
+			},
+			logout(){
+				logout().then(res => {
+					console.log(res)
+					this.messageInfo(res.message)
+					if(res.status == 200){
+						// this.$store.commit("$closeWebsocket")
+						this.$store.state.vuex_token = ''
+						this.$store.state.vuex_userData = ''
+						uni.setStorageSync('setStatusIndexFunc', 0)
+						uni.reLaunch({
+							url: "/pages/login/login"
+						})
+					}
+					this.loading = false
+				})
+			},
+			handleReset (name) {
+				this.formCustom = {
+				  passwd: '',
+				  passwdCheck: '',
+				  oldPwd: ''
+				}
+			}
+		}
+	}
+	
+</script>
+
+<style lang="less">
+	page{
+		background: #FFFFFF;
+	}
+	.changePwd-container{
+		width: 100%;
+		font-size: 28rpx;
+		padding: 20rpx 40rpx ;
+		.content{
+			.tishi{
+				text-align: center;
+				line-height: 130rpx;
+				font-size: 30rpx;
+				color: #999;
+			}
+			.input-group{
+				margin-top:20rpx;
+			}
+			.input-row{
+				padding: 10rpx 20rpx;
+				background-color: #F8F8F8;
+				margin-bottom: 20rpx;
+				border-radius: 10rpx;
+				line-height: 32px;
+				display: flex;
+				align-items: center;
+				.title{
+					width:140rpx;
+					display: inline-block;
+					text-align: left;
+					color:#808080;
+				}
+			}
+			.uni-input-placeholder{
+				font-size: 26rpx;
+				color:#989898;
+			}
+		}
+		.u-size-default[data-v-1f520a08]{
+			height: 92rpx;
+		}
+		.m-input-input[data-v-5a85b703]{
+			position: relative;
+			bottom: 4rpx;
+		}
+		.m-input-icon[data-v-5a85b703]{
+			position: relative;
+			bottom: 10rpx;
+		}
+		.form-footer-btn{
+			margin: 140upx 50upx 0;
+			display: flex;
+			justify-content: space-between;
+		}
+		.form-footer-btn uni-button{
+			width: 50%;
+			margin: 0 50upx;
+			font-size: 30upx;
+		}
+	}
+</style>

+ 0 - 166
pages/userCenter/deliveryRecord.vue

@@ -1,166 +0,0 @@
-<template>
-	<view class="deliveryRecord-container">
-		<scroll-view class="scroll-con" scroll-y @scrolltolower="onreachBottom">
-			<!-- 列表数据 -->
-			<view class="cell-item-con">
-				<u-gap height="15"></u-gap>
-				<view class="cell-item" v-for="(item, index) in listdata" :key="index">
-					<text class="cell-item-date">{{item.deliveryTime}}</text>
-					<view class="cell-item-main">
-						<u-image mode="scaleToFill" shape="circle" width="80rpx" height="80rpx" :src="`/static/${item.rubbishType}.png`" class="cell-item-pic"></u-image>
-						<view class="cell-item-r">
-							<view class="cell-item-head">
-								<view class="cell-item-val">
-									<text class="cell-item-num">{{item.rubbishWeight}}</text>克
-							    </view>
-								<view class="cell-item-ledu">
-									<text>+{{item.goldNum}}</text>
-								    <u-image mode="scaleToFill" width="34rpx" height="34rpx" src="/static/ledou.png"></u-image>
-								</view>
-							</view>
-							<text class="cell-item-des">{{item.stationName}}</text>
-						</view>
-					</view>
-				</view>
-			</view>
-			<u-empty class="nodata" :text="noDataText" v-if="listdata.length==0 && status!='loading'" mode="list"></u-empty>
-			<view class="loadmore">
-				<u-loadmore v-if="total>pageSize || status=='loading'" :status="status" />
-			</view>
-		</scroll-view>
-	</view>
-</template>
-
-<script>
-	import {
-		getDeliveryLogList
-	} from '@/api/deliveryRecord.js'
-	export default {
-		data() {
-			return {
-				listdata: [],
-				pageNo: 1,  //  当前页码
-				pageSize: 10,  //  每页条数
-				total: 0,  //  数据总条数
-				noDataText: '暂无数据',  //  列表请求状态提示语
-				status: 'loadmore',  //  加载中状态
-			}
-		},
-		onLoad() {
-			// 开启分享
-			uni.showShareMenu({
-				withShareTicket: true,
-				menus: ['shareAppMessage', 'shareTimeline']
-			})
-		},
-		onShow() {
-			this.searchHandle(1)
-		},
-		methods:{
-			// 搜索查询
-			searchHandle (pageNo,suppName) {
-				this.status = "loading"
-				pageNo ? this.pageNo = pageNo : null
-				getDeliveryLogList({
-					pageNo: this.pageNo,
-					pageSize: this.pageSize,
-				}).then(res => {
-					if (res.status == 200) {
-						if(this.pageNo>1){
-							this.listdata = this.listdata.concat(res.data.list || [])
-						}else{
-							this.listdata = res.data.list || []
-						}
-						this.total = res.data.count || 0
-					} else {
-						this.noDataText = res.message
-						this.listdata = []
-						this.total = 0
-					}
-					this.status = "loadmore"
-				})
-			},
-			// scroll-view到底部加载更多
-			onreachBottom() {
-				if(this.listdata.length < this.total){
-					this.pageNo += 1
-					this.searchHandle()
-				}else{
-					uni.showToast({ title: '已经到底了', icon: 'none' })
-					this.status = "nomore"
-				}
-			}
-		}
-	}
-</script>
-
-<style lang="less">
-	page{
-		height: 100%;
-	}
-	.deliveryRecord-container{
-		width: 100%;
-		height: 100%;
-		//  列表
-		.scroll-con{
-			height: 100%;
-			overflow: auto;
-		}
-		//  列表样式
-		.cell-item-con{
-			.cell-item{
-				background-color: #fff;
-				color: #606266;
-				padding: 20rpx 32rpx 22rpx;
-				border-bottom: 1rpx solid #EEEEEE;
-				&:last-child{
-					border:0;
-				}
-				.cell-item-date{
-					display: block;
-					color: #909399;
-					font-size: 24rpx;
-				}
-				.cell-item-main{
-					display: flex;
-					justify-content: space-around;
-					align-items: center;
-					padding-top: 14rpx;
-					.cell-item-pic{
-						flex-shrink: 0;
-						margin-right: 20rpx;
-					}
-					.cell-item-r{
-						flex-grow: 1;
-						.cell-item-head{
-							display: flex;
-							justify-content: space-between;
-							align-items: center;
-							.cell-item-val{
-								font-size: 30rpx;
-								font-weight: bold;
-								.cell-item-num{
-									display: inline-block;
-									margin-right: 6rpx;
-								}
-							}
-							.cell-item-ledu{
-								display: flex;
-								justify-content: space-between;
-								align-items: center;
-								text{
-									font-size: 40rpx;
-									color: #01c9b2;
-								}
-							}
-						}
-						.cell-item-des{
-							color: #909399;
-							font-size: 26rpx;
-						}
-					}
-				}
-			}
-		}
-	}
-</style>

+ 0 - 40
pages/userCenter/fenlei.vue

@@ -1,40 +0,0 @@
-<template>
-	<view class="zn-container">
-		<view>
-      <u-image width="750rpx" height="1988rpx" src="https://lese.sxzxyj.net/img/2020/11/28/4cbe4bf9213a4a5c8d658e4903ec30e0.jpg"></u-image>
-      <u-image width="750rpx" height="2211rpx" src="https://lese.sxzxyj.net/img/2020/11/28/83daa070fe8f4bb9a8c583cd05bfa17b.jpg"></u-image>
-      <u-image width="750rpx" height="2219rpx" src="https://lese.sxzxyj.net/img/2020/11/28/da1d20d4003f4d8e8b0d836d0e4dfbed.jpg"></u-image>
-      <u-image width="750rpx" height="2277rpx" src="https://lese.sxzxyj.net/img/2020/11/28/50723317eb0b43908019709ac183ad6a.jpg"></u-image>
-      <u-image width="750rpx" height="1905rpx" src="https://lese.sxzxyj.net/img/2020/11/28/c0acd89eb40a4050a7af8ac4f8855489.jpg"></u-image>
-      <u-image width="750rpx" height="1958rpx" src="https://lese.sxzxyj.net/img/2020/11/28/df135dea14014a25b93d5ae0bb260beb.jpg"></u-image>
-    </view>
-	</view>
-</template>
-
-<script>
-	export default{
-		data() {
-			return {
-				baseUrl: ''
-			}
-		},
-		onLoad() {
-			// 开启分享
-			uni.showShareMenu({
-				withShareTicket: true,
-				menus: ['shareAppMessage', 'shareTimeline']
-			})
-		}
-	}
-</script>
-
-<style lang="less">
-	.zn-container{
-		width: 100%;
-    background-color: #FFFFFF;
-    > view{
-      width: 100%;
-      margin: 0 auto;
-    }
-	}
-</style>

+ 24 - 19
pages/userCenter/index.vue

@@ -15,29 +15,19 @@
 				<u-icon name="arrow-right" color="#fff"></u-icon>
 			</view>
 		</view>
-		<view class="my-ledou" v-if="hasLogin">
-			<view class="user-jifen">
-				<view>我的乐豆:<text>{{user.currentGold||0}}</text></view>
-				<u-image mode="scaleToFill" width="35rpx" height="35rpx" src="/static/ledou.png"></u-image>
-			</view>
-			<view>
-				<u-button size="mini" type="warning" shape="circle" @click="toLdPage">查看明细</u-button>
-			</view>
-		</view>
 		<!-- 列表 -->
 		<view class="user-list">
 			<u-cell-group>
-				<u-cell-item icon="question-circle" icon-size="39" :icon-style="{color:'#19be6b'}" index="2" @click="toPage" title="常见问题"></u-cell-item>
-				<u-cell-item icon="phone" icon-size="40" :icon-style="{color:'#f00'}" @click="callPhone" title="联系客服"></u-cell-item>
-				<u-cell-item icon="file-text" icon-size="40" :icon-style="{color:'#ffaa00'}" index="3" @click="toPage" title="服务协议"></u-cell-item>
-				<u-cell-item icon="info-circle" icon-size="38" :icon-style="{color:'#55aa00'}" index="4" @click="toPage" title="关于我们"></u-cell-item>
+				<u-cell-item icon="file-text" icon-size="40" :icon-style="{color:'#ffaa00'}" index="1" @click="toPage" title="服务协议及隐私政策"></u-cell-item>
+				<u-cell-item  v-if="hasLogin" icon="lock" icon-size="38" :icon-style="{color:'#00aaff'}" index="3" @click="toPage" title="修改密码"></u-cell-item>
+				<u-cell-item  v-if="hasLogin" icon="file-text" icon-size="40" :icon-style="{color:'#ffaa00'}" index="3" @click="quitSys" title="退出登录"></u-cell-item>
 			</u-cell-group>
 		</view>
 	</view>
 </template>
 
 <script>
-	import { checkLogin, getUserInfo } from '@/api/login.js'
+	import { checkLogin, getUserInfo, logout } from '@/api/login.js'
 	export default {
 		data() {
 			return {
@@ -97,10 +87,25 @@
 					url: pageUrl[index]
 				})
 			},
-			// 电话客服
-			callPhone () {
-				uni.makePhoneCall({
-				    phoneNumber: this.$store.state.vuex_kfMobile
+			// 退出登录
+			quitSys(){
+				let _this = this
+				uni.showModal({
+				  title: '提示',
+				  content: '您确定要退出登录吗?',
+				  success(res) {
+				    if (res.confirm) {
+				      logout().then(res => {
+					   console.log(res,'logout')
+				       getApp().globalData.token = ''
+				       _this.$u.vuex('vuex_token','')
+					   // 关闭socket
+				        uni.reLaunch({
+				        	url: '/pages/login/login'
+				        })
+				      })
+				    }
+				  }
 				})
 			},
 			//  跳转
@@ -136,7 +141,7 @@
 	.user-content{
 		width: 100%;
 		.user-head{
-			background: #01c9b2;
+			background: #2ab4e5;
 			display: flex;
 			align-items: center;
 			padding: 35rpx 55rpx;

+ 0 - 254
pages/userCenter/ldDetailed.vue

@@ -1,254 +0,0 @@
-<template>
-	<view class="ldDetailed-container">
-		<!-- 筛选菜单 -->
-		<u-dropdown ref="uDropdown" class="filter-dropdown">
-			<u-dropdown-item v-model="queryParam.changeType" :title="titType" :options="optionsType" @change="searchHandle(1)"></u-dropdown-item>
-			<u-dropdown-item v-model="timeScope" :title="titScope" :options="optionsScope" @change="searchHandle(1)"></u-dropdown-item>
-		</u-dropdown>
-		<scroll-view class="scroll-con" scroll-y @scrolltolower="onreachBottom">
-			<!-- 列表数据 -->
-			<view class="cell-item-con">
-				<view class="cell-item" v-for="(item, index) in listdata" :key="index">
-					<!-- <text class="cell-item-month" v-if="timeScope == 'threeMonth'">{{item.month}}</text> -->
-					<view class="cell-item-main" >
-						<view :class="['cell-item-pic']">
-							<u-image mode="scaleToFill" v-if="item.changeType == 'ADD'" shape="circle" width="70rpx" height="70rpx" src="/static/tudi.png"></u-image>
-							<u-image mode="scaleToFill" v-else shape="circle" width="70rpx" height="70rpx" src="/static/bued.png"></u-image>
-						</view>
-						<view class="cell-item-c">
-							<text class="cell-item-des">{{item.operateTypeDictValue||'--'}}</text>
-							<text class="cell-item-date">{{item.createDate}}</text>
-						</view>
-						<view :class="['cell-item-score', item.changeType == 'ADD' ? 'black' : 'red']">
-							<text>{{item.changeType == 'ADD' ? '+'+item.changeNum : '-'+item.changeNum}}</text>
-							<u-image mode="scaleToFill" width="40rpx" height="40rpx" src="/static/ledou.png"></u-image>
-						</view>
-					</view>
-					<!-- <view class="nodata" v-if="item.monthDataList.length==0 && status!='loading'">
-						<u-empty :text="noDataText" mode="list"></u-empty>
-					</view> -->
-				</view>
-			</view>
-			<view class="nodata" v-if="listdata.length==0 && status!='loading'">
-				<u-empty :text="noDataText" mode="list"></u-empty>
-			</view>
-			<view class="loadmore">
-				<u-loadmore v-if="total>pageSize || status=='loading'" :status="status" />
-			</view>
-		</scroll-view>
-	</view>
-</template>
-
-<script>
-	import {ldUsedQuery} from '@/api/user.js'
-	import getDate from '@/libs/getDate'
-	import moment from 'moment'
-	export default {
-		data() {
-			return {
-				listdata: [],
-				pageNo: 1,  //  当前页码
-				pageSize: 10,  //  每页条数
-				total: 0,  //  数据总条数
-				noDataText: '暂无数据',  //  列表请求状态提示语
-				status: 'loadmore',  //  加载中状态
-				timeScope: 'threeMonth', // 时间类别 1:近三个月 2:本月 3:本月前一月 4:本月前2月
-				queryParam: {  //  过滤条件
-					changeType: '', // 金币变更类型
-				},
-				optionsType: [
-					{ label: '所有记录', value: '', },
-					{ label: '获取记录', value: 'ADD', },
-					{ label: '使用记录', value: 'SUB', }
-				]
-			}
-		},
-		onShow() {
-			this.searchHandle(1)
-		},
-		onLoad() {
-			this.timeScope = 'threeMonth'
-			this.queryParam.changeType = ''
-			// 开启分享
-			uni.showShareMenu({
-				withShareTicket: true,
-				menus: ['shareAppMessage', 'shareTimeline']
-			})
-		},
-		computed: {
-			// 时间过滤条件
-			optionsScope(){  //  过滤条件  近3个月
-				let arr = [
-					{ label: '近3个月', value: 'threeMonth' },
-					{ label: '本月', value: 'thisMonth' }
-				]
-				arr[2] = { label: new Date().getMonth() + '月', value: 'lastMonth' }
-				arr[3] = { label: new Date().getMonth()-1 + '月', value: 'lastTwoMonth' }
-				return arr
-			},
-			titType(){  //  过滤条件 所有记录 title
-				const row = this.optionsType.find(item => item.value == this.queryParam.changeType)
-				return row ? row.label : this.optionsType[0].label
-			},
-			titScope(){  //  过滤条件 近3个月 title
-				const row = this.optionsScope.find(item => item.value == this.timeScope)
-				return row ? row.label : this.optionsScope[0].label
-			},
-			// 查询时间段
-			queryDate() {
-				var dt = new Date();
-				const threeTime = dt.setMonth( dt.getMonth()-2 )
-				const quickType = {
-				  threeMonth: [moment(getDate.getThreeMonthDays().starttime), moment(getDate.getThreeMonthDays().endtime)],
-				  lastMonth: [moment(getDate.getLastMonthDays().starttime), moment(getDate.getLastMonthDays().endtime)],
-				  thisMonth: [moment(getDate.getCurrMonthDays().starttime), moment(getDate.getCurrMonthDays().endtime)],
-				  lastTwoMonth: [moment(getDate.getLastTwoMonthDays().starttime), moment(getDate.getLastTwoMonthDays().endtime)],
-				}
-				let queryTime = {
-					beginDate: quickType[this.timeScope][0].format('YYYY-MM-DD'),
-					endDate: quickType[this.timeScope][1].format('YYYY-MM-DD')
-				}
-				return queryTime
-			},
-			
-		},
-		methods:{
-			// 搜索查询
-			searchHandle (pageNo) {
-				this.pageNo = pageNo ? pageNo : this.pageNo
-				if(this.pageNo == 1){
-					this.listdata = []
-				}
-				this.status = "loading"
-				let params = Object.assign(this.queryParam,this.queryDate)
-				params.pageNo = this.pageNo
-				params.pageSize = this.pageSize
-				console.log(params,'pppppppp')
-				ldUsedQuery(params).then(res => {
-					console.log(res,'pppppppp')
-					if (res.status == 200) {
-						if(this.pageNo>1){
-							this.listdata = this.listdata.concat(res.data.list || [])
-						}else{
-							this.listdata = res.data.list || []
-						}
-						this.total = res.data.count || 0
-					} else {
-						this.noDataText = res.message
-						this.listdata = []
-						this.total = 0
-					}
-					this.status = "loadmore"
-				})
-			},
-			// scroll-view到底部加载更多
-			onreachBottom() {
-				console.log(111111)
-				if(this.listdata.length < this.total){
-					this.pageNo += 1
-					this.searchHandle()
-				}else{
-					uni.showToast({ title: '已经到底了', icon: 'none' })
-					this.status = "nomore"
-				}
-			}
-		}
-	}
-</script>
-
-<style lang="less">
-	page{
-		height: 100%;
-		background-color: #fff;
-	}
-	.ldDetailed-container{
-		width: 100%;
-		height: 100%;
-		display: flex;
-		flex-direction: column;
-		.nodata{
-			margin: 50upx 0;
-		}
-		// 筛选菜单
-		.filter-dropdown{
-			background-color: #fff!important;
-			.u-dropdown__menu__item{
-				background-color: #fff!important;
-			}
-			
-		}
-		> u-dropdown{
-			flex: none !important;
-		}
-		//  列表
-		.scroll-con{
-			// height: calc(100% - 40);
-			flex: 1;
-			overflow: auto;
-		}
-		//  列表样式
-		.cell-item-con{
-			.cell-item{
-				background-color: #fff;
-				color: #606266;
-				.cell-item-month{
-					display: block;
-					color: #909399;
-					font-size: 26rpx;
-					padding: 16rpx 30rpx;
-					background-color: #f8f8f8;
-				}
-				.cell-item-main{
-					display: flex;
-					align-items: center;
-					padding: 20rpx 30rpx;
-					border-bottom: 1rpx solid #e9e9e9;
-					.cell-item-pic{
-						flex-shrink: 0;
-						width: 90rpx;
-						height: 90rpx;
-						line-height: 90rpx;
-						background-color: #FFFFFF;
-						border-radius: 50%;
-						text-align: center;
-						display: flex;
-						align-items: center;
-					}
-					.cell-item-c{
-						flex-grow: 1;
-						.cell-item-des{
-							display: block;
-							color: #606266;
-							font-size: 30rpx;
-							margin-bottom: 10rpx;
-						}
-						.cell-item-date{
-							display: block;
-							color: #909399;
-							font-size: 24rpx;
-						}
-					}
-					.cell-item-score{
-						flex-shrink: 0;
-						font-size: 40rpx;
-						display: flex;
-						align-items: center;
-					}
-					.black{
-						color: #01c9b2;
-					}
-					.red{
-						color: red;
-					}
-					.orange{
-						background-color: #fcbd71;
-						color: #fff;
-					}
-				}
-				.cell-item-main:last-child{
-					border: none;
-				}
-			}
-		}
-	}
-</style>

+ 0 - 63
pages/userCenter/myCode/myCode.vue

@@ -1,63 +0,0 @@
-<template>
-	<view class="codes">
-		<view class="canvasbox">
-			<canvas style="width: 200px;height: 200px;" canvas-id="myQrcode"></canvas>
-		</view>
-		<view class="text">
-			请将二维码对准设备摄像头
-		</view>
-	</view>
-</template>
-
-<script>
-	import drawQrcode from 'weapp-qrcode'
-	export default {
-		data() {
-			return {
-				qrcode: null
-			}
-		},
-		onLoad() {
-			this.creatQrCode()
-			// 开启分享
-			uni.showShareMenu({
-				withShareTicket: true,
-				menus: ['shareAppMessage', 'shareTimeline']
-			})
-		},
-		methods: {
-			creatQrCode() {
-			  let userData = this.$store.state.vuex_userData
-			  console.log(userData)
-			  drawQrcode({
-			    width: 200,
-			    height: 200,
-			    canvasId: 'myQrcode',
-			    text: `userId=${userData.customNo}&type=user`
-			  })
-			}
-		}
-	}
-</script>
-
-<style>
-.codes{
-	width: 100%;
-	padding: 50rpx;
-}
-.canvasbox{
-	box-shadow: 3upx 3upx 6upx #eee;
-	background: #FFFFFF;
-	height: 230px;
-	width: 230px;
-	display: flex;
-	justify-content: center;
-	align-items: center;
-	margin: 50rpx auto;
-}
-.text{
-	text-align: center;
-	padding: 20rpx;
-	color: #999999;
-}
-</style>

+ 0 - 70
pages/userCenter/question.vue

@@ -1,70 +0,0 @@
-<template>
-	<view class="lc" >
-		<view class="lc-container">
-			<!-- 常见问题 -->
-			<view class="lc-container-xs"  style="font-size: 32rpx;">
-				<view class="lc-container-title" >Q&A常见问题</view>
-				<view class="lc-container-step" >Q: 为什么投放垃圾后乐豆没有到账 ?</view>
-				<view class="lc-container-step-item">A: 每次需要投放最小计算单位以上的重量才会有乐豆奖励。</view>
-				<view class="lc-container-step" >Q: 如何修改支付密码 ?</view>
-				<view class="lc-container-step-item">A: 点击“我的”,前往[个人中心],进入“支付密码”页面可修改支付密码。</view>
-				<view class="lc-container-step" >Q: 乐豆余额不足时该如何兑换商品 ?</view>
-				<view class="lc-container-step-item">A: 余额不足时不可兑换商品,需要通过各种方式增加乐豆积累后可照常兑换商品</view>
-				<view class="lc-container-step" >Q: 乐豆余额可以提现吗 ?</view>
-				<view class="lc-container-step-item">A: 当前版本暂不支持乐豆余额提现,乐豆仅供线上商城、乐享便利兑换使用。</view>
-				<view class="lc-container-step" >Q: 如何完成垃圾投放 ?</view>
-				<view class="lc-container-step-item">A: 通过首页地图找到附近的乐色箱,通过手机号认证身份后,按下开箱按钮,将分类好的垃圾投放进箱內。</view>
-				<view class="lc-container-step" >Q: 如何查看已兑换商品订单的物流状态 ?</view>
-				<view class="lc-container-step-item">A: 点击“我的”,前往[我的订单],通过订单显示的快递公司和快递单号,可自行查询物流信息。</view>
-				<view class="lc-container-step" >Q: 如何进行线下兑换 ?</view>
-				<view class="lc-container-step-item">A: 可根据首页地图找到附近的乐享便利店,选择好所需商品后,向店员支付对应数量的乐豆,完成乐豆抵扣兑换商品。</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default {
-		onLoad() {
-			// 开启分享
-			uni.showShareMenu({
-				withShareTicket: true,
-				menus: ['shareAppMessage', 'shareTimeline']
-			})
-		},
-	}
-</script>
-
-<style lang="scss">
-	.lc{
-		padding: 15px;
-		line-height: 170%;
-		.lc-container{
-			font-size: 32rpx;
-			.lc-container-xs{
-				margin-bottom: 50rpx;
-				.lc-container-title{
-					text-align: center;
-					font-weight: bold;
-					font-size: 45rpx;
-					margin-bottom:40rpx ;
-				}
-				.lc-container-step{
-					color:#217330;
-					font-size: 38rpx;
-					margin: 10rpx 0;
-				.lc-container-step-name{
-					font-weight: bold;
-				}
-				.lc-container-step-item{
-					text{
-						margin-right: 5rpx;
-						font-size: 35rpx;
-						color: #DD524D;
-					}
-				}
-			}
-		}
-		}
-	}
-</style>

+ 0 - 102
pages/userCenter/userInfo/changePayPwd.vue

@@ -1,102 +0,0 @@
-<template>
-	<view class="changePayPwd-container">
-		<text class="pwd-describe">请输入当前支付密码</text>
-		<view class="pwd-item">
-			<input v-model="oldPwd" border type="password" placeholder="请输入支付密码" :maxlength="30" class="inp-pwd" />
-		</view>
-		<view class="btn-con">
-			<u-button class="handle-btn" type="info" size="medium" @click="cancel">取消</u-button>
-			<u-button class="handle-btn" type="primary" size="medium" @click="submit">确定</u-button>
-		</view>
-		<view class="linkbtn-con">
-			<text class="link-btn" @click="goPage">忘记支付密码</text>
-		</view>
-	</view>
-</template>
-
-<script>
-	import { checkPayPwd } from '@/api/order.js'
-	import md5 from 'md5'
-	export default {
-		data() {
-			return {
-				oldPwd: ''  //  旧密码
-			}
-		},
-		onShow() {
-		},
-		onLoad() {
-		},
-		methods:{
-			//  确定
-			submit(){
-				if(this.oldPwd){
-					checkPayPwd({oldPayPassword:md5(this.oldPwd)}).then(res=>{
-						if(res.status == 200) {
-							//  跳转到设置密码
-							uni.redirectTo({
-								url: `/pages/userCenter/userInfo/paymentPwd?oldPwd=${this.oldPwd}`
-							})
-						} 
-					})
-					
-				}else{
-					uni.showToast({ title: '请输入支付密码', icon: 'none' })
-				}
-			},
-			//  取消
-			cancel(){
-				uni.navigateBack({ delta: 1 })
-			},
-			//  忘记支付密码
-			goPage(){
-				uni.redirectTo({
-					url: '/pages/userCenter/userInfo/smsVerification'
-				})
-			}
-		}
-	}
-</script>
-
-<style lang="less">
-	.changePayPwd-container{
-		width: 100%;
-		padding: 0 30rpx;
-		box-sizing: border-box;
-		background-color: #fff;
-		.pwd-describe{
-			display: block;
-			color: #606266;
-			padding: 80rpx 0 70rpx;
-			text-align: center;
-		}
-		.pwd-item{
-			.inp-pwd{
-				padding: 10upx 0;
-				border: 1px solid #cacaca;
-				text-align: center;
-			}
-		}
-		.btn-con{
-			display: flex;
-			justify-content: space-between;
-			padding-top: 130rpx;
-			.handle-btn{
-				display: inline-block;
-				width: 45%;
-				margin: 0 auto;
-				text-align: center;
-			}
-		}
-		.linkbtn-con{
-			text-align: center;
-			.link-btn{
-				display: inline-block;
-				font-size: 28rpx;
-				color: #298bf2;
-				margin-top: 200rpx;
-			}
-		}
-	}
-</style>
-

+ 0 - 175
pages/userCenter/userInfo/paymentPwd.vue

@@ -1,175 +0,0 @@
-<template>
-	<view class="paymentPwd-container">
-		<text class="pwd-describe">{{nowSetp == 1 ? '请设置6位数字支付密码' : nowSetp == 2 ? '请再次输入密码' : ''}}</text>
-		<view class="sms-item" @click="showKeyboard=!showKeyboard">
-			<u-message-input mode="bottomLine" :maxlength="6" v-model="value" :dot-fill="true" :disabled-keyboard="true"></u-message-input>
-		</view>
-		<!-- 数字键盘 -->
-		<u-keyboard ref="uKeyboard" :dot-enabled="false" :mask="false" :tooltip="false" v-model="showKeyboard" @change="valChange" @backspace="backspace"></u-keyboard>
-	</view>
-</template>
-
-<script>
-	import {setPayPwd, changePayPwd} from '@/api/order.js'
-	import md5 from 'md5'
-	export default {
-		data() {
-			return {
-				nowSetp: 1,  //  当前第几次设置密码
-				value: '', //输入的内容
-				showKeyboard: false,  //  是否打开键盘
-				oPwd: '',  //  第一次密码
-				tPwd: '',  //  第二次密码
-				oldPwd: '', // 原密码
-				mobile: '', // 用户手机号
-				verifiCode: '', // 短信验证码
-			}
-		},
-		onShow() {
-		},
-		onLoad(option) {
-			if (option.code){
-				this.mobile = option.mobile
-				this.verifiCode = option.code
-				this.oldPwd = ''
-			}
-			if (option.oldPwd){
-				this.oldPwd = option.oldPwd
-			}
-			//因为此时实例没有挂载完成,需要延迟操作
-			setTimeout(() => {
-			  this.showKeyboard = true
-			}, 50)
-		},
-		watch: {
-			// 监听输入框输入长度
-			 value: {
-				handler(newVal) {
-					if(newVal.length==6) {
-						if(this.nowSetp == 1){
-							this.oPwd = this.value
-							if(this.oldPwd && this.oPwd === this.oldPwd) {
-								uni.showToast({
-									title: '新密码与原密码相同,请重新输入!',
-									icon: 'none'
-								})
-								this.value = ''
-								return false
-							} else {
-								this.value = ''
-								this.nowSetp++
-								this.showKeyboard = true
-							}
-						}else if(this.nowSetp == 2){
-							this.tPwd = this.value
-							this.showKeyboard = false
-							this.checkPwd()
-						}
-					}
-				},
-				deep: true
-			}
-		},
-		methods:{
-			// 按键被点击(点击退格键不会触发此事件)
-			valChange(val) {
-				// 将每次按键的值拼接到value变量中,注意+=写法
-				if(this.value.length < 6){
-					this.value += val
-				}
-			},
-			// 退格键被点击
-			backspace() {
-				// 删除value的最后一个字符
-				if(this.value.length) this.value = this.value.substr(0, this.value.length - 1)
-			},
-			//  密码校验
-			checkPwd(){
-				if(this.oPwd == this.tPwd){
-					if(this.oldPwd) {
-						this.changePsw()
-					} else{
-						//  设置密码 请求接口
-						this.setPsw()
-					}
-					
-				}else{
-					uni.showToast({ title: '两次密码不一致请重新输入', icon: 'none' })
-					this.value = ''
-					this.showKeyboard = true
-				}
-			},
-			// 首次设置密码
-			setPsw () {
-				let params = {
-					mobile: this.mobile,
-					verifiCode: this.verifiCode,
-					payPassword: md5(this.value)
-				}
-				console.log(params,'--------mima')
-				setPayPwd(params).then(res=>{
-					if(res.status==200) {
-						uni.showToast({ title: res.message, icon: 'none' })
-						 uni.$emit('setPswSuccess', {success: true})
-						setTimeout(()=>{
-							uni.navigateBack({
-							    delta: 1
-							})
-						}, 2000)
-					} 
-				})
-			},
-			// 修改密码
-			changePsw () {
-				let params = {
-					oldPayPassword: md5(this.oldPwd),
-					payPassword: md5(this.value)
-				}
-				changePayPwd(params).then(res=>{
-					if(res.status==200) {
-						uni.showToast({ title: res.message, icon: 'none' })
-						setTimeout(()=>{
-							uni.navigateBack({
-							    delta: 1
-							})
-						}, 2000)
-					} 
-				})
-			},
-			//  取消
-			cancel(){
-				this.oPwd = ''
-				this.tPwd = ''
-				this.value = ''
-				this.nowSetp = 1
-			}
-		}
-	}
-</script>
-
-<style lang="less">
-	.paymentPwd-container{
-		width: 100%;
-		padding: 0 30rpx;
-		box-sizing: border-box;
-		background-color: #fff;
-		.pwd-describe{
-			display: block;
-			color: #606266;
-			padding: 80rpx 0 70rpx;
-			text-align: center;
-		}
-		.btn-con{
-			display: flex;
-			justify-content: space-between;
-			padding-top: 130rpx;
-			.handle-btn{
-				display: inline-block;
-				width: 45%;
-				margin: 0 auto;
-				text-align: center;
-			}
-		}
-	}
-</style>
-

+ 0 - 210
pages/userCenter/userInfo/smsVerification.vue

@@ -1,210 +0,0 @@
-<template>
-	<view class="smsVerification-container">
-		<view v-if="sendCode" class="">
-			<view class="sms-title">输入短信验证码</view>
-			<text class="sms-describe">验证码已发送至{{userPhone}},请在下方输入框内输入6位数字验证码</text>
-			<view class="sms-item" @click="showKeyboard=!showKeyboard">
-				<u-message-input mode="bottomLine" :maxlength="6" v-model="value" :disabled-keyboard="true"></u-message-input>
-			</view>
-			<view class="sendcode-con">
-				<text :class="['getcode-btn', isDisable ? 'grey-btn' : '']" @click="isDisable ? null : pageInit()">{{nowVal}}</text>
-			</view>
-		</view>
-		<!-- 数字键盘 -->
-		<u-keyboard ref="uKeyboard" :dot-enabled="false" :mask="false" :tooltip="false" v-model="showKeyboard" @change="valChange" @backspace="backspace"></u-keyboard>
-		<!-- 图文验证码 -->
-		<uni-popup :maskClick="false" ref="imageTxtPopup" type="center">
-			<popup-con title="图文验证码" :popBtn="popBtn" :changeImg="changeImg" @captchaImg="captchaVerify"></popup-con>
-		</uni-popup>
-	</view>
-</template>
-
-<script>
-	import uniPopup from '@/components/uni-popup/uni-popup.vue'
-	import popupCon from '@/components/uni-popup/popup-con.vue'
-	import { sendVerifyCode } from '@/api/user.js'
-	import { checkCode } from '@/api/order.js'
-	export default {
-		components: {
-			uniPopup,
-			popupCon
-		},
-		data() {
-			return {
-				nowVal: '获取验证码',  //  按钮显示内容
-				count: '',  //  当前秒数
-				timer: null,  //  倒计时
-				isDisable: false,  //  是否禁止获取验证码
-				value: '', //输入的内容
-				phone: '', // 用户手机号
-				showKeyboard: false,  //  是否打开键盘
-				popBtn: [],  //  name为操作按钮名称,color为操作按钮颜色值
-				changeImg: false,  //  是否重新更换图形验证码
-				verifyCode: '',
-				randomCode: '',  //  图片验证码随机码
-				sendCode: false  // 短信是否发送成功
-			}
-		},
-		onLoad() {
-			this.phone = this.$store.state.vuex_userData.mobile
-			console.log(this.$store.state.vuex_userData,'his.$store.state.vuex_OrderAddress')
-			//因为此时实例没有挂载完成,需要延迟操作
-			setTimeout(() => {
-			  this.pageInit()
-			}, 50)
-		},
-		computed: {
-			userPhone () {
-				return this.phone.substr(0,3) + "****" + this.phone.substr(7)
-			}
-		},
-		watch: {
-			// 监听输入框输入长度
-			 value: {
-				handler(newVal) {
-					// console.log(newVal.length,'NNNNNNNNNNNN')
-					if(newVal.length==6) {
-						let params = {
-							mobile: this.phone,
-							verifiCode: newVal
-						}
-						checkCode(params).then(res=>{
-							if(res.status==200) {
-								//  跳转到设置密码
-								uni.redirectTo({
-									url: `/pages/userCenter/userInfo/paymentPwd?code=${this.value}&mobile=${this.phone}`
-								})
-							} 
-						})
-						
-					}
-				},
-				deep: true
-			}
-		},
-		methods:{
-			pageInit () {
-				this.value = ''
-				this.sendCode = false
-				this.showKeyboard = false
-				this.retsetCode()
-				//  图文验证码
-				this.$refs.imageTxtPopup.open()
-			},
-			//  验证图片验证码
-			captchaVerify(code, nowRandomCode){
-				let obj = {}
-				obj.phone = this.phone
-				obj.random = nowRandomCode
-				obj.code = code
-				//  短信验证码
-				sendVerifyCode(obj).then(res => {
-					console.log(JSON.stringify(res))
-					if(res.status == 200){  //  验证码输入正确
-						this.randomCode = nowRandomCode  //  图片验证码随机码
-						//  关闭   图形验证码 弹框
-						this.$refs.imageTxtPopup.close()
-						//  开启倒计时
-						this.getCodeFun()
-						this.sendCode = true
-						this.showKeyboard = true
-						uni.showToast({icon: 'none',title: '验证码发送成功'})
-					}else {  //  验证码输入错误
-						this.retsetCode()
-						uni.showToast({icon: 'none',title: res.message})
-					}
-				})
-			},
-			// 重新触发获取图片验证码
-			retsetCode(){
-				const _this = this
-				_this.verifyCode = ''
-				_this.randomCode = ''
-				//  切换验证码重新校验
-				_this.changeImg = false
-				_this.$nextTick(function(){
-					_this.changeImg = true
-				})
-			},
-			// 按键被点击(点击退格键不会触发此事件)
-			valChange(val) {
-				// 将每次按键的值拼接到value变量中,注意+=写法
-				if(this.value.length < 6){
-					this.value += val
-				}
-			},
-			// 退格键被点击
-			backspace() {
-				// 删除value的最后一个字符
-				if(this.value.length) this.value = this.value.substr(0, this.value.length - 1)
-			},
-			//  开始倒计时
-			getCodeFun(){
-				const TIME_COUNT = 60
-				if (!this.timer) {
-				  this.count = TIME_COUNT
-				  this.timer = setInterval(() => {
-				    if (this.count > 0 && this.count <= TIME_COUNT) {
-				      this.count--
-				      this.nowVal = this.count + '秒后重新发送'
-				      this.isDisable = true
-				    } else {
-				      this.nowVal = '重新获取验证码'
-				      clearInterval(this.timer)
-				      this.timer = null
-				      this.isDisable = false
-				    }
-				  }, 1000)
-				}
-			},
-			//  取消
-			cancel(){
-				uni.navigateBack({
-				    delta: 1
-				})
-			}
-		}
-	}
-</script>
-
-<style lang="less">
-	.smsVerification-container{
-		width: 100%;
-		padding: 0 30rpx;
-		box-sizing: border-box;
-		background-color: #fff;
-		.sms-title {
-		  margin: 50rpx 0 30rpx;
-		  font-size: 36rpx;
-		  font-weight: bold;
-		}
-		.sms-describe{
-			display: block;
-			color: #606266;
-			margin: 20rpx 0 50rpx;
-		}
-		.sendcode-con{
-			text-align: center;
-			padding-top: 70rpx;
-			.getcode-btn {
-				display: block;
-				font-size: 28rpx;
-				color: #298bf2;
-			}
-			.grey-btn{
-				color: #999;
-			}
-		}
-		.btn-con{
-			display: flex;
-			justify-content: space-between;
-			padding-top: 130rpx;
-			.handle-btn{
-				display: inline-block;
-				width: 45%;
-				margin: 0 auto;
-				text-align: center;
-			}
-		}
-	}
-</style>

+ 0 - 139
pages/userCenter/userInfo/userInfo.vue

@@ -1,139 +0,0 @@
-<template>
-	<view class="userInfo-container">
-		<u-cell-group>
-			<u-cell-item title="头像" :arrow="false" center>
-				<view class="user-photo"><open-data type="userAvatarUrl"></open-data></view>
-			</u-cell-item>
-			<u-cell-item title="手机号码" :value="userDate.mobile" :arrow="false"></u-cell-item>
-			<u-cell-item title="收货地址" :value="address?'修改收货地址':'设置收货地址'" index="0" @click="editAddress"></u-cell-item>
-			<u-cell-item title="支付密码" :value="existPayPwd?'修改密码':'设置密码'" @click="setPayPwd"></u-cell-item>
-		</u-cell-group>
-		<!-- 退出 -->
-		<view class="user-btn">
-			<u-button type="success" :custom-style="quitButton" @click="quitSys" shape="circle">退出登录</u-button>
-		</view>
-	</view>
-</template>
-
-<script>
-	import {existPayPwd} from '@/api/order.js'
-	import {findAddressBycustomerNo} from '@/api/receiveAddress.js'
-	import {logout} from '@/api/login.js'
-	export default {
-		data() {
-			return {
-				quitButton: {
-					borderRadius:'100rpx',
-					fontSize:'30rpx',
-					background: '#01c9b2'
-				},
-				userDate: {},
-				existPayPwd: null,
-				address: null,
-				userInfo: {}
-			}
-		},
-		onLoad() {
-			// 开启分享
-			uni.showShareMenu({
-				withShareTicket: true,
-				menus: ['shareAppMessage', 'shareTimeline']
-			})
-		},
-		onShow() {
-			this.userDate = this.$store.state.vuex_userData
-			this.getPayPwd()
-			this.getAddress()
-		},
-		methods:{
-			// 获取用户位置
-			getAddress() {
-				 findAddressBycustomerNo({}).then(res => {
-					 console.log(res)
-					 if (res.status == 200&&res.data.length) {
-						 this.address = res.data[0].receiveAreasName
-						 this.userInfo = res.data[0]
-					 } else {
-						 this.address = ''
-						 this.userInfo = {}
-					 }
-				 })
-			},
-			// 判断是否设置过支付密码
-			getPayPwd(){
-				existPayPwd().then(res=>{
-					if(res.status == 200) {
-						if(res.data) {
-							this.existPayPwd = true
-						} else {
-							this.existPayPwd = false
-						}
-					}
-				})
-			},
-			// 修改收货地址
-			editAddress(index){
-				this.$u.vuex("vuex_OrderAddress",this.userInfo)
-				uni.navigateTo({
-					url:"/pagesA/toOrder/editAddress"
-				})
-			},
-			// 设置密码
-			setPayPwd(){
-				// 设置过支付密码,则修改密码
-				if(this.existPayPwd){
-					uni.navigateTo({ url: '/pages/userCenter/userInfo/changePayPwd' })
-				}else{
-					// 没设置过支付密码,提示设置密码
-					uni.navigateTo({ url: '/pages/userCenter/userInfo/smsVerification' })
-				}
-			},
-			// 退出登录
-			quitSys(){
-				let _this = this
-				uni.showModal({
-				  title: '提示',
-				  content: '您确定要退出登录吗?',
-				  success(res) {
-				    if (res.confirm) {
-				      logout({}).then(res => {
-				       getApp().globalData.token = ''
-				       _this.$u.vuex('vuex_token','')
-					   _this.$u.vuex('vuex_userData','')
-					   _this.$u.vuex('vuex_cartList','')
-					   _this.$u.vuex('vuex_OrderAddress','')
-					   _this.$u.vuex('vuex_toOrderList','')
-					   // 关闭socket
-					   _this.$store.commit("$closeWebsocket")
-				        uni.reLaunch({
-				        	url: '/pages/index/index'
-				        })
-				      })
-				    }
-				  }
-				})
-			}
-		}
-	}
-</script>
-
-<style lang="less">
-	.userInfo-container{
-		width: 100%;
-		.logout-btn{
-			width: 60%;
-			margin-top: 200rpx;
-		}
-		.user-btn{
-			padding: 85rpx 200rpx;
-		}
-		.user-photo{
-			width: 100rpx;
-			height: 100rpx;
-			border-radius: 50%;
-			overflow: hidden;
-			margin-right: 5rpx;
-			float: right;
-		}
-	}
-</style>

+ 0 - 169
pages/userCenter/zhinan.vue

@@ -1,169 +0,0 @@
-<template>
-	<view class="lc" >
-		<view class="lc-container">
-			<!-- 新手引导 -->
-			<view class="lc-container-xs">
-				<view class="lc-container-title" style="margin-top: 0;">新手引导</view>
-				<view class="lc-container-step" style="margin-top: 0;">(<text>一</text>)、新手入驻</view>
-				<view class="lc-container-step-name" style="font-weight: bold; font-size: 32rpx;margin: 20rpx 0;">用户登录</view>
-				<view class="lc-container-step-item">
-					(<text>1</text>)
-					<text style="margin-left:10rpx ;">用户进入小程序,点击微信登录,授权手机号后将自动登录。</text>
-				</view>
-				<view class="lc-container-step-item">
-					(<text>2</text>)
-					<text style="margin-left:10rpx ;">用户进入小程序,点击手机号验证登录,可通过手机验证码登录小程序。</text>
-				</view>
-				<view class="lc-container-step-name" style="font-weight: bold;font-size: 32rpx;margin: 20rpx 0;">我的</view>
-				<view class="lc-container-step-item">
-					(<text>1</text>)
-					<text style="margin-left:10rpx ;">点击右下角「我的」,点击头像进入「个人中心」。</text>
-				</view>
-				<view class="lc-container-step-item">
-					(<text>2</text>)
-					<text style="margin-left:10rpx ;"> 进入“支付密码”页面,可设置/修改支付密码。</text>
-				</view>
-				<view class="lc-container-step-item">
-					(<text>3</text>)
-					<text style="margin-left:10rpx ;"> 进入“收货地址”页面,进行收货地址管理。</text>
-				</view>
-				<view class="lc-container-step">(<text>二</text>)、使用手册</view>
-				<view class="lc-container-step-name" style="font-weight: bold;font-size: 32rpx;margin: 20rpx 0;">垃圾投放</view>
-				<view class="lc-container-step-item">
-					(<text>1</text>)
-					<text style="margin-left:10rpx ;">进入首页,可查看距离自己当前位置最近的3个回收网点。</text>
-				</view>
-				<view class="lc-container-step-item">
-					(<text>2</text>)
-					<text style="margin-left:10rpx ;">在自动回收机上输入手机号进行身份验证后,选择对应的投递类型。</text>
-				</view>
-				<view class="lc-container-step-item">
-					(<text>3</text>)
-					<text style="margin-left:10rpx ;">按下设备的开箱按钮,将分类装好的垃圾投放进相应的回收箱内。</text>
-				</view>
-				<view class="lc-container-step-item">
-					(<text>4</text>)
-					<text style="margin-left:10rpx ;">系统自动称重,获得相应的乐豆积分。</text>
-				</view>
-				<view class="lc-container-step-name" style="font-weight: bold;font-size: 32rpx;margin: 20rpx 0;">兑换</view>
-				<view class="lc-container-step-name" style="font-weight: bold;font-size: 32rpx;margin: 20rpx 0;">乐豆商城</view>
-				<view class="lc-container-step-item">
-					(<text>1</text>)
-					<text style="margin-left:10rpx ;">进入小程序,点击「商城」,可查看商城商品。</text>
-					</view>
-				<view class="lc-container-step-item">
-					(<text>2</text>)
-					<text style="margin-left:10rpx ;">点击商品右侧的“购物车”添加商品,点击“去兑换”进入订单页面。</text>
-				</view>
-				<view class="lc-container-step-item">
-					(<text>3</text>)
-					<text style="margin-left:10rpx ;">确认订单无误后,点击“支付"跳转至支付页面,输入支付密码,完成兑换。</text>
-					</view>
-				<view class="lc-container-step-item">
-					(<text>4</text>)
-					<text style="margin-left:10rpx ;">收到货后要进行确认收货。</text>
-				</view>
-				<view class="lc-container-step-name" style="font-weight: bold;font-size: 32rpx;margin: 20rpx 0;">乐享亭</view>
-				<view class="lc-container-step-item">
-					(<text>1</text>)
-					<text style="margin-left:10rpx ;">找到附近的乐享亭,选择自己需要兑换的商品。</text>
-				</view>
-				<view class="lc-container-step-item">
-					(<text>2</text>)
-					<text style="margin-left:10rpx ;">同乐享亭店员沟通确认兑换该商品需要支付的乐豆。</text>
-				</view>
-				<view class="lc-container-step-item">
-					(<text>3</text>)
-					<text style="margin-left:10rpx ;">点击首页中间的“扫一扫”图标,输入需要支付的乐豆数字,点击“支付”输入支付密码后完成兑换。</text>
-				</view>
-			</view>
-			
-			<!-- 乐豆使用说明 -->
-			<view class="lc-container-xs" style="font-size: 32rpx;">
-				<view class="lc-container-title" >Q&A乐豆使用说明</view>
-				<view class="lc-container-step" >Q: 什么是乐豆 ?</view>
-				<view class="lc-container-step-item">A: 乐豆是用于乐色管家用户使用乐色管家各种服务及增值服务的种类、数量或时间等的一种统计代码,并非任何代币票券,不能用于乐色管家服务及增值服务以外的任何商品或服务。</view>
-				<view class="lc-container-step" >Q: 如何使用乐豆 ?</view>
-				<view class="lc-container-step-item">A: 乐豆可以用于兑换积分商城丰富的商品、服务,以及参与线上线下活动等。</view>
-				<view class="lc-container-step" >Q: 如何获得乐豆 ?</view>
-				<view class="lc-container-step-item">A: 用户可通过完成「垃圾投放」「系统任务」等方式来获取乐豆。</view>
-				<view class="lc-container-step" >Q: 乐豆的有效期限是多长 ?</view>
-				<view class="lc-container-step-item">A: 用户获得但未使用的乐豆长期有效。</view>
-				<view class="lc-container-step" >Q: 如何查看我的乐豆数量 ?</view>
-				<view class="lc-container-step-item">A: 点击“我的”,可查看乐豆余额;点击“乐豆明细”小图标可查看乐豆明细。</view>
-				<view class="lc-container-step" >Q: 乐豆的使用范围 ?</view>
-				<view class="lc-container-step-item">A: 乐色管家小程序+乐享亭。</view>
-			</view>
-			
-			<!-- 常见问题 -->
-			<view class="lc-container-xs"  style="font-size: 32rpx;">
-				<view class="lc-container-title" >Q&A常见问题</view>
-				<view class="lc-container-step" >Q: 为什么投放垃圾后乐豆没有到账 ?</view>
-				<view class="lc-container-step-item">A: 每次需要投放最小计算单位以上的重量才会有乐豆奖励。</view>
-				<view class="lc-container-step" >Q: 如何修改支付密码 ?</view>
-				<view class="lc-container-step-item">A: 点击“我的”,前往[个人中心],进入“支付密码”页面可修改支付密码。</view>
-				<view class="lc-container-step" >Q: 乐豆余额不足时该如何兑换商品 ?</view>
-				<view class="lc-container-step-item">A: 余额不足时不可兑换商品,需要通过各种方式增加乐豆积累后可照常兑换商品</view>
-				<view class="lc-container-step" >Q: 乐豆余额可以提现吗 ?</view>
-				<view class="lc-container-step-item">A: 当前版本暂不支持乐豆余额提现,乐豆仅供线上商城、乐享便利兑换使用。</view>
-				<view class="lc-container-step" >Q: 如何完成垃圾投放 ?</view>
-				<view class="lc-container-step-item">A: 通过首页地图找到附近的乐色箱,通过手机号认证身份后,按下开箱按钮,将分类好的垃圾投放进箱內。</view>
-				<view class="lc-container-step" >Q: 如何查看已兑换商品订单的物流状态 ?</view>
-				<view class="lc-container-step-item">A: 点击“我的”,前往[我的订单],通过订单显示的快递公司和快递单号,可自行查询物流信息。</view>
-				<view class="lc-container-step" >Q: 如何进行线下兑换 ?</view>
-				<view class="lc-container-step-item">A: 可根据首页地图找到附近的乐享便利店,选择好所需商品后,向店员支付对应数量的乐豆,完成乐豆抵扣兑换商品。</view>
-			</view>
-			<view style="font-size: 32rpx;">
-				温馨提示:使用过程中,如有其他问题,可前往[我的],点击“联系客服”图标,拨打客服电话进行沟通。
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default {
-		onLoad() {
-			// 开启分享
-			uni.showShareMenu({
-				withShareTicket: true,
-				menus: ['shareAppMessage', 'shareTimeline']
-			})
-		},
-	}
-</script>
-
-<style lang="scss">
-	.lc{
-		padding: 15px;
-		line-height: 170%;
-		.lc-container{
-			font-size: 32rpx;
-			.lc-container-xs{
-				margin-bottom: 50rpx;
-				.lc-container-title{
-					text-align: center;
-					font-weight: bold;
-					font-size: 45rpx;
-					margin:40rpx ;
-				}
-				.lc-container-step{
-					color:#217330;
-					font-size: 38rpx;
-					margin: 30rpx 0;
-				.lc-container-step-name{
-					font-weight: bold;
-					margin: 20rpx 0;
-				}
-				.lc-container-step-item{
-					margin: 20rpx 0;
-					text{
-						margin-right: 5rpx;
-						font-size: 35rpx;
-						color: #DD524D;
-					}
-				}
-			}
-		}
-		}
-	}
-</style>

BIN
static/logo.jpg