vue2-client 1.2.43 → 1.2.44

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 (66) hide show
  1. package/CHANGELOG.md +114 -109
  2. package/docs/notice.md +22 -22
  3. package/package.json +1 -1
  4. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +555 -555
  5. package/src/base-client/components/common/FormGroupEdit/FormGroupEdit.vue +149 -149
  6. package/src/base-client/components/common/XAddForm/XAddForm.vue +339 -339
  7. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +316 -316
  8. package/src/base-client/components/common/XForm/XForm.vue +275 -275
  9. package/src/base-client/components/iot/CustomerDetailsView/CustomerDetailsView.vue +225 -225
  10. package/src/base-client/components/iot/DataAnalysisView/DataAnalysisView.vue +244 -244
  11. package/src/base-client/components/iot/DeviceBrandDetailsView/DeviceBrandDetailsView.vue +452 -452
  12. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsCount.vue +330 -330
  13. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsException.vue +57 -57
  14. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsInstructOperate.vue +121 -121
  15. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsRead.vue +131 -131
  16. package/src/base-client/components/iot/DeviceTypeDetailsView/DeviceTypeDetailsView.vue +276 -276
  17. package/src/base-client/components/iot/InstructDetailsView/InstructDetailsView.vue +469 -469
  18. package/src/base-client/components/iot/LogDetailsView/LogDetailsView.vue +379 -379
  19. package/src/base-client/components/iot/MeterDetailsView/MeterDetailsView.vue +359 -359
  20. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsCount.vue +335 -335
  21. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsException.vue +184 -184
  22. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsHandPlan.vue +291 -291
  23. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsInstruct.vue +236 -236
  24. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsMain.vue +256 -256
  25. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsSellGas.vue +189 -189
  26. package/src/base-client/components/iot/WebmeterAnalysisView/WebmeterAnalysisView.vue +722 -722
  27. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +231 -231
  28. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +247 -247
  29. package/src/base-client/components/ticket/EmployeeDetailsView/EmployeeDetailsView.vue +370 -370
  30. package/src/base-client/components/ticket/TicketDetailsView/TicketDetailsView.vue +1 -1
  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/plugins/AppData.js +67 -67
  34. package/src/base-client/plugins/GetLoginInfoService.js +252 -252
  35. package/src/components/exception/ExceptionPage.vue +70 -70
  36. package/src/components/menu/SideMenu.vue +1 -1
  37. package/src/components/setting/Setting.vue +235 -235
  38. package/src/config/default/setting.config.js +37 -35
  39. package/src/config/index.js +3 -3
  40. package/src/layouts/SinglePageView.vue +79 -72
  41. package/src/layouts/header/AdminHeader.vue +1 -1
  42. package/src/layouts/header/HeaderNotice.vue +97 -97
  43. package/src/layouts/tabs/TabsView.vue +16 -1
  44. package/src/pages/exception/403.vue +21 -25
  45. package/src/pages/exception/404.vue +21 -25
  46. package/src/pages/exception/500.vue +21 -25
  47. package/src/pages/login/Login.vue +5 -12
  48. package/src/pages/report/ReportTableHome.vue +28 -28
  49. package/src/pages/resourceManage/depListManage.vue +23 -23
  50. package/src/pages/resourceManage/funListManage.vue +23 -23
  51. package/src/pages/resourceManage/index.js +15 -15
  52. package/src/pages/resourceManage/orgListManage.vue +98 -98
  53. package/src/pages/resourceManage/roleListManage.vue +23 -23
  54. package/src/pages/resourceManage/staffListManage.vue +23 -23
  55. package/src/pages/system/ticket/index.vue +1 -1
  56. package/src/pages/system/ticket/submitTicketSuccess.vue +248 -248
  57. package/src/router/async/config.async.js +26 -26
  58. package/src/router/index.js +27 -27
  59. package/src/services/api/common.js +47 -47
  60. package/src/services/api/index.js +39 -39
  61. package/src/services/user.js +34 -34
  62. package/src/store/modules/account.js +2 -2
  63. package/src/theme/default/style.less +47 -47
  64. package/src/utils/indexedDB.js +146 -146
  65. package/src/utils/routerUtil.js +359 -359
  66. package/vue.config.js +143 -143
@@ -1,231 +1,231 @@
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="loadDetails">
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="字典键">{{ details.f_key }}</a-descriptions-item>
18
- <a-descriptions-item label="备注">{{ details.f_remark }}</a-descriptions-item>
19
- <a-descriptions-item label="创建时间">{{ format(details.f_input_date) }}</a-descriptions-item>
20
- </a-descriptions>
21
- </div>
22
- <div class="extra">
23
- <a-row class="status-list">
24
- <a-col :xs="12" :sm="24">
25
- </a-col>
26
- </a-row>
27
- </div>
28
- </div>
29
- <!-- actions -->
30
- <template v-slot:extra>
31
- <a-button-group style="margin-right: 4px;">
32
- <a-button type="dashed" @click="initView" :loading="loadDetails">刷新</a-button>
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="!loadDetails">
42
- <template v-if="tabActiveKey === '1'">
43
- <x-form-table
44
- title="字典数据配置"
45
- :fixed-add-form="fixedAddForm"
46
- :fixed-query-form="fixedQueryForm"
47
- queryParamsName="dictionaryValueQueryParams"
48
- @afterSubmit="afterSubmit"
49
- >
50
- </x-form-table>
51
- </template>
52
- </div>
53
- </template>
54
- </a-page-header>
55
- </a-spin>
56
- </a-drawer>
57
- </template>
58
-
59
- <script>
60
- import { DictionaryDetailsViewApi, post } from '@vue2-client/services/api'
61
- import { mapState } from 'vuex'
62
- import { formatDate } from '@vue2-client/utils/util'
63
- import XFormTable from '@vue2-client/base-client/components/common/XFormTable/XFormTable'
64
-
65
- export default {
66
- name: 'DictionaryDetailsView',
67
- components: {
68
- XFormTable
69
- },
70
- data () {
71
- return {
72
- // 页面宽度
73
- screenWidth: document.documentElement.clientWidth,
74
- // Tab页签
75
- tabActiveKey: '1',
76
- // 字典详情
77
- details: {
78
- id: 0,
79
- f_name: '',
80
- f_key: '',
81
- f_remark: '',
82
- f_input_date: '',
83
- f_state: 0
84
- },
85
- tabList: [
86
- { key: '1', tab: '字典数据' }
87
- ],
88
- // 固定新增数据
89
- fixedAddForm: {},
90
- // 固定查询数据
91
- fixedQueryForm: {},
92
- // 详情加载
93
- loadDetails: true
94
- }
95
- },
96
- mounted () {
97
- this.initView()
98
- },
99
- computed: {
100
- ...mapState('account', { currUser: 'user' }),
101
- ...mapState('setting', ['isMobile'])
102
- },
103
- props: {
104
- id: {
105
- type: String,
106
- required: true
107
- },
108
- visible: {
109
- type: Boolean,
110
- default: false
111
- }
112
- },
113
- methods: {
114
- // 初始化组件
115
- initView () {
116
- this.tabActiveKey = '1'
117
- this.fixedQueryForm['v_f_dictionary_id'] = this.id
118
- this.fixedAddForm['v_f_dictionary_id'] = this.id
119
- this.getDetails(this.id)
120
- },
121
- onClose () {
122
- this.$emit('update:visible', false)
123
- },
124
- // 获取详情信息
125
- getDetails (userId) {
126
- this.loadDetails = true
127
- return post(DictionaryDetailsViewApi.getDictionaryDetails, {
128
- id: userId
129
- })
130
- .then(res => {
131
- this.details = res
132
- this.loadDetails = false
133
- }, err => {
134
- this.loadDetails = false
135
- console.error(err)
136
- })
137
- },
138
- // Tab切换
139
- handleTabChange (key) {
140
- this.tabActiveKey = key
141
- },
142
- // 日期格式化
143
- format (date, format) {
144
- return formatDate(date, format)
145
- },
146
- afterSubmit () {
147
- this.$appdata.load()
148
- }
149
- },
150
- watch: {
151
- 'visible' (val) {
152
- if (val) {
153
- this.initView()
154
- }
155
- }
156
- }
157
- }
158
- </script>
159
-
160
- <style lang="less" scoped>
161
- .business {
162
- color: #ffffff;
163
- }
164
- .business:enabled:hover {
165
- background-color: #85CE61 !important;
166
- border-color: #85CE61 !important;
167
- }
168
- .business:enabled {
169
- background-color: #67c23a;
170
- border-color: #67c23a;
171
- }
172
- .business:disabled {
173
- color: rgba(0, 0, 0, 0.25);
174
- }
175
- .detail-layout {
176
- margin-left: 44px;
177
- }
178
- .text {
179
- color: rgba(0, 0, 0, .45);
180
- }
181
-
182
- .heading {
183
- color: rgba(0, 0, 0, .85);
184
- font-size: 20px;
185
- }
186
-
187
- .no-data {
188
- color: rgba(0, 0, 0, .25);
189
- text-align: center;
190
- line-height: 64px;
191
- font-size: 16px;
192
-
193
- i {
194
- font-size: 24px;
195
- margin-right: 16px;
196
- position: relative;
197
- top: 3px;
198
- }
199
- }
200
-
201
- .mobile {
202
- .detail-layout {
203
- margin-left: unset;
204
- }
205
- .text {
206
-
207
- }
208
- .status-list {
209
- text-align: left;
210
- }
211
- }
212
-
213
- .row {
214
- display: flex;
215
-
216
- .content {
217
- -webkit-box-flex: 1;
218
- flex: auto;
219
- -ms-flex: auto;
220
- }
221
-
222
- .extra {
223
- flex: 0 1 auto;
224
- -webkit-box-flex: 0;
225
- -ms-flex: 0 1 auto;
226
- min-width: 242px;
227
- margin-left: 88px;
228
- text-align: right;
229
- }
230
- }
231
- </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="loadDetails">
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="字典键">{{ details.f_key }}</a-descriptions-item>
18
+ <a-descriptions-item label="备注">{{ details.f_remark }}</a-descriptions-item>
19
+ <a-descriptions-item label="创建时间">{{ format(details.f_input_date) }}</a-descriptions-item>
20
+ </a-descriptions>
21
+ </div>
22
+ <div class="extra">
23
+ <a-row class="status-list">
24
+ <a-col :xs="12" :sm="24">
25
+ </a-col>
26
+ </a-row>
27
+ </div>
28
+ </div>
29
+ <!-- actions -->
30
+ <template v-slot:extra>
31
+ <a-button-group style="margin-right: 4px;">
32
+ <a-button type="dashed" @click="initView" :loading="loadDetails">刷新</a-button>
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="!loadDetails">
42
+ <template v-if="tabActiveKey === '1'">
43
+ <x-form-table
44
+ title="字典数据配置"
45
+ :fixed-add-form="fixedAddForm"
46
+ :fixed-query-form="fixedQueryForm"
47
+ queryParamsName="dictionaryValueQueryParams"
48
+ @afterSubmit="afterSubmit"
49
+ >
50
+ </x-form-table>
51
+ </template>
52
+ </div>
53
+ </template>
54
+ </a-page-header>
55
+ </a-spin>
56
+ </a-drawer>
57
+ </template>
58
+
59
+ <script>
60
+ import { DictionaryDetailsViewApi, post } from '@vue2-client/services/api'
61
+ import { mapState } from 'vuex'
62
+ import { formatDate } from '@vue2-client/utils/util'
63
+ import XFormTable from '@vue2-client/base-client/components/common/XFormTable/XFormTable'
64
+
65
+ export default {
66
+ name: 'DictionaryDetailsView',
67
+ components: {
68
+ XFormTable
69
+ },
70
+ data () {
71
+ return {
72
+ // 页面宽度
73
+ screenWidth: document.documentElement.clientWidth,
74
+ // Tab页签
75
+ tabActiveKey: '1',
76
+ // 字典详情
77
+ details: {
78
+ id: 0,
79
+ f_name: '',
80
+ f_key: '',
81
+ f_remark: '',
82
+ f_input_date: '',
83
+ f_state: 0
84
+ },
85
+ tabList: [
86
+ { key: '1', tab: '字典数据' }
87
+ ],
88
+ // 固定新增数据
89
+ fixedAddForm: {},
90
+ // 固定查询数据
91
+ fixedQueryForm: {},
92
+ // 详情加载
93
+ loadDetails: true
94
+ }
95
+ },
96
+ mounted () {
97
+ this.initView()
98
+ },
99
+ computed: {
100
+ ...mapState('account', { currUser: 'user' }),
101
+ ...mapState('setting', ['isMobile'])
102
+ },
103
+ props: {
104
+ id: {
105
+ type: String,
106
+ required: true
107
+ },
108
+ visible: {
109
+ type: Boolean,
110
+ default: false
111
+ }
112
+ },
113
+ methods: {
114
+ // 初始化组件
115
+ initView () {
116
+ this.tabActiveKey = '1'
117
+ this.fixedQueryForm['v_f_dictionary_id'] = this.id
118
+ this.fixedAddForm['v_f_dictionary_id'] = this.id
119
+ this.getDetails(this.id)
120
+ },
121
+ onClose () {
122
+ this.$emit('update:visible', false)
123
+ },
124
+ // 获取详情信息
125
+ getDetails (userId) {
126
+ this.loadDetails = true
127
+ return post(DictionaryDetailsViewApi.getDictionaryDetails, {
128
+ id: userId
129
+ })
130
+ .then(res => {
131
+ this.details = res
132
+ this.loadDetails = false
133
+ }, err => {
134
+ this.loadDetails = false
135
+ console.error(err)
136
+ })
137
+ },
138
+ // Tab切换
139
+ handleTabChange (key) {
140
+ this.tabActiveKey = key
141
+ },
142
+ // 日期格式化
143
+ format (date, format) {
144
+ return formatDate(date, format)
145
+ },
146
+ afterSubmit () {
147
+ this.$appdata.load()
148
+ }
149
+ },
150
+ watch: {
151
+ 'visible' (val) {
152
+ if (val) {
153
+ this.initView()
154
+ }
155
+ }
156
+ }
157
+ }
158
+ </script>
159
+
160
+ <style lang="less" scoped>
161
+ .business {
162
+ color: #ffffff;
163
+ }
164
+ .business:enabled:hover {
165
+ background-color: #85CE61 !important;
166
+ border-color: #85CE61 !important;
167
+ }
168
+ .business:enabled {
169
+ background-color: #67c23a;
170
+ border-color: #67c23a;
171
+ }
172
+ .business:disabled {
173
+ color: rgba(0, 0, 0, 0.25);
174
+ }
175
+ .detail-layout {
176
+ margin-left: 44px;
177
+ }
178
+ .text {
179
+ color: rgba(0, 0, 0, .45);
180
+ }
181
+
182
+ .heading {
183
+ color: rgba(0, 0, 0, .85);
184
+ font-size: 20px;
185
+ }
186
+
187
+ .no-data {
188
+ color: rgba(0, 0, 0, .25);
189
+ text-align: center;
190
+ line-height: 64px;
191
+ font-size: 16px;
192
+
193
+ i {
194
+ font-size: 24px;
195
+ margin-right: 16px;
196
+ position: relative;
197
+ top: 3px;
198
+ }
199
+ }
200
+
201
+ .mobile {
202
+ .detail-layout {
203
+ margin-left: unset;
204
+ }
205
+ .text {
206
+
207
+ }
208
+ .status-list {
209
+ text-align: left;
210
+ }
211
+ }
212
+
213
+ .row {
214
+ display: flex;
215
+
216
+ .content {
217
+ -webkit-box-flex: 1;
218
+ flex: auto;
219
+ -ms-flex: auto;
220
+ }
221
+
222
+ .extra {
223
+ flex: 0 1 auto;
224
+ -webkit-box-flex: 0;
225
+ -ms-flex: 0 1 auto;
226
+ min-width: 242px;
227
+ margin-left: 88px;
228
+ text-align: right;
229
+ }
230
+ }
231
+ </style>