shish há 11 meses atrás
pai
commit
5d569c4369

+ 3 - 1
mallApp/src/pages.json

@@ -18,7 +18,9 @@
             "pages": [
                 { "path": "register", "style": { "navigationBarTitleText": "注册" } },
                 { "path": "password", "style": { "navigationBarTitleText": "修改密码" } },
-                { "path": "modify", "style": { "navigationBarTitleText": "资料修改" } }
+                { "path": "address", "style": { "navigationBarTitleText": "地址修改" } },
+                { "path": "edit", "style": { "navigationBarTitleText": "个人信息" } },
+                { "path": "birthday", "style": { "navigationBarTitleText": "生日" } }
             ]
         },
         {

+ 9 - 4
mallApp/src/pages/home/recent.vue

@@ -22,11 +22,11 @@
                 <image class="avatar" :src="user.smallAvatar" mode="aspectFill" />
               </button>
             </view>
-            <view class="user-info">
+            <view class="user-info" @click="goEdit()">
               <text class="username">{{ user.name }}</text>
               <text class="user-id">ID {{ user.id }}</text>
             </view>
-            <view class="arrow-container">
+            <view class="arrow-container" @click="goEdit()">
               <text class="arrow-icon">〉</text>
             </view>
           </view>
@@ -36,7 +36,7 @@
                <text class="function-icon">📊</text>
                <text class="function-text">统计</text>
              </view>
-             <view class="function-item" @click="">
+             <view class="function-item" @click="setAddress">
                <text class="function-icon">📍</text>
                <text class="function-text">地址</text>
              </view>
@@ -279,6 +279,9 @@ export default {
     tj(item){
       this.pageTo({ url:'/pages/home/mall?id='+item.id+'&account='+item.shopId})
     },
+    setAddress(){
+      this.pageTo({ url:'/pages/user/address'})
+    },
     init () {
       this.getLoginInfo()
       this.getMyHdList()
@@ -317,9 +320,11 @@ export default {
       this.recharge(item)
     },
     goToBirthday() {
-      // 跳转到生日填写页面
       this.pageTo({ url: '/pages/user/birthday' })
     },
+    goEdit(){
+      this.pageTo({ url: '/pages/user/edit' })
+    },
     onChooseAvatar(e) {
       if (e.detail.avatarUrl) {
         this.user.smallAvatar = e.detail.avatarUrl

+ 32 - 44
mallApp/src/pages/user/modify.vue → mallApp/src/pages/user/address.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="app-content">
-		<form @submit="formSubmit" @reset="formReset">
+		<form @submit="formSubmit">
 			<view class="module-com input-line-wrap">
 				<tui-list-cell class="line-cell" :hover="false">
 					<view class="tui-title">名称</view>
@@ -27,8 +27,8 @@
 					<input v-model="form.floor" placeholder-class="phcolor" class="tui-input" name="floor" placeholder="楼号门牌号(选填)" @input="modifyShow" />
 				</tui-list-cell>
 			</view>
-			<view class="confirm-btn">
-				<button class="admin-button-com big blue" formType="submit">修改</button>
+			<view style="text-align: center;">
+				<button class="admin-button-com big blue" style="width:84%;" formType="submit">修改</button>
 			</view>
 		</form>
 		<!-- 省市联动 -->
@@ -42,7 +42,6 @@ import TuiListCell from '@/components/plugin/list-cell'
 import SimpleAddress from '@/components/plugin/simple-address'
 import AppAreaSel from '@/components/app-area-sel'
 const form = require('@/utils/formValidation.js')
-import {mapActions} from "vuex";
 import {currentInfo,updateInfo} from "@/api/user"
 export default {
 	name: 'modify',
@@ -161,49 +160,38 @@ export default {
 	}
 }
 </script>
-
 <style lang="scss" scoped>
-	.app-content {
-		min-height: calc(100vh - 20upx);
-		padding-top: 20upx;
-		padding-bottom:130upx;
-	}
-	.prompt-text {
-		color: $fontColor3;
-		padding-left: 30upx;
-		margin-bottom: 30upx;
-	}
-	.module-com {
-		margin-bottom: 20upx;
-		  background-color: #fff;
-		.member-wrap {
-			.member-det {
-				font-size: 24upx;
-				margin-left: 20upx;
-			}
-		}
-		.remark-wrap {
-			align-items: flex-start;
-			.remark {
-				height: 100upx;
-			}
-		}
-		.module-tit {
-			padding: 20upx 30upx;
-			font-size: 28upx;
-		}
-		.module-det {
-			padding: 0 30upx;
+.app-content {
+	min-height: calc(100vh - 20upx);
+	padding-top: 20upx;
+	padding-bottom:130upx;
+}
+.prompt-text {
+	color: $fontColor3;
+	padding-left: 30upx;
+	margin-bottom: 30upx;
+}
+.module-com {
+	margin-bottom: 20upx;
+		background-color: #fff;
+	.member-wrap {
+		.member-det {
+			font-size: 24upx;
+			margin-left: 20upx;
 		}
 	}
-	.confirm-btn {
-		position:fixed;
-		bottom:0upx;
-		width: calc(100% - 60upx);
-		margin: 60upx 30upx 0upx;
-		z-index:99;
-		.admin-button-com {
-			width: 100%;
+	.remark-wrap {
+		align-items: flex-start;
+		.remark {
+			height: 100upx;
 		}
 	}
+	.module-tit {
+		padding: 20upx 30upx;
+		font-size: 28upx;
+	}
+	.module-det {
+		padding: 0 30upx;
+	}
+}
 </style>

+ 188 - 0
mallApp/src/pages/user/birthday.vue

@@ -0,0 +1,188 @@
+<template>
+	<div class="app-content">
+		<form @submit="formSubmit">
+			<div class="module-com input-line-wrap">
+				<tui-list-cell class="line-cell" :hover="false">
+					<div class="tui-title">手机号</div>
+					<input v-model="form.mobile" placeholder-class="phcolor" class="tui-input" name="mobile" placeholder="请输入手机号" type="number" />
+				</tui-list-cell>
+				<tui-list-cell class="line-cell code-wrap" :hover="false">
+					<div class="tui-title">验证码</div>
+					<input v-model="form.code" placeholder-class="phcolor" class="tui-input" name="code" placeholder="请输入验证码" type="number" />
+					<div class="tui-code" v-if="isSend">{{ countDown + 's' }}</div>
+					<div class="tui-code" v-else @click="getCode">获取验证码</div>
+				</tui-list-cell>
+				<tui-list-cell class="line-cell" :hover="false">
+					<div class="tui-title">姓名</div>
+					<input v-model="form.realName" placeholder-class="phcolor" class="tui-input" name="realName" placeholder="选填" type="text" />
+				</tui-list-cell>
+				<tui-list-cell class="line-cell" :hover="false">
+					<div class="tui-title">生日</div>
+					<picker mode="date" :value="form.birthday" @change="selTimeFn" class="tui-input">
+						<input v-model="form.birthday" hidden placeholder-class="phcolor" class="tui-input" name="birthday" />
+						<div v-if="form.birthday">{{ form.birthday }}</div>
+						<div class="tui-placeholder" v-else>请选择生日</div>
+					</picker>
+					<!-- <input placeholder-class="phcolor" class="tui-input" name="phone" placeholder="选填" maxlength="50" type="number" /> -->
+				</tui-list-cell>
+				<div class="btn-wrap">
+					<button class="button-com red big" formType="submit">确认</button>
+				</div>
+			</div>
+		</form>
+	</div>
+</template>
+
+<script>
+import TuiListCell from '@/components/plugin/list-cell'
+const form = require('@/utils/formValidation.js')
+// api
+import { register } from '@/api/login'
+import { sendSms } from '@/api/common'
+export default {
+	name: 'register',
+	components: {
+		TuiListCell
+	},
+	data() {
+		return {
+			form: {
+				mobile: '',
+				code: '',
+				realName: '',
+				birthday: 0
+			},
+			isSend: 0,
+			countDown: 119,
+			timer: null
+		}
+	},
+	onLoad(option) {},
+	methods: {
+		getCode() {
+			if (!this.form.mobile || !this.$util.checkMobile(this.form.mobile)) {
+				this.$msg('请输入正确的手机号!')
+				return false
+			}
+			this.isSend = 1
+			sendSms({
+				type: 1,
+				mobile: this.form.mobile
+			})
+				.then(res => {
+					this.beginCountDown()
+					this.$msg('发送成功!')
+				})
+				.catch(() => {
+					this.isSend = 0
+					this.$msg('发送失败!')
+				})
+		},
+		selTimeFn(e) {
+			this.form.birthday = e.detail.value
+		},
+		confirmFn() {
+			register(this.form).then(res => {
+				this.$msg('注册成功!')
+				setTimeout(() => {
+					this.$util.pageTo({
+						url: '/pages/callback/index',
+						query: {
+							pageStatus: 6
+						}
+					})
+				})
+			})
+		},
+		// 倒计时
+		beginCountDown() {
+			this.countDown = 119
+			this.timer = setInterval(() => {
+				if (this.countDown === 0) {
+					clearInterval(this.timer)
+					this.isSend = 0
+					return
+				}
+				this.countDown -= 1
+			}, 1000)
+		},
+		// 表单验证
+		formSubmit(e) {
+			// 表单规则
+			let rules = [
+				{
+					name: 'mobile',
+					rule: ['required'],
+					msg: ['请输入手机号']
+				},
+				{
+					name: 'code',
+					rule: ['required'],
+					msg: ['请输入验证码']
+				},
+				{
+					name: 'realName',
+					rule: ['required'],
+					msg: ['请输入名字']
+				},
+				{
+					name: 'birthday',
+					rule: ['required'],
+					msg: ['请选择生日']
+				}
+			]
+			// 进行表单检查
+			let formData = e.detail.value
+			let checkRes = form.validation(formData, rules)
+			// 验证通过!
+			if (!checkRes) {
+				setTimeout(() => {
+					this.confirmFn()
+				})
+			} else {
+				this.$msg(checkRes)
+			}
+		}
+	}
+}
+</script>
+
+<style lang="scss" scoped>
+	// 公共
+	.line-cell {
+		.tui-title {
+			width: 210upx;
+			color: $fontColor2;
+		}
+		.tui-input {
+			width: calc(100% - 210upx);
+			font-size: 28upx;
+		}
+		.tui-placeholder {
+			color: #ccc;
+		}
+		.phcolor {
+			color: #ccc;
+		}
+	}
+	.btn-wrap {
+		width: 90%;
+		margin: 60upx auto;
+		.button-com {
+			width: 100%;
+			margin: 0 auto;
+		}
+	}
+	.code-wrap {
+		.tui-input {
+			width: calc(100% - 410upx);
+			font-size: 28upx;
+		}
+		.tui-code {
+			width: 200upx;
+			text-align: center;
+			border-left: 1upx solid $borderColor;
+			color: $mainColor;
+		}
+	}
+</style>

+ 143 - 0
mallApp/src/pages/user/edit.vue

@@ -0,0 +1,143 @@
+<template>
+	<div class="app-content">
+		<form @submit="formSubmit">
+			<div class="module-com input-line-wrap">
+				<tui-list-cell class="line-cell" :hover="false">
+					<div class="tui-title">昵称</div>
+					<input v-model="form.name" placeholder-class="phcolor" class="tui-input" name="name" placeholder="请填写" type="nickname" />
+				</tui-list-cell>
+				<tui-list-cell class="line-cell" :hover="false">
+					<div class="tui-title">生日</div>
+
+					<div class="birthday-display" v-if="Number(userInfo.birthdayMonth)>0">
+					{{ userInfo.lunar==1?"农历 ":"" }}{{ userInfo.birthdayMonth }}月{{ userInfo.birthdayDate }}日
+					<text @click="goToBirthday()" style="color:#007aff;margin-left:20upx;">修改</text>
+					</div>
+					<div class="birthday-display" v-else>
+						<text @click="goToBirthday()" style="color:#007aff;">去设置</text>
+					</div>
+
+				</tui-list-cell>
+				<div class="btn-wrap">
+					<button class="button-com red big" formType="submit">确认</button>
+				</div>
+			</div>
+		</form>
+	</div>
+</template>
+<script>
+import TuiListCell from '@/components/plugin/list-cell'
+const form = require('@/utils/formValidation.js')
+import { currentInfo } from "@/api/user";
+export default {
+	name: 'edit',
+	components: {
+		TuiListCell
+	},
+	data() {
+		return {
+			form: {
+				name: ''
+			},
+			userInfo:{}
+		}
+	},
+	onLoad() {
+
+	},
+	methods: {
+		init(){
+			this.getLoginInfo();
+		},
+		getLoginInfo(){
+			currentInfo().then(res=>{
+				if(res.code == 1){
+					this.userInfo = res.data.info?res.data.info:[]
+				}
+			})
+		},
+		goToBirthday() {
+			this.pageTo({ url: '/pages/user/birthday',type:2 })
+		},
+		formSubmit(e) {
+			// 表单规则
+			let rules = [
+				{
+					name: 'name',
+					rule: ['required'],
+					msg: ['请输入昵称']
+				}
+			]
+			// 进行表单检查
+			let formData = e.detail.value
+			let checkRes = form.validation(formData, rules)
+			// 验证通过!
+			if (!checkRes) {
+				setTimeout(() => {
+					this.confirmFn()
+				})
+			} else {
+				this.$msg(checkRes)
+			}
+		},
+		formSubmit(){
+
+		}
+	}
+}
+</script>
+<style lang="scss" scoped>
+	// 公共
+	.line-cell {
+		.tui-title {
+			width: 210upx;
+			color: $fontColor2;
+			line-height: 80upx;
+		}
+		.tui-input {
+			width: calc(100% - 210upx);
+			font-size: 28upx;
+			min-height: 80upx;
+			padding: 20upx;
+		}
+		.tui-placeholder {
+			color: #ccc;
+		}
+		.phcolor {
+			color: #ccc;
+		}
+		.birthday-display {
+			min-height: 80upx;
+			padding: 20upx;
+			display: flex;
+			align-items: center;
+			font-size: 28upx;
+		}
+	}
+	.btn-wrap {
+		width: 90%;
+		margin: 60upx auto;
+		.button-com {
+			width: 100%;
+			margin: 0 auto;
+			min-height: 100upx;
+			padding: 30upx;
+			font-size: 32upx;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+		}
+	}
+	.code-wrap {
+		.tui-input {
+			width: calc(100% - 410upx);
+			font-size: 28upx;
+		}
+		.tui-code {
+			width: 200upx;
+			text-align: center;
+			border-left: 1upx solid $borderColor;
+			color: $mainColor;
+		}
+	}
+</style>