Browse Source

Merge branch 'dev' of

release_0.0.1
deartibers 3 years ago
parent
commit
8596e5c6a0
  1. 3
      web/client/src/app.jsx
  2. 2
      web/client/src/index.jsx
  3. 27
      web/client/src/sections/auth/actions/auth.js
  4. 14
      web/client/src/sections/problem/actions/dataAlarm.jsx
  5. 7
      web/client/src/sections/problem/actions/index.js
  6. 35
      web/client/src/sections/problem/containers/dataAlarm.jsx
  7. 5
      web/client/src/sections/problem/containers/index.js
  8. 15
      web/client/src/sections/problem/index.js
  9. 33
      web/client/src/sections/problem/nav-item.jsx
  10. 5
      web/client/src/sections/problem/reducers/index.js
  11. 61
      web/client/src/sections/problem/routes.js
  12. 7
      web/client/src/sections/problem/style.less
  13. 4
      web/client/src/utils/index.js
  14. 10
      web/client/src/utils/webapi.js
  15. 9
      web/config.js
  16. 2
      web/package.json

3
web/client/src/app.jsx

@ -5,6 +5,7 @@ import Layout from './layout';
import Auth from './sections/auth';
import Example from './sections/example';
import Example1 from './sections/example1';
import Problem from './sections/problem';
import NoMatch from './sections/noMatch';
import Console from './sections/console';
@ -19,7 +20,7 @@ const App = props => {
<Layout
title={projectName}
sections={[
Example,Example1,
Example,Example1,Problem,
Auth, NoMatch,Console
]}
/>

2
web/client/src/index.jsx

@ -6,4 +6,4 @@ import { render } from 'react-dom';
import App from './app';
import './index.less';
render((<App projectName="飞尚物联" />), document.getElementById('PomsApp'));
render((<App projectName="运维服务" />), document.getElementById('PomsApp'));

27
web/client/src/sections/auth/actions/auth.js

@ -1,6 +1,6 @@
'use strict';
import { ApiTable, AxyRequest } from '$utils'
import { ApiTable, AxyRequest, EmisRequest } from '$utils'
export const INIT_AUTH = 'INIT_AUTH';
export function initAuth (userData) {
@ -32,17 +32,17 @@ export function login (username, password) {
return Promise.resolve();
}
return dispatch({
type: LOGIN_SUCCESS,
payload: {
user: {
authorized: true,
namePresent: 'TEST'
}
},
});
// return dispatch({
// type: LOGIN_SUCCESS,
// payload: {
// user: {
// authorized: true,
// namePresent: 'TEST'
// }
// },
// });
return AxyRequest.post(ApiTable.login, { username, password, domain: 'anxinyun' })
return EmisRequest.post(ApiTable.login, { username, password, code: 'POMS' })
.then(user => {
sessionStorage.setItem('pomsUser', JSON.stringify(user));
return dispatch({
@ -65,8 +65,9 @@ export const LOGOUT = 'LOGOUT';
export function logout () {
const user = JSON.parse(sessionStorage.getItem('pomsUser'))
user && user.token ?
AxyRequest.post(ApiTable.logout, {
token: user.token
EmisRequest.post(ApiTable.logout, {
token: user.token,
code: 'POMS'
}) : null;
sessionStorage.removeItem('pomsUser');
return {

14
web/client/src/sections/problem/actions/dataAlarm.jsx

@ -0,0 +1,14 @@
'use strict';
import { ApiTable ,basicAction} from '$utils'
// export function getMembers (orgId) {
// return dispatch => basicAction({
// type: 'get',
// dispatch: dispatch,
// actionType: 'GET_MEMBERS',
// url: `${ApiTable.getEnterprisesMembers.replace('{enterpriseId}', orgId)}`,
// msg: { error: '' },
// reducer: { name: 'members' }
// });
// }

7
web/client/src/sections/problem/actions/index.js

@ -0,0 +1,7 @@
'use strict';
import * as dataAlarm from './dataAlarm'
export default {
...dataAlarm
}

35
web/client/src/sections/problem/containers/dataAlarm.jsx

@ -0,0 +1,35 @@
import React, { useEffect, useState } from 'react';
import { connect } from 'react-redux';
import { IconAlertCircle } from '@douyinfe/semi-icons';
import '../style.less'
const DataAlarm = (props) => {
const { dispatch, actions, user, loading, socket } = props
const [abnormalLenght, setAbnormalLenght] = useState(1) //
useEffect(() => {
console.log(props);
}, [])
return (
<>
<div>
{abnormalLenght > 0 ? <IconAlertCircle /> : ""}
</div>
</>
)
}
function mapStateToProps (state) {
const { auth, global, members, webSocket } = state;
return {
// loading: members.isRequesting,
user: auth.user,
actions: global.actions,
// members: members.data,
// socket: webSocket.socket
};
}
export default connect(mapStateToProps)(DataAlarm);

5
web/client/src/sections/problem/containers/index.js

@ -0,0 +1,5 @@
'use strict';
import DataAlarm from './dataAlarm';
export { DataAlarm };

15
web/client/src/sections/problem/index.js

@ -0,0 +1,15 @@
'use strict';
import reducers from './reducers';
import routes from './routes';
import actions from './actions';
import { getNavItem } from './nav-item';
export default {
key: 'problem',
name: '书写示例',
reducers: reducers,
routes: routes,
actions: actions,
getNavItem: getNavItem
};

33
web/client/src/sections/problem/nav-item.jsx

@ -0,0 +1,33 @@
import React from 'react';
import { IconCode } from '@douyinfe/semi-icons';
export function getNavItem (user, dispatch) {
return (
[{
itemKey: 'problem', text: '问题',
items: [
{
itemKey: 'dataAlarm', text: '数据告警', icon: <iconpark-icon style={{ width: 20, height: 20 }} name="she-1"></iconpark-icon>,
items: [
{ itemKey: 'dataLnterrupt', to: '/problem/dataAlarm/dataLnterrupt', text: '数据中断' },
{ itemKey: 'dataAbnormal', to: '/problem/dataAlarm/dataAbnormal', text: '数据异常' },
{ itemKey: 'strategyHit', to: '/problem/dataAlarm/strategyHit', text: '策略命中' },
{ itemKey: 'videoAbnormal', to: '/problem/dataAlarm/videoAbnormal', text: '视频异常' },
]
}, {
itemKey: 'useAlarm', text: '应用告警', icon: <iconpark-icon style={{ width: 20, height: 20 }} name="she-1"></iconpark-icon>,
items: [
{ itemKey: 'useAbnormal', to: '/problem/useAlarm/useAbnormal', text: '应用异常' },
]
}, {
itemKey: 'deviceAlarm', text: '设备告警', icon: <iconpark-icon style={{ width: 20, height: 20 }} name="she-1"></iconpark-icon>,
items: [
{ itemKey: 'deviceAbnormal', to: '/problem/deviceAlarm/deviceAbnormal', text: '设备异常' },
]
},
]
},
]
);
}

5
web/client/src/sections/problem/reducers/index.js

@ -0,0 +1,5 @@
'use strict';
export default {
}

61
web/client/src/sections/problem/routes.js

@ -0,0 +1,61 @@
'use strict';
import { DataAlarm, } from './containers';
export default [{
type: 'inner',
route: {
path: '/problem',
key: 'problem',
breadcrumb: '问题',
// 不设置 component 则面包屑禁止跳转
childRoutes: [{
path: '/dataAlarm',
key: 'dataAlarm',
breadcrumb: '数据告警',
// 不设置 component 则面包屑禁止跳转
childRoutes: [{
path: '/dataLnterrupt',
key: 'dataLnterrupt',
breadcrumb: '数据中断',
component: DataAlarm,
}, {
path: '/dataAbnormal',
key: 'dataAbnormal',
breadcrumb: '数据异常',
component: DataAlarm,
}, {
path: '/strategyHit',
key: 'strategyHit',
breadcrumb: '策略命中',
component: DataAlarm,
}, {
path: '/videoAbnormal',
key: 'videoAbnormal',
breadcrumb: '视频异常',
component: DataAlarm,
}]
}, {
path: '/useAlarm',
key: 'useAlarm',
breadcrumb: '应用告警',
// 不设置 component 则面包屑禁止跳转
childRoutes: [{
path: '/useAbnormal',
key: 'useAbnormal',
breadcrumb: '应用异常',
component: DataAlarm,
},]
}, {
path: '/deviceAlarm',
key: 'deviceAlarm',
breadcrumb: '设备告警',
// 不设置 component 则面包屑禁止跳转
childRoutes: [{
path: '/deviceAbnormal',
key: 'deviceAbnormal',
breadcrumb: '设备异常',
component: DataAlarm,
},]
}]
}
}];

7
web/client/src/sections/problem/style.less

@ -0,0 +1,7 @@
#example {
box-shadow: 3px 3px 2px black;
}
#example:hover {
color: yellowgreen;
}

4
web/client/src/utils/index.js

@ -3,7 +3,7 @@ import { isAuthorized } from './func';
import { AuthorizationCode } from './authCode';
import {
ApiTable, RouteTable,
AxyRequest,
AxyRequest, EmisRequest,
basicAction, RouteRequest
} from './webapi'
@ -14,7 +14,7 @@ export {
RouteTable,
ApiTable,
AxyRequest,
EmisRequest,
basicAction,
RouteRequest,
}

10
web/client/src/utils/webapi.js

@ -2,6 +2,7 @@
import { ProxyRequest, customWebUtils } from "@peace/utils";
export const AxyRequest = new ProxyRequest("_axy");
export const EmisRequest = new ProxyRequest("_emis")
export const webUtils = new customWebUtils({
userKey: 'pomsUser'
@ -16,8 +17,7 @@ export const ApiTable = {
logout: "logout",
};
export const RouteTable = {
apiRoot: "/api/root",
fileUpload: "/_upload/new",
cleanUpUploadTrash: "/_upload/cleanup",
};
apiRoot: "/api/root",
fileUpload: "/_upload/new",
cleanUpUploadTrash: "/_upload/cleanup",
};

9
web/config.js

@ -14,13 +14,16 @@ args.option(['p', 'port'], '启动端口');
args.option(['u', 'api-url'], 'webapi的URL');
args.option('apiPomsUrl', 'webapi的URL 外网可访问');
args.option('apiAnxinyunUrl', '安心云 api');
args.option('apiEmisUrl', '企业管理 api');
const flags = args.parse(process.argv);
const API_URL = process.env.API_URL || flags.apiUrl;
const API_POMS_URL = process.env.API_POMS_URL || flags.apiPomsUrl;
const API_EMIS_URL = process.env.API_EMIS_URL || flags.apiEmisUrl;
const API_ANXINYUN_URL = process.env.API_ANXINYUN_URL || flags.apiAnxinyunUrl;
if (!API_URL || !API_ANXINYUN_URL) {
console.log('缺少启动参数,异常退出');
args.showHelp();
@ -42,6 +45,12 @@ const product = {
host: API_ANXINYUN_URL,
match: /^\/_axy\//,
}
}, {
entry: require('./middlewares/proxy').entry,
opts: {
host: API_EMIS_URL,
match: /^\/_emis\//,
}
}, {
entry: require('./routes').entry,
opts: {

2
web/package.json

@ -7,7 +7,7 @@
"test": "mocha",
"start-vite": "cross-env NODE_ENV=developmentVite npm run start-params",
"start": "cross-env NODE_ENV=development npm run start-params",
"start-params": "node server -p 5600 -u http://localhost:4600 --apiPomsUrl http://localhost:4600 --apiAnxinyunUrl http://localhost:4100",
"start-params": "node server -p 5600 -u http://localhost:4600 --apiPomsUrl http://localhost:4600 --apiAnxinyunUrl http://10.8.30.112:4100 --apiEmisUrl http://10.8.30.112:14000",
"deploy": "export NODE_ENV=production&& npm run build && node server",
"build-dev": "cross-env NODE_ENV=development&&webpack --config webpack.config.js",
"build": "cross-env NODE_ENV=production&&webpack --config webpack.config.prod.js"

Loading…
Cancel
Save