Commit 9b466372 authored by leon's avatar leon

feat: change password

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