<template>
|
<a-button type="primary" @click="handleClick" style="margin-left: 10px">
|
<template #icon>
|
<icon-plus />
|
</template>
|
</a-button>
|
<a-modal
|
v-model:visible="visible"
|
title="添加模式"
|
@before-open="handleOpened"
|
@cancel="handleCancel"
|
:footer="false"
|
title-align="start"
|
width="600px"
|
>
|
<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>
|
</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
|
>
|
</div>
|
</a-form-item>
|
</a-form>
|
</a-modal>
|
</template>
|
|
<script lang="ts" setup>
|
import { onMounted, onBeforeMount, reactive, ref } from 'vue';
|
|
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 rules = {
|
name: [
|
{
|
required: true,
|
message:'名称不允许为空',
|
},
|
],
|
}
|
|
|
const handleSubmit = ({values, errors}) => {
|
console.log('values:', values, '\nerrors:', errors)
|
}
|
|
const handleClick = () => {
|
visible.value = true;
|
};
|
const handleBeforeOk = (done) => {
|
formRef.value.validate().then(res => {
|
console.log('form:', form)
|
if (!form.name) {
|
done(false)
|
}else {
|
console.log('请求数据');
|
}
|
})
|
};
|
const handleCancel = () => {
|
visible.value = false;
|
}
|
|
const handleOpened =(el) => {
|
Object.assign(form,{
|
name: '',// 用户名
|
nameJoin: '',// 昵称
|
post: '',// 岗位
|
txt: '',// 备注
|
});
|
const formRef = ref(null);
|
|
const rules = {
|
name: [
|
{
|
required: true,
|
message: '名称不允许为空',
|
},
|
],
|
};
|
|
const handleSubmit = ({ values, errors }) => {
|
console.log('values:', values, '\nerrors:', errors);
|
};
|
|
const handleClick = () => {
|
visible.value = true;
|
};
|
const handleBeforeOk = (done) => {
|
formRef.value.validate().then((res) => {
|
console.log('form:', form);
|
if (!form.name) {
|
done(false);
|
} else {
|
console.log('请求数据');
|
}
|
});
|
};
|
const handleCancel = () => {
|
visible.value = false;
|
};
|
|
const handleOpened = (el) => {
|
Object.assign(form, {
|
name: '', // 用户名
|
nameJoin: '', // 昵称
|
post: '', // 岗位
|
txt: '', // 备注
|
});
|
formRef.value.resetFields();
|
};
|
|
const file = ref();
|
|
const onChange = (_, currentFile) => {
|
file.value = {
|
...currentFile,
|
// url: URL.createObjectURL(currentFile.file),
|
};
|
};
|
const onProgress = (currentFile) => {
|
file.value = currentFile;
|
};
|
|
onBeforeMount(() => {});
|
onMounted(() => {});
|
</script>
|