1 line
17 KiB
JavaScript
1 line
17 KiB
JavaScript
(this.webpackJsonp=this.webpackJsonp||[]).push([[197],{"/hWb":function(e,t,a){"use strict";a.r(t),a("T2oS");var A=a("W9HT"),n=(a("DjyN"),a("NUBc")),c=(a("+L6B"),a("2/Rp")),l=(a("/zsF"),a("PArb")),s=a("Vi3r"),i=a.n(s),r=(a("miYZ"),a("tsqr")),o=a("zLi2"),u=a.n(o),m=a("04Ix"),d=a.n(m),p=a("o+MX"),f=a.n(p),E=a("Kwsy"),v=a.n(E),g=a("mnMc"),b=a.n(g),h=a("RXMP"),N=a.n(h),O=a("KYsz"),j=a.n(O),k=a("/FZm"),y=a.n(k),R=a("j6J1"),S=a.n(R),x=a("5PDf"),w=a.n(x),C=a("FLGM"),Q=a.n(C),I=a("ZbhI"),J=a.n(I),G=a("M5Mt"),D=a.n(G),B=a("UtpJ"),W=a.n(B),F=a("i5y0"),K=a.n(F),Y=a("cDcd"),L=a.n(Y),M=a("yJN6"),H=(a("AB5N"),a("y6OT")),P=a("JVvY");function T(e){if(null!=e)return e>=1e9?(e/1e9).toFixed(1)+"B":e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":e.toString()}var U=a("OgRQ"),V=a.n(U),X=a.p+"static/media/code_lines.5f1dad4c.svg",Z=a.p+"static/media/repeat.a85eb736.svg",z=a.p+"static/media/cover.23ebe53d.svg",q=a("dF3D"),_=a("zRA8"),$=a.n(_),ee=a.p+"static/media/files.e34abaef.svg",te=a.p+"static/media/class.10d4bc5d.svg",ae=a.p+"static/media/funcs.f228b851.svg",Ae=a.p+"static/media/right-arrow.b9e307b3.svg",ne=a("y6dH"),ce=a("uixg"),le=a.n(ce),se=(a("g9YV"),a("wCAj"));a("shrg");var ie=function(e){var t=Object(Y.useState)(!1),a=u()(t,2),n=a[0],c=a[1],l=Object(Y.useState)([]),s=u()(l,2),i=s[0],r=s[1],o=e.match.params,m=o.owner,d=o.projectsId;Object(Y.useEffect)((function(){p()}),[]);var p=function(){c(!0),Object(M.d)(m,d).then((function(e){0===e.status&&r(e.data),c(!1)}))},E=[{title:"方法名",dataIndex:"function",ellipsis:!0,width:"150px"},{title:"方法位置",dataIndex:"definition",render:function(t,a){return"unknown"!==t?L.a.createElement("span",{onClick:function(){return function(t){var a,A;window.open(f()(a=f()(A="".concat(e.match.url,"/tree/")).call(A,e.projectDetail.default_branch,"/")).call(a,t.split(":")[0]))}(t)},className:"color-blue pointer"},t):t},width:"400px"},{title:"调用方法数",dataIndex:"call_count",width:"120px"},{title:"被调用次数",dataIndex:"called_count",width:"120px"}];return L.a.createElement(A.a,{spinning:n},L.a.createElement("div",{className:"call-table"},L.a.createElement(se.a,{columns:E,dataSource:i})))},re=d()(d()(d()({},1,te),2,ee),3,ae);t.default=function(e){var t,a=Object(Y.useState)({}),s=u()(a,2),o=s[0],m=s[1],d=Object(Y.useState)({}),p=u()(d,2),E=p[0],g=p[1],h=Object(Y.useState)({}),O=u()(h,2),k=O[0],R=O[1],x=Object(Y.useState)({}),C=u()(x,2),I=C[0],G=C[1],B=Object(Y.useState)(null),F=u()(B,2),U=F[0],_=F[1],ee=Object(Y.useState)(!0),te=u()(ee,2),ae=te[0],ce=te[1],se=Object(Y.useState)({}),oe=u()(se,2),ue=oe[0],me=oe[1],de=Object(Y.useState)([]),pe=u()(de,2),fe=pe[0],Ee=pe[1],ve=Object(Y.useState)([]),ge=u()(ve,2),be=ge[0],he=ge[1],Ne=Object(Y.useState)([]),Oe=u()(Ne,2),je=Oe[0],ke=Oe[1],ye=Object(Y.useState)(1),Re=u()(ye,2),Se=Re[0],xe=Re[1],we=Object(Y.useState)(10),Ce=u()(we,2),Qe=Ce[0],Ie=Ce[1],Je=Object(Y.useState)(!1),Ge=u()(Je,2),De=Ge[0],Be=Ge[1],We=Object(Y.useState)(!0),Fe=u()(We,2),Ke=Fe[0],Ye=Fe[1],Le=Object(Y.useState)(null),Me=u()(Le,2),He=Me[0],Pe=Me[1],Te=Object(Y.useState)(!1),Ue=u()(Te,2),Ve=Ue[0],Xe=Ue[1],Ze=Object(Y.useState)(!1),ze=u()(Ze,2),qe=ze[0],_e=ze[1],$e=Object(Y.useState)(!1),et=u()($e,2),tt=et[0],at=et[1],At=Object(Y.useState)(null),nt=u()(At,2),ct=nt[0],lt=nt[1],st=e.projectDetail,it=e.history,rt=e.match.params,ot=rt.owner,ut=rt.projectsId,mt=Object(Y.useRef)(null),dt=Object(Y.useRef)();Object(Y.useEffect)((function(){if(st){var e,t=st.author,a=st.name;if(document.title=f()(e="代码质量分析-".concat(t.name,"/")).call(e,a),!st.has_actions)return void Pe(7);Ye(!0),ft()}}),[st]),Object(Y.useEffect)((function(){return function(){pt()}}),[]),Object(Y.useEffect)((function(){var e=mt.current;if(e&&ct){var t=function(){try{var t,a=null===(t=e.contentWindow)||void 0===t?void 0:t.document;if(a){var A=Math.max(a.body.scrollHeight,a.body.offsetHeight,a.documentElement.clientHeight,a.documentElement.scrollHeight,a.documentElement.offsetHeight);e.style.height=A+"px"}}catch(t){e.style.height="".concat(document.getElementsByClassName("issue-list")[0]?document.getElementsByClassName("right-content")[0].clientHeight:document.body.clientHeight,"px")}};return e.addEventListener("load",t),function(){e.removeEventListener("load",t)}}}),[ct]),Object(Y.useEffect)((function(){1===Se?vt():xe(1)}),[fe,be,je]),Object(Y.useEffect)((function(){st&&1===He&&vt()}),[Se,Qe]),Object(Y.useEffect)((function(){Ve?_e(Ve):v()((function(){_e(Ve)}),450)}),[Ve]);var pt=function(){dt.current&&(clearTimeout(dt.current),dt.current=void 0)},ft=function(){Object(M.a)(ot,ut).then((function(e){var t;Ye(!1),0!==e.status?0===e.runs.length?Pe(7):(b()(t=[5,6]).call(t,e.runs[0].status)&&(dt.current&&pt(),dt.current=v()((function(){ft()}),3e3)),Pe(e.runs[0].status),e.runs[0].status&&(Et(),vt())):r.a.error(e.message)}))},Et=function(){Object(M.f)(ot,ut,"lines,coverage,lines_to_cover,duplicated_lines_density,maintainability_issues,vulnerabilities,bugs,code_smells").then((function(e){if(0===e.status){var t=e.component.measures,a={};N()(t).call(t,(function(e){a[e.metric]=e.value})),R(a)}}))},vt=function(){var e="BLOCKED"===be.join(","),t={facets:"impactSeverities,tags,types",types:fe.join(","),impactSeverities:be.join(",").replace("BLOCKED",""),tags:je.join(","),p:Se,ps:Qe};dt.current||Ye(!0),Object(M.e)(t,ot,ut).then((function(t){var a,A;Ye(!1);var n=t.issues&&!e?j()(a=t.issues).call(a,(function(e,t){return e[t.component]?e[t.component].push(t):e[t.component]=[t],e}),{}):[],c=t.facets?j()(A=t.facets).call(A,(function(t,a){if("impactSeverities"===a.property){var A,n,c,l=[y()(A=S()(a)).call(A,(function(e){return"HIGH"===e.val})),y()(n=S()(a)).call(n,(function(e){return"MEDIUM"===e.val})),y()(c=S()(a)).call(c,(function(e){return"LOW"===e.val}))];a.values=w()(l).call(l,(function(e){return e})),S()(a).unshift({count:0,val:"BLOCKED"})}var s;return e&&"impactSeverities"!==a.property&&("tags"===a.property&&(a.values=[]),Q()(s=S()(a)).call(s,(function(e){e.count=0}))),t[a.property]=S()(a),t}),{}):[];e&&(t.total=0),G(c),g(t),m(n)}))},gt=function(e,t,a){at(void 0),lt(void 0),window.scrollTo(0,0);var A,n=J()(e).call(e,a);n>-1?(D()(e).call(e,n,1),t(i()(e))):t(f()(A=[]).call(A,i()(e),[a]))},bt=function(){Ee([]),he([]),ke([])},ht=function(e,t,a,A){var n=arguments.length>4&&void 0!==arguments[4]&&arguments[4],c=n&&e&&!qe?W()(e).call(e,0,8):e;return L.a.createElement("div",{className:"filters"},L.a.createElement("div",{className:"filter-title"},L.a.createElement("span",null,A),t.length>0&&L.a.createElement("button",{className:"clear-button",onClick:function(){return a([])}},"清空")),c&&Q()(c).call(c,(function(e,n){return L.a.createElement("div",{className:"filter-item".concat(b()(t).call(t,e.val)?" selected-item":""),key:e.val,onClick:function(){return gt(t,a,e.val)}},L.a.createElement("span",{className:"item-type"},"缺陷预警提示"===A?L.a.createElement("img",{className:"type-icon",src:P.e[e.val],alt:""}):L.a.createElement(ne.a,{className:"type-icon",src:"代码缺陷及风格检查类型"===A?P.b[e.val]:P.c[n%5]}),"代码缺陷及风格检查类型"===A?P.a[e.val]:P.d[e.val]||e.val),L.a.createElement("span",null,e.count))})),n&&e&&e.length>10&&L.a.createElement("span",{className:"show-more",onClick:function(){Xe(!Ve)}}," ",Ve?"收起":"显示更多"," "),L.a.createElement(l.a,{dashed:!0}))},Nt=function(e,t,a){return L.a.createElement("div",{className:"total-item"},L.a.createElement("span",{className:"item-text"}," ",L.a.createElement("img",{src:a,alt:""})," ",e),L.a.createElement("span",{className:"ml20 item-value"},t))},Ot=function(e,t){return L.a.createElement("div",{className:"filter-item".concat(tt===t?" selected-item":""),onClick:function(){return jt(t)}},L.a.createElement("span",{className:"item-type"}," ",L.a.createElement(ne.a,{className:"type-icon",src:re[t]}),e),L.a.createElement("img",{className:"type-icon",src:Ae,alt:""}))},jt=function(e){at(e),bt(),Object(M.b)(ot,ut).then((function(t){var a;t.doxygen_url&&3!==e&<(f()(a="".concat(t.doxygen_url,"/")).call(a,2===e?"files":"annotated",".html"))}))},kt=function(){Be(!0),Object(M.h)(!0,ot,ut).then((function(e){0===e.status?Object(M.j)(st.default_branch,ot,ut).then((function(e){0===e.status&&(r.a.success("创建分析成功,请等待分析完成"),Pe(5),dt.current&&pt(),dt.current=v()((function(){ft()}),3e3)),Be(!1)})):Be(!1)}))};return L.a.createElement(A.a,{spinning:Ke},L.a.createElement("div",{className:"panels ".concat(1===He&&"panels-quality")},L.a.createElement("div",{className:"page-quality"},1===He&&L.a.createElement("div",{className:"quality-title"},L.a.createElement("span",null,"代码质量静态扫描"),L.a.createElement("span",null,"护航研发效能")),L.a.createElement("div",{className:"issue-total"},L.a.createElement(H.a,{visible:ae,issue:U,issueDetail:ue,onClose:function(){return ce(!1)}}),1===He&&L.a.createElement("span",{className:"reanalize",onClick:function(){Be(!0),Object(M.i)(ot,ut,st.default_branch).then((function(e){0===e.status&&(r.a.success("重新分析成功,请等待分析完成"),Pe(5),dt.current&&pt(),dt.current=v()((function(){ft()}),3e3))}))}},"重新分析"),1!==He&&L.a.createElement(Y.Fragment,null,L.a.createElement("div",{className:"headBox font-16 pl15"},"sonar代码质量分析工具"),L.a.createElement("div",{className:"nullStoreBox mt25"},L.a.createElement("img",{src:V.a,alt:"",className:"loBox mt50"}),L.a.createElement("p",{className:"font-22 mt10"},"欢迎使用代码质量分析工具"),L.a.createElement("div",{className:"introBox font-15"},"代码质量分析工具通过静态代码分析帮助开发者识别和修复代码库潜在的缺陷、代码异味、复杂度过高的代码段以及潜在的安全漏洞。同时能够评估代码的结构和风格,提供关于代码覆盖率、重复率等关键指标的深入洞察。"),L.a.createElement("div",{className:"borBox"}),function(){switch(He){case 7:return L.a.createElement(c.a,{type:"primary",style:{width:"112px",height:"36px"},onClick:kt,loading:De},"开始分析");case 5:case 6:return L.a.createElement(c.a,{type:"primary",style:{height:"36px"},disabled:!0,loading:!0},"代码正在分析中,请稍候");case 2:return L.a.createElement("div",null,L.a.createElement("p",null,"分析失败,请重试"),L.a.createElement(c.a,{type:"primary",style:{width:"112px",height:"36px"},onClick:kt,loading:De},"开始分析"));default:return L.a.createElement(L.a.Fragment,null)}}())),1===He&&L.a.createElement("div",{className:"result-box"},L.a.createElement("div",{className:"container total-info"},L.a.createElement("div",{className:"sub-container"},L.a.createElement("p",null,"软件质量统计结果,全方位精准定位问题"),L.a.createElement("p",null,"深度剖析代码细节,精准定位潜在问题,助力团队提升开发效率,打造高质量软件,为项目稳定运行保驾护航,开启高效开发新时代。"),L.a.createElement("img",{className:"triangular-arrow",src:$.a,alt:""}),L.a.createElement("div",{className:"info-list"},Nt("Bugs",k.bugs,P.b.BUG),Nt("漏洞",T(k.vulnerabilities),P.b.VULNERABILITY),Nt("异味",T(k.code_smells),P.b.CODE_SMELL),Nt("代码重复率","".concat(k.duplicated_lines_density,"%")||!1,Z),Nt("代码覆盖率","100%",z),Nt("检测代码行数",function(e){if(null!=e)return e.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")}(k.lines||"-"),X)))),L.a.createElement("div",{className:"issue-list"},L.a.createElement("div",{className:"left-content ".concat(Ve?"show-more-list":"show-less-list")},L.a.createElement("div",{className:"count"},o&&L.a.createElement("div",{className:"count-title"},"共",k.maintainability_issues&&JSON.parse(k.maintainability_issues).total,"个问题"),(fe.length>0||be.length>0||je.length>0)&&L.a.createElement("button",{className:"clear-button",onClick:bt},"清空条件")),ht(I.types,fe,Ee,"代码缺陷及风格检查类型"),ht(I.impactSeverities,be,he,"缺陷预警提示"),L.a.createElement("div",{className:"filters"},L.a.createElement("div",{className:"filter-title"},L.a.createElement("span",null,"代码执行分析功能")),Ot("classes类溯源",1),Ot("files文件溯源",2),Ot("调用请求量",3),L.a.createElement(l.a,{dashed:!0})),ht(I.tags,je,ke,"标签",!0)),L.a.createElement("div",{className:"right-content"},!tt&&L.a.createElement("div",{className:"content-warap ".concat(o&&E.total>0&&"has-issues")},o&&E.total>0&&Q()(t=K()(o)).call(t,(function(e){var t=u()(e,2),a=t[0],A=t[1];return L.a.createElement("div",{key:a},L.a.createElement("div",{className:"doc-title",title:a.split(":")[1]},L.a.createElement("img",{src:le.a,alt:""}),a.split(":")[1]),Q()(A).call(A,(function(e){var t;return L.a.createElement("div",{key:e.key,className:"issue",onClick:function(){return function(e){var t;it.push({pathname:f()(t="/".concat(ot,"/")).call(t,ut,"/quality/detail"),state:{baseInfo:E,selectedIssue:e}})}(e)}},L.a.createElement("p",{className:"issue-message"},e.message,L.a.createElement("span",{onClick:function(t){t.stopPropagation(),function(e){_(e),Object(M.g)(e.rule,ot,ut).then((function(e){me(null==e?void 0:e.rule),ce(!0)}))}(e)}},"问题分析"),L.a.createElement("span",null,"L",e.line)),L.a.createElement("p",{className:"content-info"},L.a.createElement("span",{className:"icon-text"}," ",L.a.createElement("img",{src:P.b[e.type],alt:""})," ",P.a[e.type]),L.a.createElement("span",{className:"icon-text"}," ",L.a.createElement("img",{src:P.e[e.impacts[0].severity],alt:""})," ",P.d[e.impacts[0].severity]),L.a.createElement("span",null,e.debt,"工作"),L.a.createElement("span",{className:"icon-text"},e.tags&&e.tags.length>0&&L.a.createElement(ne.a,{className:"svg-icon",src:P.c[0]}),e.tags&&Q()(t=e.tags).call(t,(function(t,a){return L.a.createElement("span",{key:t},t,a<e.tags.length-1?",":"")})))))})))})),!E.total&&L.a.createElement("div",{className:"nodata"},L.a.createElement("img",{src:q.a,alt:""}),L.a.createElement("p",null,"暂无问题"))),tt&&(3!==tt?L.a.createElement("iframe",{className:"iframe",ref:mt,src:ct,style:{width:"100%",border:"none"},scrolling:"no",title:"代码质量扫描结果"}):L.a.createElement(ie,e)),!tt&&E.total>0&&L.a.createElement(n.a,{showSizeChanger:!0,showQuickJumper:!0,current:Se,total:E.total,onChange:function(e){return xe(e)},onShowSizeChange:function(e,t){return Ie(t)}}))))))))}},OgRQ:function(e,t){e.exports="data:image/png;base64,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"}}]); |