Sinestro 2022-04-01 13:15 采纳率: 87.5%
浏览 89
已结题

请问如何做到当状态栏变为“失效”时,下载按钮消失的功能啊?

问题遇到的现象和发生背景

我想用vue达成当表格状态栏的失效时间结束后,下载按钮也消失。

问题相关代码,请勿粘贴截图
 <el-table
      v-loading="loading"
      :data="downloadContent"
      border
      height="740"
      style="width: 100%"
      :default-sort="{ prop: 'createTime', order: 'descending' }"
    >
      <el-table-column prop="id" label="序号" type="index" width="70px"></el-table-column>
      <el-table-column prop="resName" label="文件名"></el-table-column>
      <el-table-column prop="dataType" label="下载类型">
          <template slot-scope="scope">
          <dict-tag :options="dataType" :value="scope.row.dataType"/>
        </template>
      </el-table-column>
      <el-table-column
        prop="createTime"
        label="下载时间"
        sortable
      ></el-table-column>
      <el-table-column prop="dlFileExpireTime" label="失效时间">
      </el-table-column>
      <el-table-column prop="dlStatus" label="状态">
        <template slot-scope="scope">
          <dict-tag :options="status" :value="scope.row.dlStatus"/>
        </template>
      </el-table-column>
      <el-table-column label="操作" width="150px">
        <template slot-scope="scope">
          <el-button type="primary" size="mini">查看</el-button>
        <el-button size="mini" :key="" @click="handleDownload(scope.row)">下载</el-button>
        </template>
      </el-table-column>
    </el-table>


这是用element ui编写的表格代码

import { getToken } from "@/utils/auth";
import { listDownload, downloadFile } from "@/api/user/download";
export default {
  name: "Download",
  dicts: ["data_type", "dl_status"],
  data() {
    return {
      // headers: { Authorization: getToken() },
      //选中数组
      ids: [],
      //遮罩层
      loading:true,
      //总条目
      total: 1,
      //下载列表数据
      downloadContent: [],
      // 查询参数
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        startCreateTime: '',
      },
      // 文件类型字典
      dataType:[],
      // 文件状态字典
      status:[],
      //页面加载完成事件
      showData: null,
    };
  },
  created() {
       this.getList();
    this.getDicts("data_type").then(response => {
      this.dataType = response.data;
    });
    this.getDicts("dl_status").then(response => {
      this.status = response.data;
    });
  },
 mounted(){
    console.log("页面加载完成")
},
  methods: {
    //   查询下载列表
      getList(){
          this.loading = true;
          listDownload(this.queryParams).then(response =>{
            this.downloadContent = response.rows;
            this.total = response.total;
            this.loading = false;
          });
      },
    //   搜索按钮  
      handleQuery(){
        this.queryParams.pageNum = 1;
        this.getList();
      },

    //重置按钮
      resetQuery(){
        this.resetForm("queryForm");
        this.handleQuery();
      },
    //下载按钮
      handleDownload(value){
        console.log(value);
        console.log(value.id);
        this.$confirm("是否下载该文件?", "警告", {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning"
        }).then((res) => {
          window.location.href = process.env.VUE_APP_BASE_API +"/mydownload/download/download?id=" + value.id + '&Authorization=' + getToken();
          // console.log(process.env.VUE_APP_BASE_API +"/mydownload/download/download?id=" + value.id +'&Authorization:' + getToken());
        });
      },
  }
};

这些是我的script

运行结果及报错内容

img


这是效果图

我的解答思路和尝试过的方法

我觉得这应该用vue或者JavaScript写一个方法

我想要达到的结果

我想达到当文件失效时间过后,该文件的下载按钮将不再显示

  • 写回答

4条回答 默认 最新

  • 帅杰!!! 2022-04-01 13:37
    关注

    渲染表格前给每一行加一个状态 表示当前是否过期,过期则不显示下载按钮

    <el-table-column label="操作" width="150px">
            <template slot-scope="scope">
              <el-button type="primary" size="mini">查看</el-button>
            <el-button size="mini"  v-if="scope.row.status" @click="handleDownload(scope.row)">下载</el-button>
            </template>
          </el-table-column>
    
    ```c
    
    
    

    ```

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 4月10日
  • 已采纳回答 4月2日
  • 创建了问题 4月1日

悬赏问题

  • ¥15 爬取1-112页所有帖子的标题但是12页后要登录后才能 我使用selenium模拟登录 账号密码输入后 会报错 不知道怎么弄了
  • ¥30 关于用python写支付宝扫码付异步通知收不到的问题
  • ¥50 vue组件中无法正确接收并处理axios请求
  • ¥15 隐藏系统界面pdf的打印、下载按钮
  • ¥15 MATLAB联合adams仿真卡死如何解决(代码模型无问题)
  • ¥15 基于pso参数优化的LightGBM分类模型
  • ¥15 安装Paddleocr时报错无法解决
  • ¥15 python中transformers可以正常下载,但是没有办法使用pipeline
  • ¥50 分布式追踪trace异常问题
  • ¥15 人在外地出差,速帮一点点