Commit 4d6f24d0536b7204ea3452c560b6aaf087593be5

Authored by lzdjack
Committed by GitHub
1 parent 45b0be7f

perf: 优化ApiCascader回调函数change参数 (#2511)

src/components/Form/src/components/ApiCascader.vue
@@ -170,7 +170,7 @@ @@ -170,7 +170,7 @@
170 ); 170 );
171 171
172 function handleChange(keys, args) { 172 function handleChange(keys, args) {
173 - emitData.value = keys; 173 + emitData.value = args;
174 emit('defaultChange', keys, args); 174 emit('defaultChange', keys, args);
175 } 175 }
176 176
src/views/demo/form/index.vue
@@ -67,6 +67,7 @@ @@ -67,6 +67,7 @@
67 import { treeOptionsListApi } from '/@/api/demo/tree'; 67 import { treeOptionsListApi } from '/@/api/demo/tree';
68 import { Select } from 'ant-design-vue'; 68 import { Select } from 'ant-design-vue';
69 import { cloneDeep } from 'lodash-es'; 69 import { cloneDeep } from 'lodash-es';
  70 + import { areaRecord } from '/@/api/demo/cascader';
70 71
71 const valueSelectA = ref<string[]>([]); 72 const valueSelectA = ref<string[]>([]);
72 const valueSelectB = ref<string[]>([]); 73 const valueSelectB = ref<string[]>([]);
@@ -293,6 +294,9 @@ @@ -293,6 +294,9 @@
293 value: '2', 294 value: '2',
294 }, 295 },
295 ], 296 ],
  297 + onChange: (e, v) => {
  298 + console.log('RadioButtonGroup====>:', e, v);
  299 + },
296 }, 300 },
297 }, 301 },
298 { 302 {
@@ -358,15 +362,16 @@ @@ -358,15 +362,16 @@
358 params: { 362 params: {
359 id: 1, 363 id: 1,
360 }, 364 },
  365 +
361 resultField: 'list', 366 resultField: 'list',
362 // use name as label 367 // use name as label
363 labelField: 'name', 368 labelField: 'name',
364 // use id as value 369 // use id as value
365 valueField: 'id', 370 valueField: 'id',
366 // not request untill to select 371 // not request untill to select
367 - immediate: false,  
368 - onChange: (e) => {  
369 - console.log('selected:', e); 372 + immediate: true,
  373 + onChange: (e, v) => {
  374 + console.log('ApiSelect====>:', e, v);
370 }, 375 },
371 // atfer request callback 376 // atfer request callback
372 onOptionsChange: (options) => { 377 onOptionsChange: (options) => {
@@ -379,6 +384,31 @@ @@ -379,6 +384,31 @@
379 defaultValue: '0', 384 defaultValue: '0',
380 }, 385 },
381 { 386 {
  387 + field: 'field8',
  388 + component: 'ApiCascader',
  389 + label: '联动ApiCascader',
  390 + required: true,
  391 + colProps: {
  392 + span: 8,
  393 + },
  394 + componentProps: {
  395 + api: areaRecord,
  396 + apiParamKey: 'parentCode',
  397 + dataField: 'data',
  398 + labelField: 'name',
  399 + valueField: 'code',
  400 + initFetchParams: {
  401 + parentCode: '',
  402 + },
  403 + isLeaf: (record) => {
  404 + return !(record.levelType < 3);
  405 + },
  406 + onChange: (e, ...v) => {
  407 + console.log('ApiCascader====>:', e, v);
  408 + },
  409 + },
  410 + },
  411 + {
382 field: 'field31', 412 field: 'field31',
383 component: 'Input', 413 component: 'Input',
384 label: '下拉本地搜索', 414 label: '下拉本地搜索',
@@ -411,6 +441,9 @@ @@ -411,6 +441,9 @@
411 componentProps: { 441 componentProps: {
412 api: treeOptionsListApi, 442 api: treeOptionsListApi,
413 resultField: 'list', 443 resultField: 'list',
  444 + onChange: (e, v) => {
  445 + console.log('ApiTreeSelect====>:', e, v);
  446 + },
414 }, 447 },
415 colProps: { 448 colProps: {
416 span: 8, 449 span: 8,
@@ -455,6 +488,9 @@ @@ -455,6 +488,9 @@
455 // use id as value 488 // use id as value
456 valueField: 'id', 489 valueField: 'id',
457 isBtn: true, 490 isBtn: true,
  491 + onChange: (e, v) => {
  492 + console.log('ApiRadioGroup====>:', e, v);
  493 + },
458 }, 494 },
459 colProps: { 495 colProps: {
460 span: 8, 496 span: 8,