perf: 优化宝塔网站部署插件远程获取数据的提示

This commit is contained in:
xiaojunnuo
2024-10-10 14:28:46 +08:00
parent cbd6abb29d
commit 2a3ca9f552
6 changed files with 49 additions and 29 deletions
@@ -1,3 +1,8 @@
<template>
<a-select mode="tags" readonly :value="modelValue" />
<div>{{ errorRef }}</div>
</template>
<script setup lang="ts">
import { inject, ref, watch } from "vue";
@@ -57,9 +62,4 @@ watch(
);
</script>
<template>
<a-select mode="tags" readonly :value="modelValue" />
<div>{{ errorRef }}</div>
</template>
<style lang="less"></style>
@@ -1,6 +1,28 @@
<template>
<div class="remote-select">
<div class="flex flex-row">
<a-select
class="remote-select-input"
show-search
:filter-option="filterOption"
:options="optionsRef"
:value="value"
v-bind="attrs"
@click="onClick"
@update:value="emit('update:value', $event)"
/>
<div class="ml-5">
<fs-button title="刷新选项" icon="ion:refresh-outline" @click="refreshOptions"></fs-button>
</div>
</div>
<div class="helper error">
{{ message }}
</div>
</div>
</template>
<script setup lang="ts">
import { ComponentPropsType, doRequest } from "/@/components/plugins/lib";
import { ref, watch } from "vue";
import { ref, useAttrs, watch } from "vue";
defineOptions({
name: "RemoteSelect"
@@ -16,6 +38,8 @@ const emit = defineEmits<{
"update:value": any;
}>();
const attrs = useAttrs();
const optionsRef = ref([]);
const message = ref("");
const getOptions = async () => {
@@ -27,8 +51,8 @@ const getOptions = async () => {
input: props.form
},
{
onError(err) {
message.value = err.message;
onError(err: any) {
message.value = `获取选项出错:${err.message}`;
}
}
);
@@ -44,6 +68,10 @@ async function onClick() {
return;
}
isFirst = false;
await refreshOptions();
}
async function refreshOptions() {
optionsRef.value = await getOptions();
}
@@ -64,21 +92,4 @@ watch(
);
</script>
<template>
<div>
<a-select
class="remote-select"
show-search
:filter-option="filterOption"
:options="optionsRef"
:value="value"
@click="onClick"
@update:value="emit('update:value', $event)"
/>
<div class="helper">
{{ message }}
</div>
</div>
</template>
<style lang="less"></style>