vue2-client 1.2.37 → 1.2.41

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 (63) hide show
  1. package/CHANGELOG.md +103 -90
  2. package/docs/notice.md +22 -22
  3. package/package.json +1 -1
  4. package/src/base-client/all.js +2 -0
  5. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +104 -0
  6. package/src/base-client/components/common/AmapMarker/index.js +3 -0
  7. package/src/base-client/components/common/FormGroupEdit/FormGroupEdit.vue +149 -149
  8. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +315 -315
  9. package/src/base-client/components/common/XForm/XForm.vue +275 -275
  10. package/src/base-client/components/iot/CustomerDetailsView/CustomerDetailsView.vue +225 -225
  11. package/src/base-client/components/iot/DataAnalysisView/DataAnalysisView.vue +244 -244
  12. package/src/base-client/components/iot/DeviceBrandDetailsView/DeviceBrandDetailsView.vue +452 -452
  13. package/src/base-client/components/iot/DeviceDetailsView/DeviceDetailsView.vue +8 -2
  14. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsCount.vue +330 -330
  15. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsException.vue +57 -57
  16. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsInstructOperate.vue +121 -121
  17. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsRead.vue +131 -131
  18. package/src/base-client/components/iot/DeviceTypeDetailsView/DeviceTypeDetailsView.vue +276 -276
  19. package/src/base-client/components/iot/InstructDetailsView/InstructDetailsView.vue +469 -469
  20. package/src/base-client/components/iot/LogDetailsView/LogDetailsView.vue +379 -379
  21. package/src/base-client/components/iot/MeterDetailsView/MeterDetailsView.vue +359 -359
  22. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsCount.vue +335 -335
  23. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsException.vue +184 -184
  24. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsHandPlan.vue +291 -291
  25. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsInstruct.vue +236 -236
  26. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsMain.vue +256 -256
  27. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsSellGas.vue +189 -189
  28. package/src/base-client/components/iot/WebmeterAnalysisView/WebmeterAnalysisView.vue +722 -722
  29. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +231 -231
  30. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +247 -247
  31. package/src/base-client/components/ticket/EmployeeDetailsView/EmployeeDetailsView.vue +370 -370
  32. package/src/base-client/components/ticket/TicketDetailsView/TicketDetailsView.vue +3 -3
  33. package/src/base-client/components/ticket/TicketDetailsView/part/TicketDetailsFlow.vue +260 -260
  34. package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +532 -532
  35. package/src/base-client/plugins/AppData.js +67 -67
  36. package/src/base-client/plugins/GetLoginInfoService.js +252 -252
  37. package/src/components/exception/ExceptionPage.vue +70 -70
  38. package/src/components/setting/Setting.vue +235 -237
  39. package/src/config/default/setting.config.js +6 -5
  40. package/src/config/index.js +3 -6
  41. package/src/layouts/SinglePageView.vue +13 -17
  42. package/src/layouts/header/HeaderNotice.vue +97 -97
  43. package/src/layouts/tabs/TabsView.vue +3 -5
  44. package/src/pages/login/Login.vue +4 -1
  45. package/src/pages/report/ReportTableHome.vue +28 -28
  46. package/src/pages/resourceManage/depListManage.vue +23 -23
  47. package/src/pages/resourceManage/funListManage.vue +23 -23
  48. package/src/pages/resourceManage/index.js +15 -15
  49. package/src/pages/resourceManage/orgListManage.vue +98 -98
  50. package/src/pages/resourceManage/roleListManage.vue +23 -23
  51. package/src/pages/resourceManage/staffListManage.vue +23 -23
  52. package/src/pages/system/ticket/index.vue +456 -440
  53. package/src/pages/system/ticket/submitTicketSuccess.vue +248 -248
  54. package/src/router/async/config.async.js +26 -26
  55. package/src/router/async/router.map.js +58 -59
  56. package/src/router/index.js +27 -27
  57. package/src/services/api/common.js +47 -47
  58. package/src/services/api/index.js +39 -39
  59. package/src/services/user.js +34 -34
  60. package/src/utils/indexedDB.js +146 -146
  61. package/src/utils/routerUtil.js +359 -360
  62. package/vue.config.js +2 -2
  63. package/src/config/config.js +0 -15
@@ -1,225 +1,225 @@
1
- <template>
2
- <a-drawer
3
- title="客户详情"
4
- placement="right"
5
- :width="isMobile ? screenWidth : screenWidth * 0.85"
6
- :visible="visible"
7
- @close="onClose"
8
- >
9
- <a-spin :spinning="loading">
10
- <a-page-header
11
- :title="details.f_name"
12
- >
13
- <div class="row">
14
- <div class="content">
15
- <a-descriptions size="small" :column="isMobile ? 1 : 2">
16
- <a-descriptions-item label="客户编号">{{ details.id }}</a-descriptions-item>
17
- <a-descriptions-item label="创建时间">{{ format(details.f_input_date,'yyyy-MM-dd hh:mm:ss') }}</a-descriptions-item>
18
- <a-descriptions-item label="所属大区">{{ details.f_region }}</a-descriptions-item>
19
- <a-descriptions-item label="系统版本">
20
- {{ details.f_system_version }}
21
- </a-descriptions-item>
22
- <a-descriptions-item label="数据库类型">
23
- {{ details.f_data_source }}
24
- </a-descriptions-item>
25
- </a-descriptions>
26
- </div>
27
- <div class="extra">
28
- <a-row class="status-list">
29
- <a-col :xs="12" :sm="24">
30
- <div class="text">客户状态</div>
31
- <div class="heading">
32
- <x-badge badge-key="customerStateMap" :value="details.f_state" :is-external-text="true"/>
33
- </div>
34
- </a-col>
35
- </a-row>
36
- <p></p>
37
- <a-row class="status-list">
38
- <a-col :xs="12" :sm="24">
39
- <div class="text">日志持久化状态</div>
40
- <div class="heading">
41
- <x-badge badge-key="logPersistenceStateMap" :value="details.f_log_persistence" :is-external-text="true"/>
42
- </div>
43
- </a-col>
44
- </a-row>
45
- </div>
46
- </div>
47
- <!-- actions -->
48
- <template v-slot:extra>
49
- <a-button-group style="margin-right: 4px;">
50
- <a-button type="dashed" @click="initView" :loading="loading">刷新</a-button>
51
- </a-button-group>
52
- </template>
53
- <!-- 操作 -->
54
- <a-card
55
- style="margin-top: 24px"
56
- :bordered="false"
57
- :tabList="operationTabList"
58
- :activeTabKey="operationActiveTabKey"
59
- @tabChange="(key) => {this.operationActiveTabKey = key}"
60
- >
61
- <div v-if="operationActiveTabKey === '1'">
62
- <a-descriptions layout="vertical" bordered>
63
- <a-descriptions-item label="联系方式">{{ details.f_contact }}</a-descriptions-item>
64
- <a-descriptions-item label="地址" span="2">{{ details.f_address }}</a-descriptions-item>
65
- <a-descriptions-item label="备注">{{ details.f_remark }}</a-descriptions-item>
66
- </a-descriptions>
67
- </div>
68
- <div v-else-if="operationActiveTabKey === '2'" class="no-data"><a-icon type="frown-o"/>暂无数据</div>
69
- </a-card>
70
- </a-page-header>
71
- </a-spin>
72
- </a-drawer>
73
- </template>
74
-
75
- <script>
76
- import { formatDate } from '@vue2-client/utils/util'
77
- import { CustomerDetailsViewApi, post } from '@vue2-client/services/api'
78
- import { mapState } from 'vuex'
79
-
80
- export default {
81
- name: 'CustomerDetailsView',
82
- data () {
83
- return {
84
- // 页面宽度
85
- screenWidth: document.documentElement.clientWidth,
86
- // 客户详情
87
- details: {
88
- id: 0,
89
- f_name: '',
90
- f_region: '',
91
- f_system_version: '',
92
- f_contact: '',
93
- f_address: '',
94
- f_remark: '',
95
- f_state: '正常',
96
- f_input_date: '',
97
- f_data_source: '',
98
- f_log_persistence: '支持'
99
- },
100
- // 是否刷新加载中
101
- loading: false,
102
- operationTabList: [
103
- {
104
- key: '1',
105
- tab: '基本信息'
106
- },
107
- {
108
- key: '2',
109
- tab: '操作日志'
110
- }
111
- ],
112
- operationActiveTabKey: '1'
113
- }
114
- },
115
- mounted () {
116
- this.initView()
117
- },
118
- computed: {
119
- ...mapState('account', { currUser: 'user' }),
120
- ...mapState('setting', ['isMobile'])
121
- },
122
- props: {
123
- customerName: {
124
- type: String,
125
- required: true
126
- },
127
- visible: {
128
- type: Boolean,
129
- default: false
130
- }
131
- },
132
- methods: {
133
- // 初始化组件
134
- initView () {
135
- this.getCustomers(this.customerName)
136
- },
137
- onClose () {
138
- this.$emit('update:visible', false)
139
- },
140
- getCustomers (customerName) {
141
- this.loading = true
142
- return post(CustomerDetailsViewApi.getCustomerDetails, {
143
- customerName: customerName
144
- })
145
- .then(res => {
146
- res.f_state = res.f_state === '1' ? '正常' : '停用'
147
- this.details = res
148
- this.loading = false
149
- }, err => {
150
- this.loading = false
151
- console.warn(err)
152
- })
153
- },
154
- format (date, format) {
155
- return formatDate(date, format)
156
- }
157
- },
158
- watch: {
159
- 'visible' (val) {
160
- if (val) {
161
- this.initView()
162
- }
163
- }
164
- }
165
- }
166
- </script>
167
-
168
- <style lang="less" scoped>
169
- .detail-layout {
170
- margin-left: 44px;
171
- }
172
- .text {
173
- color: rgba(0, 0, 0, .45);
174
- }
175
-
176
- .heading {
177
- color: rgba(0, 0, 0, .85);
178
- font-size: 20px;
179
- }
180
-
181
- .no-data {
182
- color: rgba(0, 0, 0, .25);
183
- text-align: center;
184
- line-height: 64px;
185
- font-size: 16px;
186
-
187
- i {
188
- font-size: 24px;
189
- margin-right: 16px;
190
- position: relative;
191
- top: 3px;
192
- }
193
- }
194
-
195
- .mobile {
196
- .detail-layout {
197
- margin-left: unset;
198
- }
199
- .text {
200
-
201
- }
202
- .status-list {
203
- text-align: left;
204
- }
205
- }
206
-
207
- .row {
208
- display: flex;
209
-
210
- .content {
211
- -webkit-box-flex: 1;
212
- flex: auto;
213
- -ms-flex: auto;
214
- }
215
-
216
- .extra {
217
- flex: 0 1 auto;
218
- -webkit-box-flex: 0;
219
- -ms-flex: 0 1 auto;
220
- min-width: 242px;
221
- margin-left: 88px;
222
- text-align: right;
223
- }
224
- }
225
- </style>
1
+ <template>
2
+ <a-drawer
3
+ title="客户详情"
4
+ placement="right"
5
+ :width="isMobile ? screenWidth : screenWidth * 0.85"
6
+ :visible="visible"
7
+ @close="onClose"
8
+ >
9
+ <a-spin :spinning="loading">
10
+ <a-page-header
11
+ :title="details.f_name"
12
+ >
13
+ <div class="row">
14
+ <div class="content">
15
+ <a-descriptions size="small" :column="isMobile ? 1 : 2">
16
+ <a-descriptions-item label="客户编号">{{ details.id }}</a-descriptions-item>
17
+ <a-descriptions-item label="创建时间">{{ format(details.f_input_date,'yyyy-MM-dd hh:mm:ss') }}</a-descriptions-item>
18
+ <a-descriptions-item label="所属大区">{{ details.f_region }}</a-descriptions-item>
19
+ <a-descriptions-item label="系统版本">
20
+ {{ details.f_system_version }}
21
+ </a-descriptions-item>
22
+ <a-descriptions-item label="数据库类型">
23
+ {{ details.f_data_source }}
24
+ </a-descriptions-item>
25
+ </a-descriptions>
26
+ </div>
27
+ <div class="extra">
28
+ <a-row class="status-list">
29
+ <a-col :xs="12" :sm="24">
30
+ <div class="text">客户状态</div>
31
+ <div class="heading">
32
+ <x-badge badge-key="customerStateMap" :value="details.f_state" :is-external-text="true"/>
33
+ </div>
34
+ </a-col>
35
+ </a-row>
36
+ <p></p>
37
+ <a-row class="status-list">
38
+ <a-col :xs="12" :sm="24">
39
+ <div class="text">日志持久化状态</div>
40
+ <div class="heading">
41
+ <x-badge badge-key="logPersistenceStateMap" :value="details.f_log_persistence" :is-external-text="true"/>
42
+ </div>
43
+ </a-col>
44
+ </a-row>
45
+ </div>
46
+ </div>
47
+ <!-- actions -->
48
+ <template v-slot:extra>
49
+ <a-button-group style="margin-right: 4px;">
50
+ <a-button type="dashed" @click="initView" :loading="loading">刷新</a-button>
51
+ </a-button-group>
52
+ </template>
53
+ <!-- 操作 -->
54
+ <a-card
55
+ style="margin-top: 24px"
56
+ :bordered="false"
57
+ :tabList="operationTabList"
58
+ :activeTabKey="operationActiveTabKey"
59
+ @tabChange="(key) => {this.operationActiveTabKey = key}"
60
+ >
61
+ <div v-if="operationActiveTabKey === '1'">
62
+ <a-descriptions layout="vertical" bordered>
63
+ <a-descriptions-item label="联系方式">{{ details.f_contact }}</a-descriptions-item>
64
+ <a-descriptions-item label="地址" span="2">{{ details.f_address }}</a-descriptions-item>
65
+ <a-descriptions-item label="备注">{{ details.f_remark }}</a-descriptions-item>
66
+ </a-descriptions>
67
+ </div>
68
+ <div v-else-if="operationActiveTabKey === '2'" class="no-data"><a-icon type="frown-o"/>暂无数据</div>
69
+ </a-card>
70
+ </a-page-header>
71
+ </a-spin>
72
+ </a-drawer>
73
+ </template>
74
+
75
+ <script>
76
+ import { formatDate } from '@vue2-client/utils/util'
77
+ import { CustomerDetailsViewApi, post } from '@vue2-client/services/api'
78
+ import { mapState } from 'vuex'
79
+
80
+ export default {
81
+ name: 'CustomerDetailsView',
82
+ data () {
83
+ return {
84
+ // 页面宽度
85
+ screenWidth: document.documentElement.clientWidth,
86
+ // 客户详情
87
+ details: {
88
+ id: 0,
89
+ f_name: '',
90
+ f_region: '',
91
+ f_system_version: '',
92
+ f_contact: '',
93
+ f_address: '',
94
+ f_remark: '',
95
+ f_state: '正常',
96
+ f_input_date: '',
97
+ f_data_source: '',
98
+ f_log_persistence: '支持'
99
+ },
100
+ // 是否刷新加载中
101
+ loading: false,
102
+ operationTabList: [
103
+ {
104
+ key: '1',
105
+ tab: '基本信息'
106
+ },
107
+ {
108
+ key: '2',
109
+ tab: '操作日志'
110
+ }
111
+ ],
112
+ operationActiveTabKey: '1'
113
+ }
114
+ },
115
+ mounted () {
116
+ this.initView()
117
+ },
118
+ computed: {
119
+ ...mapState('account', { currUser: 'user' }),
120
+ ...mapState('setting', ['isMobile'])
121
+ },
122
+ props: {
123
+ customerName: {
124
+ type: String,
125
+ required: true
126
+ },
127
+ visible: {
128
+ type: Boolean,
129
+ default: false
130
+ }
131
+ },
132
+ methods: {
133
+ // 初始化组件
134
+ initView () {
135
+ this.getCustomers(this.customerName)
136
+ },
137
+ onClose () {
138
+ this.$emit('update:visible', false)
139
+ },
140
+ getCustomers (customerName) {
141
+ this.loading = true
142
+ return post(CustomerDetailsViewApi.getCustomerDetails, {
143
+ customerName: customerName
144
+ })
145
+ .then(res => {
146
+ res.f_state = res.f_state === '1' ? '正常' : '停用'
147
+ this.details = res
148
+ this.loading = false
149
+ }, err => {
150
+ this.loading = false
151
+ console.warn(err)
152
+ })
153
+ },
154
+ format (date, format) {
155
+ return formatDate(date, format)
156
+ }
157
+ },
158
+ watch: {
159
+ 'visible' (val) {
160
+ if (val) {
161
+ this.initView()
162
+ }
163
+ }
164
+ }
165
+ }
166
+ </script>
167
+
168
+ <style lang="less" scoped>
169
+ .detail-layout {
170
+ margin-left: 44px;
171
+ }
172
+ .text {
173
+ color: rgba(0, 0, 0, .45);
174
+ }
175
+
176
+ .heading {
177
+ color: rgba(0, 0, 0, .85);
178
+ font-size: 20px;
179
+ }
180
+
181
+ .no-data {
182
+ color: rgba(0, 0, 0, .25);
183
+ text-align: center;
184
+ line-height: 64px;
185
+ font-size: 16px;
186
+
187
+ i {
188
+ font-size: 24px;
189
+ margin-right: 16px;
190
+ position: relative;
191
+ top: 3px;
192
+ }
193
+ }
194
+
195
+ .mobile {
196
+ .detail-layout {
197
+ margin-left: unset;
198
+ }
199
+ .text {
200
+
201
+ }
202
+ .status-list {
203
+ text-align: left;
204
+ }
205
+ }
206
+
207
+ .row {
208
+ display: flex;
209
+
210
+ .content {
211
+ -webkit-box-flex: 1;
212
+ flex: auto;
213
+ -ms-flex: auto;
214
+ }
215
+
216
+ .extra {
217
+ flex: 0 1 auto;
218
+ -webkit-box-flex: 0;
219
+ -ms-flex: 0 1 auto;
220
+ min-width: 242px;
221
+ margin-left: 88px;
222
+ text-align: right;
223
+ }
224
+ }
225
+ </style>