mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-26 01:33:05 +00:00
feat: 供应商图标
This commit is contained in:
parent
6db5e9e6c3
commit
17aa05bad4
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 5.5 KiB |
|
|
@ -1,2 +1,5 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" width="64px" height="64px" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xml:space="preserve"> <image id="image0" width="64" height="64" x="0" y="0" href="data:image/png;base64,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"/>
|
||||
<svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M2.47044 5.80656L12.1704 0.387207L21.4823 5.80656L17.3963 8.21545C17.2829 8.28231 17.1432 8.28719 17.0254 8.22842L12.3407 5.89151C12.2333 5.83793 12.107 5.83699 11.9988 5.88897L7.11512 8.23493C7.00066 8.28991 6.86647 8.28551 6.75588 8.22314L2.47044 5.80656Z" fill="#5BCA87"/>
|
||||
<path d="M11.2964 23.613L1.74219 17.9418V7.18647L5.92448 9.51244C6.03922 9.577 6.11329 9.69523 6.12119 9.82642L6.435 15.0425C6.4422 15.1621 6.50449 15.2716 6.60371 15.3391L11.082 18.3858C11.1869 18.4572 11.2502 18.5753 11.2513 18.702L11.2964 23.613Z" fill="#2464F5"/>
|
||||
<path d="M12.7041 23.613L22.2583 17.9418V7.18647L18.076 9.51244C17.9613 9.577 17.8872 9.69523 17.8793 9.82642L17.5655 15.0425C17.5583 15.1621 17.496 15.2716 17.3968 15.3391L12.9185 18.3858C12.8136 18.4572 12.7503 18.5753 12.7492 18.702L12.7041 23.613Z" fill="#EC5D3E"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 930 B |
|
|
@ -129,6 +129,6 @@ class WenxinModelProvider(IModelProvider):
|
|||
raise AppApiException(500, f'不支持的模型:{model_name}')
|
||||
|
||||
def get_model_provide_info(self):
|
||||
return ModelProvideInfo(provider='model_wenxin_provider', name='Azure OpenAI', icon=get_file_content(
|
||||
return ModelProvideInfo(provider='model_wenxin_provider', name='千帆大模型', icon=get_file_content(
|
||||
os.path.join(PROJECT_DIR, "apps", "setting", 'models_provider', 'impl', 'wenxin_model_provider', 'icon',
|
||||
'azure_icon_svg')))
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import { Result } from '@/request/Result'
|
||||
import { get, post, del, put } from '@/request/index'
|
||||
import type { modelRequest } from '@/api/type/model'
|
||||
import { type Ref } from 'vue'
|
||||
import type { modelRequest, Provider } from '@/api/type/model'
|
||||
const prefix = '/model'
|
||||
const prefix_provider = '/provider'
|
||||
|
||||
|
|
@ -14,8 +15,8 @@ const getModel: (data?: modelRequest) => Promise<Result<any>> = (data) => {
|
|||
/**
|
||||
* 获得供应商列表
|
||||
*/
|
||||
const getProvider: () => Promise<Result<any>> = () => {
|
||||
return get(`${prefix_provider}`)
|
||||
const getProvider: (loading?: Ref<boolean>) => Promise<Result<Array<Provider>>> = (loading) => {
|
||||
return get(`${prefix_provider}`, {}, loading)
|
||||
}
|
||||
|
||||
export default {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,24 @@
|
|||
import { SrvRecord } from 'dns'
|
||||
|
||||
interface modelRequest {
|
||||
name: string
|
||||
model_type: string
|
||||
model_name: string
|
||||
}
|
||||
export type { modelRequest }
|
||||
|
||||
interface Provider {
|
||||
/**
|
||||
* 供应商代号
|
||||
*/
|
||||
provider: string
|
||||
/**
|
||||
* 供应商名称
|
||||
*/
|
||||
name: string
|
||||
/**
|
||||
* 供应商icon
|
||||
*/
|
||||
icon: string
|
||||
}
|
||||
|
||||
export type { modelRequest, Provider }
|
||||
|
|
|
|||
|
|
@ -3,10 +3,10 @@
|
|||
<div class="template-manage flex main-calc-height">
|
||||
<div class="template-manage__left p-8 border-r">
|
||||
<h4 class="p-16">供应商</h4>
|
||||
<common-list :data="list" class="mt-8" v-loading="loading" @click="clickHandle">
|
||||
<common-list :data="provider_list" class="mt-8" v-loading="loading" @click="clickHandle">
|
||||
<template #default="{ row }">
|
||||
<div class="flex">
|
||||
<img src="@/assets/icon_document.svg" alt="" class="mr-8" />
|
||||
<span :innerHTML="row.icon" alt="" style="height: 24px; width: 24px" class="mr-8" />
|
||||
<span>{{ row.name }}</span>
|
||||
</div>
|
||||
</template>
|
||||
|
|
@ -22,16 +22,19 @@
|
|||
|
||||
<script lang="ts" setup>
|
||||
import { onMounted, ref, reactive, watch } from 'vue'
|
||||
const loading = ref(false)
|
||||
const list = ref([
|
||||
{
|
||||
name: '1111'
|
||||
}
|
||||
])
|
||||
import ModelApi from '@/api/model'
|
||||
import type { Provider } from '@/api/type/model'
|
||||
const loading = ref<boolean>(false)
|
||||
|
||||
const provider_list = ref<Array<Provider>>([])
|
||||
|
||||
function clickHandle(row: any) {}
|
||||
|
||||
onMounted(() => {})
|
||||
onMounted(() => {
|
||||
ModelApi.getProvider(loading).then((ok) => {
|
||||
provider_list.value = ok.data
|
||||
})
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
|
|
|||
Loading…
Reference in New Issue