2019独角兽企业重金招聘Python工程师标准>>>

直接源码,虽然样式样式不好看,逻辑也不是最优,但是可以留作纪念。毕竟以后类似的功能只需要优化就可以了,不用每次都重头开始。。。

 <template><div class="pre_upload"><div class="pre_leve_one"><inputtype="text"v-model="keyword"@keyup.enter="loaddata"placeholder="请输入查询关键字"/><button @click="loaddata">查询</button>&nbsp;&nbsp;{{sel_msg}}</div><div class="pre_leve_two"><h4>这里展示搜索结果</h4><divdi="files_data"class="pre_files_data"v-show="show_tab"><table class="pre_dataintable"><thead><tr><th>序号</th><th>上传</th><th>名称</th><th>类型</th><th>大小</th><th>时间</th><th>操作</th></tr></thead><tbody><trv-for="(item,index) in pre_flies":key="index"><td>{{item.id}}</td><td>{{item.username}}</td><td class="pre_tab_name">{{item.name}}</td><td>{{item.type}}</td><td>{{item.size}}&nbsp;KB</td><td>{{item.date}}</td><td>&nbsp;&nbsp;<buttonclass="pre_btn_down"@click="down_file(item)">下载</button>&nbsp;&nbsp;</td></tr></tbody></table></div><divclass="pre_block"v-show="show_tab"><ul style="text-align: right; margin-right: 20px;"><li>当前页:<label>{{nowpage}}</label>&nbsp;合计页:<label>{{maxpage}}</label>&nbsp;&nbsp;<ahref="#"@click="firstpage">首页</a>|<ahref="#"@click="beforepage">上一页</a>|<ahref="#"@click="nextpage">下一页</a>|<ahref="#"@click="lastpage">尾页</a><inputtype="text"v-model="jumppage"value=""><ahref="#"@click="gopage"class="go">Go</a></li></ul></div></div><a id="downlink"></a><!-- 放置自定义组件 --><per-message :message_data="msg_obj" /></div>
</template> <script>
/*
名称:根据关键字查询 下载 预览 组件
日期:2019-03-19
作者:hj
目标:
1、根据关键字查询
2、由服务端生成相关文件,保存到指定路径,然后返回路径,
3、最后a标签绑定绑定返回的路径进行下载
*/
import { base_encode } from "@/utils/base64.js";
import { GetShort,BackSpecial } from "@/utils/localstore.js";export default {name: "pre_downfile",components: {    'per-message':()=>import("./pre_message.vue"),},data() {return {pre_flies: [],exist_data: [],show_tab: false,     sel_msg:'',pre_loading:false,keyword:'',    outFile: "",maxpage:'',nowpage:'',jumppage:'',msg_obj:{}};},  created:function(){this.nowpage=1;},methods: {firstpage:function(){if(Number(this.nowpage)>1){this.nowpage=1;this.loaddata();}else{this.msg_obj={'showtype':'warning','note':'已经是第一页'};}},beforepage:function(){if(Number(this.nowpage)>1){this.nowpage--;this.loaddata();}else{this.msg_obj={'showtype':'warning','note':'已经是第一页'};}},nextpage:function(){if(Number(this.nowpage)<Number(this.maxpage)){this.nowpage++;this.loaddata();}else{            this.msg_obj={'showtype':'warning','note':'已经是最后一页'};}},lastpage:function(){if(Number(this.nowpage)<Number(this.maxpage)){this.nowpage=this.maxpage;this.loaddata();}else{this.msg_obj={'showtype':'warning','note':'已经是最后一页'};}},gopage:function(){console.log('跳转到='+this.jumppage);if(Number(this.jumppage)>0 && Number(this.jumppage)<=Number(this.maxpage)){this.nowpage=this.jumppage;this.loaddata();}else{this.msg_obj={'showtype':'warning','note':'跳转页数不在规定范围内,请检查'+this.jumppage};}},loaddata:function(){console.log('查询='+this.keyword);var postdata='';postdata ='{"action":"data_downfile_art","user_no":"' +GetShort("userno") +'","upfile_name":"' +this.keyword +'","page_num":"'+this.nowpage+'","rowid":"0"}';postdata ='{"method":"File_down","data":"' + base_encode(postdata) + '"}';// 建议加载提示this.loading();this.pre_loading=false;this.$postfile("/Data_Back",postdata,() => {}).then(res => {this.pre_loading=true;try {         res=JSON.parse(res); console.log(res.data);         if (res.data.status == 1) {this.maxpage=res.data.allpage;res = res.data.data;              console.log(res);  var t=[];for(var i=0;i<res.length;i++){var td={};td.id=i+1;td.rowid=res[i].id;td.username=res[i].username;td.name=res[i].upfile_name;td.type=res[i].upfile_type;td.size=res[i].upfile_size;td.date=String(res[i].sys_date).substring(0,19);              t[i]=td;        }this.pre_flies=t;this.show_tab=true;} else {this.sel_msg = res.msg;}} catch (ex) {this.sel_msg = "查询失败"+ex;}});},down_file:function(parm){var postdata='';postdata ='{"action":"data_downfile_data","user_no":"' +GetShort("userno") +'","upfile_name":"' +parm.name +'","rowid":"'+parm.rowid+'"}';postdata ='{"method":"File_down","data":"' + base_encode(postdata) + '"}';// 建议加载提示this.loading();this.pre_loading=false;this.$postfile("/Data_Back",postdata,() => {}).then(res => {this.pre_loading=true;try {         res=JSON.parse(res); if (res.data[0].path!='') {this.downdata(BackSpecial(res.data[0].path),parm.name);} else {this.sel_msg = res.msg;}} catch (ex) {this.sel_msg = "查询失败"+ex;}});},downdata:function(down_name,excel_name){if(down_name!=""){this.outFile = document.getElementById("downlink");var href=window.location.origin+"/static/"+down_name;// console.log(href);this.outFile.download = excel_name; // 下载名称this.outFile.href = href; // 绑定a标签this.outFile.click(); // 模拟点击实现下载                    }},loading:function(){var time=0;var close=setInterval(function(){if(time%2==0){this.sel_msg='请等待,查询中......';}else{this.sel_msg='请稍等,查询中...';}if(this.pre_loading){clearInterval(close);}},500);}}
};
</script><style scoped>
.pre_upload {width: 100%;min-height: 200px;height: 100%;background-color: azure;text-align: center;/* padding: 10px 20px 10px 20px; */
}
.pre_leve_one {height: 25px;text-align: left;padding-top: 18px;padding-left: 15px;
}
.pre_leve_one > button {margin-left: 10px;border-radius: 2px;background-color: #fff;color: #000000;padding: 2px 10px 2px 10px;
}.pre_leve_two {/* padding: 5px; */margin: 15px;margin-top: 15px;border: 1px solid #191970;min-height: 200px;height: auto;
}.pre_files_data {width: 100%;min-height: 200px;height: auto;/* padding: 10px 20px 10px 20px; */
}.pre_files_data > ul {list-style: none;
}
.pre_files_data > ul > li {border: 1px solid black;
}
.pre_files_data > ul > li > span {margin-left: 5px;
}.pre_dataintable {margin-top: 15px;border-collapse: collapse;border: 1px solid #aaa;width: 95%;/* padding 没有作用 *//* padding: 0px 5px 10px 5px; */position: relative;left: 2%;
}
.pre_dataintable th {vertical-align: baseline;padding: 5px 15px 5px 6px;background-color: #c1ffc1;border: 1px solid #3f3f3f;text-align: left;color: #000000;font-size: 16px;font-weight: bolder;
}
.pre_dataintable td {/* vertical-align: text-top; */padding: 6px 15px 6px 6px;border: 1px solid #aaa;
}
.pre_dataintable tr:nth-child(odd) {background-color: #f5f5f5;
}
.pre_dataintable tr:nth-child(even) {background-color: #fff;
}.pre_tab_name {cursor: pointer;width: 200px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;/* display: -webkit-box;-webkit-line-clamp: 0;-webkit-box-orient: vertical; */
}
.pre_tab_name:hover {cursor: pointer;background-color: #aaa;
}/* 下载按钮 */
.pre_btn_down {color: chartreuse;font-weight: bold;font-size: 16px;width: 100px;height: 30px;
}
/* 预览按钮 */
.pre_btn_canle {color: black;font-weight: bold;font-size: 16px;width: 100px;height: 30px;
}
/* 翻页样式 */
.pre_block {width: 100%;margin-top: 5px;margin-bottom: 5px;
}
.pre_block > ul {text-align: right;list-style: none;
}
.pre_block > ul > li > a {text-decoration: none;
}
.pre_block > ul > li > .go {display: inline-block;width: 40px;height: 20px;border: 1px solid #cccccc;background: #024aee;color: #fff;border-radius: 4px;text-align: center;margin-left: 5px;
}
.pre_block > ul > li > a:hover {color: #394656;
}
</style>

转载于:https://my.oschina.net/qingqingdego/blog/3024863

vue组件系列3、查询下载相关推荐

  1. vue组件系列2、拖放上传

    2019独角兽企业重金招聘Python工程师标准>>> 直接上源码,就是样式不太好看,但是该有的功能都有啦 <template><divclass="pr ...

  2. vue 带全选和多选的表格怎么写_vue实现下拉列表多选全选以及模糊查询的vue组件...

    vue实现下拉列表多选全选以及模糊查询的vue组件 发布时间:2018-09-12 17:41, 浏览次数:3776 , 标签: vue <>前端,有时有这样的需求,需要一个下拉列表,还要 ...

  3. JS组件系列——表格组件神器:bootstrap table

    前言:之前一直在忙着各种什么效果,殊不知最基础的Bootstrap Table用法都没有涉及,罪过,罪过.今天补起来吧.上午博主由零开始自己从头到尾使用了一遍Bootstrap Table ,遇到不少 ...

  4. JS组件系列——Bootstrap Table 表格行拖拽(二:多行拖拽)

    原文:JS组件系列--Bootstrap Table 表格行拖拽(二:多行拖拽) 前言:前天刚写了篇JS组件系列--Bootstrap Table 表格行拖拽,今天接到新的需要,需要在之前表格行拖拽的 ...

  5. 文本字段和表单设计-UI组件系列

    重点 (Top highlight) Forms have existed for a significant amount of time, greatly simplifying the task ...

  6. 拖拽式Vue组件代码生成平台(LCG)新版详细介绍

    拖拽式Vue组件代码生成平台是一款小猴自研的Vue代码生成工具,英文全称:Low Code Generator,简称LCG.它也是一种LowCode解决方案.通过它可以快速完成Vue组件的代码骨架搭建 ...

  7. Vue.js系列之入门手册整理

    文章目录 第一章.环境搭建 1.1.准备: 1.2.nodejs安装 1.3.npm安装 1.4.vue安装 第二章.目录结构 2.1.webpack 2.2.webpack下的全局文件结构 第三章. ...

  8. this指向-作用域、作用域链-预解析 变量提升-Vue组件传值 父子 子父 非父子-Vue数据双向绑定原理

    目录 this指向 作用域.作用域链 预解析 变量提升 Vue组件传值 父子 子父 非父子 Vue数据双向绑定原理 1.this指向 函数的this指向 看调用.不看声明 (1)普通函数调用 ①函数名 ...

  9. Vue学习系列-01-最详细学习过程(满满干货)

    文章目录 前言 VUE学习系列01 一.Vue.js的安装 方式一:直接CDN引入 方式二:下载和引入 方式三:NPM安装 二.与原生js,jq的区别 1.范式 通俗解释: 2.声明式编程的优点 三. ...

  10. C#组件系列——又一款日志组件:Elmah的学习和分享

    前言:好久没动笔了,都有点生疏,12月都要接近尾声,可是这月连一篇的产出都没有,不能坏了"规矩",今天还是来写一篇.最近个把月确实很忙,不过每天早上还是会抽空来园子里逛逛.一如既往 ...

最新文章

  1. c++ 继承访问控制初步
  2. Linux 里有/lib /boot /sbin /lib /dev等各个目录含义
  3. 新时代,大数据战略和DevOps更配
  4. 大端模式小端模式 主机序网络序
  5. python-03 爬虫相关
  6. 代理模式中的动态代理
  7. memcache 总结笔记
  8. php承载,javascript,php_如何防止无限循环的php CPU承载过重?,javascript,php - phpStudy...
  9. java mqtt客户端_java 实现mqtt发送和接收消息客户端具体用法及测试代码
  10. 360集团或将推出数字安全免费新品
  11. Android中文API(98)—— ContextMenu.ContextMenuInfo
  12. 8bit/10bit线路编码简介
  13. 数据分析之大数据分析
  14. 夜光带你走进C# 游戏开发等(七十九)擅长的领域
  15. “新基建”下的智慧城轨:城轨为“体” 智慧为“用”
  16. Access key id should not be null or empty.
  17. 无影云电脑Linux如何修改密码
  18. Python3《机器学习实战》学习笔记(三):朴素贝叶斯基础篇之言论过滤器
  19. 上海python招聘微信群_如何用20行Python代码打造一个微信群聊助手?
  20. Matlab数字滤波器设计实践—FIR

热门文章

  1. LeetCode学习记录(1-3)
  2. [论文笔记]DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter
  3. HTML5移动开发即学即用(双色)
  4. 博文视点大讲堂第45期——我们应该向魔兽世界学习什么 圆满结束
  5. jBPM4工作流应用开发指南
  6. Router OS 全攻略
  7. 变革中的思索,思索中的变革
  8. 冒泡排序,插入排序--- PYTHON
  9. visio保存后公式变形_固体力学中的变形分析
  10. 读取csv文件中的IMU数据并以sensor_msgs/Imu格式发送