msGatewayRouteConfig-1.3.10.js 59 KB

1
  1. (window["webpackJsonp_direwolf"]=window["webpackJsonp_direwolf"]||[]).push([["msGatewayRouteConfig"],{7034:function(e,t,a){"use strict";a.r(t);var i=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("el-form",{ref:"grayScaleReleaseForm",staticClass:"with-border",attrs:{id:"grayScaleReleaseForm","label-position":"right",size:"small","label-width":"100px",model:e.entity,rules:e.rules}},[a("el-row",{attrs:{type:"flex",justify:"center"}},[a("el-col",[a("el-form-item",{attrs:{prop:"uri",label:"地址"}},[a("el-input",{attrs:{placeholder:"请输入版本地址"},model:{value:e.entity.uri,callback:function(t){e.$set(e.entity,"uri",t)},expression:"entity.uri"}})],1)],1)],1),a("el-row",{attrs:{type:"flex",justify:"center"}},[a("el-col",[a("el-form-item",{attrs:{prop:"weight",label:"权重"}},[a("el-input",{attrs:{placeholder:"请输入地址权重"},model:{value:e.entity.weight,callback:function(t){e.$set(e.entity,"weight",t)},expression:"entity.weight"}})],1)],1)],1)],1)},r=[],s=(a("c5f6"),{name:"grayScaleReleaseForm",props:{remainingWeight:{type:Number,default:100}},data:function(){var e=this;function t(t,a,i){a>e.remainingWeight?i(new Error("所有权重之和不得超过100")):i()}return{entity:{uri:"",weight:""},rules:{uri:[{required:!0,message:"地址不能为空",trigger:"blur"},{max:100,message:"长度不能超过 100 个字符",trigger:"blur"},{validator:this.$$utils.validator.checkURL,name:"地址",trigger:"blur"}],weight:[{required:!0,message:"权重不能为空",trigger:"blur"},{validator:t,trigger:"blur"}]}}},computed:{},methods:{checkInput:function(e){var t=this;t.$refs["grayScaleReleaseForm"].validate((function(a){a?"function"===typeof e&&e():t.$$utils.direwolfCommonTips("error","内容填写有误,请修改后再提交")}))}},created:function(){}}),l=s,o=a("2877"),n=Object(o["a"])(l,i,r,!1,null,"e145c124",null);t["default"]=n.exports},a04a:function(e,t,a){"use strict";a.r(t);var i=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"wrapper-cont"},[a("el-card",{staticClass:"box-card search-content",attrs:{shadow:"hover"}},[a("el-form",{attrs:{"label-position":"right",size:"small","label-width":"100px",id:"msGatewayRouteConfigSearchForm",model:e.searchParams}},[a("el-row",{attrs:{gutter:15}},[a("el-col",{attrs:{span:8}},[a("el-form-item",{attrs:{required:"",label:"系统"}},[a("el-select",{attrs:{filterable:"",clearable:!1,remote:"",placeholder:"输入关键字搜索系统","remote-method":e.getSysListByUser,loading:e.sysLoading},on:{focus:e.handleSysParamFocus},model:{value:e.searchParams.sysId,callback:function(t){e.$set(e.searchParams,"sysId",t)},expression:"searchParams.sysId"}},e._l(e.msSysList,(function(e){return a("el-option",{key:e.id,attrs:{label:e.sysName,value:e.id}})})),1)],1)],1),a("el-col",{attrs:{span:8}},[a("el-form-item",{attrs:{label:"服务"}},[a("el-select",{attrs:{filterable:"",clearable:!1,remote:"",placeholder:"输入关键字搜索服务","remote-method":e.getServiceListByUser,loading:e.serviceLoading},on:{focus:e.handleServiceParamFocus},model:{value:e.searchParams.serviceId,callback:function(t){e.$set(e.searchParams,"serviceId",t)},expression:"searchParams.serviceId"}},e._l(e.msServiceList,(function(e){return a("el-option",{key:e.id,attrs:{label:e.serviceName,value:e.id}})})),1)],1)],1),a("el-col",{attrs:{span:8}},[a("el-form-item",{attrs:{label:"路由名称"}},[a("el-input",{attrs:{placeholder:"请输入路由名称"},model:{value:e.searchParams.routeName,callback:function(t){e.$set(e.searchParams,"routeName",t)},expression:"searchParams.routeName"}})],1)],1),a("el-col",{attrs:{offset:16,span:8}},[a("el-form-item",{staticClass:"search-content-button-container"},[a("el-button-group",[a("el-button",{attrs:{type:"primary",size:"small",icon:"el-icon-search"},on:{click:e.refreshTable}},[e._v("查询\n ")]),a("el-button",{attrs:{size:"small",icon:"el-icon-refresh"},on:{click:e.resetSearchParam}},[e._v("重置\n ")])],1)],1)],1)],1)],1)],1),a("el-card",{staticClass:"box-card",attrs:{shadow:"hover"}},[e.inViewMode?e._e():a("el-button-group",[e.hasPermission("add")?a("el-button",{attrs:{size:"mini",icon:"el-icon-plus"},on:{click:e.addNewMsGatewayRouteConfig}},[e._v("新增\n ")]):e._e(),e.hasPermission("del")?a("el-button",{attrs:{type:"danger",size:"mini",icon:"el-icon-delete"},on:{click:e.deleteSelectedMsGatewayRouteConfig}},[e._v("删除\n ")]):e._e(),e.hasPermission("edit")?a("el-button",{attrs:{size:"mini",icon:"el-icon-edit"},on:{click:e.editSelectedMsGatewayRouteConfig}},[e._v("编辑\n ")]):e._e(),a("el-button",{attrs:{size:"mini",icon:"el-icon-tickets"},on:{click:e.viewDefaultGatewayRouteConfig}},[e._v("查看默认路由配置\n ")])],1),a("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.msGatewayRouteConfigTableLoading,expression:"msGatewayRouteConfigTableLoading"}],ref:"msGatewayRouteConfigTable",staticStyle:{width:"100%","margin-top":"15px","margin-bottom":"15px"},attrs:{size:"medium",stripe:"",border:"","tooltip-effect":"dark",data:e.msGatewayRouteConfigTablePage.list},on:{"row-click":e.handleRowClick,"sort-change":e.handleSortChange,"selection-change":e.handleSelectionChange}},[a("el-table-column",{attrs:{type:"selection",width:"55"}}),a("el-table-column",{attrs:{prop:"routeName",label:"路由名称",width:"140"}}),a("el-table-column",{attrs:{prop:"sysName",label:"系统",sortable:"custom","show-overflow-tooltip":""}}),a("el-table-column",{attrs:{prop:"serviceName",label:"服务",sortable:"custom","show-overflow-tooltip":""}}),a("el-table-column",{attrs:{prop:"routeUri",label:"路由地址",sortable:"custom","show-overflow-tooltip":""}}),a("el-table-column",{attrs:{prop:"requestUri",label:"请求路径",sortable:"custom","show-overflow-tooltip":""}}),a("el-table-column",{attrs:{prop:"requestMethods",label:"请求类型",sortable:"custom","show-overflow-tooltip":""}}),a("el-table-column",{attrs:{prop:"routeSort",label:"顺序",sortable:"custom",width:"80"}}),e.hasPermission("edit")?a("el-table-column",{attrs:{prop:"routeEnabled",label:"启用",sortable:"custom",width:"80"},scopedSlots:e._u([{key:"default",fn:function(t){return[a("el-switch",{attrs:{"active-value":"1","inactive-value":"0"},on:{change:function(a){return e.handleRouteEnabledChange(t)}},model:{value:t.row.routeEnabled,callback:function(a){e.$set(t.row,"routeEnabled",a)},expression:"scope.row.routeEnabled"}})]}}],null,!1,4135534394)}):e._e()],1),a("el-pagination",{attrs:{layout:"total, sizes, ->, prev, pager, next, jumper",total:e.msGatewayRouteConfigTablePage.count,"page-sizes":[5,10,15,20],"page-size":e.searchParams.limit,background:""},on:{"size-change":e.handleTableSizeChange,"current-change":e.handleTableCurrentChange}}),a("el-tabs",{staticStyle:{"margin-top":"15px"},attrs:{value:"rateLimiterTab",type:"border-card"}},[a("el-tab-pane",{attrs:{label:"API限流",name:"rateLimiterTab"}},[!e.inViewMode&&e.hasPermission("edit")?a("el-button-group",[a("el-button",{attrs:{size:"mini",icon:"el-icon-edit"},on:{click:e.editRateLimiter}},[e._v("修改\n ")]),a("el-button",{attrs:{type:"danger",size:"mini",icon:"el-icon-delete"},on:{click:e.clearRateLimiter}},[e._v("清除\n ")]),a("el-button",{directives:[{name:"show",rawName:"v-show",value:e.rateLimiterEditing,expression:"rateLimiterEditing"}],attrs:{size:"mini",icon:"el-icon-check"},on:{click:e.saveRateLimiter}},[e._v("\n 保存\n ")]),a("el-button",{directives:[{name:"show",rawName:"v-show",value:e.rateLimiterEditing,expression:"rateLimiterEditing"}],attrs:{size:"mini",icon:"el-icon-close"},on:{click:e.cancelRateLimiter}},[e._v("\n 取消\n ")])],1):e._e(),a("el-form",{ref:"rateLimiterForm",staticClass:"with-border",staticStyle:{width:"800px"},attrs:{"label-position":"right",size:"small","label-width":"180px",model:e.rateLimiter,rules:e.rateLimiterRules}},[a("el-row",{attrs:{type:"flex",justify:"center"}},[a("el-col",{attrs:{span:12}},[a("el-form-item",[a("span",{attrs:{slot:"label"},slot:"label"},[e._v("限流类型"),a("el-tooltip",{attrs:{content:"请求分组依据,组内并发量达到最高值时将触发限流策略"}},[a("i",{staticClass:"el-icon-question"})])],1),a("el-select",{staticStyle:{width:"200px"},attrs:{disabled:!e.rateLimiterEditing,placeholder:"请选择限流类型"},model:{value:e.rateLimiter.keyResolver,callback:function(t){e.$set(e.rateLimiter,"keyResolver",t)},expression:"rateLimiter.keyResolver"}},e._l(e.pageDictMap["ms_rate_limiter_type"],(function(e){return a("el-option",{key:e.id,attrs:{label:e.paramName,value:e.paramCode}})})),1)],1)],1),a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{prop:"paramName",label:"参数名称"}},[a("el-input",{attrs:{placeholder:"请输入参数名称",disabled:!e.rateLimiterEditing||"remoteAddrKeyResolver"===e.rateLimiter.keyResolver},model:{value:e.rateLimiter.paramName,callback:function(t){e.$set(e.rateLimiter,"paramName",t)},expression:"rateLimiter.paramName"}})],1)],1)],1),a("el-row",{attrs:{type:"flex",justify:"center"}},[a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{prop:"burstCapacity"}},[a("span",{attrs:{slot:"label"},slot:"label"},[e._v("最高并发量(秒)"),a("el-tooltip",{attrs:{content:"每秒并发请求数量达到输入数值时将触发限流策略"}},[a("i",{staticClass:"el-icon-question"})])],1),a("el-input",{attrs:{placeholder:"请输入最高并发量",disabled:!e.rateLimiterEditing},model:{value:e.rateLimiter.burstCapacity,callback:function(t){e.$set(e.rateLimiter,"burstCapacity",t)},expression:"rateLimiter.burstCapacity"}})],1)],1),a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{prop:"replenishRate"}},[a("span",{attrs:{slot:"label"},slot:"label"},[e._v("最高新增请求数(秒)"),a("el-tooltip",{attrs:{content:"触发限流策略后允许用户每秒发起的请求数量,超出该数量的请求将被丢弃"}},[a("i",{staticClass:"el-icon-question"})])],1),a("el-input",{attrs:{placeholder:"请输入最高新增请求数",disabled:!e.rateLimiterEditing},model:{value:e.rateLimiter.replenishRate,callback:function(t){e.$set(e.rateLimiter,"replenishRate",t)},expression:"rateLimiter.replenishRate"}})],1)],1)],1)],1)],1),a("el-tab-pane",{attrs:{label:"API降级",name:"fallbackTab"}},[!e.inViewMode&&e.hasPermission("edit")?a("el-button-group",[a("el-button",{attrs:{size:"mini",icon:"el-icon-edit"},on:{click:e.editFallback}},[e._v("修改\n ")]),a("el-button",{attrs:{type:"danger",size:"mini",icon:"el-icon-delete"},on:{click:e.clearFallback}},[e._v("清除\n ")]),a("el-button",{directives:[{name:"show",rawName:"v-show",value:e.fallbackEditing,expression:"fallbackEditing"}],attrs:{size:"mini",icon:"el-icon-check"},on:{click:e.saveFallback}},[e._v("\n 保存\n ")]),a("el-button",{directives:[{name:"show",rawName:"v-show",value:e.fallbackEditing,expression:"fallbackEditing"}],attrs:{size:"mini",icon:"el-icon-close"},on:{click:e.cancelFallback}},[e._v("\n 取消\n ")])],1):e._e(),a("el-form",{ref:"fallbackForm",staticClass:"with-border",staticStyle:{width:"800px"},attrs:{"label-position":"right",size:"small","label-width":"180px",model:e.fallback,rules:e.fallbackRules}},[a("el-row",{attrs:{type:"flex",justify:"center"}},[a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{prop:"name",label:"策略名称"}},[a("el-input",{attrs:{placeholder:"请输入降级策略名称",disabled:!e.fallbackEditing},model:{value:e.fallback.name,callback:function(t){e.$set(e.fallback,"name",t)},expression:"fallback.name"}})],1)],1),a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{prop:"fallbackEnabled",label:"启用降级策略"}},[a("el-switch",{attrs:{disabled:!e.fallbackEditing,"active-value":"1","inactive-value":"0"},model:{value:e.fallback.fallbackEnabled,callback:function(t){e.$set(e.fallback,"fallbackEnabled",t)},expression:"fallback.fallbackEnabled"}})],1)],1)],1),a("el-row",{attrs:{type:"flex",justify:"center"}},[a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{prop:"executionMaxRequests"}},[a("span",{attrs:{slot:"label"},slot:"label"},[e._v("\n 最高请求并发量\n "),a("el-tooltip",{attrs:{content:"超出最高并发量的请求将被拒绝服务,直接触发降级策略"}},[a("i",{staticClass:"el-icon-question"})])],1),a("el-input",{attrs:{placeholder:"请输入最高请求并发量",disabled:!e.fallbackEditing},model:{value:e.fallback.executionMaxRequests,callback:function(t){e.$set(e.fallback,"executionMaxRequests",t)},expression:"fallback.executionMaxRequests"}})],1)],1),a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{prop:"fallbackMaxRequests"}},[a("span",{attrs:{slot:"label"},slot:"label"},[e._v("\n 最高降级并发量\n "),a("el-tooltip",{attrs:{content:"超出最高并发量的降级请求将被拒绝服务,直接抛出异常"}},[a("i",{staticClass:"el-icon-question"})])],1),a("el-input",{attrs:{placeholder:"最高降级并发量",disabled:!e.fallbackEditing},model:{value:e.fallback.fallbackMaxRequests,callback:function(t){e.$set(e.fallback,"fallbackMaxRequests",t)},expression:"fallback.fallbackMaxRequests"}})],1)],1)],1),a("el-row",{attrs:{type:"flex",justify:"center"}},[a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{prop:"uri"}},[a("span",{attrs:{slot:"label"},slot:"label"},[e._v("降级地址 "),a("el-tooltip",{attrs:{content:"降级请求将被转发到该地址"}},[a("i",{staticClass:"el-icon-question"})])],1),a("el-input",{attrs:{placeholder:"请输入异常发生时服务降级地址",disabled:!e.fallbackEditing},model:{value:e.fallback.uri,callback:function(t){e.$set(e.fallback,"uri",t)},expression:"fallback.uri"}})],1)],1),a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{prop:"circuitVolumeThreshold"}},[a("span",{attrs:{slot:"label"},slot:"label"},[e._v("\n 熔断最小阈值\n "),a("el-tooltip",{attrs:{content:"请求失败次数达到设置阈值后才会触发熔断"}},[a("i",{staticClass:"el-icon-question"})])],1),a("el-input",{attrs:{placeholder:"请输入熔断最小阈值",disabled:!e.fallbackEditing},model:{value:e.fallback.circuitVolumeThreshold,callback:function(t){e.$set(e.fallback,"circuitVolumeThreshold",t)},expression:"fallback.circuitVolumeThreshold"}})],1)],1)],1),a("el-row",{attrs:{type:"flex",justify:"center"}},[a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{prop:"executionEnabled",label:"启用超时降级策略"}},[a("el-switch",{attrs:{disabled:!e.fallbackEditing,"active-value":"1","inactive-value":"0"},model:{value:e.fallback.executionEnabled,callback:function(t){e.$set(e.fallback,"executionEnabled",t)},expression:"fallback.executionEnabled"}})],1)],1),a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{prop:"executionTimeout"}},[a("span",{attrs:{slot:"label"},slot:"label"},[e._v("请求超时(毫秒)\n "),a("el-tooltip",{attrs:{content:"超时的请求将触发降级策略"}},[a("i",{staticClass:"el-icon-question"})])],1),a("el-input",{attrs:{placeholder:"请输入请求超时时间",disabled:!e.fallbackEditing},model:{value:e.fallback.executionTimeout,callback:function(t){e.$set(e.fallback,"executionTimeout",t)},expression:"fallback.executionTimeout"}})],1)],1)],1)],1)],1),a("el-tab-pane",{attrs:{label:"IP黑白名单",name:"IPStrategyTab"}},[!e.inViewMode&&e.hasPermission("edit")?a("el-button-group",[a("el-button",{attrs:{size:"mini",icon:"el-icon-edit"},on:{click:e.editIPStrategy}},[e._v("修改\n ")]),a("el-button",{attrs:{type:"danger",size:"mini",icon:"el-icon-delete"},on:{click:e.clearIPStrategy}},[e._v("清除\n ")]),a("el-button",{directives:[{name:"show",rawName:"v-show",value:e.IPStrategyEditing,expression:"IPStrategyEditing"}],attrs:{size:"mini",icon:"el-icon-plus"},on:{click:e.addIPStrategy}},[e._v("\n 新增地址\n ")]),a("el-button",{directives:[{name:"show",rawName:"v-show",value:e.IPStrategyEditing,expression:"IPStrategyEditing"}],attrs:{size:"mini",icon:"el-icon-check"},on:{click:e.saveIPStrategy}},[e._v("\n 保存\n ")]),a("el-button",{directives:[{name:"show",rawName:"v-show",value:e.IPStrategyEditing,expression:"IPStrategyEditing"}],attrs:{size:"mini",icon:"el-icon-close"},on:{click:e.cancelIPStrategy}},[e._v("\n 取消\n ")])],1):e._e(),a("el-form",{staticClass:"with-border",staticStyle:{width:"753px"},attrs:{"label-position":"right",size:"small","label-width":"100px"}},[a("el-row",{attrs:{type:"flex",justify:"center"}},[a("el-col",{attrs:{span:24}},[a("el-form-item",{attrs:{label:"类型"}},[a("el-select",{staticStyle:{width:"200px"},attrs:{disabled:!e.IPStrategyEditing,placeholder:"请选择名单类型"},model:{value:e.IPStrategy.type,callback:function(t){e.$set(e.IPStrategy,"type",t)},expression:"IPStrategy.type"}},e._l(e.pageDictMap["ip_filter_type"],(function(e){return a("el-option",{key:e.id,attrs:{label:e.paramName,value:e.paramCode}})})),1)],1)],1)],1),a("el-row",{attrs:{type:"flex",justify:"center"}},[a("el-col",{attrs:{span:24}},[a("el-form-item",{attrs:{label:"地址列表"}},[a("el-table",{staticStyle:{width:"100%","margin-top":"15px","margin-bottom":"15px"},attrs:{"row-key":"id",size:"medium",stripe:"",border:"","tooltip-effect":"dark",data:e.IPStrategy.strategyList}},[a("el-table-column",{attrs:{prop:"beginIP",label:"起始IP",width:"150"}}),a("el-table-column",{attrs:{prop:"endIP",label:"结束IP",width:"150"}}),a("el-table-column",{attrs:{prop:"beginTime",label:"开始时间",width:"100"}}),a("el-table-column",{attrs:{prop:"endTime",label:"结束时间",width:"100"}}),e.IPStrategyEditing?a("el-table-column",{attrs:{prop:"operation",label:"操作",width:"130"},scopedSlots:e._u([{key:"default",fn:function(t){return[a("el-button",{attrs:{size:"mini",icon:"el-icon-edit"},on:{click:function(a){return e.editIPStrategyRecord(t)}}}),a("el-button",{attrs:{size:"mini",type:"danger",icon:"el-icon-delete"},on:{click:function(a){return e.deleteIPStrategy(t)}}})]}}],null,!1,402904876)}):e._e()],1)],1)],1)],1)],1)],1),a("el-tab-pane",{attrs:{label:"安全策略",name:"securityStrategyTab"}},[!e.inViewMode&&e.hasPermission("edit")?a("el-button-group",[a("el-button",{attrs:{size:"mini",icon:"el-icon-edit"},on:{click:e.editSecurityStrategy}},[e._v("修改\n ")]),a("el-button",{attrs:{type:"danger",size:"mini",icon:"el-icon-delete"},on:{click:e.clearSecurityStrategy}},[e._v("清除\n ")]),a("el-button",{directives:[{name:"show",rawName:"v-show",value:e.securityStrategyEditing,expression:"securityStrategyEditing"}],attrs:{size:"mini",icon:"el-icon-check"},on:{click:e.saveSecurityStrategy}},[e._v("\n 保存\n ")]),a("el-button",{directives:[{name:"show",rawName:"v-show",value:e.securityStrategyEditing,expression:"securityStrategyEditing"}],attrs:{size:"mini",icon:"el-icon-close"},on:{click:e.cancelSecurityStrategy}},[e._v("\n 取消\n ")])],1):e._e(),a("el-form",{ref:"securityStrategyForm",staticClass:"with-border",staticStyle:{width:"400px"},attrs:{"label-position":"right",size:"small","label-width":"100px"}},[a("el-row",{attrs:{type:"flex",justify:"center"}},[a("el-col",{attrs:{span:24}},[a("el-form-item",[a("span",{attrs:{slot:"label"},slot:"label"},[e._v("安全策略"),a("el-tooltip",{attrs:{content:"所有请求必须携带指定安全策略信息才能获得服务响应"}},[a("i",{staticClass:"el-icon-question"})])],1),a("el-select",{attrs:{disabled:!e.securityStrategyEditing,filterable:"",clearable:!1,remote:"",placeholder:"输入关键字搜索策略名称","remote-method":e.getSecurityStrategyBySys,loading:e.securityStrategyLoading},on:{focus:e.handleSecurityStrategyFocus},model:{value:e.securityStrategy.id,callback:function(t){e.$set(e.securityStrategy,"id",t)},expression:"securityStrategy.id"}},e._l(e.securityStrategyList,(function(e){return a("el-option",{key:e.id,attrs:{label:e.strategyName,value:e.id,disabled:e.disabled}})})),1)],1)],1)],1)],1)],1)],1)],1),a("el-dialog",{attrs:{visible:e.showRouteConfig}},[a("MsGatewayRouteConfigDetail")],1)],1)},r=[],s=(a("7f7f"),a("a8db")),l=a("cebc"),o=(a("ac6a"),a("28a5"),a("c5f6"),a("70c7")),n={grayScaleRelease:"0",serviceId:"",serviceName:"",routeName:"",sysId:"",sysName:"",limit:5,offset:0,order:"",sort:""},c={name:"msGatewayRouteConfigList",data:function(){var e=this;function t(t,a,i){var r=e.rateLimiter.burstCapacity;!r||Number(r)<Number(a)?i(new Error("新增请求数必须小于最高并发量")):i()}return{searchParams:JSON.parse(JSON.stringify(n)),fieldDictTypeMap:{predicateType:"ms_gateway_predicate_type",filterType:"ms_gateway_filter_type",routeType:"ms_gateway_route_type",enableSecStrategy:"y_n",IPStrategyType:"ip_filter_type",rateLimiterType:"ms_rate_limiter_type"},pageDictMap:{},editType:this.$$utils.getQueryString("editType"),msGatewayRouteConfigTablePage:{},msGatewayRouteConfigTableLoading:!1,sysLoading:!1,msSysList:[],serviceLoading:!1,msServiceList:[],selectedConfig:{},rateLimiter:{keyResolver:"",paramName:"",burstCapacity:"",replenishRate:""},rateLimiterRules:{paramName:[{max:50,message:"参数名称长度不得超过50个字符",trigger:"blur"}],burstCapacity:[{required:!0,message:"桶容量不能为空",trigger:"blur"},{validator:e.$$utils.validator.checkNumber,max:5,name:"桶容量",trigger:"blur"}],replenishRate:[{required:!0,message:"每秒填充速率不能为空",trigger:"blur"},{validator:t,trigger:"blur"}]},rateLimiterEditing:!1,fallback:{name:"",executionTimeout:"",executionMaxRequests:"",executionEnabled:"",fallbackEnabled:"",fallbackMaxRequests:"",circuitVolumeThreshold:"",uri:""},fallbackRules:{name:[{required:!0,message:"策略名称不能为空",trigger:"blur"},{pattern:/^[a-zA-Z]+$/,message:"策略名称仅支持英文字母",trigger:"blur"}],executionTimeout:[{required:!0,message:"请求超时时间不能为空",trigger:"blur"},{validator:e.$$utils.validator.checkNumber,message:"请求超时时间仅支持数字",trigger:"blur"}],executionMaxRequests:[{required:!0,message:"最高请求并发量不能为空",trigger:"blur"},{validator:e.$$utils.validator.checkNumber,message:"最高请求并发量仅支持数字",trigger:"blur"}],fallbackMaxRequests:[{required:!0,message:"最高降级并发量不能为空",trigger:"blur"},{validator:e.$$utils.validator.checkNumber,message:"最高降级并发量仅支持数字",trigger:"blur"}],circuitVolumeThreshold:[{required:!0,message:"熔断最小阈值不能为空",trigger:"blur"},{validator:e.$$utils.validator.checkNumber,message:"熔断最小阈值仅支持数字",trigger:"blur"}],uri:[{required:!0,message:"降级地址不能为空",trigger:"blur"},{validator:e.$$utils.validator.checkURIPath,max:100,name:"降级地址",trigger:"blur"}]},fallbackEditing:!1,IPStrategy:{type:"",strategyList:[]},IPStrategyEditing:!1,securityStrategyEditing:!1,securityStrategy:{id:"",strategyName:""},securityStrategyLoading:!1,securityStrategyList:[],showRouteConfig:!1}},computed:{inViewMode:function(){return"view"===this.editType||!this.hasPermission("add")&&!this.hasPermission("edit")&&!this.hasPermission("del")},msGatewayRouteConfigPrefix:function(){return"".concat(o["a"],"/platman/msGatewayRouteConfig")}},methods:{hasPermission:function(e){return this.$$utils.permission.hasPermission("platman:msGatewayRouteConfig:".concat(e))},getDictByField:function(e){return this.pageDictMap[this.fieldDictTypeMap[e]]},refreshTable:function(){var e=this;e.searchParams.sysId?(e.msGatewayRouteConfigTableLoading=!0,e.$$utils.axiosRequest("".concat(e.msGatewayRouteConfigPrefix,"/getMsGatewayRouteConfigList"),"获取网关路由配置信息记录","GET",e.searchParams).then((function(t){e.msGatewayRouteConfigTablePage=t,e.msGatewayRouteConfigTableLoading=!1,e.$nextTick((function(){var t=e.$refs.msGatewayRouteConfigTable;t.tableData.length>0&&t.toggleRowSelection(t.tableData[0],!0)}))}))):e.$$utils.direwolfCommonTips("warning","查询条件中系统信息不能为空")},resetSearchParam:function(){this.searchParams=JSON.parse(JSON.stringify(n));var e=this.msSysList[0];this.searchParams.sysId=e.id,this.searchParams.sysName=e.sysName,this.refreshTable()},handleRowClick:function(e,t,a){this.$$utils.eleTableClickSelection(this.$refs.msGatewayRouteConfigTable,e,a)},handleTableSizeChange:function(e){this.searchParams.limit=e,this.refreshTable()},handleTableCurrentChange:function(e){this.searchParams.offset=this.searchParams.limit*(e-1),this.refreshTable()},handleSortChange:function(e){null===e.prop?(this.searchParams.sort=n.sort,this.searchParams.order=n.order):(this.searchParams.sort=e.prop,this.searchParams.order=e.order.split("ending")[0]),this.refreshTable()},addNewMsGatewayRouteConfig:function(){this.showRouteConfigDialog({editType:"add"})},showRouteConfigDialog:function(e){var t=this;t.$$utils.openLayerDialog({title:"".concat(t.$$utils.getEditTypeName(e.editType),"网关路由配置信息"),width:"60%",height:"500px",el:"msGatewayRouteConfigForm",url:"/platman/msGatewayRouteConfigDetail",props:e,onConfirm:function(e,a){e.saveConfig((function(){t.refreshTable(),a()}))}})},editSelectedMsGatewayRouteConfig:function(){var e=this,t=this.$refs.msGatewayRouteConfigTable.selection;1===t.length?this.showRouteConfigDialog({editType:"edit",id:t[0].id}):e.$$utils.direwolfCommonTips("warning","仅能选择一条记录进行修改")},deleteSelectedMsGatewayRouteConfig:function(){var e=this,t=e.$refs.msGatewayRouteConfigTable.selection;0!==t.length?e.$$utils.direwolfCommonConfirm({title:"删除提醒",message:"数据删除后不可恢复,确定继续删除吗?"},(function(){var a=[];t.forEach((function(e){e.id&&a.push(e.id)})),a.length>0&&e.$$utils.axiosRequest("".concat(e.msGatewayRouteConfigPrefix,"/deleteAll?ids=").concat(a.join(",")),"批量删除网关路由配置信息","POST").then((function(t){"success"===t.type&&e.refreshTable()}))})):e.$$utils.direwolfCommonTips("warning","请选择要删除的记录")},viewDefaultGatewayRouteConfig:function(){var e=this,t={size:"medium",stripe:!0,border:!0,tooltipEffect:"dark"};e.$$utils.axiosRequest("/route-discovery","获取默认路由配置").then((function(a){e.$$utils.showStaticPage({title:"查看默认网关路由配置信息",contentHeight:"340px",width:"60%"},{tag:"el-table",props:{props:Object(l["a"])({},t,{data:a})},children:[{tag:"el-table-column",props:{props:{prop:"uri",label:"服务地址"}}},{tag:"el-table-column",props:{props:{prop:"predicates[0].args.pattern",label:"访问规则"}}},{tag:"el-table-column",props:{props:{prop:"order",label:"排序",width:"80px"}}}]})}))},handleSysParamFocus:function(){this.getSysListByUser()},getSysListByUser:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0,a=this;a.sysLoading=!0;var i=o["a"]+"/platman/msSystemAdmin/listSystemByCurrentUser?sysName="+e;a.$$utils.axiosRequest(i,"获取系统列表").then((function(e){if(a.sysLoading=!1,a.msSysList=e.data,t){var i=a.msSysList[0];a.searchParams.sysId=i.id,a.searchParams.sysName=i.sysName,a.refreshTable()}}))},handleServiceParamFocus:function(){this.getServiceListByUser()},getServiceListByUser:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=this;t.serviceLoading=!0;var a="".concat(o["a"],"/platman/msServiceInfo/getMsServiceInfoList?sysId=").concat(t.searchParams.sysId,"&serviceName=").concat(e);t.$$utils.axiosRequest(a,"获取系统列表").then((function(e){t.serviceLoading=!1,t.msServiceList=e.list}))},handleRouteEnabledChange:function(e){var t=this,a="启用",i=e.row,r="确定要",s="0"===i.routeEnabled?"1":"0";"0"===e.row.routeEnabled&&(a="停用"),r+=a+"此路由吗?",t.$$utils.direwolfCommonConfirm({message:r,title:a+"路由提醒"},(function(){t.$$utils.axiosRequest(t.msGatewayRouteConfigPrefix+"/save","保存网关路由配置信息","POST",i).then((function(e){"success"!==e.type?i.routeEnabled=s:t.refreshTable()})).catch((function(){i.routeEnabled=s}))}),(function(){i.routeEnabled=s}))},handleSelectionChange:function(e){1===e.length?(this.rateLimiterEditing=!1,this.fallbackEditing=!1,this.IPStrategyEditing=!1,this.selectedConfig=e[0],this.securityStrategy.id=this.selectedConfig.secStrategyId,this.getFilterList(),this.getPredicateList(),this.getSecurityStrategyBySys()):this.selectedConfig=null},getPredicateList:function(){},getFilterList:function(){var e=this;if(e.selectedConfig){var t=e.selectedConfig.id;e.$$utils.axiosRequest(o["a"]+"/platman/msGatewayRouteFilter/getMsGatewayRouteFilterList?routeConfigId="+t,"获取处理规则").then((function(a){e.IPStrategy={type:"",strategyList:[]},e.fallback={},e.rateLimiter={},a.list&&a.list.forEach((function(t){var a=t.filterType,i=t.filterValue,r=t.routeConfigId,o=Object(s["a"])(t,["filterType","filterValue","routeConfigId"]);if("RequestRateLimiter"===a){var n=JSON.parse(i),c=n["key-resolver"].split("|");e.rateLimiter={id:t.id,replenishRate:n["redis-rate-limiter.replenishRate"],burstCapacity:n["redis-rate-limiter.burstCapacity"],keyResolver:c[0],paramName:c[1]||"",routeConfigId:r,originFields:o}}else if("Hystrix"===t.filterType)e.fallback=Object(l["a"])({id:t.id},JSON.parse(i),{routeConfigId:r,originFields:o});else if("IPStrategyFilter"===t.filterType){var u=JSON.parse(i);e.IPStrategy.type=u.type,e.IPStrategy.routeConfigId=r,e.IPStrategy.strategyList.push(Object(l["a"])({id:t.id},u,{originFields:o}))}})),e.rateLimiter.id||(e.rateLimiter={routeConfigId:t}),e.fallback.id||(e.fallback={routeConfigId:t}),e.IPStrategy.type||(e.IPStrategy={routeConfigId:t,strategyList:[]})}))}else e.$$utils.direwolfCommonTips("warning","请选择配置记录来获取处理规则")},editRateLimiter:function(){this.rateLimiter.routeConfigId?this.rateLimiterEditing=!0:this.$$utils.direwolfCommonTips("error","限流规则未获取到网关配置信息,无法编辑")},cancelRateLimiter:function(){this.rateLimiterEditing=!1,this.getFilterList(),this.$refs.rateLimiterForm.resetFields()},saveRateLimiter:function(){var e=this,t=e.rateLimiter,a=t.id,i=t.replenishRate,r=t.burstCapacity,s=t.routeConfigId,n=t.keyResolver,c=t.paramName,u=JSON.stringify({"redis-rate-limiter.replenishRate":i,"redis-rate-limiter.burstCapacity":r,"key-resolver":"".concat(n).concat(c?"|"+c:"")});e.$refs["rateLimiterForm"].validate((function(t){t?a?e.$$utils.axiosRequest(o["a"]+"/platman/msGatewayRouteFilter/getMsGatewayRouteFilterList","获取API限流规则","GET",{id:a},{showLoading:!0}).then((function(t){e.saveFilter("rateLimiter",Object(l["a"])({},t.list[0],{filterValue:u}))})):e.saveFilter("rateLimiter",{filterType:"RequestRateLimiter",routeConfigId:s,filterValue:u}):e.$$utils.direwolfCommonTips("warning","输入有误,请重新确认后再提交")}))},saveFilter:function(e,t){var a=this;a.$$utils.axiosRequest(o["a"]+"/platman/msGatewayRouteFilter/save","保存处理规则","POST",t).then((function(t){"success"===t.type&&(a["".concat(e,"Editing")]=!1,a.getFilterList(),a.$$utils.direwolfCommonTips("success","保存处理规则成功"))}))},deleteFilter:function(e){var t=this;if(t.selectedConfig){var a=t[e].id;if(a){var i=t.selectedConfig.id;t.$$utils.direwolfCommonConfirm({message:"规则清除后不可恢复,确定继续清除吗?",title:"清除提醒"},(function(){t.$$utils.axiosRequest(o["a"]+"/platman/msGatewayRouteFilter/delete?id="+a,"清除规则","POST").then((function(a){"success"===a.type&&(t[e]={routeConfigId:i})}))}))}else t.$$utils.direwolfCommonTips("warning","当前路由没有指定规则,无需清除")}else t.$$utils.direwolfCommonTips("warning","请选择要清除限流规则的配置记录")},clearRateLimiter:function(){this.deleteFilter("rateLimiter")},editFallback:function(){this.fallback.routeConfigId?(this.fallbackEditing=!0,this.fallback.name||(this.fallback={name:"",executionTimeout:1e3,executionMaxRequests:10,executionEnabled:"1",fallbackEnabled:"1",fallbackMaxRequests:10,circuitVolumeThreshold:20,uri:"",routeConfigId:this.fallback.routeConfigId})):this.$$utils.direwolfCommonTips("error","降级规则未获取到网关配置信息,无法编辑")},cancelFallback:function(){this.fallbackEditing=!1,this.getFilterList(),this.$refs.fallbackForm.resetFields()},saveFallback:function(){var e=this;e.$refs.fallbackForm.validate((function(t){if(t){var a=e.fallback,i=a.id,r=a.routeConfigId,o=a.originFields,n=Object(s["a"])(a,["id","routeConfigId","originFields"]);i?e.saveFilter("fallback",Object(l["a"])({id:i,routeConfigId:r},o,{filterValue:JSON.stringify(n)})):e.saveFilter("fallback",{filterType:"Hystrix",routeConfigId:r,filterValue:JSON.stringify(n)})}else e.$$utils.direwolfCommonTips("warning","输入有误,请重新确认后再提交")}))},clearFallback:function(){this.deleteFilter("fallback")},editIPStrategy:function(){this.IPStrategy.routeConfigId?this.IPStrategyEditing=!0:this.$$utils.direwolfCommonTips("error","限流规则未获取到网关配置信息,无法编辑")},addIPStrategy:function(){var e=this;e.selectedConfig?e.showIPStrategyDialog({editType:"add"},-1):e.$$utils.direwolfCommonTips("warning","请选择要增加IP策略的配置记录")},clearIPStrategy:function(){this.deleteFilter("IPStrategy")},editIPStrategyRecord:function(e){this.showIPStrategyDialog({editType:"edit",data:e.row},e.$index)},showIPStrategyDialog:function(e,t){var a=this;a.$$utils.openLayerDialog({title:"".concat(a.$$utils.getEditTypeName(e.editType),"IP地址"),width:"50%",height:"500px",el:"IPStrategyForm",url:"/platman/ipStrategyDetail",props:Object(l["a"])({},e,{configId:a.selectedConfig.id,type:a.IPStrategy.type}),onConfirm:function(e,i){e.saveConfig((function(e){t>-1?a.IPStrategy.strategyList.splice(t,1,e):a.IPStrategy.strategyList.push(e),i()}))}})},deleteIPStrategy:function(e){var t=this;t.$$utils.direwolfCommonConfirm({title:"删除提醒",message:"数据删除后不可恢复,确定继续删除吗?"},(function(){t.$$utils.axiosRequest(o["a"]+"/platman/msGatewayRouteFilter/delete?id="+e.row.id,"删除IP策略","POST").then((function(e){"success"===e.type&&t.getFilterList()}))}))},cancelIPStrategy:function(){this.IPStrategyEditing=!1,this.getFilterList()},saveIPStrategy:function(){var e=this,t=[];e.IPStrategy.strategyList.forEach((function(a){var i=a.id,r=a.originFields,o=a.routeConfigId,n=(a.type,Object(s["a"])(a,["id","originFields","routeConfigId","type"]));t.push(Object(l["a"])({id:i,routeConfigId:o,filterType:"IPStrategyFilter",filterValue:JSON.stringify(Object(l["a"])({},n,{type:e.IPStrategy.type}))},r))})),e.$$utils.axiosRequest("".concat(o["a"],"/platman/msGatewayRouteFilter/saveBatch"),"保存IP策略信息","POST",t).then((function(t){"success"===t.type&&(e.$$utils.direwolfCommonTips("success","IP策略信息保存成功"),e.getFilterList(),e.IPStrategyEditing=!1)}))},editSecurityStrategy:function(){this.selectedConfig.id?this.securityStrategyEditing=!0:this.$$utils.direwolfCommonTips("error","安全策略未获取到网关配置信息,无法编辑")},clearSecurityStrategy:function(){var e=this;e.$$utils.direwolfCommonConfirm({title:"清除提醒",message:"数据清除后不可恢复,确定继续吗?"},(function(){e.$$utils.axiosRequest(e.msGatewayRouteConfigPrefix+"/save","清除安全策略","POST",Object(l["a"])({},e.selectedConfig,{secStrategyId:null})).then((function(t){return"success"===t.type&&e.refreshTable()}))}))},saveSecurityStrategy:function(){var e=this;e.$$utils.axiosRequest(e.msGatewayRouteConfigPrefix+"/save","保存安全策略","POST",Object(l["a"])({},e.selectedConfig,{secStrategyId:e.securityStrategy.id})).then((function(t){"success"===t.type&&(e.$$utils.direwolfCommonTips("success","安全策略保存成功"),e.refreshTable(),e.securityStrategyEditing=!1)}))},cancelSecurityStrategy:function(){this.securityStrategyEditing=!1,this.refreshTable()},getSecurityStrategyBySys:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=this;t.$$utils.axiosRequest("".concat(o["a"],"/platman/msSecurityStrategyConfig/getMsSecurityStrategyConfigList?sys.id=").concat(t.selectedConfig.sysId,"&strategyName=").concat(e),"获取安全策略信息记录").then((function(e){t.securityStrategyList=e.list,0===t.securityStrategyList.length&&(t.securityStrategyList=[{strategyName:"无数据",id:"-1",disabled:!0}])}))},handleSecurityStrategyFocus:function(){this.getSecurityStrategyBySys()}},created:function(){var e=this;e.$$utils.param.getDictByCodes("ms_gateway_route_type,y_n,ms_gateway_predicate_type,ms_gateway_filter_type,ip_filter_type,ms_rate_limiter_type").then((function(t){e.pageDictMap=t.data,e.getSysListByUser("",!0)}))},mounted:function(){}},u=c,d=a("2877"),m=Object(d["a"])(u,i,r,!1,null,"7f78a879",null);t["default"]=m.exports},dcdf:function(e,t,a){"use strict";a.r(t);var i=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("el-form",{ref:"IPStrategyForm",staticClass:"with-border",attrs:{id:"IPStrategyForm","label-position":"right",size:"small","label-width":"100px",model:e.entity,rules:e.rules}},[a("el-row",{attrs:{type:"flex",justify:"center"}},[a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{prop:"beginIP",label:"起始IP"}},[a("el-input",{attrs:{placeholder:"请输入起始IP"},model:{value:e.entity.beginIP,callback:function(t){e.$set(e.entity,"beginIP",t)},expression:"entity.beginIP"}})],1)],1),a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{prop:"endIP",label:"结束IP"}},[a("el-input",{attrs:{placeholder:"请输入结束IP"},model:{value:e.entity.endIP,callback:function(t){e.$set(e.entity,"endIP",t)},expression:"entity.endIP"}})],1)],1)],1),a("el-row",{attrs:{type:"flex",justify:"center"}},[a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{prop:"beginTime",label:"开始时间"}},[a("el-time-picker",{attrs:{"append-to-body":!1,placeholder:"请选择开始时间","value-format":"HH:mm:ss"},model:{value:e.entity.beginTime,callback:function(t){e.$set(e.entity,"beginTime",t)},expression:"entity.beginTime"}})],1)],1),a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{prop:"endTime",label:"结束时间"}},[a("el-time-picker",{attrs:{"append-to-body":!1,placeholder:"请选择结束时间","value-format":"HH:mm:ss"},model:{value:e.entity.endTime,callback:function(t){e.$set(e.entity,"endTime",t)},expression:"entity.endTime"}})],1)],1)],1)],1)},r=[],s=(a("c5f6"),a("28a5"),{name:"IPStrategyForm",props:{editType:{default:"view"},configId:String,type:String,data:Object},data:function(){var e=this;function t(t,a,i){for(var r=e.entity.beginIP.split("/")[0].split("."),s=a.split("/")[0].split("."),l=!1,o=0;o<4;o++){var n=Number(r[o]),c=Number(s[o]);if(n!==c){l=n>c;break}}l?i(new Error("结束IP必须大于起始IP")):i()}function a(t,a,i){a<e.entity.beginTime?i(new Error("结束时间必须大于开始时间")):i()}return{entity:{type:e.type,beginIP:"",endIP:"",beginTime:"",endTime:"",routeConfigId:e.configId},rules:{beginIP:[{required:!0,message:"起始IP地址不能为空",trigger:"blur"},{validator:this.$$utils.validator.checkIPv4,name:"起始IP地址",trigger:"blur"}],endIP:[{required:!0,message:"结束IP地址不能为空",trigger:"blur"},{validator:this.$$utils.validator.checkIPv4,name:"结束IP地址",trigger:"blur"},{validator:t,trigger:"blur"}],endTime:[{validator:a,trigger:"blur"}]}}},methods:{saveConfig:function(e){var t=this;t.$refs["IPStrategyForm"].validate((function(a){a?e(t.entity):t.$$utils.direwolfCommonTips("error","内容填写有误,请修改后再提交")}))}},created:function(){var e=this;e.data&&(e.entity=e.data)}}),l=s,o=a("2877"),n=Object(o["a"])(l,i,r,!1,null,"3036b78a",null);t["default"]=n.exports},e261:function(e,t,a){"use strict";a.r(t);var i=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"wrapper-cont"},[a("el-card",{staticClass:"box-card search-content",attrs:{shadow:"hover"}},[a("el-form",{attrs:{"label-position":"right",size:"small","label-width":"100px",id:"msGatewayRouteConfigSearchForm",model:e.searchParams}},[a("el-row",{attrs:{gutter:15}},[a("el-col",{attrs:{span:8}},[a("el-form-item",{attrs:{label:"路由名称"}},[a("el-input",{attrs:{placeholder:"请输入路由名称"},model:{value:e.searchParams.routeName,callback:function(t){e.$set(e.searchParams,"routeName",t)},expression:"searchParams.routeName"}})],1)],1),a("el-col",{attrs:{offset:8,span:8}},[a("el-form-item",{staticClass:"search-content-button-container"},[a("el-button-group",[a("el-button",{attrs:{type:"primary",size:"small",icon:"el-icon-search"},on:{click:e.refreshTable}},[e._v("查询\n ")]),a("el-button",{attrs:{size:"small",icon:"el-icon-refresh"},on:{click:e.resetSearchParam}},[e._v("重置\n ")])],1)],1)],1)],1)],1)],1),a("el-card",{staticClass:"box-card",attrs:{shadow:"hover"}},[e.inViewMode?e._e():a("el-button-group",[e.hasPermission("add")?a("el-button",{attrs:{size:"mini",icon:"el-icon-plus"},on:{click:e.addNewMsGatewayRouteConfig}},[e._v("\n 新增\n ")]):e._e(),e.hasPermission("del")?a("el-button",{attrs:{type:"danger",size:"mini",icon:"el-icon-delete"},on:{click:e.deleteSelectedMsGatewayRouteConfig}},[e._v("删除\n ")]):e._e(),e.hasPermission("edit")?a("el-button",{attrs:{size:"mini",icon:"el-icon-edit"},on:{click:e.editSelectedMsGatewayRouteConfig}},[e._v("编辑\n ")]):e._e()],1),a("el-table",{directives:[{name:"loading",rawName:"v-loading",value:e.msGatewayRouteConfigTableLoading,expression:"msGatewayRouteConfigTableLoading"}],ref:"msGatewayRouteConfigTable",staticStyle:{width:"100%","margin-top":"15px","margin-bottom":"15px"},attrs:{size:"medium",stripe:"",border:"","tooltip-effect":"dark",data:e.msGatewayRouteConfigTablePage.list},on:{"row-click":e.handleRowClick,"sort-change":e.handleSortChange,"selection-change":e.handleSelectionChange}},[a("el-table-column",{attrs:{type:"selection",width:"55"}}),a("el-table-column",{attrs:{prop:"routeName",label:"路由名称",width:"300"}}),a("el-table-column",{attrs:{prop:"requestUri",label:"请求路径",sortable:"custom","show-overflow-tooltip":""}}),a("el-table-column",{attrs:{prop:"routeSort",label:"顺序",sortable:"custom",width:"80"}}),e.hasPermission("edit")?a("el-table-column",{attrs:{prop:"routeEnabled",label:"启用",sortable:"custom",width:"80"},scopedSlots:e._u([{key:"default",fn:function(t){return[a("el-switch",{attrs:{"active-value":"1","inactive-value":"0"},on:{change:function(a){return e.handleRouteEnabledChange(t)}},model:{value:t.row.routeEnabled,callback:function(a){e.$set(t.row,"routeEnabled",a)},expression:"scope.row.routeEnabled"}})]}}],null,!1,4135534394)}):e._e()],1),a("el-pagination",{attrs:{layout:"total, sizes, ->, prev, pager, next, jumper",total:e.msGatewayRouteConfigTablePage.count,"page-sizes":[5,10,15,20],"page-size":e.searchParams.limit,background:""},on:{"size-change":e.handleTableSizeChange,"current-change":e.handleTableCurrentChange}}),a("el-tabs",{staticStyle:{"margin-top":"15px"},attrs:{value:"grayScaleReleaseTab",type:"border-card"}},[a("el-tab-pane",{attrs:{label:"地址列表",name:"grayScaleReleaseTab"}},[a("el-table",{ref:"grayScaleReleaseTable",staticStyle:{width:"427px","margin-top":"15px","margin-bottom":"15px"},attrs:{size:"medium",stripe:"",border:"","tooltip-effect":"dark",data:e.grayScaleReleaseList},on:{"row-click":e.handleGrayScaleReleaseRowClick}},[a("el-table-column",{attrs:{type:"selection",width:"55"}}),a("el-table-column",{attrs:{prop:"uri",label:"地址",width:"300"}}),a("el-table-column",{attrs:{prop:"weight",label:"权重",width:"70"}})],1)],1)],1)],1)],1)},r=[],s=(a("ac6a"),a("28a5"),a("70c7")),l={grayScaleRelease:"1",routeName:"",limit:5,offset:0,order:"",sort:""},o={name:"msGatewayRouteConfigList",data:function(){return{searchParams:JSON.parse(JSON.stringify(l)),fieldDictTypeMap:{predicateType:"ms_gateway_predicate_type",enableSecStrategy:"y_n",routeEnabled:"y_n"},pageDictMap:{},editType:this.$$utils.getQueryString("editType"),msGatewayRouteConfigTablePage:{},msGatewayRouteConfigTableLoading:!1,selectedConfig:null,grayScaleReleaseList:[]}},computed:{inViewMode:function(){return"view"===this.editType||!this.hasPermission("add")&&!this.hasPermission("edit")&&!this.hasPermission("del")},msGatewayRouteConfigPrefix:function(){return"".concat(s["a"],"/platman/msGatewayRouteConfig")}},methods:{hasPermission:function(e){return this.$$utils.permission.hasPermission("platman:msGatewayRouteConfig:".concat(e))},getDictByField:function(e){return this.pageDictMap[this.fieldDictTypeMap[e]]},refreshTable:function(){var e=this;e.msGatewayRouteConfigTableLoading=!0,e.$$utils.axiosRequest(e.msGatewayRouteConfigPrefix+"/getMsGatewayRouteConfigList","获取网关路由配置信息记录","GET",e.searchParams).then((function(t){e.msGatewayRouteConfigTablePage=t,e.msGatewayRouteConfigTableLoading=!1,e.$nextTick((function(){var t=e.$refs.msGatewayRouteConfigTable;t.tableData.length>0?t.toggleRowSelection(t.tableData[0],!0):e.grayScaleReleaseList=[]}))}))},resetSearchParam:function(){this.searchParams=JSON.parse(JSON.stringify(l)),this.refreshTable()},handleRowClick:function(e,t,a){this.$$utils.eleTableClickSelection(this.$refs.msGatewayRouteConfigTable,e,a)},handleTableSizeChange:function(e){this.searchParams.limit=e,this.refreshTable()},handleTableCurrentChange:function(e){this.searchParams.offset=this.searchParams.limit*(e-1),this.refreshTable()},handleSortChange:function(e){null===e.prop?(this.searchParams.sort=l.sort,this.searchParams.order=l.order):(this.searchParams.sort=e.prop,this.searchParams.order=e.order.split("ending")[0]),this.refreshTable()},addNewMsGatewayRouteConfig:function(){this.showRouteConfigDialog({editType:"add",grayScaleRelease:"1"})},showRouteConfigDialog:function(e){var t=this;t.$$utils.openLayerDialog({title:"".concat(t.$$utils.getEditTypeName(e.editType),"网关路由配置信息"),width:"60%",height:"500px",el:"msGatewayRouteConfigForm",url:"/platman/msGatewayRouteConfigDetail",props:e,onConfirm:function(e,a){e.saveConfig((function(){t.refreshTable(),a()}))}})},editSelectedMsGatewayRouteConfig:function(){var e=this,t=this.$refs.msGatewayRouteConfigTable.selection;1===t.length?e.showRouteConfigDialog({editType:"edit",id:t[0].id,grayScaleRelease:"1"}):e.$$utils.direwolfCommonTips("warning","仅能选择一条记录进行修改")},deleteSelectedMsGatewayRouteConfig:function(){var e=this,t=e.$refs.msGatewayRouteConfigTable.selection;0!==t.length?e.$$utils.direwolfCommonConfirm({title:"删除提醒",message:"数据删除后不可恢复,确定继续删除吗?"},(function(){var a=[];t.forEach((function(e){e.id&&a.push(e.id)})),a.length>0&&e.$$utils.axiosRequest(e.msGatewayRouteConfigPrefix+"/deleteAll?grayScaleRelease=1&ids="+a.join(","),"批量删除网关路由配置信息","POST").then((function(t){"success"===t.type&&e.refreshTable()}))})):e.$$utils.direwolfCommonTips("warning","请选择要删除的记录")},handleRouteEnabledChange:function(e){var t=this,a="启用",i=e.row,r="确定要",s="0"===i.routeEnabled?"1":"0";"0"===e.row.routeEnabled&&(a="停用"),r+=a+"此路由吗?",t.$$utils.direwolfCommonConfirm({message:r,title:a+"路由提醒"},(function(){t.$$utils.axiosRequest(t.msGatewayRouteConfigPrefix+"/save","保存网关路由配置信息","POST",i).then((function(e){"success"!==e.type?i.routeEnabled=s:t.refreshTable()})).catch((function(){i.routeEnabled=s}))}),(function(){i.routeEnabled=s}))},handleSelectionChange:function(e){1===e.length?(this.selectedConfig=e[0],this.grayScaleReleaseList=this.selectedConfig.grayScaleReleaseDetails):this.selectedConfig=null},getPredicateList:function(){var e=this;if(e.selectedConfig){var t=e.selectedConfig.id;e.$$utils.axiosRequest(s["a"]+"/platman/msGatewayRoutePredicate/getMsGatewayRoutePredicateList?routeConfigId="+t,"获取访问规则").then((function(t){e.IPWhiteList=[],t.list&&t.list.forEach((function(t){"RemoteAddr"===t.predicateType&&e.IPWhiteList.push(t)}))}))}else e.$$utils.direwolfCommonTips("warning","请选择配置记录来获取访问规则")},deleteGrayScaleRelease:function(){},handleGrayScaleReleaseRowClick:function(e,t,a){this.$$utils.eleTableClickSelection(this.$refs.grayScaleReleaseTable,e,a)}},created:function(){var e=this;e.$$utils.param.getDictByCodes("y_n,ms_gateway_predicate_type").then((function(t){e.pageDictMap=t.data,e.refreshTable()}))},mounted:function(){}},n=o,c=a("2877"),u=Object(c["a"])(n,i,r,!1,null,"2882cb19",null);t["default"]=u.exports},ffca:function(e,t,a){"use strict";a.r(t);var i=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("el-form",{ref:"msGatewayRouteConfigForm",staticClass:"with-border",attrs:{id:"msGatewayRouteConfigForm","label-position":"right",size:"small","label-width":"100px",model:e.entity,rules:e.rules}},[a("el-row",{attrs:{type:"flex",justify:"center"}},[a("el-col",{attrs:{span:16}},[a("el-form-item",{attrs:{prop:"routeName",label:"路由名称"}},[a("el-input",{attrs:{placeholder:"请输入路由名称"},model:{value:e.entity.routeName,callback:function(t){e.$set(e.entity,"routeName",t)},expression:"entity.routeName"}})],1)],1),a("el-col",{attrs:{span:8}},[a("el-form-item",{attrs:{prop:"routeSort",label:"路由排序"}},[a("el-input-number",{attrs:{step:1,precision:0,"controls-position":"right"},model:{value:e.entity.routeSort,callback:function(t){e.$set(e.entity,"routeSort",t)},expression:"entity.routeSort"}})],1)],1)],1),a("el-row",{attrs:{type:"flex",justify:"center"}},[a("el-col",{attrs:{span:16}},[a("el-form-item",{attrs:{prop:"requestUri",label:"请求地址"}},[a("el-input",{attrs:{placeholder:"请输入请求地址"},model:{value:e.entity.requestUri,callback:function(t){e.$set(e.entity,"requestUri",t)},expression:"entity.requestUri"}})],1)],1),a("el-col",{attrs:{span:8}},[a("el-form-item",{attrs:{label:"自动启用配置"}},[a("el-switch",{attrs:{"active-value":"1","inactive-value":"0"},model:{value:e.entity.routeEnabled,callback:function(t){e.$set(e.entity,"routeEnabled",t)},expression:"entity.routeEnabled"}})],1)],1)],1),a("el-row",{attrs:{type:"flex",justify:"center"}},[a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{prop:"sysId",label:"系统"}},[a("el-select",{attrs:{"popper-append-to-body":!1,filterable:"",clearable:!1,remote:"",placeholder:"输入关键字搜索系统","remote-method":e.getSysListByUser,loading:e.sysLoading},on:{focus:e.handleSysParamFocus,change:e.handleSystemChange},model:{value:e.entity.sysName,callback:function(t){e.$set(e.entity,"sysName",t)},expression:"entity.sysName"}},e._l(e.msSysList,(function(e){return a("el-option",{key:e.id,attrs:{label:e.sysName,value:e.id}})})),1)],1)],1),a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{prop:"serviceId",label:"服务"}},[a("el-select",{attrs:{"popper-append-to-body":!1,filterable:"",clearable:!1,remote:"",placeholder:"输入关键字搜索服务","remote-method":e.getServiceListByUser,loading:e.serviceLoading},on:{focus:e.handleServiceParamFocus,change:e.handleServiceChange},model:{value:e.entity.serviceName,callback:function(t){e.$set(e.entity,"serviceName",t)},expression:"entity.serviceName"}},e._l(e.msServiceList,(function(e){return a("el-option",{key:e.id,attrs:{label:e.serviceName,value:e.id}})})),1)],1)],1)],1),a("el-row",{directives:[{name:"show",rawName:"v-show",value:"0"===e.grayScaleRelease,expression:"grayScaleRelease === '0'"}],attrs:{type:"flex",justify:"center"}},[a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{prop:"routeUri",label:"路由地址"}},[a("el-tooltip",{attrs:{content:e.routePath||"路由地址未填写",placement:"top"}},[a("el-input",{staticClass:"input-with-select-prepend",attrs:{placeholder:e.showServiceButton?"请选择服务":"请输入路由地址",readOnly:e.routePathDisabled},model:{value:e.routePath,callback:function(t){e.routePath=t},expression:"routePath"}},[a("el-select",{attrs:{slot:"prepend","popper-append-to-body":!1},on:{change:e.handleRouteProtocolChange},slot:"prepend",model:{value:e.routeProtocol,callback:function(t){e.routeProtocol=t},expression:"routeProtocol"}},[a("el-option",{attrs:{label:"lb://",value:"lb://"}}),a("el-option",{attrs:{label:"ws://",value:"ws://"}}),a("el-option",{attrs:{label:"lb:ws://",value:"lb:ws://"}}),a("el-option",{attrs:{label:"http://",value:"http://"}}),a("el-option",{attrs:{label:"https://",value:"https://"}})],1)],1)],1)],1)],1),a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{label:"请求方式"}},[a("el-select",{attrs:{multiple:"","popper-append-to-body":!1,placeholder:"请选择类型"},model:{value:e.entity.requestMethods,callback:function(t){e.$set(e.entity,"requestMethods",t)},expression:"entity.requestMethods"}},e._l(e.methodList,(function(e){return a("el-option",{key:e.value,attrs:{label:e.value,value:e.value}})})),1)],1)],1)],1),a("el-row",[a("el-col",{directives:[{name:"show",rawName:"v-show",value:"1"===e.grayScaleRelease,expression:"grayScaleRelease === '1'"}]},["view"!==e.editType?a("el-button-group",{staticStyle:{"margin-top":"5px","margin-bottom":"5px"}},[a("el-button",{attrs:{size:"mini",icon:"el-icon-plus"},on:{click:e.addGrayScaleRelease}},[e._v("新增\n ")])],1):e._e(),a("el-table",{ref:"grayScaleReleaseTable",staticStyle:{width:"100%"},attrs:{size:"medium",stripe:"",border:"","tooltip-effect":"dark",data:e.grayScaleReleaseList},on:{"row-click":e.handleGrayScaleReleaseRowClick}},[a("el-table-column",{attrs:{type:"selection",width:"55"}}),a("el-table-column",{attrs:{prop:"uri",label:"地址"}}),a("el-table-column",{attrs:{prop:"weight",label:"权重",width:"90"}}),a("el-table-column",{attrs:{prop:"operation",label:"操作",width:"70"},scopedSlots:e._u([{key:"default",fn:function(t){return[a("el-button",{attrs:{size:"mini",type:"danger",icon:"el-icon-delete"},on:{click:function(a){return e.deleteGrayScaleRelease(t)}}})]}}])})],1)],1)],1)],1)},r=[],s=(a("c5f6"),a("ac6a"),a("7514"),a("cebc")),l=(a("28a5"),a("f559"),a("70c7")),o=a("088b"),n={name:"msGatewayRouteConfigDetail",props:{editType:{default:o["a"].getQueryString("editType")||"view"},id:{default:o["a"].getQueryString("id")||null},grayScaleRelease:{default:o["a"].getQueryString("grayScaleRelease")||"0"}},data:function(){var e=this;function t(t,a,i){"0"===e.grayScaleRelease?a&&-1!==a.indexOf("//")&&a.indexOf("//")!==a.length-2?a.startsWith("lb:")&&!e.entity.serviceId?i(new Error("负载均衡地址必须选择有效的微服务")):i():i(new Error("路由地址不能为空")):i()}return{entity:{grayScaleRelease:"0",routerName:"",routerDesc:"",routeSort:0,serviceId:"",routeUri:"",sysId:"",enableSecStrategy:"0",secStrategyId:"",serviceName:"",requestUri:"",requestMethods:[],routeEnabled:"0"},sysLoading:!1,msSysList:[],serviceLoading:!1,msServiceList:[],methodPredicate:{predicateType:"Method",predicateValue:[]},timePredicate:{predicateValue:""},rateLimiter:{name:"",keyResolverName:"",burstCapacity:"",replenishRate:""},dataLoading:!!e.id,routeProtocol:"lb://",routePath:"",routePathDisabled:!0,fieldDictTypeMap:{enableSecStrategy:"y_n",predicateType:"ms_gateway_predicate_type"},pageDictMap:{},rules:{sysId:[{required:!0,message:"系统不能为空",trigger:"change"}],serviceId:[{required:!0,message:"服务不能为空",trigger:"change"}],routeName:[{required:!0,message:"路由名称不能为空",trigger:"change"},{max:100,message:"长度不能超过 100 个字符",trigger:"change"}],requestUri:[{required:!0,message:"请求地址不能为空",trigger:"change"}],routeUri:[{required:!0,validator:t,trigger:"change"},{max:500,message:"长度不能超过 500 个字符",trigger:"change"}],routeSort:[{required:!0,message:"路由顺序不能为空",trigger:"change"},{validator:e.$$utils.validator.checkNumber,max:5,precision:0,name:"顺序",trigger:"change"}]},methodList:[{value:"GET"},{value:"POST"},{value:"DELETE"},{value:"PUT"},{value:"PATCH"}],listPath:"",grayScaleReleaseList:[]}},computed:{isViewing:function(){return"view"===this.editType},urlPrefix:function(){return"".concat(l["a"],"/platman")},msGatewayRouteConfigPrefix:function(){return"".concat(l["a"],"/platman/msGatewayRouteConfig")},showServiceButton:function(){return"lb://"===this.routeProtocol||"lb:ws://"===this.routeProtocol}},watch:{routeProtocol:function(e){this.entity.routeUri=e+this.routePath,this.handleRouteProtocolChange(e)},routePath:function(e){this.entity.routeUri=this.routeProtocol+e},entity:{handler:function(e){if(e.routeUri){var t=e.routeUri.split("//");this.routePath=t[1],this.routeProtocol=t[0]+"//"}},deep:!0}},beforeRouteEnter:function(e,t,a){a((function(e){e.listPath=t.path}))},methods:{initFormData:function(){var e=this,t=e.id;t&&e.$$utils.axiosRequest("".concat(e.msGatewayRouteConfigPrefix,"/getEntity?id=").concat(t,"&grayScaleRelease=").concat(e.grayScaleRelease),"获取网关路由配置信息").then((function(t){e.dataLoading=!1,e.entity=Object(s["a"])({},t.data,{requestMethods:t.data.requestMethods.split(",")}),e.grayScaleReleaseList=t.data.grayScaleReleaseDetails}))},saveConfig:function(e){var t=this,a={};if("1"===t.grayScaleRelease){if(0===t.grayScaleReleaseList.length)return void t.$$utils.direwolfCommonTips("warning","请添加灰度发布地址");a=Object(s["a"])({},t.entity,{grayScaleRelease:t.grayScaleRelease,requestMethods:"",grayScaleReleaseDetails:t.grayScaleReleaseList})}else a=Object(s["a"])({},t.entity,{requestMethods:t.entity.requestMethods.join(",")});t.$$utils.eleFormSubmit({vueIns:t,saveUrl:"".concat(t.msGatewayRouteConfigPrefix,"/save"),formRef:"msGatewayRouteConfigForm",info:"保存网关路由配置信息",success:e,data:a,save:function(e){return t.$$utils.axiosRequest("".concat(t.msGatewayRouteConfigPrefix,"/save"),"保存网关路由配置信息","POST",e)}})},getDictByField:function(e){var t=this;return t.pageDictMap[t.fieldDictTypeMap[e]]},checkServiceSecStrategy:function(e){if("1"===e){var t=this,a=t.entity.serviceId;if(!a)return t.$$utils.direwolfCommonTips("warning","请选择路由指向服务"),void(t.entity.enableSecStrategy="0");var i=t.urlPrefix+"/msSecurityStrategyConfig/getMsSecurityStrategyConfigList?service.id="+t.entity.serviceId;t.$$utils.axiosRequest(i,"检查服务安全策略是否存在").then((function(e){e.list.length>0?t.entity.secStrategyId=e.list[0].id:(t.$$utils.direwolfCommonTips("warning","选择的服务没有制定安全策略,无法启用"),t.entity.enableSecStrategy="0")}))}},handleSysParamFocus:function(){this.getSysListByUser()},getSysListByUser:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=this;t.sysLoading=!0,t.$$utils.axiosRequest(t.urlPrefix+"/msSystemAdmin/listSystemByCurrentUser?sysName="+e,"获取系统列表").then((function(e){t.sysLoading=!1,t.msSysList=e.data}))},handleSystemChange:function(e){var t=this.msSysList.find((function(t){return t.id===e}));this.entity.sysId=t.id,this.msServiceList=[],this.entity.serviceId="",this.entity.serviceName="",this.entity.routePath=""},handleServiceParamFocus:function(){this.getServiceListByUser()},getServiceListByUser:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=this;if(t.entity.sysId){t.serviceLoading=!0;var a=t.urlPrefix+"/msServiceInfo/getMsServiceInfoList?sysId="+t.entity.sysId+"&serviceName="+e;t.$$utils.axiosRequest(a,"获取系统列表").then((function(e){t.serviceLoading=!1,t.msServiceList=e.list}))}else t.$$utils.direwolfCommonTips("warning","请先选择系统")},handleServiceChange:function(e){var t=this.msServiceList.find((function(t){return t.id===e}));e&&(this.routeProtocol="lb://",this.routePath=t.serviceCode.toLowerCase(),this.entity.sysId=t.sysId,this.entity.sysName=t.sysName),this.entity.serviceId=t.id,this.entity.serviceName=t.serviceName},handleRouteProtocolChange:function(e){this.routePathDisabled="lb://"===e||"lb:ws://"===e||"view"===this.entity},addGrayScaleRelease:function(){var e=this,t=0;e.grayScaleReleaseList.forEach((function(e){t+=Number(e.weight)}));var a=100-t;e.$$utils.openLayerDialog({title:"新增路由地址",width:"30%",height:"350px",el:"grayScaleReleaseForm",url:"/platman/grayScaleReleaseDetail",props:{remainingWeight:a},onConfirm:function(t,a){t.checkInput((function(){e.grayScaleReleaseList.push(t.entity),a()}))}})},deleteGrayScaleRelease:function(e){this.grayScaleReleaseList.splice(e.$index,1)},handleGrayScaleReleaseRowClick:function(e,t,a){this.$$utils.eleTableClickSelection(this.$refs.grayScaleReleaseTable,e,a)}},created:function(){var e=this;e.$$utils.param.getDictByCodes("y_n,ms_gateway_predicate_type,ms_gateway_filter_type").then((function(t){e.pageDictMap=t.data,e.initFormData()}))}},c=n,u=a("2877"),d=Object(u["a"])(c,i,r,!1,null,"1ea87356",null);t["default"]=d.exports}}]);