- 如何让dialog在每次显示的时候初始化呢?在el-dialog下需要重新渲染的组件添加:key属性,然后传入一个随机数,当取消或者确定时执行的事件中重置这个随机数.这样每次点开的dialog都是重新渲染的.data都是原始值。我是让key值为时间戳了。也可以加v-if,值和visible.sync绑定的值一致就行
- 表格中某一列时间戳格式化方式
<el-table-column align="center" prop="updateTime" label="更新时间" :formatter="formatTime" show-overflow-tooltip></el-table-column>
formatTime(row, column){
return this.getTimeFormat(row[column.property]);
}
getTimeFormat(timestamp) {
if (timestamp && (typeof timestamp) === 'number') {
var time = new Date(timestamp);
var year = time.getFullYear();
var month = time.getMonth() + 1;
var date = time.getDate();
var hours = time.getHours();
var minutes = time.getMinutes();
var seconds = time.getSeconds();
return year + '-' + this.add0(month) + '-' + this.add0(date) + ' ' + this.add0(hours) + ':' + this.add0(minutes) + ':' + this.add0(seconds);
} else {
return '';
}
}
对于不同的列内容可以采用类似方式进行格式化。
- 页面中需要执行导出。vue中绑定方法,方式如下,我们项目中会区分导出txt和pdf格式的文件,所以我对导出格式做了判断
this.$http.get(URL,{responseType: 'arraybuffer'}).then(res => {
this.download(res.data,'txt');//导出txt
},res => {
this.$message({
message: '导出失败!',
type: 'error'
});
});
download (data,exportType) {
if (!data) {
return
}
let exportGs='';
if(exportType==='txt'){
exportGs='text/plain';
}else if(exportType==='pdf'){
exportGs='application/pdf';
}
let url = window.URL.createObjectURL(new Blob([data],{type: exportGs}));
let link = document.createElement('a')
link.style.display = 'none'
link.href = url;
link.setAttribute('download', '文件');
document.body.appendChild(link)
link.click();
}
目前遗留问题,导出txt文件格式正常,导出pdf文件内容是空,没有写入内容,正在解决中,哪位大佬如果遇到过类似问题,知道解决办法请告知,不胜感激。
- 对使用axios传输数据方式总结如下:
1.使用get方法。
//假设axios已经可以通过this.$http方式调用,queryStr是后台接收的名称,queStr是传递给后台的值
this.$http.get(URL,{params:{"queryStr":queStr}}).then(res => {
console.log(`返回信息${res.data}`);
},res => {
console.log(`错误信息${res.data}`);
});
2.使用post方法。
let newServiceObj={
"id":xxxxx
}
//可以传递一个对象
this.$http.post(URL,newServiceObj).then(res => {
console.log(`返回信息${res.data}`);
}, res => {
console.log(`返回信息${res.data}`);
});
3.使用put方法
let params=new URLSearchParams();
params.append("relatedIdsList",XXX);
params.append("servicesId",XXX);
this.$http.put(URL,params).then(res => {
console.log(`返回信息${res.data}`);
}, res => {
console.log(`返回信息${res.data}`);
});
4.使用delete方法
this.$http.delete(URL+'?processInstIds='+XXX).then(res => {
console.log(`返回信息${res.data}`);
}, res => {
console.log(`返回信息${res.data}`);
});
历时一个多月的项目终于告一段落,谨以三篇文章记录一个月来的开发中遇到的问题,便于日后回顾,也为别人提供一点力所能及的帮助。