Vue3自定义文件列表页面(含上传、搜索、复制链接)

news2024/11/17 21:26:53

文章目录

  • 一、代码展示
  • 二、代码解读
  • 三、结果展示

一、代码展示

<template>
  <div class="container">
    <h1>文件列表</h1>
    <div class="header-actions">
      <a-input  placeholder="输入关键词搜索"  v-model:value="search" style="width: 200px;" />
      <a-button type="primary"  @click="fetchResource">搜索</a-button>
      <a-button type="primary" @click="showUploadModal">上传文件</a-button>
    </div>
    <div class="table-container" >
      <a-table :columns="columns" :dataSource="dataSource" :pagination="pagination" :current="pagination.current" :pageSize="pagination.pageSize" @change="handleTableChange">
        <template #bodyCell="{ column, record }">
          <template v-if="column.key === 'operation'">
            <a @click="copyLink(record.fileLink)">复制链接</a>
          </template>
        </template>
      </a-table>
    </div>
    <a-modal v-model:visible="uploadModalVisible" title="上传文件" @ok="handleUpload" @cancel="closeUploadModal">
      <a-form :form="uploadForm" layout="vertical">
        <a-form-item label="文件名" required>
          <a-input v-model:value="uploadForm.title" />
        </a-form-item>
        <a-form-item label="文件链接" required>
          <a-input v-model:value="uploadForm.source" />
        </a-form-item>
        <a-form-item label="文件类型(阿里、百度等)" required>
          <a-input v-model:value="uploadForm.type" />
        </a-form-item>
        <a-form-item label="备注" >
          <a-input v-model:value="uploadForm.remark" />
        </a-form-item>
      </a-form>
    </a-modal>
  </div>
</template>

<script setup></script>

<style scoped >

.table-container {
 min-height: 80vh;

}
.container {
margin-bottom: 20px;
  margin-top: 80px;
  background-color: #fff;
  padding: 20px;
  border-radius: 8px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

h1 {
  margin-bottom: 10px;
}

.header-actions {
  display: flex;
  gap: 10px;
  margin-bottom: 20px;
}

a-input {
  width: 200px;
}

.table-container {
  margin-top: 20px;
}


</style>

二、代码解读

<template> 部分是Vue文件的模板部分,用于定义页面的结构和布局。在这段代码中,<template> 主要包括了页面的 HTML 结构和 Ant Design Vue 组件的使用。下面是对 <template> 部分的详细解释:

  1. <div class="container">: 整个页面的容器,用于包裹所有内容,设置了一些样式,如边框圆角和阴影,使页面看起来更加美观。

  2. <h1>: 页面标题,显示"文件列表",用于标识页面的主题。

  3. <div class="header-actions">: 头部操作区域,包括搜索框、搜索按钮和上传文件按钮。这里使用了 Ant Design Vue 的样式和组件。

    • <a-input>: Ant Design Vue 中的输入框组件,用于输入搜索关键词。通过 v-model:value="search" 进行双向绑定,将输入框的值与 search 变量关联。

    • <a-button>: Ant Design Vue 中的按钮组件,包括搜索和上传文件两个按钮。使用 @click 监听按钮点击事件,分别调用 fetchResourceshowUploadModal 方法。

  4. <a-table>: Ant Design Vue 中的表格组件,用于展示文件列表。通过 :columns:dataSource:pagination 等属性将数据和配置传递给表格组件。

    • :columns="columns": 指定表格的列配置,定义了文件名、来源、类型、上传者、上传时间等列。

    • :dataSource="dataSource": 表格的数据源,使用了 Vue 的响应式引用 dataSource

    • :pagination="pagination": 表格分页的配置,包括是否显示大小调整器、是否显示快速跳转、每页显示数量等。

    • @change="handleTableChange": 监听表格分页、排序、筛选等变化,触发 handleTableChange 方法进行处理。

    • <template #bodyCell="{ column, record }">: 自定义表格单元格内容,在操作列显示"复制链接"的链接,通过调用 copyLink 方法实现。

  5. <a-modal>: 弹出的上传文件的模态框,包含文件名、文件链接、文件类型等输入框。通过 v-model:visible 控制模态框的显示和隐藏,使用 @ok@cancel 监听确定和取消按钮的点击事件,分别调用 handleUploadcloseUploadModal 方法。

    • <a-form>: Ant Design Vue 中的表单组件,包含文件名、文件链接、文件类型、备注等表单项。

      • <a-form-item>: 表单项,包括文件名、文件链接、文件类型和备注,其中文件名、文件链接和文件类型为必填项。

      • <a-input>: 输入框组件,用于输入文件名、文件链接、文件类型和备注,通过 v-model:value 进行双向绑定。

总体而言,<template> 部分定义了页面的结构,包括标题、搜索框、按钮、文件列表和上传文件模态框等组件,同时使用了 Ant Design Vue 提供的组件来实现样式和交互效果。

三、结果展示

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1479278.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验(一)

ACM9238 高速双通道ADC模块自助服务手册AD9238 一、实验目的 本次实验通过电脑上的网络调试助手&#xff0c;将命令帧进行发送&#xff0c;然后通过ACZ7015开发板上的以太网芯片接收&#xff0c;随后将接收到的数据转换成命令&#xff0c;从而实现对ACM9238模块采样频率、数据…

Java配置48-nginx 按照日期生成日志

1. 背景 默认情况下&#xff0c;nginx 的日志会一直输入到 access.log&#xff0c;长时间运行后会导致这个日志文件过大。 2. 方法 修改 nginx.conf map $time_iso8601 $logdate {~^(?<ymd>\d{4}-\d{2}-\d{2}) $ymd;default date-not-found;}access_log logs/acce…

用vivado创建一个赛灵思AXI的IP核

一、新建一个管理IP的任务 二、设置板子&#xff0c;verilog语言和文件位置 三、创建新的IP核 添加一个axi-full的master接口和axi-full的slave接口 四、查看赛灵思AXI代码 第一个是axi的master接口代码&#xff0c;下面的是axi的slave接口代码 五、打包IP核以供后续使用 六、…

【C语言基础】:深入理解指针(一)

文章目录 一、内存和地址1. 内存2. 如何理解编址 二、指针变量和地址2.1 取地址操作符(&)2.2 指针变量和解引用操作符(*)2.2.1 指针变量2.2.2 如何拆解指针变量2.2.3 解引用操作符 2.3 指针变量的大小 三、指针变量类型的意义3.1 指针的解引用3.2 指针 - 整数3.3 void*指针…

企业级指针仪表读数YOLOV8NANO

企业级指针仪表读数&#xff0c;采用YOLOV8NANO训练&#xff0c;检测表盘和表芯&#xff0c;得到PT模型&#xff0c;然后转换ONNX&#xff0c;让OPENCV调用。然后提取表芯区域&#xff0c;通过极坐标转换为直角坐标&#xff0c;再通过检测指针和刻度&#xff0c;换算成比例&…

【k8s管理--Helm包管理器】

1、Helm的概念 Kubernetes包管器 Helm是查找、分享和使用软件构件Kubernetes的最优方式。 Helm管理名为chart的Kubernetes包的工具。Helm可以做以下的事情&#xff1a; 从头开始创建新的chat将chart打包成归档tgz)文件与存储chat的仓库进行交互在现有的Kubernetes集群中安装和…

【Spring Cloud 进阶】OpenFeign 底层原理解析

参考文章 万字33张图探秘OpenFeign核心架构原理 | 三友SpringCloud OpenFeign源码详细解析Java 代理机制 OpenFeign 是一个精彩的使用动态代理技术的典型案例&#xff0c;通过分析其底层实现原理&#xff0c;我们可以对动态代理技术有进一步的理解。 目录 1. Feign 与 OpenFeig…

实验笔记之——Ubuntu20.04配置nvidia以及cuda并测试3DGS与SIBR_viewers

之前博文测试3DGS的时候一直用服务器进行开发&#xff0c;没有用过笔记本&#xff0c;本博文记录下用笔记本ubuntu20.04配置过程&#xff5e; 学习笔记之——3D Gaussian Splatting源码解读_3dgs运行代码-CSDN博客文章浏览阅读3.2k次&#xff0c;点赞34次&#xff0c;收藏62次…

智能指针(C++)

目录 一、智能指针是什么 二、为什么需要智能指针 三、智能指针的使用和原理 3.1、RALL 3.2 智能指针的原理 3.3、智能指针的分类 3.3.1、auto_ptr 3.3.2、unique_ptr 3.3.3、shared_ptr 3.2.4、weak_ptr 一、智能指针是什么 在c中&#xff0c;动态内存的管理式通过一…

从 iOS 设备恢复数据的 20 个iOS 数据恢复工具

作为 iPhone、iPad 或 iPod 用户&#xff0c;您可能普遍担心自己可能会丢失存储在珍贵 iOS 设备中的所有宝贵数据。数据丢失的原因多种多样&#xff0c;这里列出了一些常见原因&#xff1a; 1. iOS 软件更新 2. 恢复出厂设置 3. 越狱 4. 误操作删除数据 5. iOS 设备崩溃 …

【论文精读】DINOv2

摘要 学习与特定任务无关的预训练表示已经成为自然语言处理的标准&#xff0c;这些表示不进行微调&#xff0c;即可在下游任务上明显优于特定任务模型的性能。其主要得益于使用无监督语言建模目标对大量原始文本进行预训练。 遵循NLP中的这种范式转变&#xff0c;以探索计算机视…

Linux学习-C语言-运算符

目录 算术运算符&#xff1a; - * /:不能除0 %:不能对浮点数操作 &#xff1a;自增与运算符 i&#xff1a;先用再加 i:先加再用 --&#xff1a;自减运算符 常量&#xff0c;表达式不可以&#xff0c;--&#xff0c;变量可以 赋值运算符 三目运算符 逗号表达式 size…

Linux系统加固:如何有效管理系统账号

Linux系统加固&#xff1a;如何有效管理系统账号 1.1 口令重复次数限制1.2 避免系统存在uid相同的账号1.3 空密码的帐户1.4 口令复杂度1.5 口令生存期1.6 登录失败次数锁定策略 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在Linux系统中…

Mac OS 制作可引导安装器并重新安装系统

Mac 使用 U盘或移动固态硬盘制作可引导的安装器&#xff08;以 Monterey 为例&#xff09; 本教程参考 Apple 官网相关教程 创建可引导 Mac OS 安装器 重新安装 Mac OS 相关名词解释 磁盘分区会将其划分为多个单独的部分&#xff0c;称为分区。分区也称为容器&#xff0c;不同…

全面介绍HTML的语法!轻松写出网页

文章目录 heading(标题)paragraph(段落)link(超链接)imagemap(映射)table(表格)list(列表)layout(分块)form(表单)更多输入:datalistautocompleteautofocusmultiplenovalidatepatternplaceholderrequired head(首部)titlebaselinkstylemetascriptnoscript iframe HTML&#xff…

Linux 模拟实现shell【简单实现】

shell的模拟实现 我们知道shell是一个永不退出的程序&#xff0c;所以他应该是一个死循环&#xff0c;并且shell为了防止影响到自己&#xff0c;我们在命令行上输入的所有命令都是由shell的子进程来执行的&#xff0c;所以它应该要有创建子进程的相关函数&#xff0c;当然也会…

react 原理揭秘

1.目标 A. 能够知道setState()更新数据是异步的 B. 能够知道JSX语法的转化过程 C. 能够说出React组件的更新机制 D. 能够对组件进行性能优化 E. 能够说出虚拟DOM和Diff算法 2.目录 A. setState()的说明 B. JSX语法的转化过程 C. 组件更新机制 D. 组件性能优化 E. 虚拟DOM和D…

高效备考2025年AMC8数学竞赛:2000-2024年AMC8真题练一练

如何提高小学和初中数学成绩&#xff1f;小学和初中可以参加的数学竞赛有哪些&#xff1f;不妨了解一下AMC8美国数学竞赛&#xff0c;现在许多小学生和初中生都在参加这个比赛。如果孩子有兴趣&#xff0c;有余力的话可以系统研究AMC8的历年真题&#xff0c;即使不参加AMC8竞赛…

live555学习 - 环境准备

环境&#xff1a;Ubuntu 16.04.7 ffmpeg-6.1 1 代码下载 最新版本&#xff1a; http://www.live555.com/liveMedia/public/ 历史版本下载 https://download.videolan.org/pub/contrib/live555/ 选择版本live.2023.01.19.tar.gz ps&#xff1a;没有选择新版本是新版本在…

SuMa++代码阅读记录

文章目录 流程梳理1. 打开点云文件2. 播放点云数据3. SUMA部分的流程图说明3.1 SUMA核心流程分析&#xff0c;其中也包含部分SUMA3.2 preprocess部分3.3 updatePose部分3.4 updateMap部分 4. SUMA中有关语义模型rangenet的部分4.1 下面是解析模型引擎4.2 下面这块是从配置文件中…