From d8ad0c1805b0701afadd069c79950edde490d5c9 Mon Sep 17 00:00:00 2001
From: xuxueyang <xuxy@fengyuntec.com>
Date: 星期一, 08 七月 2024 17:17:16 +0800
Subject: [PATCH] update 花店小程序
---
pages/login/supplier-login.vue | 839 ++++++++++++++++++++++++++++++-----------------------------
1 files changed, 421 insertions(+), 418 deletions(-)
diff --git a/pages/login/supplier-login.vue b/pages/login/supplier-login.vue
index 51d8a60..5d7d5e5 100644
--- a/pages/login/supplier-login.vue
+++ b/pages/login/supplier-login.vue
@@ -1,419 +1,422 @@
-<template>
- <view class="main-container login-container img100 relative" style="margin-top: 0rpx;">
- <!-- background-image:url('@/static/images/supplier/login/bg.png') -->
-
- <image class="component-bg"
- src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/a5/a54508de179a4942918ecb2c5a4aa9f5bg.png"
- mode="scaleToFill" />
- <view class="t-login top-bg">
- <view class="nav-title">登录</view>
- <view class="login">
- <form class="cl">
- <view class="t-a titles-top">
- <view class="title-1">HELLO</view>
- <view class="title-2">欢迎登录<span class="title-3">花满芜</span></view>
- </view>
- <view class="t-a input" v-if="loginType=='pwd'">
- <input type="text" name="userName" placeholder="请输入账号" v-model="userName" />
- </view>
- <view class="t-a input" v-if="loginType=='pwd'">
- <input type="text" :password="true" name="password" placeholder="请输入密码" v-model="password" />
- </view>
- <view class="t-a input" v-if="loginType=='code'">
-
-
- <input type="text" name="userName" placeholder="请输入手机号" v-model="phoneNumber" />
- <view class="get-code" :style="{'color':getCodeBtnColor}" @click.stop="getCode()">
- {{getCodeText}}
- </view>
- </view>
-
-
- <view class="t-a input" v-if="loginType=='code'">
- <input type="text" name="userName" placeholder="请输入手机验证码" v-model="smsCode" />
- </view>
-
- <button @tap="login()" class="bottom-button">登 录</button>
-
- <view class="flex">
- <view class="topic-font" v-if="loginType=='pwd'" @click="loginType='code'">手机验证码登录</view>
- <view class="topic-font" v-if="loginType=='code'" @click="loginType='pwd'">账号密码登录</view>
-
- <view class="topic-font m-l-a m-r-0" @click="toReg">前往注册</view>
- </view>
- </form>
- </view>
- </view>
- </view>
-</template>
-<script>
- // import util from '@/utils/util.js'
- // import gzmzApi from '@/api/gzmzApi.js'
- // import myCache from '@/utils/myCache.js'
- export default {
- props: {
- // apitype: 'loginSupplier',
- apitype: {
- type:String,
- default(){
- // #ifdef PUB_SUPPLIER
- return 'loginSupplier'
- // #endif
- // #ifdef PUB_PARTNER
- return 'loginPartner'
- // #endif
- return ''
- // return 'loginPartner'
- }
- },
- },
- data() {
- return {
- openId: '-1',
- userName: 'gzm',
- password: '123456',
- // userName: '',
- // password: '',
-
- phoneNumber: '',
- smsCode: '',
-
- checked: false,
- loginType: 'pwd', //pwd和code,密码和验证码登录
- pcfvalue: undefined,
- getCodeText: '获取验证码',
- getCodeBtnColor: "#20613D",
- getCodeisWaiting: false,
- Timer: undefined
- };
- },
- methods: {
- async getCode() {
- uni.hideKeyboard() //隐藏已经显示的软键盘,如果软键盘没有显示则不做任何操作。
- if (this.getCodeisWaiting) {
- return;
- }
- if (!(/^1(3|4|5|6|7|8|9)\d{9}$/.test(this.phoneNumber))) { //校验手机号码是否有误
- this.$message.showToast('请填写正确手机号码')
- return false;
- }
- this.getCodeText = "发送中..." //发送验证码
- this.getCodeisWaiting = true;
- this.getCodeBtnColor = "#000" //追加样式,修改颜色
- //示例用定时器模拟请求效果
- //setTimeout(()用于在指定的毫秒数后调用函数或计算表达式
- const {
- code
- } = await this.$http.request('post', '/api/sms/send/code', {
- data: {
- tel: this.phoneNumber,
- userType: 'supplier'
- }
- })
- if (code == 0) {
- uni.showToast({
- title: '验证码已发送',
- icon: "none"
- });
- this.setTimer(); //调用定时器方法
- }
- // setTimeout(() => {
- // uni.showToast({
- // title: '验证码已发送',
- // icon: "none"
- // }); //弹出提示框
- // //示例默认1234,生产中请删除这一句。
- // // this.code = '1234'; //发送验证码,进行填入
- // this.setTimer(); //调用定时器方法
- // }, 1000)
- },
- //setTimer: 需要每隔一段时间执行一件事的的时候就需要使用SetTimer函数
- setTimer() {
- let holdTime = 60; //定义变量并赋值
- this.getCodeText = "重新获取(60)"
- //setInterval()是一个实现定时调用的函数,可按照指定的周期(以毫秒计)来调用函数或计算表达式。
- //setInterval方法会不停地调用函数,直到 clearInterval被调用或窗口被关闭。
- this.Timer = setInterval(() => {
- if (holdTime <= 0) {
- this.getCodeisWaiting = false;
- this.getCodeBtnColor = "#20613D";
- this.getCodeText = "获取验证码"
- clearInterval(this.Timer); //清除该函数
- return; //返回前面
- }
- this.getCodeText = "重新获取(" + holdTime + ")"
- holdTime--;
- }, 1000)
- },
- toReg() {
- // uni.switchTab({
- // url: '/pages/index/index'
- // })
- uni.redirectTo({
- url: '/sub_pages/supplier/supplier-reg/supplier-reg'
- })
-
- },
- changeAll(e) {
- this.pcfvalue = e.detail.value[0]
- },
- async login() {
- uni.showLoading({
- title: '登陆中'
- });
- var that = this;
- if (this.loginType == 'pwd') {
- if (!that.userName) {
- uni.showToast({
- title: '请输入用户名',
- icon: 'none'
- });
- return;
- }
- if (!that.password) {
- uni.showToast({
- title: '请输入密码',
- icon: 'none'
- });
- return;
- }
- }
- if (this.loginType == 'code') {
- if (!that.tel) {
- uni.showToast({
- title: '请输入手机号',
- icon: 'none'
- });
- return;
- }
- if (!that.smsCode) {
- uni.showToast({
- title: '请输入手机验证码',
- icon: 'none'
- });
- return;
- }
- }
- // if (this.pcfvalue == undefined) {
- // util.showMyToast('必须勾选《用户服务协议》及《隐私政策》');
- // return;
- // }
- let post = {
- username: this.userName,
- password: this.password,
- tel: this.phoneNumber,
- smsCode: this.smsCode
- // openId: '123456789'
- }
- // const {
- // code
- // } = await this.$http.request('get', '/api/login/admin')
- const resp = await this.$store.dispatch(this.apitype, post);
- // uni.hideLoading()
-
- if (resp.code == 0) {
-
- // myCache.cache("userToken", res.data.accessToken)
- // let userRes = await gzmzApi.getMemberInfo();
- // if (userRes.status) {
- // myCache.cache("userInfo", JSON.stringify(userRes.data))
- // }
- // setTimeout(() => {
- // uni.navigateBack();
- // }, 1000);
-
- } else {
- uni.showToast({
- title: '登录失败!',
- icon: 'none'
- });
- return;
- }
-
- },
- tc1(id) {
- uni.navigateTo({
- url: '/pages/users/xieyi?id=' + id,
- });
- }
- }
- };
-</script>
-
-<style lang="scss" scoped>
- @import './login.scss';
-
- .main-container {
- margin: 20px 0;
- }
-
- .img-a {
- position: absolute;
- width: 100%;
- top: -150rpx;
- right: 0;
- }
-
- .img-b {
- position: absolute;
- width: 50%;
- bottom: 0;
- left: -120rpx;
- }
-
- .to-home {
- margin-top: 30rpx;
- font-size: 30rpx;
- color: #5af;
- display: flex;
- flex-direction: row-reverse;
- }
-
- .t-login {
- width: 100%;
- margin: 0 auto;
- font-size: 28rpx;
- color: #000;
- }
-
- .t-login .bg {
- width: 100%;
- position: relative;
- }
-
- .t-login .login {
- width: 650rpx;
- margin: 60rpx auto;
- margin-top: 0rpx;
- font-size: 28rpx;
- color: #000;
- }
-
- .t-login button {
- font-size: 28rpx;
- background: #5677fc;
- color: #fff;
- height: 90rpx;
- line-height: 90rpx;
- border-radius: 50rpx;
- box-shadow: 0 5px 7px 0 rgba(86, 119, 252, 0.2);
- }
-
- .t-login input {
- padding: 0 20rpx 0 120rpx;
- height: 90rpx;
- line-height: 90rpx;
- margin-bottom: 50rpx;
- background: #f8f7fc;
- border: 1px solid #e9e9e9;
- font-size: 28rpx;
- border-radius: 50rpx;
- }
-
- .t-login .t-a {
- position: relative;
-
- .get-code {
- position: absolute;
- right: 40rpx;
- top: 25rpx;
- }
- }
-
- .t-login .t-a .icon {
- width: 40rpx;
- height: 40rpx;
- position: absolute;
- left: 24rpx;
- top: 14rpx;
- margin-right: 20rpx;
- }
-
- .t-login .t-a .line {
- width: 2rpx;
- height: 40rpx;
- background-color: #dedede;
- position: absolute;
- top: 28rpx;
- left: 98rpx;
- }
-
- .t-login .t-b {
- text-align: left;
- font-size: 46rpx;
- color: #000;
- padding: 300rpx 0 30rpx 0;
- font-weight: bold;
- }
-
- .t-login .t-b2 {
- text-align: left;
- font-size: 32rpx;
- color: #aaaaaa;
- padding: 0rpx 0 120rpx 0;
- }
-
- .t-login .t-c {
- position: absolute;
- right: 22rpx;
- top: 22rpx;
- background: #5677fc;
- color: #fff;
- font-size: 24rpx;
- border-radius: 50rpx;
- height: 50rpx;
- line-height: 50rpx;
- padding: 0 25rpx;
- z-index: 999;
- }
-
- .t-login .t-d {
- text-align: center;
- color: #999;
- margin: 80rpx 0;
- }
-
- .t-login .t-e {
- text-align: center;
- width: 250rpx;
- margin: 80rpx auto 0;
- }
-
- .t-login .t-g {
- float: left;
- width: 50%;
- }
-
- .t-login .t-e image {
- width: 50rpx;
- height: 50rpx;
- }
-
- .t-login .t-f {
- text-align: center;
- margin: 200rpx 0 0 0;
- color: #666;
- }
-
- .t-login .t-f text {
- margin-left: 20rpx;
- color: #aaaaaa;
- font-size: 27rpx;
- }
-
- .t-login .uni-input-placeholder {
- color: #000;
- }
-
- .cl {
- zoom: 1;
- }
-
- .cl:after {
- clear: both;
- display: block;
- visibility: hidden;
- height: 0;
- content: '\20';
- }
+<template>
+ <view class="main-container login-container img100 relative" style="margin-top: 0rpx;">
+ <!-- background-image:url('@/static/images/supplier/login/bg.png') -->
+
+ <image class="component-bg"
+ src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/a5/a54508de179a4942918ecb2c5a4aa9f5bg.png"
+ mode="scaleToFill" />
+ <view class="t-login top-bg">
+ <view class="nav-title">登录</view>
+ <view class="login">
+ <form class="cl">
+ <view class="t-a titles-top">
+ <view class="title-1">HELLO</view>
+ <view class="title-2">欢迎登录<span class="title-3">花满芜</span></view>
+ </view>
+ <view class="t-a input" v-if="loginType=='pwd'">
+ <input type="text" name="userName" placeholder="请输入账号" v-model="userName" />
+ </view>
+ <view class="t-a input" v-if="loginType=='pwd'">
+ <input type="text" :password="true" name="password" placeholder="请输入密码" v-model="password" />
+ </view>
+ <view class="t-a input" v-if="loginType=='code'">
+
+
+ <input type="text" name="userName" placeholder="请输入手机号" v-model="phoneNumber" />
+ <view class="get-code" :style="{'color':getCodeBtnColor}" @click.stop="getCode()">
+ {{getCodeText}}
+ </view>
+ </view>
+
+
+ <view class="t-a input" v-if="loginType=='code'">
+ <input type="text" name="userName" placeholder="请输入手机验证码" v-model="smsCode" />
+ </view>
+
+ <button @tap="login()" class="bottom-button">登 录</button>
+
+ <view class="flex">
+ <view class="topic-font" v-if="loginType=='pwd'" @click="loginType='code'">手机验证码登录</view>
+ <view class="topic-font" v-if="loginType=='code'" @click="loginType='pwd'">账号密码登录</view>
+
+ <view class="topic-font m-l-a m-r-0" @click="toReg">前往注册</view>
+ </view>
+ </form>
+ </view>
+ </view>
+ </view>
+</template>
+<script>
+ // import util from '@/utils/util.js'
+ // import gzmzApi from '@/api/gzmzApi.js'
+ // import myCache from '@/utils/myCache.js'
+ export default {
+ props: {
+ // apitype: 'loginSupplier',
+ apitype: {
+ type: String,
+ default () {
+ // #ifdef PUB_SUPPLIER
+ return 'loginSupplier'
+ // #endif
+ // #ifdef PUB_PARTNER
+ return 'loginPartner'
+ // #endif
+ // #ifdef PUB_CUSTOMER
+ return 'loginCustomer'
+ // #endif
+ return ''
+ // return 'loginPartner'
+ }
+ },
+ },
+ data() {
+ return {
+ openId: '-1',
+ userName: 'gzm',
+ password: '123456',
+ // userName: '',
+ // password: '',
+
+ phoneNumber: '',
+ smsCode: '',
+
+ checked: false,
+ loginType: 'pwd', //pwd和code,密码和验证码登录
+ pcfvalue: undefined,
+ getCodeText: '获取验证码',
+ getCodeBtnColor: "#20613D",
+ getCodeisWaiting: false,
+ Timer: undefined
+ };
+ },
+ methods: {
+ async getCode() {
+ uni.hideKeyboard() //隐藏已经显示的软键盘,如果软键盘没有显示则不做任何操作。
+ if (this.getCodeisWaiting) {
+ return;
+ }
+ if (!(/^1(3|4|5|6|7|8|9)\d{9}$/.test(this.phoneNumber))) { //校验手机号码是否有误
+ this.$message.showToast('请填写正确手机号码')
+ return false;
+ }
+ this.getCodeText = "发送中..." //发送验证码
+ this.getCodeisWaiting = true;
+ this.getCodeBtnColor = "#000" //追加样式,修改颜色
+ //示例用定时器模拟请求效果
+ //setTimeout(()用于在指定的毫秒数后调用函数或计算表达式
+ const {
+ code
+ } = await this.$http.request('post', '/api/sms/send/code', {
+ data: {
+ tel: this.phoneNumber,
+ userType: 'supplier'
+ }
+ })
+ if (code == 0) {
+ uni.showToast({
+ title: '验证码已发送',
+ icon: "none"
+ });
+ this.setTimer(); //调用定时器方法
+ }
+ // setTimeout(() => {
+ // uni.showToast({
+ // title: '验证码已发送',
+ // icon: "none"
+ // }); //弹出提示框
+ // //示例默认1234,生产中请删除这一句。
+ // // this.code = '1234'; //发送验证码,进行填入
+ // this.setTimer(); //调用定时器方法
+ // }, 1000)
+ },
+ //setTimer: 需要每隔一段时间执行一件事的的时候就需要使用SetTimer函数
+ setTimer() {
+ let holdTime = 60; //定义变量并赋值
+ this.getCodeText = "重新获取(60)"
+ //setInterval()是一个实现定时调用的函数,可按照指定的周期(以毫秒计)来调用函数或计算表达式。
+ //setInterval方法会不停地调用函数,直到 clearInterval被调用或窗口被关闭。
+ this.Timer = setInterval(() => {
+ if (holdTime <= 0) {
+ this.getCodeisWaiting = false;
+ this.getCodeBtnColor = "#20613D";
+ this.getCodeText = "获取验证码"
+ clearInterval(this.Timer); //清除该函数
+ return; //返回前面
+ }
+ this.getCodeText = "重新获取(" + holdTime + ")"
+ holdTime--;
+ }, 1000)
+ },
+ toReg() {
+ // uni.switchTab({
+ // url: '/pages/index/index'
+ // })
+ uni.redirectTo({
+ url: '/sub_pages/supplier/supplier-reg/supplier-reg'
+ })
+
+ },
+ changeAll(e) {
+ this.pcfvalue = e.detail.value[0]
+ },
+ async login() {
+ uni.showLoading({
+ title: '登陆中'
+ });
+ var that = this;
+ if (this.loginType == 'pwd') {
+ if (!that.userName) {
+ uni.showToast({
+ title: '请输入用户名',
+ icon: 'none'
+ });
+ return;
+ }
+ if (!that.password) {
+ uni.showToast({
+ title: '请输入密码',
+ icon: 'none'
+ });
+ return;
+ }
+ }
+ if (this.loginType == 'code') {
+ if (!that.tel) {
+ uni.showToast({
+ title: '请输入手机号',
+ icon: 'none'
+ });
+ return;
+ }
+ if (!that.smsCode) {
+ uni.showToast({
+ title: '请输入手机验证码',
+ icon: 'none'
+ });
+ return;
+ }
+ }
+ // if (this.pcfvalue == undefined) {
+ // util.showMyToast('必须勾选《用户服务协议》及《隐私政策》');
+ // return;
+ // }
+ let post = {
+ username: this.userName,
+ password: this.password,
+ tel: this.phoneNumber,
+ smsCode: this.smsCode
+ // openId: '123456789'
+ }
+ // const {
+ // code
+ // } = await this.$http.request('get', '/api/login/admin')
+ const resp = await this.$store.dispatch(this.apitype, post);
+ // uni.hideLoading()
+
+ if (resp.code == 0) {
+
+ // myCache.cache("userToken", res.data.accessToken)
+ // let userRes = await gzmzApi.getMemberInfo();
+ // if (userRes.status) {
+ // myCache.cache("userInfo", JSON.stringify(userRes.data))
+ // }
+ // setTimeout(() => {
+ // uni.navigateBack();
+ // }, 1000);
+
+ } else {
+ uni.showToast({
+ title: '登录失败!',
+ icon: 'none'
+ });
+ return;
+ }
+
+ },
+ tc1(id) {
+ uni.navigateTo({
+ url: '/pages/users/xieyi?id=' + id,
+ });
+ }
+ }
+ };
+</script>
+
+<style lang="scss" scoped>
+ @import './login.scss';
+
+ .main-container {
+ margin: 20px 0;
+ }
+
+ .img-a {
+ position: absolute;
+ width: 100%;
+ top: -150rpx;
+ right: 0;
+ }
+
+ .img-b {
+ position: absolute;
+ width: 50%;
+ bottom: 0;
+ left: -120rpx;
+ }
+
+ .to-home {
+ margin-top: 30rpx;
+ font-size: 30rpx;
+ color: #5af;
+ display: flex;
+ flex-direction: row-reverse;
+ }
+
+ .t-login {
+ width: 100%;
+ margin: 0 auto;
+ font-size: 28rpx;
+ color: #000;
+ }
+
+ .t-login .bg {
+ width: 100%;
+ position: relative;
+ }
+
+ .t-login .login {
+ width: 650rpx;
+ margin: 60rpx auto;
+ margin-top: 0rpx;
+ font-size: 28rpx;
+ color: #000;
+ }
+
+ .t-login button {
+ font-size: 28rpx;
+ background: #5677fc;
+ color: #fff;
+ height: 90rpx;
+ line-height: 90rpx;
+ border-radius: 50rpx;
+ box-shadow: 0 5px 7px 0 rgba(86, 119, 252, 0.2);
+ }
+
+ .t-login input {
+ padding: 0 20rpx 0 120rpx;
+ height: 90rpx;
+ line-height: 90rpx;
+ margin-bottom: 50rpx;
+ background: #f8f7fc;
+ border: 1px solid #e9e9e9;
+ font-size: 28rpx;
+ border-radius: 50rpx;
+ }
+
+ .t-login .t-a {
+ position: relative;
+
+ .get-code {
+ position: absolute;
+ right: 40rpx;
+ top: 25rpx;
+ }
+ }
+
+ .t-login .t-a .icon {
+ width: 40rpx;
+ height: 40rpx;
+ position: absolute;
+ left: 24rpx;
+ top: 14rpx;
+ margin-right: 20rpx;
+ }
+
+ .t-login .t-a .line {
+ width: 2rpx;
+ height: 40rpx;
+ background-color: #dedede;
+ position: absolute;
+ top: 28rpx;
+ left: 98rpx;
+ }
+
+ .t-login .t-b {
+ text-align: left;
+ font-size: 46rpx;
+ color: #000;
+ padding: 300rpx 0 30rpx 0;
+ font-weight: bold;
+ }
+
+ .t-login .t-b2 {
+ text-align: left;
+ font-size: 32rpx;
+ color: #aaaaaa;
+ padding: 0rpx 0 120rpx 0;
+ }
+
+ .t-login .t-c {
+ position: absolute;
+ right: 22rpx;
+ top: 22rpx;
+ background: #5677fc;
+ color: #fff;
+ font-size: 24rpx;
+ border-radius: 50rpx;
+ height: 50rpx;
+ line-height: 50rpx;
+ padding: 0 25rpx;
+ z-index: 999;
+ }
+
+ .t-login .t-d {
+ text-align: center;
+ color: #999;
+ margin: 80rpx 0;
+ }
+
+ .t-login .t-e {
+ text-align: center;
+ width: 250rpx;
+ margin: 80rpx auto 0;
+ }
+
+ .t-login .t-g {
+ float: left;
+ width: 50%;
+ }
+
+ .t-login .t-e image {
+ width: 50rpx;
+ height: 50rpx;
+ }
+
+ .t-login .t-f {
+ text-align: center;
+ margin: 200rpx 0 0 0;
+ color: #666;
+ }
+
+ .t-login .t-f text {
+ margin-left: 20rpx;
+ color: #aaaaaa;
+ font-size: 27rpx;
+ }
+
+ .t-login .uni-input-placeholder {
+ color: #000;
+ }
+
+ .cl {
+ zoom: 1;
+ }
+
+ .cl:after {
+ clear: both;
+ display: block;
+ visibility: hidden;
+ height: 0;
+ content: '\20';
+ }
</style>
\ No newline at end of file
--
Gitblit v1.9.3