general-basic-form 2.1.10 → 2.2.1

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.
package/README.md CHANGED
@@ -156,8 +156,8 @@ parametersType 类型介绍
156
156
  数据示例:
157
157
 
158
158
  showSearch: true, // 显示搜索条件
159
- getList(); // 请求数据的函数
160
- afterReset(); // 在重置按钮点击完后但还没重新请求时触发的的函数
159
+ getList(queryParams); // 请求数据的函数
160
+ afterReset(queryParams); // 在重置按钮点击完后但还没重新请求时触发的的函数
161
161
  formOnly:true // 只展示表单不展示按钮
162
162
  parametersType:"url" // 见parametersType类型介绍
163
163
  DBPrimaryKey: user_id // indexDB主键,配合indexDB使用
@@ -173,303 +173,379 @@ parametersType 类型介绍
173
173
  footFieldSetting: {} // 表单底部按钮设置
174
174
  fieldGroupSetting: {} // 表单分组设置
175
175
  fieldLabelSetting: {} // 表单字段label设置
176
+ onFormChange(queryParams):表单数据变化时触发的函数
176
177
  formItem: [
177
178
 
178
- { label: "款式名称",
179
- prop: "bsName",
180
- type: "input",
181
- legend: '这是一个可选的标题',
182
- setting: {
183
- placeholder: '请输入手机验证码',
184
- style: 'width: 100%',
185
- required: true,
186
- },
179
+ {
180
+ label: "普通输入框",
181
+ prop: "bsName",
182
+ type: "input",
183
+ legend: '这是一个可选的标题',
184
+ setting: {
185
+ placeholder: '请输入手机验证码',
186
+ // style: 'width: 100%',
187
+ required: true,
188
+ },
187
189
  fieldSetting: {
188
- orientation: 'responsive',//表单布局-响应式
190
+ className: fieldClassName,
189
191
  },
190
- rules: [
191
- {
192
- message: "请输入信息",
193
- required: true,
194
- },
195
- {
196
- pattern: /^\w+[\,\,\-\w' '#]+$/,
197
- message: "请输入正确的Invoice单号"
198
- },
199
- {
192
+ rules: [
193
+ {
194
+ message: "请输入信息",
195
+ required: true,
196
+ },
197
+ {
198
+ pattern: /^\w+[\,\,\-\w' '#]+$/,
199
+ message: "请输入正确的Invoice单号"
200
+ },
201
+ {
200
202
  validator: (rule, value, callback) => {
201
203
  callback();
202
204
  },
203
205
  },
204
- ],
205
- separator: true, //分割线
206
-
207
- //template: {
208
- // suffix: () => {
209
- // return <svg-icon icon-class="baifenbi" />;
210
- // },
211
- //},
212
- },
206
+ ],
207
+ separator: true, //分割线
208
+ },
209
+ {
210
+ label: "复杂输入框",
211
+ prop: "input-group",
212
+ type: "input-group",
213
+ setting: {
214
+ placeholder: '请输入手机验证码',
215
+ // style: 'width: 100%',
216
+ addons: [
213
217
  {
214
- label: '天数-价格配置',
215
- prop: 'prices',
216
- type: 'form-list',
217
- description: [
218
- '段落1',
219
- '段落2',
220
- ],
221
- separator: "text", //文字分割线
222
- setting: {
223
- heading:true, //是否显示标题
224
- dim: 3, // 多维数组,注意要和columns的长度相等,输出为对象数组
225
- columns: [
226
- {
227
- prop: 'id',
228
- label: '套餐ID',
229
- type: 'input',
230
- setting: {
231
- placeholder: '请输入套餐ID',
232
- disabled: true,
233
- className: 'hidden',
234
- },
235
- },
236
- {
237
- prop: 'days',
238
- label: '套餐名称',
239
- type: 'input',
240
- setting: {
241
- required: true,
242
- placeholder: '请输入套餐名称',
243
- type: 'number'
244
- },
245
- },
246
- {
247
- prop: 'serviceType',
248
- label: '服务类型',
249
- type: 'select',
250
- option: [
251
- { label: '到家服务', value: 'home_service' },
252
- { label: '医院陪护', value: 'hospital_care' },
253
- ],
254
- setting: {
255
- placeholder: '请选择服务类型',
256
- required: true,
257
- className: 'w-full',
258
- },
259
- },
260
- ],
261
- },
262
- fieldSetting: {
263
- className: 'col-span-2 col-start-2 mb-8',
264
- },
265
- rules: [
266
- {
267
- validator: (rule, value, callback) => {
268
- console.log(value);
269
- for (let i = 0; i < value.length; i++) {
270
- const element = value[i];
271
- if (!Number(element.days)) {
272
- callback(new Error('请输入数字'));
273
- return;
274
- }
275
- }
276
- callback();
277
- },
278
- },
279
- ],
280
- removeItemAction: (item, index) => {
281
- // 删除项会触发此函数
282
- console.log(item, index);
218
+ text: '前缀,一般和type: input 配合使用',
219
+ align: "inline-start",
220
+ render: (props) => {
221
+ return (
222
+ <div className="flex items-center">
223
+ <span>{props}</span>
224
+ </div>
225
+ );
283
226
  },
284
227
  },
285
- {
286
- label: '护士在线增值服务内容',
287
- prop: 'nursingCare',
288
- type: 'form-list',
289
- setting: {
290
- placeholder: ['请输入服务内容'],
291
- required: true,
292
- dim: 1, // 1维数组,输出为字符串数组
293
- },
294
- fieldSetting: {
295
- className: 'col-span-2',
296
- },
297
- rules: [
298
- {
299
- validator: (rule, value, callback) => {
300
- for (let i = 0; i < value.length; i++) {
301
- const element = value[i];
302
- if (!element) {
303
- callback(new Error('请输入服务内容'));
304
- return;
305
- }
306
- }
307
- callback();
308
- },
309
- },
310
- ],
228
+ {
229
+ text: '后缀,一般和type: input 配合使用',
230
+ align: "inline-end"
231
+ },
232
+ // {
233
+ // text: '底部盒子,一般和type: 'textarea'配合使用',
234
+ // align: "block-end"
235
+ // },
236
+ ],
237
+ // type: 'textarea',//input|textarea
238
+ },
239
+ fieldSetting: {
240
+ className: fieldClassName,
241
+ },
242
+ },
243
+ {
244
+ label: '',
245
+ prop: 'description',
246
+ type: 'description',
247
+ fieldSetting: {
248
+ className: fieldClassName,
249
+ },
250
+ description: [
251
+ 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
252
+ '段落2',
253
+ 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
254
+ ],
255
+ },
256
+ {
257
+ label: '多维数组',
258
+ prop: 'prices',
259
+ type: 'form-list',
260
+ description: [
261
+ '段落1',
262
+ '段落2',
263
+ ],
264
+ separator: "text", //文字分割线
265
+ setting: {
266
+ heading: true, //是否显示标题
267
+ dim: 4, // 多维数组,注意要和columns的长度相等,输出为对象数组
268
+ itemWidth: 'mean',//itemWidth: 'auto' | 'mean' 自动宽度(满行) | 平均分配宽度
269
+ columns: [
270
+ {
271
+ prop: 'id',
272
+ label: '套餐ID',
273
+ type: 'input',
274
+ setting: {
275
+ placeholder: '请输入套餐ID',
276
+ disabled: true,
277
+ className: 'hidden',
311
278
  },
312
- {
313
- prop: 'level',
314
- label: '等级',
315
- type: 'select',
316
- option: [
317
- { label: 'Y3', value: 'Y3' },
318
- { label: 'Y4', value: 'Y4' },
319
- { label: 'Y5', value: 'Y5' },
320
- ],
321
- setting: {
322
- placeholder: '请选择等级',
323
- required: true,
324
- multiple: true,
325
- },
326
- },
327
- {
328
- label: "创建时间",
329
- prop: "create_time",
330
- type: "date-picker",
331
- setting: {
332
- "range-separator": "至",
333
- }
334
- },
335
-
336
- {
337
- label: '是否必填',
338
- prop: 'is_optional',
339
- type: 'radio',
340
- setting: {
341
- disabled: true
342
279
  },
343
- option: [
344
- { value: '', label: 'true',border: true },
345
- { value: '', label: 'false' }
346
- ],
347
- rules: [
348
- {
280
+ {
281
+ prop: 'days',
282
+ label: '套餐名称',
283
+ type: 'input',
284
+ setting: {
349
285
  required: true,
350
- message: '请输入标签项名称',
351
- trigger: 'blur'
352
- }
353
- ]
354
- },
355
- {
356
- prop: 'level',
357
- label: '多选',
358
- legend: 标题',
359
- type: 'checkbox-list',
360
- gap: 3,
286
+ placeholder: '请输入套餐名称',
287
+ type: 'number'
288
+ },
289
+ },
290
+ {
291
+ prop: 'serviceType',
292
+ label: '服务类型',
293
+ type: 'select',
361
294
  option: [
362
- { label: 'Y3', value: 'Y3' },
363
- { label: 'Y4', value: 'Y4' },
364
- { label: 'Y5', value: 'Y5' },
295
+ { label: '到家服务', value: 'home_service' },
296
+ { label: '医院陪护', value: 'hospital_care' },
365
297
  ],
366
- fieldSetting: {
367
- className: 'col-span-4',
298
+ setting: {
299
+ placeholder: '请选择服务类型',
300
+ required: true,
301
+ className: 'w-full',
368
302
  },
303
+ },
304
+
305
+ {
306
+ label: '组合分类-多选',
307
+ prop: 'expense_multiple_checkbox_test',
308
+ type: 'combobox',
369
309
  setting: {
370
310
  placeholder: '请选择等级',
311
+ type: 'checkbox-list',
312
+ },
313
+ fieldSetting: {
314
+ className: fieldClassName,
371
315
  },
316
+ option: [
317
+ { label: 'Yysyayayasuydsaiewqnkerwjrklwjlwerjwlejrlj3', value: 'Y3' },
318
+ { label: 'Yysyayayasuydsaiewqnkerwjrklwjlwerjwlejrlj4', value: 'Y4' },
319
+
320
+ ],
321
+ },
322
+ ],
323
+ },
324
+ fieldSetting: {
325
+ className: fieldClassName,
326
+ },
327
+ rules: [
328
+ {
329
+ validator: (rule, value, callback) => {
330
+ console.log(value);
331
+ for (let i = 0; i < value.length; i++) {
332
+ const element = value[i];
333
+ if (!Number(element.days)) {
334
+ callback(new Error('请输入数字'));
335
+ return;
336
+ }
337
+ }
338
+ callback();
372
339
  },
373
- {
340
+ },
341
+ ],
342
+ removeItemAction: (item, index) => {
343
+ // 删除项会触发此函数
344
+ console.log(item, index);
345
+ },
346
+ },
347
+ {
348
+ label: '1维数组',
349
+ prop: 'nursingCare',
350
+ type: 'form-list',
351
+ setting: {
352
+ placeholder: ['请输入服务内容'],
353
+ required: true,
354
+ dim: 1, // 1维数组,输出为字符串数组
355
+ },
356
+ fieldSetting: {
357
+ className: fieldClassName,
358
+ },
359
+ rules: [
360
+ {
361
+ validator: (rule, value, callback) => {
362
+ for (let i = 0; i < value.length; i++) {
363
+ const element = value[i];
364
+ if (!element) {
365
+ callback(new Error('请输入服务内容'));
366
+ return;
367
+ }
368
+ }
369
+ callback();
370
+ },
371
+ },
372
+ ],
373
+ },
374
+ {
375
+ prop: 'level1',
376
+ label: '选择框',
377
+ type: 'select',
378
+ option: [
379
+ { label: 'Y3', value: 'Y3' },
380
+ { label: 'Y4', value: 'Y4' },
381
+ { label: 'Y5', value: 'Y5' },
382
+ ],
383
+ setting: {
384
+ placeholder: '请选择等级',
385
+ required: true,
386
+ },
387
+ fieldSetting: {
388
+ className: fieldClassName,
389
+ },
390
+ },
391
+ // {
392
+ // label: "创建时间",
393
+ // prop: "create_time",
394
+ // type: "date-picker",
395
+ // setting: {
396
+ // "range-separator": "至",
397
+ // },
398
+ // fieldSetting: {
399
+ // className: fieldClassName,
400
+ // },
401
+ // },
402
+
403
+ // {
404
+ // label: '是否必填',
405
+ // prop: 'is_optional',
406
+ // type: 'radio',
407
+ // setting: {
408
+ // disabled: true
409
+ // },
410
+ // option: [
411
+ // { value: '是', label: 'true', border: true },
412
+ // { value: '否', label: 'false' }
413
+ // ],
414
+ // fieldSetting: {
415
+ // className: fieldClassName,
416
+ // },
417
+ // rules: [
418
+ // {
419
+ // required: true,
420
+ // message: '请输入标签项名称',
421
+ // trigger: 'blur'
422
+ // }
423
+ // ]
424
+ // },
425
+ {
426
+ prop: 'level',
427
+ label: '多选列表',
428
+ legend: '标题',
429
+ type: 'checkbox-list',
430
+ gap: 3,
431
+ option: [
432
+ { label: 'Y3', value: 'Y3' },
433
+ { label: 'Y4', value: 'Y4' },
434
+ { label: 'Y5', value: 'Y5' },
435
+ ],
436
+ fieldSetting: {
437
+ className: fieldClassName,
438
+ },
439
+ setting: {
440
+ placeholder: '请选择等级',
441
+ },
442
+ },
443
+ {
374
444
  prop: 'test1',
375
- label: 'test1(多选)',
445
+ label: '选择框',
376
446
  type: 'checkbox',
377
447
  fieldSetting: {
378
- className: 'col-span-4',
448
+ className: fieldClassName,
379
449
  },
380
450
  setting: {
381
451
  placeholder: '请选择套餐',
382
452
  },
383
453
  },
454
+
455
+ {
456
+ label: "分类",
457
+ prop: "分类",
458
+ type: "command",
459
+ setting: {
460
+ placeholder: "请输入分类",
461
+ empty: "搜索内容为空的提示",
462
+ },
463
+ fieldSetting: {
464
+ className: fieldClassName,
465
+ },
466
+ options: [
384
467
  {
385
- label: '受访人',
386
- prop: 'contactors',
387
- type: 'form-item-slot',
388
- name: "contactors"
389
- // 插槽组件使用:
390
- // <VGeneralBasicForm ...>
391
- // <template #contactors>
392
- // <div>一些组件
393
- // 一些组件
394
- // <el-form-item prop="contactors">...</el-form-item>
395
- // </div>
396
- // </template>
397
- // </VGeneralBasicForm>
398
- },
399
- {
400
- label: "分类",
401
- prop: "分类",
402
- type: "command",
403
- setting:{
404
- placeholder:"请输入分类",
405
- empty:"搜索内容为空的提示",
406
- },
407
- options: [
468
+ label: "指南",
469
+ value: "guide",
470
+ separator: true, //分割线
471
+ children: [
408
472
  {
409
- label: "指南",
410
- value: "guide",
411
- separator:true, //分割线
412
- children: [
413
- {
414
- value: 'shejiyuanze',
415
- label: '设计原则',
416
- onSelect: (value) => {
417
- console.log('Selected', value);
418
- },
419
- shortcut: 'ctrl+z', //选项右侧的内容
473
+ value: 'shejiyuanze',
474
+ label: '设计原则',
475
+ onSelect: (value) => {
476
+ console.log('Selected', value);
420
477
  },
421
-
422
- ],
478
+ shortcut: 'ctrl+z', //选项右侧的内容
423
479
  },
480
+
481
+ ],
482
+ },
483
+ {
484
+ label: "资源",
485
+ value: "resource",
486
+ children: [
487
+ {
488
+ value: "axure",
489
+ label: "Axure Components",
490
+ }
491
+ ],
492
+ },
493
+ ],
494
+ },
495
+ {
496
+ label: '组合分类-多选',
497
+ prop: 'expense_multiple_checkbox',
498
+ type: 'combobox',
499
+ setting: {
500
+ placeholder: '请选择等级',
501
+ type: 'checkbox-list',
502
+ },
503
+ fieldSetting: {
504
+ className: fieldClassName,
505
+ },
506
+ option: [
507
+ { label: 'Y3', value: 'Y3' },
508
+ { label: 'Y4', value: 'Y4' },
509
+ { label: 'Y5', value: 'Y5' },
510
+ ],
511
+ },
512
+ {
513
+ label: '组合分类',
514
+ prop: 'expense_category_id',
515
+ type: 'combobox',
516
+ setting: {
517
+ placeholder: '请输入分类',
518
+ empty: '搜索内容为空的提示',
519
+ },
520
+ fieldSetting: {
521
+ className: fieldClassName,
522
+ },
523
+ options: [
524
+ {
525
+ label: '指南',
526
+ value: '指南',
527
+ separator: true, //分割线
528
+ children: [
424
529
  {
425
- label: "资源",
426
- value: "resource",
427
- children: [
428
- {
429
- value: "axure",
430
- label: "Axure Components",
431
- }
432
- ],
530
+ value: 'shejiyuanze',
531
+ label: '设计原则',
532
+ shortcut: 'ctrl+z', //选项右侧的内容
433
533
  },
434
534
  ],
435
535
  },
536
+ {
537
+ label: '资源',
538
+ value: 'resource',
539
+ children: [
436
540
  {
437
- label: '分类',
438
- prop: 'expense_category_id',
439
- type: 'combobox',
440
- setting: {
441
- placeholder: '请输入分类',
442
- empty: '搜索内容为空的提示',
443
- },
444
- fieldSetting: {
445
- className: fieldClassName,
446
- },
447
- options: [
448
- {
449
- label: '指南',
450
- value: '指南',
451
- separator: true, //分割线
452
- children: [
453
- {
454
- value: 'shejiyuanze',
455
- label: '设计原则',
456
- shortcut: 'ctrl+z', //选项右侧的内容
457
- },
458
- ],
459
- },
460
- {
461
- label: '资源',
462
- value: 'resource',
463
- children: [
464
- {
465
- value: 'axure',
466
- label: 'Axure Components',
467
- },
468
- ],
469
- },
470
- ],
541
+ value: 'axure',
542
+ label: 'Axure Components',
471
543
  },
544
+ ],
545
+ },
472
546
  ],
547
+ },
548
+ ]
473
549
 
474
550
  //rules为表单校验规则,每个组件都可以传入
475
551
 
@@ -484,12 +560,17 @@ parametersType 类型介绍
484
560
 
485
561
  支持组件 type:
486
562
 
487
- export enum FormType {
563
+ export enum FormType {
488
564
  /**
489
565
  * @description: 输入框
490
566
  * @return {*}
491
567
  */
492
568
  "input" = "input",
569
+ /**
570
+ * @description: 复杂输入框,可自定义前后缀和大小
571
+ * @return {*}
572
+ */
573
+ "input-group" = "input-group",
493
574
  /**
494
575
  * @description: 表单中的多维列表,可增减元素,内部可以使用的数据类型除自身form-list外同FormType
495
576
  * @return {*}
@@ -506,7 +587,7 @@ parametersType 类型介绍
506
587
  */
507
588
  "command" = "command",
508
589
  /**
509
- * @description: 响应式下拉框+带搜索的二级菜单
590
+ * @description: 响应式下拉框+带搜索的二级菜单/多选
510
591
  * @return {*}
511
592
  */
512
593
  "combobox" = "combobox",