Commit ab62739fd135f25df3b25c1b764f607d836c7371

Authored by 1sm
Committed by GitHub
1 parent b70fade5

`ApiSelect` Add `alwaysLoad` option (#1461)

* fix(modal): 取消全屏功能后关闭图标颜色异常

* chore: move to pnpm

* fix: RangePicekr在表单项中占满分配的宽度

* chore: comment format

* Revert "fix: RangePicekr在表单项中占满分配的宽度"

This reverts commit cd70e41dac294329383be3d2f0a393dc26b7f140.

* feat(ApiSelect): 新增每次加载选项

Co-authored-by: liushiman <smliu@gk-estor.com>
src/components/Form/src/components/ApiSelect.vue
1 <template> 1 <template>
2 <Select 2 <Select
3 - @dropdownVisibleChange="handleFetch" 3 + @dropdown-visible-change="handleFetch"
4 v-bind="$attrs" 4 v-bind="$attrs"
5 @change="handleChange" 5 @change="handleChange"
6 :options="getOptions" 6 :options="getOptions"
@@ -57,6 +57,7 @@ @@ -57,6 +57,7 @@
57 labelField: propTypes.string.def('label'), 57 labelField: propTypes.string.def('label'),
58 valueField: propTypes.string.def('value'), 58 valueField: propTypes.string.def('value'),
59 immediate: propTypes.bool.def(true), 59 immediate: propTypes.bool.def(true),
  60 + alwaysLoad: propTypes.bool.def(false),
60 }, 61 },
61 emits: ['options-change', 'change'], 62 emits: ['options-change', 'change'],
62 setup(props, { emit }) { 63 setup(props, { emit }) {
@@ -87,7 +88,7 @@ @@ -87,7 +88,7 @@
87 }); 88 });
88 89
89 watchEffect(() => { 90 watchEffect(() => {
90 - props.immediate && fetch(); 91 + props.immediate && !props.alwaysLoad && fetch();
91 }); 92 });
92 93
93 watch( 94 watch(
@@ -121,10 +122,14 @@ @@ -121,10 +122,14 @@
121 } 122 }
122 } 123 }
123 124
124 - async function handleFetch() {  
125 - if (!props.immediate && unref(isFirstLoad)) {  
126 - await fetch();  
127 - isFirstLoad.value = false; 125 + async function handleFetch(visible) {
  126 + if (visible) {
  127 + if (props.alwaysLoad) {
  128 + await fetch();
  129 + } else if (!props.immediate && unref(isFirstLoad)) {
  130 + await fetch();
  131 + isFirstLoad.value = false;
  132 + }
128 } 133 }
129 } 134 }
130 135