Files

238 lines
5.8 KiB
JavaScript

var app=new Vue({
el:"#app",
data:{
menuActive:"8005",
edittitle:'',
menuAOpeneds:[],
lists:[],
isloading:true,
datatxt:"数据加载中",
iseditshow:false,
one:{
name:'',
desc:"",
issys:0,
permissions:[],
id:null
},
oneRulue:{
name:[
{ required: true, message: '请输入角色名称', trigger: 'blur' },
{ type: 'string', min: 2, message: '角色名称至少2字符', trigger: 'blur' },
{ type: 'string', max: 15, message: '角色名称最多15符', trigger: 'blur' }
]
},
ac:{
type:'add',
index:null
},
permissions:[],
selpss:[],
isedit:false
},
created: function() {
var that=this;
this.init();
},
methods: {
init:function(){
this.getallpermissions();
this.getlist();
},
edit:function(index,type){
this.selpss=[];
this.isedit=false;
if(index>-1){
this.edittitle="修改角色";
if(type){
this.isedit=true;
this.edittitle="查看角色";
}
this.ac={
type:'edit',
index:index
}
var one={
name:this.lists[index].name,
desc:this.lists[index].desc,
issys:this.lists[index].issys,
permissions:this.lists[index].permissions,
id:this.lists[index].id
}
var p=this.lists[index].permissions;
for(var i=0;i<p.length;i++){
this.selpss.push(p[i])
}
//=one.permissions;
this.one=one
}else{
this.edittitle="添加角色";
this.ac={
type:'add',
index:null
}
this.one={
name:'',
desc:"",
permissions:[]
}
}
this.iseditshow=true;
},
editSub:function(name){
this.$refs[name].validate((valid) => {
if (valid) {
var url="/okadmin/api/roles";
var type="post";
var oktxt="角色添加";
this.one.permissions=[];
for(var i=0;i<this.selpss.length;i++){
this.one.permissions.push(this.selpss[i]);
}
if(this.ac.type=="edit"){
url="/okadmin/api/roles/"+this.lists[this.ac.index].id;
type="patch";
oktxt="角色修改";
}
var query=this.one;
$.ajax({
url: url,
type: type,
dataType: "json",
contentType: "application/json",
data:JSON.stringify(query),
success: function(data) {
this.$message.success(oktxt+"成功");
if(this.ac.type=="add"){
this.lists.push(data.data);
}else{
this.lists.splice(this.ac.index,1,data.data);
}
this.iseditshow=false;
}.bind(this),
error:function(err){
}.bind(this)
});
}
})
},
del:function(index){
this.ac.index=index;
this.$confirm('此操作将永久删除角色【'+this.lists[this.ac.index].name+'】, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
$.ajax({
url: "/okadmin/api/roles/"+this.lists[this.ac.index].id,
type: "delete",
dataType: "json",
contentType: "application/json",
data:"",
success: function(data) {
this.$message.success("删除成功");
this.lists.splice(this.ac.index,1);
}.bind(this),
error:function(err){
}.bind(this)
});
}).catch(() => {
});
},
getlist:function(){
this.isloading=true;
this.lists=[];
this.datatxt="数据加载中";
$.ajax({
url: "/okadmin/api/roles",
type: "get",
dataType: "json",
contentType: "application/json",
data:"",
success: function(data) {
this.isloading=false;
this.lists=data.data;
if(this.lists.length<1){
this.datatxt="没有数据";
}
}.bind(this),
error:function(err){
}.bind(this)
});
},
getallpermissions:function(){
$.ajax({
url: "/okadmin/api/allPermissions",
type: "get",
dataType: "json",
contentType: "application/json",
data:"",
success: function(data) {
this.isloading=false;
this.permissions=data.data;
}.bind(this),
error:function(err){
}.bind(this)
});
},
selAp:function(id){
if(comm.isArrayCon(this.selpss,id)){
for(var i=0;i<this.selpss.length;i++){
if(id==this.selpss[i]){
this.selpss.splice(i,1)
}
}
}else{
this.selpss.push(id);
}
//console.log(JSON.stringify(this.one.permissions));
},
uppassSub:function(formName){
this.$refs[formName].validate((valid) => {
if (valid) {
var old=comm.sTrim(comm.uppassForm.oldpass)
var newp=comm.sTrim(comm.uppassForm.newpass)
var renewp=comm.sTrim(comm.uppassForm.repass)
var query={
password:old,
newPassword:newp
};
$.ajax({
url: "/okadmin/uppass",
type: "post",
dataType: "json",
contentType: "application/json",
data:JSON.stringify(query),
success: function(data) {
comm.uppassForm.newpass="";
comm.uppassForm.oldpass="";
comm.uppassForm.renewpass="";
comm.uppassForm=false;
this.$message.success("密码修改成功。请使用新密码重新登录!");
setTimeout(function () {
window.location.href="/okadmin/loginout";
}, 3000)
}.bind(this),
error:function(err){
this.$message.error(JSON.parse(err.responseText).msg);
}.bind(this)
});
} else {
return false;
}
});
},
}
})