登录、用户信息调试
This commit is contained in:
parent
22f31116dd
commit
bdeb2f566f
@ -6,7 +6,8 @@ export default {
|
|||||||
uploadFile: '/common/ossUpload',
|
uploadFile: '/common/ossUpload',
|
||||||
loginByApp: `/loginByApp`, // 登录
|
loginByApp: `/loginByApp`, // 登录
|
||||||
loginByMP: `/loginByWeixin`, // 小程序登录 -- DONE
|
loginByMP: `/loginByWeixin`, // 小程序登录 -- DONE
|
||||||
getInfoByApp: `/getInfoByApp`,// 获取用户基本信息
|
bindPhone: `/bindPhoneByWx`, // 绑定手机号 -- DONE
|
||||||
|
getInfoByApp: `/getInfoByWxApp`,// 获取用户基本信息 -- DONE
|
||||||
getStaffQRCodePng: `/emis/emisStaff/getStaffQRCodePng`,// 获取用户二维码
|
getStaffQRCodePng: `/emis/emisStaff/getStaffQRCodePng`,// 获取用户二维码
|
||||||
getEmisCountry: `/emis/emisCountry/listSimple`, // 获取国家列表
|
getEmisCountry: `/emis/emisCountry/listSimple`, // 获取国家列表
|
||||||
getEmisRegion: `/emis/emisRegion/listSimple`,// 获取省市区列表
|
getEmisRegion: `/emis/emisRegion/listSimple`,// 获取省市区列表
|
||||||
|
|||||||
@ -9,7 +9,11 @@ export const loginByMP = (data = {})=> {
|
|||||||
return coreRequest(url.loginByMP, data)
|
return coreRequest(url.loginByMP, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
export const getInfoByApp = (data = {})=> {
|
export const bindPhone = (data = {}, option = {})=> {
|
||||||
return coreRequest(url.getInfoByApp, data, {}, 'GET')
|
return coreRequest(url.bindPhone, data, option)
|
||||||
|
}
|
||||||
|
|
||||||
|
export const getInfoByApp = (data = {}, option = {})=> {
|
||||||
|
return coreRequest(url.getInfoByApp, data, option, 'GET')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
export default (path)=> {
|
export default (path)=> {
|
||||||
return `/sta_back/images/${path}`
|
// return `/sta_back/images/${path}`
|
||||||
// return `https://oms.tanex56.com/static/sapp/images/${path}`
|
return `https://oms.tanex56.com/static/sapp/images/${path}`
|
||||||
}
|
}
|
||||||
|
|
||||||
export const getCdnRoot = (path)=> {
|
export const getCdnRoot = (path)=> {
|
||||||
|
|||||||
@ -2,7 +2,6 @@ import { goto, getImageTempFilePath } from "./untool";
|
|||||||
import { showToast, showLoading, hideLoading, downloadFile } from "./untool"
|
import { showToast, showLoading, hideLoading, downloadFile } from "./untool"
|
||||||
import { setSessionXToken, getSessionXToken } from "@/session"
|
import { setSessionXToken, getSessionXToken } from "@/session"
|
||||||
import { textEncoder, textDecoder } from "./util"
|
import { textEncoder, textDecoder } from "./util"
|
||||||
|
|
||||||
const getCommonReqData = ()=> {
|
const getCommonReqData = ()=> {
|
||||||
const xToken = getSessionXToken()
|
const xToken = getSessionXToken()
|
||||||
return {
|
return {
|
||||||
|
|||||||
@ -65,8 +65,8 @@ let coreRequest = function(url, params = {}, options = {}, methodType, coreParam
|
|||||||
}
|
}
|
||||||
url = `${host}${url}`
|
url = `${host}${url}`
|
||||||
options = {
|
options = {
|
||||||
...options,
|
|
||||||
...comReqData.header,
|
...comReqData.header,
|
||||||
|
...options,
|
||||||
}
|
}
|
||||||
|
|
||||||
return dealRequest({
|
return dealRequest({
|
||||||
|
|||||||
@ -30,7 +30,7 @@ const chooseFile = function (action = 'chooseImage', opt = {}) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const doRequest = function (file) {
|
const doRequest = function (file, opt = {}) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
let comReqData = getCommonReqData()
|
let comReqData = getCommonReqData()
|
||||||
uni.uploadFile({
|
uni.uploadFile({
|
||||||
@ -55,7 +55,8 @@ const doRequest = function (file) {
|
|||||||
fail() {
|
fail() {
|
||||||
showToast("文件上传失败")
|
showToast("文件上传失败")
|
||||||
reject()
|
reject()
|
||||||
}
|
},
|
||||||
|
...opt
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -104,5 +105,6 @@ const coreMultiUploadFile = async (action = 'chooseImage', opt = {})=> {
|
|||||||
|
|
||||||
export {
|
export {
|
||||||
coreUploadFile,
|
coreUploadFile,
|
||||||
coreMultiUploadFile
|
coreMultiUploadFile,
|
||||||
|
doRequest
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import { showToast } from "./untool"
|
import { showToast } from "./untool"
|
||||||
const checkParams = (param, validConfig)=> {
|
const checkParams = (param, validConfig, showErrMsg = true)=> {
|
||||||
return new Promise((resolve)=> {
|
return new Promise((resolve)=> {
|
||||||
let errMsg = ''
|
let errMsg = ''
|
||||||
Object.keys(validConfig).map(key=> {
|
Object.keys(validConfig).map(key=> {
|
||||||
@ -13,7 +13,7 @@ const checkParams = (param, validConfig)=> {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
if(errMsg) {
|
if(errMsg) {
|
||||||
showToast(errMsg)
|
showErrMsg && showToast(errMsg)
|
||||||
} else {
|
} else {
|
||||||
resolve()
|
resolve()
|
||||||
}
|
}
|
||||||
|
|||||||
@ -62,12 +62,7 @@
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onShareAppMessage() {
|
created() {
|
||||||
return {
|
|
||||||
title: '',
|
|
||||||
}
|
|
||||||
},
|
|
||||||
onLoad() {
|
|
||||||
let info = getSessionLoginInfo()
|
let info = getSessionLoginInfo()
|
||||||
let { remberPassport } = info
|
let { remberPassport } = info
|
||||||
if(remberPassport[0]) {
|
if(remberPassport[0]) {
|
||||||
|
|||||||
@ -13,35 +13,137 @@
|
|||||||
</view>
|
</view>
|
||||||
<view style="margin-top: 90rpx;" class="pl-30 pr-30">
|
<view style="margin-top: 90rpx;" class="pl-30 pr-30">
|
||||||
|
|
||||||
|
<u-row custom-style="margin-top: 30rpx;">
|
||||||
|
<u-input type="nickname" v-model="submitLogin.nickName" placeholder="昵称"
|
||||||
|
color="#fff" font-size="30" placeholder-style="color: #FFF;"
|
||||||
|
custom-style="padding: 20rpx 60rpx;background: rgba(255,255,255,0.2); border: 2px solid #FFFFFF;border-radius: 16rpx;"
|
||||||
|
></u-input>
|
||||||
|
<view class="ml-40">
|
||||||
|
<button class="btn-open avatar-wrapper" open-type="chooseAvatar" @chooseavatar="onChooseAvatar">
|
||||||
|
<u-image v-if="submitLogin.avatarUrl" :src="submitLogin.avatarUrl" width="100" height="100" mode="aspectFill"/>
|
||||||
|
<view v-else class="avatar-empty">头像</view>
|
||||||
|
</button>
|
||||||
|
</view>
|
||||||
|
</u-row>
|
||||||
|
|
||||||
|
<u-row custom-style="margin-top: 30rpx;">
|
||||||
|
<u-input v-model="submitLogin.phoneNumber" placeholder="手机号"
|
||||||
|
color="#fff" font-size="30"
|
||||||
|
custom-style="padding: 20rpx 60rpx;background: rgba(255,255,255,0.2); border: 2px solid #FFFFFF;border-radius: 16rpx;"
|
||||||
|
placeholder-style="color: #FFF;"
|
||||||
|
>
|
||||||
|
<template #suffix>
|
||||||
|
<button class="btn-open clr-wht font-28" open-type="getPhoneNumber"
|
||||||
|
@getphonenumber="getPhoneNumber" style="background: rgba(255,255,255,0.2);"
|
||||||
|
>
|
||||||
|
获取手机号
|
||||||
|
</button>
|
||||||
|
</template>
|
||||||
|
</u-input>
|
||||||
|
</u-row>
|
||||||
|
|
||||||
<view style="margin-top: 70rpx;">
|
<view style="margin-top: 70rpx;">
|
||||||
<u-button @click="handleLogin" custom-style="height:90rpx;font-size:32rpx;color: #B12D29;font-weight: bold;;box-shadow: 0rpx 12rpx 21rpx 0rpx rgba(177,45,41,0.32);border-radius: 16rpx;">登录</u-button>
|
<u-button v-if="!pageLoading" @click="handleConfirmLogin" custom-style="height:90rpx;font-size:32rpx;color: #B12D29;font-weight: bold;;box-shadow: 0rpx 12rpx 21rpx 0rpx rgba(177,45,41,0.32);border-radius: 16rpx;">登录</u-button>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
|
||||||
import {
|
|
||||||
mapState,
|
|
||||||
mapMutations,
|
|
||||||
mapActions
|
|
||||||
} from 'vuex'
|
|
||||||
const univerifyInfoKey = 'univerifyInfo';
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { uniPromiseApi, showLoading, hideLoading } from "@/common/untool"
|
||||||
|
import { USERKEY } from "@/store/actionKey"
|
||||||
|
import { checkParams } from "@/common/validate"
|
||||||
|
import * as apiService from "@/common/api"
|
||||||
|
import { getCommonReqData } from "@/common/manageServer"
|
||||||
|
import { doRequest } from "@/common/upload"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
pageLoading: true,
|
||||||
|
submitLogin: {
|
||||||
|
code: '',
|
||||||
|
nickName: '',
|
||||||
|
avatarUrl: '',
|
||||||
|
phoneNumber: '',
|
||||||
|
},
|
||||||
|
submitValidConfig: {
|
||||||
|
nickName: { required: true, requiredMsg: '昵称不能为空' },
|
||||||
|
avatarUrl: { required: true, requiredMsg: '头像不能为空' },
|
||||||
|
phoneNumber: { required: true, requiredMsg: '手机号不能为空' },
|
||||||
|
},
|
||||||
|
token: '',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
|
||||||
},
|
},
|
||||||
onLoad() {
|
created() {
|
||||||
|
this.initData()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
commodHeaders(){
|
||||||
|
return {
|
||||||
|
...getCommonReqData().header,
|
||||||
|
"Oms-X-Token": this.token,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async initData(){
|
||||||
|
await this.autoLogin()
|
||||||
|
if(this.token) {
|
||||||
|
// 如果用户信息已绑定,直接触发登录成功
|
||||||
|
const res = await apiService.getInfoByApp({ _loading: true }, this.commodHeaders())
|
||||||
|
let userInfo = res?.user || {}
|
||||||
|
Object.assign(this.submitLogin , {
|
||||||
|
nickName: userInfo.nickName,
|
||||||
|
avatarUrl: userInfo.avatar,
|
||||||
|
phoneNumber: userInfo.phonenumber,
|
||||||
|
})
|
||||||
|
await checkParams(this.submitLogin, this.submitValidConfig, false)
|
||||||
|
this.loginSucceed()
|
||||||
|
}
|
||||||
|
this.pageLoading = false
|
||||||
|
},
|
||||||
|
async onChooseAvatar(res) {
|
||||||
|
let tmpFilePath = res.detail.avatarUrl
|
||||||
|
let upRes = await doRequest(tmpFilePath, { header: this.commodHeaders() })
|
||||||
|
this.submitLogin.avatarUrl = upRes.url
|
||||||
|
},
|
||||||
|
async autoLogin(){
|
||||||
|
let token = ''
|
||||||
|
showLoading()
|
||||||
|
try{
|
||||||
|
let lg = await uniPromiseApi('login', {})
|
||||||
|
let code = lg.res.code
|
||||||
|
this.submitLogin.code = code
|
||||||
|
let res = await apiService.loginByMP(this.submitLogin)
|
||||||
|
token = res.token
|
||||||
|
this.token = token
|
||||||
|
}catch(e){
|
||||||
|
console.error("autoLogin error=====", e)
|
||||||
|
}
|
||||||
|
hideLoading()
|
||||||
|
return token
|
||||||
|
},
|
||||||
|
async getPhoneNumber(e){
|
||||||
|
let bPhoneRes = await apiService.bindPhone(e?.detail || {}, this.commodHeaders())
|
||||||
|
this.submitLogin.phoneNumber = bPhoneRes.phone
|
||||||
|
},
|
||||||
|
handleNicknamereview(e){
|
||||||
|
console.log(e)
|
||||||
|
},
|
||||||
|
async handleConfirmLogin() {
|
||||||
|
await checkParams(this.submitLogin, this.submitValidConfig)
|
||||||
|
await this.autoLogin()
|
||||||
|
this.loginSucceed()
|
||||||
|
},
|
||||||
|
async loginSucceed(){
|
||||||
|
let token = this.token
|
||||||
|
await this.$store.dispatch(USERKEY.UPDATETOKEN, { token })
|
||||||
|
this.$emit("succeedBack")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@ -60,4 +162,23 @@
|
|||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
}
|
}
|
||||||
|
.btn-open{
|
||||||
|
display: inline-block;
|
||||||
|
height: auto;
|
||||||
|
margin: 0;
|
||||||
|
min-height: auto;
|
||||||
|
padding: 0;
|
||||||
|
line-height: normal;
|
||||||
|
background: inherit;
|
||||||
|
}
|
||||||
|
.avatar-empty{
|
||||||
|
width: 100rpx;
|
||||||
|
height: 100rpx;
|
||||||
|
line-height: 100rpx;
|
||||||
|
background-color: #fff;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: $uni-color-primary;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
import { USERKEY } from "@/store/actionKey"
|
import { USERKEY } from "@/store/actionKey"
|
||||||
import { getSessionLoginInfo, setSessionLoginInfo, setSessionXToken } from "@/session"
|
import { getSessionLoginInfo, setSessionLoginInfo, setSessionXToken } from "@/session"
|
||||||
import { encrypt } from "@/common/libs/jsencrypt_utils"
|
import { encrypt } from "@/common/libs/jsencrypt_utils"
|
||||||
import { promiseTimeout } from "@/common/untool"
|
import { promiseTimeout, showToast } from "@/common/untool"
|
||||||
|
|
||||||
// #ifdef MP
|
// #ifdef MP
|
||||||
import LoginComponent from "@/components/buns-api/login/mp-login"
|
import LoginComponent from "@/components/buns-api/login/mp-login"
|
||||||
@ -41,6 +41,7 @@
|
|||||||
await promiseTimeout(300)
|
await promiseTimeout(300)
|
||||||
await this.$store.dispatch(USERKEY.GETUSERINFO)
|
await this.$store.dispatch(USERKEY.GETUSERINFO)
|
||||||
this.goto("tabBar/sending/sending")
|
this.goto("tabBar/sending/sending")
|
||||||
|
showToast("登录成功")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -159,7 +159,6 @@
|
|||||||
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getCdnUrl,
|
|
||||||
|
|
||||||
initData() {
|
initData() {
|
||||||
},
|
},
|
||||||
|
|||||||
@ -2,6 +2,7 @@ export const USERKEY = {
|
|||||||
LOGIN: "LOGIN",
|
LOGIN: "LOGIN",
|
||||||
GETUSERINFO: "GETUSERINFO",
|
GETUSERINFO: "GETUSERINFO",
|
||||||
LOGOUT: "LOGOUT",
|
LOGOUT: "LOGOUT",
|
||||||
|
UPDATETOKEN: "UPDATETOKEN",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -35,6 +35,16 @@ export default {
|
|||||||
// }
|
// }
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
|
async [USERKEY.UPDATETOKEN]({
|
||||||
|
dispatch,
|
||||||
|
commit,
|
||||||
|
state,
|
||||||
|
rootState
|
||||||
|
}, options) {
|
||||||
|
let { token } = options
|
||||||
|
setSessionXToken(token)
|
||||||
|
commit(USERKEY.LOGIN, token)
|
||||||
|
},
|
||||||
async [USERKEY.LOGIN]({
|
async [USERKEY.LOGIN]({
|
||||||
dispatch,
|
dispatch,
|
||||||
commit,
|
commit,
|
||||||
@ -44,9 +54,7 @@ export default {
|
|||||||
let token = state.token
|
let token = state.token
|
||||||
const resLgn = await apiService.loginByApp(options)
|
const resLgn = await apiService.loginByApp(options)
|
||||||
token = resLgn.token
|
token = resLgn.token
|
||||||
setSessionXToken(token)
|
dispatch(USERKEY.UPDATETOKEN, { token })
|
||||||
|
|
||||||
commit(USERKEY.LOGIN, token)
|
|
||||||
},
|
},
|
||||||
async [USERKEY.LOGOUT]({
|
async [USERKEY.LOGOUT]({
|
||||||
dispatch,
|
dispatch,
|
||||||
@ -81,9 +89,6 @@ export default {
|
|||||||
permissions: resInfo.permissions
|
permissions: resInfo.permissions
|
||||||
}
|
}
|
||||||
|
|
||||||
let resQr = await apiService.getStaffQRCodePng()
|
|
||||||
info.qrCodeImgUrl = resQr?.data?.fileUrl
|
|
||||||
|
|
||||||
commit(USERKEY.GETUSERINFO, info)
|
commit(USERKEY.GETUSERINFO, info)
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@ -44,6 +44,7 @@
|
|||||||
@focus="onFocus"
|
@focus="onFocus"
|
||||||
@confirm="onConfirm"
|
@confirm="onConfirm"
|
||||||
@keyboardheightchange="onkeyboardheightchange"
|
@keyboardheightchange="onkeyboardheightchange"
|
||||||
|
@nicknamereview="onNicknamereview"
|
||||||
/>
|
/>
|
||||||
</view>
|
</view>
|
||||||
<view
|
<view
|
||||||
@ -274,6 +275,9 @@ export default {
|
|||||||
onkeyboardheightchange(event) {
|
onkeyboardheightchange(event) {
|
||||||
this.$emit("keyboardheightchange", event);
|
this.$emit("keyboardheightchange", event);
|
||||||
},
|
},
|
||||||
|
onNicknamereview(event){
|
||||||
|
this.$emit("nicknamereview", event);
|
||||||
|
},
|
||||||
// 内容发生变化,进行处理
|
// 内容发生变化,进行处理
|
||||||
valueChange() {
|
valueChange() {
|
||||||
const value = this.innerValue;
|
const value = this.innerValue;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user