|
|
@@ -1,119 +1,99 @@
|
|
|
|
|
|
<template>
|
|
|
- <a-button type="text" size="small" @click="handleClick">
|
|
|
+ <a-button v-if="typeAngint=='edit'" type="text" size="small" @click="handleClick">
|
|
|
<template #icon>
|
|
|
<icon-tool />
|
|
|
</template>
|
|
|
</a-button>
|
|
|
-
|
|
|
- <a-modal v-model:visible="visible" title="添加模式"
|
|
|
+<!-- <a-button v-if="typeAngint=='add'" style="margin-left: 10px" type="primary" @click="handleClick">确定</a-button>-->
|
|
|
+ <a-modal v-model:visible="visible" title=""
|
|
|
@before-open="handleOpened"
|
|
|
@cancel="handleCancel"
|
|
|
:footer="false"
|
|
|
title-align="start"
|
|
|
- width="600px"
|
|
|
+ fullscreen
|
|
|
>
|
|
|
- <a-form ref="formRef" :rules="rules" :model="form" @submit="handleSubmit" :style="{width:'90%',margin:'0 auto'}" layout="vertical" >
|
|
|
- <a-form-item field="name" label="模型类型">
|
|
|
- <a-select v-model="form.section" placeholder="请选择">
|
|
|
- <a-option value="section one">Section One</a-option>
|
|
|
- <a-option value="section two">Section Two</a-option>
|
|
|
- <a-option value="section three">Section Three</a-option>
|
|
|
- </a-select>
|
|
|
- </a-form-item>
|
|
|
- <a-form-item field="name" label="模型名称">
|
|
|
- <a-input v-model="form.name" placeholder="请输入名称"/>
|
|
|
- </a-form-item>
|
|
|
- <a-form-item field="section" label="模型图片">
|
|
|
- <a-space direction="vertical" :style="{ width: '100%' }">
|
|
|
- <a-upload
|
|
|
- action="/"
|
|
|
- :fileList="file ? [file] : []"
|
|
|
- :show-file-list="false"
|
|
|
- @change="onChange"
|
|
|
- @progress="onProgress"
|
|
|
- >
|
|
|
- <template #upload-button>
|
|
|
- <div
|
|
|
- :class="`arco-upload-list-item${
|
|
|
- file && file.status === 'error' ? ' arco-upload-list-item-error' : ''
|
|
|
- }`"
|
|
|
- >
|
|
|
- <div
|
|
|
- class="arco-upload-list-picture custom-upload-avatar"
|
|
|
- v-if="file && file.url"
|
|
|
- >
|
|
|
- <img :src="file.url" />
|
|
|
- <div class="arco-upload-list-picture-mask">
|
|
|
- <IconEdit />
|
|
|
- </div>
|
|
|
- <a-progress
|
|
|
- v-if="file.status === 'uploading' && file.percent < 100"
|
|
|
- :percent="file.percent"
|
|
|
- type="circle"
|
|
|
- size="mini"
|
|
|
- :style="{
|
|
|
- position: 'absolute',
|
|
|
- left: '50%',
|
|
|
- top: '50%',
|
|
|
- transform: 'translateX(-50%) translateY(-50%)',
|
|
|
- }"
|
|
|
- />
|
|
|
- </div>
|
|
|
- <div class="arco-upload-picture-card" v-else>
|
|
|
- <div class="arco-upload-picture-card-text">
|
|
|
- <IconPlus />
|
|
|
- <div style="margin-top: 10px; font-weight: 600">上传</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <div class="main-container">
|
|
|
+ <div class="main-container-lf">
|
|
|
+ <div style="padding: 10px;font-size: 16px;background:#eeeeee;">智能体配置</div>
|
|
|
+ <div style="display: flex;width: 100%;" :style="{height:height}">
|
|
|
+ <div style="width: 50%;height: 100%">
|
|
|
+ <div style="padding: 10px;font-size: 12px;color: #2a2a2b;">智能体画像</div>
|
|
|
+ <div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <div style="background:#eeeeee;width: 50%;">
|
|
|
+ <a-form ref="formRef" :rules="rules" :model="form" @submit="handleSubmit" layout="vertical" >
|
|
|
+
|
|
|
+ <a-collapse :default-active-key="['1']">
|
|
|
+ <a-collapse-item header="AI模型配置" key="1">
|
|
|
+
|
|
|
+ </a-collapse-item>
|
|
|
+ <a-collapse-item header="开场引导" :key="'2'">
|
|
|
+
|
|
|
+ </a-collapse-item>
|
|
|
+ <a-collapse-item header="知识库" key="3">
|
|
|
+
|
|
|
+ </a-collapse-item>
|
|
|
+ <a-collapse-item header="工具" key="4" disabled>
|
|
|
+ </a-collapse-item>
|
|
|
+ <a-collapse-item header="工作流" key="5" disabled>
|
|
|
+ </a-collapse-item>
|
|
|
+ </a-collapse>
|
|
|
+
|
|
|
+ <a-form-item>
|
|
|
+ <div style="position: absolute;right: 10px;top: 10px">
|
|
|
+<!-- <a-button @click="visible = false">取消</a-button>-->
|
|
|
+ <a-button style="margin-left: 10px" type="primary" html-type="submit">保存</a-button>
|
|
|
</div>
|
|
|
- </template>
|
|
|
- </a-upload>
|
|
|
- </a-space>
|
|
|
- </a-form-item>
|
|
|
- <a-form-item field="name" label="基础Url">
|
|
|
- <a-input v-model="form.name" placeholder="请输入名称"/>
|
|
|
- </a-form-item>
|
|
|
- <a-form-item field="raptor" label="是否支持 Vision">
|
|
|
- <a-switch v-model="form.raptor" />
|
|
|
- </a-form-item>
|
|
|
-
|
|
|
- <a-form-item>
|
|
|
- <div style="width: 100%;text-align: right">
|
|
|
- <a-button @click="visible = false">取消</a-button>
|
|
|
- <a-button style="margin-left: 10px" type="primary" html-type="submit">确定</a-button>
|
|
|
+ </a-form-item>
|
|
|
+ </a-form>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="main-container-rt">
|
|
|
+ <div :style="{height:heightrg}">
|
|
|
+ <div style="padding: 10px">
|
|
|
+ <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>
|
|
|
+ 调试预览
|
|
|
+ </div>
|
|
|
+ <a-divider style="margin: 0;margin-left: 10px"/>
|
|
|
+
|
|
|
+ <div class="bottom">
|
|
|
+ <div class="input">
|
|
|
+ <a-input placeholder="输入您想了解的内容,按Enter发送">
|
|
|
+ <template #suffix>
|
|
|
+ <icon-send style="cursor: pointer" />
|
|
|
+ </template>
|
|
|
+ </a-input></div>
|
|
|
+ <div class="text">内容由AI生成,仅供参考</div>
|
|
|
</div>
|
|
|
- </a-form-item>
|
|
|
- </a-form>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</a-modal>
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts" setup>
|
|
|
-import { onMounted ,onBeforeMount, reactive, ref } from "vue";
|
|
|
-
|
|
|
+import { onMounted, onBeforeMount, reactive, ref, nextTick } from "vue";
|
|
|
+import { IconSend } from "@arco-design/web-vue/es/icon";
|
|
|
+const props = defineProps(['typeAngint','formData'])
|
|
|
const visible = ref(false);
|
|
|
const loading = ref(false);
|
|
|
const form = reactive({
|
|
|
- size: "medium",
|
|
|
- name: "",
|
|
|
- age: undefined,
|
|
|
- section: "0",
|
|
|
- province: "haidian",
|
|
|
- options: [],
|
|
|
- date: "",
|
|
|
- time: "",
|
|
|
- radio: "radio one",
|
|
|
- slider: 5,
|
|
|
- score: 5,
|
|
|
- switch: false,
|
|
|
- multiSelect: ["section one"],
|
|
|
- treeSelect: "",
|
|
|
- raptor: false,
|
|
|
- prompt: '请总结以下段落。 小心数字,不要编造。 段落如下:\n' +
|
|
|
- ' {cluster_content}\n' +
|
|
|
- '以上就是你需要总结的内容。',
|
|
|
+
|
|
|
});
|
|
|
const formRef = ref(null);
|
|
|
+const height = ref('calc(100vh - 150px)')
|
|
|
+const heightrg = ref('calc(100vh - 100px)')
|
|
|
|
|
|
const rules = {
|
|
|
name: [
|
|
|
@@ -129,9 +109,16 @@ const handleSubmit = ({values, errors}) => {
|
|
|
console.log('values:', values, '\nerrors:', errors)
|
|
|
}
|
|
|
|
|
|
-const handleClick = () => {
|
|
|
+const handleClick = (data) => {
|
|
|
visible.value = true;
|
|
|
+ nextTick(()=>{
|
|
|
+ Object.assign(form,data);
|
|
|
+ console.log(form);
|
|
|
+ })
|
|
|
};
|
|
|
+defineExpose({
|
|
|
+ handleClick
|
|
|
+})
|
|
|
const handleBeforeOk = (done) => {
|
|
|
formRef.value.validate().then(res => {
|
|
|
console.log('form:', form)
|
|
|
@@ -148,12 +135,6 @@ const handleCancel = () => {
|
|
|
}
|
|
|
|
|
|
const handleOpened =(el) => {
|
|
|
- Object.assign(form,{
|
|
|
- name: '',// 用户名
|
|
|
- nameJoin: '',// 昵称
|
|
|
- post: '',// 岗位
|
|
|
- txt: '',// 备注
|
|
|
- });
|
|
|
formRef.value.resetFields();
|
|
|
}
|
|
|
|
|
|
@@ -178,11 +159,32 @@ onMounted(()=>{
|
|
|
})
|
|
|
</script>
|
|
|
|
|
|
-<script lang="ts">
|
|
|
-export default {
|
|
|
- name: 'add',
|
|
|
- methods: {
|
|
|
-
|
|
|
+<style scoped lang="less">
|
|
|
+.main-container {
|
|
|
+ width: 100%;
|
|
|
+ display: flex;
|
|
|
+ .main-container-lf {
|
|
|
+ width: 60%;
|
|
|
}
|
|
|
-};
|
|
|
-</script>
|
|
|
+ .main-container-rt {
|
|
|
+ position: relative;
|
|
|
+ width: 40%;
|
|
|
+ }
|
|
|
+}
|
|
|
+.bottom{
|
|
|
+ width: 100%;
|
|
|
+ position: absolute;
|
|
|
+ bottom: 40px;
|
|
|
+ left:0;
|
|
|
+ .input{
|
|
|
+ margin-left: 20%;
|
|
|
+ width: 60%;
|
|
|
+ }
|
|
|
+ .text{
|
|
|
+ margin-left: 40%;
|
|
|
+ font-size: 12px;
|
|
|
+ color: lightgrey;
|
|
|
+ line-height: 40px;
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|