47 changed files with 1062 additions and 74 deletions
			
			
		@ -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}; | 
				
			|||
@ -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: '/monitor', | 
				
			|||
                key: 'monitor', | 
				
			|||
                component: Monitor, | 
				
			|||
                breadcrumb: '运维监控', | 
				
			|||
            }, { | 
				
			|||
                path: '/dataAssociation', | 
				
			|||
                key: 'dataAssociation', | 
				
			|||
                component: DataAssociation, | 
				
			|||
                breadcrumb: '数据关联', | 
				
			|||
                path: '/maintenanceRecords', | 
				
			|||
                key: 'maintenanceRecords', | 
				
			|||
                component: MaintenanceRecords, | 
				
			|||
                breadcrumb: '维护记录', | 
				
			|||
            },] | 
				
			|||
        }, { | 
				
			|||
                path: '/notebook', | 
				
			|||
                key: 'notebook', | 
				
			|||
                component: Notebook, | 
				
			|||
                breadcrumb: 'notebook', | 
				
			|||
            path: '/other', | 
				
			|||
            key: 'other', | 
				
			|||
            breadcrumb: '其他', | 
				
			|||
            childRoutes: [{ | 
				
			|||
                path: '/other1', | 
				
			|||
                key: 'other1', | 
				
			|||
                component: Other, | 
				
			|||
                breadcrumb: '其他', | 
				
			|||
            }] | 
				
			|||
        }] | 
				
			|||
    } | 
				
			|||
 | 
				
			|||
@ -0,0 +1,2 @@ | 
				
			|||
'use strict'; | 
				
			|||
 | 
				
			|||
@ -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); | 
				
			|||
@ -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); | 
				
			|||
@ -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}; | 
				
			|||
@ -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); | 
				
			|||
@ -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); | 
				
			|||
@ -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 | 
				
			|||
}; | 
				
			|||
@ -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: '运维规范' | 
				
			|||
                        }] | 
				
			|||
                    } | 
				
			|||
                ] | 
				
			|||
            }, | 
				
			|||
        ] | 
				
			|||
    ); | 
				
			|||
} | 
				
			|||
@ -0,0 +1,5 @@ | 
				
			|||
'use strict'; | 
				
			|||
 | 
				
			|||
export default { | 
				
			|||
 | 
				
			|||
} | 
				
			|||
@ -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: '运维规范', | 
				
			|||
            }] | 
				
			|||
        }] | 
				
			|||
    } | 
				
			|||
}]; | 
				
			|||
@ -0,0 +1,7 @@ | 
				
			|||
#example { | 
				
			|||
    box-shadow: 3px 3px 2px black; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
#example:hover { | 
				
			|||
    color: yellowgreen; | 
				
			|||
} | 
				
			|||
@ -0,0 +1,2 @@ | 
				
			|||
'use strict'; | 
				
			|||
 | 
				
			|||
@ -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); | 
				
			|||
@ -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); | 
				
			|||
@ -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); | 
				
			|||
@ -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 }; | 
				
			|||
@ -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); | 
				
			|||
@ -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); | 
				
			|||
@ -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); | 
				
			|||
@ -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); | 
				
			|||
@ -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 | 
				
			|||
}; | 
				
			|||
@ -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: '服务记录' | 
				
			|||
                        }] | 
				
			|||
                    } | 
				
			|||
                ] | 
				
			|||
            }, | 
				
			|||
        ] | 
				
			|||
    ); | 
				
			|||
} | 
				
			|||
@ -0,0 +1,5 @@ | 
				
			|||
'use strict'; | 
				
			|||
 | 
				
			|||
export default { | 
				
			|||
 | 
				
			|||
} | 
				
			|||
@ -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: '服务记录', | 
				
			|||
            }] | 
				
			|||
        }] | 
				
			|||
    } | 
				
			|||
}]; | 
				
			|||
@ -0,0 +1,7 @@ | 
				
			|||
#example { | 
				
			|||
    box-shadow: 3px 3px 2px black; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
#example:hover { | 
				
			|||
    color: yellowgreen; | 
				
			|||
} | 
				
			|||
@ -0,0 +1,2 @@ | 
				
			|||
'use strict'; | 
				
			|||
 | 
				
			|||
@ -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); | 
				
			|||
@ -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}; | 
				
			|||
@ -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); | 
				
			|||
@ -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); | 
				
			|||
@ -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); | 
				
			|||
@ -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); | 
				
			|||
@ -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 | 
				
			|||
}; | 
				
			|||
@ -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: '与我有关的' | 
				
			|||
                        }] | 
				
			|||
                    } | 
				
			|||
                ] | 
				
			|||
            }, | 
				
			|||
        ] | 
				
			|||
    ); | 
				
			|||
} | 
				
			|||
@ -0,0 +1,5 @@ | 
				
			|||
'use strict'; | 
				
			|||
 | 
				
			|||
export default { | 
				
			|||
 | 
				
			|||
} | 
				
			|||
@ -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: '与我有关的', | 
				
			|||
            },] | 
				
			|||
        }] | 
				
			|||
    } | 
				
			|||
}]; | 
				
			|||
@ -0,0 +1,7 @@ | 
				
			|||
#example { | 
				
			|||
    box-shadow: 3px 3px 2px black; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
#example:hover { | 
				
			|||
    color: yellowgreen; | 
				
			|||
} | 
				
			|||
					Loading…
					
					
				
		Reference in new issue