1.新增修改密码 2.取消出入库供应商校验
This commit is contained in:
@@ -28,3 +28,16 @@ export function logout() {
|
|||||||
method: "delete"
|
method: "delete"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 个人中心 修改密码
|
||||||
|
* @param {*} data
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
export function updatePass(data) {
|
||||||
|
return request({
|
||||||
|
url: "/api/users/updatePass",
|
||||||
|
method: "post",
|
||||||
|
data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|||||||
@@ -33,6 +33,11 @@
|
|||||||
个人中心
|
个人中心
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
</router-link>
|
</router-link>
|
||||||
|
<span @click="dialogVisible = true">
|
||||||
|
<el-dropdown-item>
|
||||||
|
修改密码
|
||||||
|
</el-dropdown-item>
|
||||||
|
</span>
|
||||||
<span style="display:block;" @click="open">
|
<span style="display:block;" @click="open">
|
||||||
<el-dropdown-item divided>
|
<el-dropdown-item divided>
|
||||||
退出登录
|
退出登录
|
||||||
@@ -41,6 +46,32 @@
|
|||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
</el-dropdown>
|
</el-dropdown>
|
||||||
</div>
|
</div>
|
||||||
|
<el-dialog title="修改密码" modal-append-to-body append-to-body :visible.sync="dialogVisible" width="400px">
|
||||||
|
<el-form ref="form" :model="form" :rules="rules">
|
||||||
|
<el-form-item label="旧密码" prop="oldPass">
|
||||||
|
<el-input :type="ip1Type" v-model="form.oldPass" placeholder="请输入旧密码">
|
||||||
|
<i slot="suffix" :class="`el-input__icon ${ip1Type == 'text' ? 'el-icon-view' : 'el-icon-remove-outline'}`"
|
||||||
|
@click.stop="changeInputType('ip1Type')"></i>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="新密码" prop="newPass">
|
||||||
|
<el-input :type="ip2Type" v-model="form.newPass" placeholder="请输入新密码">
|
||||||
|
<i slot="suffix" :class="`el-input__icon ${ip2Type == 'text' ? 'el-icon-view' : 'el-icon-remove-outline'}`"
|
||||||
|
@click.stop="changeInputType('ip2Type')"></i>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="确认新密码" prop="rnewPass">
|
||||||
|
<el-input :type="ip3Type" v-model="form.rnewPass" placeholder="请再次输入新密码">
|
||||||
|
<i slot="suffix" :class="`el-input__icon ${ip3Type == 'text' ? 'el-icon-view' : 'el-icon-remove-outline'}`"
|
||||||
|
@click.stop="changeInputType('ip3Type')"></i>
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<span slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||||
|
<el-button type="primary" :loading="formLoading" @click="submitHandle">确 定</el-button>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -53,6 +84,8 @@ import Screenfull from '@/components/Screenfull'
|
|||||||
import SizeSelect from '@/components/SizeSelect'
|
import SizeSelect from '@/components/SizeSelect'
|
||||||
import Search from '@/components/HeaderSearch'
|
import Search from '@/components/HeaderSearch'
|
||||||
import Avatar from '@/assets/images/avatar.png'
|
import Avatar from '@/assets/images/avatar.png'
|
||||||
|
import { updatePass } from '@/api/login.js'
|
||||||
|
import { encrypt } from '@/utils/rsaEncrypt'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
@@ -64,11 +97,61 @@ export default {
|
|||||||
Doc
|
Doc
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
const validateNewPass = (rule, value, callback) => {
|
||||||
|
if (!this.form.newPass) {
|
||||||
|
callback(new Error(' '))
|
||||||
|
} else if (this.form.newPass === this.form.oldPass) {
|
||||||
|
callback(new Error('请输入与旧密码不同的新密码'))
|
||||||
|
} else {
|
||||||
|
callback()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const validateRnewPass = (rule, value, callback) => {
|
||||||
|
if (!this.form.rnewPass) {
|
||||||
|
callback(new Error(' '))
|
||||||
|
} else if (this.form.rnewPass !== this.form.newPass) {
|
||||||
|
callback(new Error('两次密码输入不一致'))
|
||||||
|
} else {
|
||||||
|
callback()
|
||||||
|
}
|
||||||
|
}
|
||||||
return {
|
return {
|
||||||
Avatar: Avatar,
|
Avatar: Avatar,
|
||||||
dialogVisible: false,
|
dialogVisible: false,
|
||||||
logo: localStorage.getItem('logo'),
|
logo: localStorage.getItem('logo'),
|
||||||
shopName: localStorage.getItem('shopName')
|
shopName: localStorage.getItem('shopName'),
|
||||||
|
ip1Type: 'password',
|
||||||
|
ip2Type: 'password',
|
||||||
|
ip3Type: 'password',
|
||||||
|
formLoading: false,
|
||||||
|
form: {
|
||||||
|
oldPass: '',
|
||||||
|
newPass: '',
|
||||||
|
rnewPass: ''
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
oldPass: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: ' ',
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
newPass: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
validator: validateNewPass,
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
rnewPass: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
validator: validateRnewPass,
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@@ -91,6 +174,36 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
// 修改密码框类型
|
||||||
|
changeInputType(key) {
|
||||||
|
if (this[key] == 'text') {
|
||||||
|
this[key] = 'password'
|
||||||
|
} else {
|
||||||
|
this[key] = 'text'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 提交修改密码
|
||||||
|
submitHandle() {
|
||||||
|
this.$refs.form.validate(async vaild => {
|
||||||
|
if (vaild) {
|
||||||
|
try {
|
||||||
|
this.formLoading = true
|
||||||
|
const res = await updatePass({
|
||||||
|
loginType: localStorage.getItem('loginType'),
|
||||||
|
oldPass: encrypt(this.form.oldPass),
|
||||||
|
newPass: this.form.newPass
|
||||||
|
})
|
||||||
|
this.$notify.success('修改成功,请重新登陆')
|
||||||
|
setTimeout(() => {
|
||||||
|
this.logout()
|
||||||
|
}, 1000)
|
||||||
|
} catch (error) {
|
||||||
|
this.formLoading = false
|
||||||
|
console.log(error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
toggleSideBar() {
|
toggleSideBar() {
|
||||||
this.$store.dispatch('app/toggleSideBar')
|
this.$store.dispatch('app/toggleSideBar')
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ const user = {
|
|||||||
localStorage.setItem("shopId", res.shopId);
|
localStorage.setItem("shopId", res.shopId);
|
||||||
localStorage.setItem("shopName", res.shopName);
|
localStorage.setItem("shopName", res.shopName);
|
||||||
localStorage.setItem("logo", res.logo);
|
localStorage.setItem("logo", res.logo);
|
||||||
|
localStorage.setItem("loginType", res.loginType);
|
||||||
setToken(res.token, rememberMe);
|
setToken(res.token, rememberMe);
|
||||||
commit("SET_TOKEN", res.token);
|
commit("SET_TOKEN", res.token);
|
||||||
setUserInfo(res.user, commit);
|
setUserInfo(res.user, commit);
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8" v-if="shopTypes[shopTypesActive].value == 'purveyor'">
|
<el-col :span="8" v-if="shopTypes[shopTypesActive].value == 'purveyor'">
|
||||||
<el-form-item label="供应商" prop="purveyorId">
|
<el-form-item label="供应商">
|
||||||
<el-select v-model="queryForm.purveyorId" placeholder="请选择供应商" style="width: 220px;">
|
<el-select v-model="queryForm.purveyorId" placeholder="请选择供应商" style="width: 220px;">
|
||||||
<el-option :label="item.purveyorName" :value="item.id" v-for="item in purveyorList"
|
<el-option :label="item.purveyorName" :value="item.id" v-for="item in purveyorList"
|
||||||
:key="item.id"></el-option>
|
:key="item.id"></el-option>
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8" v-if="shopTypes[shopTypesActive].value == 'reject'">
|
<el-col :span="8" v-if="shopTypes[shopTypesActive].value == 'reject'">
|
||||||
<el-form-item label="供应商" prop="purveyorId">
|
<el-form-item label="供应商">
|
||||||
<el-select v-model="queryForm.purveyorId" placeholder="请选择供应商" style="width: 220px;">
|
<el-select v-model="queryForm.purveyorId" placeholder="请选择供应商" style="width: 220px;">
|
||||||
<el-option :label="item.purveyorName" :value="item.id" v-for="item in purveyorList"
|
<el-option :label="item.purveyorName" :value="item.id" v-for="item in purveyorList"
|
||||||
:key="item.id"></el-option>
|
:key="item.id"></el-option>
|
||||||
|
|||||||
Reference in New Issue
Block a user