| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- <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: '',// 备注
- });
- 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>
- <script lang="ts">
- export default {
- name: 'add',
- methods: {
- }
- };
- </script>
|