¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <div class="app"> |
| | | <div class="dragger"> |
| | | <a-upload-dragger |
| | | v-model:fileList="fileList" |
| | | name="file" |
| | | accept="image/png, image/jpeg" |
| | | :multiple="false" |
| | | action="/herb/dry/real/identify" |
| | | :beforeUpload="beforeUpload" |
| | | @change="handleChange" |
| | | @drop="handleDrop" |
| | | > |
| | | <p class="ant-upload-drag-icon"> |
| | | <inbox-outlined></inbox-outlined> |
| | | </p> |
| | | <p class="ant-upload-text">ç¹å»éæ©å¾çï¼æå°å¾çæå°æ¤åºåå
ä¸ä¼ </p> |
| | | <p class="ant-upload-hint"> |
| | | ä»
æ¯æå个å¾ç |
| | | </p> |
| | | </a-upload-dragger> |
| | | |
| | | </div> |
| | | |
| | | <div class="card"> |
| | | |
| | | |
| | | <a-row :gutter="10" style="width: 100%;"> |
| | | <a-col :span="12"> |
| | | <div > |
| | | <a-card title="è¯å«å¾å" > |
| | | <div class="img"> |
| | | <div v-if="previewUrl" style="display: flex; justify-content: center;"> |
| | | <!-- <a-image |
| | | :width="200" |
| | | :src="previewUrl" |
| | | /> --> |
| | | <img :src="previewUrl" alt="é¢è§å¾ç" style="max-height: 500px; max-width: 100%;" /> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | </a-card> |
| | | </div> |
| | | </a-col> |
| | | <a-col :span="12"> |
| | | <div > |
| | | <a-card title="è¯å«ç»æ"> |
| | | <div class="res"> |
| | | <a-table :columns="columns" :data-source="results" :pagination="false"> |
| | | </a-table> |
| | | </div> |
| | | </a-card> |
| | | </div> |
| | | </a-col> |
| | | </a-row> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { onMounted, ref, onUnmounted } from "vue"; |
| | | import { InboxOutlined } from '@ant-design/icons-vue'; |
| | | import { message } from 'ant-design-vue'; |
| | | import type { UploadChangeParam } from 'ant-design-vue'; |
| | | const fileList = ref([]); |
| | | const previewUrl = ref() |
| | | const results = ref([]) |
| | | const columns = [ |
| | | { |
| | | title: 'åç§', |
| | | dataIndex: 'className', |
| | | key: 'className', |
| | | }, |
| | | { |
| | | title: 'å¯ä¿¡åº¦', |
| | | dataIndex: 'probability', |
| | | key: 'probability', |
| | | }, |
| | | ] |
| | | const handleChange = (info: UploadChangeParam) => { |
| | | // console.log("å¾ç",info.file); |
| | | // let reader = new FileReader() |
| | | // reader.readAsDataURL(info.file.originFileObj) // æä»¶è½¬æ¢ |
| | | // reader.onloadend = function () { |
| | | // let src = this.result |
| | | |
| | | // console.log("src::", src) |
| | | |
| | | // } |
| | | |
| | | const status = info.file.status; |
| | | if (status !== 'uploading') { |
| | | console.log(info.file, info.fileList); |
| | | } |
| | | if (status === 'done') { |
| | | message.success(`${info.file.name} file uploaded successfully.`); |
| | | console.log("done",info.file.response.result) |
| | | results.value = info.file.response.result |
| | | } else if (status === 'error') { |
| | | message.error(`${info.file.name} file upload failed.`); |
| | | } |
| | | }; |
| | | function handleDrop(e: DragEvent) { |
| | | console.log(e); |
| | | } |
| | | |
| | | function beforeUpload(file) { |
| | | console.log("before",file) |
| | | previewUrl.value = URL.createObjectURL(file) |
| | | |
| | | console.log("pre",previewUrl.value) |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | // DOMæè½½å®æå渲æå¾è¡¨ |
| | | onMounted(() => { |
| | | |
| | | |
| | | }); |
| | | |
| | | onUnmounted(() => { |
| | | |
| | | }); |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .app { |
| | | width: 100%; |
| | | |
| | | |
| | | .dragger { |
| | | margin:10px; |
| | | height: 200px; |
| | | background-color: white; |
| | | } |
| | | |
| | | .card { |
| | | margin-left: 10px; |
| | | display: flex; |
| | | .img { |
| | | height: 500px; |
| | | } |
| | | .res { |
| | | height: 500px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | </style> |