123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- <template>
- <view class="pages">
- <u-navbar
- title="修改密码"
- :placeholder="true"
- :autoBack="true"
- :safeAreaInsetTop="true"
- bgColor="#ED0000"
- :titleStyle="{color:'#fff'}"
- leftIconColor="#fff"
- >
- </u-navbar>
- <view class="form-wrap">
- <u--form labelPosition="left" labelWidth="70px" :model="form" :rules="rules" ref="uForm" >
- <u-form-item label="旧密码" prop="oldPassword" borderBottom ref="oldPassword" >
- <u--input
- v-model="form.oldPassword"
- border="none"
- placeholder="请输入旧密码"
- :customStyle="inputCustomStyle"
- ></u--input>
- </u-form-item>
- <u-form-item label="新密码" prop="password" borderBottom ref="password" >
- <u--input
- v-model="form.password"
- border="none"
- :password="true"
- placeholder="请输入新密码"
- :customStyle="inputCustomStyle"
- ></u--input>
- </u-form-item>
- <u-form-item label="确认密码" prop="comfpassword" :borderBottom="false" ref="comfpassword" >
- <u--input
- v-model="form.comfpassword"
- border="none"
- :password="true"
- placeholder="请确认新密码"
- :customStyle="inputCustomStyle"
- ></u--input>
- </u-form-item>
- </u--form>
- </view>
- <u-button
- @click="submit"
- text="确定"
- type="primary"
- shape="circle"
- :customStyle="{'margin':'60rpx 32rpx',height:'98rpx','box-sizing':'border-box',width:'auto'}"
- color="linear-gradient(90deg, #FF7979 0%, #ED0000 100%)">
- </u-button>
- </view>
- </template>
- <script>
- export default {
-
- data() {
- return {
- form:{
- oldPassword:'',
- password:'',
- comfpassword:'',
- },
-
- rules: {
- oldPassword: {
- type: 'string',
- required: true,
- message: '请输入旧密码',
- trigger: ['blur', 'change']
- },
- password: [
- {
- type: 'string',
- required: true,
- message: '请输入新密码',
- trigger: ['blur', 'change']
- },
- {
- min: 6,
- max: 10,
- message: '长度在6-10个字符之间',
- trigger: 'blur',
- },
- ],
- comfpassword: [
- {
- type: 'string',
- required: true,
- message: '请确认密码',
- trigger: ['blur', 'change']
- },
- {
- validator: (rule, value, callback) => {
- if (value === '') {
- callback(new Error('请再次输入密码'));
- } else if (value !== this.form.password) {
- callback(new Error('两次输入密码不一致!'));
- } else {
- callback();
- }
- },
- trigger: 'blur',
- }
- ],
- },
- inputCustomStyle:{
- height:'98rpx',
- 'border-color':'#eee',
- 'padding-left':'30rpx',
- 'box-sizing':'border-box',
- }
- }
- },
- onShow() {
- },
- onReady() {
- this.$refs.uForm.setRules(this.rules)
- },
- onLoad() {
- },
- methods: {
- chekPass(){
- console.log('chekPass---',this.form);
- return new Promise((resolve, reject)=>{
- if(!password){
- reject('needAuth');
- }
- })
- },
- async submit(){
- let that = this;
- // console.log('form',this.form);
- this.$refs.uForm.validate().then(res => {
- // let chekPassResult = await this.chekPass();
- // return
- // uni.$u.toast('校验通过')
- const param = {
- oldPassword:this.form.oldPassword,
- newPassword:this.form.password
- }
- this.$u.api.updatePassword(param).then(res=>{
- // console.log('res',res.data);
- this.$u.vuex('vuex_user_info', res.data);
- uni.showToast({
- title:res.msg,
- icon:'success'
- })
- setTimeout(()=>{
- that.redirectToAuth();
- },2000)
- // uni.reLaunch({url: this.backUrl});
- }).catch(err=>{
- console.log('login',err);
- })
- }).catch(errors => {
- uni.$u.toast('请正确填写表单')
- })
- },
- redirectToAuth() {
- try{
- window.location.href = this.$commonConfig.authUrl;
- }catch(e){
- alert(`redirectToAuth e:${e}`)
- }
-
- },
- }
- }
- </script>
- <style>
- page{
- background-color: #F4F5F7;
- }
- </style>
- <style lang="scss" scoped>
- .form-wrap{
- margin: 40rpx 32rpx;
- padding: 20rpx 40rpx;
- background-color: #fff;
- box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(226,226,226,0.5);
- border-radius: 24rpx;
- }
- </style>
|