feat: 供应商图标

This commit is contained in:
shaohuzhang1 2023-11-24 10:37:17 +08:00
parent 6db5e9e6c3
commit 17aa05bad4
6 changed files with 49 additions and 17 deletions

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

View File

@ -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

View File

@ -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')))

View File

@ -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 {

View File

@ -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 }

View File

@ -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>