vue2-client 1.18.15 → 1.18.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/.env +1 -1
  2. package/.eslintrc.js +90 -90
  3. package/Components.md +60 -60
  4. package/docs/index.md +30 -30
  5. package/index.js +31 -31
  6. package/jest-transform-stub.js +8 -8
  7. package/jest.setup.js +7 -7
  8. package/package.json +1 -1
  9. package/public/index.html +1 -1
  10. package/src/assets/img/querySlotDemo.svg +15 -15
  11. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
  12. package/src/base-client/components/common/CitySelect/index.js +3 -3
  13. package/src/base-client/components/common/CitySelect/index.md +109 -109
  14. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +669 -669
  15. package/src/base-client/components/common/CreateQuery/index.js +3 -3
  16. package/src/base-client/components/common/CreateQuery/index.md +42 -42
  17. package/src/base-client/components/common/CreateSimpleFormQuery/index.js +3 -3
  18. package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -42
  19. package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
  20. package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
  21. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +166 -166
  22. package/src/base-client/components/common/FormGroupQuery/index.js +3 -3
  23. package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
  24. package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
  25. package/src/base-client/components/common/PersonSetting/PersonSetting.vue +208 -208
  26. package/src/base-client/components/common/PersonSetting/index.js +3 -3
  27. package/src/base-client/components/common/Tree/Tree.vue +149 -149
  28. package/src/base-client/components/common/Tree/index.js +2 -2
  29. package/src/base-client/components/common/Upload/index.js +3 -3
  30. package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
  31. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  32. package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
  33. package/src/base-client/components/common/XDataDrawer/index.js +3 -3
  34. package/src/base-client/components/common/XDataDrawer/index.md +41 -41
  35. package/src/base-client/components/common/XDescriptions/index.js +3 -3
  36. package/src/base-client/components/common/XDescriptions/index.md +83 -83
  37. package/src/base-client/components/common/XForm/index.md +178 -178
  38. package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
  39. package/src/base-client/components/common/XStepView/index.js +3 -3
  40. package/src/base-client/components/common/XStepView/index.md +31 -31
  41. package/src/base-client/components/common/XTable/index.md +255 -255
  42. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  43. package/src/base-client/plugins/Config.js +19 -19
  44. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  45. package/src/components/Charts/Bar.vue +62 -62
  46. package/src/components/Charts/ChartCard.vue +134 -134
  47. package/src/components/Charts/Liquid.vue +67 -67
  48. package/src/components/Charts/MiniArea.vue +39 -39
  49. package/src/components/Charts/MiniBar.vue +39 -39
  50. package/src/components/Charts/MiniProgress.vue +75 -75
  51. package/src/components/Charts/MiniSmoothArea.vue +40 -40
  52. package/src/components/Charts/Radar.vue +68 -68
  53. package/src/components/Charts/RankList.vue +77 -77
  54. package/src/components/Charts/TagCloud.vue +113 -113
  55. package/src/components/Charts/TransferBar.vue +64 -64
  56. package/src/components/Charts/Trend.vue +82 -82
  57. package/src/components/Charts/chart.less +12 -12
  58. package/src/components/Charts/smooth.area.less +13 -13
  59. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  60. package/src/components/NumberInfo/index.js +3 -3
  61. package/src/components/NumberInfo/index.less +54 -54
  62. package/src/components/NumberInfo/index.md +43 -43
  63. package/src/components/card/ChartCard.vue +79 -79
  64. package/src/components/chart/Bar.vue +60 -60
  65. package/src/components/chart/MiniArea.vue +67 -67
  66. package/src/components/chart/MiniBar.vue +59 -59
  67. package/src/components/chart/MiniProgress.vue +57 -57
  68. package/src/components/chart/Radar.vue +80 -80
  69. package/src/components/chart/RankingList.vue +60 -60
  70. package/src/components/chart/Trend.vue +79 -79
  71. package/src/components/chart/index.less +9 -9
  72. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  73. package/src/components/index.js +3 -1
  74. package/src/components/input/IInput.vue +66 -66
  75. package/src/components/menu/SideMenu.vue +75 -75
  76. package/src/components/menu/menu.js +273 -273
  77. package/src/components/tool/AStepItem.vue +60 -60
  78. package/src/components/xScrollBox/example.vue +70 -0
  79. package/src/components/xScrollBox/index.vue +50 -0
  80. package/src/layouts/BlankView.vue +1 -1
  81. package/src/layouts/CommonLayout.vue +56 -56
  82. package/src/layouts/header/HeaderNotice.vue +177 -177
  83. package/src/lib.js +1 -1
  84. package/src/main.js +2 -0
  85. package/src/mock/extend/index.js +84 -84
  86. package/src/mock/goods/index.js +108 -108
  87. package/src/pages/dashboard/workplace/WorkPlace.vue +141 -141
  88. package/src/pages/system/dictionary/index.vue +44 -44
  89. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  90. package/src/pages/system/monitor/operLog/index.vue +37 -37
  91. package/src/router/async/router.map.js +2 -1
  92. package/src/services/api/cas.js +79 -79
  93. package/src/store/modules/setting.js +119 -119
  94. package/src/utils/authority-utils.js +85 -85
  95. package/src/utils/errorCode.js +6 -6
  96. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
@@ -1,84 +1,84 @@
1
- import Mock from 'mockjs'
2
- import { logos, sayings, positions, avatars, admins } from '../common'
3
-
4
- const Random = Mock.Random
5
-
6
- const timeList = [
7
- {
8
- CN: '早上好',
9
- HK: '早晨啊',
10
- US: 'Good morning'
11
- }, {
12
- CN: '上午好',
13
- HK: '上午好',
14
- US: 'Good morning'
15
- }, {
16
- CN: '中午好',
17
- HK: '中午好',
18
- US: 'Good afternoon'
19
- }, {
20
- CN: '下午好',
21
- HK: '下午好',
22
- US: 'Good afternoon'
23
- }, {
24
- CN: '晚上好',
25
- HK: '晚上好',
26
- US: 'Good evening'
27
- }
28
- ]
29
-
30
- const welcomeMessages = [
31
- {
32
- CN: '休息一会儿吧',
33
- HK: '休息一會兒吧',
34
- US: 'you may need a break'
35
- },
36
- {
37
- CN: '准备吃什么呢',
38
- HK: '準備吃什麼呢',
39
- US: 'what are you going to eat'
40
- },
41
- {
42
- CN: '要不要打一把 LOL',
43
- HK: '要不要打一把 LOL',
44
- US: 'how about a game of DOTA'
45
- },
46
- {
47
- CN: '我猜你可能累了',
48
- HK: '我猜你可能累了',
49
- US: 'i guess you might be tired'
50
- }
51
- ]
52
-
53
- const goods = ['运动鞋', '短裤', 'T恤', '七分裤', '风衣', '寸衫']
54
-
55
- Random.extend({
56
- admin () {
57
- return this.pick(admins)
58
- },
59
- welcome () {
60
- return this.pick(welcomeMessages)
61
- },
62
- timeFix () {
63
- const time = new Date()
64
- const hour = time.getHours()
65
- return hour < 9
66
- ? timeList[0]
67
- : (hour <= 11 ? timeList[1] : (hour <= 13 ? timeList[2] : (hour <= 20 ? timeList[3] : timeList[4])))
68
- },
69
- avatar () {
70
- return this.pick(avatars)
71
- },
72
- position () {
73
- return this.pick(positions)
74
- },
75
- goods () {
76
- return this.pick(goods)
77
- },
78
- saying () {
79
- return this.pick(sayings)
80
- },
81
- logo () {
82
- return this.pick(logos)
83
- }
84
- })
1
+ import Mock from 'mockjs'
2
+ import { logos, sayings, positions, avatars, admins } from '../common'
3
+
4
+ const Random = Mock.Random
5
+
6
+ const timeList = [
7
+ {
8
+ CN: '早上好',
9
+ HK: '早晨啊',
10
+ US: 'Good morning'
11
+ }, {
12
+ CN: '上午好',
13
+ HK: '上午好',
14
+ US: 'Good morning'
15
+ }, {
16
+ CN: '中午好',
17
+ HK: '中午好',
18
+ US: 'Good afternoon'
19
+ }, {
20
+ CN: '下午好',
21
+ HK: '下午好',
22
+ US: 'Good afternoon'
23
+ }, {
24
+ CN: '晚上好',
25
+ HK: '晚上好',
26
+ US: 'Good evening'
27
+ }
28
+ ]
29
+
30
+ const welcomeMessages = [
31
+ {
32
+ CN: '休息一会儿吧',
33
+ HK: '休息一會兒吧',
34
+ US: 'you may need a break'
35
+ },
36
+ {
37
+ CN: '准备吃什么呢',
38
+ HK: '準備吃什麼呢',
39
+ US: 'what are you going to eat'
40
+ },
41
+ {
42
+ CN: '要不要打一把 LOL',
43
+ HK: '要不要打一把 LOL',
44
+ US: 'how about a game of DOTA'
45
+ },
46
+ {
47
+ CN: '我猜你可能累了',
48
+ HK: '我猜你可能累了',
49
+ US: 'i guess you might be tired'
50
+ }
51
+ ]
52
+
53
+ const goods = ['运动鞋', '短裤', 'T恤', '七分裤', '风衣', '寸衫']
54
+
55
+ Random.extend({
56
+ admin () {
57
+ return this.pick(admins)
58
+ },
59
+ welcome () {
60
+ return this.pick(welcomeMessages)
61
+ },
62
+ timeFix () {
63
+ const time = new Date()
64
+ const hour = time.getHours()
65
+ return hour < 9
66
+ ? timeList[0]
67
+ : (hour <= 11 ? timeList[1] : (hour <= 13 ? timeList[2] : (hour <= 20 ? timeList[3] : timeList[4])))
68
+ },
69
+ avatar () {
70
+ return this.pick(avatars)
71
+ },
72
+ position () {
73
+ return this.pick(positions)
74
+ },
75
+ goods () {
76
+ return this.pick(goods)
77
+ },
78
+ saying () {
79
+ return this.pick(sayings)
80
+ },
81
+ logo () {
82
+ return this.pick(logos)
83
+ }
84
+ })
@@ -1,108 +1,108 @@
1
- import Mock from 'mockjs'
2
- import '@vue2-client/mock/extend'
3
- import { parseUrlParams } from '@vue2-client/utils/request'
4
-
5
- const current = new Date().getTime()
6
-
7
- const goodsList = Mock.mock({
8
- 'list|100': [{
9
- 'id|+1': 0,
10
- name: '@GOODS',
11
- orderId: `${current}-@integer(1,100)`,
12
- 'status|1-4': 1,
13
- send: '@BOOLEAN',
14
- sendTime: '@DATETIME',
15
- orderDate: '@DATE',
16
- auditTime: '@TIME'
17
- }]
18
- })
19
-
20
- Mock.mock(RegExp(`${process.env.VUE_APP_API_BASE_URL}/goods` + '.*'), 'get', ({ url }) => {
21
- const params = parseUrlParams(decodeURI(url))
22
- let { page, pageSize } = params
23
- // eslint-disable-next-line no-eval
24
- page = eval(page) - 1 || 0
25
- // eslint-disable-next-line no-eval
26
- pageSize = eval(pageSize) || 10
27
- delete params.page
28
- delete params.pageSize
29
- let result = goodsList.list.filter(item => {
30
- for (const [key, value] of Object.entries(params)) {
31
- if (item[key] !== value) {
32
- return false
33
- }
34
- }
35
- return true
36
- })
37
- const total = result.length
38
- if ((page) * pageSize > total) {
39
- result = []
40
- } else {
41
- result = result.slice(page * pageSize, (page + 1) * pageSize)
42
- }
43
- return {
44
- code: 0,
45
- message: 'success',
46
- data: {
47
- page: page + 1,
48
- pageSize,
49
- total,
50
- list: result
51
- }
52
- }
53
- })
54
-
55
- const columnsConfig = [
56
- {
57
- title: '商品名称',
58
- dataIndex: 'name',
59
- searchAble: true
60
- },
61
- {
62
- title: '订单号',
63
- dataIndex: 'orderId'
64
- },
65
- {
66
- searchAble: true,
67
- dataIndex: 'status',
68
- dataType: 'select',
69
- slots: { title: 'statusTitle' },
70
- scopedSlots: { customRender: 'status' },
71
- search: {
72
- selectOptions: [
73
- { title: '已下单', value: 1 },
74
- { title: '已付款', value: 2 },
75
- { title: '已审核', value: 3 }
76
- // {title: '已发货', value: 4}
77
- ]
78
- }
79
- },
80
- {
81
- title: '发货',
82
- searchAble: true,
83
- dataIndex: 'send',
84
- dataType: 'boolean',
85
- scopedSlots: { customRender: 'send' }
86
- },
87
- {
88
- title: '发货时间',
89
- dataIndex: 'sendTime',
90
- dataType: 'datetime'
91
- },
92
- {
93
- title: '下单日期',
94
- searchAble: true,
95
- dataIndex: 'orderDate',
96
- dataType: 'date',
97
- visible: false
98
- },
99
- {
100
- title: '审核时间',
101
- dataIndex: 'auditTime',
102
- dataType: 'time'
103
- }
104
- ]
105
-
106
- Mock.mock(`${process.env.VUE_APP_API_BASE_URL}/columns`, 'get', () => {
107
- return columnsConfig
108
- })
1
+ import Mock from 'mockjs'
2
+ import '@vue2-client/mock/extend'
3
+ import { parseUrlParams } from '@vue2-client/utils/request'
4
+
5
+ const current = new Date().getTime()
6
+
7
+ const goodsList = Mock.mock({
8
+ 'list|100': [{
9
+ 'id|+1': 0,
10
+ name: '@GOODS',
11
+ orderId: `${current}-@integer(1,100)`,
12
+ 'status|1-4': 1,
13
+ send: '@BOOLEAN',
14
+ sendTime: '@DATETIME',
15
+ orderDate: '@DATE',
16
+ auditTime: '@TIME'
17
+ }]
18
+ })
19
+
20
+ Mock.mock(RegExp(`${process.env.VUE_APP_API_BASE_URL}/goods` + '.*'), 'get', ({ url }) => {
21
+ const params = parseUrlParams(decodeURI(url))
22
+ let { page, pageSize } = params
23
+ // eslint-disable-next-line no-eval
24
+ page = eval(page) - 1 || 0
25
+ // eslint-disable-next-line no-eval
26
+ pageSize = eval(pageSize) || 10
27
+ delete params.page
28
+ delete params.pageSize
29
+ let result = goodsList.list.filter(item => {
30
+ for (const [key, value] of Object.entries(params)) {
31
+ if (item[key] !== value) {
32
+ return false
33
+ }
34
+ }
35
+ return true
36
+ })
37
+ const total = result.length
38
+ if ((page) * pageSize > total) {
39
+ result = []
40
+ } else {
41
+ result = result.slice(page * pageSize, (page + 1) * pageSize)
42
+ }
43
+ return {
44
+ code: 0,
45
+ message: 'success',
46
+ data: {
47
+ page: page + 1,
48
+ pageSize,
49
+ total,
50
+ list: result
51
+ }
52
+ }
53
+ })
54
+
55
+ const columnsConfig = [
56
+ {
57
+ title: '商品名称',
58
+ dataIndex: 'name',
59
+ searchAble: true
60
+ },
61
+ {
62
+ title: '订单号',
63
+ dataIndex: 'orderId'
64
+ },
65
+ {
66
+ searchAble: true,
67
+ dataIndex: 'status',
68
+ dataType: 'select',
69
+ slots: { title: 'statusTitle' },
70
+ scopedSlots: { customRender: 'status' },
71
+ search: {
72
+ selectOptions: [
73
+ { title: '已下单', value: 1 },
74
+ { title: '已付款', value: 2 },
75
+ { title: '已审核', value: 3 }
76
+ // {title: '已发货', value: 4}
77
+ ]
78
+ }
79
+ },
80
+ {
81
+ title: '发货',
82
+ searchAble: true,
83
+ dataIndex: 'send',
84
+ dataType: 'boolean',
85
+ scopedSlots: { customRender: 'send' }
86
+ },
87
+ {
88
+ title: '发货时间',
89
+ dataIndex: 'sendTime',
90
+ dataType: 'datetime'
91
+ },
92
+ {
93
+ title: '下单日期',
94
+ searchAble: true,
95
+ dataIndex: 'orderDate',
96
+ dataType: 'date',
97
+ visible: false
98
+ },
99
+ {
100
+ title: '审核时间',
101
+ dataIndex: 'auditTime',
102
+ dataType: 'time'
103
+ }
104
+ ]
105
+
106
+ Mock.mock(`${process.env.VUE_APP_API_BASE_URL}/columns`, 'get', () => {
107
+ return columnsConfig
108
+ })
@@ -1,141 +1,141 @@
1
- <template>
2
- <page-layout :avatar="currUser.avatar">
3
- <div slot="headerContent">
4
- <div class="title">{{ welcome.timeFix[lang] }},{{ currUser.name }},{{ welcome.message[lang] }}</div>
5
- <div>{{ currUser.position[lang] }}</div>
6
- </div>
7
- <template slot="extra">
8
- <head-info class="split-right" :title="$t('project')" content="56"/>
9
- <head-info class="split-right" :title="$t('ranking')" content="8/24"/>
10
- <head-info class="split-right" :title="$t('visit')" content="2,223"/>
11
- </template>
12
- <template>
13
- <a-row style="margin: 0 -12px">
14
- <a-col
15
- style="padding: 0 12px"
16
- :xl="16"
17
- :lg="24"
18
- :md="24"
19
- :sm="24"
20
- :xs="24">
21
- <a-card
22
- class="project-list"
23
- :loading="loading"
24
- style="margin-bottom: 24px;"
25
- :bordered="false"
26
- :title="$t('progress')"
27
- :body-style="{padding: 0}">
28
- <a slot="extra">{{ $t('all') }}</a>
29
- <div>
30
- <a-card-grid :key="i" v-for="(item, i) in projects">
31
- <a-card :bordered="false" :body-style="{padding: 0}">
32
- <a-card-meta :description="item.desc">
33
- <div slot="title" class="card-title">
34
- <a-avatar size="small" :src="item.logo" />
35
- <span>Alipay</span>
36
- </div>
37
- </a-card-meta>
38
- <div class="project-item">
39
- <a class="group" href="/#/">科学搬砖组</a>
40
- <span class="datetime">9小时前</span>
41
- </div>
42
- </a-card>
43
- </a-card-grid>
44
- </div>
45
- </a-card>
46
- <a-card :loading="loading" :title="$t('dynamic')" :bordered="false">
47
- <a-list>
48
- <a-list-item :key="index" v-for="(item, index) in activities">
49
- <a-list-item-meta>
50
- <a-avatar slot="avatar" :src="item.user.avatar" />
51
- <div slot="title" v-html="item.template" />
52
- <div slot="description">9小时前</div>
53
- </a-list-item-meta>
54
- </a-list-item>
55
- </a-list>
56
- </a-card>
57
- </a-col>
58
- <a-col
59
- style="padding: 0 12px"
60
- :xl="8"
61
- :lg="24"
62
- :md="24"
63
- :sm="24"
64
- :xs="24">
65
- <a-card :title="$t('access')" style="margin-bottom: 24px" :bordered="false" :body-style="{padding: 0}">
66
- <div class="item-group">
67
- <a>操作一</a>
68
- <a>操作二</a>
69
- <a>操作三</a>
70
- <a>操作四</a>
71
- <a>操作五</a>
72
- <a>操作六</a>
73
- <a-button size="small" type="primary" ghost icon="plus">{{ $t('add') }}</a-button>
74
- </div>
75
- </a-card>
76
- <a-card :loading="loading" :title="`XX ${$t('degree')}`" style="margin-bottom: 24px" :bordered="false" :body-style="{padding: 0}">
77
- <div style="min-height: 400px;">
78
- <radar />
79
- </div>
80
- </a-card>
81
- <a-card :loading="loading" :title="$t('team')" :bordered="false">
82
- <div class="members">
83
- <a-row>
84
- <a-col :span="12" v-for="(item, index) in teams" :key="index">
85
- <a>
86
- <a-avatar size="small" :src="item.avatar" />
87
- <span class="member">{{ item.name }}</span>
88
- </a>
89
- </a-col>
90
- </a-row>
91
- </div>
92
- </a-card>
93
- </a-col>
94
- </a-row>
95
- </template>
96
- </page-layout>
97
- </template>
98
-
99
- <script>
100
- import PageLayout from '@vue2-client/layouts/PageLayout'
101
- import HeadInfo from '@vue2-client/components/tool/HeadInfo'
102
- import Radar from '@vue2-client/components/chart/Radar'
103
- import { mapState } from 'vuex'
104
- import { teams } from '@vue2-client/mock/common'
105
- import { projectArr } from '@vue2-client/mock/project'
106
- import { welcome } from '@vue2-client/mock/user/current'
107
- import { activities } from '@vue2-client/mock/common/activityData'
108
-
109
- export default {
110
- name: 'WorkPlace',
111
- components: { Radar, HeadInfo, PageLayout },
112
- i18n: require('./i18n'),
113
- data () {
114
- return {
115
- projects: [],
116
- loading: true,
117
- activities: [],
118
- teams: [],
119
- welcome: {
120
- timeFix: '',
121
- message: ''
122
- }
123
- }
124
- },
125
- computed: {
126
- ...mapState('account', { currUser: 'user' }),
127
- ...mapState('setting', ['lang'])
128
- },
129
- created () {
130
- this.activities = activities
131
- this.welcome = welcome
132
- this.teams = teams
133
- this.projects = projectArr
134
- this.loading = false
135
- }
136
- }
137
- </script>
138
-
139
- <style lang="less">
140
- @import "index";
141
- </style>
1
+ <template>
2
+ <page-layout :avatar="currUser.avatar">
3
+ <div slot="headerContent">
4
+ <div class="title">{{ welcome.timeFix[lang] }},{{ currUser.name }},{{ welcome.message[lang] }}</div>
5
+ <div>{{ currUser.position[lang] }}</div>
6
+ </div>
7
+ <template slot="extra">
8
+ <head-info class="split-right" :title="$t('project')" content="56"/>
9
+ <head-info class="split-right" :title="$t('ranking')" content="8/24"/>
10
+ <head-info class="split-right" :title="$t('visit')" content="2,223"/>
11
+ </template>
12
+ <template>
13
+ <a-row style="margin: 0 -12px">
14
+ <a-col
15
+ style="padding: 0 12px"
16
+ :xl="16"
17
+ :lg="24"
18
+ :md="24"
19
+ :sm="24"
20
+ :xs="24">
21
+ <a-card
22
+ class="project-list"
23
+ :loading="loading"
24
+ style="margin-bottom: 24px;"
25
+ :bordered="false"
26
+ :title="$t('progress')"
27
+ :body-style="{padding: 0}">
28
+ <a slot="extra">{{ $t('all') }}</a>
29
+ <div>
30
+ <a-card-grid :key="i" v-for="(item, i) in projects">
31
+ <a-card :bordered="false" :body-style="{padding: 0}">
32
+ <a-card-meta :description="item.desc">
33
+ <div slot="title" class="card-title">
34
+ <a-avatar size="small" :src="item.logo" />
35
+ <span>Alipay</span>
36
+ </div>
37
+ </a-card-meta>
38
+ <div class="project-item">
39
+ <a class="group" href="/#/">科学搬砖组</a>
40
+ <span class="datetime">9小时前</span>
41
+ </div>
42
+ </a-card>
43
+ </a-card-grid>
44
+ </div>
45
+ </a-card>
46
+ <a-card :loading="loading" :title="$t('dynamic')" :bordered="false">
47
+ <a-list>
48
+ <a-list-item :key="index" v-for="(item, index) in activities">
49
+ <a-list-item-meta>
50
+ <a-avatar slot="avatar" :src="item.user.avatar" />
51
+ <div slot="title" v-html="item.template" />
52
+ <div slot="description">9小时前</div>
53
+ </a-list-item-meta>
54
+ </a-list-item>
55
+ </a-list>
56
+ </a-card>
57
+ </a-col>
58
+ <a-col
59
+ style="padding: 0 12px"
60
+ :xl="8"
61
+ :lg="24"
62
+ :md="24"
63
+ :sm="24"
64
+ :xs="24">
65
+ <a-card :title="$t('access')" style="margin-bottom: 24px" :bordered="false" :body-style="{padding: 0}">
66
+ <div class="item-group">
67
+ <a>操作一</a>
68
+ <a>操作二</a>
69
+ <a>操作三</a>
70
+ <a>操作四</a>
71
+ <a>操作五</a>
72
+ <a>操作六</a>
73
+ <a-button size="small" type="primary" ghost icon="plus">{{ $t('add') }}</a-button>
74
+ </div>
75
+ </a-card>
76
+ <a-card :loading="loading" :title="`XX ${$t('degree')}`" style="margin-bottom: 24px" :bordered="false" :body-style="{padding: 0}">
77
+ <div style="min-height: 400px;">
78
+ <radar />
79
+ </div>
80
+ </a-card>
81
+ <a-card :loading="loading" :title="$t('team')" :bordered="false">
82
+ <div class="members">
83
+ <a-row>
84
+ <a-col :span="12" v-for="(item, index) in teams" :key="index">
85
+ <a>
86
+ <a-avatar size="small" :src="item.avatar" />
87
+ <span class="member">{{ item.name }}</span>
88
+ </a>
89
+ </a-col>
90
+ </a-row>
91
+ </div>
92
+ </a-card>
93
+ </a-col>
94
+ </a-row>
95
+ </template>
96
+ </page-layout>
97
+ </template>
98
+
99
+ <script>
100
+ import PageLayout from '@vue2-client/layouts/PageLayout'
101
+ import HeadInfo from '@vue2-client/components/tool/HeadInfo'
102
+ import Radar from '@vue2-client/components/chart/Radar'
103
+ import { mapState } from 'vuex'
104
+ import { teams } from '@vue2-client/mock/common'
105
+ import { projectArr } from '@vue2-client/mock/project'
106
+ import { welcome } from '@vue2-client/mock/user/current'
107
+ import { activities } from '@vue2-client/mock/common/activityData'
108
+
109
+ export default {
110
+ name: 'WorkPlace',
111
+ components: { Radar, HeadInfo, PageLayout },
112
+ i18n: require('./i18n'),
113
+ data () {
114
+ return {
115
+ projects: [],
116
+ loading: true,
117
+ activities: [],
118
+ teams: [],
119
+ welcome: {
120
+ timeFix: '',
121
+ message: ''
122
+ }
123
+ }
124
+ },
125
+ computed: {
126
+ ...mapState('account', { currUser: 'user' }),
127
+ ...mapState('setting', ['lang'])
128
+ },
129
+ created () {
130
+ this.activities = activities
131
+ this.welcome = welcome
132
+ this.teams = teams
133
+ this.projects = projectArr
134
+ this.loading = false
135
+ }
136
+ }
137
+ </script>
138
+
139
+ <style lang="less">
140
+ @import "index";
141
+ </style>