general-basic-form 2.1.10 → 2.2.0

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,365 @@ 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: 'prices',
246
+ type: 'form-list',
247
+ description: [
248
+ '段落1',
249
+ '段落2',
250
+ ],
251
+ separator: "text", //文字分割线
252
+ setting: {
253
+ heading: true, //是否显示标题
254
+ dim: 4, // 多维数组,注意要和columns的长度相等,输出为对象数组
255
+ columns: [
256
+ {
257
+ prop: 'id',
258
+ label: '套餐ID',
259
+ type: 'input',
260
+ setting: {
261
+ placeholder: '请输入套餐ID',
262
+ disabled: true,
263
+ className: 'hidden',
311
264
  },
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
265
  },
343
- option: [
344
- { value: '', label: 'true',border: true },
345
- { value: '', label: 'false' }
346
- ],
347
- rules: [
348
- {
266
+ {
267
+ prop: 'days',
268
+ label: '套餐名称',
269
+ type: 'input',
270
+ setting: {
349
271
  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,
272
+ placeholder: '请输入套餐名称',
273
+ type: 'number'
274
+ },
275
+ },
276
+ {
277
+ prop: 'serviceType',
278
+ label: '服务类型',
279
+ type: 'select',
361
280
  option: [
362
- { label: 'Y3', value: 'Y3' },
363
- { label: 'Y4', value: 'Y4' },
364
- { label: 'Y5', value: 'Y5' },
281
+ { label: '到家服务', value: 'home_service' },
282
+ { label: '医院陪护', value: 'hospital_care' },
365
283
  ],
366
- fieldSetting: {
367
- className: 'col-span-4',
284
+ setting: {
285
+ placeholder: '请选择服务类型',
286
+ required: true,
287
+ className: 'w-full',
368
288
  },
289
+ },
290
+
291
+ {
292
+ label: '组合分类-多选',
293
+ prop: 'expense_multiple_checkbox_test',
294
+ type: 'combobox',
369
295
  setting: {
370
296
  placeholder: '请选择等级',
297
+ type: 'checkbox-list',
371
298
  },
299
+ fieldSetting: {
300
+ className: fieldClassName,
301
+ },
302
+ option: [
303
+ { label: 'Yysyayayasuydsaiewqnkerwjrklwjlwerjwlejrlj3', value: 'Y3' },
304
+ { label: 'Yysyayayasuydsaiewqnkerwjrklwjlwerjwlejrlj4', value: 'Y4' },
305
+
306
+ ],
307
+ },
308
+ ],
309
+ },
310
+ fieldSetting: {
311
+ className: fieldClassName,
312
+ },
313
+ rules: [
314
+ {
315
+ validator: (rule, value, callback) => {
316
+ console.log(value);
317
+ for (let i = 0; i < value.length; i++) {
318
+ const element = value[i];
319
+ if (!Number(element.days)) {
320
+ callback(new Error('请输入数字'));
321
+ return;
322
+ }
323
+ }
324
+ callback();
325
+ },
326
+ },
327
+ ],
328
+ removeItemAction: (item, index) => {
329
+ // 删除项会触发此函数
330
+ console.log(item, index);
331
+ },
332
+ },
333
+ {
334
+ label: '1维数组',
335
+ prop: 'nursingCare',
336
+ type: 'form-list',
337
+ setting: {
338
+ placeholder: ['请输入服务内容'],
339
+ required: true,
340
+ dim: 1, // 1维数组,输出为字符串数组
341
+ },
342
+ fieldSetting: {
343
+ className: fieldClassName,
344
+ },
345
+ rules: [
346
+ {
347
+ validator: (rule, value, callback) => {
348
+ for (let i = 0; i < value.length; i++) {
349
+ const element = value[i];
350
+ if (!element) {
351
+ callback(new Error('请输入服务内容'));
352
+ return;
353
+ }
354
+ }
355
+ callback();
372
356
  },
373
- {
357
+ },
358
+ ],
359
+ },
360
+ {
361
+ prop: 'level1',
362
+ label: '选择框',
363
+ type: 'select',
364
+ option: [
365
+ { label: 'Y3', value: 'Y3' },
366
+ { label: 'Y4', value: 'Y4' },
367
+ { label: 'Y5', value: 'Y5' },
368
+ ],
369
+ setting: {
370
+ placeholder: '请选择等级',
371
+ required: true,
372
+ },
373
+ fieldSetting: {
374
+ className: fieldClassName,
375
+ },
376
+ },
377
+ // {
378
+ // label: "创建时间",
379
+ // prop: "create_time",
380
+ // type: "date-picker",
381
+ // setting: {
382
+ // "range-separator": "至",
383
+ // },
384
+ // fieldSetting: {
385
+ // className: fieldClassName,
386
+ // },
387
+ // },
388
+
389
+ // {
390
+ // label: '是否必填',
391
+ // prop: 'is_optional',
392
+ // type: 'radio',
393
+ // setting: {
394
+ // disabled: true
395
+ // },
396
+ // option: [
397
+ // { value: '是', label: 'true', border: true },
398
+ // { value: '否', label: 'false' }
399
+ // ],
400
+ // fieldSetting: {
401
+ // className: fieldClassName,
402
+ // },
403
+ // rules: [
404
+ // {
405
+ // required: true,
406
+ // message: '请输入标签项名称',
407
+ // trigger: 'blur'
408
+ // }
409
+ // ]
410
+ // },
411
+ {
412
+ prop: 'level',
413
+ label: '多选列表',
414
+ legend: '标题',
415
+ type: 'checkbox-list',
416
+ gap: 3,
417
+ option: [
418
+ { label: 'Y3', value: 'Y3' },
419
+ { label: 'Y4', value: 'Y4' },
420
+ { label: 'Y5', value: 'Y5' },
421
+ ],
422
+ fieldSetting: {
423
+ className: fieldClassName,
424
+ },
425
+ setting: {
426
+ placeholder: '请选择等级',
427
+ },
428
+ },
429
+ {
374
430
  prop: 'test1',
375
- label: 'test1(多选)',
431
+ label: '选择框',
376
432
  type: 'checkbox',
377
433
  fieldSetting: {
378
- className: 'col-span-4',
434
+ className: fieldClassName,
379
435
  },
380
436
  setting: {
381
437
  placeholder: '请选择套餐',
382
438
  },
383
439
  },
440
+
441
+ {
442
+ label: "分类",
443
+ prop: "分类",
444
+ type: "command",
445
+ setting: {
446
+ placeholder: "请输入分类",
447
+ empty: "搜索内容为空的提示",
448
+ },
449
+ fieldSetting: {
450
+ className: fieldClassName,
451
+ },
452
+ options: [
384
453
  {
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: [
454
+ label: "指南",
455
+ value: "guide",
456
+ separator: true, //分割线
457
+ children: [
408
458
  {
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', //选项右侧的内容
459
+ value: 'shejiyuanze',
460
+ label: '设计原则',
461
+ onSelect: (value) => {
462
+ console.log('Selected', value);
420
463
  },
421
-
422
- ],
464
+ shortcut: 'ctrl+z', //选项右侧的内容
423
465
  },
466
+
467
+ ],
468
+ },
469
+ {
470
+ label: "资源",
471
+ value: "resource",
472
+ children: [
424
473
  {
425
- label: "资源",
426
- value: "resource",
427
- children: [
428
- {
429
- value: "axure",
430
- label: "Axure Components",
431
- }
432
- ],
474
+ value: "axure",
475
+ label: "Axure Components",
476
+ }
477
+ ],
478
+ },
479
+ ],
480
+ },
481
+ {
482
+ label: '组合分类-多选',
483
+ prop: 'expense_multiple_checkbox',
484
+ type: 'combobox',
485
+ setting: {
486
+ placeholder: '请选择等级',
487
+ type: 'checkbox-list',
488
+ },
489
+ fieldSetting: {
490
+ className: fieldClassName,
491
+ },
492
+ option: [
493
+ { label: 'Y3', value: 'Y3' },
494
+ { label: 'Y4', value: 'Y4' },
495
+ { label: 'Y5', value: 'Y5' },
496
+ ],
497
+ },
498
+ {
499
+ label: '组合分类',
500
+ prop: 'expense_category_id',
501
+ type: 'combobox',
502
+ setting: {
503
+ placeholder: '请输入分类',
504
+ empty: '搜索内容为空的提示',
505
+ },
506
+ fieldSetting: {
507
+ className: fieldClassName,
508
+ },
509
+ options: [
510
+ {
511
+ label: '指南',
512
+ value: '指南',
513
+ separator: true, //分割线
514
+ children: [
515
+ {
516
+ value: 'shejiyuanze',
517
+ label: '设计原则',
518
+ shortcut: 'ctrl+z', //选项右侧的内容
433
519
  },
434
520
  ],
435
521
  },
522
+ {
523
+ label: '资源',
524
+ value: 'resource',
525
+ children: [
436
526
  {
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
- ],
527
+ value: 'axure',
528
+ label: 'Axure Components',
471
529
  },
530
+ ],
531
+ },
472
532
  ],
533
+ },
534
+ ],
473
535
 
474
536
  //rules为表单校验规则,每个组件都可以传入
475
537
 
@@ -484,12 +546,17 @@ parametersType 类型介绍
484
546
 
485
547
  支持组件 type:
486
548
 
487
- export enum FormType {
549
+ export enum FormType {
488
550
  /**
489
551
  * @description: 输入框
490
552
  * @return {*}
491
553
  */
492
554
  "input" = "input",
555
+ /**
556
+ * @description: 复杂输入框,可自定义前后缀和大小
557
+ * @return {*}
558
+ */
559
+ "input-group" = "input-group",
493
560
  /**
494
561
  * @description: 表单中的多维列表,可增减元素,内部可以使用的数据类型除自身form-list外同FormType
495
562
  * @return {*}
@@ -506,7 +573,7 @@ parametersType 类型介绍
506
573
  */
507
574
  "command" = "command",
508
575
  /**
509
- * @description: 响应式下拉框+带搜索的二级菜单
576
+ * @description: 响应式下拉框+带搜索的二级菜单/多选
510
577
  * @return {*}
511
578
  */
512
579
  "combobox" = "combobox",