巴林闲侠 2 years ago
parent
commit
91033910e1
  1. 3
      web/client/index.html
  2. 5
      web/client/src/app.jsx
  3. 4
      web/client/src/layout/components/sider/index.less
  4. 8
      web/client/src/sections/facility/containers/index.js
  5. 0
      web/client/src/sections/facility/containers/maintenanceRecords.jsx
  6. 0
      web/client/src/sections/facility/containers/monitor.jsx
  7. 0
      web/client/src/sections/facility/containers/other.jsx
  8. 4
      web/client/src/sections/facility/index.js
  9. 36
      web/client/src/sections/facility/nav-item.jsx
  10. 57
      web/client/src/sections/facility/routes.js
  11. 2
      web/client/src/sections/means/actions/index.js
  12. 34
      web/client/src/sections/means/containers/devOpsStandard.jsx
  13. 34
      web/client/src/sections/means/containers/faultInformation.jsx
  14. 7
      web/client/src/sections/means/containers/index.js
  15. 34
      web/client/src/sections/means/containers/projectMeans.jsx
  16. 34
      web/client/src/sections/means/containers/repairFQA.jsx
  17. 15
      web/client/src/sections/means/index.js
  18. 49
      web/client/src/sections/means/nav-item.jsx
  19. 5
      web/client/src/sections/means/reducers/index.js
  20. 52
      web/client/src/sections/means/routes.js
  21. 7
      web/client/src/sections/means/style.less
  22. 2
      web/client/src/sections/service/actions/index.js
  23. 34
      web/client/src/sections/service/containers/appPush.jsx
  24. 34
      web/client/src/sections/service/containers/cyclePlan.jsx
  25. 34
      web/client/src/sections/service/containers/emPush.jsx
  26. 11
      web/client/src/sections/service/containers/index.js
  27. 34
      web/client/src/sections/service/containers/maintenanceModel.jsx
  28. 34
      web/client/src/sections/service/containers/reportManagement.jsx
  29. 34
      web/client/src/sections/service/containers/serviceRecord.jsx
  30. 34
      web/client/src/sections/service/containers/temporaryResponse.jsx
  31. 15
      web/client/src/sections/service/index.js
  32. 61
      web/client/src/sections/service/nav-item.jsx
  33. 5
      web/client/src/sections/service/reducers/index.js
  34. 72
      web/client/src/sections/service/routes.js
  35. 7
      web/client/src/sections/service/style.less
  36. 2
      web/client/src/sections/workOrder/actions/index.js
  37. 34
      web/client/src/sections/workOrder/containers/aboutMe.jsx
  38. 8
      web/client/src/sections/workOrder/containers/index.js
  39. 34
      web/client/src/sections/workOrder/containers/initiated.jsx
  40. 34
      web/client/src/sections/workOrder/containers/jobOrder.jsx
  41. 34
      web/client/src/sections/workOrder/containers/receipt.jsx
  42. 34
      web/client/src/sections/workOrder/containers/stayDoWorkOrder.jsx
  43. 15
      web/client/src/sections/workOrder/index.js
  44. 36
      web/client/src/sections/workOrder/nav-item.jsx
  45. 5
      web/client/src/sections/workOrder/reducers/index.js
  46. 42
      web/client/src/sections/workOrder/routes.js
  47. 7
      web/client/src/sections/workOrder/style.less

3
web/client/index.html

@ -10,7 +10,8 @@
<script charset="UTF-8" id="LA_COLLECT" src="//sdk.51.la/js-sdk-pro.min.js"></script> <script charset="UTF-8" id="LA_COLLECT" src="//sdk.51.la/js-sdk-pro.min.js"></script>
<script>LA.init({ id: "Jo4eTlZVqgx3uwqm", ck: "Jo4eTlZVqgx3uwqm" })</script> <script>LA.init({ id: "Jo4eTlZVqgx3uwqm", ck: "Jo4eTlZVqgx3uwqm" })</script>
<script src="https://lf1-cdn-tos.bytegoofy.com/obj/iconpark/icons_19077_10.1efd80a22a5e53e48737fd5ab150ffd2.es5.js"></script> <script
src="https://lf1-cdn-tos.bytegoofy.com/obj/iconpark/icons_19077_11.27aacefc59cea1cbc86236576463a6d2.es5.js"></script>
</head > </head >
<body> <body>

5
web/client/src/app.jsx

@ -10,6 +10,9 @@ import Problem from './sections/problem';
import NoMatch from './sections/noMatch'; import NoMatch from './sections/noMatch';
import Console from './sections/console'; import Console from './sections/console';
import Facility from './sections/facility'; import Facility from './sections/facility';
import Service from './sections/service';
import WorkOrder from './sections/workOrder';
import Means from './sections/means';
import Data from './sections/data'; import Data from './sections/data';
const App = props => { const App = props => {
@ -36,7 +39,7 @@ const App = props => {
<Layout <Layout
title={projectName} title={projectName}
sections={[//Example, sections={[//Example,
Analysis, Install, Data, Problem, Analysis, Install, Data, Facility, Service, Problem, WorkOrder,Means,
Auth, NoMatch, Console Auth, NoMatch, Console
]} ]}
/> />

4
web/client/src/layout/components/sider/index.less

@ -9,6 +9,10 @@
.semi-navigation-item-icon{ .semi-navigation-item-icon{
color:#F2F3F5 color:#F2F3F5
} }
.semi-navigation-item-selected{
background: rgba(0, 90, 189, 0.5);
color: #F2F3F5;
}
.semi-navigation-item-inner{ .semi-navigation-item-inner{
font-family: YouSheBiaoTiHei; font-family: YouSheBiaoTiHei;
font-size: 16px; font-size: 16px;

8
web/client/src/sections/facility/containers/index.js

@ -1,6 +1,6 @@
'use strict'; 'use strict';
import SetControl from './setControl'; import Other from './other';
import Server from './server'; import Monitor from './monitor';
import Rest from './rest'; import MaintenanceRecords from './maintenanceRecords';
export { SetControl,Server,Rest}; export { MaintenanceRecords,Monitor,Other};

0
web/client/src/sections/facility/containers/rest.jsx → web/client/src/sections/facility/containers/maintenanceRecords.jsx

0
web/client/src/sections/facility/containers/server.jsx → web/client/src/sections/facility/containers/monitor.jsx

0
web/client/src/sections/facility/containers/setControl.jsx → web/client/src/sections/facility/containers/other.jsx

4
web/client/src/sections/facility/index.js

@ -6,8 +6,8 @@ import actions from './actions';
import { getNavItem } from './nav-item'; import { getNavItem } from './nav-item';
export default { export default {
key: 'data', key: 'facility',
name: '数据', name: '设备',
reducers: reducers, reducers: reducers,
routes: routes, routes: routes,
actions: actions, actions: actions,

36
web/client/src/sections/facility/nav-item.jsx

@ -5,31 +5,37 @@ export function getNavItem (user, dispatch) {
return ( return (
[ [
{ {
itemKey: 'data', itemKey: 'facility',
text: '数据', text: '设备',
icon: <IconCode />, icon: <IconCode />,
items: [ items: [
{ {
itemKey: 'dataMonitoring', itemKey: 'deviceQuery',
text: '数据监控', text: '设备查询',
icon: <iconpark-icon style={{ width: 20, height: 20 }} name="iconsjjiankong"></iconpark-icon>, icon: <iconpark-icon style={{ width: 20, height: 20 }} name="iconjianshezhong"></iconpark-icon>,
to: '/data/dataMonitoring/dataQuery', to: '/facility/deviceQuery/maintenanceRecords1',
items: [{ items: [{
itemKey: 'dataQuery', to: '/data/dataMonitoring/dataQuery', text: '数据查询' itemKey: 'maintenanceRecords1', to: '/facility/deviceQuery/maintenanceRecords1', text: '维护记录'
}] }]
}, { }, {
itemKey: 'dataAnalysis', itemKey: 'serverInformation',
text: '数据分析', text: '服务器信息',
icon: <iconpark-icon style={{ width: 20, height: 20 }} name="iconsjfenxi"></iconpark-icon>, icon: <iconpark-icon style={{ width: 20, height: 20 }} name="iconjianshezhong"></iconpark-icon>,
to: '/data/dataAnalysis/dataComparison', to: '/facility/serverInformation/monitor',
items: [{ items: [{
itemKey: 'dataComparison', to: '/data/dataAnalysis/dataComparison', text: '数据对比' itemKey: 'monitor', to: '/facility/serverInformation/monitor', text: '运维监控'
},{ },{
itemKey: 'dataAssociation', to: '/data/dataAnalysis/dataAssociation', text: '数据关联' itemKey: 'maintenanceRecords', to: '/facility/serverInformation/maintenanceRecords', text: '维护记录'
}]
},{ },{
itemKey: 'notebook', to: '/data/dataAnalysis/notebook', text: 'notebook' itemKey: 'other',
text: '其他',
icon: <iconpark-icon style={{ width: 20, height: 20 }} name="iconjianshezhong"></iconpark-icon>,
to: '/facility/other/other1',
items: [{
itemKey: 'other1', to: '/facility/other/other1', text: '其他'
}] }]
}, }
] ]
}, },
] ]

57
web/client/src/sections/facility/routes.js

@ -1,41 +1,46 @@
import { DataQuery, DataComparison, DataAssociation,Notebook } from './containers'; import { MaintenanceRecords, Monitor, Other } from './containers';
export default [{ export default [{
type: 'inner', type: 'inner',
route: { route: {
path: '/data', path: '/facility',
key: 'data', key: 'facility',
breadcrumb: '数据', breadcrumb: '设备',
// 不设置 component 则面包屑禁止跳转 // 不设置 component 则面包屑禁止跳转
childRoutes: [{ childRoutes: [{
path: '/dataMonitoring', path: '/deviceQuery',
key: 'dataMonitoring', key: 'deviceQuery',
breadcrumb: '数据监控', breadcrumb: '设备查询',
childRoutes: [{ childRoutes: [{
path: '/dataQuery', path: '/maintenanceRecords1',
key: 'dataQuery', key: 'maintenanceRecords1',
component: DataQuery, component: MaintenanceRecords,
breadcrumb: '数据查询', breadcrumb: '维护记录',
}] }]
}, { }, {
path: '/dataAnalysis', path: '/serverInformation',
key: 'dataAnalysis', key: 'serverInformation',
breadcrumb: '数据分析', breadcrumb: '服务器信息',
childRoutes: [{ childRoutes: [{
path: '/dataComparison', path: '/monitor',
key: 'dataComparison', key: 'monitor',
component: DataComparison, component: Monitor,
breadcrumb: '数据对比', breadcrumb: '运维监控',
}, { }, {
path: '/dataAssociation', path: '/maintenanceRecords',
key: 'dataAssociation', key: 'maintenanceRecords',
component: DataAssociation, component: MaintenanceRecords,
breadcrumb: '数据关联', breadcrumb: '维护记录',
},]
}, { }, {
path: '/notebook', path: '/other',
key: 'notebook', key: 'other',
component: Notebook, breadcrumb: '其他',
breadcrumb: 'notebook', childRoutes: [{
path: '/other1',
key: 'other1',
component: Other,
breadcrumb: '其他',
}] }]
}] }]
} }

2
web/client/src/sections/means/actions/index.js

@ -0,0 +1,2 @@
'use strict';

34
web/client/src/sections/means/containers/devOpsStandard.jsx

@ -0,0 +1,34 @@
import React, { useEffect } from 'react';
import { connect } from 'react-redux';
const Server = (props) => {
const { dispatch, actions, user, loading, socket } = props
useEffect(() => {
}, [])
return (
<>
<div>
<img src="/assets/images/install/watting.png" alt="" style={{ width: 'calc(100% + 16px)', position: "relative", top: -12, left: -8, }} />
</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)(Server);

34
web/client/src/sections/means/containers/faultInformation.jsx

@ -0,0 +1,34 @@
import React, { useEffect } from 'react';
import { connect } from 'react-redux';
const SetControl = (props) => {
const { dispatch, actions, user, loading, socket } = props
useEffect(() => {
}, [])
return (
<>
<div>
<img src="/assets/images/install/watting.png" alt="" style={{ width: 'calc(100% + 16px)', position: "relative", top: -12, left: -8, }} />
</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)(SetControl);

7
web/client/src/sections/means/containers/index.js

@ -0,0 +1,7 @@
'use strict';
import ProjectMeans from './projectMeans';
import RepairFQA from './repairFQA';
import FaultInformation from './faultInformation';
import DevOpsStandard from './devOpsStandard';
export { ProjectMeans, RepairFQA, FaultInformation, DevOpsStandard};

34
web/client/src/sections/means/containers/projectMeans.jsx

@ -0,0 +1,34 @@
import React, { useEffect } from 'react';
import { connect } from 'react-redux';
const Rest = (props) => {
const { dispatch, actions, user, loading, socket } = props
useEffect(() => {
}, [])
return (
<>
<div>
<img src="/assets/images/install/watting.png" alt="" style={{ width: 'calc(100% + 16px)', position: "relative", top: -12, left: -8, }} />
</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)(Rest);

34
web/client/src/sections/means/containers/repairFQA.jsx

@ -0,0 +1,34 @@
import React, { useEffect } from 'react';
import { connect } from 'react-redux';
const Rest = (props) => {
const { dispatch, actions, user, loading, socket } = props
useEffect(() => {
}, [])
return (
<>
<div>
<img src="/assets/images/install/watting.png" alt="" style={{ width: 'calc(100% + 16px)', position: "relative", top: -12, left: -8, }} />
</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)(Rest);

15
web/client/src/sections/means/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: 'facility',
name: '设备',
reducers: reducers,
routes: routes,
actions: actions,
getNavItem: getNavItem
};

49
web/client/src/sections/means/nav-item.jsx

@ -0,0 +1,49 @@
import React from 'react';
import { IconCode } from '@douyinfe/semi-icons';
export function getNavItem (user, dispatch) {
return (
[
{
itemKey: 'means',
text: '资料',
icon: <IconCode />,
items: [
{
itemKey: 'projectMeans',
text: '项目资料',
icon: <iconpark-icon style={{ width: 20, height: 20 }} name="iconjianshezhong"></iconpark-icon>,
to: '/means/projectMeans/projectMeans1',
items: [{
itemKey: 'projectMeans1', to: '/means/projectMeans/projectMeans1', text: '项目资料'
}]
}, {
itemKey: 'repairFQA',
text: '维修FQA',
icon: <iconpark-icon style={{ width: 20, height: 20 }} name="iconjianshezhong"></iconpark-icon>,
to: '/means/repairFQA/repairFQA1',
items: [{
itemKey: 'repairFQA1', to: '/means/repairFQA/repairFQA1', text: '维修FQA'
}]
}, {
itemKey: 'faultInformation',
text: '故障资料',
icon: <iconpark-icon style={{ width: 20, height: 20 }} name="iconjianshezhong"></iconpark-icon>,
to: '/means/faultInformation/faultInformation1',
items: [{
itemKey: 'faultInformation1', to: '/means/faultInformation/faultInformation1', text: '故障资料'
}]
}, {
itemKey: 'devOpsStandard',
text: '运维规范',
icon: <iconpark-icon style={{ width: 20, height: 20 }} name="iconjianshezhong"></iconpark-icon>,
to: '/means/devOpsStandard/devOpsStandard1',
items: [{
itemKey: 'devOpsStandard1', to: '/means/devOpsStandard/devOpsStandard1', text: '运维规范'
}]
}
]
},
]
);
}

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

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

52
web/client/src/sections/means/routes.js

@ -0,0 +1,52 @@
import { ProjectMeans, RepairFQA, FaultInformation, DevOpsStandard } from './containers';
export default [{
type: 'inner',
route: {
path: '/means',
key: 'means',
breadcrumb: '资料',
// 不设置 component 则面包屑禁止跳转
childRoutes: [{
path: '/projectMeans',
key: 'projectMeans',
breadcrumb: '项目资料',
childRoutes: [{
path: '/projectMeans1',
key: 'projectMeans1',
component: ProjectMeans,
breadcrumb: '项目资料',
}]
}, {
path: '/repairFQA',
key: 'repairFQA',
breadcrumb: '维修FQA',
childRoutes: [{
path: '/repairFQA1',
key: 'repairFQA1',
component: RepairFQA,
breadcrumb: '维修FQA',
}]
}, {
path: '/faultInformation',
key: 'faultInformation',
breadcrumb: '故障资料',
childRoutes: [{
path: '/faultInformation1',
key: 'faultInformation1',
component: FaultInformation,
breadcrumb: '故障资料',
}]
}, {
path: '/devOpsStandard',
key: 'devOpsStandard',
breadcrumb: '运维规范',
childRoutes: [{
path: '/devOpsStandard1',
key: 'devOpsStandard1',
component: DevOpsStandard,
breadcrumb: '运维规范',
}]
}]
}
}];

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

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

2
web/client/src/sections/service/actions/index.js

@ -0,0 +1,2 @@
'use strict';

34
web/client/src/sections/service/containers/appPush.jsx

@ -0,0 +1,34 @@
import React, { useEffect } from 'react';
import { connect } from 'react-redux';
const Server = (props) => {
const { dispatch, actions, user, loading, socket } = props
useEffect(() => {
}, [])
return (
<>
<div>
<img src="/assets/images/install/watting.png" alt="" style={{ width: 'calc(100% + 16px)', position: "relative", top: -12, left: -8, }} />
</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)(Server);

34
web/client/src/sections/service/containers/cyclePlan.jsx

@ -0,0 +1,34 @@
import React, { useEffect } from 'react';
import { connect } from 'react-redux';
const Server = (props) => {
const { dispatch, actions, user, loading, socket } = props
useEffect(() => {
}, [])
return (
<>
<div>
<img src="/assets/images/install/watting.png" alt="" style={{ width: 'calc(100% + 16px)', position: "relative", top: -12, left: -8, }} />
</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)(Server);

34
web/client/src/sections/service/containers/emPush.jsx

@ -0,0 +1,34 @@
import React, { useEffect } from 'react';
import { connect } from 'react-redux';
const Server = (props) => {
const { dispatch, actions, user, loading, socket } = props
useEffect(() => {
}, [])
return (
<>
<div>
<img src="/assets/images/install/watting.png" alt="" style={{ width: 'calc(100% + 16px)', position: "relative", top: -12, left: -8, }} />
</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)(Server);

11
web/client/src/sections/service/containers/index.js

@ -0,0 +1,11 @@
'use strict';
import ReportManagement from './reportManagement';
import CyclePlan from './cyclePlan';
import TemporaryResponse from './temporaryResponse';
import EmPush from './emPush';
import AppPush from './appPush';
import MaintenanceModel from './maintenanceModel';
import ServiceRecord from './serviceRecord';
export { ReportManagement, CyclePlan, TemporaryResponse, EmPush, AppPush, MaintenanceModel, ServiceRecord };

34
web/client/src/sections/service/containers/maintenanceModel.jsx

@ -0,0 +1,34 @@
import React, { useEffect } from 'react';
import { connect } from 'react-redux';
const Server = (props) => {
const { dispatch, actions, user, loading, socket } = props
useEffect(() => {
}, [])
return (
<>
<div>
<img src="/assets/images/install/watting.png" alt="" style={{ width: 'calc(100% + 16px)', position: "relative", top: -12, left: -8, }} />
</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)(Server);

34
web/client/src/sections/service/containers/reportManagement.jsx

@ -0,0 +1,34 @@
import React, { useEffect } from 'react';
import { connect } from 'react-redux';
const Rest = (props) => {
const { dispatch, actions, user, loading, socket } = props
useEffect(() => {
}, [])
return (
<>
<div>
<img src="/assets/images/install/watting.png" alt="" style={{ width: 'calc(100% + 16px)', position: "relative", top: -12, left: -8, }} />
</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)(Rest);

34
web/client/src/sections/service/containers/serviceRecord.jsx

@ -0,0 +1,34 @@
import React, { useEffect } from 'react';
import { connect } from 'react-redux';
const Server = (props) => {
const { dispatch, actions, user, loading, socket } = props
useEffect(() => {
}, [])
return (
<>
<div>
<img src="/assets/images/install/watting.png" alt="" style={{ width: 'calc(100% + 16px)', position: "relative", top: -12, left: -8, }} />
</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)(Server);

34
web/client/src/sections/service/containers/temporaryResponse.jsx

@ -0,0 +1,34 @@
import React, { useEffect } from 'react';
import { connect } from 'react-redux';
const SetControl = (props) => {
const { dispatch, actions, user, loading, socket } = props
useEffect(() => {
}, [])
return (
<>
<div>
<img src="/assets/images/install/watting.png" alt="" style={{ width: 'calc(100% + 16px)', position: "relative", top: -12, left: -8, }} />
</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)(SetControl);

15
web/client/src/sections/service/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: 'service',
name: '服务',
reducers: reducers,
routes: routes,
actions: actions,
getNavItem: getNavItem
};

61
web/client/src/sections/service/nav-item.jsx

@ -0,0 +1,61 @@
import React from 'react';
import { IconCode } from '@douyinfe/semi-icons';
export function getNavItem (user, dispatch) {
return (
[
{
itemKey: 'service',
text: '服务',
icon: <IconCode />,
items: [
{
itemKey: 'reportingServices',
text: '报表服务',
icon: <iconpark-icon style={{ width: 20, height: 20 }} name="iconjianshezhong"></iconpark-icon>,
to: '/service/reportingServices/reportManagement',
items: [{
itemKey: 'reportManagement', to: '/service/reportingServices/reportManagement', text: '报表管理'
}]
}, {
itemKey: 'maintenancePlan',
text: '维护计划',
icon: <iconpark-icon style={{ width: 20, height: 20 }} name="iconjianshezhong"></iconpark-icon>,
to: '/service/maintenancePlan/cyclePlan',
items: [{
itemKey: 'cyclePlan', to: '/service/maintenancePlan/cyclePlan', text: '周期计划'
}, {
itemKey: 'temporaryResponse', to: '/service/maintenancePlan/temporaryResponse', text: '临时响应'
}]
}, {
itemKey: 'carrierPigeon',
text: '信鸽服务',
icon: <iconpark-icon style={{ width: 20, height: 20 }} name="iconjianshezhong"></iconpark-icon>,
to: '/service/carrierPigeon/emPush',
items: [{
itemKey: 'emPush', to: '/service/carrierPigeon/emPush', text: 'EM推送'
},{
itemKey: 'appPush', to: '/service/carrierPigeon/appPush', text: '应用推送'
}]
},{
itemKey: 'preventiveMaintenance',
text: '预防性维保',
icon: <iconpark-icon style={{ width: 20, height: 20 }} name="iconjianshezhong"></iconpark-icon>,
to: '/service/preventiveMaintenance/maintenanceModel',
items: [{
itemKey: 'maintenanceModel', to: '/service/preventiveMaintenance/maintenanceModel', text: '维保模型'
}]
},{
itemKey: 'serviceRecord',
text: '服务记录',
icon: <iconpark-icon style={{ width: 20, height: 20 }} name="iconjianshezhong"></iconpark-icon>,
to: '/service/serviceRecord/serviceRecord1',
items: [{
itemKey: 'serviceRecord1', to: '/service/serviceRecord/serviceRecord1', text: '服务记录'
}]
}
]
},
]
);
}

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

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

72
web/client/src/sections/service/routes.js

@ -0,0 +1,72 @@
import { ReportManagement, CyclePlan, TemporaryResponse, EmPush, AppPush, MaintenanceModel, ServiceRecord } from './containers';
export default [{
type: 'inner',
route: {
path: '/service',
key: 'service',
breadcrumb: '服务',
// 不设置 component 则面包屑禁止跳转
childRoutes: [{
path: '/reportingServices',
key: 'reportingServices',
breadcrumb: '报表服务',
childRoutes: [{
path: '/reportManagement',
key: 'reportManagement',
component: ReportManagement,
breadcrumb: '报表管理',
}]
}, {
path: '/maintenancePlan',
key: 'maintenancePlan',
breadcrumb: '维护计划',
childRoutes: [{
path: '/cyclePlan',
key: 'cyclePlan',
component: CyclePlan,
breadcrumb: '周期计划',
}, {
path: '/temporaryResponse',
key: 'temporaryResponse',
component: TemporaryResponse,
breadcrumb: '临时响应',
},]
}, {
path: '/carrierPigeon',
key: 'carrierPigeon',
breadcrumb: '信鸽服务',
childRoutes: [{
path: '/emPush',
key: 'emPush',
component: EmPush,
breadcrumb: 'EM推送',
}, {
path: '/appPush',
key: 'appPush',
component: AppPush,
breadcrumb: '应用推送',
},]
}, {
path: '/preventiveMaintenance',
key: 'preventiveMaintenance',
breadcrumb: '预防性维保',
childRoutes: [{
path: '/maintenanceModel',
key: 'maintenanceModel',
component: MaintenanceModel,
breadcrumb: '维保模型',
}]
}, {
path: '/serviceRecord',
key: 'serviceRecord',
breadcrumb: '服务记录',
childRoutes: [{
path: '/serviceRecord1',
key: 'serviceRecord1',
component: ServiceRecord,
breadcrumb: '服务记录',
}]
}]
}
}];

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

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

2
web/client/src/sections/workOrder/actions/index.js

@ -0,0 +1,2 @@
'use strict';

34
web/client/src/sections/workOrder/containers/aboutMe.jsx

@ -0,0 +1,34 @@
import React, { useEffect } from 'react';
import { connect } from 'react-redux';
const Server = (props) => {
const { dispatch, actions, user, loading, socket } = props
useEffect(() => {
}, [])
return (
<>
<div>
<img src="/assets/images/install/watting.png" alt="" style={{ width: 'calc(100% + 16px)', position: "relative", top: -12, left: -8, }} />
</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)(Server);

8
web/client/src/sections/workOrder/containers/index.js

@ -0,0 +1,8 @@
'use strict';
import JobOrder from './jobOrder';
import StayDoWorkOrder from './stayDoWorkOrder';
import Initiated from './initiated';
import Receipt from './receipt';
import AboutMe from './aboutMe';
export { JobOrder, StayDoWorkOrder, Initiated, Receipt, AboutMe};

34
web/client/src/sections/workOrder/containers/initiated.jsx

@ -0,0 +1,34 @@
import React, { useEffect } from 'react';
import { connect } from 'react-redux';
const Rest = (props) => {
const { dispatch, actions, user, loading, socket } = props
useEffect(() => {
}, [])
return (
<>
<div>
<img src="/assets/images/install/watting.png" alt="" style={{ width: 'calc(100% + 16px)', position: "relative", top: -12, left: -8, }} />
</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)(Rest);

34
web/client/src/sections/workOrder/containers/jobOrder.jsx

@ -0,0 +1,34 @@
import React, { useEffect } from 'react';
import { connect } from 'react-redux';
const Rest = (props) => {
const { dispatch, actions, user, loading, socket } = props
useEffect(() => {
}, [])
return (
<>
<div>
<img src="/assets/images/install/watting.png" alt="" style={{ width: 'calc(100% + 16px)', position: "relative", top: -12, left: -8, }} />
</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)(Rest);

34
web/client/src/sections/workOrder/containers/receipt.jsx

@ -0,0 +1,34 @@
import React, { useEffect } from 'react';
import { connect } from 'react-redux';
const SetControl = (props) => {
const { dispatch, actions, user, loading, socket } = props
useEffect(() => {
}, [])
return (
<>
<div>
<img src="/assets/images/install/watting.png" alt="" style={{ width: 'calc(100% + 16px)', position: "relative", top: -12, left: -8, }} />
</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)(SetControl);

34
web/client/src/sections/workOrder/containers/stayDoWorkOrder.jsx

@ -0,0 +1,34 @@
import React, { useEffect } from 'react';
import { connect } from 'react-redux';
const Rest = (props) => {
const { dispatch, actions, user, loading, socket } = props
useEffect(() => {
}, [])
return (
<>
<div>
<img src="/assets/images/install/watting.png" alt="" style={{ width: 'calc(100% + 16px)', position: "relative", top: -12, left: -8, }} />
</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)(Rest);

15
web/client/src/sections/workOrder/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: 'workOrder',
name: '工单',
reducers: reducers,
routes: routes,
actions: actions,
getNavItem: getNavItem
};

36
web/client/src/sections/workOrder/nav-item.jsx

@ -0,0 +1,36 @@
import React from 'react';
import { IconCode } from '@douyinfe/semi-icons';
export function getNavItem (user, dispatch) {
return (
[
{
itemKey: 'workOrder',
text: '工单',
icon: <IconCode />,
items: [
{
itemKey: 'jobOrder',
text: '创建工单',
icon: <iconpark-icon style={{ width: 20, height: 20 }} name="iconjianshezhong"></iconpark-icon>,
to: '/workOrder/jobOrder',
}, {
itemKey: 'workOrderList',
text: '工单列表',
icon: <iconpark-icon style={{ width: 20, height: 20 }} name="iconjianshezhong"></iconpark-icon>,
to: '/workOrder/workOrderList/stayDoWorkOrder',
items: [{
itemKey: 'stayDoWorkOrder', to: '/workOrder/workOrderList/stayDoWorkOrder', text: '代办工单'
},{
itemKey: 'initiated', to: '/workOrder/workOrderList/initiated', text: '我发起的'
},{
itemKey: 'receipt', to: '/workOrder/workOrderList/receipt', text: '工单回执'
},{
itemKey: 'aboutMe', to: '/workOrder/workOrderList/aboutMe', text: '与我有关的'
}]
}
]
},
]
);
}

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

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

42
web/client/src/sections/workOrder/routes.js

@ -0,0 +1,42 @@
import { JobOrder, StayDoWorkOrder, Initiated, Receipt, AboutMe } from './containers';
export default [{
type: 'inner',
route: {
path: '/workOrder',
key: 'workOrder',
breadcrumb: '工单',
// 不设置 component 则面包屑禁止跳转
childRoutes: [{
path: '/jobOrder',
key: 'jobOrder',
breadcrumb: '创建工单',
component: JobOrder,
}, {
path: '/workOrderList',
key: 'workOrderList',
breadcrumb: '工单列表',
childRoutes: [{
path: '/stayDoWorkOrder',
key: 'stayDoWorkOrder',
component: StayDoWorkOrder,
breadcrumb: '代办工单',
}, {
path: '/initiated',
key: 'initiated',
component: Initiated,
breadcrumb: '我发起的',
}, {
path: '/receipt',
key: 'receipt',
component: Receipt,
breadcrumb: '工单回执',
}, {
path: '/aboutMe',
key: 'aboutMe',
component: AboutMe,
breadcrumb: '与我有关的',
},]
}]
}
}];

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

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