巴林闲侠 2 years ago
parent
commit
91033910e1
  1. 15
      web/client/index.html
  2. 31
      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. 38
      web/client/src/sections/facility/nav-item.jsx
  10. 61
      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

15
web/client/index.html

@ -8,16 +8,17 @@
<link rel="shortcut icon" href="/assets/images/favicon.ico">
<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>
</head>
<script
src="https://lf1-cdn-tos.bytegoofy.com/obj/iconpark/icons_19077_11.27aacefc59cea1cbc86236576463a6d2.es5.js"></script>
</head >
<body>
<div id='PomsApp' style="height: 100%;"></div>
<body>
<div id='PomsApp' style="height: 100%;"></div>
<!-- Webpack -->
<script type="text/javascript" src="http://localhost:5601/client/build/app.js"></script>
<!-- Webpack -->
<script type="text/javascript" src="http://localhost:5601/client/build/app.js"></script>
<!-- Vite -->
<!-- <script type="module">

31
web/client/src/app.jsx

@ -10,15 +10,18 @@ import Problem from './sections/problem';
import NoMatch from './sections/noMatch';
import Console from './sections/console';
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';
const App = props => {
const { projectName } = props
const { projectName } = props
useEffect(() => {
document.title = projectName;
useEffect(() => {
document.title = projectName;
console.log(`
console.log(`
_ _
         
      |  _  _ l
@ -30,17 +33,17 @@ const App = props => {
 | (ヽ__ヽ_)__)
 二つ
`);
}, [])
}, [])
return (
<Layout
title={projectName}
sections={[//Example,
Analysis, Install, Data, Problem,
Auth, NoMatch, Console
]}
/>
)
return (
<Layout
title={projectName}
sections={[//Example,
Analysis, Install, Data, Facility, Service, Problem, WorkOrder,Means,
Auth, NoMatch, Console
]}
/>
)
}
export default App;

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

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

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

@ -1,6 +1,6 @@
'use strict';
import SetControl from './setControl';
import Server from './server';
import Rest from './rest';
export { SetControl,Server,Rest};
import Other from './other';
import Monitor from './monitor';
import MaintenanceRecords from './maintenanceRecords';
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';
export default {
key: 'data',
name: '数据',
key: 'facility',
name: '设备',
reducers: reducers,
routes: routes,
actions: actions,

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

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

61
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 [{
type: 'inner',
route: {
path: '/data',
key: 'data',
breadcrumb: '数据',
path: '/facility',
key: 'facility',
breadcrumb: '设备',
// 不设置 component 则面包屑禁止跳转
childRoutes: [{
path: '/dataMonitoring',
key: 'dataMonitoring',
breadcrumb: '数据监控',
path: '/deviceQuery',
key: 'deviceQuery',
breadcrumb: '设备查询',
childRoutes: [{
path: '/dataQuery',
key: 'dataQuery',
component: DataQuery,
breadcrumb: '数据查询',
path: '/maintenanceRecords1',
key: 'maintenanceRecords1',
component: MaintenanceRecords,
breadcrumb: '维护记录',
}]
}, {
path: '/dataAnalysis',
key: 'dataAnalysis',
breadcrumb: '数据分析',
path: '/serverInformation',
key: 'serverInformation',
breadcrumb: '服务器信息',
childRoutes: [{
path: '/dataComparison',
key: 'dataComparison',
component: DataComparison,
breadcrumb: '数据对比',
},{
path: '/dataAssociation',
key: 'dataAssociation',
component: DataAssociation,
breadcrumb: '数据关联',
},{
path: '/notebook',
key: 'notebook',
component: Notebook,
breadcrumb: 'notebook',
path: '/monitor',
key: 'monitor',
component: Monitor,
breadcrumb: '运维监控',
}, {
path: '/maintenanceRecords',
key: 'maintenanceRecords',
component: MaintenanceRecords,
breadcrumb: '维护记录',
},]
}, {
path: '/other',
key: 'other',
breadcrumb: '其他',
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