From f6ba464aa7856b8201e313fe79e651aab34e6509 Mon Sep 17 00:00:00 2001 From: zhangxiao <898441624@qq.com> Date: 星期一, 05 八月 2024 10:25:44 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.5.5:10010/r/web/flow_web --- src/views/dmx/IntelligentAgent/index.vue | 341 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 341 insertions(+), 0 deletions(-) diff --git a/src/views/dmx/IntelligentAgent/index.vue b/src/views/dmx/IntelligentAgent/index.vue new file mode 100644 index 0000000..6954a65 --- /dev/null +++ b/src/views/dmx/IntelligentAgent/index.vue @@ -0,0 +1,341 @@ +<template> + <div class="container"> + <Breadcrumb :items="['澶фā鍨�', '鏅鸿兘浣撶鐞�']" /> + <a-row :gutter="20" align="stretch"> + <a-col :span="24"> + <a-card class="general-card" :title="$t('鏅鸿兘浣撶鐞�')"> + <div style="display: flex; justify-content: right"> + <a-input-search + :placeholder="$t('cardList.searchInput.placeholder')" + style="width: 240px" + @change="queryList" + /> + </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-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> + <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 }} + </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-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> + </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> + </a-col> + </a-row> + </a-card> + </a-col> + </a-row> + </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 { Message } from '@arco-design/web-vue'; + import { deletedialog, querydialogList } from '@/api/Agent'; + import useLoading from '@/hooks/loading'; + const { loading, setLoading } = useLoading(true); + + 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 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: '', + }); + + const queryList = async (params = {}) => { + setLoading(true); + try { + 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 deleteItem = async (row) => { + console.log(row); + let data = await deletedialog({ dialog_ids: [row.id] }); + if (data.code == 0) { + Message.success('鍒犻櫎鎴愬姛'); + queryList(); + } + }; + const handleChange = async (item) => { + if (item) { + Object.assign(form, item); + } + }; + const handleCancel = () => { + queryList(); + }; + const handleSubmit = ({ values, errors }) => { + this.$refs.formRef.validate().then((res, a, b) => { + debugger; + console.log('values', values); + }); + }; + onBeforeMount(() => { + queryList(); + }); +</script> + +<script lang="ts"> + export default { + name: 'Card', + }; +</script> + +<style scoped lang="less"> + .container { + padding: 0 20px 20px 20px; + :deep(.arco-list-content) { + overflow-x: hidden; + } + + :deep(.arco-card-meta-title) { + font-size: 14px; + } + } + :deep(.arco-list-col) { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: space-between; + } + + :deep(.arco-list-item) { + width: 33%; + } + + :deep(.block-title) { + margin: 0 0 12px 0; + font-size: 14px; + } + :deep(.list-wrap) { + // min-height: 140px; + .list-row { + align-items: stretch; + .list-col { + margin-bottom: 16px; + } + } + :deep(.arco-space) { + width: 100%; + .arco-space-item { + &:last-child { + flex: 1; + } + } + } + } + .card-wrap { + width: 23%; + height: 200px; + margin: 1%; + transition: all 0.3s; + border: 1px solid var(--color-neutral-3); + border-radius: 4px; + position: relative; + &:hover { + transform: translateY(-4px); + // box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.1); + } + :deep(.arco-card) { + height: 100%; + border-radius: 4px; + .arco-card-body { + height: 100%; + .arco-space { + width: 100%; + height: 100%; + .arco-space-item { + height: 100%; + &:last-child { + flex: 1; + } + .arco-card-meta { + height: 100%; + display: flex; + flex-flow: column; + .arco-card-meta-content { + flex: 1; + .arco-card-meta-description { + margin-top: 8px; + color: rgb(var(--gray-6)); + line-height: 20px; + font-size: 12px; + } + } + .arco-card-meta-footer { + margin-top: 0; + } + } + } + } + } + } + :deep(.arco-card-meta-title) { + display: flex; + align-items: center; + + // To prevent the shaking + line-height: 28px; + } + :deep(.arco-skeleton-line) { + &:last-child { + display: flex; + justify-content: flex-end; + margin-top: 20px; + } + } + } + .arco-card-body-content { + .arco-card-body-content-top { + margin-top: 10px; + text-align: center; + } + .arco-card-body-content-down { + text-align: center; + margin-top: 10px; + font-size: 12px; + color: #999999; + width: 100%; + height: 60px; + } + } +</style> -- Gitblit v1.8.0