diff --git a/package-lock.json b/package-lock.json index df1a719b..8165d720 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7209,7 +7209,8 @@ "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "optional": true }, "aproba": { "version": "1.2.0", @@ -7230,12 +7231,14 @@ "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "optional": true }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -7256,12 +7259,14 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "optional": true }, "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -7378,7 +7383,8 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "optional": true }, "ini": { "version": "1.3.5", @@ -7405,6 +7411,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -7412,12 +7419,14 @@ "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "optional": true }, "minipass": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -7436,6 +7445,7 @@ "version": "0.5.3", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.3.tgz", "integrity": "sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg==", + "optional": true, "requires": { "minimist": "^1.2.5" } @@ -7497,7 +7507,8 @@ "npm-normalize-package-bin": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "optional": true }, "npm-packlist": { "version": "1.4.8", @@ -7538,6 +7549,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "optional": true, "requires": { "wrappy": "1" } @@ -7615,7 +7627,8 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -7651,6 +7664,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -7670,6 +7684,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -7713,12 +7728,14 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "optional": true }, "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "optional": true } } }, diff --git a/src/forge/Server/data.jsx b/src/forge/Server/data.jsx index cb4ec497..2887a422 100644 --- a/src/forge/Server/data.jsx +++ b/src/forge/Server/data.jsx @@ -1,55 +1,91 @@ -import React, { useEffect, useState } from 'react'; +import React, { useCallback, useEffect, useState } from 'react'; import DataEmpty from './dataEmpty'; import DetectionModal from './detectionModal'; -import { Table , Spin, message } from 'antd'; +import { Table, Spin, message } from 'antd'; import axios from 'axios'; -function Data(props){ - const [ detectionVisible , setDetectionVisible ] = useState(false); - const [ dataSource , setDataSource ] = useState(undefined); - const [ page , setPage ] = useState(1); - const [ spining , setSpining ] = useState(true); - const [ relayCount , setRelayCount ] = useState(5); - const [ repeatId , setRepeatId ] = useState(undefined); - const [ repeatBranch , setRepeatBranch ] = useState(undefined); +function Data(props) { + const [detectionVisible, setDetectionVisible] = useState(false); + const [dataSource, setDataSource] = useState(undefined); + const [page, setPage] = useState(1); + const [spining, setSpining] = useState(true); + const [relayCount, setRelayCount] = useState(5); + const [repeatId, setRepeatId] = useState(undefined); + const [repeatBranch, setRepeatBranch] = useState(undefined); + const [lookResultUrl, setLookResultUrl] = useState(undefined); + const [openResultTaskId, setOpenResultTaskId] = useState(undefined); + const [viewBase, setViewBase] = useState('https://cjntest.trustie.net/'); - const { owner , projectsId } = props.match.params; - const { current_user , isManager } = props; + const { owner, projectsId } = props.match.params; + const { current_user, isManager } = props; const limit = 15; - function onDetectionOk(){ + function onDetectionOk() { props.showNotification("新建分析成功,可在“检测状态”处查看扫描检测进度"); setDetectionVisible(false); setSpining(true); Init(); } - function Init(){ + function Init() { const url = `/traces/${owner}/${projectsId}/task_results.json`; - axios.get(url,{ - params:{ - page,limit + axios.get(url, { + params: { + page, limit } - }).then(result=>{ - if(result){ - setDataSource(result.data.data); - setRelayCount(result.data.left_tasks_count); + }).then(result => { + if (result) { + + if (Array.isArray(result.data.data)) { + setDataSource(result.data.data); + setRelayCount(result.data.left_tasks_count); + setLookResultUrl(result.data.view_base); + setViewBase(result.data.view_base); + for (const item of result.data.data) { + if (item.detect_status === "detecting" || item.detect_status === "waiting") { + setTimeout(Init, 2000); + break; + } + } + } else { + result && result.data.message && props.showNotification(result.data.message); + } + setSpining(false); } - }).catch(error=>{}) + }).catch(error => { }) } - useEffect(()=>{ + useEffect(() => { setSpining(true); Init(); - },[]) + }, []) + + useEffect(() => { + window.addEventListener("message", iframeHeight, false); + return () => { + window.removeEventListener("message", iframeHeight, false); + } + }) + + + function iframeHeight(e){ + console.log('iframeHeight'); + console.log(e.data); + if (e && e.data && viewBase && e.origin && viewBase.indexOf(e.origin)>-1) { + let myHeight = JSON.parse(e.data); + if (document.querySelector("#htmlIframe")) { + document.querySelector("#htmlIframe").height = myHeight.height; + } + } + } // 重新扫描 - function repeatCheck(project_id,branch){ - if(relayCount <= 0){ + function repeatCheck(project_id, branch) { + if (relayCount <= 0) { message.error("无可用检测次数"); return; } @@ -58,8 +94,8 @@ function Data(props){ setDetectionVisible(true); } - function createCheck(){ - if(relayCount <= 0){ + function createCheck() { + if (relayCount <= 0) { message.error("无可用检测次数"); return; } @@ -68,7 +104,7 @@ function Data(props){ setDetectionVisible(true); } - function handleDownExcel(task_id){ + function handleDownExcel(task_id) { setSpining(true); const url = `/api/traces/${owner}/${projectsId}/task_pdf.json?task_id=${task_id}`; // window.open(`/api/traces/${owner}/${projectsId}/task_pdf.json?task_id=${task_id}`); @@ -85,15 +121,35 @@ function Data(props){ setSpining(false); } x.send(); - console.log("spining"); } - return( + function lookResult(taskId) { + if (!openResultTaskId || (openResultTaskId && openResultTaskId !== taskId)) { + setOpenResultTaskId(taskId); + } else { + setOpenResultTaskId(undefined); + } + } + + function iframeLoad() { + try { + let myIframe = document.getElementById("htmlIframe"); + console.log('myIframe', myIframe, myIframe.contentDocument); + if (myIframe.contentDocument) { + console.log(myIframe.contentDocument.querySelector('.el-main')); + myIframe.height = myIframe.contentDocument.querySelector('.el-main').clientHeight + 260; + // myIframe.contentDocument.querySelector('.admin-body-container').style.overflow = 'hidden'; + } + } catch (err) { + console.error(err); + } + } + return (
- setDetectionVisible(false)} - onOk={onDetectionOk} + setDetectionVisible(false)} + onOk={onDetectionOk} owner={owner} projectsId={projectsId} relayCount={relayCount} @@ -102,12 +158,12 @@ function Data(props){ />
重晴鸟代码溯源系统 - { isManager && 新建分析 } + {isManager && 新建分析}
-
+
{ - dataSource && dataSource.length >0 && + dataSource && dataSource.length > 0 &&
  • @@ -115,26 +171,29 @@ function Data(props){ 分支名称 检测状态 检测时间 - { isManager && 操作 } + {isManager && 操作}
  • { - dataSource.map((e,key)=>{ - return( + dataSource.map((e, key) => { + return (
  • - {key + 1 } + {key + 1} {e.branch_tag} { e.detect_status === "fail" ? - 失败 - : e.detect_status==="detecting" ? -
    - - {e.detect_process}% -
    - : - 成功 + 失败 + : e.detect_status === "detecting" ? +
    + + {e.detect_process}% +
    + : e.detect_status === "detected" ? + 成功 :
    + + 0% +
    }
    {e.detect_startdate} @@ -143,28 +202,29 @@ function Data(props){
    { - e.detect_status ==="detecting" ? - 重新扫描 - : - repeatCheck(e.project_id,e.branch_tag)}>重新扫描 + e.detect_status === "detecting" || e.detect_status === "waiting" ? + 重新扫描 + : + repeatCheck(e.project_id, e.branch_tag)}>重新扫描 } - {/* { - (e.detect_status ==="fail" || e.detect_status ==="detecting") ? - 查看 - : - 查看 - } */} { - (e.detect_status ==="fail" || e.detect_status ==="detecting") ? - 下载报告 - : - handleDownExcel(e.task_id)}>下载报告 + (e.detect_status === "fail" || e.detect_status === "detecting" || e.detect_status === "waiting") ? + 查看 + : + { lookResult(e.task_id) }}>查看 + } + { + (e.detect_status === "fail" || e.detect_status === "detecting" || e.detect_status === "waiting") ? + 下载报告 + : + handleDownExcel(e.task_id)}>下载报告 }
    }
  • - {false && } + {/* lookResultUrl+e.task_id */} + {openResultTaskId && openResultTaskId === e.task_id && }
    ) }) diff --git a/src/forge/Server/detectionModal.jsx b/src/forge/Server/detectionModal.jsx index 5e9acef2..b3fbe7b9 100644 --- a/src/forge/Server/detectionModal.jsx +++ b/src/forge/Server/detectionModal.jsx @@ -137,7 +137,7 @@ function DetectionModal({form , visible , onCancel , onOk , projectsId, owner , }
    检测类型 -

    快速-组件级

    +

    深度-文件代码级

    检测参数 diff --git a/src/modules/loginRegister/Register.jsx b/src/modules/loginRegister/Register.jsx index 1ff6d9e1..32d85358 100644 --- a/src/modules/loginRegister/Register.jsx +++ b/src/modules/loginRegister/Register.jsx @@ -79,7 +79,7 @@ function Register(props){ }).then(response => { if (response.data.status === -1) { setGetCaptchaBut(false); - callback('该邮箱已被注册'); + callback(response.data.message); } else { setEmailStr(value); setGetCaptchaBut(true);