vue2-client 1.4.13 → 1.4.14

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 (99) hide show
  1. package/.env +15 -15
  2. package/.eslintrc.js +82 -82
  3. package/CHANGELOG.md +4 -0
  4. package/index.js +30 -30
  5. package/package.json +1 -1
  6. package/src/assets/img/querySlotDemo.svg +16 -0
  7. package/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox.vue +225 -225
  8. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +113 -113
  9. package/src/base-client/components/common/CitySelect/CitySelect.vue +244 -244
  10. package/src/base-client/components/common/CitySelect/index.js +3 -3
  11. package/src/base-client/components/common/CitySelect/index.md +109 -109
  12. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +593 -591
  13. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +777 -777
  14. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +310 -310
  15. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +553 -553
  16. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +165 -165
  17. package/src/base-client/components/common/JSONToTree/jsontotree.vue +275 -275
  18. package/src/base-client/components/common/PersonSetting/PersonSetting.vue +210 -210
  19. package/src/base-client/components/common/PersonSetting/index.js +3 -3
  20. package/src/base-client/components/common/Upload/index.js +3 -3
  21. package/src/base-client/components/common/XAddForm/XAddForm.vue +354 -354
  22. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +327 -327
  23. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  24. package/src/base-client/components/common/XForm/XForm.vue +274 -274
  25. package/src/base-client/components/common/XForm/XFormItem.vue +389 -389
  26. package/src/base-client/components/common/XFormTable/XFormTable.vue +548 -548
  27. package/src/base-client/components/common/XFormTable/index.md +96 -96
  28. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  29. package/src/base-client/components/ticket/TicketDetailsView/TicketDetailsView.vue +807 -807
  30. package/src/base-client/components/ticket/TicketDetailsView/index.md +29 -29
  31. package/src/base-client/components/ticket/TicketDetailsView/part/TicketDetailsFlow.vue +260 -260
  32. package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +532 -532
  33. package/src/base-client/components/ticket/TicketSubmitSuccessView/index.md +29 -29
  34. package/src/base-client/plugins/AppData.js +69 -69
  35. package/src/base-client/plugins/GetLoginInfoService.js +179 -179
  36. package/src/base-client/plugins/PagedList.js +177 -177
  37. package/src/base-client/plugins/compatible/LoginServiceOA.js +20 -20
  38. package/src/base-client/plugins/i18n-extend.js +32 -32
  39. package/src/components/Ellipsis/index.md +38 -38
  40. package/src/components/NumberInfo/index.md +43 -43
  41. package/src/components/STable/README.md +341 -341
  42. package/src/components/STable/index.js +318 -318
  43. package/src/components/Trend/index.md +45 -45
  44. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  45. package/src/components/checkbox/ImgCheckbox.vue +163 -163
  46. package/src/components/form/FormRow.vue +52 -52
  47. package/src/components/index.js +36 -36
  48. package/src/components/menu/SideMenu.vue +62 -62
  49. package/src/components/menu/menu.js +273 -273
  50. package/src/components/setting/Setting.vue +235 -235
  51. package/src/components/table/StandardTable.vue +141 -141
  52. package/src/components/table/advance/ActionColumns.vue +158 -158
  53. package/src/components/table/advance/SearchArea.vue +355 -355
  54. package/src/components/tool/AStepItem.vue +60 -60
  55. package/src/components/tool/AvatarList.vue +68 -68
  56. package/src/components/tool/Drawer.vue +142 -142
  57. package/src/components/tool/TagSelect.vue +83 -83
  58. package/src/components/transition/PageToggleTransition.vue +97 -97
  59. package/src/config/CreateQueryConfig.js +307 -307
  60. package/src/config/replacer/resolve.config.js +67 -67
  61. package/src/layouts/AdminLayout.vue +174 -174
  62. package/src/layouts/header/AdminHeader.vue +104 -104
  63. package/src/layouts/header/HeaderNotice.vue +167 -167
  64. package/src/layouts/header/HeaderSearch.vue +67 -67
  65. package/src/layouts/header/InstitutionDetail.vue +181 -181
  66. package/src/layouts/tabs/TabsHead.vue +190 -190
  67. package/src/layouts/tabs/TabsView.vue +379 -379
  68. package/src/mock/goods/index.js +108 -108
  69. package/src/pages/CreateQueryPage.vue +65 -65
  70. package/src/pages/report/ReportTable.js +124 -124
  71. package/src/pages/report/ReportTableHome.vue +28 -28
  72. package/src/pages/resourceManage/orgListManage.vue +98 -98
  73. package/src/pages/system/dictionary/index.vue +43 -43
  74. package/src/pages/system/file/index.vue +317 -317
  75. package/src/pages/system/queryParams/index.vue +43 -43
  76. package/src/router/async/config.async.js +27 -27
  77. package/src/router/async/router.map.js +63 -61
  78. package/src/router/index.js +27 -27
  79. package/src/services/api/DictionaryDetailsViewApi.js +6 -6
  80. package/src/services/api/LogDetailsViewApi.js +10 -10
  81. package/src/services/api/QueryParamsDetailsViewApi.js +6 -6
  82. package/src/services/api/TicketDetailsViewApi.js +34 -34
  83. package/src/services/api/commonTempTable.js +10 -10
  84. package/src/services/api/index.js +17 -17
  85. package/src/services/api/manage.js +8 -8
  86. package/src/services/api/restTools.js +24 -24
  87. package/src/store/modules/index.js +4 -4
  88. package/src/theme/default/nprogress.less +76 -76
  89. package/src/theme/default/style.less +47 -47
  90. package/src/utils/colors.js +103 -103
  91. package/src/utils/excel/Blob.js +180 -180
  92. package/src/utils/excel/Export2Excel.js +141 -141
  93. package/src/utils/formatter.js +68 -68
  94. package/src/utils/i18n.js +80 -80
  95. package/src/utils/routerUtil.js +364 -364
  96. package/src/utils/theme-color-replacer-extend.js +91 -91
  97. package/src/utils/themeUtil.js +100 -100
  98. package/src/utils/util.js +230 -230
  99. package/vue.config.js +106 -106
@@ -1,163 +1,163 @@
1
- <template>
2
- <a-tooltip :title="title" :overlayStyle="{zIndex: 2001}">
3
- <div class="img-check-box" @click="toggle">
4
- <img :src="img" alt=""/>
5
- <div v-if="sChecked" class="check-item">
6
- <a-icon type="check" />
7
- </div>
8
- </div>
9
- </a-tooltip>
10
- </template>
11
-
12
- <script>
13
- const Group = {
14
- name: 'ImgCheckboxGroup',
15
- props: {
16
- multiple: {
17
- type: Boolean,
18
- required: false,
19
- default: false
20
- },
21
- defaultValues: {
22
- type: Array,
23
- required: false,
24
- default: () => []
25
- }
26
- },
27
- data () {
28
- return {
29
- values: [],
30
- options: []
31
- }
32
- },
33
- provide () {
34
- return {
35
- groupContext: this
36
- }
37
- },
38
- watch: {
39
- 'values': function (value) {
40
- this.$emit('change', value)
41
- // // 此条件是为解决单选时,触发两次chang事件问题
42
- // if (!(newVal.length === 1 && oldVal.length === 1 && newVal[0] === oldVal[0])) {
43
- // this.$emit('change', this.values)
44
- // }
45
- }
46
- },
47
- methods: {
48
- handleChange (option) {
49
- if (!option.checked) {
50
- if (this.values.indexOf(option.value) > -1) {
51
- this.values = this.values.filter(item => item !== option.value)
52
- }
53
- } else {
54
- if (!this.multiple) {
55
- this.values = [option.value]
56
- this.options.forEach(item => {
57
- if (item.value !== option.value) {
58
- item.sChecked = false
59
- }
60
- })
61
- } else {
62
- this.values.push(option.value)
63
- }
64
- }
65
- }
66
- },
67
- render (h) {
68
- return h(
69
- 'div',
70
- {
71
- attrs: { style: 'display: flex' }
72
- },
73
- [this.$slots.default]
74
- )
75
- }
76
- }
77
-
78
- export default {
79
- name: 'ImgCheckbox',
80
- Group,
81
- props: {
82
- checked: {
83
- type: Boolean,
84
- required: false,
85
- default: false
86
- },
87
- img: {
88
- type: String,
89
- required: true
90
- },
91
- // eslint-disable-next-line vue/require-prop-types
92
- value: {
93
- required: true
94
- },
95
- // eslint-disable-next-line vue/require-default-prop
96
- title: String
97
- },
98
- data () {
99
- return {
100
- sChecked: this.initChecked()
101
- }
102
- },
103
- inject: ['groupContext'],
104
- watch: {
105
- 'sChecked': function () {
106
- const option = {
107
- value: this.value,
108
- checked: this.sChecked
109
- }
110
- this.$emit('change', option)
111
- const groupContext = this.groupContext
112
- if (groupContext) {
113
- groupContext.handleChange(option)
114
- }
115
- }
116
- },
117
- created () {
118
- const groupContext = this.groupContext
119
- if (groupContext) {
120
- this.sChecked = groupContext.defaultValues.length > 0 ? groupContext.defaultValues.indexOf(this.value) >= 0 : this.sChecked
121
- groupContext.options.push(this)
122
- }
123
- },
124
- methods: {
125
- toggle () {
126
- if (this.groupContext.multiple || !this.sChecked) {
127
- this.sChecked = !this.sChecked
128
- }
129
- },
130
- initChecked () {
131
- const groupContext = this.groupContext
132
- if (!groupContext) {
133
- return this.checked
134
- } else if (groupContext.multiple) {
135
- return groupContext.defaultValues.indexOf(this.value) > -1
136
- } else {
137
- return groupContext.defaultValues[0] === this.value
138
- }
139
- }
140
- }
141
- }
142
- </script>
143
-
144
- <style lang="less" scoped>
145
- .img-check-box{
146
- margin-right: 16px;
147
- position: relative;
148
- border-radius: 4px;
149
- cursor: pointer;
150
- .check-item{
151
- position: absolute;
152
- top: 0;
153
- right: 0;
154
- width: 100%;
155
- padding-top: 15px;
156
- padding-left: 24px;
157
- height: 100%;
158
- color: @primary-color;
159
- font-size: 14px;
160
- font-weight: bold;
161
- }
162
- }
163
- </style>
1
+ <template>
2
+ <a-tooltip :title="title" :overlayStyle="{zIndex: 2001}">
3
+ <div class="img-check-box" @click="toggle">
4
+ <img :src="img" alt=""/>
5
+ <div v-if="sChecked" class="check-item">
6
+ <a-icon type="check" />
7
+ </div>
8
+ </div>
9
+ </a-tooltip>
10
+ </template>
11
+
12
+ <script>
13
+ const Group = {
14
+ name: 'ImgCheckboxGroup',
15
+ props: {
16
+ multiple: {
17
+ type: Boolean,
18
+ required: false,
19
+ default: false
20
+ },
21
+ defaultValues: {
22
+ type: Array,
23
+ required: false,
24
+ default: () => []
25
+ }
26
+ },
27
+ data () {
28
+ return {
29
+ values: [],
30
+ options: []
31
+ }
32
+ },
33
+ provide () {
34
+ return {
35
+ groupContext: this
36
+ }
37
+ },
38
+ watch: {
39
+ 'values': function (value) {
40
+ this.$emit('change', value)
41
+ // // 此条件是为解决单选时,触发两次chang事件问题
42
+ // if (!(newVal.length === 1 && oldVal.length === 1 && newVal[0] === oldVal[0])) {
43
+ // this.$emit('change', this.values)
44
+ // }
45
+ }
46
+ },
47
+ methods: {
48
+ handleChange (option) {
49
+ if (!option.checked) {
50
+ if (this.values.indexOf(option.value) > -1) {
51
+ this.values = this.values.filter(item => item !== option.value)
52
+ }
53
+ } else {
54
+ if (!this.multiple) {
55
+ this.values = [option.value]
56
+ this.options.forEach(item => {
57
+ if (item.value !== option.value) {
58
+ item.sChecked = false
59
+ }
60
+ })
61
+ } else {
62
+ this.values.push(option.value)
63
+ }
64
+ }
65
+ }
66
+ },
67
+ render (h) {
68
+ return h(
69
+ 'div',
70
+ {
71
+ attrs: { style: 'display: flex' }
72
+ },
73
+ [this.$slots.default]
74
+ )
75
+ }
76
+ }
77
+
78
+ export default {
79
+ name: 'ImgCheckbox',
80
+ Group,
81
+ props: {
82
+ checked: {
83
+ type: Boolean,
84
+ required: false,
85
+ default: false
86
+ },
87
+ img: {
88
+ type: String,
89
+ required: true
90
+ },
91
+ // eslint-disable-next-line vue/require-prop-types
92
+ value: {
93
+ required: true
94
+ },
95
+ // eslint-disable-next-line vue/require-default-prop
96
+ title: String
97
+ },
98
+ data () {
99
+ return {
100
+ sChecked: this.initChecked()
101
+ }
102
+ },
103
+ inject: ['groupContext'],
104
+ watch: {
105
+ 'sChecked': function () {
106
+ const option = {
107
+ value: this.value,
108
+ checked: this.sChecked
109
+ }
110
+ this.$emit('change', option)
111
+ const groupContext = this.groupContext
112
+ if (groupContext) {
113
+ groupContext.handleChange(option)
114
+ }
115
+ }
116
+ },
117
+ created () {
118
+ const groupContext = this.groupContext
119
+ if (groupContext) {
120
+ this.sChecked = groupContext.defaultValues.length > 0 ? groupContext.defaultValues.indexOf(this.value) >= 0 : this.sChecked
121
+ groupContext.options.push(this)
122
+ }
123
+ },
124
+ methods: {
125
+ toggle () {
126
+ if (this.groupContext.multiple || !this.sChecked) {
127
+ this.sChecked = !this.sChecked
128
+ }
129
+ },
130
+ initChecked () {
131
+ const groupContext = this.groupContext
132
+ if (!groupContext) {
133
+ return this.checked
134
+ } else if (groupContext.multiple) {
135
+ return groupContext.defaultValues.indexOf(this.value) > -1
136
+ } else {
137
+ return groupContext.defaultValues[0] === this.value
138
+ }
139
+ }
140
+ }
141
+ }
142
+ </script>
143
+
144
+ <style lang="less" scoped>
145
+ .img-check-box{
146
+ margin-right: 16px;
147
+ position: relative;
148
+ border-radius: 4px;
149
+ cursor: pointer;
150
+ .check-item{
151
+ position: absolute;
152
+ top: 0;
153
+ right: 0;
154
+ width: 100%;
155
+ padding-top: 15px;
156
+ padding-left: 24px;
157
+ height: 100%;
158
+ color: @primary-color;
159
+ font-size: 14px;
160
+ font-weight: bold;
161
+ }
162
+ }
163
+ </style>
@@ -1,52 +1,52 @@
1
- <template>
2
- <div class="form-row">
3
- <div class="label">
4
- <span>{{ label }}</span>
5
- </div>
6
- <div class="content">
7
- <slot></slot>
8
- </div>
9
- </div>
10
- </template>
11
-
12
- <script>
13
- export default {
14
- name: 'FormRow',
15
- // eslint-disable-next-line vue/require-prop-types
16
- props: ['label']
17
- }
18
- </script>
19
-
20
- <style lang="less" scoped>
21
- .form-row{
22
- display: flex;
23
- border-bottom: 1px dashed @border-color-base;
24
- margin-bottom: 16px;
25
- .label {
26
- color: @title-color;
27
- font-size: 14px;
28
- margin-right: 24px;
29
- flex: 0 0 auto;
30
- text-align: right;
31
- & > span {
32
- display: inline-block;
33
- height: 39px;
34
- line-height: 39px;
35
- &:after {
36
- content: ':';
37
- }
38
- }
39
- }
40
- .content {
41
- flex: 1 1 0;
42
- :global {
43
- .ant-form-item:last-child {
44
- margin-right: 0;
45
- }
46
- .ant-form-item {
47
- margin-bottom: 0;
48
- }
49
- }
50
- }
51
- }
52
- </style>
1
+ <template>
2
+ <div class="form-row">
3
+ <div class="label">
4
+ <span>{{ label }}</span>
5
+ </div>
6
+ <div class="content">
7
+ <slot></slot>
8
+ </div>
9
+ </div>
10
+ </template>
11
+
12
+ <script>
13
+ export default {
14
+ name: 'FormRow',
15
+ // eslint-disable-next-line vue/require-prop-types
16
+ props: ['label']
17
+ }
18
+ </script>
19
+
20
+ <style lang="less" scoped>
21
+ .form-row{
22
+ display: flex;
23
+ border-bottom: 1px dashed @border-color-base;
24
+ margin-bottom: 16px;
25
+ .label {
26
+ color: @title-color;
27
+ font-size: 14px;
28
+ margin-right: 24px;
29
+ flex: 0 0 auto;
30
+ text-align: right;
31
+ & > span {
32
+ display: inline-block;
33
+ height: 39px;
34
+ line-height: 39px;
35
+ &:after {
36
+ content: ':';
37
+ }
38
+ }
39
+ }
40
+ .content {
41
+ flex: 1 1 0;
42
+ :global {
43
+ .ant-form-item:last-child {
44
+ margin-right: 0;
45
+ }
46
+ .ant-form-item {
47
+ margin-bottom: 0;
48
+ }
49
+ }
50
+ }
51
+ }
52
+ </style>
@@ -1,36 +1,36 @@
1
- // chart
2
- import Bar from '@vue2-client/components/Charts/Bar'
3
- import ChartCard from '@vue2-client/components/Charts/ChartCard'
4
- import Liquid from '@vue2-client/components/Charts/Liquid'
5
- import MiniArea from '@vue2-client/components/Charts/MiniArea'
6
- import MiniSmoothArea from '@vue2-client/components/Charts/MiniSmoothArea'
7
- import MiniBar from '@vue2-client/components/Charts/MiniBar'
8
- import MiniProgress from '@vue2-client/components/Charts/MiniProgress'
9
- import Radar from '@vue2-client/components/Charts/Radar'
10
- import RankList from '@vue2-client/components/Charts/RankList'
11
- import TagCloud from '@vue2-client/components/Charts/TagCloud'
12
- import TransferBar from '@vue2-client/components/Charts/TransferBar'
13
- import Trend from '@vue2-client/components/Trend'
14
-
15
- // pro components
16
- import Ellipsis from '@vue2-client/components/Ellipsis'
17
- import NumberInfo from '@vue2-client/components/NumberInfo'
18
- import STable from '@vue2-client/components/STable'
19
-
20
- export {
21
- Bar,
22
- ChartCard,
23
- Liquid,
24
- MiniArea,
25
- MiniSmoothArea,
26
- MiniBar,
27
- MiniProgress,
28
- Radar,
29
- TagCloud,
30
- RankList,
31
- TransferBar,
32
- Ellipsis,
33
- NumberInfo,
34
- STable,
35
- Trend
36
- }
1
+ // chart
2
+ import Bar from '@vue2-client/components/Charts/Bar'
3
+ import ChartCard from '@vue2-client/components/Charts/ChartCard'
4
+ import Liquid from '@vue2-client/components/Charts/Liquid'
5
+ import MiniArea from '@vue2-client/components/Charts/MiniArea'
6
+ import MiniSmoothArea from '@vue2-client/components/Charts/MiniSmoothArea'
7
+ import MiniBar from '@vue2-client/components/Charts/MiniBar'
8
+ import MiniProgress from '@vue2-client/components/Charts/MiniProgress'
9
+ import Radar from '@vue2-client/components/Charts/Radar'
10
+ import RankList from '@vue2-client/components/Charts/RankList'
11
+ import TagCloud from '@vue2-client/components/Charts/TagCloud'
12
+ import TransferBar from '@vue2-client/components/Charts/TransferBar'
13
+ import Trend from '@vue2-client/components/Trend'
14
+
15
+ // pro components
16
+ import Ellipsis from '@vue2-client/components/Ellipsis'
17
+ import NumberInfo from '@vue2-client/components/NumberInfo'
18
+ import STable from '@vue2-client/components/STable'
19
+
20
+ export {
21
+ Bar,
22
+ ChartCard,
23
+ Liquid,
24
+ MiniArea,
25
+ MiniSmoothArea,
26
+ MiniBar,
27
+ MiniProgress,
28
+ Radar,
29
+ TagCloud,
30
+ RankList,
31
+ TransferBar,
32
+ Ellipsis,
33
+ NumberInfo,
34
+ STable,
35
+ Trend
36
+ }
@@ -1,62 +1,62 @@
1
- <template>
2
- <a-layout-sider
3
- :theme="sideTheme"
4
- :class="['side-menu', 'beauty-scroll', isMobile ? null : 'shadow']"
5
- width="256px"
6
- :collapsible="collapsible"
7
- v-model="collapsed"
8
- :trigger="null">
9
- <div :class="['logo', theme]">
10
- <router-link to="/dashboard/workplace">
11
- <img :src="logoSrc" alt="logo">
12
- <h1 :style="{ fontWeight: 'bold', fontSize: systemNameFontSize }">{{ systemName }}</h1>
13
- </router-link>
14
- </div>
15
- <i-menu :theme="theme" :collapsed="collapsed" :options="menuData" @select="onSelect" class="menu"/>
16
- </a-layout-sider>
17
- </template>
18
-
19
- <script>
20
- import IMenu from './menu'
21
- import { mapState } from 'vuex'
22
- export default {
23
- name: 'SideMenu',
24
- components: { IMenu },
25
- props: {
26
- collapsible: {
27
- type: Boolean,
28
- required: false,
29
- default: false
30
- },
31
- collapsed: {
32
- type: Boolean,
33
- required: false,
34
- default: false
35
- },
36
- menuData: {
37
- type: Array,
38
- required: true
39
- },
40
- theme: {
41
- type: String,
42
- required: false,
43
- default: 'dark'
44
- }
45
- },
46
- computed: {
47
- sideTheme () {
48
- return this.theme === 'light' ? this.theme : 'dark'
49
- },
50
- ...mapState('setting', ['isMobile', 'systemName', 'logoSrc', 'systemNameFontSize'])
51
- },
52
- methods: {
53
- onSelect (obj) {
54
- this.$emit('menuSelect', obj)
55
- }
56
- }
57
- }
58
- </script>
59
-
60
- <style lang="less" scoped>
61
- @import "index";
62
- </style>
1
+ <template>
2
+ <a-layout-sider
3
+ :theme="sideTheme"
4
+ :class="['side-menu', 'beauty-scroll', isMobile ? null : 'shadow']"
5
+ width="256px"
6
+ :collapsible="collapsible"
7
+ v-model="collapsed"
8
+ :trigger="null">
9
+ <div :class="['logo', theme]">
10
+ <router-link to="/dashboard/workplace">
11
+ <img :src="logoSrc" alt="logo">
12
+ <h1 :style="{ fontWeight: 'bold', fontSize: systemNameFontSize }">{{ systemName }}</h1>
13
+ </router-link>
14
+ </div>
15
+ <i-menu :theme="theme" :collapsed="collapsed" :options="menuData" @select="onSelect" class="menu"/>
16
+ </a-layout-sider>
17
+ </template>
18
+
19
+ <script>
20
+ import IMenu from './menu'
21
+ import { mapState } from 'vuex'
22
+ export default {
23
+ name: 'SideMenu',
24
+ components: { IMenu },
25
+ props: {
26
+ collapsible: {
27
+ type: Boolean,
28
+ required: false,
29
+ default: false
30
+ },
31
+ collapsed: {
32
+ type: Boolean,
33
+ required: false,
34
+ default: false
35
+ },
36
+ menuData: {
37
+ type: Array,
38
+ required: true
39
+ },
40
+ theme: {
41
+ type: String,
42
+ required: false,
43
+ default: 'dark'
44
+ }
45
+ },
46
+ computed: {
47
+ sideTheme () {
48
+ return this.theme === 'light' ? this.theme : 'dark'
49
+ },
50
+ ...mapState('setting', ['isMobile', 'systemName', 'logoSrc', 'systemNameFontSize'])
51
+ },
52
+ methods: {
53
+ onSelect (obj) {
54
+ this.$emit('menuSelect', obj)
55
+ }
56
+ }
57
+ }
58
+ </script>
59
+
60
+ <style lang="less" scoped>
61
+ @import "index";
62
+ </style>