vue2-client 1.2.51 → 1.2.52

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 (34) hide show
  1. package/.env +15 -14
  2. package/.eslintrc.js +82 -82
  3. package/CHANGELOG.md +4 -0
  4. package/package.json +1 -1
  5. package/src/base-client/all.js +64 -61
  6. package/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox.vue +225 -0
  7. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +111 -107
  8. package/src/base-client/components/common/CitySelect/CitySelect.vue +244 -0
  9. package/src/base-client/components/common/CitySelect/index.js +3 -0
  10. package/src/base-client/components/common/CitySelect/index.md +109 -0
  11. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +483 -1342
  12. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +770 -555
  13. package/src/base-client/components/common/Upload/Upload.vue +124 -124
  14. package/src/base-client/components/common/Upload/index.js +3 -3
  15. package/src/base-client/components/common/XAddForm/XAddForm.vue +38 -46
  16. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +316 -316
  17. package/src/base-client/components/common/XForm/XForm.vue +268 -275
  18. package/src/base-client/components/common/XForm/XFormItem.vue +348 -285
  19. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsException.vue +57 -57
  20. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsRead.vue +131 -131
  21. package/src/base-client/components/iot/WebmeterAnalysisView/WebmeterAnalysisView.vue +205 -205
  22. package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +532 -532
  23. package/src/base-client/plugins/AppData.js +72 -57
  24. package/src/config/CreateQueryConfig.js +298 -80
  25. package/src/pages/resourceManage/orgListManage.vue +40 -40
  26. package/src/router/async/config.async.js +26 -26
  27. package/src/router/index.js +27 -27
  28. package/src/services/api/manage.js +16 -14
  29. package/src/services/api/restTools.js +24 -24
  30. package/src/theme/default/style.less +47 -47
  31. package/src/utils/map-utils.js +28 -29
  32. package/src/utils/request.js +198 -198
  33. package/src/utils/util.js +222 -176
  34. package/vue.config.js +2 -2
@@ -1,57 +1,72 @@
1
- import { manageApi, post } from '@vue2-client/services/api'
2
-
3
- const GetAppDataService = {
4
- install (Vue) {
5
- // 给vue增添对话框显示方法
6
- Vue.$appdata = Vue.prototype.$appdata = GetAppDataService
7
- },
8
- async load () {
9
- const params = {
10
- orgList: []
11
- }
12
- await post(manageApi.getDictionaryValue, {}).then((res) => {
13
- Object.assign(params, res)
14
- const badgeItemArray = {}
15
- for (const key of Object.keys(params)) {
16
- badgeItemArray[key] = {}
17
- for (const item of params[key]) {
18
- if (item.status) {
19
- badgeItemArray[key][item.value] = {
20
- status: item.status,
21
- text: item.text
22
- }
23
- }
24
- }
25
- }
26
- // 追加参数
27
- localStorage.setItem(process.env.VUE_APP_DICTIONARY_KEY, JSON.stringify(params))
28
- localStorage.setItem(process.env.VUE_APP_BADGE_KEY, JSON.stringify(badgeItemArray))
29
- })
30
- },
31
- getDictionaryList (key) {
32
- const str = localStorage.getItem(process.env.VUE_APP_DICTIONARY_KEY)
33
- const object = JSON.parse(str)
34
- return object[key]
35
- },
36
- getParam (key, value) {
37
- const str = localStorage.getItem(process.env.VUE_APP_BADGE_KEY)
38
- const object = JSON.parse(str)
39
- const result = object[key]
40
- if (result && result.hasOwnProperty(value)) {
41
- return result[value]
42
- } else {
43
- return null
44
- }
45
- },
46
- getParams () {
47
- const str = localStorage.getItem(process.env.VUE_APP_DICTIONARY_KEY)
48
- const object = JSON.parse(str)
49
- return object
50
- },
51
- getSingleValues () {
52
- const str = localStorage.getItem(process.env.VUE_APP_BADGE_KEY)
53
- const object = JSON.parse(str)
54
- return object
55
- }
56
- }
57
- export default GetAppDataService
1
+ import { manageApi, post } from '@vue2-client/services/api'
2
+ import { handleTree } from '@vue2-client/utils/util'
3
+ const GetAppDataService = {
4
+ install (Vue) {
5
+ // 给vue增添对话框显示方法
6
+ Vue.$appdata = Vue.prototype.$appdata = GetAppDataService
7
+ },
8
+ async load () {
9
+ const params = {
10
+ orgList: []
11
+ }
12
+ await post(manageApi.getDictionaryValue, {}).then((res) => {
13
+ Object.assign(params, res)
14
+ const badgeItemArray = {}
15
+ for (const key of Object.keys(params)) {
16
+ badgeItemArray[key] = {}
17
+ for (const item of params[key]) {
18
+ if (item.status) {
19
+ badgeItemArray[key][item.value] = {
20
+ status: item.status,
21
+ text: item.text
22
+ }
23
+ }
24
+ }
25
+ }
26
+ // 追加参数
27
+ localStorage.setItem(process.env.VUE_APP_DICTIONARY_KEY, JSON.stringify(params))
28
+ localStorage.setItem(process.env.VUE_APP_BADGE_KEY, JSON.stringify(badgeItemArray))
29
+ })
30
+ // 获取省市区数据
31
+ await post(manageApi.getDivisionsOhChina, {}).then((res) => {
32
+ // 追加参数
33
+ localStorage.setItem(process.env.VUE_APP_DIVISIONSOHCHINA, JSON.stringify(res))
34
+ })
35
+ },
36
+ // 返回树形省市区
37
+ getDivisionsOhChinaForTree () {
38
+ const str = localStorage.getItem(process.env.VUE_APP_DIVISIONSOHCHINA)
39
+ return handleTree(JSON.parse(str), 'code', 'parentcode')
40
+ },
41
+ // 返回列表省市区
42
+ getDivisionsOhChinaForList () {
43
+ const str = localStorage.getItem(process.env.VUE_APP_DIVISIONSOHCHINA)
44
+ return JSON.parse(str)
45
+ },
46
+ getDictionaryList (key) {
47
+ const str = localStorage.getItem(process.env.VUE_APP_DICTIONARY_KEY)
48
+ const object = JSON.parse(str)
49
+ return object[key]
50
+ },
51
+ getParam (key, value) {
52
+ const str = localStorage.getItem(process.env.VUE_APP_BADGE_KEY)
53
+ const object = JSON.parse(str)
54
+ const result = object[key]
55
+ if (result && result.hasOwnProperty(value)) {
56
+ return result[value]
57
+ } else {
58
+ return null
59
+ }
60
+ },
61
+ getParams () {
62
+ const str = localStorage.getItem(process.env.VUE_APP_DICTIONARY_KEY)
63
+ const object = JSON.parse(str)
64
+ return object
65
+ },
66
+ getSingleValues () {
67
+ const str = localStorage.getItem(process.env.VUE_APP_BADGE_KEY)
68
+ const object = JSON.parse(str)
69
+ return object
70
+ }
71
+ }
72
+ export default GetAppDataService
@@ -1,80 +1,298 @@
1
- module.exports = {
2
- // 文件上传类型
3
- fileType: [
4
- {
5
- label: 'word文档',
6
- accept: '.doc,.docx,'
7
- },
8
- {
9
- label: 'excel表格',
10
- accept: '.xlsx,.xls,'
11
- },
12
- {
13
- label: 'ppt幻灯片',
14
- accept: '.ppt,.pptx,'
15
- },
16
- {
17
- label: '图片',
18
- accept: '.jpg,.jpeg,.ico,.gif,svg,.webp,.png,.bmp,.pjpeg,'
19
- },
20
- {
21
- label: '视频',
22
- accept: '.mp4,.mov,.m4v,.wmv,.asf,.asx,.rm,.rmvb,.3gp,.avi,.mkv,'
23
- },
24
- {
25
- label: '音频',
26
- accept: '.mp3,.cda,.wav,.aif,.aiff,.ape,.ra,'
27
- },
28
- {
29
- label: '压缩包',
30
- accept: '.zip,.rar,.7z,'
31
- },
32
- {
33
- label: '其他文本',
34
- accept: '.json,.txt,'
35
- },
36
- {
37
- label: '无限制',
38
- accept: '*'
39
- },
40
- ],
41
- // 查询方式
42
- queryType: [
43
- {
44
- label: '相等(=)', key: '=', match: 'input;select;radio;monthPicker;datePicker;cascader;selects'
45
- },
46
- {
47
- label: '不相等(!=)', key: '!=', match: 'input;select;radio;monthPicker;datePicker;cascader;selects'
48
- },
49
- {
50
- label: '全模糊(like)', key: 'LIKE', match: 'input;select;radio;cascader;selects'
51
- },
52
- {
53
- label: '左模糊(left like)', key: 'LEFT_LIKE', match: 'input;select;radio;cascader;selects'
54
- },
55
- {
56
- label: '右模糊(right like)', key: 'RIGHT_LIKE', match: 'input;select;radio;cascader;selects'
57
- },
58
- {
59
- label: '大于(>)', key: '>', match: 'input;select;radio;monthPicker;datePicker;cascader;selects'
60
- },
61
- {
62
- label: '大于等于(>=)', key: '>=', match: 'input;select;radio;monthPicker;datePicker;cascader;selects'
63
- },
64
- {
65
- label: '小于(<)', key: '<', match: 'input;select;radio;monthPicker;datePicker;cascader;selects'
66
- },
67
- {
68
- label: '小于等于(<=)', key: '<=', match: 'input;select;radio;monthPicker;datePicker;cascader;selects'
69
- },
70
- {
71
- label: '包含(in)', key: 'IN', match: 'checkbox;select;cascader;selects'
72
- },
73
- {
74
- label: '不包含(not in)', key: 'NOT_IN', match: 'checkbox;select;cascader;selects'
75
- },
76
- {
77
- label: '之间(between)', key: 'BETWEEN', match: 'rangePicker'
78
- }
79
- ]
80
- }
1
+ module.exports = {
2
+ // 数据模式类型
3
+ dataModeType: [
4
+ {
5
+ label: '渲染查询表单项',
6
+ value: 'queryForm',
7
+ noMatch: ['file', 'image', 'textarea']
8
+ },
9
+ {
10
+ label: '渲染表格列',
11
+ value: 'table',
12
+ noMatch: ['file', 'image']
13
+ },
14
+ {
15
+ label: '渲染新增/修改表单项',
16
+ value: 'addOrEditForm',
17
+ noMatch: []
18
+ },
19
+ {
20
+ label: 'SQL生成查询项',
21
+ value: 'sqlQueryItem',
22
+ noMatch: ['file']
23
+ },
24
+ {
25
+ label: 'SQL生成查询表达式',
26
+ value: 'sqlQueryCondition',
27
+ noMatch: ['file', 'image', 'textarea']
28
+ }
29
+ ],
30
+ // 表单类型
31
+ formType: [
32
+ {
33
+ label: '输入框', key: 'input'
34
+ },
35
+ {
36
+ label: '选择框', key: 'select'
37
+ },
38
+ {
39
+ label: '级联选择框', key: 'selects'
40
+ },
41
+ {
42
+ label: '多选框', key: 'checkbox'
43
+ },
44
+ {
45
+ label: '地点搜索框', key: 'addressSearch'
46
+ },
47
+ {
48
+ label: '省市区选择框', key: 'citySelect'
49
+ },
50
+ {
51
+ label: '单选框', key: 'radio'
52
+ },
53
+ {
54
+ label: '日期范围选择框', key: 'rangePicker'
55
+ },
56
+ {
57
+ label: '月份选择框', key: 'monthPicker'
58
+ },
59
+ {
60
+ label: '单日选择框', key: 'datePicker'
61
+ },
62
+ {
63
+ label: '文本域', key: 'textarea'
64
+ },
65
+ {
66
+ label: '文件上传', key: 'file'
67
+ },
68
+ {
69
+ label: '图片上传', key: 'image'
70
+ },
71
+ ],
72
+ // 文件上传类型
73
+ fileType: [
74
+ {
75
+ label: '无限制',
76
+ accept: '*'
77
+ },
78
+ {
79
+ label: 'word文档',
80
+ accept: '.doc,.docx,'
81
+ },
82
+ {
83
+ label: 'excel表格',
84
+ accept: '.xls,.xlsx,'
85
+ },
86
+ {
87
+ label: 'ppt幻灯片',
88
+ accept: '.ppt,.pptx,'
89
+ },
90
+ {
91
+ label: '图片',
92
+ accept: '.jpg,.jpeg,.ico,.gif,svg,.webp,.png,.bmp,.pjpeg,'
93
+ },
94
+ {
95
+ label: '视频',
96
+ accept: '.mp4,.mov,.m4v,.wmv,.asf,.asx,.rm,.rmvb,.3gp,.avi,.mkv,'
97
+ },
98
+ {
99
+ label: '音频',
100
+ accept: '.mp3,.cda,.wav,.aif,.aiff,.ape,.ra,'
101
+ },
102
+ {
103
+ label: '压缩包',
104
+ accept: '.zip,.rar,.7z,'
105
+ },
106
+ {
107
+ label: '文本/JSON',
108
+ accept: '.json,.txt,'
109
+ }
110
+ ],
111
+ // 表单校验类型
112
+ formRuleType: [
113
+ {
114
+ label: '字符串', key: 'string'
115
+ },
116
+ {
117
+ label: '数字', key: 'number'
118
+ },
119
+ {
120
+ label: '布尔值', key: 'boolean'
121
+ },
122
+ {
123
+ label: '正则表达式', key: 'regexp'
124
+ },
125
+ {
126
+ label: '整数', key: 'integer'
127
+ },
128
+ {
129
+ label: '小数', key: 'float'
130
+ },
131
+ {
132
+ label: '数组或集合', key: 'array'
133
+ },
134
+ {
135
+ label: '邮箱', key: 'email'
136
+ }
137
+ ],
138
+ // 作用域插槽类型
139
+ slotType: [
140
+ {
141
+ label: '不设置',
142
+ key: 'default',
143
+ match: ['input', 'select', 'selects', 'checkbox', 'radio', 'addressSearch', 'citySelect']
144
+ },
145
+ {
146
+ label: '文本溢出省略',
147
+ key: 'ellipsis',
148
+ match: ['input', 'citySelect', 'addressSearch']
149
+ },
150
+ {
151
+ label: '多彩徽标',
152
+ key: 'badge',
153
+ match: ['select', 'selects', 'citySelect', 'addressSearch']
154
+ },
155
+ {
156
+ label: '日期格式化',
157
+ key: 'date',
158
+ match: ['rangePicker']
159
+ },
160
+ {
161
+ label: '日期时间格式化',
162
+ key: 'dateTime',
163
+ match: ['rangePicker']
164
+ },
165
+ {
166
+ label: '操作列',
167
+ key: 'action',
168
+ match: [
169
+ 'input'
170
+ ]
171
+ },
172
+ ],
173
+ // 查询方式
174
+ queryType: [
175
+ {
176
+ label: '相等[=]',
177
+ key: '=',
178
+ match: ['input', 'select', 'radio', 'monthPicker', 'datePicker', 'selects', 'addressSearch', 'citySelect']
179
+ },
180
+ {
181
+ label: '不相等[!=]',
182
+ key: '!=',
183
+ match: ['input']
184
+ },
185
+ {
186
+ label: '全模糊[like]',
187
+ key: 'LIKE',
188
+ match: ['input']
189
+ },
190
+ {
191
+ label: '左模糊[left like]',
192
+ key: 'LEFT_LIKE',
193
+ match: ['input']
194
+ },
195
+ {
196
+ label: '右模糊[right like]',
197
+ key: 'RIGHT_LIKE',
198
+ match: ['input']
199
+ },
200
+ {
201
+ label: '大于[>]',
202
+ key: '>',
203
+ match: ['input', 'radio', 'monthPicker', 'datePicker']
204
+ },
205
+ {
206
+ label: '大于等于[>=]',
207
+ key: '>=',
208
+ match: ['input', 'radio', 'monthPicker', 'datePicker']
209
+ },
210
+ {
211
+ label: '小于[<]',
212
+ key: '<',
213
+ match: ['input', 'radio', 'monthPicker', 'datePicker']
214
+ },
215
+ {
216
+ label: '小于等于[<=]',
217
+ key: '<=',
218
+ match: ['input', 'radio', 'monthPicker', 'datePicker']
219
+ },
220
+ {
221
+ label: '包含[in]',
222
+ key: 'IN',
223
+ match: ['checkbox']
224
+ },
225
+ {
226
+ label: '不包含[not in]',
227
+ key: 'NOT_IN',
228
+ match: ['checkbox']
229
+ },
230
+ {
231
+ label: '之间[between]',
232
+ key: 'BETWEEN',
233
+ match: ['rangePicker']
234
+ }
235
+ ],
236
+ // 新增/修改场景类型
237
+ addOrEditType: [
238
+ {
239
+ label: '新增和修改',
240
+ key: 'all',
241
+ match: ['all']
242
+ },
243
+ {
244
+ label: '仅支持新增',
245
+ key: 'add',
246
+ match: ['all']
247
+ },
248
+ {
249
+ label: '仅支持修改',
250
+ key: 'edit',
251
+ match: ['all']
252
+ },
253
+ {
254
+ label: '静默新增(不生成表单)',
255
+ key: 'silenceAdd',
256
+ match: ['input', 'rangePicker']
257
+ },
258
+ {
259
+ label: '版本号',
260
+ key: 'version',
261
+ match: ['input']
262
+ }
263
+ ],
264
+ // 字段用途类型
265
+ silencePurposeType: [
266
+ {
267
+ label: '创建时间',
268
+ key: 'createTime'
269
+ },
270
+ {
271
+ label: '创建/操作人',
272
+ key: 'operator'
273
+ },
274
+ {
275
+ label: '组织机构ID',
276
+ key: 'orgId'
277
+ },
278
+ {
279
+ label: '自定义',
280
+ key: 'customize'
281
+ }
282
+ ],
283
+ // 数据源类型
284
+ selectDataType: [
285
+ {
286
+ label: '字典键',
287
+ key: 'key'
288
+ },
289
+ {
290
+ label: '固定集合',
291
+ key: 'fixArray'
292
+ },
293
+ {
294
+ label: '业务逻辑',
295
+ key: 'logic'
296
+ }
297
+ ]
298
+ }
@@ -2,49 +2,49 @@
2
2
  <div id="orgListManage">
3
3
  <a-card :bordered="false">
4
4
  <!--<a-row :gutter="48">-->
5
- <!--<a-col>-->
6
- <!--<a-space>-->
7
- <!--<a-button type="primary" @click="addItem" v-if="!buttonState || buttonState.add">-->
8
- <!--<a-icon :style="iconStyle" type="plus"/>新增-->
9
- <!--</a-button>-->
10
- <!--<a-button-->
11
- <!--v-if="!buttonState || buttonState.edit"-->
12
- <!--:loading="editDataLoading"-->
13
- <!--:disabled="!isModify"-->
14
- <!--class="btn-success"-->
15
- <!--type="dashed"-->
16
- <!--@click="editItem">-->
17
- <!--<a-icon :style="iconStyle" type="edit"/>修改-->
18
- <!--</a-button>-->
19
- <!--<a-button :disabled="!isDelete" type="danger" @click="deleteItem" v-if="!buttonState || buttonState.delete">-->
20
- <!--<a-icon :style="iconStyle" type="delete"/>删除-->
21
- <!--</a-button>-->
22
- <!--</a-space>-->
23
- <!--<span :style="{ float: 'right', overflow: 'hidden', marginBottom: '8px' }">-->
24
- <!--<a-button-group>-->
25
- <!--<a-button @click="toggleIsFormShow">-->
26
- <!--<a-icon :style="iconStyle" type="vertical-align-top"/>-->
27
- <!--</a-button>-->
28
- <!--<a-button @click="refresh(true)">-->
29
- <!--<a-icon :style="iconStyle" type="reload" />-->
30
- <!--</a-button>-->
31
- <!--<a-button @click="showDrawer">-->
32
- <!--<a-icon :style="iconStyle" type="table" />-->
33
- <!--</a-button>-->
34
- <!--<a-button @click="exports">-->
35
- <!--<a-icon :style="iconStyle" type="cloud-download"/>-->
36
- <!--</a-button>-->
37
- <!--</a-button-group>-->
38
- <!--</span>-->
39
- <!--</a-col>-->
5
+ <!--<a-col>-->
6
+ <!--<a-space>-->
7
+ <!--<a-button type="primary" @click="addItem" v-if="!buttonState || buttonState.add">-->
8
+ <!--<a-icon :style="iconStyle" type="plus"/>新增-->
9
+ <!--</a-button>-->
10
+ <!--<a-button-->
11
+ <!--v-if="!buttonState || buttonState.edit"-->
12
+ <!--:loading="editDataLoading"-->
13
+ <!--:disabled="!isModify"-->
14
+ <!--class="btn-success"-->
15
+ <!--type="dashed"-->
16
+ <!--@click="editItem">-->
17
+ <!--<a-icon :style="iconStyle" type="edit"/>修改-->
18
+ <!--</a-button>-->
19
+ <!--<a-button :disabled="!isDelete" type="danger" @click="deleteItem" v-if="!buttonState || buttonState.delete">-->
20
+ <!--<a-icon :style="iconStyle" type="delete"/>删除-->
21
+ <!--</a-button>-->
22
+ <!--</a-space>-->
23
+ <!--<span :style="{ float: 'right', overflow: 'hidden', marginBottom: '8px' }">-->
24
+ <!--<a-button-group>-->
25
+ <!--<a-button @click="toggleIsFormShow">-->
26
+ <!--<a-icon :style="iconStyle" type="vertical-align-top"/>-->
27
+ <!--</a-button>-->
28
+ <!--<a-button @click="refresh(true)">-->
29
+ <!--<a-icon :style="iconStyle" type="reload" />-->
30
+ <!--</a-button>-->
31
+ <!--<a-button @click="showDrawer">-->
32
+ <!--<a-icon :style="iconStyle" type="table" />-->
33
+ <!--</a-button>-->
34
+ <!--<a-button @click="exports">-->
35
+ <!--<a-icon :style="iconStyle" type="cloud-download"/>-->
36
+ <!--</a-button>-->
37
+ <!--</a-button-group>-->
38
+ <!--</span>-->
39
+ <!--</a-col>-->
40
40
  <!--</a-row>-->
41
41
  <a-table
42
- rowKey="id"
43
- size="middle"
44
- bordered
45
- :pagination="false"
46
42
  :columns="columns"
47
- :data-source="funTree">
43
+ :data-source="funTree"
44
+ :pagination="false"
45
+ bordered
46
+ rowKey="id"
47
+ size="middle">
48
48
  </a-table>
49
49
  </a-card>
50
50
  </div>
@@ -1,26 +1,26 @@
1
- import routerMap from './router.map'
2
- import { parseRoutes } from '@vue2-client/utils/routerUtil'
3
-
4
- // 异步路由配置
5
- const routesConfig = [
6
- 'login',
7
- 'submitTicket',
8
- 'root',
9
- {
10
- router: 'exp404',
11
- path: '*',
12
- name: '404'
13
- },
14
- {
15
- router: 'exp403',
16
- path: '/403',
17
- name: '403'
18
- }
19
- ]
20
-
21
- const options = {
22
- mode: 'history',
23
- routes: parseRoutes(routesConfig, routerMap)
24
- }
25
-
26
- export default options
1
+ import routerMap from './router.map'
2
+ import { parseRoutes } from '@vue2-client/utils/routerUtil'
3
+
4
+ // 异步路由配置
5
+ const routesConfig = [
6
+ 'login',
7
+ 'submitTicket',
8
+ 'root',
9
+ {
10
+ router: 'exp404',
11
+ path: '*',
12
+ name: '404'
13
+ },
14
+ {
15
+ router: 'exp403',
16
+ path: '/403',
17
+ name: '403'
18
+ }
19
+ ]
20
+
21
+ const options = {
22
+ mode: 'history',
23
+ routes: parseRoutes(routesConfig, routerMap)
24
+ }
25
+
26
+ export default options