input改造文件上传,el-table的改造,点击上传,拖拽上传,多选上传

news2024/11/16 3:19:42

第一个input标签效果

第二个input标签的效果

el-table的改造效果

<template>
  <div class="outerBox">
    <div class="analyze" v-if="status">
      <div class="unFile">
        <div class="mainBox">
          <img class="picture" src="../../static/images/upload.png" />
          <div class="title">上传.log文件进行解析</div>
          <div class="clickBtn">
            <div class='notisfyWord'>上传内容</div>
            <input
            type="file"
            id="fileInput"
            @change="handleFileChange"
            accept=".log"
            style="width:100%;height:100%;cursor: pointer;opacity:0"
          /></div>
        </div>
      </div>
    </div>
    <div class="fileBox" v-if="!status">
      <div class="upload">
        <div>上传.log文件进行解析
          <input
            type="file"
            id="fileInput"
            @change="handleFileChange"
            accept=".log"
            style="width:100%;height:100%;opacity:0;cursor:pointer;position:absolute;top:0;left:0;"
          />
        </div>
        <div class="fileName">{{ fileName }}</div>
      </div>

      <div class="tableStyle">
        <el-table
          :data="tableData"
          height="70vh"
          style="width: 100%"
          :header-row-style="{
            color: 'white',
          }"
          :row-style="{
            color: 'white',
          }"
          :cell-style="{
            textAlign: 'center',
            border: '1px solid #0a1641',
          }"
          :header-cell-style="{
            textAlign: 'center',
            background: '#222d54',
            border: '1px solid #222d54',
          }"
          :row-class-name="tableRowClassName"
          v-loading="loading"
        >
          <el-table-column prop="sourceTime" label="时间" width="180">
          </el-table-column>
          <el-table-column prop="item" label="事项" width="150">
          </el-table-column>
          <!-- <el-table-column prop="msg" label="描述"> </el-table-column> -->
          <el-table-column prop="source" label="来源" width="100">
          </el-table-column>
          <el-table-column prop="subsystem" label="子系统"> </el-table-column>
          <el-table-column prop="level" label="严重等级"> </el-table-column>
          <el-table-column prop="value" label="值"> </el-table-column>
        </el-table>
        <!-- <el-pagination
          class="pagination"
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
          :current-page.sync="currentPage1"
          :page-size="100"
          layout="total, prev, pager, next"
          :total="1000"
        >
        </el-pagination> -->
      </div>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      loading: true,
      tableData: [],
      fileName: "",
      status: true,
      tableTotal:'',
      pageSize:100,
      midTableData: [],
      test:[
        {item:'qqqqq',unusual:'1'},
        {item:'qqqqq',unusual:'0'},
        {item:'qqqqq',unusual:'0'},
        {item:'qqqqq',unusual:'1'},
      ]
    };
  },
  mounted() {
    this.tableRowClassName;
  },
  methods: {
    clickBtn() {
      document.getElementById("fileInput").click();
    },
    handleFileChange(event) {
      const file = event.target.files[0];
      const fileType = file.name.split('.').pop();
      if(fileType != 'log'){
        this.$message.error('请上传.log文件');
        return
      }
      if(file.size >  50 * 1024){
        this.$message.error('最小上传文件大小为50k');
        return
      }
      this.fileName = file.name;
      this.status = false;
      // 模拟异步
      setTimeout(()=>{
        this.loading = false
        this.tableData = this.test;
      },2000)
    },
    tableRowClassName({ row, rowIndex }) {
      if (row.unusual === '0') {
        return "selected-row";
      } else {
        return "selected-rows";
      }
    },
    handleCurrentChange(val) {
      const start = val * 100
      const end = (val + 1) * 100
    },
  },
};
</script>

<style scoped>
::v-deep .selected-row {
  background-color: #e4d33d !important;
}
::v-deep .selected-rows {
  background-color: #0a1641 !important;
}
.outerBox {
  background: linear-gradient(180deg, #eaf4ff 0%, #042f61 100%);
}
.analyze {
  width: 100%;
  height: 100%;
  padding: 0 !important;
  display: flex;
  justify-content: center;
}

.upload {
  margin-top: 10px;
  line-height: 40px;
  display: flex;
  justify-content: center;
  align-items: center;
  color: white;
  font-size: 15px;
  background-color: #045fcb;
  border-radius: 7px;
  margin-bottom: 10px;
  position: relative;
  cursor: pointer;
}

.selected-row {
  background-color: #e4d33d !important;
}

.tableStyle {
  width: 100%;
  /* background-color: #094b97; */
}

.el-button {
  color: white !important;
  background: linear-gradient(180deg, #82dde1 0%, #4bb8c0 100%) !important;
}

.exportBtn {
  position: absolute;
  right: 10px;
  bottom: 10px;
}

.unFile {
  width: 50%;
  height: 40%;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 15%;
  background-color: #094b97;
  border-radius: 10px;
  border: 3px dashed #d4e1f3;
  overflow: hidden;
}

.picture {
  width: 150px;
}

.mainBox {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.title {
  color: white;
  font-size: 15px;
  display: flex;
  justify-content: center;
}

.clickBtn {
  overflow: hidden;
  opacity:1;
  color: white;
  border-radius: 5px;
  background-color: #2188ff;
  width:150px;
  height:50px;
  font-size: 15px;
  cursor: pointer;
  position: relative;
}
.notisfyWord{
  cursor: pointer;
  position: absolute;
  left:50%;
  top:50%;
  transform: translate(-50%,-50%);
}
.fileBox {
  background-color: #0a1642;
  padding: 10px;
}
.fileName {
  margin-left: 10px;
}
.pagination {
  display: flex;
  justify-content: right;
}
::v-deep .el-table--enable-row-hover .el-table__body tr:hover > td {
  color: black !important;
  background-color: #0460cb !important;
}

::v-deep .el-table__empty-text {
  color: white !important;
}
::v-deep .el-table__body-wrapper {
  background-color: #0a1641 !important;
}
::v-deep .el-table::before {
  background-color: #0a1642;
}
::v-deep .el-table .el-table__cell.gutter {
  background-color: #0a1642;
}
</style>

input支持拖拽上传但要设置opcity为0,不能设置diaplay:none或者visiables

  如果不使用拖拽上传的话,只点击上传可使用如下

          <div
            class="clickBtn"
            @click="clickBtn"
          >
            上传内容
          </div>
          <input
            type="file"
            id="fileInput"
            @change="handleFileChange"
            style="display: none"
          />

    clickBtn(){
      console.log("clickFackBtn");
      document.getElementById('fileInput').click()
    },

    handleFileChange(event) {
      const file = event.target.files[0];
      console.log(file);
    },

input同时也支持多选文件上传<input mutilple/>

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

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

相关文章

如何在日常操作中降低激光切割机的老化速度

光纤激光切割机进入各行各业后给很多行业带来了创新和机遇。光纤激光切割机提升了生产效率、提高了产品品质的、降低了生产成本&#xff0c;节约了加工材料&#xff0c;同时加速了新产品的研发进程。然而光纤激光切割机作为一台机械设备也会面临老化和高能耗的问题。 假如维护保…

WebDAV之π-Disk派盘 + 言叶

言叶是一个功能丰富的笔记软件,为跨平台而设计,可以为你在手机、电脑和其他设备中实现多端同步。从而实现高效率的记事和办公。支持Markdown的语言和多种计算机语法高亮功能,让你笔记中的内容更加主次分明,可以在这里记录一些代码什么的。同时还可以在笔记中插入图片,使其…

安卓开发实例:方向传感器

调用手机的方向传感器&#xff0c;X轴&#xff0c;Y轴&#xff0c;Z轴的数值 activity_sensor.xml <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayoutxmlns:android"http://schemas.android.c…

微信JSAPI支付对接

简介 JSAPI支付是指商户通过调用微信支付提供的JSAPI接口&#xff0c;在支付场景中调起微信支付模块完成收款。 应用场景 JSAPI支付适用于线下场所、公众号场景和PC网站场景。 商户已有H5商城网站&#xff0c;用户通过消息或扫描二维码在微信内打开网页时&#xff0c;可以调…

我做了一个世界杯的可视化网站...

好吧我是标题党&#xff0c;标题用的是完成时&#xff0c;但是事实上我这个还没完成。 这学期有个数据可视化的作业&#xff0c;遂决定做一个世界杯主题的可视化网站。基于Python、Flask和Echarts。 大概思路可以用下图表示&#xff1a; 因此网站也将分为3个大块&#xff0c;…

解决图表内容超出xy轴范围

问题&#xff1a; 解决方式&#xff1a; xAxis: {boundaryGap: true, // 留白属性 }

忆联再次与 OpenCloudOS 完成产品兼容性互认证

近日&#xff0c;忆联数据中心级SSD UH711a与OpenCloudOS 完成相互兼容认证&#xff0c;测试期间&#xff0c;整体运行稳定&#xff0c;在功能、性能及兼容性方面表现良好。 兼容认证证书 作为国产开源操作系统社区&#xff0c;OpenCloudOS 沉淀了腾讯及多家厂商在软件和开源生…

JS清除字符串中的空格

一、replace()方法 replace方法在字符串中搜索值或正则表达式&#xff0c;返回已替换值的新字符串&#xff0c;不会更改原始字符串。 去除字符串内所有的空格&#xff1a;str str.replace(/\s*/g,“”) 去除字符串内两头的空格&#xff1a;str str.replace(/^\s*|\s*$/g,“…

人大加拿大女王大学金融硕士项目——不一定有逆风翻盘,但一定要向阳而生

只有足够努力&#xff0c;才会足够幸运。想要得到世界上最好的东西&#xff0c;得先让时间看到最好的你。不一定有逆风翻盘&#xff0c;但一定要向阳而生。作为在职人士&#xff0c;不断的提升自己是非常重要的。如果停滞不前&#xff0c;便会被社会所淘汰。而人大加拿大女王大…

计讯物联外贸公司--佰沃恩应邀出席第三届“嘉庚论坛”—科技创新推动经济高质量发展分论坛

10月22日&#xff0c;以“数智创新能动未来”为主题的第三届“嘉庚论坛”—科技创新推动经济高质量发展分论坛于集美海景皇冠假日酒店正式启幕。此论坛聚焦集美区战略前沿产业&#xff0c;汇聚来自全国各地优秀的企业家、高校及科研院所专家学者&#xff0c;并邀请相关领域的亲…

【EI会议征稿通知】第二届材料科学与智能制造国际学术会议(MSIM 2024)

第二届材料科学与智能制造国际学术会议&#xff08;MSIM 2024&#xff09; 2024 2nd International Conference on Materials Science and Intelligent Manufacturing 2024年第二届材料科学与智能制造国际学术会议 &#xff08;MSIM2024&#xff09;将于2024年1月19日至21日在…

【递归】Pow(x , n)(Java版)

目录 1.题目解析 2.讲解算法原理 2.1.如何来解决Pow问题&#xff1f; 2.2.为什么这道题可以用递归来做&#xff1f; 2.2.1 什么是递归 2.2.2 为什么会用到递归 3.如何编写递归代码&#xff1f; 4.递归的细节展开图 1.题目解析 50.Pow(x , n) 实现 pow(x, n) &#xf…

echarts 实现tooltip自动轮播显示,鼠标悬浮时暂停

在ECharts中&#xff0c;可以通过设置 tooltip.trigger"axis" &#xff0c;来显示数据轴上的提示框。 实现tooltip的自动轮播显示&#xff0c;结合使用 setInterval()和 dispatchAction()方法。 获取chart DOM 实例&#xff0c;监听鼠标事件&#xff0c;悬浮时清空定…

【java学习—九】接口 interface(5)

文章目录 1. 相关概念2. 接口的特点3. 应用举例3.1. 特点&#xff1a;接口中的成员变量和方法的默认修饰3.2. 特点&#xff1a;一个类可以实现多个无关的接口3.3. 特点&#xff1a;接口可以继承接口3.4. 特点&#xff1a;实现接口的类中必须提供接口中所有方法的具体实现内容&a…

2核4G服务器5M带宽?选腾讯云轻量应用服务器吧

2核4G服务器5M带宽&#xff1f;选腾讯云轻量应用服务器吧&#xff0c;因为划算&#xff0c;价格便宜&#xff01;2023腾讯云双11优惠活动&#xff1a;轻量2核4G5M服务器166.6元/年&#xff0c;3年566.6元&#xff0c;50GB SSD云硬盘&#xff0c;300GB月流量&#xff0c;值得买的…

结构伪类选择器

伪类选择器&#xff1a;用来描述一个元素的特殊状态&#xff01;比如第一个元素、某个元素的子元素、鼠标点击的元素 1 first-child/last-child /*ul的第一个子元素*/ ul li:first-child{ background: #0f35ad; } /*ul的最后一个子元素*/ ul li:last-child{ background: #0f3…

Java多线程篇(12)——ForkJoinPool

文章目录 1、基本原理2、源码2.1、sumbit干了啥&#xff1f;2.2、工作线程如何运行&#xff1f;怎么窃取&#xff1f;2.3、fork干了啥&#xff1f;2.4、join干了啥&#xff1f; 1、基本原理 假设有大量的CPU密集型计算任务&#xff0c;比如计算1-100的总和&#xff0c;普通的写…

两天写一个电影资讯速览微信小程序(附源码)

简介 基于原生小程序精仿的猫眼电影&#xff0c;仅供学习和参考。 首页效果图 数据请求 url: https://m.maoyan.com/ajax/movieOnInfoList?token,success(res) {const movieList0 _this.formatImgUrl(res.data.movieList)wx.hideLoading()_this.setData({movieIds0: res.…

虚幻中的网络概述一

前置&#xff1a;在学习完turbo强大佬的多人fps之后发觉自己在虚幻网络方面还有许多基础知识不太清楚&#xff0c;结合安宁Ken大佬与虚幻官方文档进行补足。 补充&#xff1a;官方文档中的描述挺好的&#xff0c;自己只算是搬运和将两者结合加强理解。 学习虚幻中的网络先从虚…

基于标签的协同过滤推荐方法研究

&#xff3b;摘要&#xff3d; 2.2标签相似度矩阵 惩罚jaccard相关热度系数