function str2Obj(str){ var data = {}; kv = str.split('&'); for(i in kv){ v = kv[i].split('='); data[v[0]] = v[1]; } return data; } function pm2Post(method,args,callback){ var _args = null; if (typeof(args) == 'string'){ _args = JSON.stringify(str2Obj(args)); } else { _args = JSON.stringify(args); } var loadT = layer.msg('正在获取中...', { icon: 16, time: 0, shade: 0.3 }); $.post('/plugins/run', {name:'pm2', func:method, args:_args}, function(data) { layer.close(loadT); if (!data.status){ layer.msg(data.msg,{icon:0,time:2000,shade: [0.3, '#000']}); return; } if(typeof(callback) == 'function'){ callback(data); } },'json'); } function pm2List() { var con = '
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
名称模式端口状态重启时间CPU内存目录操作
\
'; $(".soft-man-con").html(con); pm2Post('list','', function(data){ var rdata = $.parseJSON(data.data); console.log(rdata); if (!rdata['status']){ layer.msg(rdata['msg'],{icon:2,time:2000,shade: [0.3, '#000']}); return; } var tbody = ''; var tmp = rdata['data']; for(var i=0;i启动 | '; }else{ var opt = '停止 | 重启 | 映射 | '; } tmp[i].path = tmp[i].path.replace('//',''); var status = ''; if(tmp[i].status != 'online'){ status = ''; } tbody += '\ '+tmp[i].name+'\ '+tmp[i].mode+'\ '+tmp[i].port+'\ '+status+'\ '+tmp[i].restart+'\ '+tmp[i].uptime+'\ '+tmp[i].cpu+'\ '+tmp[i].mem+'\ 打开\ \ '+opt+'删除\ \ '; } $("#pmlist").html(tbody); }); } //取版本号列表 function getNodeVersions(){ var loadT = layer.msg('正在获取版本列表...',{icon:16,time:0,shade: [0.3, '#000']}); $.get('/plugin?action=a&s=Versions&name=pm2',function(versions){ layer.close(loadT); }); pm2Post('versions', '', function(data){ console.log(data); return; var opt = ''; for(var i=0;i'+versions.list[i]+''; }else{ opt += ''; } } var con = '
\ 当前版本\ \
    \
  • 当前版本为['+versions.version+']
  • \
  • 版本切换是全局的,切换版本后可能影响您正在运行的项目
  • \
\
'; // $("#webEdit-con").html(con); $(".soft-man-con").html(con); }); } function addNode(){ var data = {path:$("input[name='path']").val(),pname:$("input[name='pname']").val(),run:$("input[name='run']").val()} if(!data.path || !data.pname || !data.run){ layer.msg('表单不完整,请检查!',{icon:2}); return; } pm2Post('add', data, function(data){ var rdata = $.parseJSON(data.data); layer.msg(rdata.msg,{icon:rdata.status?1:2}); pm2List(); }); } function delNode(pname){ safeMessage('删除项目['+pname+']','删除['+pname+']项目后,该项目将无法被访问,继续吗?',function(){ var data = "pname="+pname; pm2Post('delete', data, function(data){ var rdata = $.parseJSON(data.data); layer.msg(rdata.msg,{icon:rdata.status?1:2}); pm2List(); }); }); } function nodeStop(pname){ var data = 'pname=' + pname; pm2Post('stop', data, function(data){ var rdata = $.parseJSON(data.data); layer.msg(rdata.msg,{icon:rdata.status?1:2}); pm2List(); }); } function nodeStart(pname){ var data = 'pname=' + pname; pm2Post('start', data, function(data){ var rdata = $.parseJSON(data.data); layer.msg(rdata.msg,{icon:rdata.status?1:2}); pm2List(); }); } function onekeyCodeSite(codename, port, path){ }