1.新增修改密码 2.取消出入库供应商校验

This commit is contained in:
gyq
2024-08-03 16:49:57 +08:00
parent 6830529769
commit b495926968
5 changed files with 130 additions and 3 deletions

View File

@@ -28,3 +28,16 @@ export function logout() {
method: "delete"
});
}
/**
* 个人中心 修改密码
* @param {*} data
* @returns
*/
export function updatePass(data) {
return request({
url: "/api/users/updatePass",
method: "post",
data
});
}

View File

@@ -33,6 +33,11 @@
个人中心
</el-dropdown-item>
</router-link>
<span @click="dialogVisible = true">
<el-dropdown-item>
修改密码
</el-dropdown-item>
</span>
<span style="display:block;" @click="open">
<el-dropdown-item divided>
退出登录
@@ -41,6 +46,32 @@
</el-dropdown-menu>
</el-dropdown>
</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>
</template>
@@ -53,6 +84,8 @@ import Screenfull from '@/components/Screenfull'
import SizeSelect from '@/components/SizeSelect'
import Search from '@/components/HeaderSearch'
import Avatar from '@/assets/images/avatar.png'
import { updatePass } from '@/api/login.js'
import { encrypt } from '@/utils/rsaEncrypt'
export default {
components: {
@@ -64,11 +97,61 @@ export default {
Doc
},
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 {
Avatar: Avatar,
dialogVisible: false,
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: {
@@ -91,6 +174,36 @@ export default {
}
},
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() {
this.$store.dispatch('app/toggleSideBar')
},

View File

@@ -41,6 +41,7 @@ const user = {
localStorage.setItem("shopId", res.shopId);
localStorage.setItem("shopName", res.shopName);
localStorage.setItem("logo", res.logo);
localStorage.setItem("loginType", res.loginType);
setToken(res.token, rememberMe);
commit("SET_TOKEN", res.token);
setUserInfo(res.user, commit);

View File

@@ -37,7 +37,7 @@
</el-form-item>
<el-row>
<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-option :label="item.purveyorName" :value="item.id" v-for="item in purveyorList"
:key="item.id"></el-option>

View File

@@ -37,7 +37,7 @@
</el-form-item>
<el-row>
<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-option :label="item.purveyorName" :value="item.id" v-for="item in purveyorList"
:key="item.id"></el-option>