笔记-vue 问题合集

Vue.js中的el-table优化与文件下载问题解决

磨人的项目终告一个段落,好记性不如烂笔头,整理下

一、el-table 列值格式化(有值显示值,无值显示--)

<template>
    <div>
        <el-table v-loading="loading" :data="groupList" @selection-change="handleSelectionChange">
          <el-table-column prop="name" label="名称" sortable width="120"  :formatter="formatColumnValue"/>
        </el-table>
    </div>
</template>

<script>
    export default {
        methods: {
            formatColumnValue(row, column) {
              return row[column.property] || '--';
            },
        }
    }
</script>

二、el-table中el-button根据接口数据动态设置disabled时有异常

解决办法:给el-button设置key

<template>
    <div>
        <el-table v-loading="loading" :data="groupList" @selection-change="handleSelectionChange">
          <el-table-column prop="name" label="名称" sortable width="120"  :formatter="formatColumnValue"/>
<el-table-column label="操作" align="left" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
            size="mini"
            type="text"
            icon="el-icon-user-solid"
            :key="scope.row.id"
            :disabled="scope.row.type ? false : true"
            v-if="scope.row.type=== 1"
            @click="handleFace(scope.row)"
          >查看</el-button>
</template>
      </el-table-column>
        </el-table>
    </div>
</template>

三、下载压缩包文件

用<a :href="selectDictLabel(dict.type.system_page, 0)">下载</a>会出现重新打开浏览器的问题

<template>
    <div>
        <el-button type="text" @click="downloadFile(selectDictLabel(dict.type.system_page, 0))" style="color:blue">下载</el-button>
    </div>
</template>

<script>
export default {
    methods: {
    downloadFile(url) {
      console.log(url)
      const filename = url.substring(url.lastIndexOf('/') + 1);;
      fetch(url)
        .then(response => response.blob())
        .then(blob => {
          const a = document.createElement('a');
          const url = URL.createObjectURL(blob);
          a.href = url;
          a.download = filename;
          a.style.display = 'none';
          document.body.appendChild(a);
          a.click();
          window.URL.revokeObjectURL(url);
        })
        .catch(error => console.error('Error downloading zip file:', error));
    }
}
}
</script>

### RuoYi-Vue-Plus 使用教程与配置指南 RuoYi-Vue-Plus 是基于 Spring Boot、Spring Cloud 和 Vue.js 的前后端分离快速开发平台,其功能强大且易于扩展[^1]。以下内容将详细介绍 RuoYi-Vue-Plus 的使用教程及配置指南。 #### 1. 环境准备 在开始使用 RuoYi-Vue-Plus 前,需要确保本地环境满足以下条件: - JDK 1.8 或更高版本 - Maven 3.3+ - Node.js (建议使用 LTS 版本) - MySQL 数据库 - Redis 缓存服务 #### 2. 项目初始化 下载 RuoYi-Vue-Plus 源码后,需进行如下操作: - **后端初始化**:通过 Maven 构建后端项目,并配置 `application.yml` 文件中的数据库连接信息。 - **前端初始化**:进入前端目录,运行 `npm install` 安装依赖,然后执行 `npm run dev` 启动开发服务器[^2]。 #### 3. 核心功能配置 RuoYi-Vue-Plus 提供了多种核心功能模块,如用户管理、角色权限、定时任务等。以下是几个关键点的配置说明: - **数据库表结构**:项目启动时会自动根据 `application.yml` 配置文件生成相关表结构,若需要自定义字段,则需手动修改 SQL 脚本[^3]。 - **接口文档**:内置 Swagger2 接口文档工具,访问地址为 `/swagger-ui.html`,可直接查看并测试所有 API 接口[^4]。 - **缓存机制**:支持 Redis 缓存,默认配置已集成,只需确保 Redis 服务正常运行即可生效。 #### 4. 常见问题与解决方法 在实际使用过程中可能会遇到一些问题,例如跨域请求失败或登录超时等。以下是常见问题及其解决方案: - **跨域问题**:检查后端是否正确配置了 CORS(跨域资源共享),通常在 `WebConfig` 类中设置允许的域名和方法[^5]。 - **登录超时**:调整 `token` 过期时间参数,位于 `application.yml` 中的 `jwt.expiration` 字段。 ```python # 示例代码:调整 token 过期时间 jwt: expiration: 7200 # 单位为秒,默认值为 7200 秒(即 2 小时) ``` #### 5. 学习资源推荐 对于初学者来说,可以参考以下学习资源来加深对 RuoYi-Vue-Plus 的理解: - 官方文档[^6] - GitHub 项目仓库[^7] - 相关技术博客文章
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值