(function () {
|
function handleForbidden(res) {
|
if (res && Number(res.code) === 403) {
|
top.location.href = baseUrl + "/";
|
return true;
|
}
|
return false;
|
}
|
|
new Vue({
|
el: "#app",
|
data: function () {
|
return {
|
loading: false,
|
saving: false,
|
passwordDialogVisible: false,
|
passwordSaving: false,
|
form: {
|
id: "",
|
roleName: "",
|
username: "",
|
mobile: "",
|
password: "",
|
createTime$: ""
|
},
|
passwordForm: {
|
oldPassword: "",
|
password: "",
|
rePassword: ""
|
},
|
rules: {
|
username: [
|
{ required: true, message: "请输入名称", trigger: "blur" }
|
],
|
mobile: [
|
{ required: true, message: "请输入账号", trigger: "blur" }
|
]
|
},
|
passwordRules: {
|
oldPassword: [
|
{ required: true, message: "请输入当前密码", trigger: "blur" },
|
{
|
validator: function (rule, value, callback) {
|
if (!value) {
|
callback(new Error("请输入当前密码"));
|
return;
|
}
|
if (!this.form.password) {
|
callback(new Error("未读取到当前用户密码"));
|
return;
|
}
|
if (hex_md5(value) !== this.form.password) {
|
callback(new Error("密码不匹配"));
|
return;
|
}
|
callback();
|
}.bind(this),
|
trigger: "blur"
|
}
|
],
|
password: [
|
{ required: true, message: "请输入新密码", trigger: "blur" },
|
{
|
validator: function (rule, value, callback) {
|
if (!value) {
|
callback(new Error("请输入新密码"));
|
return;
|
}
|
if (String(value).length < 4) {
|
callback(new Error("不能少于4个字符"));
|
return;
|
}
|
if (this.form.password && hex_md5(value) === this.form.password) {
|
callback(new Error("与旧密码不能相同"));
|
return;
|
}
|
callback();
|
}.bind(this),
|
trigger: "blur"
|
}
|
],
|
rePassword: [
|
{ required: true, message: "请再次输入新密码", trigger: "blur" },
|
{
|
validator: function (rule, value, callback) {
|
if (value !== this.passwordForm.password) {
|
callback(new Error("密码不一致"));
|
return;
|
}
|
callback();
|
}.bind(this),
|
trigger: "blur"
|
}
|
]
|
}
|
};
|
},
|
created: function () {
|
this.loadDetail();
|
},
|
methods: {
|
loadDetail: function () {
|
var vm = this;
|
vm.loading = true;
|
$.ajax({
|
url: baseUrl + "/user/detail/auth",
|
headers: { token: localStorage.getItem("token") },
|
method: "POST",
|
success: function (res) {
|
if (handleForbidden(res)) {
|
return;
|
}
|
if (Number(res.code) !== 200) {
|
vm.$message.error(res.msg || "资料加载失败");
|
return;
|
}
|
var user = res.data || {};
|
vm.form = Object.assign({}, vm.form, user);
|
},
|
error: function () {
|
vm.$message.error("资料加载失败");
|
},
|
complete: function () {
|
vm.loading = false;
|
}
|
});
|
},
|
openPasswordDialog: function () {
|
this.passwordForm = {
|
oldPassword: "",
|
password: "",
|
rePassword: ""
|
};
|
this.passwordDialogVisible = true;
|
if (this.$refs.passwordForm) {
|
this.$nextTick(function () {
|
this.$refs.passwordForm.clearValidate();
|
});
|
}
|
},
|
closePasswordDialog: function () {
|
this.passwordDialogVisible = false;
|
},
|
handlePasswordSave: function () {
|
var vm = this;
|
vm.$refs.passwordForm.validate(function (valid) {
|
if (!valid) {
|
return false;
|
}
|
vm.submitPasswordSave();
|
return true;
|
});
|
},
|
submitPasswordSave: function () {
|
var vm = this;
|
vm.passwordSaving = true;
|
$.ajax({
|
url: baseUrl + "/user/update/auth",
|
headers: { token: localStorage.getItem("token") },
|
data: {
|
id: vm.form.id,
|
password: hex_md5(vm.passwordForm.password)
|
},
|
method: "POST",
|
success: function (res) {
|
if (handleForbidden(res)) {
|
return;
|
}
|
if (Number(res.code) !== 200) {
|
vm.$message.error(res.msg || "密码修改失败");
|
return;
|
}
|
vm.form.password = hex_md5(vm.passwordForm.password);
|
vm.passwordDialogVisible = false;
|
vm.$alert("密码修改成功,请重新登录", "提示", {
|
confirmButtonText: "确定",
|
callback: function () {
|
localStorage.removeItem("token");
|
top.location.href = baseUrl + "/";
|
}
|
});
|
},
|
error: function () {
|
vm.$message.error("密码修改失败");
|
},
|
complete: function () {
|
vm.passwordSaving = false;
|
}
|
});
|
},
|
handleSave: function () {
|
var vm = this;
|
vm.$refs.profileForm.validate(function (valid) {
|
if (!valid) {
|
return false;
|
}
|
vm.$confirm("确定修改资料吗?", "提示", {
|
type: "warning",
|
confirmButtonText: "确定",
|
cancelButtonText: "取消"
|
}).then(function () {
|
vm.submitSave();
|
}).catch(function () {
|
});
|
return true;
|
});
|
},
|
submitSave: function () {
|
var vm = this;
|
vm.saving = true;
|
$.ajax({
|
url: baseUrl + "/user/update/auth",
|
headers: { token: localStorage.getItem("token") },
|
data: {
|
id: vm.form.id,
|
username: vm.form.username,
|
mobile: vm.form.mobile
|
},
|
method: "POST",
|
success: function (res) {
|
if (handleForbidden(res)) {
|
return;
|
}
|
if (Number(res.code) !== 200) {
|
vm.$message.error(res.msg || "保存失败");
|
return;
|
}
|
vm.$message.success(res.msg || "修改成功");
|
localStorage.setItem("username", vm.form.username || "");
|
if (window.parent && window.parent.document) {
|
var usernameNode = window.parent.document.getElementById("person-username");
|
if (usernameNode) {
|
usernameNode.textContent = localStorage.getItem("username");
|
}
|
}
|
},
|
error: function () {
|
vm.$message.error("保存失败");
|
},
|
complete: function () {
|
vm.saving = false;
|
}
|
});
|
}
|
}
|
});
|
})();
|