|
43 | 43 | :placeholder="t('publish.model.type.placeholder')" |
44 | 44 | @update:open="formData.typeError = false" |
45 | 45 | > |
46 | | - <SelectItem v-for="(e, i) in typeLis" :key="i" :value="e.value">{{ e.label }}</SelectItem> |
| 46 | + <SelectItem v-for="(e, i) in filteredTypeLis" :key="i" :value="e.value">{{ |
| 47 | + e.label |
| 48 | + }}</SelectItem> |
47 | 49 | </v-select> |
48 | 50 | </v-item> |
49 | 51 | <Button class="w-full mt-3" @click="nextStep">{{ t('publish.model.nextStep') }}</Button> |
|
93 | 95 | :placeholder="t('publish.model.baseModelPlaceholder')" |
94 | 96 | @update:open="e.baseModelError = false" |
95 | 97 | > |
96 | | - <SelectItem v-for="(item, index) in baseTypeLis" :key="index" :value="item.value">{{ |
97 | | - item.label |
98 | | - }}</SelectItem> |
| 98 | + <SelectItem |
| 99 | + v-for="(item, index) in filteredBaseTypeLis" |
| 100 | + :key="index" |
| 101 | + :value="item.value" |
| 102 | + >{{ item.value }}</SelectItem |
| 103 | + > |
99 | 104 | </v-select> |
100 | 105 | </v-item> |
101 | 106 | <v-item :label="t('publish.model.uploadImage')"> |
|
166 | 171 | </template> |
167 | 172 | <script setup lang="ts"> |
168 | 173 | import { useToaster } from '@/components/modules/toats/index' |
169 | | - import { computed, ref, watch } from 'vue' |
| 174 | + import { computed, ref, watch, onMounted } from 'vue' |
170 | 175 | import { SelectItem } from '@/components/ui/select' |
171 | 176 | import { Input } from '@/components/ui/input' |
172 | 177 | import { Button } from '@/components/ui/button' |
|
175 | 180 | import { Progress } from '@/components/ui/progress' |
176 | 181 | import { useAlertDialog } from '@/components/modules/vAlertDialog/index' |
177 | 182 | import { modelStore } from '@/stores/modelStatus' |
178 | | - import { create_models, model_types, base_model_types, put_model } from '@/api/model' |
179 | | - import { onMounted } from 'vue' |
| 183 | + import { create_models, model_types, get_all_dict, put_model } from '@/api/model' |
180 | 184 | import { Trash2 } from 'lucide-vue-next' |
181 | 185 | import vDialog from '@/components/modules/vDialog.vue' |
182 | 186 | import vSelect from '@/components/modules/vSelect.vue' |
|
187 | 191 | import vUploadImage from '@/components/modules/vUpload/vUploadImage.vue' |
188 | 192 | import Markdown from '@/components/markdown/Index.vue' |
189 | 193 | import { useI18n } from 'vue-i18n' |
| 194 | + import type { CommonModelType } from '@/types/model' |
190 | 195 |
|
191 | 196 | const { t } = useI18n() |
192 | 197 | const modelStoreObject = modelStore() |
193 | 198 | const modelBox = ref(true) |
194 | | - const typeLis = ref([{ value: '', label: '' }]) |
195 | | - const baseTypeLis = ref([{ value: '', label: '' }]) |
| 199 | + const typeLis = ref<CommonModelType[]>([]) |
| 200 | + const baseTypeLis = ref<CommonModelType[]>([]) |
| 201 | + const filteredTypeLis = computed<CommonModelType[]>(() => |
| 202 | + typeLis.value.filter((o: CommonModelType | undefined) => !!o && !!o.value) |
| 203 | + ) |
| 204 | + const filteredBaseTypeLis = computed<CommonModelType[]>(() => |
| 205 | + baseTypeLis.value.filter((o: CommonModelType | undefined) => !!o && !!o.value) |
| 206 | + ) |
196 | 207 | const formData = ref({ ...modelStoreObject.modelDetail }) |
197 | 208 | const acActiveIndex = ref(-1) |
198 | 209 | const showLayoutLoading = ref(false) |
|
382 | 393 | onMounted(async () => { |
383 | 394 | const mt = await model_types() |
384 | 395 | typeLis.value = mt.data |
385 | | - const bmt = await base_model_types() |
386 | | - baseTypeLis.value = bmt.data |
| 396 | + const bmt = await get_all_dict() |
| 397 | + baseTypeLis.value = bmt.data.base_models |
387 | 398 | }) |
388 | 399 | </script> |
389 | 400 | <style scoped></style> |
0 commit comments