完善 h5 端 前端登录注册页面

This commit is contained in:
yovinchen 2024-02-24 23:32:53 +08:00
parent 249558d93a
commit ae2a2cdab6
12 changed files with 228 additions and 136 deletions

BIN
logo-back.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

BIN
logo.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 50 KiB

View File

@ -24,10 +24,17 @@ const post_submit_order = '/order/auth/submitOrder' // 生成订单
const get_order_info = '/order/auth/getOrderInfoById' // 订单详情
const get_wx_login = '/user/weixin/wxLogin' // 微信用户登陆
const post_update_user = '/user/weixin/auth/updateUser' // 更新用户信息
const get_weixin_payment = '/payment/weixin/createJsapi' // 获取微信支付信息
const get_find_user_order = '/order/auth/findUserOrderPage' // 获取用户订单信息
const get_weixin_payment = '/payment/weixin/createJsapi' // 获取微信支付信息
const get_order_status = '/payment/weixin/queryPayStatus' // 获取订单状态
// 后续需求
const get_account_login = '/user/h5/login' // 用户登陆
const post_register = '/user/h5/register' // 用户注册
const post_h5_update_user = '/user/h5/auth/updateUser' // 更新用户信息
const get_alipay_payment = '/payment/alipay/createJsapi' // 获取支付宝支付信息
const get_order_alipay_status = '/payment/alipay/queryPayStatus' // 获取订单状态
const install = (Vue, vm) => {
const limit = 10;
const page = 1
@ -122,6 +129,12 @@ const install = (Vue, vm) => {
const getWxLogin = (o) => vm.$u.get(get_wx_login + `/${o.code}`, {
showLoading: false
})
// 账号密码登登录
const getAccountLogin = (o) => vm.$u.post(get_account_login, o)
const postRegister = (o) => vm.$u.post(post_register, o)
// '/user/h5/register' // 用户注册
// 更新用户信息
const postUpdateUser = (o) => vm.$u.post(post_update_user, {
...o,
@ -156,6 +169,8 @@ const install = (Vue, vm) => {
getOrderInfo,
getWxPayment,
getWxLogin,
getAccountLogin,
postRegister,
postUpdateUser,
getFindUserOrder,
getOrderStatus

View File

@ -1,6 +1,8 @@
const install = (Vue, vm) => {
Vue.prototype.$u.http.setConfig({
baseUrl: 'http://127.0.0.1:8200/api',
baseUrl: 'http://192.168.31.67:8200/api',
// baseUrl: 'http://127.0.0.1:8206/api',
// baseUrl: 'http://152.136.42.114:8200/api',
loadingText: '请求中...', // 请求loading中的文字提示
loadingTime: 800, // 在此时间内请求还没回来的话就显示加载中动画单位ms
loadingMask: true, // 展示loading的时候是否给一个透明的蒙层防止触摸穿透

View File

@ -1,5 +1,5 @@
{
"name" : "xlcs-user",
"name": "小鹿超市",
"appid" : "__UNI__719160A",
"description" : "",
"versionName" : "1.0.0",
@ -17,7 +17,9 @@
"delay" : 0
},
/* */
"modules" : {},
"modules": {
"Payment": {}
},
/* */
"distribute" : {
/* android */
@ -41,9 +43,57 @@
]
},
/* ios */
"ios" : {},
"ios": {
"dSYMs": false
},
/* SDK */
"sdkConfigs" : {}
"sdkConfigs": {
"ad": {},
"oauth": {},
"payment": {
"alipay": {
"__platform__": [
"ios",
"android"
]
}
}
},
"icons": {
"android": {
"hdpi": "unpackage/res/icons/72x72.png",
"xhdpi": "unpackage/res/icons/96x96.png",
"xxhdpi": "unpackage/res/icons/144x144.png",
"xxxhdpi": "unpackage/res/icons/192x192.png"
},
"ios": {
"appstore": "unpackage/res/icons/1024x1024.png",
"ipad": {
"app": "unpackage/res/icons/76x76.png",
"app@2x": "unpackage/res/icons/152x152.png",
"notification": "unpackage/res/icons/20x20.png",
"notification@2x": "unpackage/res/icons/40x40.png",
"proapp@2x": "unpackage/res/icons/167x167.png",
"settings": "unpackage/res/icons/29x29.png",
"settings@2x": "unpackage/res/icons/58x58.png",
"spotlight": "unpackage/res/icons/40x40.png",
"spotlight@2x": "unpackage/res/icons/80x80.png"
},
"iphone": {
"app@2x": "unpackage/res/icons/120x120.png",
"app@3x": "unpackage/res/icons/180x180.png",
"notification@2x": "unpackage/res/icons/40x40.png",
"notification@3x": "unpackage/res/icons/60x60.png",
"settings@2x": "unpackage/res/icons/58x58.png",
"settings@3x": "unpackage/res/icons/87x87.png",
"spotlight@2x": "unpackage/res/icons/80x80.png",
"spotlight@3x": "unpackage/res/icons/120x120.png"
}
}
}
},
"uniStatistics": {
"enable": true
}
},
/* */
@ -62,6 +112,9 @@
"scope.userLocation" : {
"desc" : "获取地理位置"
}
},
"uniStatistics": {
"enable": true
}
},
"mp-alipay" : {
@ -74,7 +127,8 @@
"usingComponents" : true
},
"uniStatistics" : {
"enable" : false
"enable": false,
"version": "2"
},
"vueVersion" : "2"
}

View File

@ -56,6 +56,20 @@
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
},
{
"path": "pages/loginh5/loginh5",
"style": {
"navigationBarTitleText": "登录页",
"enablePullDownRefresh": false
}
},
{
"path": "pages/register/register",
"style": {
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
}
],
"globalStyle": {
@ -97,25 +111,24 @@
]
},
"subPackages": [
{
"root": "pagesLocation",
"pages": [
{
"path": "myPickUpLocation/myPickUpLocation",
"style": {
"navigationBarTitleText": "我的提货点",
"enablePullDownRefresh": false
}
},
{
"path": "choosePickUpLocation/choosePickUpLocation",
"style": {
"navigationBarTitleText": "选择其它提货点",
"enablePullDownRefresh": false
}
}
]
},
// {
// "root": "pagesLocation",
// "pages": [{
// "path": "myPickUpLocation/myPickUpLocation",
// "style": {
// "navigationBarTitleText": "我的提货点",
// "enablePullDownRefresh": false
// }
// },
// {
// "path": "choosePickUpLocation/choosePickUpLocation",
// "style": {
// "navigationBarTitleText": "选择其它提货点",
// "enablePullDownRefresh": false
// }
// }
// ]
// },
{
"root": "pagesOrder",
"pages": [

View File

@ -1,16 +1,16 @@
<template>
<view v-if="token" class="gg">
<!-- 利用background-image设置导航的线形渐变色彩 -->
<u-navbar :background="{ 'background-image': 'linear-gradient(to right, rgb(255,180,61), rgb(255, 101, 0))' }" :border-bottom="false"
:is-back="false">
<view class="gg-map-slot-wrap u-font-xs u-m-l-20 u-p-l-10 u-p-r-10 u-p-t-5 u-p-b-5" @click="pickUpLocation">
<u-navbar :background="{ 'background-image': 'linear-gradient(to right, rgb(255,180,61), rgb(255, 101, 0))' }"
:border-bottom="false" :is-back="false">
<!-- <view class="gg-map-slot-wrap u-font-xs u-m-l-20 u-p-l-10 u-p-r-10 u-p-t-5 u-p-b-5" @click="pickUpLocation">
<u-icon name="map" size="24"></u-icon>
<text class="u-p-l-10 u-p-r-10">{{
leaderAddressVo.takeName ? leaderAddressVo.takeName : '请设置提货点'
}}
</text>
<u-icon name="arrow-right" size="20"></u-icon>
</view>
</view> -->
</u-navbar>
<!-- 主内容区域-Begin -->
@ -25,18 +25,11 @@
-->
<view class="gg-notice-search-bar">
<u-icon class="gg-notice-search-bar-left-icon" name="search"></u-icon>
<u-notice-bar
:border-radius="30"
:is-circular="false"
:list="list"
:more-icon="false"
:volume-icon="false"
class="gg-notice-search-bar-u-notice-bar"
mode="vertical"
type="none"
></u-notice-bar>
<u-button :custom-style="ggNoticeSearchBarRightBtnCustomStyle" class="u-m-r-20" shape="square" size="mini"
type="error">搜索
<u-notice-bar :border-radius="30" :is-circular="false" :list="list" :more-icon="false"
:volume-icon="false" class="gg-notice-search-bar-u-notice-bar" mode="vertical"
type="none"></u-notice-bar>
<u-button :custom-style="ggNoticeSearchBarRightBtnCustomStyle" class="u-m-r-20" shape="square"
size="mini" type="error">搜索
</u-button>
</view>
@ -45,16 +38,11 @@
<view class="u-font-lg u-content-color">新人专享低价好物</view>
<scroll-view class="gg-new-vip-sv" enable-flex scroll-x>
<view class="u-flex u-m-t-10">
<view v-for="(item, index) in newPersonSkuInfoList" :key="item.id" class="gg-new-vip-sv-item u-p-r-20"
@click="gotoProductItem(item.id)">
<ListImgItem
:showBottom="item.skuType === 0 && item.isNewPerson === 1"
:showLeft="item.skuType === 1"
:showRight="false"
:src="item.imgUrl"
height="200rpx"
width="200rpx"
></ListImgItem>
<view v-for="(item, index) in newPersonSkuInfoList" :key="item.id"
class="gg-new-vip-sv-item u-p-r-20" @click="gotoProductItem(item.id)">
<ListImgItem :showBottom="item.skuType === 0 && item.isNewPerson === 1"
:showLeft="item.skuType === 1" :showRight="false" :src="item.imgUrl" height="200rpx"
width="200rpx"></ListImgItem>
<text class="u-type-error"> {{ item.price }}</text>
<AddToCart :shopDetail="item" :skuId="item.id"></AddToCart>
</view>
@ -67,7 +55,7 @@
<!-- 小鹿超市规则 -->
<view class="u-flex u-row-between u-p-20 u-m-20 gg-border" @click="showRulePopup = true">
<u-image height="30rpx" src="/static/logo.png" width="30rpx"></u-image>
<!-- <u-image height="30rpx" src="/static/logo-back.png" width="30rpx"></u-image> -->
<view>平台资质法律条款规则及投诉入口</view>
</view>
@ -107,10 +95,11 @@
<scroll-view enable-flex scroll-x>
<view class="u-flex u-p-r-20 u-p-t-20">
<!-- 循环滚动内容 -->
<view v-for="item in seckillSkuVoList" :key="item.skuId" class="u-p-l-20 u-p-r-20 u-text-center"
@click="gotoProductItem(item.skuId)">
<view v-for="item in seckillSkuVoList" :key="item.skuId"
class="u-p-l-20 u-p-r-20 u-text-center" @click="gotoProductItem(item.skuId)">
<text class="u-font-sm u-m-b-5">{{ item.timeName }}</text>
<u-image :src="item.imgUrl" border-radius="30rpx" height="200rpx" width="200rpx"></u-image>
<u-image :src="item.imgUrl" border-radius="30rpx" height="200rpx"
width="200rpx"></u-image>
<text class="u-font-sm u-m-t-5">{{ item.skuName }}</text>
<AddToCart :shopDetail="item" :skuId="item.skuId"></AddToCart>
</view>
@ -119,42 +108,21 @@
</view>
</block>
<!-- 如何购买商品 -->
<view class="u-p-20 u-m-20 gg-border u-font-xs">
<view class="u-m-b-20">如何在[小鹿超市]购买商品</view>
<view class="u-flex">
<view class="gg-number u-m-r-10">1</view>
挑商品
<u-icon name="arrow-right-double u-m-l-10 u-tips-color"></u-icon>
<u-icon class="u-content-color" name="arrow-right-double"></u-icon>
<view class="gg-number gg-number-gray u-m-r-10 u-m-l-10">2</view>
选提货点
<u-icon name="arrow-right-double u-m-l-10 u-tips-color"></u-icon>
<u-icon class="u-content-color" name="arrow-right-double"></u-icon>
<view class="gg-number gg-number-gray u-m-r-10 u-m-l-10">3</view>
次日16点提货点取货
</view>
</view>
<!-- 热销好货 -->
<view class="u-font-xl u-type-error u-m-20">热销好货</view>
<view v-for="(item, index) in hotSkuList" :key="item.id" class="u-p-20 u-m-20 gg-border"
@click="gotoProductItem(item.id)">
<view class="u-m-b-10 u-m-l-20 u-m-r-20 u-flex gg-product-item">
<ListImgItem
:showBottom="item.skuType === 0 && item.isNewPerson === 1"
:showLeft="item.skuType === 1"
:showRight="false"
:src="item.imgUrl"
height="250rpx"
width="250rpx"
></ListImgItem>
<ListImgItem :showBottom="item.skuType === 0 && item.isNewPerson === 1"
:showLeft="item.skuType === 1" :showRight="false" :src="item.imgUrl" height="250rpx"
width="250rpx"></ListImgItem>
<view class="gg-product-item-msg u-border-bottom u-p-b-20 u-m-l-20">
<view class="gg-product-item-msg-title">
<view class="u-font-lg">{{ item.title }}</view>
<view class="u-type-info u-font-sm">已售{{ item.sale }}/剩余{{ item.stock }}</view>
<block v-if="item.ruleList">
<view v-for="(rule, ruleIndex) in item.ruleList" :key="ruleIndex" class="u-font-xs u-type-error-dark">
<view v-for="(rule, ruleIndex) in item.ruleList" :key="ruleIndex"
class="u-font-xs u-type-error-dark">
{{ rule }}
</view>
</block>
@ -198,9 +166,9 @@
<view class="u-m-20">
<view class="u-font-xl u-m-b-10">
<u-icon class="u-m-r-10" color="#dd6161" name="bag" size="28"></u-icon>
次日自提
极速上门
</view>
<view class="u-light-color u-font-xs">每日23点前下单次日16点可到下单门店自提</view>
<view class="u-light-color u-font-xs">每日23点前下单半小时送上门</view>
</view>
<view class="u-m-20">
@ -220,7 +188,7 @@
</template>
<script>
import {mapState, mapGetters, mapActions} from 'vuex';
import {mapActions, mapGetters, mapState} from 'vuex';
let watchTimes = 0;
export default {
@ -246,7 +214,9 @@ export default {
},
computed: {
...mapState('indexModule', ['home']),
...mapGetters('indexModule', ['categoryList', 'hotSkuList', 'newPersonSkuInfoList', 'seckillTime', 'seckillSkuVoList', 'leaderAddressVo'])
...mapGetters('indexModule', ['categoryList', 'hotSkuList', 'newPersonSkuInfoList', 'seckillTime',
'seckillSkuVoList', 'leaderAddressVo'
])
},
methods: {
...mapActions('indexModule', ['getHomeIndexAction']),
@ -262,12 +232,14 @@ export default {
}, 100);
},
//
pickUpLocation() {
this.$u.route('/pagesLocation/myPickUpLocation/myPickUpLocation');
},
// pickUpLocation() {
// this.$u.route('/pagesLocation/myPickUpLocation/myPickUpLocation');
// },
//
gotoProductItem(skuId) {
this.$u.route('/pages/homeItem/homeItem', {skuId});
this.$u.route('/pages/homeItem/homeItem', {
skuId
});
},
//
gotoSeckill() {
@ -312,16 +284,16 @@ export default {
2.等mounted请求结束数据设置完毕以后再进行数据变化的监控
3.不需要进行监控次数的判断
------------------------------------------------------------ */
'leaderAddressVo.userId': {
handler(newVal) {
if (!newVal) {
uni.redirectTo({
url: '/pagesLocation/myPickUpLocation/myPickUpLocation'
});
}
},
deep: true
}
// 'leaderAddressVo.userId': {
// handler(newVal) {
// if (!newVal) {
// uni.redirectTo({
// url: '/pagesLocation/myPickUpLocation/myPickUpLocation'
// });
// }
// },
// deep: true
// }
},
onShow() {
/*
@ -337,7 +309,7 @@ export default {
const token = await uni.getStorageSync('token');
if (this.$u.test.isEmpty(token)) {
uni.reLaunch({
url: '/pages/login/login'
url: '/pages/loginh5/loginh5'
});
return;
}
@ -353,6 +325,7 @@ export default {
利用scss中&-的方式实现层级样式的拼接
*/
.gg {
/* navbar 导航中进行地图位置的获取设置 */
&-map-slot-wrap {
display: flex;
@ -370,7 +343,7 @@ export default {
/*
notice-bar头部滚动信息搜索区域
利用background-image的linear-gradient保持与导航一致的线形渐变色彩
*/
*/
&-header {
background-image: linear-gradient(to right, rgb(255, 180, 61), rgb(255, 101, 0));
height: 500rpx;
@ -393,6 +366,7 @@ export default {
/* 滚动信息搜索框中的字体设置 */
&-u-notice-bar {
flex: 1;
/* 深层穿透修改子组件字体颜色样式 */
::v-deep .u-news-item {
color: $u-light-color !important;
@ -427,7 +401,8 @@ export default {
&-border {
border-radius: 20rpx;
border-bottom: 1rpx solid #f5f5f5;
box-shadow: 0px 1px 20px 0px rgba(0, 0, 0, 0.1); /*下边阴影 */
box-shadow: 0px 1px 20px 0px rgba(0, 0, 0, 0.1);
/*下边阴影 */
}
/* 商品分类 */

View File

@ -20,6 +20,10 @@
<text class="link">小鹿超市用户协议隐私政策</text>
并授权使用您的小鹿超市账号信息如昵称头像收获地址以便您统一管理
</view>
<view class="buttons">
<button class="otherBtn" @click="goToRegister">注册</button>
<button class="otherBtn" @click="goToLogin">账号密码登录</button>
</view>
</view>
</view>
</template>
@ -45,13 +49,19 @@ export default {
const photoUrl = res.userInfo.avatarUrl;
const nickName = res.userInfo.nickName;
const sex = res.userInfo.gender;
uni.setStorageSync('userInfo', {photoUrl, nickName, sex});
uni.setStorageSync('userInfo', {
photoUrl,
nickName,
sex
});
// wx.login
// https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html
uni.login({
success: async res => {
// codetoken
const result = await this.$u.api.getWxLogin({code: res.code});
const result = await this.$u.api.getWxLogin({
code: res.code
});
console.log(result, result.token, "<<<")
// token
uni.setStorage({
@ -81,12 +91,36 @@ export default {
this.isLogin = false;
}
});
},
goToRegister() {
uni.navigateTo({
url: '/pages/register/register',
});
},
goToLogin() {
uni.navigateTo({
url: '/pages/loginh5/loginh5',
});
}
}
};
</script>
<style lang="scss" scoped>
.otherBtn {
width: 240rpx;
height: 60rpx;
line-height: 60rpx;
text-align: center;
background-color: #ccc;
color: #fff;
font-size: 24rpx;
border: none;
border-radius: 10rpx;
cursor: pointer;
background-color: #1aad19; //
}
.wrap {
font-size: 28rpx;

View File

@ -1,7 +1,7 @@
<template>
<view class="gg">
<u-navbar :background="{ 'background-image': 'linear-gradient(to right, rgb(255,180,61), rgb(255, 101, 0))' }" :border-bottom="false"
:is-back="false"></u-navbar>
<u-navbar :background="{ 'background-image': 'linear-gradient(to right, rgb(255,180,61), rgb(255, 101, 0))' }"
:border-bottom="false" :is-back="false"></u-navbar>
<view class="gg-content">
<view class="gg-header u-p-l-20 u-p-r-20">
<view class="u-flex u-m-l-20">
@ -107,12 +107,12 @@
<view class="u-font-xs">提货码</view>
</view>
</u-col>
<u-col span="3">
<!-- <u-col span="3">
<view class="gg-order-item" @click="gotoMyPickUpLocation">
<view class="iconfont icon-dianpu"></view>
<view class="u-font-xs">提货点管理</view>
</view>
</u-col>
</u-col> -->
<u-col span="3">
<view class="gg-order-item">
<view class="iconfont icon-miaosha"></view>
@ -175,7 +175,7 @@
// svgbase64js使
// data
// iconfonticonfont
import {fruit, recommend, invite, discount} from '@/common/svgIcon.js';
import {discount, fruit, invite, recommend} from '@/common/svgIcon.js';
export default {
data() {
@ -185,8 +185,7 @@ export default {
recommend,
invite,
discount,
list: [
{
list: [{
image: 'https://cdn.uviewui.com/uview/swiper/1.jpg',
title: '昨夜星辰昨夜风,画楼西畔桂堂东'
},
@ -205,11 +204,11 @@ export default {
gotoOrderList(index) {
this.$u.route('/pagesOrder/orderList/orderList?current=' + index);
},
gotoMyPickUpLocation() {
uni.navigateTo({
url: '/pagesLocation/myPickUpLocation/myPickUpLocation'
});
}
// gotoMyPickUpLocation() {
// uni.navigateTo({
// url: '/pagesLocation/myPickUpLocation/myPickUpLocation'
// });
// }
},
async mounted() {
this.userInfo = uni.getStorageSync('userInfo');

View File

@ -9,9 +9,9 @@
<view class="gg-content">
<scroll-view v-if="getCartInfoList" class="gg-cart-sv-container" scroll-y="true">
<!-- 提货点 -->
<u-card :padding="10" :show-head="false">
<!-- <u-card :padding="10" :show-head="false">
<view slot="body" class="u-m-10">提货点{{ getLeaderAddressVo.takeName }}</view>
</u-card>
</u-card> -->
<u-card :padding="10" :show-head="true">
<view slot="head" class="u-m-10">提货人联系方式</view>
@ -126,7 +126,7 @@
</template>
<script>
import {mapState, mapGetters, mapActions} from 'vuex';
import {mapActions, mapGetters, mapState} from 'vuex';
import dayjs from 'dayjs';
export default {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB