vue2-client 1.2.0 → 1.2.3

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/README.md +65 -65
  2. package/babel.config.js +1 -0
  3. package/docs/notice.md +22 -0
  4. package/index.js +28 -28
  5. package/package.json +1 -1
  6. package/src/App.vue +93 -93
  7. package/src/assets/img/SunClientDownload.png +0 -0
  8. package/src/assets/img/SunClientManual/1.png +0 -0
  9. package/src/assets/img/SunClientManual/2.png +0 -0
  10. package/src/assets/img/SunClientManual/3.png +0 -0
  11. package/src/assets/img/SunClientManual/4.png +0 -0
  12. package/src/assets/img/ToDeskDownload.png +0 -0
  13. package/src/assets/img/ToDeskManual/1.png +0 -0
  14. package/src/assets/img/ToDeskManual/2.png +0 -0
  15. package/src/assets/img/ToDeskManual/3.png +0 -0
  16. package/src/assets/img/ToDeskManual/4.png +0 -0
  17. package/src/assets/sound/newNote.mp3 +0 -0
  18. package/src/base-client/all.js +57 -57
  19. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +1157 -1159
  20. package/src/base-client/components/common/CreateQuery/index.md +42 -42
  21. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +540 -540
  22. package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -42
  23. package/src/base-client/components/common/CustomColumnsDrawer/index.md +46 -46
  24. package/src/base-client/components/common/FormGroupEdit/FormGroupEdit.vue +150 -150
  25. package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
  26. package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
  27. package/src/base-client/components/common/XAddForm/XAddForm.vue +323 -323
  28. package/src/base-client/components/common/XAddForm/index.md +60 -60
  29. package/src/base-client/components/common/XBadge/index.md +39 -39
  30. package/src/base-client/components/common/XCard/index.md +43 -43
  31. package/src/base-client/components/common/XForm/XForm.vue +275 -275
  32. package/src/base-client/components/common/XForm/XFormItem.vue +217 -217
  33. package/src/base-client/components/common/XForm/index.md +196 -196
  34. package/src/base-client/components/common/XFormCol/index.md +35 -35
  35. package/src/base-client/components/common/XFormTable/XFormTable.vue +407 -405
  36. package/src/base-client/components/common/XFormTable/index.md +89 -89
  37. package/src/base-client/components/common/XTable/XTable.vue +262 -262
  38. package/src/base-client/components/common/XTable/index.md +255 -255
  39. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +105 -105
  40. package/src/base-client/components/iot/CustomerDetailsView/CustomerDetailsView.vue +226 -226
  41. package/src/base-client/components/iot/CustomerDetailsView/index.md +41 -41
  42. package/src/base-client/components/iot/DataAnalysisUser/DataAnalysisUser.vue +127 -127
  43. package/src/base-client/components/iot/DataAnalysisView/DataAnalysisView.vue +244 -250
  44. package/src/base-client/components/iot/DataAnalysisViewGD/DataAnalysisViewGD.vue +548 -548
  45. package/src/base-client/components/iot/DeviceBrandDetailsView/DeviceBrandDetailsView.vue +453 -453
  46. package/src/base-client/components/iot/DeviceDetailsView/DeviceDetailsView.vue +231 -231
  47. package/src/base-client/components/iot/DeviceDetailsView/index.md +43 -43
  48. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsCount.vue +330 -330
  49. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsException.vue +57 -57
  50. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsInstruct.vue +122 -122
  51. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsInstructOperate.vue +122 -122
  52. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsMain.vue +225 -225
  53. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsRead.vue +135 -135
  54. package/src/base-client/components/iot/DeviceTypeDetailsView/DeviceTypeDetailsView.vue +277 -277
  55. package/src/base-client/components/iot/InstructDetailsView/InstructDetailsView.vue +472 -472
  56. package/src/base-client/components/iot/InstructDetailsView/index.md +45 -45
  57. package/src/base-client/components/iot/LogDetailsView/LogDetailsView.vue +380 -380
  58. package/src/base-client/components/iot/LogDetailsView/index.md +43 -43
  59. package/src/base-client/components/iot/MeterDetailsView/MeterDetailsView.vue +360 -360
  60. package/src/base-client/components/iot/MeterDetailsView/index.md +43 -43
  61. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsCount.vue +335 -335
  62. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsException.vue +185 -185
  63. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsHandPlan.vue +292 -292
  64. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsInstruct.vue +237 -237
  65. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsMain.vue +257 -257
  66. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsSellGas.vue +190 -190
  67. package/src/base-client/components/iot/WebmeterAnalysisView/WebmeterAnalysisView.vue +723 -723
  68. package/src/base-client/components/iot/WebmeterAnalysisView/index.md +48 -48
  69. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  70. package/src/base-client/components/system/DictionaryDetailsView/index.md +41 -41
  71. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +248 -248
  72. package/src/base-client/components/ticket/EmployeeDetailsView/EmployeeDetailsView.vue +371 -406
  73. package/src/base-client/components/ticket/TicketDetailsView/TicketDetailsView.vue +838 -486
  74. package/src/base-client/components/ticket/TicketDetailsView/part/TicketDetailsFlow.vue +261 -184
  75. package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +528 -303
  76. package/src/base-client/plugins/AppData.js +69 -69
  77. package/src/base-client/plugins/GetLoginInfoService.js +221 -221
  78. package/src/base-client/plugins/index.js +21 -21
  79. package/src/bootstrap.js +27 -27
  80. package/src/components/Ellipsis/Ellipsis.vue +64 -64
  81. package/src/components/Ellipsis/index.md +38 -38
  82. package/src/components/NumberInfo/index.md +43 -43
  83. package/src/components/STable/README.md +341 -341
  84. package/src/components/Trend/index.md +45 -45
  85. package/src/components/cache/AKeepAlive.js +172 -172
  86. package/src/components/checkbox/index.js +7 -7
  87. package/src/components/index.js +36 -36
  88. package/src/components/menu/menu.js +273 -273
  89. package/src/components/setting/Setting.vue +237 -237
  90. package/src/components/table/advance/AdvanceTable.vue +275 -275
  91. package/src/components/transition/PageToggleTransition.vue +97 -97
  92. package/src/layouts/CommonLayout.vue +42 -42
  93. package/src/layouts/PageLayout.vue +151 -151
  94. package/src/layouts/SinglePageView.vue +74 -74
  95. package/src/layouts/header/AdminHeader.vue +109 -109
  96. package/src/layouts/header/HeaderAvatar.vue +60 -60
  97. package/src/layouts/header/HeaderNotice.vue +97 -97
  98. package/src/layouts/tabs/TabsHead.vue +190 -190
  99. package/src/layouts/tabs/TabsView.vue +355 -355
  100. package/src/main.js +20 -20
  101. package/src/mock/goods/index.js +108 -108
  102. package/src/mock/index.js +12 -12
  103. package/src/mock/project/index.js +17 -17
  104. package/src/mock/user/current.js +13 -13
  105. package/src/mock/user/login.js +39 -39
  106. package/src/mock/workplace/index.js +15 -15
  107. package/src/pages/exception/403.vue +25 -25
  108. package/src/pages/exception/404.vue +25 -25
  109. package/src/pages/exception/500.vue +25 -25
  110. package/src/pages/login/Login.vue +194 -194
  111. package/src/pages/report/ReportTableHome.vue +28 -28
  112. package/src/pages/resourceManage/resourceManageMain.vue +55 -55
  113. package/src/pages/system/applyInstallView/Core.vue +570 -570
  114. package/src/pages/system/applyInstallView/index.vue +34 -34
  115. package/src/pages/system/dictionary/index.vue +41 -41
  116. package/src/pages/system/queryParams/index.vue +41 -41
  117. package/src/router/async/config.async.js +25 -25
  118. package/src/router/async/router.map.js +59 -59
  119. package/src/router/guards.js +104 -104
  120. package/src/router/index.js +27 -27
  121. package/src/services/api/EmployeeDetailsViewApi.js +3 -1
  122. package/src/services/api/TicketDetailsViewApi.js +9 -1
  123. package/src/services/api/common.js +37 -39
  124. package/src/services/api/restTools.js +23 -23
  125. package/src/services/dataSource.js +12 -12
  126. package/src/services/user.js +34 -34
  127. package/src/store/modules/setting.js +114 -114
  128. package/src/utils/i18n.js +80 -80
  129. package/src/utils/indexedDB.js +146 -146
  130. package/src/utils/request.js +197 -197
  131. package/src/utils/routerUtil.js +15 -2
  132. package/tests/unit/ReportTable.spec.js +15 -15
  133. package/vue.config.js +153 -153
  134. package/webpack.config.js +12 -12
@@ -1,184 +1,261 @@
1
- <template>
2
- <div>
3
- <a-card :bordered="false" title="工单流转历史" :loading="loading">
4
- <a-timeline ref="timeline" :pending="pendingText" :reverse="true" mode="alternate" style="max-width: 800px;margin: 0 auto;">
5
- <a-timeline-item v-if="index < 3 ? true : advanced" :key="index" v-for="(value,index) in workFLowList" color="green">
6
- <div style="color: #0d1a26;font-weight: 500;">
7
- <span style="font-size: 16px;">{{ value.name }}</span>
8
- <span style="margin-left: 5px;">({{ format(value.created_time,'yyyy-MM-dd hh:mm:ss') }} 至 {{ format(value.end_time,'yyyy-MM-dd hh:mm:ss') }})</span>
9
- </div>
10
- <div class="antd-pro-pages-profile-advanced-style-stepDescription" >
11
- 留言:{{ value.note }}
12
- </div>
13
- </a-timeline-item>
14
- </a-timeline>
15
- <a-col :md="!advanced && 8 || 24" :sm="24" v-if="workFLowList.length > 3">
16
- <span class="table-page-search-submitButtons" :style="advanced && { float: 'right', overflow: 'hidden' } || {} ">
17
- <a @click="toggleAdvanced" style="margin-left: 8px">
18
- {{ advanced ? '收起' : '展开' }}
19
- <a-icon :type="advanced ? 'up' : 'down'"/>
20
- </a>
21
- </span>
22
- </a-col>
23
- </a-card>
24
- </div>
25
- </template>
26
- <script>
27
- import { formatDate } from '@vue2-client/utils/util'
28
- import { mapState } from 'vuex'
29
- import { TicketDetailsViewApi } from '@vue2-client/services/api/TicketDetailsViewApi'
30
- import { post } from '@vue2-client/services/api/restTools'
31
-
32
- export default {
33
- name: 'TicketDetailsFlow',
34
- props: {
35
- ticketId: {
36
- type: String,
37
- required: true
38
- },
39
- disableCloseBtn: {
40
- type: Boolean,
41
- required: true
42
- },
43
- id: {
44
- type: Number,
45
- required: true
46
- }
47
- },
48
- computed: {
49
- ...mapState('setting', ['isMobile'])
50
- },
51
- data () {
52
- return {
53
- // 历史操作 展开/关闭
54
- advanced: false,
55
- workFLowList: [],
56
- loading: false,
57
- pendingText: '持续记录中...'
58
- }
59
- },
60
- mounted () {
61
- this.getTicketWorkFlowDetail(this.ticketId)
62
- },
63
- methods: {
64
- format (date, format) {
65
- return formatDate(date, format)
66
- },
67
- // 获取流转工单详情
68
- getTicketWorkFlowDetail (num) {
69
- if (this.disableCloseBtn) {
70
- this.pendingText = ''
71
- } else {
72
- this.pendingText = '持续记录中...'
73
- }
74
- this.loading = true
75
- return post(TicketDetailsViewApi.getTicketWorkFlowDetails, {
76
- ticketId: num
77
- }).then(res => {
78
- this.workFLowDetails = res
79
- // 解析workFLowDetails数据
80
- this.workFLowList = []
81
- const len = this.workFLowDetails.length
82
- for (let i = 0; i < len; i++) {
83
- this.workFLowList.push({
84
- name: this.workFLowDetails[i].name,
85
- created_time: this.workFLowDetails[i].created_time,
86
- end_time: this.workFLowDetails[i].end_time,
87
- note: this.workFLowDetails[i].note
88
- })
89
- }
90
- this.workFLowList = this.workFLowList.reverse()
91
- this.loading = false
92
- })
93
- },
94
- toggleAdvanced () {
95
- this.advanced = !this.advanced
96
- }
97
- },
98
- watch: {
99
- 'ticketId' () {
100
- this.getTicketWorkFlowDetail(this.ticketId)
101
- },
102
- 'disableCloseBtn' () {
103
- this.getTicketWorkFlowDetail(this.ticketId)
104
- },
105
- 'id' () {
106
- this.getTicketWorkFlowDetail(this.ticketId)
107
- }
108
- }
109
- }
110
- </script>
111
-
112
- <style lang="less" scoped>
113
- .card_view {
114
- width: 70%;
115
- min-width: 700px;
116
- }
117
-
118
- .card_view_mobile {
119
- width: 100%;
120
- }
121
-
122
- .card_details_title {
123
- margin: 4px 0;
124
- font-size: 14px;
125
- }
126
-
127
- .card_details_value {
128
- font-size: 16px;
129
- font-weight: bold;
130
- color: #444;
131
- margin-bottom: 0;
132
- overflow: hidden;
133
- text-overflow:ellipsis;
134
- white-space: nowrap;
135
- }
136
-
137
- .card_guid {
138
- width: 25%;
139
- text-align:left;
140
- }
141
-
142
- .card_guid_mobile {
143
- width: 50%;
144
- text-align:left;
145
- }
146
-
147
- .detail-layout {
148
- margin-left: 44px;
149
- }
150
- .text {
151
- color: rgba(0, 0, 0, .45);
152
- }
153
-
154
- .heading {
155
- color: rgba(0, 0, 0, .85);
156
- font-size: 20px;
157
- }
158
-
159
- .no-data {
160
- color: rgba(0, 0, 0, .25);
161
- text-align: center;
162
- line-height: 64px;
163
- font-size: 16px;
164
-
165
- i {
166
- font-size: 24px;
167
- margin-right: 16px;
168
- position: relative;
169
- top: 3px;
170
- }
171
- }
172
-
173
- .mobile {
174
- .detail-layout {
175
- margin-left: unset;
176
- }
177
- .text {
178
-
179
- }
180
- .status-list {
181
- text-align: left;
182
- }
183
- }
184
- </style>
1
+ <template>
2
+ <div>
3
+ <a-card :bordered="false" :loading="loading">
4
+ <a-timeline ref="timeline" :pending="pendingText" :reverse="true" mode="alternate" style="max-width: 800px;margin: 0 auto;">
5
+ <a-timeline-item v-if="index < 3 ? true : advanced" :key="index" v-for="(value,index) in workFLowList" color="green">
6
+ <div style="color: #0d1a26;font-weight: 500;">
7
+ <span style="font-size: 16px;">{{ value.name }}</span>
8
+ <span style="margin-left: 5px;">({{ format(value.created_time,'yyyy-MM-dd hh:mm:ss') }} 至 {{ format(value.end_time,'yyyy-MM-dd hh:mm:ss') }})</span>
9
+ </div>
10
+ <div class="antd-pro-pages-profile-advanced-style-stepDescription" style="margin-top: 5px;margin-bottom: 5px">
11
+ <span class="note" style="font-size: 1.1em;margin-top: 5px;margin-bottom: 5px">留言:{{ value.note }}</span>
12
+ </div>
13
+ <img
14
+ v-for="(item,n) in value.images"
15
+ :src="'data:image/png;base64,' + item.url"
16
+ :key="'s' + n"
17
+ @click="changePhotoClass(item)"
18
+ class="img_sm"
19
+ >
20
+ </a-timeline-item>
21
+ </a-timeline>
22
+ <a-col :md="!advanced && 8 || 24" :sm="24" v-if="workFLowList.length > 3">
23
+ <span class="table-page-search-submitButtons" :style="advanced && { float: 'right', overflow: 'hidden' } || {} ">
24
+ <a @click="toggleAdvanced" style="margin-left: 8px">
25
+ {{ advanced ? '收起' : '展开' }}
26
+ <a-icon :type="advanced ? 'up' : 'down'"/>
27
+ </a>
28
+ </span>
29
+ </a-col>
30
+ </a-card>
31
+ </div>
32
+ </template>
33
+ <script>
34
+ import { formatDate } from '@vue2-client/utils/util'
35
+ import { mapState } from 'vuex'
36
+ import { TicketDetailsViewApi } from '@vue2-client/services/api/TicketDetailsViewApi'
37
+ import { post } from '@vue2-client/services/api/restTools'
38
+
39
+ export default {
40
+ name: 'TicketDetailsFlow',
41
+ props: {
42
+ ticketId: {
43
+ type: String,
44
+ required: true
45
+ },
46
+ disableCloseBtn: {
47
+ type: Boolean,
48
+ required: true
49
+ },
50
+ id: {
51
+ type: Number,
52
+ required: true
53
+ }
54
+ },
55
+ computed: {
56
+ ...mapState('setting', ['isMobile'])
57
+ },
58
+ data () {
59
+ return {
60
+ // 历史操作 展开/关闭
61
+ advanced: false,
62
+ workFLowList: [],
63
+ loading: false,
64
+ pendingText: '持续记录中...',
65
+ // 工单流转留言,详细信息框可见性
66
+ workFlowDetailsVisible: false,
67
+ // 模态框中内容
68
+ modalData: {
69
+ note: '',
70
+ images: []
71
+ },
72
+ // 选中照片是否显示
73
+ selectedImageShow: false,
74
+ // 选中的照片
75
+ selectedImage: null
76
+ }
77
+ },
78
+ mounted () {
79
+ this.getTicketWorkFlowDetail(this.ticketId)
80
+ },
81
+ methods: {
82
+ format (date, format) {
83
+ return formatDate(date, format)
84
+ },
85
+ // 图像点击切换放大缩小
86
+ changePhotoClass (item) {
87
+ this.$emit('imageClick', item)
88
+ },
89
+ // 获取流转工单详情
90
+ getTicketWorkFlowDetail (num) {
91
+ if (this.disableCloseBtn) {
92
+ this.pendingText = ''
93
+ } else {
94
+ this.pendingText = '持续记录中...'
95
+ }
96
+ this.loading = true
97
+ return post(TicketDetailsViewApi.getTicketWorkFlowDetails, {
98
+ ticketId: num
99
+ }).then(res => {
100
+ this.workFLowDetails = res
101
+ // 解析workFLowDetails数据
102
+ this.workFLowList = []
103
+ const len = this.workFLowDetails.length
104
+ for (let i = 0; i < len; i++) {
105
+ if (this.workFLowDetails[i].note === undefined) {
106
+ this.workFLowDetails[i].note = ''
107
+ }
108
+ if (this.workFLowDetails[i].images === undefined) {
109
+ this.workFLowDetails[i].images = []
110
+ }
111
+ this.workFLowList.push({
112
+ name: this.workFLowDetails[i].name,
113
+ created_time: this.workFLowDetails[i].created_time,
114
+ end_time: this.workFLowDetails[i].end_time,
115
+ note: this.workFLowDetails[i].note,
116
+ images: this.workFLowDetails[i].images
117
+ })
118
+ for (let j = 0; j < this.workFLowDetails[i].images.length; j++) {
119
+ this.workFLowDetails[i].images[j].isLarge = false
120
+ }
121
+ }
122
+ this.workFLowList = this.workFLowList.reverse()
123
+ this.loading = false
124
+ })
125
+ },
126
+ toggleAdvanced () {
127
+ this.advanced = !this.advanced
128
+ }
129
+ },
130
+ watch: {
131
+ 'ticketId' () {
132
+ this.getTicketWorkFlowDetail(this.ticketId)
133
+ },
134
+ 'disableCloseBtn' () {
135
+ this.getTicketWorkFlowDetail(this.ticketId)
136
+ },
137
+ 'id' () {
138
+ this.getTicketWorkFlowDetail(this.ticketId)
139
+ }
140
+ }
141
+ }
142
+ </script>
143
+
144
+ <style lang="less" scoped>
145
+ .card_view {
146
+ width: 70%;
147
+ min-width: 700px;
148
+ }
149
+
150
+ .card_view_mobile {
151
+ width: 100%;
152
+ }
153
+
154
+ .card_details_title {
155
+ margin: 4px 0;
156
+ font-size: 14px;
157
+ }
158
+
159
+ .card_details_value {
160
+ font-size: 16px;
161
+ font-weight: bold;
162
+ color: #444;
163
+ margin-bottom: 0;
164
+ overflow: hidden;
165
+ text-overflow:ellipsis;
166
+ white-space: nowrap;
167
+ }
168
+
169
+ .card_guid {
170
+ width: 25%;
171
+ text-align:left;
172
+ }
173
+
174
+ .card_guid_mobile {
175
+ width: 50%;
176
+ text-align:left;
177
+ }
178
+
179
+ .detail-layout {
180
+ margin-left: 44px;
181
+ }
182
+ .text {
183
+ color: rgba(0, 0, 0, .45);
184
+ }
185
+
186
+ .heading {
187
+ color: rgba(0, 0, 0, .85);
188
+ font-size: 20px;
189
+ }
190
+
191
+ .no-data {
192
+ color: rgba(0, 0, 0, .25);
193
+ text-align: center;
194
+ line-height: 64px;
195
+ font-size: 16px;
196
+
197
+ i {
198
+ font-size: 24px;
199
+ margin-right: 16px;
200
+ position: relative;
201
+ top: 3px;
202
+ }
203
+ }
204
+
205
+ .mobile {
206
+ .detail-layout {
207
+ margin-left: unset;
208
+ }
209
+ .text {
210
+
211
+ }
212
+ .status-list {
213
+ text-align: left;
214
+ }
215
+ }
216
+
217
+ .img_sm {
218
+ border: rgba(84, 84, 84, 0.2) solid 1.5px;
219
+ border-radius: 5px;
220
+ padding: 10px;
221
+ width: 160px;
222
+ height: 120px;
223
+ }
224
+ .img_xl {
225
+ position: absolute;
226
+ top:0;bottom:0;left:0;right:0;
227
+ margin: auto;
228
+ width: 100%;
229
+ max-width: 1000px;
230
+ cursor: zoom-out;
231
+ z-index: 9999;
232
+ animation: imgZoomIn 0.4s;
233
+ -webkit-animation: imgZoomIn 0.4s;
234
+ }
235
+ @keyframes imgZoomIn
236
+ {
237
+ from {width: 160px;}
238
+ to {width: 100%;}
239
+ }
240
+ .img_sm:hover {
241
+ opacity: 0.6;
242
+ cursor: zoom-in;
243
+ }
244
+ .img_sm_dark{
245
+ filter: grayscale(100%);
246
+ opacity: 0.6;
247
+ border: rgba(84, 84, 84, 0.2) solid 1.5px;
248
+ border-radius: 5px;
249
+ padding: 10px;
250
+ width: 160px;
251
+ height: 120px;
252
+ }
253
+ .imgBackground {
254
+ position: absolute;
255
+ top:0;bottom:0;left:0;right:0;
256
+ width: 100%;
257
+ height: 100%;
258
+ z-index: 9998;
259
+ background-color: rgba(0,0,0,0.7);
260
+ }
261
+ </style>