vue2-client 1.0.0 → 1.2.1

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 (134) hide show
  1. package/.eslintrc.js +81 -81
  2. package/README.md +65 -55
  3. package/babel.config.js +15 -14
  4. package/docs/index.md +29 -29
  5. package/docs/notice.md +24 -0
  6. package/index.js +28 -0
  7. package/jest.config.js +3 -3
  8. package/package.json +1 -1
  9. package/public/index.html +27 -27
  10. package/src/App.vue +2 -2
  11. package/src/base-client/all.js +57 -57
  12. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +1159 -1159
  13. package/src/base-client/components/common/CreateQuery/index.md +1 -1
  14. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +540 -540
  15. package/src/base-client/components/common/CreateSimpleFormQuery/index.md +1 -1
  16. package/src/base-client/components/common/CustomColumnsDrawer/index.md +1 -1
  17. package/src/base-client/components/common/FormGroupEdit/FormGroupEdit.vue +150 -150
  18. package/src/base-client/components/common/FormGroupEdit/index.md +1 -1
  19. package/src/base-client/components/common/FormGroupQuery/index.md +1 -1
  20. package/src/base-client/components/common/XAddForm/XAddForm.vue +323 -323
  21. package/src/base-client/components/common/XAddForm/index.md +1 -1
  22. package/src/base-client/components/common/XBadge/index.md +1 -1
  23. package/src/base-client/components/common/XCard/index.md +1 -1
  24. package/src/base-client/components/common/XForm/XForm.vue +275 -275
  25. package/src/base-client/components/common/XForm/XFormItem.vue +217 -217
  26. package/src/base-client/components/common/XForm/index.md +196 -196
  27. package/src/base-client/components/common/XFormCol/index.md +1 -1
  28. package/src/base-client/components/common/XFormTable/XFormTable.vue +405 -405
  29. package/src/base-client/components/common/XFormTable/index.md +2 -2
  30. package/src/base-client/components/common/XTable/XTable.vue +262 -262
  31. package/src/base-client/components/common/XTable/index.md +255 -255
  32. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +1 -1
  33. package/src/base-client/components/iot/CustomerDetailsView/CustomerDetailsView.vue +226 -226
  34. package/src/base-client/components/iot/CustomerDetailsView/index.md +2 -2
  35. package/src/base-client/components/iot/DataAnalysisUser/DataAnalysisUser.vue +1 -1
  36. package/src/base-client/components/iot/DataAnalysisViewGD/DataAnalysisViewGD.vue +548 -548
  37. package/src/base-client/components/iot/DeviceBrandDetailsView/DeviceBrandDetailsView.vue +453 -453
  38. package/src/base-client/components/iot/DeviceDetailsView/DeviceDetailsView.vue +231 -231
  39. package/src/base-client/components/iot/DeviceDetailsView/index.md +1 -1
  40. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsCount.vue +330 -330
  41. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsException.vue +1 -1
  42. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsInstruct.vue +3 -3
  43. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsInstructOperate.vue +122 -122
  44. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsMain.vue +1 -1
  45. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsRead.vue +3 -3
  46. package/src/base-client/components/iot/DeviceTypeDetailsView/DeviceTypeDetailsView.vue +277 -277
  47. package/src/base-client/components/iot/InstructDetailsView/InstructDetailsView.vue +472 -472
  48. package/src/base-client/components/iot/InstructDetailsView/index.md +1 -1
  49. package/src/base-client/components/iot/LogDetailsView/LogDetailsView.vue +380 -380
  50. package/src/base-client/components/iot/LogDetailsView/index.md +1 -1
  51. package/src/base-client/components/iot/MeterDetailsView/MeterDetailsView.vue +360 -360
  52. package/src/base-client/components/iot/MeterDetailsView/index.md +1 -1
  53. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsCount.vue +335 -335
  54. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsException.vue +185 -185
  55. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsHandPlan.vue +292 -292
  56. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsInstruct.vue +237 -237
  57. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsMain.vue +257 -257
  58. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsSellGas.vue +190 -190
  59. package/src/base-client/components/iot/WebmeterAnalysisView/WebmeterAnalysisView.vue +723 -723
  60. package/src/base-client/components/iot/WebmeterAnalysisView/index.md +1 -1
  61. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  62. package/src/base-client/components/system/DictionaryDetailsView/index.md +1 -1
  63. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +248 -248
  64. package/src/base-client/components/ticket/EmployeeDetailsView/EmployeeDetailsView.vue +406 -406
  65. package/src/base-client/components/ticket/TicketDetailsView/TicketDetailsView.vue +486 -486
  66. package/src/base-client/components/ticket/TicketDetailsView/part/TicketDetailsFlow.vue +184 -184
  67. package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +303 -303
  68. package/src/base-client/plugins/AppData.js +69 -69
  69. package/src/base-client/plugins/GetLoginInfoService.js +221 -222
  70. package/src/base-client/plugins/index.js +21 -21
  71. package/src/bootstrap.js +6 -4
  72. package/src/components/Ellipsis/Ellipsis.vue +1 -1
  73. package/src/components/Ellipsis/index.md +2 -2
  74. package/src/components/NumberInfo/index.md +1 -1
  75. package/src/components/STable/README.md +3 -3
  76. package/src/components/Trend/index.md +1 -1
  77. package/src/components/cache/AKeepAlive.js +1 -1
  78. package/src/components/checkbox/index.js +2 -2
  79. package/src/components/index.js +15 -15
  80. package/src/components/menu/menu.js +1 -1
  81. package/src/components/setting/Setting.vue +4 -4
  82. package/src/components/table/advance/AdvanceTable.vue +3 -3
  83. package/src/components/transition/PageToggleTransition.vue +1 -1
  84. package/src/config/default/setting.config.js +33 -33
  85. package/src/layouts/CommonLayout.vue +1 -1
  86. package/src/layouts/ComponentLayoutOne.vue +47 -47
  87. package/src/layouts/PageLayout.vue +2 -2
  88. package/src/layouts/SinglePageView.vue +1 -1
  89. package/src/layouts/header/AdminHeader.vue +2 -2
  90. package/src/layouts/header/HeaderAvatar.vue +1 -1
  91. package/src/layouts/header/HeaderNotice.vue +97 -97
  92. package/src/layouts/tabs/TabsHead.vue +1 -1
  93. package/src/layouts/tabs/TabsView.vue +6 -6
  94. package/src/main.js +20 -12
  95. package/src/mock/common/reportData.js +20 -20
  96. package/src/mock/goods/index.js +2 -2
  97. package/src/mock/index.js +6 -6
  98. package/src/mock/project/index.js +1 -1
  99. package/src/mock/user/current.js +1 -1
  100. package/src/mock/user/login.js +1 -1
  101. package/src/mock/user/routes.js +61 -61
  102. package/src/mock/workplace/index.js +1 -1
  103. package/src/pages/exception/403.vue +25 -25
  104. package/src/pages/exception/404.vue +25 -25
  105. package/src/pages/exception/500.vue +25 -25
  106. package/src/pages/login/Login.vue +194 -194
  107. package/src/pages/report/ReportTable.js +125 -125
  108. package/src/pages/report/ReportTableHome.vue +28 -28
  109. package/src/pages/resourceManage/resourceManageMain.vue +55 -55
  110. package/src/pages/system/applyInstallView/Core.vue +1 -1
  111. package/src/pages/system/applyInstallView/index.vue +1 -1
  112. package/src/pages/system/dictionary/index.vue +1 -1
  113. package/src/pages/system/queryParams/index.vue +1 -1
  114. package/src/router/async/config.async.js +1 -1
  115. package/src/router/async/router.map.js +59 -59
  116. package/src/router/guards.js +3 -3
  117. package/src/router/index.js +4 -8
  118. package/src/services/api/common.js +39 -39
  119. package/src/services/api/restTools.js +23 -23
  120. package/src/services/dataSource.js +1 -1
  121. package/src/services/user.js +2 -2
  122. package/src/store/index.js +3 -6
  123. package/src/store/modules/setting.js +5 -5
  124. package/src/theme/index.less +5 -5
  125. package/src/theme/reportTable.less +58 -58
  126. package/src/utils/i18n.js +2 -2
  127. package/src/utils/indexedDB.js +146 -146
  128. package/src/utils/request.js +3 -3
  129. package/src/utils/routerUtil.js +18 -5
  130. package/tests/unit/ReportTable.spec.js +15 -15
  131. package/vue.config.js +153 -152
  132. package/webpack.config.js +12 -0
  133. package/src/index.js +0 -29
  134. package/src/router/config.js +0 -23
@@ -1,277 +1,277 @@
1
- <template>
2
- <div>
3
- <a-drawer
4
- title="设备类型详情"
5
- placement="right"
6
- :width="isMobile ? screenWidth : screenWidth * 0.85"
7
- :visible="visible"
8
- @close="onClose"
9
- >
10
- <create-query
11
- :to-edit-json="getColumnJson()"
12
- :visible.sync="createQueryVisible"
13
- @saveQueryParams="saveQueryParams"
14
- />
15
- <a-spin :spinning="loadDeviceTypeDetails">
16
- <a-page-header :title="details.f_name">
17
- <div class="row">
18
- <div class="content">
19
- <a-descriptions size="small" :column="isMobile ? 1 : 2">
20
- <a-descriptions-item label="设备类型状态">{{ details.f_state }}</a-descriptions-item>
21
- <a-descriptions-item label="创建人">{{ details.f_inputtor }}</a-descriptions-item>
22
- <a-descriptions-item label="创建时间">{{ details.f_input_date }}</a-descriptions-item>
23
- <a-descriptions-item label="描述">{{ details.f_describe }}</a-descriptions-item>
24
- </a-descriptions>
25
- </div>
26
- </div>
27
- <!-- actions -->
28
- <template v-slot:extra>
29
- <a-button-group style="margin-right: 4px;">
30
- <a-button type="dashed" @click="initView" :loading="loadDeviceTypeDetails">刷新</a-button>
31
- </a-button-group>
32
- <a-button-group style="margin-right: 4px;">
33
- </a-button-group>
34
- </template>
35
- <template slot="footer">
36
- <a-tabs :default-active-key="tabActiveKey" :activeKey="tabActiveKey" @change="handleTabChange" style="margin-bottom: 23px;">
37
- <template v-for="value in tabList">
38
- <a-tab-pane :key="value.key" :tab="value.tab"/>
39
- </template>
40
- </a-tabs>
41
- <div v-if="!loadDeviceTypeDetails">
42
- <div v-if="tabActiveKey === '1'">
43
- <a-button type="primary" @click="toCreateQuery">
44
- <a-icon :style="iconStyle" type="api"/>编辑设备上报数据
45
- </a-button>
46
- <a-card title="设备上报数据预览" :bordered="true" size="small" style="margin-top: 20px;">
47
- <json-viewer :copyable="{copyText: '复制', copiedText: '已复制'}" :value="getColumnJson()" :expand-depth="parseInt('100')" style="overflow: auto;max-height: 440px"></json-viewer>
48
- </a-card>
49
- </div>
50
- <div v-if="tabActiveKey === '2'">
51
- <x-form-table
52
- title="指令配置"
53
- :fixed-add-form="fixedAddForm"
54
- :fixed-query-form="fixedQueryForm"
55
- queryParamsName="deviceTypeToInstructQueryParams">
56
- </x-form-table>
57
- </div>
58
- </div>
59
- </template>
60
- </a-page-header>
61
- </a-spin>
62
- </a-drawer>
63
- </div>
64
- </template>
65
-
66
- <script>
67
- import JsonViewer from 'vue-json-viewer'
68
- import { mapState, mapGetters } from 'vuex'
69
- import { post } from '@/services/api/restTools'
70
- import { DeviceTypeDetailsViewApi } from '@/services/api/DeviceTypeDetailsViewApi'
71
- import XFormTable from '@/base-client/components/common/XFormTable/XFormTable'
72
-
73
- export default {
74
- name: 'DeviceTypeDetailsView',
75
- components: {
76
- JsonViewer,
77
- XFormTable
78
- },
79
- data () {
80
- return {
81
- // 页面宽度
82
- screenWidth: document.documentElement.clientWidth,
83
- // Tab页签
84
- tabActiveKey: '1',
85
- // 图标样式
86
- iconStyle: {
87
- position: 'relative',
88
- top: '1px'
89
- },
90
- // 是否显示生成查询配置抽屉
91
- createQueryVisible: false,
92
- // 设备类型详情
93
- details: {
94
- f_name: '',
95
- f_describe: '',
96
- f_state: '',
97
- f_columns_json: '',
98
- f_input_date: '',
99
- f_inputtor: ''
100
- },
101
- fixedAddForm: {},
102
- fixedQueryForm: {},
103
- tabList: [
104
- { key: '1', tab: '抄表查询配置' },
105
- { key: '2', tab: '指令配置' }
106
- ],
107
- // 设备类型详情加载
108
- loadDeviceTypeDetails: false
109
- }
110
- },
111
- mounted () {
112
- this.initView()
113
- },
114
- computed: {
115
- ...mapGetters(['account/user']),
116
- ...mapState('account', { currUser: 'user' }),
117
- ...mapState('setting', ['isMobile'])
118
- },
119
- props: {
120
- typeId: {
121
- type: String,
122
- required: true
123
- },
124
- typeName: {
125
- type: String,
126
- required: true
127
- },
128
- visible: {
129
- type: Boolean,
130
- default: false
131
- }
132
- },
133
- methods: {
134
- // 初始化组件
135
- initView () {
136
- this.tabActiveKey = '1'
137
- this.fixedQueryForm['m_f_device_type_id'] = this.typeId
138
- this.fixedAddForm['m_f_device_type_id'] = this.typeId
139
- this.getDeviceType(this.typeId)
140
- },
141
- toCreateQuery () {
142
- this.createQueryVisible = true
143
- },
144
- getColumnJson () {
145
- if (this.details.f_columns_json) {
146
- return JSON.parse(this.details.f_columns_json)
147
- } else {
148
- return {}
149
- }
150
- },
151
- onClose () {
152
- this.$emit('update:visible', false)
153
- },
154
- // 通用徽标过滤器
155
- badgeFilter (key, value) {
156
- const object = this.$appdata.getParam(key)
157
- if (object.hasOwnProperty(value)) {
158
- return object[value]
159
- } else {
160
- return {
161
- 'status': 'default',
162
- 'text': '未知类型:' + value
163
- }
164
- }
165
- },
166
- // 获取设备类型详情信息
167
- getDeviceType (typeId) {
168
- this.loadDeviceTypeDetails = true
169
- return post(DeviceTypeDetailsViewApi.getDeviceTypeDetails, {
170
- id: typeId
171
- }).then(res => {
172
- this.details = res
173
- this.loadDeviceTypeDetails = false
174
- }, err => {
175
- this.loadDeviceTypeDetails = false
176
- console.error(err)
177
- })
178
- },
179
- // 存储查询配置信息
180
- saveQueryParams (source) {
181
- return post('/webmeterapi/updateDeviceTypeQueryParams', {
182
- id: this.typeId,
183
- source: source
184
- }).then(res => {
185
- this.$message.success('保存查询配置成功')
186
- this.getDeviceType(this.typeId)
187
- }, err => {
188
- console.error(err)
189
- })
190
- },
191
- // Tab切换
192
- handleTabChange (key) {
193
- this.tabActiveKey = key
194
- }
195
- },
196
- watch: {
197
- 'visible' (val) {
198
- if (val) {
199
- this.initView()
200
- }
201
- }
202
- }
203
- }
204
- </script>
205
-
206
- <style lang="less" scoped>
207
- .business {
208
- color: #ffffff;
209
- }
210
- .business:enabled:hover {
211
- background-color: #85CE61 !important;
212
- border-color: #85CE61 !important;
213
- }
214
- .business:enabled {
215
- background-color: #67c23a;
216
- border-color: #67c23a;
217
- }
218
- .business:disabled {
219
- color: rgba(0, 0, 0, 0.25);
220
- }
221
- .detail-layout {
222
- margin-left: 44px;
223
- }
224
- .text {
225
- color: rgba(0, 0, 0, .45);
226
- }
227
-
228
- .heading {
229
- color: rgba(0, 0, 0, .85);
230
- font-size: 20px;
231
- }
232
-
233
- .no-data {
234
- color: rgba(0, 0, 0, .25);
235
- text-align: center;
236
- line-height: 64px;
237
- font-size: 16px;
238
-
239
- i {
240
- font-size: 24px;
241
- margin-right: 16px;
242
- position: relative;
243
- top: 3px;
244
- }
245
- }
246
-
247
- .mobile {
248
- .detail-layout {
249
- margin-left: unset;
250
- }
251
- .text {
252
-
253
- }
254
- .status-list {
255
- text-align: left;
256
- }
257
- }
258
-
259
- .row {
260
- display: flex;
261
-
262
- .content {
263
- -webkit-box-flex: 1;
264
- flex: auto;
265
- -ms-flex: auto;
266
- }
267
-
268
- .extra {
269
- flex: 0 1 auto;
270
- -webkit-box-flex: 0;
271
- -ms-flex: 0 1 auto;
272
- min-width: 242px;
273
- margin-left: 88px;
274
- text-align: right;
275
- }
276
- }
277
- </style>
1
+ <template>
2
+ <div>
3
+ <a-drawer
4
+ title="设备类型详情"
5
+ placement="right"
6
+ :width="isMobile ? screenWidth : screenWidth * 0.85"
7
+ :visible="visible"
8
+ @close="onClose"
9
+ >
10
+ <create-query
11
+ :to-edit-json="getColumnJson()"
12
+ :visible.sync="createQueryVisible"
13
+ @saveQueryParams="saveQueryParams"
14
+ />
15
+ <a-spin :spinning="loadDeviceTypeDetails">
16
+ <a-page-header :title="details.f_name">
17
+ <div class="row">
18
+ <div class="content">
19
+ <a-descriptions size="small" :column="isMobile ? 1 : 2">
20
+ <a-descriptions-item label="设备类型状态">{{ details.f_state }}</a-descriptions-item>
21
+ <a-descriptions-item label="创建人">{{ details.f_inputtor }}</a-descriptions-item>
22
+ <a-descriptions-item label="创建时间">{{ details.f_input_date }}</a-descriptions-item>
23
+ <a-descriptions-item label="描述">{{ details.f_describe }}</a-descriptions-item>
24
+ </a-descriptions>
25
+ </div>
26
+ </div>
27
+ <!-- actions -->
28
+ <template v-slot:extra>
29
+ <a-button-group style="margin-right: 4px;">
30
+ <a-button type="dashed" @click="initView" :loading="loadDeviceTypeDetails">刷新</a-button>
31
+ </a-button-group>
32
+ <a-button-group style="margin-right: 4px;">
33
+ </a-button-group>
34
+ </template>
35
+ <template slot="footer">
36
+ <a-tabs :default-active-key="tabActiveKey" :activeKey="tabActiveKey" @change="handleTabChange" style="margin-bottom: 23px;">
37
+ <template v-for="value in tabList">
38
+ <a-tab-pane :key="value.key" :tab="value.tab"/>
39
+ </template>
40
+ </a-tabs>
41
+ <div v-if="!loadDeviceTypeDetails">
42
+ <div v-if="tabActiveKey === '1'">
43
+ <a-button type="primary" @click="toCreateQuery">
44
+ <a-icon :style="iconStyle" type="api"/>编辑设备上报数据
45
+ </a-button>
46
+ <a-card title="设备上报数据预览" :bordered="true" size="small" style="margin-top: 20px;">
47
+ <json-viewer :copyable="{copyText: '复制', copiedText: '已复制'}" :value="getColumnJson()" :expand-depth="parseInt('100')" style="overflow: auto;max-height: 440px"></json-viewer>
48
+ </a-card>
49
+ </div>
50
+ <div v-if="tabActiveKey === '2'">
51
+ <x-form-table
52
+ title="指令配置"
53
+ :fixed-add-form="fixedAddForm"
54
+ :fixed-query-form="fixedQueryForm"
55
+ queryParamsName="deviceTypeToInstructQueryParams">
56
+ </x-form-table>
57
+ </div>
58
+ </div>
59
+ </template>
60
+ </a-page-header>
61
+ </a-spin>
62
+ </a-drawer>
63
+ </div>
64
+ </template>
65
+
66
+ <script>
67
+ import JsonViewer from 'vue-json-viewer'
68
+ import { mapState, mapGetters } from 'vuex'
69
+ import { post } from '@vue2-client/services/api/restTools'
70
+ import { DeviceTypeDetailsViewApi } from '@vue2-client/services/api/DeviceTypeDetailsViewApi'
71
+ import XFormTable from '@vue2-client/base-client/components/common/XFormTable/XFormTable'
72
+
73
+ export default {
74
+ name: 'DeviceTypeDetailsView',
75
+ components: {
76
+ JsonViewer,
77
+ XFormTable
78
+ },
79
+ data () {
80
+ return {
81
+ // 页面宽度
82
+ screenWidth: document.documentElement.clientWidth,
83
+ // Tab页签
84
+ tabActiveKey: '1',
85
+ // 图标样式
86
+ iconStyle: {
87
+ position: 'relative',
88
+ top: '1px'
89
+ },
90
+ // 是否显示生成查询配置抽屉
91
+ createQueryVisible: false,
92
+ // 设备类型详情
93
+ details: {
94
+ f_name: '',
95
+ f_describe: '',
96
+ f_state: '',
97
+ f_columns_json: '',
98
+ f_input_date: '',
99
+ f_inputtor: ''
100
+ },
101
+ fixedAddForm: {},
102
+ fixedQueryForm: {},
103
+ tabList: [
104
+ { key: '1', tab: '抄表查询配置' },
105
+ { key: '2', tab: '指令配置' }
106
+ ],
107
+ // 设备类型详情加载
108
+ loadDeviceTypeDetails: false
109
+ }
110
+ },
111
+ mounted () {
112
+ this.initView()
113
+ },
114
+ computed: {
115
+ ...mapGetters(['account/user']),
116
+ ...mapState('account', { currUser: 'user' }),
117
+ ...mapState('setting', ['isMobile'])
118
+ },
119
+ props: {
120
+ typeId: {
121
+ type: String,
122
+ required: true
123
+ },
124
+ typeName: {
125
+ type: String,
126
+ required: true
127
+ },
128
+ visible: {
129
+ type: Boolean,
130
+ default: false
131
+ }
132
+ },
133
+ methods: {
134
+ // 初始化组件
135
+ initView () {
136
+ this.tabActiveKey = '1'
137
+ this.fixedQueryForm['m_f_device_type_id'] = this.typeId
138
+ this.fixedAddForm['m_f_device_type_id'] = this.typeId
139
+ this.getDeviceType(this.typeId)
140
+ },
141
+ toCreateQuery () {
142
+ this.createQueryVisible = true
143
+ },
144
+ getColumnJson () {
145
+ if (this.details.f_columns_json) {
146
+ return JSON.parse(this.details.f_columns_json)
147
+ } else {
148
+ return {}
149
+ }
150
+ },
151
+ onClose () {
152
+ this.$emit('update:visible', false)
153
+ },
154
+ // 通用徽标过滤器
155
+ badgeFilter (key, value) {
156
+ const object = this.$appdata.getParam(key)
157
+ if (object.hasOwnProperty(value)) {
158
+ return object[value]
159
+ } else {
160
+ return {
161
+ 'status': 'default',
162
+ 'text': '未知类型:' + value
163
+ }
164
+ }
165
+ },
166
+ // 获取设备类型详情信息
167
+ getDeviceType (typeId) {
168
+ this.loadDeviceTypeDetails = true
169
+ return post(DeviceTypeDetailsViewApi.getDeviceTypeDetails, {
170
+ id: typeId
171
+ }).then(res => {
172
+ this.details = res
173
+ this.loadDeviceTypeDetails = false
174
+ }, err => {
175
+ this.loadDeviceTypeDetails = false
176
+ console.error(err)
177
+ })
178
+ },
179
+ // 存储查询配置信息
180
+ saveQueryParams (source) {
181
+ return post('/webmeterapi/updateDeviceTypeQueryParams', {
182
+ id: this.typeId,
183
+ source: source
184
+ }).then(res => {
185
+ this.$message.success('保存查询配置成功')
186
+ this.getDeviceType(this.typeId)
187
+ }, err => {
188
+ console.error(err)
189
+ })
190
+ },
191
+ // Tab切换
192
+ handleTabChange (key) {
193
+ this.tabActiveKey = key
194
+ }
195
+ },
196
+ watch: {
197
+ 'visible' (val) {
198
+ if (val) {
199
+ this.initView()
200
+ }
201
+ }
202
+ }
203
+ }
204
+ </script>
205
+
206
+ <style lang="less" scoped>
207
+ .business {
208
+ color: #ffffff;
209
+ }
210
+ .business:enabled:hover {
211
+ background-color: #85CE61 !important;
212
+ border-color: #85CE61 !important;
213
+ }
214
+ .business:enabled {
215
+ background-color: #67c23a;
216
+ border-color: #67c23a;
217
+ }
218
+ .business:disabled {
219
+ color: rgba(0, 0, 0, 0.25);
220
+ }
221
+ .detail-layout {
222
+ margin-left: 44px;
223
+ }
224
+ .text {
225
+ color: rgba(0, 0, 0, .45);
226
+ }
227
+
228
+ .heading {
229
+ color: rgba(0, 0, 0, .85);
230
+ font-size: 20px;
231
+ }
232
+
233
+ .no-data {
234
+ color: rgba(0, 0, 0, .25);
235
+ text-align: center;
236
+ line-height: 64px;
237
+ font-size: 16px;
238
+
239
+ i {
240
+ font-size: 24px;
241
+ margin-right: 16px;
242
+ position: relative;
243
+ top: 3px;
244
+ }
245
+ }
246
+
247
+ .mobile {
248
+ .detail-layout {
249
+ margin-left: unset;
250
+ }
251
+ .text {
252
+
253
+ }
254
+ .status-list {
255
+ text-align: left;
256
+ }
257
+ }
258
+
259
+ .row {
260
+ display: flex;
261
+
262
+ .content {
263
+ -webkit-box-flex: 1;
264
+ flex: auto;
265
+ -ms-flex: auto;
266
+ }
267
+
268
+ .extra {
269
+ flex: 0 1 auto;
270
+ -webkit-box-flex: 0;
271
+ -ms-flex: 0 1 auto;
272
+ min-width: 242px;
273
+ margin-left: 88px;
274
+ text-align: right;
275
+ }
276
+ }
277
+ </style>