uu
This commit is contained in:
parent
eafbc58bc0
commit
48e9782c38
6
common/loginHandle.js
Normal file
6
common/loginHandle.js
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
|
||||||
|
import { goto } from "./untool"
|
||||||
|
|
||||||
|
export const goLogin = ()=> {
|
||||||
|
// goto("login/login", 2)
|
||||||
|
}
|
||||||
@ -2,6 +2,8 @@ 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"
|
||||||
|
import { goLogin } from "@/common/loginHandle"
|
||||||
|
|
||||||
const getCommonReqData = ()=> {
|
const getCommonReqData = ()=> {
|
||||||
const xToken = getSessionXToken()
|
const xToken = getSessionXToken()
|
||||||
return {
|
return {
|
||||||
@ -84,7 +86,7 @@ async function handleResponse(options) {
|
|||||||
setSessionXToken()
|
setSessionXToken()
|
||||||
msg = '登录失效,请重新登录'
|
msg = '登录失效,请重新登录'
|
||||||
showToast(msg)
|
showToast(msg)
|
||||||
goto("login/login", 2)
|
goLogin()
|
||||||
return reject({
|
return reject({
|
||||||
code: {}
|
code: {}
|
||||||
});
|
});
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { showToast } from "./untool"
|
import { showToast } from "./untool"
|
||||||
const checkParams = (param, validConfig, showErrMsg = true)=> {
|
const checkParams = (param, validConfig, showErrMsg = true)=> {
|
||||||
return new Promise((resolve)=> {
|
return new Promise((resolve, reject)=> {
|
||||||
let errMsg = ''
|
let errMsg = ''
|
||||||
Object.keys(validConfig).map(key=> {
|
Object.keys(validConfig).map(key=> {
|
||||||
const itemConf = validConfig[key]
|
const itemConf = validConfig[key]
|
||||||
@ -14,6 +14,7 @@ const checkParams = (param, validConfig, showErrMsg = true)=> {
|
|||||||
})
|
})
|
||||||
if(errMsg) {
|
if(errMsg) {
|
||||||
showErrMsg && showToast(errMsg)
|
showErrMsg && showToast(errMsg)
|
||||||
|
reject()
|
||||||
} else {
|
} else {
|
||||||
resolve()
|
resolve()
|
||||||
}
|
}
|
||||||
|
|||||||
72
components/buns-api/login/index.vue
Normal file
72
components/buns-api/login/index.vue
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
<template>
|
||||||
|
<tpx-dialog v-model:show="lgDialog.show">
|
||||||
|
<LoginComponent @succeedBack="handleLoginedBack" @needLoginInput="handleShowLogin"></LoginComponent>
|
||||||
|
</tpx-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { USERKEY } from "@/store/actionKey"
|
||||||
|
import { getSessionLoginInfo, setSessionLoginInfo, setSessionXToken } from "@/session"
|
||||||
|
import { encrypt } from "@/common/libs/jsencrypt_utils"
|
||||||
|
import { promiseTimeout, showToast } from "@/common/untool"
|
||||||
|
|
||||||
|
// #ifdef MP
|
||||||
|
import LoginComponent from "@/components/buns-api/login/mp-login"
|
||||||
|
// #endif
|
||||||
|
|
||||||
|
// #ifndef MP
|
||||||
|
import LoginComponent from "@/components/buns-api/login/com-login"
|
||||||
|
// #endif
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: { LoginComponent },
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
lgDialog: { show: false },
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
// setSessionXToken() // 登录前先清除xtoke
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async handleLoginedBack() {
|
||||||
|
await promiseTimeout(300)
|
||||||
|
await this.$store.dispatch(USERKEY.GETUSERINFO)
|
||||||
|
showToast("登录成功")
|
||||||
|
this.reloadCurrentPage(this) // 刷新当前页面
|
||||||
|
},
|
||||||
|
handleShowLogin() {
|
||||||
|
this.lgDialog.show = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.lgn-page {
|
||||||
|
background-color: #B12D29;
|
||||||
|
position: relative;
|
||||||
|
min-height: 100%;
|
||||||
|
background-size: 100% auto;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
}
|
||||||
|
.yunduo{
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0rpx;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
.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>
|
||||||
@ -1,18 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="lgn-page">
|
<tpx-layout>
|
||||||
<view class="pos-abt-all" style="z-index: 0;overflow: hidden;">
|
<template #body>
|
||||||
<tpx-image width="750" mode="widthFix" :src="getCdnUrl('login/bg.png')"></tpx-image>
|
|
||||||
<view class="yunduo">
|
|
||||||
<tpx-image width="750" mode="widthFix" :src="getCdnUrl('login/bg-yun.png')"></tpx-image>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="pos-rlt" style="z-index: 1;">
|
|
||||||
<view>
|
|
||||||
<u-image custom-style="margin: 160rpx auto 0 auto;" width="140" height="140" :src="getCdnUrl('logo.png')"></u-image>
|
|
||||||
<u-text margin="70rpx 0 0 0" size="60" text="探路物流 速运全球" color="#fff" bold="true" align="center"></u-text>
|
|
||||||
</view>
|
|
||||||
<view style="margin-top: 90rpx;" class="pl-30 pr-30">
|
|
||||||
|
|
||||||
<u-row custom-style="margin-top: 30rpx;">
|
<u-row custom-style="margin-top: 30rpx;">
|
||||||
<u-input type="nickname" v-model="submitLogin.nickName" placeholder="昵称"
|
<u-input type="nickname" v-model="submitLogin.nickName" placeholder="昵称"
|
||||||
color="#fff" font-size="30" placeholder-style="color: #FFF;"
|
color="#fff" font-size="30" placeholder-style="color: #FFF;"
|
||||||
@ -41,14 +29,12 @@
|
|||||||
</template>
|
</template>
|
||||||
</u-input>
|
</u-input>
|
||||||
</u-row>
|
</u-row>
|
||||||
|
</template>
|
||||||
|
|
||||||
<view style="margin-top: 70rpx;">
|
<template #footer>
|
||||||
<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>
|
<u-button v-if="!pageLoading" @click="handleConfirmLogin" custom-style="height:66rpx;font-size:32rpx;border-radius: 16rpx;">登录</u-button>
|
||||||
</view>
|
</template>
|
||||||
|
</tpx-layout>
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@ -58,7 +44,7 @@
|
|||||||
import * as apiService from "@/common/api"
|
import * as apiService from "@/common/api"
|
||||||
import { getCommonReqData } from "@/common/manageServer"
|
import { getCommonReqData } from "@/common/manageServer"
|
||||||
import { doRequest } from "@/common/upload"
|
import { doRequest } from "@/common/upload"
|
||||||
import { getSessionUserInfo } from "@/session"
|
import { getSessionUserInfo, getSessionXToken } from "@/session"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
@ -76,6 +62,7 @@
|
|||||||
phoneNumber: { required: true, requiredMsg: '手机号不能为空' },
|
phoneNumber: { required: true, requiredMsg: '手机号不能为空' },
|
||||||
},
|
},
|
||||||
token: '',
|
token: '',
|
||||||
|
isLogined: !!getSessionXToken()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -97,6 +84,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
async initData(){
|
async initData(){
|
||||||
|
if(!this.isLogined) {
|
||||||
await this.autoLogin()
|
await this.autoLogin()
|
||||||
if(this.token) {
|
if(this.token) {
|
||||||
// 如果用户信息已绑定,直接触发登录成功
|
// 如果用户信息已绑定,直接触发登录成功
|
||||||
@ -107,11 +95,14 @@
|
|||||||
avatarUrl: userInfo.avatar,
|
avatarUrl: userInfo.avatar,
|
||||||
phoneNumber: userInfo.phonenumber,
|
phoneNumber: userInfo.phonenumber,
|
||||||
})
|
})
|
||||||
// let seInfo = getSessionUserInfo()
|
try{
|
||||||
// // 手动退出的场景,不做自动登录
|
|
||||||
// if(!seInfo.logout){}
|
|
||||||
await checkParams(this.submitLogin, this.submitValidConfig, false)
|
await checkParams(this.submitLogin, this.submitValidConfig, false)
|
||||||
this.loginSucceed()
|
this.loginSucceed()
|
||||||
|
}catch(err){
|
||||||
|
this.$emit("needLoginInput")
|
||||||
|
console.error("auto login checkParams err=====", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async onChooseAvatar(res) {
|
async onChooseAvatar(res) {
|
||||||
@ -158,11 +149,8 @@
|
|||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.lgn-page {
|
.lgn-page {
|
||||||
background-color: #B12D29;
|
|
||||||
position: relative;
|
position: relative;
|
||||||
min-height: 100%;
|
min-height: 100%;
|
||||||
background-size: 100% auto;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
}
|
}
|
||||||
.yunduo{
|
.yunduo{
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|||||||
@ -33,7 +33,7 @@
|
|||||||
<view class="edm-input-item">
|
<view class="edm-input-item">
|
||||||
<u-row justify="between" align="top">
|
<u-row justify="between" align="top">
|
||||||
<text class="font-28 pt-20 font-weight">总体积</text>
|
<text class="font-28 pt-20 font-weight">总体积</text>
|
||||||
<view v-if="totalVolume || true">
|
<view>
|
||||||
<tpx-input v-model:value="modelInfo.totalVolume" placeholder="" inputAlign="right" suffix="m³" _digit="5"></tpx-input>
|
<tpx-input v-model:value="modelInfo.totalVolume" placeholder="" inputAlign="right" suffix="m³" _digit="5"></tpx-input>
|
||||||
</view>
|
</view>
|
||||||
</u-row>
|
</u-row>
|
||||||
|
|||||||
@ -50,8 +50,9 @@
|
|||||||
// 取消选中
|
// 取消选中
|
||||||
remark = remark.replace(val, "")
|
remark = remark.replace(val, "")
|
||||||
} else {
|
} else {
|
||||||
remark += `${val}`
|
remark += `,${val}`
|
||||||
}
|
}
|
||||||
|
remark = remark.split(",").filter(v=> !!v).join(",") // 去除多余,
|
||||||
this.modelInfo.remark = remark
|
this.modelInfo.remark = remark
|
||||||
}, 300)
|
}, 300)
|
||||||
},
|
},
|
||||||
|
|||||||
@ -2,11 +2,15 @@
|
|||||||
<view @click="handleClick" style="height: 100%;">
|
<view @click="handleClick" style="height: 100%;">
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
</view>
|
</view>
|
||||||
|
<LoginComponent ref="loginRef"></LoginComponent>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { pageEventNames } from "@/common/enum"
|
import { pageEventNames } from "@/common/enum"
|
||||||
|
import LoginComponent from "@/components/buns-api/login/index"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
components: { LoginComponent },
|
||||||
props: {
|
props: {
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|||||||
@ -82,7 +82,7 @@
|
|||||||
<tpx-select v-model:value="submitParam.paymentType" :list="dicData.emis_payment_type"
|
<tpx-select v-model:value="submitParam.paymentType" :list="dicData.emis_payment_type"
|
||||||
mode="drop"
|
mode="drop"
|
||||||
>
|
>
|
||||||
<tpx-text-item label="付款方式" :value="submitParam.paymentType" :list="dicData.emis_payment_type"></tpx-text-item>
|
<tpx-text-item :required="true" label="付款方式" :value="submitParam.paymentType" :list="dicData.emis_payment_type"></tpx-text-item>
|
||||||
</tpx-select>
|
</tpx-select>
|
||||||
</view>
|
</view>
|
||||||
<template v-if="isShowYueJie">
|
<template v-if="isShowYueJie">
|
||||||
@ -368,6 +368,7 @@
|
|||||||
if(this.isEdit) { }
|
if(this.isEdit) { }
|
||||||
let params = JSON.parse(JSON.stringify(this.submitParam));
|
let params = JSON.parse(JSON.stringify(this.submitParam));
|
||||||
params.goodsPics = params.goodsPics.join(",")
|
params.goodsPics = params.goodsPics.join(",")
|
||||||
|
params.totalVolume = params.totalVolume || 0
|
||||||
await saveServerHand(params)
|
await saveServerHand(params)
|
||||||
await this.saveSuccessBack()
|
await this.saveSuccessBack()
|
||||||
},
|
},
|
||||||
|
|||||||
@ -64,6 +64,7 @@
|
|||||||
import { dealBtnMap } from "@/common/enum"
|
import { dealBtnMap } from "@/common/enum"
|
||||||
import { USERKEY } from "@/store/actionKey"
|
import { USERKEY } from "@/store/actionKey"
|
||||||
import * as apiService from "@/common/api"
|
import * as apiService from "@/common/api"
|
||||||
|
import { goLogin } from "@/common/loginHandle"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
computed: {
|
computed: {
|
||||||
@ -118,7 +119,7 @@
|
|||||||
},
|
},
|
||||||
async handleUnlogin() {
|
async handleUnlogin() {
|
||||||
await this.$store.dispatch(USERKEY.LOGOUT)
|
await this.$store.dispatch(USERKEY.LOGOUT)
|
||||||
this.goto(`login/login?isConfirmLogin=true`, 2)
|
goLogin()
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import {
|
|||||||
} from "@/session"
|
} from "@/session"
|
||||||
import * as apiService from "@/common/api"
|
import * as apiService from "@/common/api"
|
||||||
import { goto } from "@/common/untool"
|
import { goto } from "@/common/untool"
|
||||||
|
import { goLogin } from "@/common/loginHandle"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
state: {
|
state: {
|
||||||
@ -75,9 +76,8 @@ export default {
|
|||||||
}, options) {
|
}, options) {
|
||||||
if(!state.token) {
|
if(!state.token) {
|
||||||
console.log('缺少token')
|
console.log('缺少token')
|
||||||
// TODO
|
|
||||||
setTimeout(()=> {
|
setTimeout(()=> {
|
||||||
goto("login/login", 2)
|
goLogin()
|
||||||
}, 200)
|
}, 200)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user