Commit 95d22c35 authored by 罗超's avatar 罗超

2

parent 506ac1eb
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<view class="indexpage"> <view class="indexpage">
<navbar class="navbarSticky" bg="#F5F5F5"> <navbar class="navbarSticky" bg="#F5F5F5">
<view class="navbarCon"> <view class="navbarCon">
<view class="pagetitle" @click="jumpPage('/pages/login/login')"> <view class="pagetitle">
首页 首页
</view> </view>
<view class="loginBox"> <view class="loginBox">
...@@ -249,7 +249,7 @@ ...@@ -249,7 +249,7 @@
return obj return obj
}, },
againdata() { againdata() {
data.pageData = uni.getStorageSync("userInfo"); data.userData = uni.getStorageSync('userInfo');
methods.getIndexData(); methods.getIndexData();
methods.getActivityData(); methods.getActivityData();
}, },
......
<template> <template>
<view > <view>
<van-nav-bar> <van-nav-bar>
<van-icon slot="left" name="cross" size="50rpx" @click="back" /> <van-icon slot="left" name="cross" size="50rpx" @click="back" />
</van-nav-bar> </van-nav-bar>
<view class="top"> <view class="top">
登录 登录
<van-image <van-image width="193rpx" height="242rpx" fit="cover" class="yuqi"
width="193rpx" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/educationStu/yuqi.png" />
height="242rpx" </view>
fit="cover" <view class="main">
class="yuqi" <van-cell-group>
src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/educationStu/yuqi.png" <van-field :value="Account" clearable placeholder="请输入用户名" clearable @input="usernameInput">
/> <i class="iconfont icon-user2 left-iconfont" slot="left-icon"></i>
</view> </van-field>
<view class="main"> <van-field :value="Password" password placeholder="请输入密码" clearable @input="passwordInput">
<van-cell-group> <i class="iconfont icon-password left-iconfont" slot="left-icon"></i>
<van-field </van-field>
:value="Account" </van-cell-group>
clearable </view>
placeholder="请输入用户名" <view class="flex flex_between_center btnBox">
clearable <view class="loginBtn flex flex_center_center" @click="login">账号登录</view>
@input="usernameInput" <view class="phoneBtn flex flex_center_center" @click="show=true">游客登录</view>
> <!-- <button class="phoneBtn flex flex_center_center" open-type="getPhoneNumber" @getphonenumber="getphonenumber" @click="login2">手机号一键登录</button> -->
<i class="iconfont icon-user2 left-iconfont" slot="left-icon"></i> </view>
</van-field>
<van-field <!-- <view class="auth" @click="authLogin"> 授权手机号一键登录 </view> -->
:value="Password" <van-toast id="van-toast" />
password <van-dialog :show='show' title="标题" message='游客登录,不能使用全部功能!' show-cancel-button @cancel='show = false'
placeholder="请输入密码" @confirm='login3'>
clearable
@input="passwordInput" </van-dialog>
>
<i class="iconfont icon-password left-iconfont" slot="left-icon"></i>
</van-field>
</van-cell-group>
</view>
<view class="flex flex_between_center btnBox">
<view class="loginBtn flex flex_center_center" @click="login">账号登录</view>
<view class="phoneBtn flex flex_center_center" @click="show=true">游客登录</view>
<!-- <button class="phoneBtn flex flex_center_center" open-type="getPhoneNumber" @getphonenumber="getphonenumber" @click="login2">手机号一键登录</button> -->
</view> </view>
<!-- <view class="auth" @click="authLogin"> 授权手机号一键登录 </view> -->
<van-toast id="van-toast" />
<van-dialog :show='show' title="标题" message='游客登录,不能使用全部功能!' show-cancel-button @cancel='show = false' @confirm='login3'>
</van-dialog>
</view>
</template> </template>
<script> <script>
import { import {
ref, ref,
reactive, reactive,
toRefs, toRefs,
toRef, toRef,
getCurrentInstance, getCurrentInstance,
watch, watch,
computed, computed,
onMounted, onMounted,
inject, inject,
} from "vue"; } from "vue";
// import Toast from "../../wxcomponents/vant/toast/toast"; import {
import { login,phoneLogin,parsePhone } from "../../api/index"; login,
import { Dialog } from '../../wxcomponents/vant/dialog/index'; phoneLogin,
parsePhone
} from "../../api/index";
import {
Dialog
} from '../../wxcomponents/vant/dialog/index';
export default { export default {
setup(props, context) { setup(props, context) {
let { proxy } = getCurrentInstance(); let {
let Toast = inject("$toast"); proxy
let msg = reactive({ } = getCurrentInstance();
Account: "", let Toast = inject("$toast");
Password: "", let msg = reactive({
}); Account: "",
let data =reactive({ Password: "",
phoneNum: "",
openid:"",
code:"",
show:false
});
let methods = {
usernameInput(val) {
msg.Account = val.detail;
},
passwordInput(val) {
msg.Password = val.detail;
},
back() {
uni.navigateBack();
},
jumpPage() {
uni.reLaunch({
url: "/pages/index/index",
});
clearTimeout();
},
async login() {
if (msg.Account == "" || !msg.Account) {
Toast.fail("请输入账号");
return;
}
if (msg.Password == "" || !msg.Password) {
Toast.fail("请输入密码");
return;
}
// let res = await login(msg);
console.log(103,this.$request)
let res=await this.$request('/AppletLogin/Login',msg)
console.log(104,res)
if (res) {
res.Data.Account = msg.Account;
try {
uni.setStorageSync("userInfo", res.Data);
} catch (e) {
console.log(e, "eeeee");
}
Toast.success("登录成功");
setTimeout(() => {
let data = uni.getStorageSync("userInfo");
if (data) {
that.jumpPage();
}
}, 1000);
}
},
login2(){
uni.login({
provider: 'weixin',
success: async (loginRes)=> {
let code=loginRes.code
data.code=code
}
});
},
//获取手机号
getphonenumber(e){
if(e.detail.encryptedData&&e.detail.iv){
let encryptedData = e.detail.encryptedData;
let iv = e.detail.iv;
that.parsePhoneNum(encryptedData,iv,data.code)
}else{
Toast.fail("授权失败,请重新授权")
}
},
//解密手机号
async parsePhoneNum(encryptedData,iv,code){
let res = await parsePhone({
encryptedData,
iv,
code
})
if(res&&res.Data.phoneNumber){
data.phoneNum=res.Data.phoneNumber
data.openid=res.Data.openid
that.phoneNumLogin()
}else{
Toast.fail("授权失败,请重新授权")
}
},
//手机号授权登录
async phoneNumLogin(){
let res=await phoneLogin({
Account:data.phoneNum,
OpenId:data.openid
})
if(res){
res.Data.Account =data.phoneNum;
uni.setStorageSync("userInfo", res.Data);
Toast.success("登录成功");
setTimeout(() => {
let data = uni.getStorageSync("userInfo");
if (data) {
that.jumpPage();
}
}, 1000);
}
},
async login3(){//游客登录
data.show= false
console.log(uni.getStorageSync("temporarydh"))
let temporarydh = uni.getStorageSync("temporarydh")
if(temporarydh){
let msg={
Account:temporarydh.Account,
OpenId:temporarydh.OpenId,
unionid:temporarydh.unionid,
WeChatName:temporarydh.WeChatName,
WeChatPhoto:temporarydh.WeChatPhoto,
IsVisitor:1,
}
let res=await phoneLogin(msg)
if(res){
res.Data.Account =data.phoneNum;
uni.setStorageSync("userInfo", res.Data);
Toast.success("登录成功");
setTimeout(() => {
let data = uni.getStorageSync("userInfo");
if (data) {
that.jumpPage();
}
}, 1000);
}
}else{
uni.reLaunch({
url: '/pages/index/index'//没有授权登录
}); });
let data = reactive({
phoneNum: "",
openid: "",
code: "",
show: false
});
let methods = {
usernameInput(val) {
msg.Account = val.detail;
},
passwordInput(val) {
msg.Password = val.detail;
},
back() {
uni.navigateBack();
},
jumpPage() {
uni.reLaunch({
url: "/pages/index/index",
});
clearTimeout();
},
async login() {
if (msg.Account == "" || !msg.Account) {
Toast.fail("请输入账号");
return;
}
if (msg.Password == "" || !msg.Password) {
Toast.fail("请输入密码");
return;
}
let res = await this.$request('/AppletLogin/Login', msg)
if (res) {
res.Data.Account = msg.Account;
try {
uni.setStorageSync("userInfo", res.Data);
} catch (e) {
console.log(e, "eeeee");
}
Toast.success("登录成功");
setTimeout(() => {
let data = uni.getStorageSync("userInfo");
if (data) {
that.jumpPage();
}
}, 1000);
}
},
login2() {
uni.login({
provider: 'weixin',
success: async (loginRes) => {
let code = loginRes.code
data.code = code
}
});
},
//获取手机号
getphonenumber(e) {
if (e.detail.encryptedData && e.detail.iv) {
let encryptedData = e.detail.encryptedData;
let iv = e.detail.iv;
that.parsePhoneNum(encryptedData, iv, data.code)
} else {
Toast.fail("授权失败,请重新授权")
}
},
//解密手机号
async parsePhoneNum(encryptedData, iv, code) {
let res = await parsePhone({
encryptedData,
iv,
code
})
if (res && res.Data.phoneNumber) {
data.phoneNum = res.Data.phoneNumber
data.openid = res.Data.openid
that.phoneNumLogin()
} else {
Toast.fail("授权失败,请重新授权")
}
},
//手机号授权登录
async phoneNumLogin() {
let res = await phoneLogin({
Account: data.phoneNum,
OpenId: data.openid
})
if (res) {
res.Data.Account = data.phoneNum;
uni.setStorageSync("userInfo", res.Data);
Toast.success("登录成功");
setTimeout(() => {
let data = uni.getStorageSync("userInfo");
if (data) {
that.jumpPage();
}
}, 1000);
}
},
async login3() { //游客登录
data.show = false
console.log(uni.getStorageSync("temporarydh"))
let temporarydh = uni.getStorageSync("temporarydh")
if (temporarydh) {
let msg = {
Account: temporarydh.Account,
OpenId: temporarydh.OpenId,
unionid: temporarydh.unionid,
WeChatName: temporarydh.WeChatName,
WeChatPhoto: temporarydh.WeChatPhoto,
IsVisitor: 1,
}
let res = await phoneLogin(msg)
if (res) {
res.Data.Account = data.phoneNum;
uni.setStorageSync("userInfo", res.Data);
Toast.success("登录成功");
setTimeout(() => {
let data = uni.getStorageSync("userInfo");
if (data) {
that.jumpPage();
}
}, 1000);
}
} else {
uni.showToast({
icon: "none",
title:"请先点击首页登录按钮授权",
duration:2000,
})
setTimeout(()=>{
uni.reLaunch({
url: '/pages/index/index' //没有授权登录
});
},1500)
}
}
};
onMounted(() => {});
let that = methods;
return {
...toRefs(msg),
...toRefs(data),
...methods,
};
},
onLoad() {
// uni.clearStorage();
} }
};
}
};
onMounted(() => {});
let that = methods;
return {
...toRefs(msg),
...toRefs(data),
...methods,
};
},
onLoad(){
// uni.clearStorage();
}
};
</script> </script>
<style scoped> <style scoped>
.top { .top {
height: 242rpx; height: 242rpx;
box-sizing: border-box; box-sizing: border-box;
padding-left: 40rpx; padding-left: 40rpx;
padding-top: 70rpx; padding-top: 70rpx;
font-size: 50rpx; font-size: 50rpx;
font-family: PingFang SC; font-family: PingFang SC;
font-weight: bold; font-weight: bold;
color: #0f1b35; color: #0f1b35;
position: relative; position: relative;
margin-bottom: 20rpx; margin-bottom: 20rpx;
} }
.yuqi {
position: absolute;
top: 0;
right: 1rpx;
}
.main {
height: 250rpx;
box-sizing: border-box;
padding: 0 40rpx;
margin-bottom: 165rpx;
}
/deep/.van-cell {
height: 124rpx;
padding-top: 50rpx;
}
.yuqi { .loginBtn {
position: absolute; width: 280rpx;
top: 0; height: 90rpx;
right: 1rpx; background-color: #00acf9;
} border-radius: 12rpx;
font-size: 32rpx;
font-family: PingFang SC;
font-weight: 500;
color: #ffffff;
}
.main { .phoneBtn {
height: 250rpx; width: 280rpx;
box-sizing: border-box; height: 90rpx;
padding: 0 40rpx; background-color: #E6A23C;
margin-bottom: 165rpx; border-radius: 12rpx;
} font-size: 32rpx;
font-family: PingFang SC;
font-weight: 500;
color: #ffffff;
margin: 0;
}
/deep/.van-cell { .auth {
height: 124rpx; text-align: center;
padding-top: 50rpx; font-size: 26rpx;
} font-family: PingFang SC;
font-weight: 500;
color: #00acf9;
margin-top: 30rpx;
}
.loginBtn { .left-iconfont {
width: 280rpx; margin-right: 20rpx;
height: 90rpx; font-size: 30rpx;
background-color: #00acf9; color: #111111;
border-radius: 12rpx; }
font-size: 32rpx;
font-family: PingFang SC;
font-weight: 500;
color: #ffffff;
}
.phoneBtn{
width: 280rpx;
height: 90rpx;
background-color: #E6A23C;
border-radius: 12rpx;
font-size: 32rpx;
font-family: PingFang SC;
font-weight: 500;
color: #ffffff;
margin: 0;
}
.auth {
text-align: center;
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 500;
color: #00acf9;
margin-top: 30rpx;
}
.left-iconfont { .btnBox {
margin-right: 20rpx; width: 600rpx;
font-size: 30rpx; height: 90rpx;
color: #111111; border-radius: 12rpx;
} overflow: hidden;
.btnBox{ margin: 0 auto;
width: 600rpx; font-size: 32rpx;
height: 90rpx; font-family: PingFang SC;
border-radius: 12rpx; font-weight: 500;
overflow: hidden; color: #ffffff;
margin: 0 auto; }
font-size: 32rpx;
font-family: PingFang SC;
font-weight: 500;
color: #ffffff;
}
</style> </style>
...@@ -5,7 +5,9 @@ ...@@ -5,7 +5,9 @@
<!-- <view class="date"> <!-- <view class="date">
2021年12月30日 2021年12月30日
</view> --> </view> -->
<view class="name"> Hello,{{ pageData.StuName||'' }} </view> <view class="name"> <text v-if="pageData.StuName">Hello,{{ pageData.StuName }}</text><text
v-if="!pageData.StuName&&pageData.StuName!==''"
@click="jumpPage('/pages/login/login')">未登录</text> </view>
</view> </view>
<view class="right"> <view class="right">
<image :src="pageData.StuIcon" mode="aspectFill" style="width:100%;height:100%;border-radius: 50%;"> <image :src="pageData.StuIcon" mode="aspectFill" style="width:100%;height:100%;border-radius: 50%;">
...@@ -15,7 +17,7 @@ ...@@ -15,7 +17,7 @@
<view class="orderInfo flex_between_center"> <view class="orderInfo flex_between_center">
<view class="orderItem "> <view class="orderItem ">
<view class=" flex_between_center" style="width:100%"> <view class=" flex_between_center" style="width:100%">
<view class="orderNum">{{ pageData.OrderNum }}</view> <view class="orderNum">{{ pageData.OrderNum||0 }}</view>
<image src="../../static/image/person/order1.png" mode="aspectFill" class="orderIcon"></image> <image src="../../static/image/person/order1.png" mode="aspectFill" class="orderIcon"></image>
</view> </view>
<view class="orderName"> <view class="orderName">
...@@ -24,16 +26,16 @@ ...@@ -24,16 +26,16 @@
</view> </view>
<view class="orderItem "> <view class="orderItem ">
<view class=" flex_between_center" style="width:100%"> <view class=" flex_between_center" style="width:100%">
<view class="orderNum">{{ pageData.StudyAbroadNum }}</view> <view class="orderNum">{{ pageData.StudyAbroadNum||0 }}</view>
<image src="../../static/image/person/order2.png" mode="aspectFill" class="orderIcon"></image> <image src="../../static/image/person/order2.png" mode="aspectFill" class="orderIcon"></image>
</view> </view>
<view class="orderName"> <view class="orderName">
留学订单 留学订单
</view> </view>
</view> </view>
<view class="orderItem " > <view class="orderItem ">
<view class=" flex_between_center" style="width:100%"> <view class=" flex_between_center" style="width:100%">
<view class="orderNum">{{ pageData.ContractNum }}</view> <view class="orderNum">{{ pageData.ContractNum||0 }}</view>
<image src="../../static/image/person/order3.png" mode="aspectFill" class="orderIcon"></image> <image src="../../static/image/person/order3.png" mode="aspectFill" class="orderIcon"></image>
</view> </view>
<view class="orderName"> <view class="orderName">
...@@ -71,8 +73,29 @@ ...@@ -71,8 +73,29 @@
</view> </view>
<view class="courseBox"> <view class="courseBox">
<view class="left"> <view class="left">
<view style="width: 115rpx;
height: 13rpx;
background-color: #9CD4C1;
border-radius: 6rpx;
margin-bottom: 20rpx;
">
</view>
<view style="width: 90rpx;
height: 13rpx;
background-color: #9CD4C1;
border-radius: 6rpx;
margin-bottom: 20rpx;
">
</view>
<view style="width: 60rpx;
height: 13rpx;
background-color: #9CD4C1;
border-radius: 6rpx;
">
</view>
<image :src="pageData.CourseInfo.B2BIcon" mode="aspectFill" <image :src="pageData.CourseInfo.B2BIcon" mode="aspectFill"
style="width:100%;height:100%;border-radius: 30rpx;"></image> style="width:115rpx;height:115rpx;border-radius: 6rpx; position: absolute;bottom:10rpx;right: 18rpx;">
</image>
</view> </view>
<view class="right"> <view class="right">
<view class="className one_line">{{ <view class="className one_line">{{
...@@ -144,7 +167,7 @@ ...@@ -144,7 +167,7 @@
} = getCurrentInstance(); } = getCurrentInstance();
let data = reactive({ let data = reactive({
pageData: { pageData: {
AssistList:[] AssistList: []
}, },
}); });
const methods = { const methods = {
...@@ -171,7 +194,7 @@ ...@@ -171,7 +194,7 @@
}; };
}, },
onShow() { onShow() {
if(this.$isLogin()){ if (this.$isLogin()) {
this.getData(); this.getData();
} }
} }
...@@ -316,6 +339,10 @@ ...@@ -316,6 +339,10 @@
background: #d5f3e9; background: #d5f3e9;
border-radius: 30rpx; border-radius: 30rpx;
margin-right: 40rpx; margin-right: 40rpx;
box-sizing: border-box;
padding-top: 40rpx;
padding-left: 30rpx;
position: relative;
} }
.courseBox .right { .courseBox .right {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment