You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 lines
13 KiB
1 lines
13 KiB
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-9b31c83a"],{"048e":function(e,t,i){},"0ce7":function(e,t,i){"use strict";var o=i("048e"),a=i.n(o);a.a},"5f67":function(e,t,i){"use strict";i.r(t);var o=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"app-container"},[i("el-container",[i("el-aside",{staticStyle:{"min-height":"300px",width:"250px"}},[i("el-button",{staticStyle:{display:"none"},attrs:{type:"primary",plain:"",size:"mini",icon:"el-icon-plus"},on:{click:function(t){return t.stopPropagation(),e.addService(t)}}},[e._v("\n 新建服务\n ")]),e._v(" "),i("el-input",{staticStyle:{"margin-bottom":"10px","margin-top":"10px"},attrs:{"prefix-icon":"el-icon-search",placeholder:"搜索服务...",size:"mini",clearable:""},model:{value:e.filterText,callback:function(t){e.filterText=t},expression:"filterText"}}),e._v(" "),i("el-tree",{ref:"serviceTree",staticClass:"filter-tree",attrs:{data:e.treeData,props:e.defaultProps,"filter-node-method":e.filterNode,"highlight-current":!0,"expand-on-click-node":!1,"empty-text":"无数据","node-key":"serviceId","default-expand-all":""},on:{"node-click":e.onNodeClick},scopedSlots:e._u([{key:"default",fn:function(t){t.node;var o=t.data;return i("span",{staticClass:"custom-tree-node"},[i("div",[i("el-tooltip",{directives:[{name:"show",rawName:"v-show",value:o.custom,expression:"data.custom"}],staticClass:"item",attrs:{content:"自定义服务",effect:"light",placement:"left"}},[i("i",{staticClass:"el-icon-warning-outline"})]),e._v(" "),o.label.length<e.serviceTextLimitSize?i("span",[e._v(e._s(o.label))]):i("span",[i("el-tooltip",{staticClass:"item",attrs:{content:o.label,effect:"light",placement:"right"}},[i("span",[e._v(e._s(o.label.substring(0,e.serviceTextLimitSize)+"..."))])])],1)],1),e._v(" "),i("span",[1===o.custom?i("el-button",{attrs:{type:"text",size:"mini",icon:"el-icon-delete",title:"删除服务"},on:{click:function(t){return t.stopPropagation(),function(){return e.onDelService(o)}()}}}):e._e()],1)])}}])})],1),e._v(" "),i("el-main",{staticStyle:{"padding-top":"0"}},[i("el-form",{staticClass:"demo-form-inline",attrs:{inline:!0,model:e.searchFormData,size:"mini"}},[i("el-form-item",{attrs:{label:"路由名称"}},[i("el-input",{attrs:{placeholder:"输入接口名或版本号"},model:{value:e.searchFormData.id,callback:function(t){e.$set(e.searchFormData,"id",t)},expression:"searchFormData.id"}})],1),e._v(" "),i("el-form-item",[i("el-button",{attrs:{type:"primary",icon:"el-icon-search"},on:{click:e.onSearchTable}},[e._v("查询")])],1)],1),e._v(" "),i("el-button",{directives:[{name:"show",rawName:"v-show",value:e.isCustomService,expression:"isCustomService"}],attrs:{type:"primary",size:"mini",icon:"el-icon-plus"},on:{click:function(t){return t.stopPropagation(),e.addRoute(t)}}},[e._v("\n 新建路由\n ")]),e._v(" "),i("el-table",{staticStyle:{"margin-top":"10px"},attrs:{data:e.tableData,border:"","max-height":"500"}},[i("el-table-column",{attrs:{prop:"name",label:"接口名 (版本号)",width:"350"},scopedSlots:e._u([{key:"default",fn:function(t){return[e._v("\n "+e._s(t.row.name+(t.row.version?" ("+t.row.version+")":""))+"\n ")]}}])}),e._v(" "),i("el-table-column",{attrs:{prop:"roles",label:"访问权限",width:"150"},scopedSlots:e._u([{key:"default",fn:function(t){return[i("span",{domProps:{innerHTML:e._s(e.roleRender(t.row))}})]}}])}),e._v(" "),i("el-table-column",{attrs:{prop:"ignoreValidate",label:"签名校验",width:"80"},scopedSlots:e._u([{key:"default",fn:function(t){return[0===t.row.ignoreValidate?i("span",[e._v("校验")]):e._e(),e._v(" "),1===t.row.ignoreValidate?i("span",{staticStyle:{color:"#E6A23C"}},[e._v("不校验")]):e._e()]}}])}),e._v(" "),i("el-table-column",{attrs:{prop:"mergeResult",label:"统一格式输出",width:"120"},scopedSlots:e._u([{key:"default",fn:function(t){return[1===t.row.mergeResult?i("span",[e._v("是")]):e._e(),e._v(" "),0===t.row.mergeResult?i("span",{staticStyle:{color:"#E6A23C"}},[e._v("否")]):e._e()]}}])}),e._v(" "),i("el-table-column",{attrs:{prop:"status",label:"状态",width:"80"},scopedSlots:e._u([{key:"default",fn:function(t){return[0===t.row.status?i("span",{staticStyle:{color:"#E6A23C"}},[e._v("待审核")]):e._e(),e._v(" "),1===t.row.status?i("span",{staticStyle:{color:"#67C23A"}},[e._v("已启用")]):e._e(),e._v(" "),2===t.row.status?i("span",{staticStyle:{color:"#F56C6C"}},[e._v("已禁用")]):e._e()]}}])}),e._v(" "),i("el-table-column",{attrs:{label:"操作",width:"100"},scopedSlots:e._u([{key:"default",fn:function(t){return[i("el-button",{attrs:{type:"text",size:"mini"},on:{click:function(i){return e.onTableUpdate(t.row)}}},[e._v("修改")]),e._v(" "),t.row.permission?i("el-button",{attrs:{type:"text",size:"mini"},on:{click:function(i){return e.onTableAuth(t.row)}}},[e._v("授权")]):e._e(),e._v(" "),t.row.custom?i("el-button",{attrs:{type:"text",size:"mini"},on:{click:function(i){return e.onTableDel(t.row)}}},[e._v("删除")]):e._e()]}}])})],1)],1)],1),e._v(" "),i("el-dialog",{attrs:{title:e.routeDialogTitle,visible:e.routeDialogVisible,"close-on-click-modal":!1},on:{"update:visible":function(t){e.routeDialogVisible=t},close:e.onCloseRouteDialog}},[i("el-form",{ref:"routeDialogFormRef",attrs:{model:e.routeDialogFormData,rules:e.routeDialogFormRules,"label-width":"180px",size:"mini"}},[i("el-input",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],model:{value:e.routeDialogFormData.id,callback:function(t){e.$set(e.routeDialogFormData,"id",t)},expression:"routeDialogFormData.id"}}),e._v(" "),i("el-form-item",{attrs:{label:"接口名 (版本号)"}},[e._v("\n "+e._s(e.routeDialogFormData.name+(e.routeDialogFormData.version?" ("+e.routeDialogFormData.version+")":""))+"\n ")]),e._v(" "),i("el-form-item",{attrs:{label:"签名校验"}},[e._v("\n "+e._s(e.routeDialogFormData.ignoreValidate?"不校验":"校验")+"\n ")]),e._v(" "),i("el-form-item",{attrs:{label:"统一格式输出"}},[e._v("\n "+e._s(1===e.routeDialogFormData.mergeResult?"是":"否")+"\n ")]),e._v(" "),i("el-form-item",{attrs:{label:"状态"}},[i("el-radio-group",{model:{value:e.routeDialogFormData.status,callback:function(t){e.$set(e.routeDialogFormData,"status",t)},expression:"routeDialogFormData.status"}},[i("el-radio",{attrs:{label:1,name:"status"}},[e._v("启用")]),e._v(" "),i("el-radio",{staticStyle:{color:"#F56C6C"},attrs:{label:2,name:"status"}},[e._v("禁用")])],1)],1)],1),e._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{on:{click:function(t){e.routeDialogVisible=!1}}},[e._v("取 消")]),e._v(" "),i("el-button",{attrs:{type:"primary"},on:{click:e.onRouteDialogSave}},[e._v("保 存")])],1)],1),e._v(" "),i("el-dialog",{attrs:{title:"路由授权",visible:e.authDialogVisible,"close-on-click-modal":!1},on:{"update:visible":function(t){e.authDialogVisible=t}}},[i("el-form",{attrs:{model:e.authDialogFormData,"label-width":"120px",size:"mini"}},[i("el-form-item",{attrs:{label:"路由ID"}},[i("span",[e._v(e._s(e.authDialogFormData.routeId))])]),e._v(" "),i("el-form-item",{attrs:{label:"角色"}},[i("el-checkbox-group",{model:{value:e.authDialogFormData.roleCode,callback:function(t){e.$set(e.authDialogFormData,"roleCode",t)},expression:"authDialogFormData.roleCode"}},e._l(e.roles,function(t){return i("el-checkbox",{key:t.roleCode,attrs:{label:t.roleCode}},[e._v(e._s(t.description))])}),1)],1)],1),e._v(" "),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{on:{click:function(t){e.authDialogVisible=!1}}},[e._v("取 消")]),e._v(" "),i("el-button",{attrs:{type:"primary"},on:{click:e.onAuthDialogSave}},[e._v("保 存")])],1)],1),e._v(" "),i("el-dialog",{attrs:{title:"添加服务",visible:e.addServiceDialogVisible,"close-on-click-modal":!1},on:{"update:visible":function(t){e.addServiceDialogVisible=t},close:e.closeAddServiceDlg}},[i("el-form",{ref:"addServiceForm",attrs:{model:e.addServiceForm,rules:e.addServiceFormRules,"label-width":"200px"}},[i("el-form-item",{attrs:{label:"服务名(serviceId)",prop:"serviceId"}},[i("el-input",{attrs:{placeholder:"服务名,如:order-service"},model:{value:e.addServiceForm.serviceId,callback:function(t){e.$set(e.addServiceForm,"serviceId",t)},expression:"addServiceForm.serviceId"}})],1)],1),e._v(" "),i("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{on:{click:function(t){e.addServiceDialogVisible=!1}}},[e._v("取 消")]),e._v(" "),i("el-button",{attrs:{type:"primary"},on:{click:e.onAddService}},[e._v("确 定")])],1)],1)],1)},a=[],r={data:function(){return{serviceTextLimitSize:20,filterText:"",treeData:[],tableData:[],serviceId:"",isCustomService:!1,searchFormData:{id:"",serviceId:""},defaultProps:{children:"children",label:"label"},routeDialogTitle:"修改路由",routeDialogFormData:{id:"",name:"",version:"1.0",uri:"",path:"",status:1,mergeResult:1,ignoreValidate:0},routeDialogFormRules:{name:[{required:!0,message:"不能为空",trigger:"blur"},{min:1,max:100,message:"长度在 1 到 100 个字符",trigger:"blur"}],version:[{required:!0,message:"不能为空",trigger:"blur"},{min:1,max:100,message:"长度在 1 到 100 个字符",trigger:"blur"}],uri:[{required:!0,message:"不能为空",trigger:"blur"},{min:1,max:100,message:"长度在 1 到 100 个字符",trigger:"blur"}],path:[{min:0,max:100,message:"长度不能超过 100 个字符",trigger:"blur"}]},routeDialogVisible:!1,roles:[],authDialogFormData:{routeId:"",roleCode:[]},authDialogVisible:!1,addServiceDialogVisible:!1,addServiceForm:{serviceId:""},addServiceFormRules:{serviceId:[{required:!0,message:"请输入服务名称",trigger:"blur"},{min:1,max:100,message:"长度在 1 到 100 个字符",trigger:"blur"}]}}},watch:{filterText:function(e){this.$refs.serviceTree.filter(e)}},created:function(){this.loadTree(),this.loadRouteRole()},methods:{loadTree:function(){this.post("registry.service.list",{},function(e){var t=this,i=e.data;this.treeData=this.convertToTreeData(i,0),this.$nextTick(function(){t.serviceId&&t.$refs.serviceTree.setCurrentKey(t.serviceId)})})},filterNode:function(e,t){return!e||-1!==t.label.indexOf(e)},onNodeClick:function(e,t,i){e.parentId&&(this.serviceId=e.label,this.searchFormData.serviceId=this.serviceId,this.isCustomService=Boolean(e.custom),this.loadTable())},convertToTreeData:function(e,t){for(var i=[],o={label:"服务列表",parentId:t},a=[],r=0;r<e.length;r++)e[r].parentId=1,e[r].label=e[r].serviceId,a.push(e[r]);return o.children=a,i.push(o),i},loadTable:function(e){var t=e||this.searchFormData;this.post("route.list",t,function(e){this.tableData=e.data})},onSearchTable:function(){this.loadTable()},onTableUpdate:function(e){var t=this;this.routeDialogTitle="修改路由",this.routeDialogVisible=!0,this.$nextTick(function(){Object.assign(t.routeDialogFormData,e)})},onTableAuth:function(e){this.authDialogFormData.routeId=e.id;var t={id:e.id,serviceId:this.serviceId};this.post("route.role.get",t,function(e){for(var t=e.data,i=[],o=0;o<t.length;o++)i.push(t[o].roleCode);this.authDialogFormData.roleCode=i,this.authDialogVisible=!0})},onTableDel:function(e){this.confirm("确认要删除路由【".concat(e.id,"】吗?"),function(t){var i={serviceId:this.serviceId,id:e.id};this.post("route.del",i,function(){t(),this.tip("删除成功"),this.loadTable()})})},onCloseRouteDialog:function(){this.resetForm("routeDialogFormRef")},routePropDisabled:function(){return!!this.routeDialogFormData.id&&!this.isCustomService},loadRouteRole:function(){0===this.roles.length&&this.post("role.listall",{},function(e){this.roles=e.data})},addRoute:function(){var e=this;this.routeDialogTitle="新建路由",this.routeDialogVisible=!0,this.$nextTick(function(){Object.assign(e.routeDialogFormData,{id:""})})},roleRender:function(e){if(!e.permission)return"(公开)";for(var t=[],i=e.roles,o=0;o<i.length;o++)t.push(i[o].description);return t.length>0?t.join(", "):'<span class="x-red">未授权</span>'},onRouteDialogSave:function(){var e=this;this.$refs.routeDialogFormRef.validate(function(t){if(t){var i=e.routeDialogFormData.id?"route.update":"route.add";e.routeDialogFormData.serviceId=e.serviceId,e.post(i,e.routeDialogFormData,function(){this.routeDialogVisible=!1,this.loadTable()})}})},onAuthDialogSave:function(){this.post("route.role.update",this.authDialogFormData,function(){this.authDialogVisible=!1,this.loadTable()})},addService:function(){this.addServiceDialogVisible=!0},closeAddServiceDlg:function(){this.$refs.addServiceForm.resetFields()},onAddService:function(){var e=this;this.$refs.addServiceForm.validate(function(t){t&&e.post("service.custom.add",e.addServiceForm,function(e){this.addServiceDialogVisible=!1,this.tip("添加成功"),this.loadTree()})})},onDelService:function(e){var t=e.serviceId;this.confirm("确认要删除服务"+t+"吗,【对应的路由配置会一起删除】",function(e){var i={serviceId:t};this.post("service.custom.del",i,function(){e(),this.tip("删除成功"),this.loadTree()})})}}},l=r,s=(i("0ce7"),i("2877")),n=Object(s["a"])(l,o,a,!1,null,null,null);t["default"]=n.exports}}]); |