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