diff --git a/ui/src/views/template/component/ModelCard.vue b/ui/src/views/template/component/ModelCard.vue index a4d91acf6..0ed62b70e 100644 --- a/ui/src/views/template/component/ModelCard.vue +++ b/ui/src/views/template/component/ModelCard.vue @@ -62,11 +62,12 @@ import type { Provider, Model } from '@/api/type/model' import ModelApi from '@/api/model' import { computed, ref, onMounted, onBeforeUnmount } from 'vue' import EditModel from '@/views/template/component/EditModel.vue' -import { MsgConfirm } from '@/utils/message' +import { MsgConfirm } from '@/utils/message' const props = defineProps<{ model: Model provider_list: Array + updateModelById: (model_id: string, model: Model) => void }>() const downModel = ref() @@ -85,7 +86,7 @@ const errMessage = computed(() => { } return currentModel.value.meta.message } - return "" + return '' }) const progress = computed(() => { if (currentModel.value) { @@ -93,19 +94,22 @@ const progress = computed(() => { if (down_model_chunk) { const maxObj = down_model_chunk .filter((chunk: any) => chunk.index > 1) - .reduce((prev: any, current: any) => { - return (prev.index || 0) > (current.index || 0) ? prev : current - },{progress:0}) - if(maxObj){ + .reduce( + (prev: any, current: any) => { + return (prev.index || 0) > (current.index || 0) ? prev : current + }, + { progress: 0 } + ) + if (maxObj) { return parseFloat(maxObj.progress?.toFixed(1)) } - return 0 + return 0 } return 0 } return 0 }) -const emit = defineEmits(['change']) +const emit = defineEmits(['change', 'update:model']) const eidtModelRef = ref>() let interval: any const deleteModel = () => { @@ -139,11 +143,15 @@ const initInterval = () => { ModelApi.getModelMetaById(props.model.id).then((ok) => { downModel.value = ok.data }) - }else{ - downModel.value=undefined + } else { + if (downModel.value) { + props.updateModelById(props.model.id, downModel.value) + downModel.value = undefined + } } }, 6000) } + /** * 关闭轮询 */ diff --git a/ui/src/views/template/index.vue b/ui/src/views/template/index.vue index bc769c43a..7cc54f8e3 100644 --- a/ui/src/views/template/index.vue +++ b/ui/src/views/template/index.vue @@ -49,7 +49,12 @@ v-for="(model, i) in row" :key="i" > - + @@ -99,6 +104,13 @@ const provider_list = ref>([]) const model_list = ref>([]) +const updateModelById = (model_id: string, model: Model) => { + model_list.value + .filter((m) => (m.id = model_id)) + .forEach((m) => { + m.status = model.status + }) +} const model_split_list = computed(() => { return splitArray(model_list.value, 2) })