Browse Source

Merge branch 'dev_trial' of https://gitea.free-sun.vip/free-sun/FS-IOT into dev_trial

release_0.0.2
巴林闲侠 2 years ago
parent
commit
1f3dc736fb
  1. 14
      code/VideoAccess-VCMP/web/client/src/app.jsx
  2. 4
      code/VideoAccess-VCMP/web/client/src/sections/aiAbility/containers/hiAI.jsx
  3. 4
      code/VideoAccess-VCMP/web/client/src/sections/aiAbility/containers/index.js
  4. 2
      code/VideoAccess-VCMP/web/client/src/sections/aiAbility/index.js
  5. 4
      code/VideoAccess-VCMP/web/client/src/sections/aiAbility/routes.js
  6. 5
      code/VideoAccess-VCMP/web/client/src/sections/application/actions/index.js
  7. 20
      code/VideoAccess-VCMP/web/client/src/sections/application/containers/applicationCenter.jsx
  8. 5
      code/VideoAccess-VCMP/web/client/src/sections/application/containers/index.js
  9. 15
      code/VideoAccess-VCMP/web/client/src/sections/application/index.js
  10. 12
      code/VideoAccess-VCMP/web/client/src/sections/application/nav-item.jsx
  11. 5
      code/VideoAccess-VCMP/web/client/src/sections/application/reducers/index.js
  12. 12
      code/VideoAccess-VCMP/web/client/src/sections/application/routes.js
  13. 0
      code/VideoAccess-VCMP/web/client/src/sections/application/style.less
  14. 5
      code/VideoAccess-VCMP/web/client/src/sections/archive/actions/index.js
  15. 20
      code/VideoAccess-VCMP/web/client/src/sections/archive/containers/containersCenter.jsx
  16. 5
      code/VideoAccess-VCMP/web/client/src/sections/archive/containers/index.js
  17. 15
      code/VideoAccess-VCMP/web/client/src/sections/archive/index.js
  18. 12
      code/VideoAccess-VCMP/web/client/src/sections/archive/nav-item.jsx
  19. 5
      code/VideoAccess-VCMP/web/client/src/sections/archive/reducers/index.js
  20. 12
      code/VideoAccess-VCMP/web/client/src/sections/archive/routes.js
  21. 0
      code/VideoAccess-VCMP/web/client/src/sections/archive/style.less
  22. 4
      code/VideoAccess-VCMP/web/client/src/sections/equipmentWarehouse/containers/camera.jsx
  23. 12
      code/VideoAccess-VCMP/web/client/src/sections/equipmentWarehouse/containers/nvr.jsx
  24. 5
      code/VideoAccess-VCMP/web/client/src/sections/journaling/actions/index.js
  25. 5
      code/VideoAccess-VCMP/web/client/src/sections/journaling/containers/index.js
  26. 20
      code/VideoAccess-VCMP/web/client/src/sections/journaling/containers/journalingCenter.jsx
  27. 15
      code/VideoAccess-VCMP/web/client/src/sections/journaling/index.js
  28. 12
      code/VideoAccess-VCMP/web/client/src/sections/journaling/nav-item.jsx
  29. 5
      code/VideoAccess-VCMP/web/client/src/sections/journaling/reducers/index.js
  30. 12
      code/VideoAccess-VCMP/web/client/src/sections/journaling/routes.js
  31. 0
      code/VideoAccess-VCMP/web/client/src/sections/journaling/style.less
  32. 5
      code/VideoAccess-VCMP/web/client/src/sections/member/actions/index.js
  33. 5
      code/VideoAccess-VCMP/web/client/src/sections/member/containers/index.js
  34. 20
      code/VideoAccess-VCMP/web/client/src/sections/member/containers/memberCenter.jsx
  35. 15
      code/VideoAccess-VCMP/web/client/src/sections/member/index.js
  36. 12
      code/VideoAccess-VCMP/web/client/src/sections/member/nav-item.jsx
  37. 5
      code/VideoAccess-VCMP/web/client/src/sections/member/reducers/index.js
  38. 12
      code/VideoAccess-VCMP/web/client/src/sections/member/routes.js
  39. 0
      code/VideoAccess-VCMP/web/client/src/sections/member/style.less
  40. 5
      code/VideoAccess-VCMP/web/client/src/sections/offline/actions/index.js
  41. 20
      code/VideoAccess-VCMP/web/client/src/sections/offline/containers/carrierpigeon.jsx
  42. 6
      code/VideoAccess-VCMP/web/client/src/sections/offline/containers/index.js
  43. 20
      code/VideoAccess-VCMP/web/client/src/sections/offline/containers/statuscode.jsx
  44. 15
      code/VideoAccess-VCMP/web/client/src/sections/offline/index.js
  45. 16
      code/VideoAccess-VCMP/web/client/src/sections/offline/nav-item.jsx
  46. 5
      code/VideoAccess-VCMP/web/client/src/sections/offline/reducers/index.js
  47. 23
      code/VideoAccess-VCMP/web/client/src/sections/offline/routes.js
  48. 0
      code/VideoAccess-VCMP/web/client/src/sections/offline/style.less
  49. 5
      code/VideoAccess-VCMP/web/client/src/sections/openness/actions/index.js
  50. 5
      code/VideoAccess-VCMP/web/client/src/sections/openness/containers/index.js
  51. 20
      code/VideoAccess-VCMP/web/client/src/sections/openness/containers/mirroring.jsx
  52. 15
      code/VideoAccess-VCMP/web/client/src/sections/openness/index.js
  53. 15
      code/VideoAccess-VCMP/web/client/src/sections/openness/nav-item.jsx
  54. 5
      code/VideoAccess-VCMP/web/client/src/sections/openness/reducers/index.js
  55. 18
      code/VideoAccess-VCMP/web/client/src/sections/openness/routes.js
  56. 0
      code/VideoAccess-VCMP/web/client/src/sections/openness/style.less
  57. 5
      code/VideoAccess-VCMP/web/client/src/sections/system/actions/index.js
  58. 6
      code/VideoAccess-VCMP/web/client/src/sections/system/containers/index.js
  59. 20
      code/VideoAccess-VCMP/web/client/src/sections/system/containers/journal.jsx
  60. 20
      code/VideoAccess-VCMP/web/client/src/sections/system/containers/theme.jsx
  61. 15
      code/VideoAccess-VCMP/web/client/src/sections/system/index.js
  62. 16
      code/VideoAccess-VCMP/web/client/src/sections/system/nav-item.jsx
  63. 5
      code/VideoAccess-VCMP/web/client/src/sections/system/reducers/index.js
  64. 23
      code/VideoAccess-VCMP/web/client/src/sections/system/routes.js
  65. 0
      code/VideoAccess-VCMP/web/client/src/sections/system/style.less

14
code/VideoAccess-VCMP/web/client/src/app.jsx

@ -6,7 +6,14 @@ import Auth from './sections/auth';
import Example from './sections/example';
import EquipmentWarehouse from './sections/equipmentWarehouse';
import Monitor from './sections/monitor'
// import AiAbility from './sections/aiAbility';
import AiAbility from './sections/aiAbility';
import offline from './sections/offline';
import openness from './sections/openness';
import system from './sections/system';
import journaling from './sections/journaling';
import archive from './sections/archive';
import application from './sections/application';
import member from './sections/member';
const App = props => {
const { projectName } = props
@ -18,7 +25,10 @@ const App = props => {
return (
<Layout
title={projectName}
sections={[Auth, Monitor, EquipmentWarehouse,]}
sections={[
Auth, Monitor, EquipmentWarehouse, AiAbility, offline,
openness, journaling, archive, application, member, system
]}
/>
)
}

4
code/VideoAccess-VCMP/web/client/src/sections/aiAbility/containers/hiAI.jsx

@ -3,7 +3,7 @@ import { connect } from 'react-redux';
import { Coming } from '$components'
import '../style.less'
const HiAl = (props) => {
const Hiai = (props) => {
return (
<Coming />
@ -17,4 +17,4 @@ function mapStateToProps (state) {
};
}
export default connect(mapStateToProps)(HiAl);
export default connect(mapStateToProps)(Hiai);

4
code/VideoAccess-VCMP/web/client/src/sections/aiAbility/containers/index.js

@ -1,6 +1,6 @@
'use strict';
import HiAl from './hiAI';
import Hiai from './hiAI';
import Consumption from './consumption';
export { HiAl ,Consumption};
export { Hiai ,Consumption};

2
code/VideoAccess-VCMP/web/client/src/sections/aiAbility/index.js

@ -6,7 +6,7 @@ import actions from './actions';
import { getNavItem } from './nav-item';
export default {
key: 'aiAbilityCenter',
key: 'aiAbility',
name: '视频AI能力',
reducers: reducers,
routes: routes,

4
code/VideoAccess-VCMP/web/client/src/sections/aiAbility/routes.js

@ -1,5 +1,5 @@
'use strict';
import { HiAI,Consumption } from './containers';
import { Hiai,Consumption } from './containers';
export default [{
type: 'inner',
@ -11,7 +11,7 @@ export default [{
childRoutes: [{
path: '/hiAI',
key: 'hiAI',
component: HiAI,
component: Hiai,
breadcrumb: 'hi AI',
}, {
path: '/consumption',

5
code/VideoAccess-VCMP/web/client/src/sections/application/actions/index.js

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

20
code/VideoAccess-VCMP/web/client/src/sections/application/containers/applicationCenter.jsx

@ -0,0 +1,20 @@
import React, { useEffect } from 'react';
import { connect } from 'react-redux';
import { Coming } from '$components'
import '../style.less'
const ApplicationCenter = (props) => {
return (
<Coming />
)
}
function mapStateToProps (state) {
const { auth } = state;
return {
user: auth.user,
};
}
export default connect(mapStateToProps)(ApplicationCenter);

5
code/VideoAccess-VCMP/web/client/src/sections/application/containers/index.js

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

15
code/VideoAccess-VCMP/web/client/src/sections/application/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: 'applicationCenter',
name: '应用管理',
reducers: reducers,
routes: routes,
actions: actions,
getNavItem: getNavItem
};

12
code/VideoAccess-VCMP/web/client/src/sections/application/nav-item.jsx

@ -0,0 +1,12 @@
import React from 'react';
import { IconCode } from '@douyinfe/semi-icons';
export function getNavItem (user, dispatch) {
return (
[
{
itemKey: 'application', text: '应用管理', to: '/application', icon: <IconCode />,
},
]
);
}

5
code/VideoAccess-VCMP/web/client/src/sections/application/reducers/index.js

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

12
code/VideoAccess-VCMP/web/client/src/sections/application/routes.js

@ -0,0 +1,12 @@
'use strict';
import { ApplicationCenter, } from './containers';
export default [{
type: 'inner',
route: {
path: '/application',
key: 'application',
breadcrumb: '应用管理',
component: ApplicationCenter,
}
}];

0
code/VideoAccess-VCMP/web/client/src/sections/application/style.less

5
code/VideoAccess-VCMP/web/client/src/sections/archive/actions/index.js

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

20
code/VideoAccess-VCMP/web/client/src/sections/archive/containers/containersCenter.jsx

@ -0,0 +1,20 @@
import React, { useEffect } from 'react';
import { connect } from 'react-redux';
import { Coming } from '$components'
import '../style.less'
const ContainersCenter = (props) => {
return (
<Coming />
)
}
function mapStateToProps (state) {
const { auth } = state;
return {
user: auth.user,
};
}
export default connect(mapStateToProps)(ContainersCenter);

5
code/VideoAccess-VCMP/web/client/src/sections/archive/containers/index.js

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

15
code/VideoAccess-VCMP/web/client/src/sections/archive/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: 'containersCenter',
name: '文档中心',
reducers: reducers,
routes: routes,
actions: actions,
getNavItem: getNavItem
};

12
code/VideoAccess-VCMP/web/client/src/sections/archive/nav-item.jsx

@ -0,0 +1,12 @@
import React from 'react';
import { IconCode } from '@douyinfe/semi-icons';
export function getNavItem (user, dispatch) {
return (
[
{
itemKey: 'containers', text: '文档中心', to: '/containers', icon: <IconCode />,
},
]
);
}

5
code/VideoAccess-VCMP/web/client/src/sections/archive/reducers/index.js

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

12
code/VideoAccess-VCMP/web/client/src/sections/archive/routes.js

@ -0,0 +1,12 @@
'use strict';
import { ContainersCenter, } from './containers';
export default [{
type: 'inner',
route: {
path: '/containers',
key: 'containers',
breadcrumb: '文档中心',
component: ContainersCenter,
}
}];

0
code/VideoAccess-VCMP/web/client/src/sections/archive/style.less

4
code/VideoAccess-VCMP/web/client/src/sections/equipmentWarehouse/containers/camera.jsx

@ -416,7 +416,7 @@ const CameraHeader = (props) => {
})
}
let dataSet =[...(new Set(datas))]
return <Popover
return dataSet.length>0?<Popover
key="updateTime"
position="top"
content={
@ -426,7 +426,7 @@ const CameraHeader = (props) => {
}
>
<Tag>{dataSet.length>0?`${dataSet[0]}...`:""}</Tag>
</Popover>
</Popover>:""
}
//

12
code/VideoAccess-VCMP/web/client/src/sections/equipmentWarehouse/containers/nvr.jsx

@ -259,23 +259,23 @@ const NvrHeader = (props) => {
let data = []
if (projects == "projects") {
r.station.map((v) => {
if (v.structure.projects.length >0) {
if (v.structure.projects.length > 0) {
v.structure.projects.map((item) => data.push(item[name]))
}
})
}else{
} else {
r.station.map((v, index) => data.push(v.structure[name]))
}
let dataSet =[...(new Set(data))]
return <Popover
let dataSet = [...(new Set(data))]
return dataSet.length > 0 ? <Popover
key="updateTime"
position="top"
content={
<article style={{ padding: 12 }}>{dataSet.map((v,index)=><div key={index}>{v}</div>)}</article>
<article style={{ padding: 12 }}>{dataSet.map((v, index) => <div key={index}>{v}</div>)}</article>
}
>
<Tag>{dataSet[0]}...</Tag>
</Popover>
</Popover> : ""
}

5
code/VideoAccess-VCMP/web/client/src/sections/journaling/actions/index.js

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

5
code/VideoAccess-VCMP/web/client/src/sections/journaling/containers/index.js

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

20
code/VideoAccess-VCMP/web/client/src/sections/journaling/containers/journalingCenter.jsx

@ -0,0 +1,20 @@
import React, { useEffect } from 'react';
import { connect } from 'react-redux';
import { Coming } from '$components'
import '../style.less'
const JournalingCenter = (props) => {
return (
<Coming />
)
}
function mapStateToProps (state) {
const { auth } = state;
return {
user: auth.user,
};
}
export default connect(mapStateToProps)(JournalingCenter);

15
code/VideoAccess-VCMP/web/client/src/sections/journaling/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: 'journalingCenter',
name: '设备报表',
reducers: reducers,
routes: routes,
actions: actions,
getNavItem: getNavItem
};

12
code/VideoAccess-VCMP/web/client/src/sections/journaling/nav-item.jsx

@ -0,0 +1,12 @@
import React from 'react';
import { IconCode } from '@douyinfe/semi-icons';
export function getNavItem (user, dispatch) {
return (
[
{
itemKey: 'journaling', text: '设备报表', to: '/journaling', icon: <IconCode />,
},
]
);
}

5
code/VideoAccess-VCMP/web/client/src/sections/journaling/reducers/index.js

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

12
code/VideoAccess-VCMP/web/client/src/sections/journaling/routes.js

@ -0,0 +1,12 @@
'use strict';
import { JournalingCenter, } from './containers';
export default [{
type: 'inner',
route: {
path: '/journaling',
key: 'journaling',
breadcrumb: '设备报表',
component: JournalingCenter,
}
}];

0
code/VideoAccess-VCMP/web/client/src/sections/journaling/style.less

5
code/VideoAccess-VCMP/web/client/src/sections/member/actions/index.js

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

5
code/VideoAccess-VCMP/web/client/src/sections/member/containers/index.js

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

20
code/VideoAccess-VCMP/web/client/src/sections/member/containers/memberCenter.jsx

@ -0,0 +1,20 @@
import React, { useEffect } from 'react';
import { connect } from 'react-redux';
import { Coming } from '$components'
import '../style.less'
const MemberCenter = (props) => {
return (
<Coming />
)
}
function mapStateToProps (state) {
const { auth } = state;
return {
user: auth.user,
};
}
export default connect(mapStateToProps)(MemberCenter);

15
code/VideoAccess-VCMP/web/client/src/sections/member/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: 'memberCenter',
name: '成员管理',
reducers: reducers,
routes: routes,
actions: actions,
getNavItem: getNavItem
};

12
code/VideoAccess-VCMP/web/client/src/sections/member/nav-item.jsx

@ -0,0 +1,12 @@
import React from 'react';
import { IconCode } from '@douyinfe/semi-icons';
export function getNavItem (user, dispatch) {
return (
[
{
itemKey: 'member', text: '成员管理', to: '/member', icon: <IconCode />,
},
]
);
}

5
code/VideoAccess-VCMP/web/client/src/sections/member/reducers/index.js

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

12
code/VideoAccess-VCMP/web/client/src/sections/member/routes.js

@ -0,0 +1,12 @@
'use strict';
import { MemberCenter, } from './containers';
export default [{
type: 'inner',
route: {
path: '/member',
key: 'member',
breadcrumb: '成员管理',
component: MemberCenter,
}
}];

0
code/VideoAccess-VCMP/web/client/src/sections/member/style.less

5
code/VideoAccess-VCMP/web/client/src/sections/offline/actions/index.js

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

20
code/VideoAccess-VCMP/web/client/src/sections/offline/containers/carrierpigeon.jsx

@ -0,0 +1,20 @@
import React, { useEffect } from 'react';
import { connect } from 'react-redux';
import { Coming } from '$components'
import '../style.less'
const Carrierpigeon = (props) => {
return (
<Coming />
)
}
function mapStateToProps (state) {
const { auth } = state;
return {
user: auth.user,
};
}
export default connect(mapStateToProps)(Carrierpigeon);

6
code/VideoAccess-VCMP/web/client/src/sections/offline/containers/index.js

@ -0,0 +1,6 @@
'use strict';
import Statuscode from './statuscode';
import Carrierpigeon from './carrierpigeon';
export { Statuscode ,Carrierpigeon};

20
code/VideoAccess-VCMP/web/client/src/sections/offline/containers/statuscode.jsx

@ -0,0 +1,20 @@
import React, { useEffect } from 'react';
import { connect } from 'react-redux';
import { Coming } from '$components'
import '../style.less'
const Statuscode = (props) => {
return (
<Coming />
)
}
function mapStateToProps (state) {
const { auth } = state;
return {
user: auth.user,
};
}
export default connect(mapStateToProps)(Statuscode);

15
code/VideoAccess-VCMP/web/client/src/sections/offline/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: 'offline',
name: '离线管理',
reducers: reducers,
routes: routes,
actions: actions,
getNavItem: getNavItem
};

16
code/VideoAccess-VCMP/web/client/src/sections/offline/nav-item.jsx

@ -0,0 +1,16 @@
import React from 'react';
import { IconCode } from '@douyinfe/semi-icons';
export function getNavItem (user, dispatch) {
return (
[
{
itemKey: 'offline', text: '离线管理', to: '/offline', icon: <IconCode />,
items: [
{ itemKey: 'statuscode', to: '/offline/statuscode', text: '状态码管理' },
{ itemKey: 'carrierpigeon', to: '/offline/carrierpigeon', text: '信鸽服务' }
],
},
]
);
}

5
code/VideoAccess-VCMP/web/client/src/sections/offline/reducers/index.js

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

23
code/VideoAccess-VCMP/web/client/src/sections/offline/routes.js

@ -0,0 +1,23 @@
'use strict';
import { Statuscode,Carrierpigeon } from './containers';
export default [{
type: 'inner',
route: {
path: '/offline',
key: 'offline',
breadcrumb: '离线管理',
// 不设置 component 则面包屑禁止跳转
childRoutes: [{
path: '/statuscode',
key: 'statuscode',
component: Statuscode,
breadcrumb: '状态码管理',
}, {
path: '/carrierpigeon',
key: 'carrierpigeon',
component: Carrierpigeon,
breadcrumb: '信鸽服务',
}]
}
}];

0
code/VideoAccess-VCMP/web/client/src/sections/offline/style.less

5
code/VideoAccess-VCMP/web/client/src/sections/openness/actions/index.js

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

5
code/VideoAccess-VCMP/web/client/src/sections/openness/containers/index.js

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

20
code/VideoAccess-VCMP/web/client/src/sections/openness/containers/mirroring.jsx

@ -0,0 +1,20 @@
import React, { useEffect } from 'react';
import { connect } from 'react-redux';
import { Coming } from '$components'
import '../style.less'
const Mirroring = (props) => {
return (
<Coming />
)
}
function mapStateToProps (state) {
const { auth } = state;
return {
user: auth.user,
};
}
export default connect(mapStateToProps)(Mirroring);

15
code/VideoAccess-VCMP/web/client/src/sections/openness/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: 'openness',
name: '视频AI能力',
reducers: reducers,
routes: routes,
actions: actions,
getNavItem: getNavItem
};

15
code/VideoAccess-VCMP/web/client/src/sections/openness/nav-item.jsx

@ -0,0 +1,15 @@
import React from 'react';
import { IconCode } from '@douyinfe/semi-icons';
export function getNavItem (user, dispatch) {
return (
[
{
itemKey: 'openness', text: '开放能力', to: '/openness', icon: <IconCode />,
items: [
{ itemKey: 'mirroring', to: '/openness/mirroring', text: '镜像服务' },
],
},
]
);
}

5
code/VideoAccess-VCMP/web/client/src/sections/openness/reducers/index.js

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

18
code/VideoAccess-VCMP/web/client/src/sections/openness/routes.js

@ -0,0 +1,18 @@
'use strict';
import { Mirroring } from './containers';
export default [{
type: 'inner',
route: {
path: '/openness',
key: 'openness',
breadcrumb: '开放能力',
// 不设置 component 则面包屑禁止跳转
childRoutes: [{
path: '/mirroring',
key: 'mirroring',
component: Mirroring,
breadcrumb: '镜像服务',
}]
}
}];

0
code/VideoAccess-VCMP/web/client/src/sections/openness/style.less

5
code/VideoAccess-VCMP/web/client/src/sections/system/actions/index.js

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

6
code/VideoAccess-VCMP/web/client/src/sections/system/containers/index.js

@ -0,0 +1,6 @@
'use strict';
import Journal from './journal';
import Theme from './theme';
export { Journal ,Theme};

20
code/VideoAccess-VCMP/web/client/src/sections/system/containers/journal.jsx

@ -0,0 +1,20 @@
import React, { useEffect } from 'react';
import { connect } from 'react-redux';
import { Coming } from '$components'
import '../style.less'
const Journal = (props) => {
return (
<Coming />
)
}
function mapStateToProps (state) {
const { auth } = state;
return {
user: auth.user,
};
}
export default connect(mapStateToProps)(Journal);

20
code/VideoAccess-VCMP/web/client/src/sections/system/containers/theme.jsx

@ -0,0 +1,20 @@
import React, { useEffect } from 'react';
import { connect } from 'react-redux';
import { Coming } from '$components'
import '../style.less'
const Theme = (props) => {
return (
<Coming />
)
}
function mapStateToProps (state) {
const { auth } = state;
return {
user: auth.user,
};
}
export default connect(mapStateToProps)(Theme);

15
code/VideoAccess-VCMP/web/client/src/sections/system/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: 'system',
name: '系统管理',
reducers: reducers,
routes: routes,
actions: actions,
getNavItem: getNavItem
};

16
code/VideoAccess-VCMP/web/client/src/sections/system/nav-item.jsx

@ -0,0 +1,16 @@
import React from 'react';
import { IconCode } from '@douyinfe/semi-icons';
export function getNavItem (user, dispatch) {
return (
[
{
itemKey: 'system', text: '系统管理', to: '/system', icon: <IconCode />,
items: [
{ itemKey: 'journal', to: '/system/journal', text: '操作日志' },
{ itemKey: 'theme', to: '/system/theme', text: '主题设置' }
],
},
]
);
}

5
code/VideoAccess-VCMP/web/client/src/sections/system/reducers/index.js

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

23
code/VideoAccess-VCMP/web/client/src/sections/system/routes.js

@ -0,0 +1,23 @@
'use strict';
import { Journal,Theme } from './containers';
export default [{
type: 'inner',
route: {
path: '/system',
key: 'system',
breadcrumb: '系统管理',
// 不设置 component 则面包屑禁止跳转
childRoutes: [{
path: '/journal',
key: 'journal',
component: Journal,
breadcrumb: '操作日志',
}, {
path: '/theme',
key: 'theme',
component: Theme,
breadcrumb: '主题设置',
}]
}
}];

0
code/VideoAccess-VCMP/web/client/src/sections/system/style.less

Loading…
Cancel
Save