From e751c02c93e2f2eb59a479788c174672a41d5918 Mon Sep 17 00:00:00 2001
From: zhangxiao <898441624@qq.com>
Date: 星期二, 06 八月 2024 10:12:05 +0800
Subject: [PATCH] fix: 编辑接口对接
---
src/api/model.ts | 4
src/views/dmx/model/index.vue | 139 ++++++++++++-----------
src/components/upload/index.vue | 42 ++++++
src/views/dmx/model/components/addTableName.vue | 18 ++
src/views/dmx/model/components/addPageModel.vue | 99 +++++++++++----
5 files changed, 206 insertions(+), 96 deletions(-)
diff --git a/src/api/model.ts b/src/api/model.ts
index a1ac5f6..a664cfc 100644
--- a/src/api/model.ts
+++ b/src/api/model.ts
@@ -49,6 +49,10 @@
return axios.post('/api/v1/llm/add_llm', params);
}
+export function editLlm(params) {
+ return axios.post('/api/v1/llm/edit_llm', params);
+}
+
// 鍒犻櫎瀛愭ā鍨�
export function deleteLlm(params) {
return axios.post('/api/v1/llm/delete_llm', params);
diff --git a/src/components/upload/index.vue b/src/components/upload/index.vue
index e0c517e..0329488 100644
--- a/src/components/upload/index.vue
+++ b/src/components/upload/index.vue
@@ -10,17 +10,57 @@
</template>
<script setup>
- import { ref } from 'vue';
+ import { computed, ref, watch, watchEffect } from 'vue';
const props = defineProps({
limit: {
type: Number,
default: 1,
},
action: String, // 涓婁紶鐨勬湇鍔″櫒鍦板潃
+ url: String, //鍥炴樉鐨勬枃浠跺湴鍧�
});
const emit = defineEmits(['update:fileList', 'success']);
+
const fileList = ref([]);
+ // const urls = computed(() => {
+ // debugger;
+ // console.log(props.url, 999999);
+ // // if (props.urlS) {
+ // // console.log(props.urlS, 999999);
+ // // return props.urlS.split(',');
+ // // }
+
+ // // return props.urlS ? [props.urlS] : [];
+ // });
+ // watchEffect(() => {
+ // fileList.value = urls.value.map((item) => ({
+ // uid: item,
+ // name: item,
+ // status: 'done',
+ // url: item,
+ // }));
+ // });
+ watch(
+ () => props.url,
+ (newVal) => {
+ debugger;
+ console.log(newVal, 8888);
+ // if (newVal) {
+ // fileList.value = newVal.split(',').map((item) => ({
+ // uid: item,
+ // name: item,
+ // status: 'done',
+ // url: item,
+ // }));
+ // }
+ },
+ {
+ deep: true, // 寮�鍚繁搴︾洃鍚�
+ }
+ );
+
+ // console.log(urls.value, 8988);
const handleChange = (fileList) => {
emit('update:fileList', fileList);
diff --git a/src/views/dmx/model/components/addPageModel.vue b/src/views/dmx/model/components/addPageModel.vue
index e0b0771..1b0b6a9 100644
--- a/src/views/dmx/model/components/addPageModel.vue
+++ b/src/views/dmx/model/components/addPageModel.vue
@@ -46,7 +46,6 @@
<a-form-item field="api_base" label="鍩虹URL">
<a-input v-model="form.api_base" placeholder="璇疯緭鍏ュ熀纭�URL" />
</a-form-item>
-
<a-form-item
field="raptor"
label="鏄惁鏀寔 Vision"
@@ -111,6 +110,7 @@
<Upload
:action="uploadAction"
:limit="1"
+ :url="form.urlS"
@update:fileList="updateFileList"
@success="handleSuccess"
></Upload>
@@ -131,8 +131,8 @@
</template>
<script lang="ts" setup>
- import { reactive, ref, computed, watch } from 'vue';
- import { addLlm, getLlmDetail } from '@/api/model';
+ import { reactive, ref, computed, watch, watchEffect, onMounted } from 'vue';
+ import { addLlm, getLlmDetail, editLlm } from '@/api/model';
import { Modal, Message } from '@arco-design/web-vue';
import message from '@arco-design/web-vue/es/message';
import { resolveUnref } from '@vueuse/core';
@@ -160,13 +160,21 @@
const isType = computed(() => props.type);
const editList = computed(() => props.editList);
-
- watch(
- () => editList.value.name,
- (newValue) => {
- getDetail();
+ watchEffect(() => {
+ if (props.editList) {
+ console.log(props.editList, 9999);
+ // form.name = props.editList.name;
+ // form.llm_factory = props.editList.llm_factory;
+ // form.model_type = props.editList.model_type;
+ // form.province = props.editList.province;
+ // form.options = props.editList.options;
+ // form.llm_name = props.editList.llm_name;
+ // form.api_base = props.editList.api_base;
+ // form.volc_ak = props.editList.volc_ak;
+ // form.volc_sk = props.editList.volc_sk;
+ // form.logo = props.editList.logo;
}
- );
+ });
const form = reactive({
size: 'medium',
@@ -181,6 +189,7 @@
volc_sk: '',
logo: '',
radio: 'radio one',
+ urlS: '',
slider: 5,
score: 5,
switch: false,
@@ -246,22 +255,46 @@
?.validate()
.then(async (res) => {
if (!res) {
- const data = await addLlm({
- llm_factory: editList.value.llm_factory,
- llm_name: form.llm_name,
- model_type: form.model_type,
- volc_ak: form.volc_ak,
- volc_sk: form.volc_sk,
- api_base: form.api_base,
- raptor: form.raptor,
- all_params: all_params,
- logo: imageUrls.value[0],
- });
- if ((data as any).retmsg == 'success') {
- message.success('娣诲姞鎴愬姛');
- emit('refresh-parent');
+ if (props.title == '缂栬緫') {
+ const data = await editLlm({
+ llm_factory: editList.value.llm_factory,
+ llm_name: form.llm_name,
+ model_type: form.model_type,
+ volc_ak: form.volc_ak,
+ volc_sk: form.volc_sk,
+ api_base: form.api_base,
+ raptor: form.raptor,
+ all_params: all_params,
+ logo: imageUrls.value[0],
+ });
+
+ if ((data as any).code == 200) {
+ message.success('娣诲姞鎴愬姛');
+ addPageModelVisible.value = false;
+ emit('refresh-parent');
+ } else {
+ message.error('娣诲姞澶辫触');
+ }
} else {
- message.error('娣诲姞澶辫触');
+ const data = await addLlm({
+ llm_factory: editList.value.llm_factory,
+ llm_name: form.llm_name,
+ model_type: form.model_type,
+ volc_ak: form.volc_ak,
+ volc_sk: form.volc_sk,
+ api_base: form.api_base,
+ raptor: form.raptor,
+ all_params: all_params,
+ logo: imageUrls.value[0],
+ });
+
+ if ((data as any).code == 200) {
+ message.success('娣诲姞鎴愬姛');
+ addPageModelVisible.value = false;
+ emit('refresh-parent');
+ } else {
+ message.error('娣诲姞澶辫触');
+ }
}
}
})
@@ -323,6 +356,12 @@
const onProgress = (currentFile) => {
file.value = currentFile;
};
+ // onMounted(() => {
+ // if (editList.value) {
+ // getDetail();
+ // form.urlS = editList.value.logo;
+ // }
+ // });
//鑾峰彇璇︽儏
const getDetail = async () => {
@@ -330,16 +369,20 @@
editList.value.llm_factory,
editList.value.name
);
- console.log(data.data, 8888);
+
form.llm_name = data.data.llm_name;
form.model_type = data.data.model_type;
form.volc_ak = data.data.volc_ak;
form.volc_sk = data.data.volc_sk;
form.api_base = data.data.api_base;
form.raptor = data.data.raptor;
- form.addFomList = data.data.all_params.map((item) => {
- return { name: item.split(':')[0], value: item.split(':')[1] };
- });
+ // form.urlS = data.data.logo;
+ if (JSON.parse(data.data.all_params).length > 0) {
+ form.addFomList = JSON.parse(data.data.all_params).map((item) => {
+ return { name: item.split(':')[0], value: item.split(':')[1] };
+ });
+ }
+
imageUrls.value = data.data.logo;
};
</script>
diff --git a/src/views/dmx/model/components/addTableName.vue b/src/views/dmx/model/components/addTableName.vue
index a6b5631..c3f88f8 100644
--- a/src/views/dmx/model/components/addTableName.vue
+++ b/src/views/dmx/model/components/addTableName.vue
@@ -58,7 +58,7 @@
<script lang="ts" setup>
import { onMounted, onBeforeMount, reactive, ref, computed } from 'vue';
- import { addLlmFactory } from '@/api/model';
+ import { addLlmFactory, getLlmDetail } from '@/api/model';
import { Message } from '@arco-design/web-vue';
const addTabVisible = defineModel('tabShow');
@@ -154,6 +154,22 @@
});
formRef.value?.resetFields();
};
+
+ onMounted(() => {
+ if (editList.value) {
+ getDetail();
+ }
+ });
+
+ const getDetail = async () => {
+ const data = await getLlmDetail(
+ editList.value.llm_factory,
+ editList.value.name
+ );
+ console.log(data.data, 8888);
+
+ imageUrls.value = data.data.logo;
+ };
</script>
<script lang="ts">
diff --git a/src/views/dmx/model/index.vue b/src/views/dmx/model/index.vue
index 87a5bc5..ac7afd8 100644
--- a/src/views/dmx/model/index.vue
+++ b/src/views/dmx/model/index.vue
@@ -38,7 +38,7 @@
:style="{
width: '100%',
}"
- alt="dessert"
+ alt="鏆傛棤鍥剧墖"
:src="item.logo"
/>
</div>
@@ -54,15 +54,18 @@
list.type
}}</div> -->
</div>
- <div class="arco-btn-group">
- <a-space class="btn-group">
- <!-- <editModel></editModel> -->
- <a-button type="primary" @click="handleEditModel">
- 缂栬緫
- </a-button>
- </a-space>
- </div>
</a-card>
+ <div class="arco-btn-group">
+ <a-space class="btn-group">
+ <!-- <editModel></editModel> -->
+ <a-button
+ type="primary"
+ @click="handleEditModel(item, 1)"
+ >
+ 缂栬緫
+ </a-button>
+ </a-space>
+ </div>
</div>
</div>
<div
@@ -71,13 +74,12 @@
:key="index"
>
<div class="card_wrap_box">
- <div>
+ <div class="card_wrap_box_img">
<img
:style="{
width: '100%',
- transform: 'translateY(-20px)',
}"
- alt="dessert"
+ alt="鏆傛棤鍥剧墖"
:src="list.logo"
/>
<!-- src="https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/a20012a2d4d5b9db43dfc6a01fe508c0.png~tplv-uwbnlip3yd-webp.webp" -->
@@ -91,22 +93,22 @@
list.type
}}</div>
</div>
- <div class="arco-btn-group">
- <a-space class="btn-group">
- <a-button @click="handleDeleteModel(list)">
- 鍒犻櫎
- </a-button>
- <a-button
- type="primary"
- @click="handleEditModel(list)"
- >
- 缂栬緫
- </a-button>
-
- <!-- <editModel></editModel> -->
- </a-space>
- </div>
</a-card>
+ <div class="arco-btn-group">
+ <a-space class="btn-group">
+ <a-button @click="handleDeleteModel(list)">
+ 鍒犻櫎
+ </a-button>
+ <a-button
+ type="primary"
+ @click="handleEditModel(list)"
+ >
+ 缂栬緫
+ </a-button>
+
+ <!-- <editModel></editModel> -->
+ </a-space>
+ </div>
</div>
</div>
</div>
@@ -115,12 +117,12 @@
</a-col>
<div> </div>
<div class="box_right">
- <div class="search_input">
+ <!-- <div class="search_input">
<a-input-search
:placeholder="$t('cardList.searchInput.placeholder')"
style="width: 240px"
/>
- </div>
+ </div> -->
<div>
<!-- <addModel></addModel> -->
<a-button
@@ -139,24 +141,24 @@
</a-card>
</a-col>
</a-row>
+ <!-- 娣诲姞妯″瀷 -->
+ <addPageModel
+ v-model:show="show"
+ :task_id="task_id"
+ :type="modelType"
+ :title="title"
+ :editList="editList"
+ @refresh-parent="refreshParentMethod"
+ v-if="show"
+ ></addPageModel>
+ <!-- 娣诲姞tab妯″紡 -->
+ <addTableName
+ v-model:tabShow="tabShow"
+ :nameList="editList"
+ @refresh-parent="refreshParentMethod"
+ v-if="tabShow"
+ ></addTableName>
</div>
- <!-- 娣诲姞妯″瀷 -->
- <addPageModel
- v-model:show="show"
- :task_id="task_id"
- :type="modelType"
- :title="title"
- :editList="editList"
- @refresh-parent="refreshParentMethod"
- v-if="show"
- ></addPageModel>
- <!-- 娣诲姞tab妯″紡 -->
- <addTableName
- v-model:tabShow="tabShow"
- :nameList="editList"
- @refresh-parent="refreshParentMethod"
- v-if="tabShow"
- ></addTableName>
</template>
<script lang="ts" setup>
@@ -219,23 +221,19 @@
const editList = ref({ llm_factory: '' });
//澧炲姞妯″瀷瀛愮被
const handleAddModel = () => {
- // if (tabKey.value == 'key') {
- // tabShow.value = true;
- // } else {
- // modelType.value = 2;
- // editList.value.llm_factory = tabKey.value;
- // show.value = true;
- // title.value = '娣诲姞妯″紡';
- // }
modelType.value = 2;
+ editList.value = [{ llm_factory: '' }];
editList.value.llm_factory = tabKey.value;
show.value = true;
title.value = '娣诲姞妯″紡';
};
//缂栬緫妯″瀷瀛愮被
- const handleEditModel = (val) => {
- if (tabKey.value == 'key') {
+ const handleEditModel = (val, type) => {
+ console.log(val, 6766);
+ if (type == 1) {
tabShow.value = true;
+ editList.value = val;
+ editList.value.llm_factory = tabKey.value;
} else {
modelType.value = 2;
task_id.value = val.id;
@@ -383,6 +381,10 @@
}
}
}
+ :deep(.arco-tabs-nav-tab) {
+ flex: none;
+ width: 60%;
+ }
.table_add_clore {
:deep(.arco-tabs-nav-add-btn .arco-icon-hover::before) {
top: 50%;
@@ -397,9 +399,9 @@
:deep(.arco-tabs-nav-add-btn .arco-icon-hover .arco-icon) {
color: #fff;
}
- :deep(.arco-tabs-nav) {
- max-width: 60%;
- }
+ // :deep(.arco-tabs-nav) {
+ // max-width: 60%;
+ // }
:deep(.arco-icon-hover::before) {
top: 50%;
@@ -434,7 +436,18 @@
.card_content {
.card_wrap_box_img {
min-height: 200px;
- max-height: 240px;
+ height: 200px;
+ img {
+ max-height: 190px;
+ }
+ }
+ .card_wrap_box {
+ // position: relative;
+ .arco-btn-group {
+ position: absolute;
+ right: 10px;
+ top: 87%;
+ }
}
}
@@ -445,12 +458,6 @@
transition: all 0.3s;
border: 1px solid var(--color-neutral-3);
border-radius: 4px;
- position: relative;
- .arco-btn-group {
- position: absolute;
- right: 10px;
- top: 90px;
- }
&:hover {
transform: translateY(-4px);
// box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.1);
--
Gitblit v1.8.0