Commit 5cb49587 by 刘泽奇

Merge branch 'bigdata' of gitlab.gongsibao.com:jiangyong/zhichan into bigdata

parents a6a17374 3ae75610
node_modules/
\ No newline at end of file
...@@ -7,6 +7,7 @@ const logCtl = system.getObject("web.common.oplogCtl"); ...@@ -7,6 +7,7 @@ const logCtl = system.getObject("web.common.oplogCtl");
class OrgCtl extends CtlBase{ class OrgCtl extends CtlBase{
constructor(){ constructor(){
super("auth",CtlBase.getServiceName(OrgCtl)); super("auth",CtlBase.getServiceName(OrgCtl));
this.compSvr=system.getObject("service.common.companySve");
} }
//检查是否已经存在主要岗位 //检查是否已经存在主要岗位
async checkMainPosition(p,q,req){ async checkMainPosition(p,q,req){
...@@ -19,6 +20,7 @@ class OrgCtl extends CtlBase{ ...@@ -19,6 +20,7 @@ class OrgCtl extends CtlBase{
return system.getResult(rtn); return system.getResult(rtn);
} }
async create(p,q,req){ async create(p,q,req){
return super.create(p,q,req); return super.create(p,q,req);
} }
async delete(p,q,req){ async delete(p,q,req){
...@@ -28,7 +30,11 @@ class OrgCtl extends CtlBase{ ...@@ -28,7 +30,11 @@ class OrgCtl extends CtlBase{
return super.update(p,q,req); return super.update(p,q,req);
} }
async initOrgs(p,q,req){ async initOrgs(p,q,req){
var tocompany=req.session.tocompany; var tocompany=req.session.tocompany;
var cmkey=p.comkey;
if(cmkey){
tocompany =await this.compSvr.findOne({companykey:cmkey});
}
//按照公司名称查询,是否存在节点,不存在,就创建根节点 //按照公司名称查询,是否存在节点,不存在,就创建根节点
//如果存在就按照名称查询出当前和她的字节点 //如果存在就按照名称查询出当前和她的字节点
var rtn=await this.service.initOrgs(tocompany,req.appid); var rtn=await this.service.initOrgs(tocompany,req.appid);
......
...@@ -37,6 +37,12 @@ class CompanyCtl extends CtlBase { ...@@ -37,6 +37,12 @@ class CompanyCtl extends CtlBase {
req.session.tocompany=cmpfind; req.session.tocompany=cmpfind;
return system.getResult(cmpfind.apps); return system.getResult(cmpfind.apps);
} }
async giveupApp(p,q,req){
var comid=p.compid;
var appid=p.appid;
var rtn=await this.service.giveupApp(comid,appid);
return system.getResult(rtn);
}
//设置当前用户选择的公司为当前公司 //设置当前用户选择的公司为当前公司
async settocompany(p,q,req){ async settocompany(p,q,req){
p.isCurrent=true; p.isCurrent=true;
...@@ -52,6 +58,7 @@ class CompanyCtl extends CtlBase { ...@@ -52,6 +58,7 @@ class CompanyCtl extends CtlBase {
var rtntmp={ var rtntmp={
id:cmp.id, id:cmp.id,
name:cmp.name, name:cmp.name,
companykey:cmp.companykey,
description:cmp.description, description:cmp.description,
logoUrl:cmp.logoUrl, logoUrl:cmp.logoUrl,
isCurrent:cmp.usercompany.isCurrent, isCurrent:cmp.usercompany.isCurrent,
......
...@@ -74,6 +74,18 @@ class AppDao extends Dao { ...@@ -74,6 +74,18 @@ class AppDao extends Dao {
} }
} }
async findAndCountAll(qobj, t) {
if(qobj.codepath.indexOf("comapps")>=0){
var rtn={};
var comp=await this.db.models.company.findOne({where:{companykey:qobj.search.companykey}});
var apps=await comp.getApps();
rtn.results={rows:apps,count:apps.length};
rtn.aggresult={};
return rtn;
}else{
return super.findAndCountAll(qobj, t);
}
}
extraWhere(obj, w, qc, linkAttrs) { extraWhere(obj, w, qc, linkAttrs) {
if (obj.codepath && obj.codepath != "") { if (obj.codepath && obj.codepath != "") {
if (obj.codepath.indexOf("pmgmyapps") > 0) {//说明是应用管理员的查询 if (obj.codepath.indexOf("pmgmyapps") > 0) {//说明是应用管理员的查询
......
...@@ -7,6 +7,39 @@ module.exports = { ...@@ -7,6 +7,39 @@ module.exports = {
"label": "paas", "label": "paas",
"children": [ "children": [
{ {
"code": "opcenter",
"label": "运维中心",
"icon":"fa fa-jpy",
"isSubmenu": true,
"isleft": true,
"children": [
{
"code": "opmanage", "isGroup": true, "label": "运维管理", "children": [
{
"code": "crontasks",
"label": "定时任务",
"bizCode": "crontasks",
"isMenu": true,
"bizConfig": null,
"path": "",
"isleft":true,
},
{
"code": "batchtasks",
"label": "批量任务",
"bizCode": "batchtasks",
"isMenu": true,
"bizConfig": null,
"path": "",
"isleft":true,
},
]
},
],
},
{
"code": "pmgcenter", "code": "pmgcenter",
"label": "平台中心", "label": "平台中心",
"icon":"fa fa-jpy", "icon":"fa fa-jpy",
...@@ -34,7 +67,8 @@ module.exports = { ...@@ -34,7 +67,8 @@ module.exports = {
"isleft":true, "isleft":true,
}, },
] ],
}, },
], ],
}, },
...@@ -128,6 +162,33 @@ module.exports = { ...@@ -128,6 +162,33 @@ module.exports = {
"isleft":true, "isleft":true,
}, },
{ {
"code": "comapps",
"label": "公司租用",
"bizCode": "comapps",
"isMenu": false,
"bizConfig": null,
"path": "",
"isleft":true,
},
{
"code": "comorgs",
"label": "组织结构",
"bizCode": "comorgs",
"isMenu": false,
"bizConfig": null,
"path": "",
"isleft":true,
},
{
"code": "comusers",
"label": "公司员工",
"bizCode": "comusers",
"isMenu": false,
"bizConfig": null,
"path": "",
"isleft":true,
},
{
"code": "pmgmyapps", "code": "pmgmyapps",
"label": "我的应用", "label": "我的应用",
"isMenu": true, "isMenu": true,
...@@ -207,6 +268,9 @@ module.exports = { ...@@ -207,6 +268,9 @@ module.exports = {
"organization": {"title": "用户", "config": null, "path": "/organization", "comname": "organization"}, "organization": {"title": "用户", "config": null, "path": "/organization", "comname": "organization"},
"allapps": {"title": "所有APP", "config": null, "path": "/allapps", "comname": "apps"}, "allapps": {"title": "所有APP", "config": null, "path": "/allapps", "comname": "apps"},
"pmgmyapps": {"title": "我的APP", "config": null, "path": "/pmgmyapps", "comname": "apps"}, "pmgmyapps": {"title": "我的APP", "config": null, "path": "/pmgmyapps", "comname": "apps"},
"comapps": {"title": "公司租用", "config": null, "path": "/comapps", "comname": "apps"},
"comorgs": {"title": "公司组织结构", "config": null, "path": "/comorgs", "comname": "comorgs"},
"comusers": {"title": "公司用户", "config": null, "path": "/comusers", "comname": "users"},
"myappinfo": {"title": "应用信息", "config": null, "path": "/myappinfo", "comname": "myappinfo"}, "myappinfo": {"title": "应用信息", "config": null, "path": "/myappinfo", "comname": "myappinfo"},
"cachsearches": { "title": "缓存档案", "config": null, "path": "/cachsearches", "comname": "cachsearches" }, "cachsearches": { "title": "缓存档案", "config": null, "path": "/cachsearches", "comname": "cachsearches" },
"companyinfo": {"title": "应用信息", "config": null, "path": "/companyinfo", "comname": "companyinfo"}, "companyinfo": {"title": "应用信息", "config": null, "path": "/companyinfo", "comname": "companyinfo"},
......
module.exports={
"bizName":"comapps",
"list":{
columnMetaData:[
{"width":"200","label":"应用KEY","prop":"appkey","isShowTip":true,"isTmpl":false},
{"width":"100","label":"应用名称","prop":"name","isShowTip":true,"isTmpl":false},
{"width":"200","label":"应用密钥","prop":"secret","isShowTip":true,"isTmpl":false},
{"width":"200","label":"是否启用","prop":"isEnabled","isShowTip":true,"isTmpl":false},
{"width":"null","label":"操作","name":"null","isShowTip":false,"isTmpl":true,"isBtns":"true"},
]
},
"form":[
{
"title":"应用控制",
"colnum":1,
"ctls":[
{"type":"switch","label":"是否启用","prop":"isEnabled","acText":"启用","inactText":"停用","placeHolder":"","style":""},
{"type":"switch","label":"是否私有","prop":"isPublish","acText":"否","inactText":"是","placeHolder":"","style":""},
{ "type": "select", "label": "应用类型", "dicKey": "app_type", "prop": "appType", "labelField": "label", "valueField": "value", "placeHolder": "请选择支付类型", "style": "" },
]
},
{
"title":"概要介绍",
"colnum":1,
"ctls":[
{ "type": "textarea", "label": "简介", "prop": "description", "placeHolder": "请输入产品简介", "style": "width:600px" }
]
},
{
"title":"基本信息",
"colnum":3,
"ctls":[
{"type":"input","label":"应用KEY","prop":"appkey","disabled":true,"placeHolder":"","style":""},
{"type":"input","label":"应用名称","prop":"name","placeHolder":"应用名称","style":""},
{"type":"input","label":"应用密钥","prop":"secret","disabled":false,"placeHolder":"","style":""},
{"type":"input","label":"域名","prop":"domainName","disabled":false,"placeHolder":"","style":""},
{"type":"input","label":"首页","prop":"homePage","disabled":false,"placeHolder":"","style":""},
{"type":"input","label":"认证URL","prop":"authUrl","disabled":false,"placeHolder":"","style":""},
{"type":"input","label":"文档URL","prop":"docUrl","disabled":false,"placeHolder":"","style":""},
{"type":"input","label":"配置URL","prop":"uiconfigUrl","disabled":false,"placeHolder":"","style":""},
{"type":"input","label":"缓存操作URL","prop":"opCacheUrl","disabled":false,"placeHolder":"","style":""},
{"type":"input","label":"接受API调用计数URL","prop":"notifyCacheCountUrl","disabled":false,"placeHolder":"","style":""},
]
},
{
"title":"个性化信息",
"colnum":2,
"ctls":[
{"type":"upload","label":"logo","prop":"logoUrl","disabled":false,"placeHolder":"","style":""},
{"type":"upload","label":"背景图","prop":"bkimageUrl","placeHolder":"应用名称","style":""},
{"type":"upload","label":"缩略图","prop":"showimgUrl","disabled":false,"placeHolder":"","style":"width:100px;height:100px"},
{"type":"upload","label":"细节图","prop":"domainName","disabled":false,"placeHolder":"","style":""},
]
},
],
"search":[
{
"title":"基本查询",
ctls:[
{"type":"input","label":"应用名称","prop":"name","placeHolder":"应用名称","style":""},
]
},
],
"auth":{
"add":[
],
"edit":[
{"icon":"el-icon-edit","title":"弃租","type":"default","key":"giveup","isInRow":true},
],
"delete":[
],
"common":[
],
}
}
module.exports={
"list":{
columnMetaData:[
]
},
"form":[
{
"title":"基本信息",
"colnum":1,
ctls:[
{"type":"input","label":"编码","prop":"code","placeHolder":"输入组织编码","style":"",rules:[ { "required": true, "message": ' ', "trigger": 'blur' },]},
{"type":"input","label":"名称","prop":"name","placeHolder":"输入组织名称","style":"",rules:[ { "required": true, "message": ' ', "trigger": 'blur' },]},
// {"type":"switch","label":"是否岗位","targetprop":"Roles,isMain","prop":"isPosition","acText":"是","inactText":"否","placeHolder":"","style":""},
// {"type":"select","refModel":"auth.role","defaultHide":true,"isMulti":true,"label":"角色","prop":"Roles","labelField":"name","valueField":"id","style":""},
// {"type":"switch","label":"是否负责人岗","defaultHide":true,"prop":"isMain","acText":"是","inactText":"否","placeHolder":"","style":""},
{"type":"btn","label":"保存","prop":"btnLogin","placeHolder":"保存","style":{"width":"150px","margin-left":"100px","margin-top":"20px"},"face":"warning"},
]
}
],
"search":[
],
"auth":{
"add":[
{"icon":"el-icon-plus","title":"新增","type":"default","key":"new","isOnGrid":true},
{"icon":"el-icon-save","title":"保存","type":"default","key":"save","isOnForm":true},
],
"edit":[
{"icon":"el-icon-edit","title":"修改","type":"default","key":"edit","isInRow":true},
{"icon":"el-icon-edit","title":"数据授权","type":"default","key":"datapriv","isInRow":true},
],
"delete":[
{"icon":"el-icon-remove","title":"删除","type":"default","key":"delete","isInRow":true},
{"icon":"el-icon-edit","title":"停用","type":"default","key":"stopUser","isInRow":true,"boolProp":"isEnabled","falseText":"启用"},
],
"common":[
{"icon":"el-icon-cancel","title":"取消","type":"default","key":"cancel","isOnForm":true},
],
}
}
...@@ -35,6 +35,8 @@ module.exports={ ...@@ -35,6 +35,8 @@ module.exports={
], ],
"edit":[ "edit":[
{"icon":"el-icon-edit","title":"设置为当前","type":"default","key":"setcurrent","isInRow":true}, {"icon":"el-icon-edit","title":"设置为当前","type":"default","key":"setcurrent","isInRow":true},
{"icon":"el-icon-edit","title":"组织结构","type":"default","key":"comorgs","isInRow":true},
{"icon":"el-icon-edit","title":"租用列表","type":"default","key":"comapps","isInRow":true},
], ],
"delete":[ "delete":[
{"icon":"el-icon-remove","title":"删除","type":"default","key":"delete","isInRow":true}, {"icon":"el-icon-remove","title":"删除","type":"default","key":"delete","isInRow":true},
......
module.exports={
"list":{
columnMetaData:[
{"width":"100","label":"应用","prop":"app.name","isShowTip":true,"isTmpl":false},
{"width":"100","label":"昵称","prop":"nickName","isShowTip":true,"isTmpl":false},
{"width":"100","label":"登录账号","prop":"userName","isShowTip":true,"isTmpl":false},
{"width":"100","label":"角色","prop":"Roles","isShowTip":true,"isTmpl":false},
{"width":"100","label":"管理员","prop":"isAdmin","isShowTip":true,"isTmpl":false},
{"width":"80","label":"状态","prop":"isEnabled","isShowTip":true,"isTmpl":false},
{"width":"null","label":"操作","name":"null","isShowTip":false,"isTmpl":true,"isBtns":true},
]
},
"form":[
{
"title":"控制信息",
ctls:[
{"type":"switch","prop":"isAdmin","acText":"是管理员","inactText":"否","placeHolder":"请输入单次使用消耗的宝币数","style":""},
// {"type":"select","refModel":"pmproduct","isMulti":false,"label":"所属产品","prop":"pmproduct_id","labelField":"name","valueField":"id","style":""},
]
},
{
"title":"基本信息",
ctls:[
{"type":"input","label":"账号","prop":"userName","placeHolder":"登录账号","style":"",rules:[ { "required": true, "message": ' ', "trigger": 'blur' },]},
{"type":"input","label":"昵称","prop":"nickName","placeHolder":"昵称","style":"",rules:[ { "required": true, "message": ' ', "trigger": 'blur' },]},
{"type":"input","label":"电话","prop":"mobile","placeHolder":"请输入电话","style":"",rules:[ { "validator":"validatex","trigger": 'blur' },{ "required": true, "message": ' ', "trigger": 'blur' },]},
// {"type":"select","refModel":"auth.role","isMulti":true,"label":"角色","prop":"roles","labelField":"name","valueField":"id","style":""},
]
}
],
"search":[
{
"title":"基本查询",
ctls:[
{"type":"input","label":"昵称","prop":"nickName","placeHolder":"请输入昵称","style":""},
]
},
],
"auth":{
"add":[
// {"icon":"el-icon-plus","title":"新增","type":"default","key":"new","isOnGrid":true},
// {"icon":"el-icon-save","title":"保存","type":"default","key":"save","isOnForm":true},
],
"edit":[
// {"icon":"el-icon-edit","title":"修改","type":"default","key":"edit","isInRow":true},
],
"delete":[
// {"icon":"el-icon-remove","title":"删除","type":"default","key":"delete","isInRow":true},
// {"icon":"el-icon-edit","title":"停用","type":"default","key":"stopUser","isInRow":true,"boolProp":"isEnabled","falseText":"启用"},
],
"common":[
{"icon":"el-icon-cancel","title":"取消","type":"default","key":"cancel","isOnForm":true},
],
}
}
...@@ -34,6 +34,7 @@ module.exports = (db, DataTypes) => { ...@@ -34,6 +34,7 @@ module.exports = (db, DataTypes) => {
type:DataTypes.BOOLEAN, type:DataTypes.BOOLEAN,
defaultValue: false defaultValue: false
}, },
wxopenid:DataTypes.STRING,
app_id:DataTypes.INTEGER, app_id:DataTypes.INTEGER,
account_id:DataTypes.INTEGER, account_id:DataTypes.INTEGER,
isEnabled:{ isEnabled:{
......
...@@ -34,6 +34,7 @@ class OrgService extends ServiceBase{ ...@@ -34,6 +34,7 @@ class OrgService extends ServiceBase{
} }
async update(p,q,req){ async update(p,q,req){
var self=this; var self=this;
var cmkey=p.comkey;//如果是来自租户界面的修改
return this.db.transaction(async function (t) { return this.db.transaction(async function (t) {
p.isLeaf=p.isPosition; p.isLeaf=p.isPosition;
var orgupdate=await self.dao.model.findOne({where:{id:p.id},transaction:t}); var orgupdate=await self.dao.model.findOne({where:{id:p.id},transaction:t});
...@@ -48,7 +49,7 @@ class OrgService extends ServiceBase{ ...@@ -48,7 +49,7 @@ class OrgService extends ServiceBase{
await ud.save({transaction:t}); await ud.save({transaction:t});
} }
//} //}
if(p.Roles){ if(p.Roles && !cmkey){//如果不是来自租户界面的修改
var roles=await self.db.models.role.findAll({where:{id:{[self.db.Op.in]:p.Roles}}}); var roles=await self.db.models.role.findAll({where:{id:{[self.db.Op.in]:p.Roles}}});
await orgupdate.setRoles(roles,{transaction:t}); await orgupdate.setRoles(roles,{transaction:t});
//同时要给这个岗位下的user,更新角色 todo //同时要给这个岗位下的user,更新角色 todo
...@@ -110,12 +111,20 @@ class OrgService extends ServiceBase{ ...@@ -110,12 +111,20 @@ class OrgService extends ServiceBase{
} }
async create(p,q,req){ async create(p,q,req){
var self=this; var self=this;
var cmkey=p.comkey;
return this.db.transaction(async function (t) { return this.db.transaction(async function (t) {
if(cmkey){
var tmpcompany =await self.db.models.company.findOne({where:{companykey:cmkey},transaction:t});
p.company_id=tmpcompany.id;
}
var roles=await self.db.models.role.findAll({where:{id:{[self.db.Op.in]:p.Roles}}}); var roles=await self.db.models.role.findAll({where:{id:{[self.db.Op.in]:p.Roles}}});
p.isLeaf=p.isPosition; p.isLeaf=p.isPosition;
p.app_id=req.appid; p.app_id=null;
var orgnew=await self.dao.model.create(p,{transaction:t}); var orgnew=await self.dao.model.create(p,{transaction:t});
await orgnew.setRoles(roles,{transaction:t}); if(roles && roles.length>0){
await orgnew.setRoles(roles,{transaction:t});
}
var orgparent=await self.dao.model.findOne({ var orgparent=await self.dao.model.findOne({
order:[["code","ASC"]], order:[["code","ASC"]],
where:{id:orgnew.org_id},transaction:t, where:{id:orgnew.org_id},transaction:t,
...@@ -152,7 +161,8 @@ class OrgService extends ServiceBase{ ...@@ -152,7 +161,8 @@ class OrgService extends ServiceBase{
return this.db.transaction(async function (t) { return this.db.transaction(async function (t) {
var org=await self.dao.model.findOne({ var org=await self.dao.model.findOne({
order:[["code","ASC"]], order:[["code","ASC"]],
where:{name:company.name,company_id:company.id,app_id:appid},transaction:t, //where:{name:company.name,company_id:company.id,app_id:appid},transaction:t,
where:{name:company.name,company_id:company.id},transaction:t,
include:[ include:[
{model:self.db.models.org,as:"orgs", order:[["code","ASC"]],include:[ {model:self.db.models.org,as:"orgs", order:[["code","ASC"]],include:[
{model:self.db.models.org,as:"orgs",order:[["code","ASC"]],include:[ {model:self.db.models.org,as:"orgs",order:[["code","ASC"]],include:[
...@@ -173,7 +183,7 @@ class OrgService extends ServiceBase{ ...@@ -173,7 +183,7 @@ class OrgService extends ServiceBase{
isMain:false, isMain:false,
orgpath:"/", orgpath:"/",
company_id:company.id, company_id:company.id,
app_id:appid app_id:null,
},{transaction:t}); },{transaction:t});
return root; return root;
} }
......
...@@ -285,6 +285,20 @@ class UserService extends ServiceBase { ...@@ -285,6 +285,20 @@ class UserService extends ServiceBase {
} }
}); });
} }
async modifyPassword(p) {
p.password = await super.getEncryptStr(p.password);
var setObj = {
password: p.password
};
var whereObj = {
where: {account_id: p.account_id}
};
await this.dao.updateByWhere(setObj, whereObj);
return system.getResultSuccess();
}
async getUserByUserNamePwdForApi(u) { async getUserByUserNamePwdForApi(u) {
//勇于从别的应用中,点击页面连接,跳转到平台应用中进行管理 //勇于从别的应用中,点击页面连接,跳转到平台应用中进行管理
u.password = await super.getEncryptStr(u.password); u.password = await super.getEncryptStr(u.password);
...@@ -309,6 +323,10 @@ class UserService extends ServiceBase { ...@@ -309,6 +323,10 @@ class UserService extends ServiceBase {
} }
return user; return user;
} }
async checkWxBind(u){
var user = await this.dao.model.findOne({where: {wxopenid: u.openid, app_id: u.app_id}});
return user;
}
async getUserByUserNamePwd(u) { async getUserByUserNamePwd(u) {
//勇于从别的应用中,点击页面连接,跳转到平台应用中进行管理 //勇于从别的应用中,点击页面连接,跳转到平台应用中进行管理
if(!u.isNavto){ if(!u.isNavto){
...@@ -337,6 +355,20 @@ class UserService extends ServiceBase { ...@@ -337,6 +355,20 @@ class UserService extends ServiceBase {
} }
return user; return user;
} }
async wxBind(u) {
var self=this;
return this.db.transaction(async function (t) {
var user = await self.dao.model.findOne({where: { mobile: u.mobile,app_id: u.app_id }});
if(!user){
return null;
}else{
user.wxopenid=u.openid;
await user.save();
return user;
}
});
}
async getUserByUserMobile(u) { async getUserByUserMobile(u) {
//勇于从别的应用中,点击页面连接,跳转到平台应用中进行管理 //勇于从别的应用中,点击页面连接,跳转到平台应用中进行管理
var user = await this.dao.model.findOne({ var user = await this.dao.model.findOne({
......
...@@ -34,6 +34,22 @@ class CompanyService extends ServiceBase { ...@@ -34,6 +34,22 @@ class CompanyService extends ServiceBase {
return rtn; return rtn;
}); });
} }
async giveupApp(comid,appid){
var self=this;
return this.db.transaction(async function (t){
//检查当前company_id下面是否有用户存在,如果已经存在就不要删除了
var c=await self.db.models.user.count({where:{owner_id:comid}});
if(c>1){
return null;
}else{
if(c==1){
await self.db.models.user.destroy({where:{owner_id:comid},force: true});
}
await self.db.models.companyapp.destroy({where:{company_id:comid,app_id:appid}});
return {};
}
});
}
async buyApp(p,cmid,user){ async buyApp(p,cmid,user){
var self=this; var self=this;
var appid=p.id; var appid=p.id;
......
# apiVersion: v1
# kind: Service
# metadata:
# name: konga
# spec:
# type: NodePort
# ports:
# - name: konga
# port: 1337
# targetPort: 1337
# protocol: TCP
# selector:
# app: konga
# ---
# apiVersion: extensions/v1beta1
# kind: Deployment
# metadata:
# name: konga
# spec:
# replicas: 1
# template:
# metadata:
# labels:
# name: konga
# app: konga
# spec:
# containers:
# - name: konga
# image: pantsel/konga:0.14.1
# env:
# - name: DB_DATABASE
# value: k8s_konga
# - name: DB_USER
# valueFrom:
# configMapKeyRef:
# name: zhichan-config
# key: DB_USER
# - name: DB_PASSWORD
# valueFrom:
# configMapKeyRef:
# name: zhichan-config
# key: DB_PWD
# - name: DB_PORT
# valueFrom:
# configMapKeyRef:
# name: zhichan-config
# key: DB_PORT
# - name: DB_ADAPTER
# value: mysql
# - name: DB_HOST
# valueFrom:
# configMapKeyRef:
# name: zhichan-config
# key: DB_HOST
# - name: NODE_ENV
# value: production
# - name: TOKEN_SECRET
# value: testtoken
# ports:
# - name: konga
# containerPort: 1337
# protocol: TCP
apiVersion: v1
kind: Service
metadata:
name: kong-dashboard
namespace: kong
spec:
type: NodePort
ports:
- name: kong-dashboard
port: 80
targetPort: 8080
protocol: TCP
selector:
app: dashboard
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: dashboard
namespace: kong
spec:
template:
metadata:
labels:
name: dashboard
app: dashboard
spec:
containers:
- name: kong-dashboard
args:
- start
- --kong-url http://kong-ingress-controller:8001
- --basic-auth admin=admin
image: pgbi/kong-dashboard:latest
ports:
- name: http
containerPort: 8080
protocol: TCP
apiVersion: v1
kind: Service
metadata:
name: kong-admin
namespace: kong
spec:
ports:
- name: kongadmin
port: 8001
protocol: TCP
targetPort: 8001
selector:
app: ingress-kong
curl -v -H "Host: webshell.com" 123.57.217.203:1880
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
deleteMethod="delete" deleteMethod="delete"
initMethod="initNewInstance" initMethod="initNewInstance"
isDataAuto="true" isDataAuto="true"
isLazy="true"
:headStyle="headStyle" :headStyle="headStyle"
:colFormatter="onColFormater" :colFormatter="onColFormater"
:isSingleSelect="isSingleSelect" :isSingleSelect="isSingleSelect"
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
return callback(); return callback();
}; };
return { return {
selCompanyid:'',
bizCode:'', bizCode:'',
currow:null, currow:null,
adminExist:false, adminExist:false,
...@@ -46,14 +47,21 @@ ...@@ -46,14 +47,21 @@
} }
}, },
mounted:function(){ mounted:function(){
var cmpid=this.$router.history.current.query.compid;
this.selCompanyid=cmpid;
this.$refs.cgrid.linkInInitQuery("companykey",cmpid);
}, },
created:function(){ created:function(){
if(this.codePath.indexOf("myapps")>=0){ if(this.codePath.indexOf("myapps")>=0){
this.bizCode="pmgmyapps"; this.bizCode="pmgmyapps";
}else{ }
if(this.codePath.indexOf("allapps")>=0){
this.bizCode="allapps"; this.bizCode="allapps";
} }
if(this.codePath.indexOf("comapps")>=0){
this.bizCode="comapps";
}
}, },
methods:{ methods:{
async fetchvcode(){ async fetchvcode(){
...@@ -149,6 +157,18 @@ ...@@ -149,6 +157,18 @@
path:"/appconfig" path:"/appconfig"
}); });
} }
if(key=="giveup"){
var d= await this.$root.postReq("/web/common/companyCtl/giveupApp", {compid: this.selCompanyid,appid:row.id});
if(d.status==0){
this.$refs.cgrid.linkInInitQuery("company_id",this.selCompanyid);
}else{
this.$message({
type: 'warning',
message: '应用已经产生数据,不能解除应用'
});
}
}
this.currow=row; this.currow=row;
} }
......
<gsb-pagecard class="organization">
<div slot="content">
<gsb-tree
ref="orgtree"
@initheight="initheight"
@initdata="initdata"
node_title="组织信息"
bizCode="comorgs"
@loadforminfo="loadforminfo"
:fetchNodeData="fetchtreedata"
children_name="orgs"
label_name="name"
leaf_name="isLeaf"
@remove="remove"
@onsel="onsel"
>
<el-tag>当前选择:{{currentPath?currentPath:"/"}}</el-tag>
<gsb-grid2
ref="userGrid"
bizCode="comusers"
spaceHeight="100"
groupName="auth"
modelName="user"
listMethod="findAndCountAll"
deleteMethod="delete"
initMethod="initNewInstance"
isDataAuto="true"
:headStyle="headStyle"
:colFormatter="onColFormater"
:isSingleSelect="isSingleSelect"
@rowclick="onRowClick"
:validateformmethod="validateformmethod"
:beforesave="beforesave">
</gsb-grid2>
<gsb-form ref="orgform" @btnclick="saveclick" style="width:500px" @onswitchchange="switchchange" slot="treeform" :metaData="formMetaData"></gsb-form>
</gsb-tree>
<el-dialog
title="岗位变更"
:visible.sync="positonChange"
width="350px"
center>
<gsb-select cssStyle="width:300px" refModel="auth.org" modelName="org" v-model="orgidchageto" labelField="orgpath" :refwhere2="refwhereorg" valueField="id"></gsb-select>
<span slot="footer" class="dialog-footer">
<el-button @click="positonChange = false">取 消</el-button>
<el-button type="primary" @click="changeok">确 定</el-button>
</span>
</el-dialog>
</div>
</gsb-pagecard>
\ No newline at end of file
...@@ -41,6 +41,13 @@ ...@@ -41,6 +41,13 @@
} }
} }
if(key=="comapps"){
this.$router.push({path:"/comapps",query:{"compid":row.companykey}});
}
if(key=="comorgs"){
this.$router.push({path:"/comorgs",query:{"compid":row.companykey}});
}
}, },
onColFormater(row,column,cellvalue,index){ onColFormater(row,column,cellvalue,index){
if(column.property=="isSystem"){ if(column.property=="isSystem"){
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
<div v-for="(item,key) in myapps" :key="key" class="app-child" :style="bgimg(item)" @click="goapplogin(item)" > <div v-for="(item,key) in myapps" :key="key" class="app-child" :style="bgimg(item)" @click="goapplogin(item)" >
<img :src="item.logoUrl" alt=""> <img :src="item.logoUrl" alt="">
<div>{{item.name}}</div> <div>{{item.name}}</div>
<span @click.stop="systemsetting(item)" v-if="currentUser && currentUser.roles.indexOf(\'common\')>=0" style="position: absolute;left:5px;top: 10px;font-size:20px;color:red;padding: 5px;cursor: pointer;"><i class="el-icon-setting"></i></span> <span @click.stop="systemsetting(item)" v-if="currentUser && currentUser.roles.indexOf(\'common\')>=0" style="position: absolute;left:5px;top: 10px;font-size:20px;color:#fff;padding: 5px;cursor: pointer;"><i class="el-icon-setting"></i></span>
</div> </div>
</div> </div>
</div> </div>
\ No newline at end of file
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
"colnum":1, "colnum":1,
ctls:[ ctls:[
{"type":"input","label":"账号","prop":"userName","placeHolder":"请输入登录账号","style":"width:230px",rules:[ { "required": true, "message": ' ', "trigger": 'blur' },,]}, {"type":"input","label":"账号","prop":"userName","placeHolder":"请输入登录账号","style":"width:230px",rules:[ { "required": true, "message": ' ', "trigger": 'blur' },,]},
{"type":"input","label":"密码","prop":"password","placeHolder":"请输入登录密码","style":"width:230px",rules:[ { "required": true, "message": ' ', "trigger": 'blur' },]}, {"type":"password","label":"密码","prop":"password","placeHolder":"请输入登录密码","style":"width:230px",rules:[ { "required": true, "message": ' ', "trigger": 'blur' },]},
{"type":"btn","label":"开始登录","prop":"btnLogin","placeHolder":"请输入手机号","style":{"width":"150px","margin-left":"45px","margin-top":"20px"},"face":"warning"}, {"type":"btn","label":"开始登录","prop":"btnLogin","placeHolder":"请输入手机号","style":{"width":"150px","margin-left":"45px","margin-top":"20px"},"face":"warning"},
] ]
}, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment