diff --git a/src/forge/Main/Index.scss b/src/forge/Main/Index.scss
index 89d3023e..2a207dfd 100644
--- a/src/forge/Main/Index.scss
+++ b/src/forge/Main/Index.scss
@@ -203,15 +203,17 @@
.listtablehead{
display: flex;
justify-content: space-between;
- align-items: flex-start;
+ align-items: center;
border-bottom: 1px solid #d9d9d9;
padding:7px 20px;
border-radius: 4px 4px 0px 0px;
background-color: #FAFBFC;
.ellipsistxt{
+ #ptxt{
+ margin-bottom: 0px;
+ }
margin-left: 13px;
line-height:18px;
- margin-top:6px;
flex:1;
width: 0;
color: #666;
diff --git a/src/forge/users/Echart/Cloud.jsx b/src/forge/users/Echart/Cloud.jsx
new file mode 100644
index 00000000..cbe182a2
--- /dev/null
+++ b/src/forge/users/Echart/Cloud.jsx
@@ -0,0 +1,44 @@
+import React ,{ useEffect } from 'react';
+import Js2WordCloud from 'js2wordcloud/dist/js2wordcloud.js'
+
+function Cloud({data}) {
+
+ useEffect(()=>{
+ optionChart1();
+ },[])
+
+ function optionChart1(){
+ var div = new Js2WordCloud(document.getElementById('cloud'))
+ let textList=[
+ ['服务'], ['细致'], ['意识'], ['踏实'],['开发'], ['反馈'], ['协助'],['使用'],['谈判']
+ ]
+ let cyList=[]
+ for(let i=0;i<60;i++){
+ cyList.push([textList[parseInt(Math.random()*textList.length)],Math.round(Math.random()*10)+1])
+ }
+ div.setOption({
+ backgroundColor:'transparent',
+ shape: 'circle',
+ // ellipticity: 1,//椭圆
+ maxFontSize: 40,//最大字号
+ minFontSize: 12,//最小字号
+ tooltip: {
+ show: true
+ },
+ list: cyList,
+ color(word, weight, fontSize, distance, theta) { //自定义颜色、透明度
+ if (fontSize>=12 && fontSize<=20) {
+ return 'rgb(29,227,250,0.3)';
+ } else if(fontSize>20 && fontSize<=30){
+ return 'rgb(29,227,250,0.6)';
+ }else if(fontSize>30 && fontSize<=40){
+ return 'rgb(29,227,250)';
+ }
+ },
+ })
+ }
+ return(
+
+ )
+}
+export default Cloud;
\ No newline at end of file
diff --git a/src/forge/users/Echart/Line.jsx b/src/forge/users/Echart/Line.jsx
new file mode 100644
index 00000000..2092b87c
--- /dev/null
+++ b/src/forge/users/Echart/Line.jsx
@@ -0,0 +1,96 @@
+import React ,{ useEffect } from 'react';
+import * as echarts from 'echarts';
+
+function Line({data}) {
+ useEffect(()=>{
+ Init();
+ },[])
+
+ useEffect(()=>{
+ if(data){
+ Init();
+ }
+ },[data])
+
+ function Init() {
+ var huan_val = document.getElementById("Line");
+ var myEcharts = echarts.init(huan_val);
+ let option = {
+ color: ["#f8e367", "#99dfff", "#58c0f0", "#5ea6ff", "#ff9e48", "#bcbcbc"],
+ title: {
+ text: '近期活动统计',
+ left: '3%'
+ },
+ tooltip: {
+ trigger: 'axis'
+ },
+ legend: {
+ data: ['邮件营销', '联盟广告', '视频广告', '直接访问', '搜索引擎'],
+ right: '3%'
+ },
+ grid: {
+ left: '3%',
+ right: '4%',
+ bottom: '3%',
+ containLabel: true
+ },
+ toolbox: {
+ feature: {
+ // saveAsImage: {}
+ }
+ },
+ xAxis: {
+ type: 'category',
+ boundaryGap: false,
+ data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
+ },
+ yAxis: {
+ type: 'value',
+ axisLine:{
+ show:false
+ },
+ axisTick:{
+ show:false
+ }
+ },
+ series: [
+ {
+ name: '邮件营销',
+ type: 'line',
+ stack: '总量',
+ data: [120, 132, 101, 134, 90, 230, 210]
+ },
+ {
+ name: '联盟广告',
+ type: 'line',
+ stack: '总量',
+ data: [220, 182, 191, 234, 290, 330, 310]
+ },
+ {
+ name: '视频广告',
+ type: 'line',
+ stack: '总量',
+ data: [150, 232, 201, 154, 190, 330, 410]
+ },
+ {
+ name: '直接访问',
+ type: 'line',
+ stack: '总量',
+ data: [320, 332, 301, 334, 390, 330, 320]
+ },
+ {
+ name: '搜索引擎',
+ type: 'line',
+ stack: '总量',
+ data: [820, 932, 901, 934, 1290, 1330, 1320]
+ }
+ ]
+ };
+ myEcharts.setOption(option);
+ }
+
+ return(
+
+ )
+}
+export default Line;
\ No newline at end of file
diff --git a/src/forge/users/Echart/Pie.jsx b/src/forge/users/Echart/Pie.jsx
new file mode 100644
index 00000000..460d7f00
--- /dev/null
+++ b/src/forge/users/Echart/Pie.jsx
@@ -0,0 +1,75 @@
+import React ,{ useEffect } from 'react';
+import echarts from 'echarts/lib/echarts';
+import 'echarts/lib/chart/pie';
+
+function Pie({data}) {
+ useEffect(()=>{
+ Init();
+ },[])
+
+ useEffect(()=>{
+ if(data){
+ Init();
+ }
+ },[data])
+
+ function Init() {
+ var huan_val = document.getElementById("Pie");
+ var chart = echarts.init(huan_val);
+ let option = {
+ color: ["#f8e367", "#99dfff", "#58c0f0", "#5ea6ff", "#ff9e48", "#bcbcbc"],
+ title: {
+ text: '角色定位',
+ top:"5%",
+ left:"3%"
+ },
+ tooltip: {
+ trigger: 'item'
+ },
+ legend: {
+ top: '5%',
+ right: '3%'
+ },
+ series: [
+ {
+ name: '',
+ type: 'pie',
+ radius: ['40%', '70%'],
+ avoidLabelOverlap: false,
+ itemStyle: {
+ borderRadius: 10,
+ borderColor: '#fff',
+ borderWidth: 2
+ },
+ label: {
+ show: false,
+ position: 'center'
+ },
+ emphasis: {
+ label: {
+ show: true,
+ fontSize: '40',
+ fontWeight: 'bold'
+ }
+ },
+ labelLine: {
+ show: false
+ },
+ data: [
+ {value: 1048, name: '搜索引擎'},
+ {value: 735, name: '直接访问'},
+ {value: 580, name: '邮件营销'},
+ {value: 484, name: '联盟广告'},
+ {value: 300, name: '视频广告'}
+ ]
+ }
+ ]
+ };
+ chart.setOption(option);
+ }
+
+ return(
+
+ )
+}
+export default Pie;
\ No newline at end of file
diff --git a/src/forge/users/Echart/Radar.jsx b/src/forge/users/Echart/Radar.jsx
new file mode 100644
index 00000000..f427442e
--- /dev/null
+++ b/src/forge/users/Echart/Radar.jsx
@@ -0,0 +1,65 @@
+import React ,{ useEffect } from 'react';
+import echarts from 'echarts/lib/echarts'
+import 'echarts/lib/chart/radar';
+
+function Radar({data}) {
+ useEffect(()=>{
+ Init();
+ },[])
+
+ useEffect(()=>{
+ if(data){
+ Init();
+ }
+ },[data])
+
+ function Init() {
+ var huan_val = document.getElementById("radar");
+ var myEcharts = echarts.init(huan_val);
+ let option = {
+ color: ["#f8e367", "#99dfff", "#58c0f0", "#5ea6ff", "#ff9e48", "#bcbcbc"],
+ title: {
+ text: '开发能力',
+ top:"0",
+ left:"3%"
+ },
+ legend: {
+ data: ['预算分配', '实际开销'],
+ top:"0",
+ right:"center"
+ },
+ radar: {
+ // shape: 'circle',
+ indicator: [
+ { name: '销售', max: 6500},
+ { name: '管理', max: 16000},
+ { name: '信息技术', max: 30000},
+ { name: '客服', max: 38000},
+ { name: '研发', max: 52000},
+ { name: '市场', max: 25000}
+ ],
+ center:["50%","55%"]
+ },
+ series: [{
+ name: '预算 vs 开销',
+ type: 'radar',
+ data: [
+ {
+ value: [4200, 3000, 20000, 35000, 50000, 18000],
+ name: '预算分配'
+ },
+ {
+ value: [5000, 14000, 28000, 26000, 42000, 21000],
+ name: '实际开销'
+ }
+ ]
+ }]
+ };
+ myEcharts.setOption(option);
+ }
+
+ return(
+
+ )
+}
+export default Radar;
\ No newline at end of file
diff --git a/src/forge/users/GeneralView/Index.jsx b/src/forge/users/GeneralView/Index.jsx
new file mode 100644
index 00000000..9a76e9aa
--- /dev/null
+++ b/src/forge/users/GeneralView/Index.jsx
@@ -0,0 +1,23 @@
+import React from 'react';
+import './Index.scss';
+import 'echarts/lib/component/tooltip';
+import 'echarts/lib/component/title';
+import 'echarts/lib/component/legend'
+import 'echarts/lib/component/markPoint';
+
+import Pie from '../Echart/Pie';
+import Line from '../Echart/Line';
+import Radar from '../Echart/Radar';
+import Cloud from '../Echart/Cloud';
+
+function Index(props) {
+ return(
+
+ )
+}
+export default Index;
\ No newline at end of file
diff --git a/src/forge/users/GeneralView/Index.scss b/src/forge/users/GeneralView/Index.scss
new file mode 100644
index 00000000..e69de29b
diff --git a/src/forge/users/Infos.js b/src/forge/users/Infos.js
index a812a6d7..7e4e660a 100644
--- a/src/forge/users/Infos.js
+++ b/src/forge/users/Infos.js
@@ -23,6 +23,11 @@ const InfosDevOpsCD = Loadable({
loader: () => import("./devOpsCD"),
loading: Loading,
});
+
+const GeneralView = Loadable({
+ loader: () => import("./GeneralView/Index"),
+ loading: Loading,
+});
const InfosUser = Loadable({
loader: () => import("./InfosUser"),
loading: Loading,
From 8e419e63daddf9a99f3876f391654cc90af24f45 Mon Sep 17 00:00:00 2001
From: caishi <1149225589@qq.com>
Date: Wed, 26 May 2021 16:00:55 +0800
Subject: [PATCH 3/4] =?UTF-8?q?=E4=B8=8A=E4=B8=80=E7=89=88-update?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/forge/Main/CoderDepot.jsx | 35 +++++++++++++++--------------------
1 file changed, 15 insertions(+), 20 deletions(-)
diff --git a/src/forge/Main/CoderDepot.jsx b/src/forge/Main/CoderDepot.jsx
index cae7a38a..56ea54fa 100644
--- a/src/forge/Main/CoderDepot.jsx
+++ b/src/forge/Main/CoderDepot.jsx
@@ -45,7 +45,8 @@ function CoderDepot(props){
const [ desc , setDesc ] = useState(undefined);
const [ website , setWebsite ] = useState(undefined);
const [ lesson_url , setLessonUrl ] = useState(undefined);
- const [ readme , setReadme ] = useState(undefined)
+ const [ readme , setReadme ] = useState(undefined);
+ const [ defaultBranch , setDefaultBranch ] = useState(undefined)
const owner = props.match.params.owner;
const projectsId = props.match.params.projectsId;
@@ -59,15 +60,9 @@ function CoderDepot(props){
setDesc(details.description);
setWebsite(details.website);
setLessonUrl(details.lesson_url);
+ setDefaultBranch(details.default_branch);
}
},[details])
-
- useEffect(()=>{
- if(!branchName || pathname === `/projects/${owner}/${projectsId}/tree/${branchName}`){
- console.log("dddddddddd");
- getDirInfo((details && details.default_branch));
- }
- },[branchName,pathname])
useEffect(()=>{
if(treeValue){
@@ -79,17 +74,17 @@ function CoderDepot(props){
useEffect(()=>{
- if (projectsId && owner){
+ if (projectsId && owner && defaultBranch){
if(pathname.indexOf(`/projects/${owner}/${projectsId}`) > -1 && pathname.indexOf(`/tree/${branchName}/`) > -1) {
let url = pathname.split(`/tree/${branchName}/`)[1];
setTreeValue(url);
getFileInfo(url,branchName);
}else{
setTreeValue(undefined);
- // getDirInfo(branchName ||(projectDetail && projectDetail.default_branch));
+ getDirInfo(branchName || defaultBranch);
}
}
- },[projectsId,owner,pathname])
+ },[projectsId,owner,pathname,defaultBranch])
// 获取主目录列表
function getDirInfo(branch){
@@ -166,8 +161,8 @@ function CoderDepot(props){
// 文件相关的下拉项
const fileMenu =(
)
@@ -183,7 +178,7 @@ function CoderDepot(props){
// 页面地址返回到主目录
function returnMain(){
setTreeValue(undefined);
- let branch = branchName || (projectDetail && projectDetail.default_branch);
+ let branch = branchName || defaultBranch;
props.history.push(`/projects/${owner}/${projectsId}/tree/${branch}`);
};
// 子目录路径返回链接
@@ -193,7 +188,7 @@ function CoderDepot(props){
// 点击跳转到子目录
function goToSubRoot(path,type,filename){
setType(type);
- props.history.push(`/projects/${owner}/${projectsId}${`/tree/${branchName || (projectDetail && projectDetail.default_branch)}`}${path?`/${path}`:""}`);
+ props.history.push(`/projects/${owner}/${projectsId}${`/tree/${branchName || defaultBranch}`}${path?`/${path}`:""}`);
}
function onEdit(readOnly){
@@ -201,7 +196,7 @@ function CoderDepot(props){
}
function ChangeFile(path, readOnly){
//点击直接跳转页面 加载一次路由
- props.history.push(`/projects/${owner}/${projectsId}/tree/${branchName || (projectDetail && projectDetail.default_branch)}/${path}`);
+ props.history.push(`/projects/${owner}/${projectsId}/tree/${branchName || defaultBranch}/${path}`);
setType("file");
setReadOnly(readOnly);
};
@@ -260,7 +255,7 @@ function CoderDepot(props){
owner={owner}
projectsId={projectsId}
name={projectDetail && projectDetail.name}
- branch={branchName || (projectDetail && projectDetail.default_branch)}
+ branch={branchName || defaultBranch}
visible={visible}
onClose={()=>setVisible(false)}
list = {mainFlag ? dirInfo : undefined}
@@ -285,14 +280,14 @@ function CoderDepot(props){
:
-
分支:{branchName || (projectDetail && projectDetail.default_branch)}
+
分支:{branchName || defaultBranch}
}