(function () {
|
function resolveParentLayer() {
|
if (window.parent && window.parent.layer) {
|
return window.parent.layer;
|
}
|
if (window.top && window.top.layer) {
|
return window.top.layer;
|
}
|
return null;
|
}
|
|
function parentInputValue(id) {
|
if (!window.parent || !window.parent.document) {
|
return "";
|
}
|
var el = window.parent.document.getElementById(id);
|
return el ? (el.value || "") : "";
|
}
|
|
function closeCurrentDialog() {
|
var layer = resolveParentLayer();
|
if (!layer) {
|
window.close();
|
return;
|
}
|
var frameIndex = typeof layer.getFrameIndex === "function" ? layer.getFrameIndex(window.name) : null;
|
if (frameIndex !== null && frameIndex !== undefined && frameIndex !== -1) {
|
layer.close(frameIndex);
|
return;
|
}
|
if (typeof layer.closeAll === "function") {
|
layer.closeAll();
|
}
|
}
|
|
function handleForbidden(res) {
|
if (res && Number(res.code) === 403) {
|
top.location.href = baseUrl + "/";
|
return true;
|
}
|
return false;
|
}
|
|
new Vue({
|
el: "#passwordApp",
|
data: function () {
|
var vm = this;
|
return {
|
saving: false,
|
form: {
|
oldPassword: "",
|
password: "",
|
rePassword: ""
|
},
|
rules: {
|
oldPassword: [
|
{ required: true, message: "请输入当前密码", trigger: "blur" },
|
{
|
validator: function (rule, value, callback) {
|
var currentPassword = parentInputValue("password");
|
if (!currentPassword) {
|
callback(new Error("未读取到当前用户密码"));
|
return;
|
}
|
if (hex_md5(value || "") !== currentPassword) {
|
callback(new Error("密码不匹配"));
|
return;
|
}
|
callback();
|
},
|
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 (hex_md5(value) === parentInputValue("password")) {
|
callback(new Error("与旧密码不能相同"));
|
return;
|
}
|
callback();
|
},
|
trigger: "blur"
|
}
|
],
|
rePassword: [
|
{ required: true, message: "请再次输入新密码", trigger: "blur" },
|
{
|
validator: function (rule, value, callback) {
|
if (value !== vm.form.password) {
|
callback(new Error("密码不一致"));
|
return;
|
}
|
callback();
|
},
|
trigger: "blur"
|
}
|
]
|
}
|
};
|
},
|
methods: {
|
closeDialog: function () {
|
closeCurrentDialog();
|
},
|
handleSave: function () {
|
var vm = this;
|
vm.$refs.passwordForm.validate(function (valid) {
|
if (!valid) {
|
return false;
|
}
|
vm.submitSave();
|
return true;
|
});
|
},
|
submitSave: function () {
|
var vm = this;
|
vm.saving = true;
|
$.ajax({
|
url: baseUrl + "/user/update/auth",
|
headers: { token: localStorage.getItem("token") },
|
data: {
|
id: parentInputValue("id"),
|
password: hex_md5(vm.form.password)
|
},
|
method: "POST",
|
success: function (res) {
|
if (handleForbidden(res)) {
|
return;
|
}
|
if (Number(res.code) !== 200) {
|
vm.$message.error(res.msg || "密码修改失败");
|
return;
|
}
|
if (window.parent && window.parent.document) {
|
var passwordInput = window.parent.document.getElementById("password");
|
if (passwordInput) {
|
passwordInput.value = hex_md5(vm.form.password);
|
}
|
}
|
closeCurrentDialog();
|
vm.$alert("密码修改成功,请重新登录", "提示", {
|
confirmButtonText: "确定",
|
callback: function () {
|
localStorage.removeItem("token");
|
top.location.href = baseUrl + "/";
|
}
|
});
|
},
|
error: function () {
|
vm.$message.error("密码修改失败");
|
},
|
complete: function () {
|
vm.saving = false;
|
}
|
});
|
}
|
}
|
});
|
})();
|