@netang/quasar 0.0.20

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 (80) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +17 -0
  3. package/components/column-title/index.vue +32 -0
  4. package/components/dialog/components/index.js +6 -0
  5. package/components/dialog/components/move-to-tree/index.vue +150 -0
  6. package/components/dialog/index.vue +330 -0
  7. package/components/dialog-table/index.vue +92 -0
  8. package/components/dragger/index.vue +202 -0
  9. package/components/drawer/index.vue +262 -0
  10. package/components/field-date/index.vue +844 -0
  11. package/components/field-date/methods.js +100 -0
  12. package/components/field-table/index.vue +468 -0
  13. package/components/field-text/index.vue +167 -0
  14. package/components/field-tree/index.vue +435 -0
  15. package/components/input-number/index.vue +324 -0
  16. package/components/input-number/number.js +67 -0
  17. package/components/input-price-cent/index.vue +213 -0
  18. package/components/input-price-yuan/index.vue +179 -0
  19. package/components/layout/index.vue +119 -0
  20. package/components/list-menu/index.vue +137 -0
  21. package/components/list-menu-item/index.vue +79 -0
  22. package/components/power-data/index.vue +667 -0
  23. package/components/search/index.vue +176 -0
  24. package/components/search-item/index.vue +219 -0
  25. package/components/select/index.vue +71 -0
  26. package/components/select-filter/index.vue +75 -0
  27. package/components/table/index.vue +347 -0
  28. package/components/table-column-fixed/index.vue +68 -0
  29. package/components/table-pagination/index.vue +83 -0
  30. package/components/table-summary/index.vue +91 -0
  31. package/components/thumbnail/index.vue +87 -0
  32. package/components/toolbar/container.vue +31 -0
  33. package/components/toolbar/index.vue +405 -0
  34. package/components/uploader/index.vue +157 -0
  35. package/components/uploader-query/index.vue +731 -0
  36. package/package.json +21 -0
  37. package/sass/common.scss +165 -0
  38. package/sass/index.scss +14 -0
  39. package/sass/line.scss +39 -0
  40. package/sass/quasar/btn.scss +46 -0
  41. package/sass/quasar/common.scss +3 -0
  42. package/sass/quasar/dialog.scss +7 -0
  43. package/sass/quasar/drawer.scss +6 -0
  44. package/sass/quasar/field.scss +210 -0
  45. package/sass/quasar/loading.scss +6 -0
  46. package/sass/quasar/menu.scss +8 -0
  47. package/sass/quasar/table.scss +112 -0
  48. package/sass/quasar/toolbar.scss +22 -0
  49. package/store/index.js +32 -0
  50. package/utils/$area.js +387 -0
  51. package/utils/$auth.js +135 -0
  52. package/utils/$dialog.js +43 -0
  53. package/utils/$role.js +807 -0
  54. package/utils/$rule.js +17 -0
  55. package/utils/$search.js +336 -0
  56. package/utils/$table.js +802 -0
  57. package/utils/$tree.js +620 -0
  58. package/utils/$uploader.js +1029 -0
  59. package/utils/alert.js +10 -0
  60. package/utils/bus.js +6 -0
  61. package/utils/config.js +22 -0
  62. package/utils/confrim.js +11 -0
  63. package/utils/dict.js +44 -0
  64. package/utils/getData.js +61 -0
  65. package/utils/getFile.js +30 -0
  66. package/utils/getImage.js +136 -0
  67. package/utils/getTime.js +94 -0
  68. package/utils/http.js +251 -0
  69. package/utils/loading.js +13 -0
  70. package/utils/notify.js +13 -0
  71. package/utils/previewImage.js +8 -0
  72. package/utils/symbols.js +3 -0
  73. package/utils/timestamp.js +18 -0
  74. package/utils/toast.js +13 -0
  75. package/utils/uploader/aliyun.js +6 -0
  76. package/utils/uploader/local.js +8 -0
  77. package/utils/uploader/qiniu.js +311 -0
  78. package/utils/useAuth.js +26 -0
  79. package/utils/useRouter.js +36 -0
  80. package/utils/useUploader.js +58 -0
@@ -0,0 +1,667 @@
1
+ <template>
2
+ <div class="col-xs-12 row q-col-gutter-lg">
3
+
4
+ <!-- 栏目标题 -->
5
+ <n-column-title label="数据配置" />
6
+
7
+ <div class="col-xs-12 col-sm-6 col-md-3">
8
+ <slot/>
9
+ </div>
10
+
11
+ <template v-if="dataType">
12
+
13
+ <!-- 设置跳转页面 -->
14
+ <div class="col-xs-12 col-sm-6 col-md-3" v-if="dataType === dicts.POWER_DATA_TYPE__OPEN && routeType === 0">
15
+
16
+ <!-- 树 -->
17
+ <n-field-tree
18
+ class="n-field-fieldset"
19
+ label="跳转页面"
20
+ outlined
21
+ clearable
22
+ stack-label
23
+ dense
24
+
25
+ v-model="formData.toPage"
26
+ :nodes="treeNodes"
27
+ :expanded="treeExpanded"
28
+ strict
29
+ accordion
30
+ />
31
+ </div>
32
+
33
+ <!-- 非表单显示 -->
34
+ <template v-if="dataType !== dicts.POWER_DATA_TYPE__FORM">
35
+
36
+ <!-- 显示类型 -->
37
+ <div class="col-xs-12 col-sm-6 col-md-3">
38
+ <q-select
39
+ class="n-field-fieldset"
40
+ label="显示类型"
41
+ v-model="formData.show"
42
+ :options="[
43
+ { label: '始终显示', value: '' },
44
+ { label: '单选显示', value: 'single' },
45
+ { label: '多选显示', value: 'multi' },
46
+ ]"
47
+ map-options
48
+ emit-value
49
+ outlined
50
+ stack-label
51
+ dense
52
+ options-dense
53
+ />
54
+ </div>
55
+
56
+ <!-- 是否固定列 -->
57
+ <div class="col-xs-12 col-sm-6 col-md-3">
58
+ <q-select
59
+ class="n-field-fieldset"
60
+ label="是否固定列"
61
+ v-model="formData.fixed"
62
+ :options="[
63
+ { label: '否', value: false },
64
+ { label: '是', value: true },
65
+ ]"
66
+ map-options
67
+ emit-value
68
+ outlined
69
+ stack-label
70
+ dense
71
+ options-dense
72
+ />
73
+ </div>
74
+
75
+ <!-- 是否双击 -->
76
+ <div class="col-xs-12 col-sm-6 col-md-3">
77
+ <q-select
78
+ class="n-field-fieldset"
79
+ label="是否双击"
80
+ v-model="formData.dbclick"
81
+ :options="[
82
+ { label: '否', value: false },
83
+ { label: '是', value: true },
84
+ ]"
85
+ map-options
86
+ emit-value
87
+ outlined
88
+ stack-label
89
+ dense
90
+ options-dense
91
+ />
92
+ </div>
93
+ </template>
94
+
95
+ <template v-if="dataType !== dicts.POWER_DATA_TYPE__OPEN">
96
+
97
+ <!-- 是否确认 -->
98
+ <div class="col-xs-12 col-sm-6 col-md-3">
99
+ <q-select
100
+ class="n-field-fieldset"
101
+ label="提交前确认"
102
+ v-model="formData.confirm"
103
+ :options="[
104
+ { label: '否', value: 0 },
105
+ { label: '提交前确认', value: 1 },
106
+ { label: '提交前确认登录密码', value: 2 },
107
+ ]"
108
+ map-options
109
+ emit-value
110
+ outlined
111
+ stack-label
112
+ dense
113
+ options-dense
114
+ />
115
+ </div>
116
+
117
+ <!-- 确认提示内容 -->
118
+ <div class="col-xs-12 col-sm-6 col-md-3" v-if="formData.confirm > 0">
119
+ <q-input
120
+ class="n-field-fieldset"
121
+ label="确认提示内容"
122
+ v-model="formData.confirmContent"
123
+ :placeholder="formData.confirm === 1 ? '确认要执行该操作吗?' : '重要操作,请输入登录密码并确认后操作'"
124
+ outlined
125
+ clearable
126
+ stack-label
127
+ dense
128
+ />
129
+ </div>
130
+
131
+ <!-- 请求成功执行 -->
132
+ <div class="col-xs-12 col-sm-6 col-md-3">
133
+ <q-select
134
+ class="n-field-fieldset"
135
+ label="请求成功执行"
136
+ v-model="formData.requestSuccess.type"
137
+ :options="dataType === dicts.POWER_DATA_TYPE__FORM ?
138
+ [
139
+ { label: '无', value: '' },
140
+ { label: '关闭窗口', value: 'close' },
141
+ { label: '关闭窗口并跳转页面', value: 'closePush' },
142
+ { label: '关闭窗口、跳转并刷新页面', value: 'closePushRefresh' },
143
+ { label: '重置表单', value: 'resetForm' },
144
+ ] :
145
+ [
146
+ { label: '无', value: '' },
147
+ { label: '关闭窗口', value: 'close' },
148
+ { label: '关闭窗口并跳转页面', value: 'closePush' },
149
+ { label: '关闭窗口、跳转并刷新页面', value: 'closePushRefresh' },
150
+ { label: '刷新表格', value: 'refreshTable' },
151
+ ]
152
+ "
153
+ map-options
154
+ emit-value
155
+ outlined
156
+ stack-label
157
+ dense
158
+ options-dense
159
+ />
160
+ </div>
161
+
162
+ <!-- 请求成功参数 -->
163
+ <div class="col-xs-12 col-sm-6 col-md-3" v-if="utils.indexOf(['closePush', 'closePushRefresh'], formData.requestSuccess.type) > -1">
164
+
165
+ <!-- 树 -->
166
+ <n-field-tree
167
+ class="n-field-fieldset"
168
+ label="跳转页面"
169
+ outlined
170
+ clearable
171
+ stack-label
172
+ dense
173
+
174
+ v-model="formData.requestSuccess.params"
175
+ :nodes="treeNodes"
176
+ :expanded="treeExpanded"
177
+ strict
178
+ accordion
179
+ />
180
+ </div>
181
+
182
+ </template>
183
+
184
+ <template v-if="dataType !== dicts.POWER_DATA_TYPE__FORM">
185
+
186
+ <!-- 栏目标题 -->
187
+ <n-column-title label="请求表格参数" tooltip='示例:id / sku_id AS sku' />
188
+
189
+ <!-- 表格请求参数 -->
190
+ <div class="col-xs-12">
191
+ <q-list class="rounded-borders" style="max-width:800px" bordered>
192
+ <q-item
193
+ v-for="(item, itemIndex) in formData.requestQuery.table"
194
+ >
195
+ <q-item-section>
196
+ <q-input
197
+ class="n-field-fieldset"
198
+ v-model="formData.requestQuery.table[itemIndex]"
199
+ placeholder="请输入参数"
200
+ outlined
201
+ clearable
202
+ stack-label
203
+ dense
204
+ />
205
+ </q-item-section>
206
+
207
+ <q-item-section side>
208
+ <div class="text-grey-8 q-gutter-xs">
209
+ <q-btn icon="add" size="12px" flat dense round @click="utils.arr.add(formData.requestQuery.table, itemIndex, '')" />
210
+ <q-btn icon="remove" size="12px" flat dense round @click="utils.arr.delete(formData.requestQuery.table, itemIndex)" :disable="itemIndex === 0" />
211
+ <q-btn icon="expand_less" size="12px" flat dense round @click="utils.arr.up(formData.requestQuery.table, itemIndex)" :disable="itemIndex === 0" />
212
+ <q-btn icon="expand_more" size="12px" flat dense round @click="utils.arr.down(formData.requestQuery.table, itemIndex)" :disable="formData.requestQuery.table.length <= itemIndex + 1" />
213
+ </div>
214
+ </q-item-section>
215
+ </q-item>
216
+ </q-list>
217
+ </div>
218
+ </template>
219
+
220
+ <!-- 栏目标题 -->
221
+ <n-column-title label="请求传参参数" tooltip='示例:id / sku_id AS sku / { "type": 1, "name": "age" }' />
222
+
223
+ <!-- 表格请求参数 -->
224
+ <div class="col-xs-12">
225
+ <q-list class="rounded-borders" style="max-width:800px" bordered>
226
+ <q-item
227
+ v-for="(item, itemIndex) in formData.requestQuery.query"
228
+ >
229
+ <q-item-section>
230
+ <q-input
231
+ class="n-field-fieldset"
232
+ v-model="formData.requestQuery.query[itemIndex]"
233
+ placeholder="请输入参数"
234
+ outlined
235
+ clearable
236
+ stack-label
237
+ dense
238
+ />
239
+ </q-item-section>
240
+
241
+ <q-item-section side>
242
+ <div class="text-grey-8 q-gutter-xs">
243
+ <q-btn icon="add" size="12px" flat dense round @click="utils.arr.add(formData.requestQuery.query, itemIndex, '')" />
244
+ <q-btn icon="remove" size="12px" flat dense round @click="utils.arr.delete(formData.requestQuery.query, itemIndex)" :disable="itemIndex === 0" />
245
+ <q-btn icon="expand_less" size="12px" flat dense round @click="utils.arr.up(formData.requestQuery.query, itemIndex)" :disable="itemIndex === 0" />
246
+ <q-btn icon="expand_more" size="12px" flat dense round @click="utils.arr.down(formData.requestQuery.query, itemIndex)" :disable="formData.requestQuery.query.length <= itemIndex + 1" />
247
+ </div>
248
+ </q-item-section>
249
+ </q-item>
250
+ </q-list>
251
+ </div>
252
+
253
+ <!-- 栏目标题 -->
254
+ <n-column-title label="自定义参数" tooltip='示例:123 / id / [1, 2, 3] / { "type": 1, "name": "age" }' />
255
+
256
+ <!-- 自定义参数 -->
257
+ <div class="col-xs-12">
258
+ <q-input
259
+ style="max-width:800px"
260
+ class="n-field-fieldset"
261
+ v-model="formData.params"
262
+ placeholder="请输入参数"
263
+ outlined
264
+ clearable
265
+ stack-label
266
+ dense
267
+ autogrow
268
+ />
269
+ </div>
270
+ </template>
271
+ </div>
272
+ </template>
273
+
274
+ <script>
275
+ import { ref, watch } from 'vue'
276
+
277
+ import _isString from 'lodash/isString'
278
+ import _isPlainObject from 'lodash/isPlainObject'
279
+
280
+ export default {
281
+
282
+ /**
283
+ * 声明属性
284
+ */
285
+ props: {
286
+ // 值
287
+ modelValue: String,
288
+ // 数据类型
289
+ dataType: Number,
290
+ // 路由类型
291
+ routeType: Number,
292
+ // 树节点数组
293
+ treeNodes: Array,
294
+ // 树展开节点
295
+ treeExpanded: Array,
296
+ },
297
+
298
+ /**
299
+ * 组合式
300
+ */
301
+ setup(props) {
302
+
303
+ // ==========【数据】=============================================================================================
304
+
305
+ // 表单数据
306
+ const formData = ref(formatModelValue())
307
+
308
+ // ==========【监听数据】=========================================================================================
309
+
310
+ /**
311
+ * 监听值
312
+ */
313
+ watch(()=>props.modelValue, function() {
314
+
315
+ // 格式化传值
316
+ formData.value = formatModelValue()
317
+ })
318
+
319
+ /**
320
+ * 监听数据类型
321
+ */
322
+ watch(()=>props.dataType, function (val) {
323
+
324
+ // 如果数据类型为新窗口
325
+ if (val === dicts.POWER_DATA_TYPE__FORM) {
326
+ if (formData.value.requestSuccess.type === 'refreshTable') {
327
+ formData.value.requestSuccess.type = ''
328
+ formData.value.requestSuccess.params = ''
329
+ }
330
+
331
+ // 如果数据类型为数据
332
+ } else if (val === dicts.POWER_DATA_TYPE__DATA) {
333
+ if (formData.value.requestSuccess.type === 'resetForm') {
334
+ formData.value.requestSuccess.type = ''
335
+ formData.value.requestSuccess.params = ''
336
+ }
337
+ }
338
+ })
339
+
340
+ // ==========【方法】============================================================================================
341
+
342
+ /**
343
+ * 格式化传值
344
+ */
345
+ function formatModelValue() {
346
+
347
+ let obj = {}
348
+
349
+ if (utils.isJson(props.modelValue)) {
350
+ const data = utils.json.parse(props.modelValue)
351
+ if (utils.isValidObject(data)) {
352
+ obj = data
353
+ }
354
+ }
355
+
356
+ // 格式化参数
357
+ if (
358
+ _.has(obj, 'requestSuccess')
359
+ && ! utils.isValidObject(obj.requestSuccess)
360
+ ) {
361
+ delete(obj.requestSuccess)
362
+ }
363
+
364
+ if (
365
+ _.has(obj, 'requestQuery')
366
+ && ! utils.isValidObject(obj.requestQuery)
367
+ ) {
368
+ delete(obj.requestQuery)
369
+ }
370
+
371
+ obj = _.merge({
372
+ // 显示类型, 可选 single / multi / 空(默认显示)
373
+ show: '',
374
+ // 跳转页面 id
375
+ toPage: '',
376
+ // 是否固定列
377
+ fixed: false,
378
+ // 是否双击: 可选 true / false
379
+ dbclick: false,
380
+ // 是否确认: 可选 true / false / 字符串(确认提示的内容)
381
+ confirm: false,
382
+ // 是否确认密码: 可选 true / false / 字符串(确认提示的内容)
383
+ confirmPassword: false,
384
+ // 请求参数
385
+ requestQuery: {
386
+ // 表格: 字符串组成的数组, 如: [ "id", "sku_id AS sku" ]
387
+ table: [],
388
+ // 参数: 字符串 / 对象(自定义参数) 组成的数组, 如: [ "id", "sku_id AS sku", { "type": 1, "name": "age" } ]
389
+ // query: [],
390
+ },
391
+ // 请求成功执行
392
+ requestSuccess: {
393
+ // 类型, 可选 close / closePush / closePushRefresh / resetForm / refreshTable / 空(不执行)
394
+ type: '',
395
+ // 参数
396
+ params: '',
397
+ },
398
+ // 自定义参数, 任意类型
399
+ // params: '',
400
+ }, obj)
401
+
402
+ // 【格式化是否确认参数】
403
+ // ------------------------------------------------------------
404
+ // 是否确认, 可选 0:无 / 1:提交前确认 / 2:提交前确认登录密码
405
+ let confirm = 0
406
+ // 确认提示内容
407
+ obj.confirmContent = ''
408
+ if (obj.confirmPassword) {
409
+ confirm = 2
410
+ if (utils.isValidString(obj.confirmPassword)) {
411
+ obj.confirmContent = obj.confirmPassword
412
+ }
413
+ } else if (obj.confirm) {
414
+ confirm = 1
415
+ if (utils.isValidString(obj.confirm)) {
416
+ obj.confirmContent = obj.confirm
417
+ }
418
+ }
419
+ obj.confirm = confirm
420
+ delete obj.confirmPassword
421
+
422
+ // 【格式化请求参数中的 table】
423
+ // ------------------------------------------------------------
424
+ if (utils.isValidString(obj.requestQuery.table)) {
425
+ obj.requestQuery.table = [obj.requestQuery.table]
426
+ } else if (! utils.isValidArray(obj.requestQuery.table)) {
427
+ obj.requestQuery.table = ['']
428
+ }
429
+
430
+ // 【格式化请求参数中的 query】
431
+ // ------------------------------------------------------------
432
+ if (_.has(obj.requestQuery, 'query')) {
433
+ // 如果是有效值
434
+ if (utils.isValidValue(obj.requestQuery.query)) {
435
+ obj.requestQuery.query = [obj.requestQuery.query]
436
+
437
+ // 如果是对象
438
+ } else if (utils.isValidObject(obj.requestQuery.query)) {
439
+ obj.requestQuery.query = [utils.json.stringify(obj.requestQuery.query)]
440
+
441
+ // 如果是数组
442
+ } else if (utils.isValidArray(obj.requestQuery.query)) {
443
+ const query = []
444
+ utils.forEach(obj.requestQuery.query, function(item, key) {
445
+
446
+ // 如果是有效值
447
+ if (utils.isValidValue(item)) {
448
+ query.push(item)
449
+
450
+ // 如果是对象
451
+ } else if (utils.isValidObject(item)) {
452
+ query.push(utils.json.stringify(item))
453
+ }
454
+ })
455
+ obj.requestQuery.query = query.length ? query : ['']
456
+
457
+ // 否则没有数据
458
+ } else {
459
+ obj.requestQuery.query = ['']
460
+ }
461
+
462
+ // 否则没有数据
463
+ } else {
464
+ obj.requestQuery.query = ['']
465
+ }
466
+
467
+ // 【格式化其他参数】
468
+ // ------------------------------------------------------------
469
+ if (! _.has(obj, 'params')) {
470
+ obj.params = ''
471
+
472
+ // 如果不是字符串
473
+ } else if (! utils.isValidString(obj.params)) {
474
+ if (utils.isValidObject(obj.params)) {
475
+ obj.params = utils.json.stringify(obj.params)
476
+ } else if (utils.isValidArray(obj.params)) {
477
+ obj.params = utils.json.stringify(obj.params)
478
+ } else {
479
+ obj.params = ''
480
+ }
481
+ }
482
+ // ------------------------------------------------------------
483
+
484
+ return obj
485
+ }
486
+
487
+ /**
488
+ * 获取格式化后的表单数据
489
+ */
490
+ function getValue() {
491
+
492
+ const obj = {}
493
+
494
+ // 获取表单数据
495
+ const data = formData.value
496
+
497
+ // 如果有选择数据类型
498
+ if (props.dataType) {
499
+
500
+ // 设置请求参数
501
+ function setRequestQuery(field) {
502
+
503
+ // 请求表格参数
504
+ const lists = []
505
+
506
+ utils.forEach(data.requestQuery[field], function(value) {
507
+
508
+ value = formatParams(value)
509
+
510
+ // 如果有值
511
+ if (utils.isRequired(value)) {
512
+
513
+ // 如果为表格
514
+ if (field === 'table') {
515
+
516
+ if (Array.isArray(value) || _isPlainObject(value)) {
517
+
518
+ // 轻提示
519
+ utils.toast({
520
+ message: '请求列表参数格式不能是数组或对象',
521
+ })
522
+ return false
523
+ }
524
+
525
+ // 否则为参数
526
+ } else if (Array.isArray(value)) {
527
+ // 轻提示
528
+ utils.toast({
529
+ message: '请求传参参数格式不能是数组',
530
+ })
531
+ return false
532
+ }
533
+
534
+ // 如果是字符串
535
+ lists.push(value)
536
+ }
537
+ })
538
+
539
+ if (lists.length) {
540
+ if (! _.has(obj, 'requestQuery')) {
541
+ obj.requestQuery = {}
542
+ }
543
+ obj.requestQuery[field] = lists.length === 1 ? lists[0] : lists
544
+ }
545
+
546
+ return true
547
+ }
548
+
549
+ // 格式化其他参数
550
+ function formatParams(value) {
551
+ value = utils.trimString(value)
552
+ if (
553
+ (value.startsWith('[') || value.startsWith('{'))
554
+ && utils.isJson(value)
555
+ ) {
556
+ value = utils.json.parse(value)
557
+
558
+ if (! Array.isArray(value) && ! _isPlainObject(value)) {
559
+ return ''
560
+ }
561
+ }
562
+ return value
563
+ }
564
+
565
+ // 如果非表单显示
566
+ // --------------------------------------------------
567
+ if (props.dataType !== dicts.POWER_DATA_TYPE__FORM) {
568
+
569
+ // 显示类型
570
+ if (data.show) {
571
+ obj.show = data.show
572
+ }
573
+
574
+ // 是否固定列
575
+ if (data.fixed) {
576
+ obj.fixed = data.fixed
577
+ }
578
+
579
+ // 是否双击
580
+ if (data.dbclick) {
581
+ obj.dbclick = data.dbclick
582
+ }
583
+
584
+ // 请求表格参数
585
+ if (setRequestQuery('table') === false) {
586
+ return false
587
+ }
588
+ }
589
+
590
+ // 请求传参参数
591
+ if (setRequestQuery('query') === false) {
592
+ return false
593
+ }
594
+
595
+ // 如果数据类型为新窗口
596
+ if (props.dataType === dicts.POWER_DATA_TYPE__OPEN) {
597
+
598
+ // 如果是非路由
599
+ if (props.routeType === 0) {
600
+
601
+ // 如果没有选择跳转页面
602
+ if (! data.toPage) {
603
+ // 轻提示
604
+ utils.toast({
605
+ message: '请选择跳转页面',
606
+ })
607
+ return false
608
+ }
609
+
610
+ // 设置跳转页面 id
611
+ obj.toPage = data.toPage
612
+ }
613
+
614
+ // 否则为其他
615
+ } else {
616
+
617
+ // 是否确认
618
+ if (data.confirm) {
619
+
620
+ // 如果是(1:提交前确认)
621
+ if (data.confirm === 1) {
622
+ obj.confirm = utils.isValidString(data.confirmContent) ? data.confirmContent : true
623
+
624
+ // 否则是(2:提交前确认登录密码)
625
+ } else {
626
+ obj.confirmPassword = utils.isValidString(data.confirmContent) ? data.confirmContent : true
627
+ }
628
+ }
629
+
630
+ // 请求成功执行
631
+ if (data.requestSuccess.type) {
632
+ obj.requestSuccess = {
633
+ type: data.requestSuccess.type
634
+ }
635
+ if (utils.indexOf(['closePush', 'closePushRefresh'], data.requestSuccess.type) > -1) {
636
+ if (data.requestSuccess.params) {
637
+ obj.requestSuccess.params = data.requestSuccess.params
638
+ } else {
639
+ obj.requestSuccess.type = 'close'
640
+ }
641
+ }
642
+ }
643
+ }
644
+
645
+ // 自定义参数
646
+ const params = formatParams(data.params)
647
+ if (utils.isRequired(params)) {
648
+ obj.params = params
649
+ }
650
+ }
651
+
652
+ // 转为 json
653
+ return utils.isValidObject(obj) ? utils.json.stringify(obj) : ''
654
+ }
655
+
656
+ // ==========【返回】=============================================================================================
657
+
658
+ return {
659
+ // 表单数据
660
+ formData,
661
+
662
+ // 获取格式化后的表单数据
663
+ getValue,
664
+ }
665
+ }
666
+ }
667
+ </script>