From 357039e4eb30ca63a0ec85bdabd0e3c3eac18cd5 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Tue, 6 Jul 2021 18:10:49 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=98=E7=89=B9=E5=9B=BE+=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E8=B4=A8=E9=87=8F=E5=88=86=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Gantt/Index.jsx | 107 ++++++++++++++++++++++++++++ src/forge/Gantt/index.scss | 5 ++ src/forge/Images/sonar.png | Bin 0 -> 3994 bytes src/forge/Main/Detail.js | 26 +++++++ src/forge/Main/Index.js | 4 +- src/forge/Main/sub/DetailBanner.jsx | 18 +++++ src/forge/Sonar/Index.jsx | 18 +++++ src/forge/Sonar/index.scss | 14 ++++ 8 files changed, 190 insertions(+), 2 deletions(-) create mode 100644 src/forge/Gantt/Index.jsx create mode 100644 src/forge/Gantt/index.scss create mode 100644 src/forge/Images/sonar.png create mode 100644 src/forge/Sonar/Index.jsx create mode 100644 src/forge/Sonar/index.scss diff --git a/src/forge/Gantt/Index.jsx b/src/forge/Gantt/Index.jsx new file mode 100644 index 000000000..f0efc250f --- /dev/null +++ b/src/forge/Gantt/Index.jsx @@ -0,0 +1,107 @@ +import React, { useEffect } from 'react'; +import * as echarts from 'echarts'; +import './index.scss'; + +function Index(props) { + useEffect(()=>{ + Init(); + },[]) + + function Init() { + var myCharts = document.getElementById('main'); + var myEcharts = echarts.init(myCharts); + var option = { + title: { + text: '项目实施进度表', + left: 10 + }, + legend: { + y: 'bottom', + data: ['计划时间', '实际时间'] //修改的地方1 + }, + grid: { + containLabel: true, + left: 20 + }, + xAxis: { + type: 'time' + }, + yAxis: { + data: ['任务一', '任务二', '任务三', '任务四', '任务五', '任务六', '任务七'] + }, + tooltip: { + trigger: 'axis', + formatter: function(params) { + var res = params[0].name + "
" + var date0 = params[0].data; + var date1 = params[1].data; + var date2 = params[2].data; + var date3 = params[3].data; + date0 = date0.getFullYear() + "-" + (date0.getMonth() + 1) + "-" + date0.getDate(); + date1 = date1.getFullYear() + "-" + (date1.getMonth() + 1) + "-" + date1.getDate(); + date2 = date2.getFullYear() + "-" + (date2.getMonth() + 1) + "-" + date2.getDate(); + date3 = date3.getFullYear() + "-" + (date3.getMonth() + 1) + "-" + date3.getDate(); + res += params[0].seriesName + "~" + params[1].seriesName + ":
" + date0 + "~" + date1 + "
" + res += params[2].seriesName + "~" + params[3].seriesName + ":
" + date2 + "~" + date3 + "
" + console.log(params[0]); + return res; + } + }, + series: [ + { + name: '计划开始时间', + type: 'bar', + stack: 'test1', + itemStyle: { + normal: { + color: 'rgba(0,0,0,0)' + } + }, + data: [] + }, + { + name: '计划时间', + type: 'bar', + stack: 'test1', + //修改地方2 + itemStyle: { + normal: { + color: '#F98563' + } + }, + data: [] + }, + { + name: '实际开始时间', + type: 'bar', + stack: 'test2', + itemStyle: { + normal: { + color: 'rgba(0,0,0,0)' + } + }, + data: [] + }, + { + name: '实际时间', + type: 'bar', + stack: 'test2', + //修改地方3 + itemStyle: { + normal: { + color: '#A2E068' + } + }, + data: [] + } + ] + }; + myEcharts.setOption(option); + } + return( +
+
+
+ ) +} +export default Index; \ No newline at end of file diff --git a/src/forge/Gantt/index.scss b/src/forge/Gantt/index.scss new file mode 100644 index 000000000..6f8c5e75a --- /dev/null +++ b/src/forge/Gantt/index.scss @@ -0,0 +1,5 @@ +.ganttBox{ + width: 1200px; + margin:0px auto; + padding:22px 0px; +} \ No newline at end of file diff --git a/src/forge/Images/sonar.png b/src/forge/Images/sonar.png new file mode 100644 index 0000000000000000000000000000000000000000..08b71fb721960120e6097fedc8efcecd9a25b56e GIT binary patch literal 3994 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 import('./sub/Contribute'), loading: Loading, }) +const Gantt = Loadable({ + loader: () => import('../Gantt/Index'), + loading: Loading, +}) +const Sonar = Loadable({ + loader: () => import('../Sonar/Index'), + loading: Loading, +}) const CoderRootCommit = Loadable({ loader: () => import('./CoderRootCommit'), @@ -152,6 +160,10 @@ function checkPathname(projectsId,owner,pathname){ name="devops" }else if(url.indexOf(`/source`)>-1){ name="source" + }else if(url.indexOf(`/gantt`)>-1){ + name="gantt" + }else if(url.indexOf(`/sonar`)>-1){ + name="sonar" } } return name; @@ -669,6 +681,20 @@ class Detail extends Component { (props) => () } > + + {/* 甘特图 */} + () + } + > + {/* 甘特图 */} + () + } + > + () diff --git a/src/forge/Main/Index.js b/src/forge/Main/Index.js index c81c4b32b..70a379d24 100644 --- a/src/forge/Main/Index.js +++ b/src/forge/Main/Index.js @@ -265,8 +265,8 @@ class Index extends Component {
- 头歌开源 - 让师姐开心的玩开源 + 开源社区 + 面向高校的教学开源