From a4ca216c5b215f323b3c439b2f445dad72bbfce1 Mon Sep 17 00:00:00 2001 From: zhangxiao <898441624@qq.com> Date: 星期一, 26 八月 2024 16:44:31 +0800 Subject: [PATCH] fix: 修改bug --- src/views/dmx/IntelligentAgent/index.vue | 382 ++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 253 insertions(+), 129 deletions(-) diff --git a/src/views/dmx/IntelligentAgent/index.vue b/src/views/dmx/IntelligentAgent/index.vue index 6954a65..3013586 100644 --- a/src/views/dmx/IntelligentAgent/index.vue +++ b/src/views/dmx/IntelligentAgent/index.vue @@ -3,171 +3,273 @@ <Breadcrumb :items="['澶фā鍨�', '鏅鸿兘浣撶鐞�']" /> <a-row :gutter="20" align="stretch"> <a-col :span="24"> - <a-card class="general-card" :title="$t('鏅鸿兘浣撶鐞�')"> + <a-card class="general-card" :title="$t('')" style="padding-top: 50px"> <div style="display: flex; justify-content: right"> <a-input-search :placeholder="$t('cardList.searchInput.placeholder')" style="width: 240px" @change="queryList" /> + <a-button + type="primary" + @click="handleClick" + style="margin-left: 10px" + > + <template #icon> + <icon-plus /> + </template> + 鏂板缓鏅鸿兘浣� + </a-button> </div> <a-divider style="margin: 10px 0" /> <a-row justify="space-between"> <a-col :span="24"> - <div style="display: flex; flex-wrap: wrap"> - <div - class="card-wrap" - style="cursor: pointer" - @click="handleAdd" + <a-spin :loading="loading" style="width: 100%"> + <a-scrollbar + style=" + display: flex; + flex-wrap: wrap; + align-content: flex-start; + overflow: auto; + height: calc(100vh - 300px); + " + :style="{ height: documentHeight + 'px' }" > - <a-card :bordered="false" hoverable> - <div style="margin-top: 30px; text-align: center"> - <a-avatar style="background: #3370ff"> - <icon-plus /> +<!-- 鏅鸿兘浣撳垪琛�--> + <div + class="card-wrap" + v-for="(item, index) of agentList" + :key="item.id" + > + <a-card :bordered="false" hoverable> + <a-avatar :style="{ backgroundColor: '#5b99da' }"> + <img + :style="{ width: '100%' }" + alt="dessert" + :src="item.icon || imgSrc" + /> </a-avatar> - </div> - <div class="arco-card-body-content"> - <div style="text-align: center; margin-top: 10px"> - 鏂板缓鏅鸿兘浣� + <a-switch + v-model="item.off" + style="position: absolute; top: 10px; right: 10px" + size="medium" + @change="handleChange(item)" + > + <template #checked> 涓婄嚎 </template> + <template #unchecked> 涓嬬嚎 </template> + </a-switch> + <div class="arco-card-body-content"> + <div class="arco-card-body-content-top"> + <span style="font-size: 18px; font-weight: 900"> + {{ item.name }} + </span> + </div> + <div class="arco-card-body-content-down"> + {{ item.prompt_config.prologue }} + </div> </div> <div - style=" - text-align: center; - margin-top: 10px; - font-size: 12px; - color: #999999; - " + style="position: absolute; bottom: 1.4rem; left: 1rem" > - 閫氳繃鎻忚堪瑙掕壊鍜屼换鍔℃潵鍒涘缓浣犵殑鏅鸿兘浣�<br /> - 鏅鸿兘浣撳彲浠ヨ皟鐢ㄥ涓伐浣滄祦鍜屽伐鍏� - </div> - </div> - <add-agent ref="addAgents"></add-agent> - <!-- <div style="position: absolute; bottom: 1rem; right: 1rem;">--> - <!-- <a-space>--> - <!-- </a-space>--> - <!-- </div>--> - </a-card> - </div> - <div - class="card-wrap" - v-for="(item, index) of agentList" - :key="item.id" - > - <a-card :bordered="false" hoverable> - <a-avatar :style="{ backgroundColor: '#3370ff' }"> - <img - :style="{ width: '100%' }" - alt="dessert" - src="https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/a20012a2d4d5b9db43dfc6a01fe508c0.png~tplv-uwbnlip3yd-webp.webp" - /> - </a-avatar> - <a-switch - v-model="item.off" - style="position: absolute; top: 10px; right: 10px" - size="medium" - @change="handleChange(item)" - > - <template #checked> 涓婄嚎 </template> - <template #unchecked> 涓嬬嚎 </template> - </a-switch> - <div class="arco-card-body-content"> - <div class="arco-card-body-content-top"> - <span style="font-size: 18px; font-weight: 900"> - {{ item.name }} + <icon-user /> + <span style="font-size: 12px"> + <!-- {{ item.name }}--> </span> </div> - <div class="arco-card-body-content-down"> - {{ item.prompt_config.prologue }} + <div + style="position: absolute; bottom: 1rem; right: 1rem" + > + <a-space> + <span v-show="!item.off"> + <a-button + type="text" + size="small" + @click="editClick(item)" + > + <template #icon> + <icon-tool /> + </template> + </a-button> + </span> + <a-popconfirm + :content="'纭畾鍒犻櫎鍚�'" + type="warning" + @ok="deleteItem(item)" + > + <a-button type="text"> + <template #icon> + <icon-delete /> + </template> + </a-button> + </a-popconfirm> + </a-space> </div> - </div> - <div style="position: absolute; bottom: 1.4rem; left: 1rem"> - <icon-user /> - <span style="font-size: 12px"> - <!-- {{ item.name }}--> - </span> - </div> - <div style="position: absolute; bottom: 1rem; right: 1rem"> - <a-space> - <span v-show="!item.off"> - <editAgent - ref="editAgentKuai" - typeAngint="edit" - :formData="form" - @cancelModal="handleCancel" - ></editAgent> + </a-card> + </div> +<!-- agent鍒楄〃--> + <div + class="card-wrap" + v-for="(item, index) of agentNewList" + :key="item.id" + > + <a-card :bordered="false" hoverable> + <a-avatar :style="{ backgroundColor: '#5b99da' }"> + <img + :style="{ width: '100%' }" + alt="dessert" + :src="item.avatar || imgSrc" + /> + </a-avatar> +<!-- <a-switch--> +<!-- v-model="item.off"--> +<!-- style="position: absolute; top: 10px; right: 10px"--> +<!-- size="medium"--> +<!-- @change="handleChange(item)"--> +<!-- >--> +<!-- <template #checked> 涓婄嚎 </template>--> +<!-- <template #unchecked> 涓嬬嚎 </template>--> +<!-- </a-switch>--> + <div class="arco-card-body-content"> + <div class="arco-card-body-content-top"> + <span style="font-size: 18px; font-weight: 900"> + {{ item.title }} + </span> + </div> +<!-- <div class="arco-card-body-content-down">--> +<!-- {{ item.prompt_config.prologue }}--> +<!-- </div>--> + </div> + <div + style="position: absolute; bottom: 1.4rem; left: 1rem" + > + <icon-calendar-clock /> + <span style="font-size: 12px;margin-left: 10px"> + {{ moment(item.create_date).format('YYYY-MM-DD HH:mm:ss') }} </span> - <a-popconfirm - :content="'纭畾鍒犻櫎鍚�'" - type="warning" - @ok="deleteItem(item)" - > - <a-button type="text" size="small"> - <template #icon> - <icon-delete /> - </template> - </a-button> - </a-popconfirm> - </a-space> - </div> - </a-card> - </div> - </div> + </div> +<!-- <div--> +<!-- style="position: absolute; bottom: 1rem; right: 1rem"--> +<!-- >--> +<!-- <a-space>--> +<!-- <a-popconfirm--> +<!-- :content="'纭畾鍒犻櫎鍚�'"--> +<!-- type="warning"--> +<!-- @ok="deleteItem(item)"--> +<!-- >--> +<!-- <a-button type="text">--> +<!-- <template #icon>--> +<!-- <icon-delete />--> +<!-- </template>--> +<!-- </a-button>--> +<!-- </a-popconfirm>--> +<!-- </a-space>--> +<!-- </div>--> + </a-card> + </div> + </a-scrollbar> + <!-- <div--> + <!-- class="card-wrap"--> + <!-- style="cursor: pointer"--> + <!-- @click="handleAdd"--> + <!-- >--> + <!-- <a-card :bordered="false" hoverable>--> + <!-- <div style="margin-top: 30px; text-align: center">--> + <!-- <a-avatar style="background: #3370ff">--> + <!-- <icon-plus />--> + <!-- </a-avatar>--> + <!-- </div>--> + <!-- <div class="arco-card-body-content">--> + <!-- <div style="text-align: center; margin-top: 10px">--> + <!-- 鏂板缓鏅鸿兘浣�--> + <!-- </div>--> + <!-- <div--> + <!-- style="--> + <!-- text-align: center;--> + <!-- margin-top: 10px;--> + <!-- font-size: 12px;--> + <!-- color: #999999;--> + <!-- "--> + <!-- >--> + <!-- 閫氳繃鎻忚堪瑙掕壊鍜屼换鍔℃潵鍒涘缓浣犵殑鏅鸿兘浣�<br />--> + <!-- 鏅鸿兘浣撳彲浠ヨ皟鐢ㄥ涓伐浣滄祦鍜屽伐鍏�--> + <!-- </div>--> + <!-- </div>--> + <!-- <add-agent ref="addAgents"></add-agent>--> + <!-- <!– <div style="position: absolute; bottom: 1rem; right: 1rem;">–>--> + <!-- <!– <a-space>–>--> + <!-- <!– </a-space>–>--> + <!-- <!– </div>–>--> + <!-- </a-card>--> + <!-- </div>--> + </a-spin> </a-col> </a-row> </a-card> </a-col> </a-row> + <agent-config + ref="editAgentKuai" + :typeAngint="addType" + :formData="itemObj" + @queryList="queryList" + ></agent-config> </div> </template> <script lang="ts" setup> - import { ref, reactive, nextTick, onBeforeMount } from 'vue'; - import addAgent from '@/views/dmx/IntelligentAgent/components/addAgent.vue'; - import editAgent from '@/views/dmx/IntelligentAgent/components/editAgent.vue'; - import { kbdocumentrm, queryKbList } from '@/api/kbList'; + import { + ref, + reactive, + nextTick, + onBeforeMount, + onMounted, + onBeforeUnmount, + } from 'vue'; import { Message } from '@arco-design/web-vue'; - import { deletedialog, querydialogList } from '@/api/Agent'; + import { deletedialog, queryCanvasList, querydialogdetail, querydialogList } from "@/api/Agent"; import useLoading from '@/hooks/loading'; const { loading, setLoading } = useLoading(true); - + import EventBus from '@/utils/EventBus'; + import AgentConfig from '@/views/dmx/IntelligentAgent/components/agentConfig.vue'; + import logo from '../../../assets/images/model.png'; + import { documentHeight, parseTime } from "@/utils"; + import moment from "moment"; + // console.log(documentHeight,'楂樺害'); let count = 5; const activeKey = ref(1); const addAgents = ref(); - const editAgentKuai = ref(); - const agentList = ref([ - // { - // key: 2, - // title: '鍐呭璐ㄦ', - // content: 'Content of Tab Panel 2', - // }, - // { - // key: 3, - // title: '寮�閫氭湇鍔�', - // content: 'Content of Tab Panel 3', - // }, - // { - // key: 4, - // title: '瑙勫垯棰勭疆', - // content: 'Content of Tab Panel 4', - // }, - ]); + const editAgentKuai = ref(null); + const imgSrc = ref(logo); + const agentList = ref([]); + const agentNewList = ref([]); const changeTabs = (val) => { activeKey.value = val; }; const handleAdd = () => { addAgents.value.handleClick(); }; - const handleDelete = (key: any) => { - data.value = data.value.filter((item) => item.key !== key); - }; const visible = ref(false); const formRef = ref(null); - const form = reactive({ - // size: 'medium', - // name: '', - }); + let addType = ref('add'); + let itemObj = reactive({}); + const form = reactive({}); + + + const handleClick = () => { + addType.value = 'add'; + editAgentKuai.value.handleClick(); + }; + + const editClick = async(data) => { + let res = await querydialogdetail({ + dialog_id: data.id + }) + Object.assign(itemObj, res.data); + addType.value = 'edit'; + editAgentKuai.value.editClick(); + }; + const queryList = async (params = {}) => { setLoading(true); @@ -175,6 +277,25 @@ const { data } = await querydialogList(params); console.log(data, 'data'); agentList.value = data.map((item) => { + return { + ...item, + off: true, + }; + }); + } catch (err) { + // you can report use errorHandler or other + } finally { + setLoading(false); + } + }; + + + const queryCanvas = async (params = {}) => { + setLoading(true); + try { + const { data } = await queryCanvasList(params); + console.log(data, 'agent'); + agentNewList.value = data.map((item) => { return { ...item, off: true, @@ -203,14 +324,17 @@ const handleCancel = () => { queryList(); }; - const handleSubmit = ({ values, errors }) => { - this.$refs.formRef.validate().then((res, a, b) => { - debugger; - console.log('values', values); - }); - }; onBeforeMount(() => { queryList(); + queryCanvas(); + }); + onMounted(() => { + EventBus.on('queryList', () => { + queryList(); + }); + }); + onBeforeUnmount(() => { + EventBus.off('queryList'); }); </script> @@ -330,7 +454,7 @@ text-align: center; } .arco-card-body-content-down { - text-align: center; + // text-align: center; margin-top: 10px; font-size: 12px; color: #999999; -- Gitblit v1.8.0