You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

252 lines
6.2 KiB
Vue

1 year ago
<template>
<div class="logMainClass">
1 year ago
<div class="logTitle">
<h3>日志列表</h3>
<el-select
v-model="logValue"
placeholder="请选择"
@change="logTypeChange"
>
<el-option
v-for="item in LogOptions"
:key="item.value"
:label="item.label"
1 year ago
:value="item.value"
>
</el-option>
</el-select>
1 year ago
<el-input
v-model="cmdidVal"
placeholder="请输入装置编号"
clearable
></el-input>
<el-button type="primary" @click="onSubmit"></el-button>
</div>
1 year ago
<div class="boxLogTable">
<el-table
v-loading="logLoading"
:data="tableData"
border
stripe
style="width: 100%"
height="100%"
>
<el-table-column type="index" width="50" label="序号">
</el-table-column>
<!-- <el-table-column prop="id" label="Id" width="80"> </el-table-column> -->
1 year ago
<el-table-column prop="lineName" label="线路"> </el-table-column>
1 year ago
<el-table-column prop="cmdid" label="装置编号" width="160">
</el-table-column>
1 year ago
<el-table-column label="规约" width="140">
1 year ago
<template slot-scope="scope">
{{ protocolMap[scope.row.protocol] }}
</template>
</el-table-column>
1 year ago
<el-table-column prop="fileName" label="文件名">
1 year ago
<template slot-scope="scope">
1 year ago
<!-- <a :href="'http://61.169.135.146:40085/dl/' + scope.row.path" class="buttonText"></a> -->
1 year ago
<el-button
type="text"
@click="downFile(scope.row)"
class="buttonText"
>{{ scope.row.fileName }}</el-button
>
1 year ago
</template>
</el-table-column>
1 year ago
<el-table-column label="文件大小" width="100">
1 year ago
<template slot-scope="scope">
1 year ago
{{ scope.row.fileSize | changeType }}
1 year ago
</template>
</el-table-column>
1 year ago
<el-table-column prop="createTime" label="上传时间" width="160">
</el-table-column>
<el-table-column label="操作" class-name="editClass">
1 year ago
<template slot-scope="scope">
<el-link
type="danger"
@click="handleDeleteClick(scope.row)"
size="small"
icon="el-icon-delete"
>删除</el-link
>
</template>
</el-table-column>
</el-table>
</div>
</div>
</template>
<script>
1 year ago
import { logListApi, logDeleteApi } from "@/utils/api/index";
1 year ago
export default {
name: "log",
components: {},
data() {
return {
1 year ago
logValue: 0,
cmdidVal: "",
LogOptions: [
{
value: 0,
1 year ago
label: "日志",
},
{
value: 1,
1 year ago
label: "其它",
},
],
1 year ago
tableData: [],
logLoading: false,
protocolMap: {
65280: "国网I1",
65296: "陕西",
65281: "安徽",
65282: "江苏",
65283: "湖南",
65284: "浙江",
65285: "河南全景",
65286: "河南郑州",
65290: "河南统一视频v2020",
1 year ago
65298: "宁夏",
2: "南网",
1 year ago
},
};
},
filters: {
changeType(val) {
if (val == "0") return "0B";
var k = 1024;
var sizes = ["B", "KB", "MB", "GB", "TB"];
let i = Math.floor(Math.log(val) / Math.log(k)); //得出该数字的单位应该是kB?MB
return (val / Math.pow(k, i)).toPrecision(3) + "" + sizes[i];
},
},
computed: {},
created() {},
mounted() {
1 year ago
this.getLogList();
1 year ago
},
methods: {
1 year ago
logTypeChange(val) {
let params = {
type: val,
};
// 根据条件添加参数
if (this.cmdidVal !== "") {
params.cmdid = this.cmdidVal;
}
this.getLogList(params);
},
onSubmit() {
let params = {
type: this.logValue,
};
// 根据条件添加参数
if (this.cmdidVal !== "") {
params.cmdid = this.cmdidVal;
}
this.getLogList(params);
},
1 year ago
getLogList(params) {
1 year ago
this.logLoading = true;
1 year ago
logListApi(params)
1 year ago
.then((res) => {
this.tableData = res.data;
this.logLoading = false;
})
.catch((err) => {});
},
handleDeleteClick(row) {
this.$confirm("此操作将永久删除该文件, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
1 year ago
logDeleteApi({
1 year ago
id: row.id,
})
.then((res) => {
console.log(res);
this.$message({
duration: 1500,
showClose: true,
message: "文件删除成功",
type: "success",
});
this.getLogList();
})
.catch(() => {});
})
.catch(() => {});
},
1 year ago
//下载日志文件
1 year ago
downFile(row) {
// 创建一个新的a标签元素
const a = document.createElement("a");
// 设置a标签的href属性为文件的URL
a.href = "/dl/" + row.path;
console.log(a.href);
// 设置文件名(可选,取决于服务器配置)
a.download = row.fileName; // 你希望保存的文件名
1 year ago
1 year ago
// 触发点击事件
document.body.appendChild(a);
a.click();
1 year ago
1 year ago
// 然后移除a标签
document.body.removeChild(a);
},
1 year ago
},
};
</script>
<style lang="less">
.logMainClass {
height: calc(100% - 24px);
width: calc(100% - 24px);
padding: 12px;
1 year ago
.logTitle {
display: flex;
align-items: center;
height: 32px;
1 year ago
margin-bottom: 12px;
1 year ago
h3 {
font-size: 16px;
}
.el-select {
margin: 0px 12px;
1 year ago
1 year ago
.el-input {
width: 100px;
}
}
.el-input {
width: 200px;
}
.el-button--small {
margin-left: 12px;
}
}
1 year ago
.boxLogTable {
1 year ago
height: calc(100% - 44px);
1 year ago
.el-table__cell {
text-align: center;
}
.el-table thead {
th.el-table__cell {
background: #fafafa;
}
}
.buttonText {
cursor: pointer;
1 year ago
white-space: pre-wrap;
1 year ago
&:hover {
text-decoration: underline;
}
}
}
}
</style>