Commit 9b466372 authored by leon's avatar leon

feat: change password

parent 65ae887c
<template> <template>
<view> <view>
<view class="item-list"> <view class="item-list">
<block v-for="(item,index) in itemList" :key="index"> <block v-for="(item,index) in itemList" :key="index">
<view class="item-cell" @tap="selectCell(index)"> <view class="item-cell" @tap="selectCell(index)">
<view class="item-cell-text">{{item.text}}</view> <view class="item-cell-text">{{item.text}}</view>
<view class="item-cell-list-count" v-if="item.show">({{item.count}})人</view> <view class="item-cell-list-count" v-if="item.show">({{item.count}})人</view>
</view> </view>
</block> </block>
</view> </view>
<view class="subscribe" v-if="admin" @tap='subscribe()'> <view class="subscribe" v-if="admin" @tap='subscribe()'>
订阅消息 订阅消息
</view> </view>
<u-button <u-button class="my-u-block u-m-t-80" type="warning" shape="square" :ripple="true" @click="logout()">退出
class="my-u-block u-m-t-80" </u-button>
type="warning" </view>
shape="square" </template>
:ripple="true"
@click="logout()" <script>
>退出</u-button> export default {
</view> data() {
</template> return {
itemList: [],
<script> admin: false
export default { }
data() { },
return { async onLoad() {
itemList: [], var admin = uni.getStorageSync('admin')
admin: false if (admin) {
} this.admin = admin
}, }
async onLoad() { },
var admin = uni.getStorageSync('admin') onShow() {
if (admin) { this.getUserCount()
this.admin = admin },
} methods: {
}, // 获取用户信息
onShow() { getUserCount() {
this.getUserCount() var userId = uni.getStorageSync('userId')
}, var param = {
methods: { id: userId,
// 获取用户信息 authorized: false
getUserCount() { }
var userId = uni.getStorageSync('userId') var itemList = [{
var param = { 'text': '修改密码',
id: userId, 'show': false,
authorized: false 'count': '0'
} },
var itemList = [{ 'text': '修改密码', 'show': false, 'count': '0' }, {
{ 'text': '待授权', 'show': true, 'count': '0' }, 'text': '待授权',
{ 'text': '已授权', 'show': true, 'count': '0'}]; 'show': true,
'count': '0'
this.$u.api.getUserListCount(param).then(res=>{ },
const { Status, Result } = res.data {
if (Status === 'true') { 'text': '已授权',
itemList[1].count = Result.no_authorized; 'show': true,
itemList[2].count = Result.authorized; 'count': '0'
} }
];
this.itemList = itemList
}) this.$u.api.getUserListCount(param).then(res => {
}, const {
// item 点击 Status,
selectCell(index) { Result
switch(index) { } = res.data
case 0: if (Status === 'true') {
uni.navigateTo({ itemList[1].count = Result.no_authorized;
url: './password' itemList[2].count = Result.authorized;
}) }
break;
case 1: this.itemList = itemList
if (this.$data.admin) { })
uni.navigateTo({ },
url: '../customer/customer?confirmed=false' // item 点击
}) selectCell(index) {
} else { switch (index) {
this.$u.toast('您没有操作权限') case 0:
} uni.navigateTo({
break; url: './password'
case 2: })
if (this.$data.admin) { break;
uni.navigateTo({ case 1:
url: '../customer/customer?confirmed=true' if (this.$data.admin) {
}) uni.navigateTo({
} else { url: '../customer/customer?confirmed=false'
this.$u.toast('您没有操作权限') })
} } else {
break; this.$u.toast('您没有操作权限')
} }
}, break;
// 订阅消息 case 2:
subscribe() { if (this.$data.admin) {
var that = this uni.navigateTo({
uni.login({ url: '../customer/customer?confirmed=true'
provider: 'weixin', })
success: function(res) { } else {
var code = res.code this.$u.toast('您没有操作权限')
var param = { }
code: code, break;
id: uni.getStorageSync('userId') }
} },
that.$u.api.getOpenId(param).then(res=>{ // 订阅消息
const { Status, Result } = res.data subscribe() {
if (Status === 'true') { var that = this
} uni.login({
}) provider: 'weixin',
success: function(res) {
} var code = res.code
}) var param = {
uni.requestSubscribeMessage({ code: code,
tmplIds: ['GSPZ_GSbsgfRSu8wugGPe2zqmReDbY8yeIEqd8pPPM8'], id: uni.getStorageSync('userId')
success (res) { }
console.log('授权结果' + res['GSPZ_GSbsgfRSu8wugGPe2zqmReDbY8yeIEqd8pPPM8']) that.$u.api.getOpenId(param).then(res => {
} const {
}) Status,
}, Result
// 退出登录 } = res.data
logout() { if (Status === 'true') {}
uni.removeStorageSync('userId'); })
uni.removeStorageSync('username');
uni.removeStorageSync('appId'); }
uni.removeStorageSync('authorized'); })
uni.removeStorageSync('admin'); uni.requestSubscribeMessage({
uni.removeStorageSync('show'); tmplIds: ['GSPZ_GSbsgfRSu8wugGPe2zqmReDbY8yeIEqd8pPPM8'],
uni.clearStorage(); success(res) {
console.log('授权结果' + res['GSPZ_GSbsgfRSu8wugGPe2zqmReDbY8yeIEqd8pPPM8'])
uni.reLaunch({ }
url: '/pages/index/index' })
}) },
} // 退出登录
logout() {
} uni.removeStorageSync('userId');
} uni.removeStorageSync('username');
</script> uni.removeStorageSync('appId');
uni.removeStorageSync('authorized');
<style lang="scss" scoped> uni.removeStorageSync('admin');
.item-list { uni.removeStorageSync('show');
display: flex; uni.clearStorage();
flex-direction: column;
uni.reLaunch({
} url: '/pages/index/index'
.item-cell { })
display: flex; }
position: relative;
width: 100%; }
height: 100rpx; }
align-items: center; </script>
border-bottom: 0.1rpx solid #cccccc;
<style lang="scss" scoped>
} .item-list {
.item-cell-text { display: flex;
margin-left: 20rpx; flex-direction: column;
font-size: 28rpx;
} }
.item-cell-list-count {
margin-left: 300rpx; .item-cell {
font-size: 28rpx; display: flex;
} position: relative;
.subscribe { width: 100%;
width: 30%; height: 100rpx;
text-align: center; align-items: center;
font-size: 30rpx; border-bottom: 0.1rpx solid #cccccc;
border: 0.1rpx solid #cccccc;
border-radius: 10rpx; }
margin: 60rpx;
padding: 25rpx 0rpx 25rpx 0rpx; .item-cell-text {
display: flex; margin-left: 20rpx;
justify-content: center; font-size: 28rpx;
margin-left: 35%; }
}
</style> .item-cell-list-count {
\ No newline at end of file margin-left: 300rpx;
font-size: 28rpx;
}
.subscribe {
width: 30%;
text-align: center;
font-size: 30rpx;
border: 0.1rpx solid #cccccc;
border-radius: 10rpx;
margin: 60rpx;
padding: 25rpx 0rpx 25rpx 0rpx;
display: flex;
justify-content: center;
margin-left: 35%;
}
</style>
<template> <template>
<view class="wrap"> <view class="wrap">
<view class="content"> <view class="content">
<u-form <u-form ref="uForm" :model="params" :error-type="['toast']" :label-width="120">
ref="uForm" <u-form-item label="新密码" prop="password1">
:model="params" <u-input v-model="params.password1" placeholder="请输入新密码" type="password" :password-icon="true" />
:error-type="['toast']" </u-form-item>
:label-width="120" <u-form-item label="确认密码" prop="password2">
> <u-input v-model="params.password2" placeholder="请确认新密码" type="password" :password-icon="true" />
<u-form-item label="新密码" prop="password1"> </u-form-item>
<u-input </u-form>
v-model="params.password1" <u-button class="my-u-block u-m-t-80" type="warning" shape="square" :ripple="true" @click="submit()"
placeholder="请输入新密码" :disabled="!submitDisabled">确认</u-button>
type="password" </view>
:password-icon="true" </view>
/> </template>
</u-form-item>
<u-form-item label="确认密码" prop="password2"> <script>
<u-input export default {
v-model="params.password2" data() {
placeholder="请确认新密码" return {
type="password" params: {
:password-icon="true" appId: wx.getAccountInfoSync().miniProgram.appId,
/> password1: '',
</u-form-item> password2: ''
</u-form> },
<u-button rules: {
class="my-u-block u-m-t-80" password1: [{
type="warning" required: true,
shape="square" message: '请输入新密码',
:ripple="true" trigger: 'blur'
@click="submit()" }],
:disabled="!submitDisabled" password2: [{
>确认</u-button> required: true,
</view> message: '请确认新密码',
</view> trigger: 'blur'
</template> }]
}
<script> }
export default { },
data() { computed: {
return { submitDisabled() {
params: { return this.params.password1 && this.params.password2
appId: wx.getAccountInfoSync().miniProgram.appId, }
password1: '', },
password2: '' methods: {
}, // 登录
rules: { submit() {
password1: [ if (this.params.password1 != this.params.password2) {
{ required: true, message: '请输入新密码', trigger: 'blur' } this.$u.toast('两次输入密码不一致')
], return
password2: [ }
{ required: true, message: '请确认新密码', trigger: 'blur' } this.$refs.uForm.validate(async valid => {
] if (valid) {
} const params = {
} appId: wx.getAccountInfoSync().miniProgram.appId,
}, password: this.params.password1,
computed: { id: uni.getStorageSync('userId')
submitDisabled() { }
return this.params.password1 && this.params.password2 let res = await this.$u.api.changePassword(params)
} const {
}, Status,
methods: { Result
// 登录 } = res.data
submit() { if (Status === 'true') {
if (this.params.password1 != this.params.password2) { this.$u.vuex('vuex_token', `${res.token_type} ${res.access_token}`)
this.$u.toast('两次输入密码不一致') this.$u.toast('密码修改成功')
return // 登录成功后返回来源页面
} let timer = setTimeout(() => {
this.$refs.uForm.validate(async valid => { uni.navigateBack({
if (valid) {
let res = await this.$u.api.changePassword(this.params) })
const { Status, Result } = res.data clearTimeout(timer)
if (Status === 'true') { }, 500)
this.$u.vuex('vuex_token', `${res.token_type} ${res.access_token}`) } else {
this.$u.toast('密码修改成功') this.$u.toast('修改失败')
// 登录成功后返回来源页面 }
let timer = setTimeout(() => { } else {
uni.navigateBack({ console.log('修改失败');
}
}) })
clearTimeout(timer) }
}, 500) },
} else { onReady() {
this.$u.toast('修改失败') this.$refs.uForm.setRules(this.rules)
} }
} else { }
console.log('修改失败'); </script>
}
}) <style>
}
},
onReady() {
this.$refs.uForm.setRules(this.rules)
}
}
</script>
<style>
</style> </style>
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