Vue:将自制的icon打包成文件,使用的时候直接用class即可;以及直接使用icon文件

一、将icon存放在一个文件夹中,再写一个css文件
在这里插入图片描述

.components-icon-background {
  background-size: contain;
  background-position: 50%;
  background-repeat: no-repeat;
}
.components-icon {
  background-size: contain;
  background-position: 50%;
  background-repeat: no-repeat;
  position: relative;
  display: inline-block;
  width: 1.33333333em;
  line-height: 1em;
}
.components-icon:before {
  content: "\00a0";
}

.components-search {
  background-image: url(../icons/icon_search@3x.png);
}
.components-filter {
  background-image: url(../icons/icon_filter_tag@2x.png);
}

二、在main.js中引入css文件
在这里插入图片描述

import '@/assets/css/components-icon.css'

三、使用
在这里插入图片描述

<div style="height: 60px; text-align: center; padding: 20px;">
  <v-btn color="#5C82E3" dark text icon>
    <v-icon>close</v-icon>
  </v-btn>
  <v-btn color="#5C82E3" dark text icon>
    <v-icon class="components-icon components-search" style="height: 24px;"></v-icon>
  </v-btn>
  <v-btn color="#5C82E3" dark text icon>
    <v-icon class="components-icon components-filter" style="height: 24px;"></v-icon>
  </v-btn>
</div>

在这里插入图片描述
在这里插入图片描述
四、除了单独使用,还可以用在组件中,如:作为prepend-inner-icon使用
在这里插入图片描述

<v-text-field
  flat
  solo-inverted
  label="Search the notes"
  prepend-inner-icon="components-icon components-search"
  v-on:keyup.enter="searchNote"
  class="search-field"
  v-model="searchKey"
  hide-details
  color="#5C82E3"
></v-text-field>

在这里插入图片描述

五、不通过css,也可以直接使用图片文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

<v-btn icon small @click="searchNote" color="#3F4360">
  <img
    :src="computeRefreshLogo"
    alt="Refresh"
    style="height: 24px !important;"
  />
</v-btn>
import refreshImg from '@/assets/icons/icon_refresh@3x.png'
computed: {
  computeRefreshLogo () {
    return refreshImg
  }
}

在这里插入图片描述
在这里插入图片描述

Vue使用Element UI上传Excel文件通常是通过`el-upload`组件配合FileReader API来完的。下面是一个简单的步骤描述: 1. 引入所需库:首先需要在项目中安装Element UI以及相关的依赖,如axios用于发送HTTP请求。 ```bash npm install element-ui axios ``` 2. 配置`el-upload`组件:在HTML模板中,创建一个`<el-upload>`元素,并设置一些属性,例如接受文件类型、最大大小等。同时,可以配置一个action(通常是一个API接收文件的地方),以及处理上传过程的方法。 ```html <el-upload class="upload-demo" action="/api/upload-excel" accept=".xlsx,.xls" max-size="5MB" :on-change="handleChange" :before-upload="beforeUpload" > <i class="el-icon-upload"></i> <div class="el-upload__text">点击上传</div> </el-upload> ``` 3. 定义处理函数:在Vue实例中定义`handleChange`和`beforeUpload`方法。`handleChange`会在用户选择文件后触发,而`beforeUpload`则可以在上传前做一些验证或操作,比如读取文件内容预览。 ```javascript data() { return { file: null, }; }, methods: { handleChange(file) { this.file = file; }, beforeUpload(file) { // 判断是否是excel文件 const isExcel = /\.xls(\?.*)?|\.xlsx(\?.*)?$/.test(file.name); if (!isExcel) { this.$message.error('只支持上传Excel文件'); return false; // 返回false取消上传 } return true; // 返回true允许上传 }, uploadFile() { if (this.file) { axios.post(this.action, { file: this.file }, { onUploadProgress: event => { console.log(`百分比:${Math.round((event.loaded / event.total) * 100)}%`); }, }).then(response => { console.log(response.data); // 处理上传功后的数据 }) .catch(error => { console.error('上传错误', error); }); } }, }, ``` 4. 用户交互:你可以提供一个“开始上传”按钮或事件监听器,在用户点击时调用`uploadFile`方法。 注意:这个例子假设服务器端能够解析并处理上传的Excel文件,实际开发时还要考虑后端接口的支持和文件解析的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值