vue2-client 1.2.49 → 1.2.52

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 (62) hide show
  1. package/.env +15 -14
  2. package/.eslintrc.js +82 -82
  3. package/CHANGELOG.md +8 -0
  4. package/package.json +2 -1
  5. package/src/base-client/all.js +64 -61
  6. package/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox.vue +225 -0
  7. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +36 -29
  8. package/src/base-client/components/common/CitySelect/CitySelect.vue +244 -0
  9. package/src/base-client/components/common/CitySelect/index.js +3 -0
  10. package/src/base-client/components/common/CitySelect/index.md +109 -0
  11. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +483 -1342
  12. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +770 -555
  13. package/src/base-client/components/common/Upload/Upload.vue +124 -124
  14. package/src/base-client/components/common/Upload/index.js +3 -3
  15. package/src/base-client/components/common/XAddForm/XAddForm.vue +38 -46
  16. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +316 -316
  17. package/src/base-client/components/common/XForm/XForm.vue +268 -275
  18. package/src/base-client/components/common/XForm/XFormItem.vue +348 -280
  19. package/src/base-client/components/common/XFormTable/XFormTable.vue +0 -2
  20. package/src/base-client/components/iot/CustomerDetailsView/index.md +1 -2
  21. package/src/base-client/components/iot/DeviceBrandDetailsView/DeviceBrandDetailsView.vue +1 -1
  22. package/src/base-client/components/iot/DeviceDetailsView/DeviceDetailsView.vue +2 -7
  23. package/src/base-client/components/iot/DeviceDetailsView/index.md +0 -2
  24. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsException.vue +57 -57
  25. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsMain.vue +240 -196
  26. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsRead.vue +131 -131
  27. package/src/base-client/components/iot/DeviceTypeDetailsView/DeviceTypeDetailsView.vue +1 -5
  28. package/src/base-client/components/iot/InstructDetailsView/InstructDetailsView.vue +6 -14
  29. package/src/base-client/components/iot/InstructDetailsView/index.md +0 -2
  30. package/src/base-client/components/iot/LogDetailsView/LogDetailsView.vue +6 -13
  31. package/src/base-client/components/iot/LogDetailsView/index.md +0 -2
  32. package/src/base-client/components/iot/MeterDetailsView/MeterDetailsView.vue +17 -24
  33. package/src/base-client/components/iot/MeterDetailsView/index.md +0 -2
  34. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsCount.vue +0 -5
  35. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsException.vue +0 -5
  36. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsHandPlan.vue +0 -6
  37. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsInstruct.vue +0 -6
  38. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsMain.vue +1 -6
  39. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsSellGas.vue +1 -6
  40. package/src/base-client/components/iot/WebmeterAnalysisView/WebmeterAnalysisView.vue +213 -288
  41. package/src/base-client/components/iot/WebmeterAnalysisView/index.md +0 -6
  42. package/src/base-client/components/ticket/TicketDetailsView/TicketDetailsView.vue +853 -853
  43. package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +532 -532
  44. package/src/base-client/plugins/AppData.js +16 -1
  45. package/src/base-client/plugins/compatible/LoginServiceOA.js +19 -0
  46. package/src/config/CreateQueryConfig.js +298 -80
  47. package/src/config/default/setting.config.js +2 -2
  48. package/src/layouts/header/HeaderNotice.vue +96 -96
  49. package/src/layouts/tabs/TabsView.vue +0 -3
  50. package/src/pages/login/Login.vue +53 -22
  51. package/src/pages/resourceManage/orgListManage.vue +40 -40
  52. package/src/pages/system/ticket/submitTicketSuccess.vue +268 -268
  53. package/src/router/async/config.async.js +26 -26
  54. package/src/router/index.js +27 -27
  55. package/src/services/api/manage.js +16 -14
  56. package/src/services/api/restTools.js +24 -24
  57. package/src/theme/default/style.less +47 -47
  58. package/src/utils/map-utils.js +22 -11
  59. package/src/utils/request.js +198 -198
  60. package/src/utils/routerUtil.js +1 -10
  61. package/src/utils/util.js +222 -176
  62. package/vue.config.js +2 -2
@@ -1,5 +1,5 @@
1
1
  import { manageApi, post } from '@vue2-client/services/api'
2
-
2
+ import { handleTree } from '@vue2-client/utils/util'
3
3
  const GetAppDataService = {
4
4
  install (Vue) {
5
5
  // 给vue增添对话框显示方法
@@ -27,6 +27,21 @@ const GetAppDataService = {
27
27
  localStorage.setItem(process.env.VUE_APP_DICTIONARY_KEY, JSON.stringify(params))
28
28
  localStorage.setItem(process.env.VUE_APP_BADGE_KEY, JSON.stringify(badgeItemArray))
29
29
  })
30
+ // 获取省市区数据
31
+ await post(manageApi.getDivisionsOhChina, {}).then((res) => {
32
+ // 追加参数
33
+ localStorage.setItem(process.env.VUE_APP_DIVISIONSOHCHINA, JSON.stringify(res))
34
+ })
35
+ },
36
+ // 返回树形省市区
37
+ getDivisionsOhChinaForTree () {
38
+ const str = localStorage.getItem(process.env.VUE_APP_DIVISIONSOHCHINA)
39
+ return handleTree(JSON.parse(str), 'code', 'parentcode')
40
+ },
41
+ // 返回列表省市区
42
+ getDivisionsOhChinaForList () {
43
+ const str = localStorage.getItem(process.env.VUE_APP_DIVISIONSOHCHINA)
44
+ return JSON.parse(str)
30
45
  },
31
46
  getDictionaryList (key) {
32
47
  const str = localStorage.getItem(process.env.VUE_APP_DICTIONARY_KEY)
@@ -0,0 +1,19 @@
1
+ import { get } from '@vue2-client/services/api'
2
+ import Vue from 'vue'
3
+
4
+ async function loginStart (name, password) {
5
+ const resource = await get(`/rs/user/${name}/${password}/newoa`, {})
6
+ console.log('登陆获取', resource)
7
+ Vue.$login.f = resource
8
+ const login = {
9
+ f: Vue.$login.f,
10
+ jwt: Vue.$login.f.id,
11
+ r: Vue.$login.r
12
+ }
13
+ Vue.$store.commit('account/setLogin', login)
14
+ return resource
15
+ }
16
+
17
+ export {
18
+ loginStart
19
+ }
@@ -1,80 +1,298 @@
1
- module.exports = {
2
- // 文件上传类型
3
- fileType: [
4
- {
5
- label: 'word文档',
6
- accept: '.doc,.docx,'
7
- },
8
- {
9
- label: 'excel表格',
10
- accept: '.xlsx,.xls,'
11
- },
12
- {
13
- label: 'ppt幻灯片',
14
- accept: '.ppt,.pptx,'
15
- },
16
- {
17
- label: '图片',
18
- accept: '.jpg,.jpeg,.ico,.gif,svg,.webp,.png,.bmp,.pjpeg,'
19
- },
20
- {
21
- label: '视频',
22
- accept: '.mp4,.mov,.m4v,.wmv,.asf,.asx,.rm,.rmvb,.3gp,.avi,.mkv,'
23
- },
24
- {
25
- label: '音频',
26
- accept: '.mp3,.cda,.wav,.aif,.aiff,.ape,.ra,'
27
- },
28
- {
29
- label: '压缩包',
30
- accept: '.zip,.rar,.7z,'
31
- },
32
- {
33
- label: '其他文本',
34
- accept: '.json,.txt,'
35
- },
36
- {
37
- label: '无限制',
38
- accept: '*'
39
- },
40
- ],
41
- // 查询方式
42
- queryType: [
43
- {
44
- label: '相等(=)', key: '=', match: 'input;select;radio;monthPicker;datePicker;cascader;selects'
45
- },
46
- {
47
- label: '不相等(!=)', key: '!=', match: 'input;select;radio;monthPicker;datePicker;cascader;selects'
48
- },
49
- {
50
- label: '全模糊(like)', key: 'LIKE', match: 'input;select;radio;cascader;selects'
51
- },
52
- {
53
- label: '左模糊(left like)', key: 'LEFT_LIKE', match: 'input;select;radio;cascader;selects'
54
- },
55
- {
56
- label: '右模糊(right like)', key: 'RIGHT_LIKE', match: 'input;select;radio;cascader;selects'
57
- },
58
- {
59
- label: '大于(>)', key: '>', match: 'input;select;radio;monthPicker;datePicker;cascader;selects'
60
- },
61
- {
62
- label: '大于等于(>=)', key: '>=', match: 'input;select;radio;monthPicker;datePicker;cascader;selects'
63
- },
64
- {
65
- label: '小于(<)', key: '<', match: 'input;select;radio;monthPicker;datePicker;cascader;selects'
66
- },
67
- {
68
- label: '小于等于(<=)', key: '<=', match: 'input;select;radio;monthPicker;datePicker;cascader;selects'
69
- },
70
- {
71
- label: '包含(in)', key: 'IN', match: 'checkbox;select;cascader;selects'
72
- },
73
- {
74
- label: '不包含(not in)', key: 'NOT_IN', match: 'checkbox;select;cascader;selects'
75
- },
76
- {
77
- label: '之间(between)', key: 'BETWEEN', match: 'rangePicker'
78
- }
79
- ]
80
- }
1
+ module.exports = {
2
+ // 数据模式类型
3
+ dataModeType: [
4
+ {
5
+ label: '渲染查询表单项',
6
+ value: 'queryForm',
7
+ noMatch: ['file', 'image', 'textarea']
8
+ },
9
+ {
10
+ label: '渲染表格列',
11
+ value: 'table',
12
+ noMatch: ['file', 'image']
13
+ },
14
+ {
15
+ label: '渲染新增/修改表单项',
16
+ value: 'addOrEditForm',
17
+ noMatch: []
18
+ },
19
+ {
20
+ label: 'SQL生成查询项',
21
+ value: 'sqlQueryItem',
22
+ noMatch: ['file']
23
+ },
24
+ {
25
+ label: 'SQL生成查询表达式',
26
+ value: 'sqlQueryCondition',
27
+ noMatch: ['file', 'image', 'textarea']
28
+ }
29
+ ],
30
+ // 表单类型
31
+ formType: [
32
+ {
33
+ label: '输入框', key: 'input'
34
+ },
35
+ {
36
+ label: '选择框', key: 'select'
37
+ },
38
+ {
39
+ label: '级联选择框', key: 'selects'
40
+ },
41
+ {
42
+ label: '多选框', key: 'checkbox'
43
+ },
44
+ {
45
+ label: '地点搜索框', key: 'addressSearch'
46
+ },
47
+ {
48
+ label: '省市区选择框', key: 'citySelect'
49
+ },
50
+ {
51
+ label: '单选框', key: 'radio'
52
+ },
53
+ {
54
+ label: '日期范围选择框', key: 'rangePicker'
55
+ },
56
+ {
57
+ label: '月份选择框', key: 'monthPicker'
58
+ },
59
+ {
60
+ label: '单日选择框', key: 'datePicker'
61
+ },
62
+ {
63
+ label: '文本域', key: 'textarea'
64
+ },
65
+ {
66
+ label: '文件上传', key: 'file'
67
+ },
68
+ {
69
+ label: '图片上传', key: 'image'
70
+ },
71
+ ],
72
+ // 文件上传类型
73
+ fileType: [
74
+ {
75
+ label: '无限制',
76
+ accept: '*'
77
+ },
78
+ {
79
+ label: 'word文档',
80
+ accept: '.doc,.docx,'
81
+ },
82
+ {
83
+ label: 'excel表格',
84
+ accept: '.xls,.xlsx,'
85
+ },
86
+ {
87
+ label: 'ppt幻灯片',
88
+ accept: '.ppt,.pptx,'
89
+ },
90
+ {
91
+ label: '图片',
92
+ accept: '.jpg,.jpeg,.ico,.gif,svg,.webp,.png,.bmp,.pjpeg,'
93
+ },
94
+ {
95
+ label: '视频',
96
+ accept: '.mp4,.mov,.m4v,.wmv,.asf,.asx,.rm,.rmvb,.3gp,.avi,.mkv,'
97
+ },
98
+ {
99
+ label: '音频',
100
+ accept: '.mp3,.cda,.wav,.aif,.aiff,.ape,.ra,'
101
+ },
102
+ {
103
+ label: '压缩包',
104
+ accept: '.zip,.rar,.7z,'
105
+ },
106
+ {
107
+ label: '文本/JSON',
108
+ accept: '.json,.txt,'
109
+ }
110
+ ],
111
+ // 表单校验类型
112
+ formRuleType: [
113
+ {
114
+ label: '字符串', key: 'string'
115
+ },
116
+ {
117
+ label: '数字', key: 'number'
118
+ },
119
+ {
120
+ label: '布尔值', key: 'boolean'
121
+ },
122
+ {
123
+ label: '正则表达式', key: 'regexp'
124
+ },
125
+ {
126
+ label: '整数', key: 'integer'
127
+ },
128
+ {
129
+ label: '小数', key: 'float'
130
+ },
131
+ {
132
+ label: '数组或集合', key: 'array'
133
+ },
134
+ {
135
+ label: '邮箱', key: 'email'
136
+ }
137
+ ],
138
+ // 作用域插槽类型
139
+ slotType: [
140
+ {
141
+ label: '不设置',
142
+ key: 'default',
143
+ match: ['input', 'select', 'selects', 'checkbox', 'radio', 'addressSearch', 'citySelect']
144
+ },
145
+ {
146
+ label: '文本溢出省略',
147
+ key: 'ellipsis',
148
+ match: ['input', 'citySelect', 'addressSearch']
149
+ },
150
+ {
151
+ label: '多彩徽标',
152
+ key: 'badge',
153
+ match: ['select', 'selects', 'citySelect', 'addressSearch']
154
+ },
155
+ {
156
+ label: '日期格式化',
157
+ key: 'date',
158
+ match: ['rangePicker']
159
+ },
160
+ {
161
+ label: '日期时间格式化',
162
+ key: 'dateTime',
163
+ match: ['rangePicker']
164
+ },
165
+ {
166
+ label: '操作列',
167
+ key: 'action',
168
+ match: [
169
+ 'input'
170
+ ]
171
+ },
172
+ ],
173
+ // 查询方式
174
+ queryType: [
175
+ {
176
+ label: '相等[=]',
177
+ key: '=',
178
+ match: ['input', 'select', 'radio', 'monthPicker', 'datePicker', 'selects', 'addressSearch', 'citySelect']
179
+ },
180
+ {
181
+ label: '不相等[!=]',
182
+ key: '!=',
183
+ match: ['input']
184
+ },
185
+ {
186
+ label: '全模糊[like]',
187
+ key: 'LIKE',
188
+ match: ['input']
189
+ },
190
+ {
191
+ label: '左模糊[left like]',
192
+ key: 'LEFT_LIKE',
193
+ match: ['input']
194
+ },
195
+ {
196
+ label: '右模糊[right like]',
197
+ key: 'RIGHT_LIKE',
198
+ match: ['input']
199
+ },
200
+ {
201
+ label: '大于[>]',
202
+ key: '>',
203
+ match: ['input', 'radio', 'monthPicker', 'datePicker']
204
+ },
205
+ {
206
+ label: '大于等于[>=]',
207
+ key: '>=',
208
+ match: ['input', 'radio', 'monthPicker', 'datePicker']
209
+ },
210
+ {
211
+ label: '小于[<]',
212
+ key: '<',
213
+ match: ['input', 'radio', 'monthPicker', 'datePicker']
214
+ },
215
+ {
216
+ label: '小于等于[<=]',
217
+ key: '<=',
218
+ match: ['input', 'radio', 'monthPicker', 'datePicker']
219
+ },
220
+ {
221
+ label: '包含[in]',
222
+ key: 'IN',
223
+ match: ['checkbox']
224
+ },
225
+ {
226
+ label: '不包含[not in]',
227
+ key: 'NOT_IN',
228
+ match: ['checkbox']
229
+ },
230
+ {
231
+ label: '之间[between]',
232
+ key: 'BETWEEN',
233
+ match: ['rangePicker']
234
+ }
235
+ ],
236
+ // 新增/修改场景类型
237
+ addOrEditType: [
238
+ {
239
+ label: '新增和修改',
240
+ key: 'all',
241
+ match: ['all']
242
+ },
243
+ {
244
+ label: '仅支持新增',
245
+ key: 'add',
246
+ match: ['all']
247
+ },
248
+ {
249
+ label: '仅支持修改',
250
+ key: 'edit',
251
+ match: ['all']
252
+ },
253
+ {
254
+ label: '静默新增(不生成表单)',
255
+ key: 'silenceAdd',
256
+ match: ['input', 'rangePicker']
257
+ },
258
+ {
259
+ label: '版本号',
260
+ key: 'version',
261
+ match: ['input']
262
+ }
263
+ ],
264
+ // 字段用途类型
265
+ silencePurposeType: [
266
+ {
267
+ label: '创建时间',
268
+ key: 'createTime'
269
+ },
270
+ {
271
+ label: '创建/操作人',
272
+ key: 'operator'
273
+ },
274
+ {
275
+ label: '组织机构ID',
276
+ key: 'orgId'
277
+ },
278
+ {
279
+ label: '自定义',
280
+ key: 'customize'
281
+ }
282
+ ],
283
+ // 数据源类型
284
+ selectDataType: [
285
+ {
286
+ label: '字典键',
287
+ key: 'key'
288
+ },
289
+ {
290
+ label: '固定集合',
291
+ key: 'fixArray'
292
+ },
293
+ {
294
+ label: '业务逻辑',
295
+ key: 'logic'
296
+ }
297
+ ]
298
+ }
@@ -34,6 +34,6 @@ module.exports = {
34
34
  ],
35
35
  // 旧系统路径
36
36
  iframeSrc: '../singlepage/page.html',
37
- // 兼容V2版本系统 true:启用, false:禁用
38
- compatibleV2: false
37
+ // 兼容旧版本 V3(最新V3产品) OA(公司OA)
38
+ compatible: 'V3'
39
39
  }
@@ -1,96 +1,96 @@
1
- <template>
2
- <a-dropdown :trigger="['click']" v-model="show">
3
- <div slot="overlay">
4
- <a-spin :spinning="loading">
5
- <a-tabs class="dropdown-tabs" :tabBarStyle="{textAlign: 'center'}" :style="{width: '297px'}">
6
- <a-tab-pane tab="通知" key="1">
7
- <a-list>
8
- <a-list-item :key="item.id" class="tab-pane" v-for=" item in exception">
9
- <a-list-item-meta :title="'设备号'+ item.e_f_device_id" :description="item.e_f_error_msg" @click="read(item)">
10
- <a-avatar style="background-color: white" slot="avatar" src="https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png"/>
11
- </a-list-item-meta>
12
- </a-list-item>
13
- </a-list>
14
- </a-tab-pane>
15
- <a-tab-pane tab="消息" key="2">
16
- <a-list class="tab-pane"></a-list>
17
- </a-tab-pane>
18
- <a-tab-pane tab="待办" key="3">
19
- <a-list class="tab-pane"></a-list>
20
- </a-tab-pane>
21
- </a-tabs>
22
- </a-spin>
23
- </div>
24
- <span @click="fetchNotice" class="header-notice">
25
- <a-badge class="notice-badge" :count=" exception.length">
26
- <a-icon :class="['header-notice-icon']" type="bell" />
27
- </a-badge>
28
- </span>
29
- </a-dropdown>
30
- </template>
31
-
32
- <script>
33
- import { post } from '@vue2-client/services/api'
34
- export default {
35
- name: 'HeaderNotice',
36
- data () {
37
- return {
38
- loading: false,
39
- show: false,
40
- exception: []
41
- }
42
- },
43
- computed: {
44
- },
45
- created () {
46
- },
47
- methods: {
48
- read (item) {
49
- post('/webmeterapi/saveSingleTable', { data: { tablename: 't_iot_device_exception', param: { id: item.e_id, f_is_read: 1 } } }).then(res => {
50
- this.refresh()
51
- })
52
- },
53
- refresh () {
54
- post('/webmeterapi/commonQuery', { queryParamsName: 'deviceExceptionQueryParams', conditionParams: { e_f_is_read: 0 }, pageNo: 1, pageSize: 999999 }).then(res => {
55
- this.exception = res.data
56
- })
57
- },
58
- fetchNotice () {
59
- if (this.loading) {
60
- this.loading = false
61
- return
62
- }
63
- this.loadding = true
64
- setTimeout(() => {
65
- this.loadding = false
66
- }, 1000)
67
- }
68
- }
69
- }
70
- </script>
71
-
72
- <style lang="less">
73
- .header-notice{
74
- display: inline-block;
75
- transition: all 0.3s;
76
- span {
77
- vertical-align: initial;
78
- }
79
- .notice-badge{
80
- color: inherit;
81
- .header-notice-icon{
82
- font-size: 16px;
83
- padding: 4px;
84
- }
85
- }
86
- }
87
- .dropdown-tabs{
88
- background-color: @base-bg-color;
89
- box-shadow: 0 2px 8px @shadow-color;
90
- border-radius: 4px;
91
- .tab-pane{
92
- padding: 0 24px 12px;
93
- min-height: 250px;
94
- }
95
- }
96
- </style>
1
+ <template>
2
+ <a-dropdown :trigger="['click']" v-model="show">
3
+ <div slot="overlay">
4
+ <a-spin :spinning="loading">
5
+ <a-tabs class="dropdown-tabs" :tabBarStyle="{textAlign: 'center'}" :style="{width: '297px'}">
6
+ <a-tab-pane tab="通知" key="1">
7
+ <a-list>
8
+ <a-list-item :key="item.id" class="tab-pane" v-for=" item in exception">
9
+ <a-list-item-meta :title="'设备号'+ item.e_f_device_id" :description="item.e_f_error_msg" @click="read(item)">
10
+ <a-avatar style="background-color: white" slot="avatar" src="https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png"/>
11
+ </a-list-item-meta>
12
+ </a-list-item>
13
+ </a-list>
14
+ </a-tab-pane>
15
+ <a-tab-pane tab="消息" key="2">
16
+ <a-list class="tab-pane"></a-list>
17
+ </a-tab-pane>
18
+ <a-tab-pane tab="待办" key="3">
19
+ <a-list class="tab-pane"></a-list>
20
+ </a-tab-pane>
21
+ </a-tabs>
22
+ </a-spin>
23
+ </div>
24
+ <span @click="fetchNotice" class="header-notice">
25
+ <a-badge class="notice-badge" :count=" exception.length">
26
+ <a-icon :class="['header-notice-icon']" type="bell" />
27
+ </a-badge>
28
+ </span>
29
+ </a-dropdown>
30
+ </template>
31
+
32
+ <script>
33
+ import { post } from '@vue2-client/services/api'
34
+ export default {
35
+ name: 'HeaderNotice',
36
+ data () {
37
+ return {
38
+ loading: false,
39
+ show: false,
40
+ exception: []
41
+ }
42
+ },
43
+ computed: {
44
+ },
45
+ created () {
46
+ },
47
+ methods: {
48
+ read (item) {
49
+ post('/webmeterapi/saveSingleTable', { data: { tablename: 't_iot_device_exception', param: { id: item.e_id, f_is_read: 1 } } }).then(res => {
50
+ this.refresh()
51
+ })
52
+ },
53
+ refresh () {
54
+ post('/webmeterapi/commonQuery', { queryParamsName: 'deviceExceptionQueryParams', conditionParams: { e_f_is_read: 0 }, pageNo: 1, pageSize: 999999 }).then(res => {
55
+ this.exception = res.data
56
+ })
57
+ },
58
+ fetchNotice () {
59
+ if (this.loading) {
60
+ this.loading = false
61
+ return
62
+ }
63
+ this.loadding = true
64
+ setTimeout(() => {
65
+ this.loadding = false
66
+ }, 1000)
67
+ }
68
+ }
69
+ }
70
+ </script>
71
+
72
+ <style lang="less">
73
+ .header-notice{
74
+ display: inline-block;
75
+ transition: all 0.3s;
76
+ span {
77
+ vertical-align: initial;
78
+ }
79
+ .notice-badge{
80
+ color: inherit;
81
+ .header-notice-icon{
82
+ font-size: 16px;
83
+ padding: 4px;
84
+ }
85
+ }
86
+ }
87
+ .dropdown-tabs{
88
+ background-color: @base-bg-color;
89
+ box-shadow: 0 2px 8px @shadow-color;
90
+ border-radius: 4px;
91
+ .tab-pane{
92
+ padding: 0 24px 12px;
93
+ min-height: 250px;
94
+ }
95
+ }
96
+ </style>
@@ -367,9 +367,6 @@ export default {
367
367
  width: 1400px;
368
368
  margin: 0 auto;
369
369
  }
370
- .ant-card:only-of-type {
371
- min-height: calc(100vh - 64px - 56px - 16px);
372
- }
373
370
  }
374
371
  }
375
372
  </style>