头像下拉增加我的工作台项
This commit is contained in:
parent
76f7c2034a
commit
22bf58ea86
|
@ -1,5 +1,5 @@
|
|||
<h3>前端react环境安装:</h3>
|
||||
<p>1、 安装node v8.12.0;此安装包含了node和npm。</p>
|
||||
<p>1、 安装node v14.12.3;此安装包含了node和npm。</p>
|
||||
<p>2、 安装cnpm(命令行): npm install -g cnpm --registry=https://registry.npm.taobao.org</p>
|
||||
<p>3、 安装依赖的js库(public/react目录下<即项目package.json所在目录>,开启命令行): cnpm install</p>
|
||||
<p>4、 如果你的ruby服务使用的是3000端口,则需要在package.json中修改"port"参数的值</p>
|
||||
|
|
|
@ -19733,13 +19733,15 @@
|
|||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
|
||||
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"is-glob": {
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
|
||||
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"is-extglob": "^2.1.1"
|
||||
}
|
||||
|
@ -19755,7 +19757,8 @@
|
|||
"version": "3.0.0",
|
||||
"resolved": "http://173.15.15.82:8081/repository/npm-all/normalize-path/-/normalize-path-3.0.0.tgz",
|
||||
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"readdirp": {
|
||||
"version": "3.6.0",
|
||||
|
|
91
package.json
91
package.json
|
@ -3,6 +3,23 @@
|
|||
"version": "3.1.0",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.0.0",
|
||||
"@babel/plugin-proposal-class-properties": "^7.0.0",
|
||||
"@babel/plugin-proposal-decorators": "^7.0.0",
|
||||
"@babel/plugin-proposal-export-default-from": "^7.23.3",
|
||||
"@babel/plugin-proposal-export-namespace-from": "^7.0.0",
|
||||
"@babel/plugin-proposal-function-sent": "^7.0.0",
|
||||
"@babel/plugin-proposal-json-strings": "^7.0.0",
|
||||
"@babel/plugin-proposal-numeric-separator": "^7.0.0",
|
||||
"@babel/plugin-proposal-throw-expressions": "^7.0.0",
|
||||
"@babel/plugin-syntax-dynamic-import": "^7.0.0",
|
||||
"@babel/plugin-syntax-import-meta": "^7.0.0",
|
||||
"@babel/plugin-transform-async-to-generator": "^7.0.0",
|
||||
"@babel/plugin-transform-runtime": "^7.23.6",
|
||||
"@babel/preset-env": "^7.23.6",
|
||||
"@babel/preset-react": "^7.23.3",
|
||||
"@babel/preset-stage-2": "^7.8.3",
|
||||
"@babel/runtime-corejs3": "^7.23.6",
|
||||
"@monaco-editor/react": "^2.3.0",
|
||||
"@novnc/novnc": "^1.1.0",
|
||||
"@wangeditor/editor": "^5.1.23",
|
||||
|
@ -13,6 +30,10 @@
|
|||
"array-flatten": "^2.1.2",
|
||||
"autoprefixer": "7.1.6",
|
||||
"axios": "^0.24.0",
|
||||
"babel-core": "^7.0.0-bridge.0",
|
||||
"babel-jest": "^23.4.2",
|
||||
"babel-plugin-antd": "^0.5.1",
|
||||
"babel-plugin-dynamic-import-webpack": "^1.1.0",
|
||||
"bizcharts": "^3.5.8",
|
||||
"bundle-loader": "^0.5.6",
|
||||
"chalk": "1.1.3",
|
||||
|
@ -20,22 +41,29 @@
|
|||
"clipboard": "^2.0.8",
|
||||
"code-prettify": "^0.1.0",
|
||||
"codemirror": "^5.64.0",
|
||||
"connect-timeout": "^1.9.0",
|
||||
"connected-react-router": "4.4.1",
|
||||
"core-js": "^3.34.0",
|
||||
"dompurify": "^2.3.3",
|
||||
"dotenv": "4.0.0",
|
||||
"dotenv-expand": "4.2.0",
|
||||
"echarts": "^4.9.0",
|
||||
"echarts-wordcloud": "^2.0.0",
|
||||
"editor.md": "^1.5.0",
|
||||
"express": "^4.18.2",
|
||||
"flv.js": "^1.5.0",
|
||||
"fs-extra": "3.0.1",
|
||||
"http-proxy-middleware": "^2.0.6",
|
||||
"i18next": "^23.4.5",
|
||||
"immutability-helper": "^2.6.6",
|
||||
"install": "^0.12.2",
|
||||
"intersection-observer": "^0.12.2",
|
||||
"isomorphic-style-loader": "^5.3.2",
|
||||
"jest": "20.0.4",
|
||||
"jquery": "^3.7.1",
|
||||
"js-base64": "^2.5.2",
|
||||
"js2wordcloud": "^1.1.12",
|
||||
"jsdom": "^15.2.1",
|
||||
"katex": "^0.11.1",
|
||||
"less": "^3.13.1",
|
||||
"localforage": "^1.10.0",
|
||||
|
@ -48,10 +76,12 @@
|
|||
"moment": "^2.23.0",
|
||||
"monaco-editor": "^0.20.0",
|
||||
"monaco-editor-webpack-plugin": "^1.9.0",
|
||||
"nodemon": "^3.0.3",
|
||||
"numeral": "^2.0.6",
|
||||
"nvm": "0.0.4",
|
||||
"object-assign": "4.1.1",
|
||||
"papaparse": "^5.3.2",
|
||||
"pinyin": "^4.0.0-alpha.0",
|
||||
"postcss-flexbugs-fixes": "3.2.0",
|
||||
"promise": "8.0.1",
|
||||
"prop-types": "^15.6.1",
|
||||
|
@ -88,6 +118,7 @@
|
|||
"react-redux": "5.0.7",
|
||||
"react-resizable": "^1.10.1",
|
||||
"react-router": "^4.2.0",
|
||||
"react-router-config": "^5.1.1",
|
||||
"react-router-dom": "^4.2.2",
|
||||
"react-slick": "^0.28.1",
|
||||
"react-split-pane": "^0.1.91",
|
||||
|
@ -96,6 +127,7 @@
|
|||
"redux": "^4.0.5",
|
||||
"redux-thunk": "2.3.0",
|
||||
"rsuite": "^4.3.4",
|
||||
"sass": "^1.70.0",
|
||||
"scroll-into-view": "^1.14.2",
|
||||
"scrollama": "^3.2.0",
|
||||
"sha1": "^1.1.1",
|
||||
|
@ -104,23 +136,32 @@
|
|||
"slick-carousel": "^1.8.1",
|
||||
"store": "^2.0.12",
|
||||
"styled-components": "^4.4.1",
|
||||
"webpack-node-externals": "^3.0.0",
|
||||
"weixin-js-sdk": "^1.6.0",
|
||||
"whatwg-fetch": "2.0.3",
|
||||
"winston": "^3.11.0",
|
||||
"winston-daily-rotate-file": "^4.7.1",
|
||||
"wrap-md-editor": "^0.2.20",
|
||||
"xss": "^1.0.14",
|
||||
"xterm": "4.8.1",
|
||||
"xterm-addon-fit": "0.4.0"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "node --max_old_space_size=15360 scripts/start.js",
|
||||
"build": "cross-env NODE_ENV=production node --max_old_space_size=15360 scripts/build.js",
|
||||
"start": "node scripts/start.js",
|
||||
"build": "cross-env NODE_ENV=production babel-node --max_old_space_size=15360 scripts/build.js",
|
||||
"build:server": "cross-env NODE_ENV=production webpack --config config/webpack.server.js",
|
||||
"build:dll": "webpack --config=./config/webpack.dll.config.js",
|
||||
"test-build": "cross-env NODE_ENV=testBuild node --max_old_space_size=15360 scripts/build.js",
|
||||
"pre-build": "NODE_ENV=preBuild node --max_old_space_size=15360 scripts/build.js",
|
||||
"gen_stats": "NODE_ENV=production webpack --profile --config=./config/webpack.config.prod.js --json > stats.json",
|
||||
"ana": "webpack-bundle-analyzer ./stats.json",
|
||||
"analyze": "npm run build -- --stats && webpack-bundle-analyzer build/bundle-stats.json",
|
||||
"analyz": "NODE_ENV=production npm_config_report=true npm run build"
|
||||
"analyz": "NODE_ENV=production npm_config_report=true npm run build",
|
||||
"dev": "npm-run-all --parallel dev:**",
|
||||
"dev:server": "cross-env NODE_ENV=dev nodemon --exec babel-node \"./buildserver/bundle.js\" --watch config --watch server",
|
||||
"test:build:server": "cross-env NODE_ENV=localtest webpack --config config/webpack.server.js",
|
||||
"dev:build:server": "cross-env NODE_ENV=dev webpack --config config/webpack.server.js",
|
||||
"pm2": "pm2 start pm2.json"
|
||||
},
|
||||
"jest": {
|
||||
"collectCoverageFrom": [
|
||||
|
@ -156,46 +197,22 @@
|
|||
"node"
|
||||
]
|
||||
},
|
||||
"babel": {
|
||||
"presets": [
|
||||
"react",
|
||||
"react-app"
|
||||
],
|
||||
"plugins": [
|
||||
[
|
||||
"import",
|
||||
{
|
||||
"libraryName": "antd",
|
||||
"libraryDirectory": "lib",
|
||||
"style": "css"
|
||||
},
|
||||
"ant"
|
||||
],
|
||||
"syntax-dynamic-import"
|
||||
]
|
||||
},
|
||||
"eslintConfig": {
|
||||
"extends": "react-app"
|
||||
},
|
||||
"proxy": "http://localhost:3000",
|
||||
"proxy": "https://testforgeplus.trustie.net",
|
||||
"port": "3007",
|
||||
"devDependencies": {
|
||||
"@babel/runtime": "7.0.0-beta.51",
|
||||
"babel-cli": "^6.26.0",
|
||||
"babel-core": "^6.26.0",
|
||||
"babel-eslint": "7.2.3",
|
||||
"babel-jest": "20.0.3",
|
||||
"babel-loader": "7.1.2",
|
||||
"@babel/core": "^7.23.6",
|
||||
"@babel/node": "^7.0.0",
|
||||
"@babel/plugin-proposal-decorators": "^7.0.0",
|
||||
"@babel/polyfill": "^7.0.0",
|
||||
"@babel/preset-react": "^7.0.0",
|
||||
"@babel/runtime": "^7.0.0-beta.46",
|
||||
"babel-loader": "^8.3.0",
|
||||
"babel-plugin-import": "^1.13.0",
|
||||
"babel-plugin-syntax-dynamic-import": "^6.18.0",
|
||||
"babel-plugin-transform-decorators-legacy": "^1.3.5",
|
||||
"babel-plugin-transform-runtime": "^6.23.0",
|
||||
"babel-polyfill": "^6.26.0",
|
||||
"babel-preset-es2015": "^6.24.1",
|
||||
"babel-preset-react": "^6.24.1",
|
||||
"babel-preset-react-app": "^3.1.1",
|
||||
"babel-preset-stage-2": "^6.24.1",
|
||||
"babel-runtime": "6.26.0",
|
||||
"babel-upgrade": "^1.0.1",
|
||||
"case-sensitive-paths-webpack-plugin": "2.1.1",
|
||||
"compression-webpack-plugin": "^1.1.12",
|
||||
"concat": "^1.0.3",
|
||||
|
@ -213,7 +230,7 @@
|
|||
"html-webpack-plugin": "^4.0.4",
|
||||
"less-loader": "^4.1.0",
|
||||
"mockjs": "^1.1.0",
|
||||
"node-sass": "^4.14.1",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"optimize-css-assets-webpack-plugin": "^5.0.3",
|
||||
"postcss-loader": "2.0.8",
|
||||
"purgecss": "^2.1.2",
|
||||
|
|
|
@ -3,20 +3,19 @@ import AccountProfile from "../../modules/user/AccountProfile";
|
|||
import { getImageUrl } from 'educoder'
|
||||
import axios from 'axios';
|
||||
import cookie from 'react-cookies';
|
||||
import { notification , Dropdown ,Popover, Menu,Badge } from 'antd';
|
||||
import { notification , Dropdown , Menu , Icon } from 'antd';
|
||||
import { Link } from 'react-router-dom';
|
||||
|
||||
import LoginDialog from '../../modules/login/LoginDialog';
|
||||
import HeadSearch from '../Component/HeadSearch';
|
||||
import { getOrzCompanyList } from '../../forge/Information/api';
|
||||
|
||||
import AddProjectModal from './AddProjectModal';
|
||||
import '../../modules/tpm/TPMIndex.css';
|
||||
import CheckProfile from '../Component/ProfileModal/Profile';
|
||||
|
||||
import './header.scss';
|
||||
import NoticeContent from './NoticeContent';
|
||||
import MainLogo from './img/logo.png';
|
||||
// TODO 这部分脚本从公共脚本中直接调用
|
||||
const { SubMenu } = Menu
|
||||
|
||||
window._header_componentHandler = null;
|
||||
// 非trustie链接则新开页跳转
|
||||
|
@ -47,6 +46,7 @@ class NewHeader extends Component {
|
|||
visible:false, //浮动消息框展示控制
|
||||
showSubMenu: false,
|
||||
zoneList: [], // 专区列表
|
||||
companyList:[] //已开通工作台列表
|
||||
}
|
||||
}
|
||||
componentDidMount() {
|
||||
|
@ -60,6 +60,7 @@ class NewHeader extends Component {
|
|||
window._header_componentHandler = this;
|
||||
|
||||
this.getZoneList(settings && settings.common.zone +'/api')
|
||||
this.getComlist();
|
||||
|
||||
try {
|
||||
window.sessionStorage.setItem("yslgeturls", JSON.stringify(window.location.href))
|
||||
|
@ -267,7 +268,8 @@ class NewHeader extends Component {
|
|||
}
|
||||
|
||||
renderMenu=(personal)=>{
|
||||
const { current_user } = this.props;
|
||||
const { mygetHelmetapi } = this.props;
|
||||
const { companyList } = this.state;
|
||||
return(
|
||||
<Menu className="currentMenu">
|
||||
{/* <Menu.Item>
|
||||
|
@ -286,7 +288,18 @@ class NewHeader extends Component {
|
|||
)
|
||||
})
|
||||
}
|
||||
{/* <li><Link to={`/settings/profile`}>设置</Link></li> */}
|
||||
|
||||
<SubMenu title={<span>我的工作台<Icon type="right" /></span>} Icon={null} popupClassName='subMyworkList'>
|
||||
{
|
||||
companyList && companyList.length>0 ?
|
||||
companyList.map((i,k)=>{
|
||||
return(
|
||||
<Menu.Item><a href={`${ mygetHelmetapi && mygetHelmetapi.common.zone }/${i.enterpriseIdentifier}`} target='_blank'>{i.enterpriseName}</a></Menu.Item>
|
||||
)
|
||||
})
|
||||
:<Menu.Item>暂无工作台</Menu.Item>
|
||||
}
|
||||
</SubMenu>
|
||||
<Menu.Item><a onClick={() => this.educoderloginysl()}>退出登录</a></Menu.Item>
|
||||
</Menu>
|
||||
)
|
||||
|
@ -296,6 +309,16 @@ class NewHeader extends Component {
|
|||
this.setState({ visible });
|
||||
};
|
||||
|
||||
getComlist=()=>{
|
||||
getOrzCompanyList().then(res=>{
|
||||
if(res){
|
||||
this.setState({
|
||||
companyList:res.data.rows
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
render() {
|
||||
const { resetUserInfo ,showNotification,publicNav,mygetHelmetapi} = this.props;
|
||||
let settings = mygetHelmetapi;
|
||||
|
@ -333,10 +356,10 @@ class NewHeader extends Component {
|
|||
:
|
||||
""
|
||||
} */}
|
||||
{
|
||||
{/*{
|
||||
settings && settings.navbar && settings.navbar.length > 0 ?
|
||||
<ul id="header-nav" className="head-nav pr">
|
||||
{/* {
|
||||
{
|
||||
settings.navbar && settings.navbar.map((item, key) => {
|
||||
var new_link = item.link;
|
||||
var is_hidden = item.hidden;
|
||||
|
@ -370,12 +393,12 @@ class NewHeader extends Component {
|
|||
)
|
||||
}
|
||||
})
|
||||
} */}
|
||||
}
|
||||
</ul>
|
||||
: ""
|
||||
}
|
||||
<div className="head-right">
|
||||
{/* { search_url && <HeadSearch {...this.props}/>} */}
|
||||
}*/}
|
||||
{/*<div className="head-right">
|
||||
{ search_url && <HeadSearch {...this.props}/>} */}
|
||||
{/* {
|
||||
current_user && (current_user.main_site || current_user.login) && (settings && settings.add && settings.add.length>0)?
|
||||
<Dropdown overlay={this.addMenu(settings && settings.add)} placement="bottomRight">
|
||||
|
@ -399,8 +422,8 @@ class NewHeader extends Component {
|
|||
</Link>
|
||||
</Popover>
|
||||
: ""
|
||||
} */}
|
||||
</div>
|
||||
}
|
||||
</div>*/}
|
||||
{!user || (user && !user.login) ?
|
||||
<span className="font-15 ml30">
|
||||
<Link to="/login" className="mr5 color-white">登录</Link>
|
||||
|
|
|
@ -26,6 +26,21 @@
|
|||
border-radius: 50%;
|
||||
margin-left: 15px;
|
||||
}
|
||||
.subMyworkList {
|
||||
li{
|
||||
max-width: 120px;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
padding:0px 12px;
|
||||
&:hover{
|
||||
background-color: #829BFF;
|
||||
a{color: #fff;}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.ant-dropdown-menu.currentMenu{
|
||||
width: 120px;
|
||||
|
@ -38,6 +53,21 @@
|
|||
text-overflow: ellipsis;
|
||||
display: block;
|
||||
}
|
||||
.ant-dropdown-menu-submenu .ant-dropdown-menu-submenu-title{
|
||||
height: 100%;
|
||||
line-height: 40px;
|
||||
padding: 0px 10px;
|
||||
&:hover{
|
||||
background: #829BFF;
|
||||
color: #fff;
|
||||
}
|
||||
i{
|
||||
margin-right: 0px;
|
||||
}
|
||||
}
|
||||
.ant-dropdown-menu-submenu-arrow{
|
||||
display: none;
|
||||
}
|
||||
li{
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
|
|
|
@ -331,7 +331,7 @@ class LoginDialog extends Component {
|
|||
this.setState({
|
||||
isphone: flag,
|
||||
//查询第三方登录信息
|
||||
settings: JSON.parse(localStorage.getItem("chromesetting")),
|
||||
settings: localStorage.getItem("chromesetting") !=="undefined" && JSON.parse(localStorage.getItem("chromesetting")),
|
||||
})
|
||||
|
||||
if (this.props.isRender != undefined) {
|
||||
|
|
|
@ -42,6 +42,7 @@ body>.-task-title {
|
|||
display: flex;
|
||||
align-items: center;
|
||||
height: 100%;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
.globalSpin {
|
||||
max-height: 700px !important;
|
||||
|
|
|
@ -12,7 +12,6 @@ import SystemNotice from '../../forge/Component/NoticeModal/SystemNotice';
|
|||
import cookie from 'react-cookies';
|
||||
import NpsModal from '../modals/npsModal';
|
||||
import { IsPC } from 'educoder';
|
||||
import { getOrzCompanyList } from '../../forge/Information/api';
|
||||
|
||||
|
||||
const items = [
|
||||
|
@ -128,16 +127,6 @@ export function TPMIndexHOC(WrappedComponent) {
|
|||
}
|
||||
///请求定制化的信息
|
||||
this.getAppdata();
|
||||
this.getComlist();
|
||||
}
|
||||
getComlist=()=>{
|
||||
getOrzCompanyList().then(res=>{
|
||||
if(res){
|
||||
this.setState({
|
||||
companyList:res.data.rows
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue