vue2-client 1.2.43 → 1.2.46

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 (67) hide show
  1. package/CHANGELOG.md +114 -109
  2. package/docs/notice.md +22 -22
  3. package/package.json +1 -1
  4. package/src/App.vue +99 -93
  5. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +555 -555
  6. package/src/base-client/components/common/FormGroupEdit/FormGroupEdit.vue +149 -149
  7. package/src/base-client/components/common/XAddForm/XAddForm.vue +339 -339
  8. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +316 -316
  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/part/DeviceDetailsCount.vue +330 -330
  14. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsException.vue +57 -57
  15. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsInstructOperate.vue +121 -121
  16. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsRead.vue +131 -131
  17. package/src/base-client/components/iot/DeviceTypeDetailsView/DeviceTypeDetailsView.vue +276 -276
  18. package/src/base-client/components/iot/InstructDetailsView/InstructDetailsView.vue +469 -469
  19. package/src/base-client/components/iot/LogDetailsView/LogDetailsView.vue +379 -379
  20. package/src/base-client/components/iot/MeterDetailsView/MeterDetailsView.vue +359 -359
  21. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsCount.vue +335 -335
  22. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsException.vue +184 -184
  23. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsHandPlan.vue +291 -291
  24. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsInstruct.vue +236 -236
  25. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsMain.vue +256 -256
  26. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsSellGas.vue +189 -189
  27. package/src/base-client/components/iot/WebmeterAnalysisView/WebmeterAnalysisView.vue +722 -722
  28. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +231 -231
  29. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +247 -247
  30. package/src/base-client/components/ticket/EmployeeDetailsView/EmployeeDetailsView.vue +370 -370
  31. package/src/base-client/components/ticket/TicketDetailsView/TicketDetailsView.vue +1 -1
  32. package/src/base-client/components/ticket/TicketDetailsView/part/TicketDetailsFlow.vue +260 -260
  33. package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +532 -532
  34. package/src/base-client/plugins/AppData.js +67 -67
  35. package/src/base-client/plugins/GetLoginInfoService.js +252 -252
  36. package/src/components/exception/ExceptionPage.vue +70 -70
  37. package/src/components/menu/SideMenu.vue +1 -1
  38. package/src/components/setting/Setting.vue +235 -235
  39. package/src/config/default/setting.config.js +5 -1
  40. package/src/config/index.js +3 -3
  41. package/src/layouts/SinglePageView.vue +8 -2
  42. package/src/layouts/header/AdminHeader.vue +1 -1
  43. package/src/layouts/header/HeaderNotice.vue +97 -97
  44. package/src/layouts/tabs/TabsView.vue +16 -1
  45. package/src/pages/exception/403.vue +21 -25
  46. package/src/pages/exception/404.vue +21 -25
  47. package/src/pages/exception/500.vue +21 -25
  48. package/src/pages/login/Login.vue +5 -12
  49. package/src/pages/report/ReportTableHome.vue +28 -28
  50. package/src/pages/resourceManage/depListManage.vue +23 -23
  51. package/src/pages/resourceManage/funListManage.vue +23 -23
  52. package/src/pages/resourceManage/index.js +15 -15
  53. package/src/pages/resourceManage/orgListManage.vue +98 -98
  54. package/src/pages/resourceManage/roleListManage.vue +23 -23
  55. package/src/pages/resourceManage/staffListManage.vue +23 -23
  56. package/src/pages/system/ticket/index.vue +1 -1
  57. package/src/pages/system/ticket/submitTicketSuccess.vue +248 -248
  58. package/src/router/async/config.async.js +26 -26
  59. package/src/router/index.js +27 -27
  60. package/src/services/api/common.js +47 -47
  61. package/src/services/api/index.js +39 -39
  62. package/src/services/user.js +34 -34
  63. package/src/store/modules/account.js +2 -2
  64. package/src/theme/default/style.less +47 -47
  65. package/src/utils/indexedDB.js +146 -146
  66. package/src/utils/routerUtil.js +359 -359
  67. package/vue.config.js +143 -143
@@ -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>