From ea7457be6870e35cd385e163ca9bba26d7621d66 Mon Sep 17 00:00:00 2001 From: yangan <yangan0921@163.com> Date: 星期四, 27 二月 2025 17:08:06 +0800 Subject: [PATCH] feat:无人值守h5增加门卫端 --- pages/login/userPassword.vue | 309 +++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 236 insertions(+), 73 deletions(-) diff --git a/pages/login/userPassword.vue b/pages/login/userPassword.vue index 92bd04f..31d12eb 100644 --- a/pages/login/userPassword.vue +++ b/pages/login/userPassword.vue @@ -2,100 +2,263 @@ <view> <view class="list"> <view class="list-call"> - <u--input - v-model="username" + <!-- #ifdef MP-WEIXIN --> + <u--input v-model="username" clearable maxlength="32" type="text" - placeholder="璇疯緭鍏ョ敤鎴峰悕" + placeholder="璇疯緭鍏ユ墜鏈哄彿" prefixIcon="account" - prefixIconStyle="font-size: 22px;color: #909399" - ></u--input> + prefixIconStyle="font-size: 22px;color: #909399"></u--input> + <!-- #endif --> + <!-- #ifdef H5 --> + <customPagination + style="width:100%; height: 60rpx; font-size: 30rpx;" + :options="userList" + :value="username" + v-model="username" + @changeInput="changeInput2" + @input="handleInput2" + :placeholder="'璇疯緭鍏ョ櫥褰曡处鍙�'" + ></customPagination> + <!-- #endif --> </view> + <view class="list-call"> - <u--input - v-model="password" + <u--input v-model="password" clearable maxlength="32" type="password" placeholder="璇疯緭鍏ュ瘑鐮�" prefixIcon="lock" - prefixIconStyle="font-size: 22px;color: #909399" - ></u--input> + prefixIconStyle="font-size: 22px;color: #909399"></u--input> </view> </view> - <view class="loginBtn"><u-button type="primary" text="鐧诲綍" @click="submit()"></u-button></view> + <!-- 璁颁綇瀵嗙爜 --> + <!-- #ifdef H5 --> + <view class="jizhu"> + <view> + <u-checkbox-group + v-model="isJizhu" + placement="column" + @change="checkboxChange" + > + <u-checkbox + :checked="isChecked" + label="璁颁綇瀵嗙爜" :size='35' :iconSize="35" :labelSize="30" name="1" + placement="row"> + </u-checkbox> + </u-checkbox-group> + </view> + </view> + <!-- #endif --> + <view class="loginBtn"><u-button type="primary" + :text="btnText == 1 ? '缁戝畾' : '鐧诲綍'" + @click="submit()" + :loading="submitLoading"></u-button></view> </view> </template> <script> -import { apiLoginPassword } from '@/api/publicInterface.js'; -import { mapMutations } from 'vuex'; -import { setToken, setRefreshToken, setUsernameKey, setCustomerId, redirectHome } from '@/utils/status.js'; -export default { - name: 'userPassword', - data() { - return { - // username: 'appUser', - // username:'siJi1', - username:'siJi2', - password: '123456', - remember: true, - baseUrl: '' - }; - }, - methods: { - ...mapMutations(['setUserTabbar']), - //鐧诲綍 - async submit() { - //琛ㄥ崟鏍¢獙 - if (this.username.length === 0) { - this.$u.toast('璇疯緭鍏ヨ处鍙�'); - return; + import { apiLoginPassword } from '@/api/publicInterface.js'; + import { mapMutations } from 'vuex'; + import customPagination from './user.vue' + import { setName, setToken, setRefreshToken, setUsernameKey, setCustomerId, redirectHome } from '@/utils/status.js'; + export default { + name: 'userPassword', + props: { + //0:姝e父锛�1锛氬井淇$粦瀹� + btnText: { + type: Number, + default: 0 + }, + userList: { + type: Array, + default: () => { + return []; + } } - if (this.password.length === 0) { - this.$u.toast('璇疯緭鍏ュ瘑鐮�'); - return; - } - let grant_type = 'password' - //鐧诲綍鎺ュ彛 - await apiLoginPassword({ - username: this.username, - password: this.password, - grant_type, - scope: 'server' - }) - .then(res => { - this.$u.toast('鎭枩鎮紝鐧诲綍鎴愬姛锛�'); - - // 鐧婚檰鎴愬姛锛屽瓨鍌ㄧ浉鍏充俊鎭� - setToken(res.access_token); - setRefreshToken(res.refresh_token); - setUsernameKey(res.username); - - //鏌ヨ鐢ㄦ埛璇︾粏淇℃伅骞跺偍瀛� - this.$reqGet('getUserEntity').then(res => { - this.setUserTabbar(res.data.type); - uni.setStorageSync('roleType', res.data.type); - setCustomerId(res.data.customerid); - - //璺宠浆椤甸潰 - this.$nextTick(() => { - redirectHome(); - }); - }); - }) - .catch(e => { - this.$u.toast(e); + }, + components: { + customPagination + }, + data() { + return { + username: '', // 瀹㈡埛 + // username:'13333333331',//璐т唬 + // username: '13333333332',// 鍙告満 + password: '', + isChecked:false, + remember: true, + isJizhu: uni.getStorageSync('remberPassWord').username ? ['1'] : false, + username: uni.getStorageSync('remberPassWord').username || '',//鎵胯繍鍟� + password: uni.getStorageSync('remberPassWord').password || '', + baseUrl: '', + weXinisLoginFlag:[1,2,3], //寰俊 + H5IsLoginFlag:[5,6,7], //h5 + submitLoading: false + }; + }, + methods: { + ...mapMutations(['setUserTabbar']), + //鐧诲綍 + async submit() { + uni.showLoading({ + title: '鐧诲綍涓�...' }); + //琛ㄥ崟鏍¢獙 + if (this.username.length === 0) { + this.$u.toast('璇疯緭鍏ヨ处鍙�'); + return; + } + if (this.password.length === 0) { + this.$u.toast('璇疯緭鍏ュ瘑鐮�'); + return; + } + let grant_type = 'password'; + //鐧诲綍鎺ュ彛 + this.submitLoading = true + await apiLoginPassword({ + username: this.username, + password: this.password, + grant_type, + scope: 'server' + }) + .then(res => { + this.submitLoading = false + setToken(res.access_token); + setRefreshToken(res.refresh_token); + if (this.btnText == 0) { + this.submitLoading = false + if (res.code != 1) { + // 鐧婚檰鎴愬姛锛屽瓨鍌ㄧ浉鍏充俊鎭� + setToken(res.access_token); + setRefreshToken(res.refresh_token); + setUsernameKey(res.username); + //鏌ヨ鐢ㄦ埛璇︾粏淇℃伅骞跺偍瀛� + this.$reqGet('getUserEntity') + .then(res => { + + // #ifdef H5 + if(this.weXinisLoginFlag.includes(res.data.type)) { + console.log('瑙﹀彂鐧诲綍瑙掕壊') + this.$u.toast('褰撳墠瑙掕壊璇峰墠寰�灏忕▼搴忕櫥褰�') + return ; + + } + //#endif + this.$u.toast('鐧诲綍鎴愬姛'); + // #ifdef H5 + if(this.isJizhu.length){ //璁颁綇瀵嗙爜 + uni.setStorageSync('remberPassWord',{ + username: this.username, + password: this.password, + }); + }else{ + uni.setStorageSync('remberPassWord',{ + username: this.username, + password: '', + }); + } + //#endif + this.submitLoading = false + this.getLoginInfo(); // 璁板綍鐧诲綍淇℃伅 + this.setUserTabbar(res.data.type); + uni.setStorageSync('roleType', res.data.type); + uni.setStorageSync("userId", res.data.userId) + uni.setStorageSync("carNo", res.data.carNo) + uni.setStorageSync("userInfo", res.data) + setCustomerId(res.data.customerid); + setName(res.name); + let data=uni.getStorageSync('userList')?JSON.parse(uni.getStorageSync('userList')):[]; + let id = data.length + 1; + if (data.filter(item=> item.username == this.username).length == 0){ + data.push({username: this.username,password: this.password,type:res.data.type}) + } + uni.setStorageSync("userList", JSON.stringify(data)) + uni.hideLoading(); + if(res.data.forcePassword == 1) { + uni.navigateTo({ + url: '/pages/login/resetPassword/resetPassword' + }) + }else { + //璺宠浆椤甸潰 + this.$nextTick(() => { + redirectHome(); + }); + } + }) + .catch(err => { + this.submitLoading = false + this.$u.toast('鐧诲綍寮傚父锛�'); + console.log(err); + }); + } else { + uni.hideLoading(); + this.$u.toast(res.msg); + } + } else { + console.log('寰俊缁戝畾锛燂紵锛燂紵锛�') + uni.login({ + success: res => { + if (res.code) { + uni.setStorageSync('bindcode', res.code); + } + if (uni.getStorageSync('bindcode')) { + this.$reqPost('wxBind', { state: 'MINI', code: uni.getStorageSync('bindcode') }, + 'params').then(res => { + uni.hideLoading(); + if (res.code == 0) { + this.$u.toast('缁戝畾鎴愬姛锛佸嵆灏嗗洖鍒扮櫥褰曢〉锛�'); + setTimeout(() => { + uni.navigateBack(); + }, 1000); + } else { + this.$u.toast(res.msg ? res.msg : '缁戝畾澶辫触'); + } + }).finally(() => { + this.submitLoading = false; + }); + } + } + }); + this.submitLoading = false + + } + }).catch(e => { + this.submitLoading = false + this.$u.toast(e); + }); + + }, + //璁板綍鐧诲綍淇℃伅 + getLoginInfo(){ + this.$reqPost('setApplogonTime').then((res) => { + + }) + }, + checkboxChange(val){ + console.log(val,'isJz') + } } - } -}; + }; </script> <style lang="scss"> -@import 'index.scss'; -.dengluBtn { - margin-top: 80rpx; -} + /* #ifdef H5 */ + .loginBtn{ + width: 80%; + margin: 0 auto; + } + /* #endif */ + @import 'index.scss'; + + .dengluBtn { + margin-top: 80rpx; + } + .jizhu{ + padding: 40rpx 70rpx 40rpx 70rpx; + display: flex; + justify-content: flex-end; + } </style> -- Gitblit v1.9.1