You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
304 lines
7.6 KiB
304 lines
7.6 KiB
<!-- 监督检查办法管理-水闸 -->
|
|
<script>
|
|
import {
|
|
getSuperviseWayList,
|
|
postSuperviseWayData,
|
|
copySuperviseWayData,
|
|
} from "@/api/sluice";
|
|
|
|
import TopBackTitle from "@/components/TopBackTitle/index.vue";
|
|
import { calcTableHeight } from "@/mixins/calcTableHeight";
|
|
|
|
export default {
|
|
name: "InspectionItems",
|
|
components: { TopBackTitle },
|
|
mixins: [calcTableHeight],
|
|
data() {
|
|
return {
|
|
tableData: [], // 检查列表
|
|
pageData: {
|
|
pageNum: 1, // 当前页
|
|
pageSize: 10, // 请求数量
|
|
pageSizes: [10, 20, 50, 100],
|
|
total: 0, // 总数量
|
|
},
|
|
};
|
|
},
|
|
watch: {},
|
|
methods: {
|
|
// 跳转新增办法页面
|
|
handleAddMethod() {
|
|
this.$router.push("methodManageDetails");
|
|
},
|
|
// 跳转编辑办法页面
|
|
handleEditMethod(row) {
|
|
this.$router.push({
|
|
path: "methodManageDetails",
|
|
query: {
|
|
id: row.id,
|
|
mode: "edit",
|
|
},
|
|
});
|
|
},
|
|
// 跳转预览办法页面
|
|
handlePreviewMethod(row) {
|
|
this.$router.push({
|
|
path: "methodManageDetails",
|
|
query: {
|
|
id: row.id,
|
|
mode: "preview",
|
|
},
|
|
});
|
|
},
|
|
// 导出文件
|
|
handleExportMethod(row) {
|
|
if (row.superviseCheckWay && /^http/.test(row.superviseCheckWay)) {
|
|
fetch(row.superviseCheckWay)
|
|
.then((response) => response.blob())
|
|
.then((blob) => {
|
|
const url = URL.createObjectURL(blob);
|
|
const a = document.createElement("a");
|
|
a.href = url;
|
|
a.setAttribute("download", row.name);
|
|
document.body.appendChild(a);
|
|
a.click();
|
|
document.body.removeChild(a);
|
|
URL.revokeObjectURL(url);
|
|
});
|
|
} else {
|
|
this.$message("文件路径格式不正确");
|
|
}
|
|
},
|
|
// 复制办法
|
|
handleCopyMethod(row) {
|
|
copySuperviseWayData(row.id)
|
|
.then((res) => {
|
|
this.$message.success("复制成功");
|
|
this.getTableData();
|
|
})
|
|
.catch(() => {
|
|
this.$message.error("复制失败");
|
|
});
|
|
},
|
|
handleCurrentPageChange(page) {
|
|
this.pageData.pageNum = page;
|
|
this.getTableData();
|
|
},
|
|
handlePageSizeChange(pageSize) {
|
|
this.pageData.pageSize = pageSize;
|
|
this.getTableData();
|
|
},
|
|
// 获取列表数据
|
|
getTableData() {
|
|
getSuperviseWayList({
|
|
data: {
|
|
timeView: {
|
|
timeField: "create_time",
|
|
},
|
|
},
|
|
params: {
|
|
orderBy: "create_time",
|
|
sort: "desc",
|
|
},
|
|
pageSize: this.pageData.pageSize,
|
|
pageNum: this.pageData.pageNum,
|
|
}).then((res) => {
|
|
if (res) {
|
|
this.tableData = res.records;
|
|
this.pageData.total = res.total;
|
|
}
|
|
});
|
|
},
|
|
// 跳转办法配置
|
|
handleToItemsList(row) {
|
|
this.$router.push({
|
|
path: "methodsItemsList",
|
|
query: {
|
|
id: row.id,
|
|
},
|
|
});
|
|
},
|
|
handleChangeStatus(row, status) {
|
|
postSuperviseWayData({
|
|
id: row.id,
|
|
status,
|
|
})
|
|
.then((res) => {
|
|
this.$message.success("修改成功");
|
|
this.getTableData();
|
|
})
|
|
.catch((err) => {
|
|
this.$message.error("修改失败");
|
|
});
|
|
},
|
|
},
|
|
created() {},
|
|
mounted() {
|
|
// 获取列表数据
|
|
this.getTableData();
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<template>
|
|
<div class="slider-right">
|
|
<TopBackTitle :showBackBtn="false"></TopBackTitle>
|
|
<div class="table-box slider-right-body" ref="tableBoxRef">
|
|
<div class="pb-16" ref="topBoxRef">
|
|
<el-button
|
|
class="search-btn"
|
|
style="margin-right: 16px"
|
|
type="success"
|
|
@click="handleAddMethod()"
|
|
v-hasPermi="['sz:run:sup:meth:add']"
|
|
>添加</el-button
|
|
>
|
|
</div>
|
|
<el-table :height="tableHeight" :data="tableData" border>
|
|
<el-table-column type="index" align="center" label="序号" width="60" />
|
|
<el-table-column prop="name" align="center" label="名称" />
|
|
<el-table-column
|
|
prop="createTime"
|
|
align="center"
|
|
sortable
|
|
label="发布时间"
|
|
>
|
|
</el-table-column>
|
|
<el-table-column
|
|
prop="updateTime"
|
|
align="center"
|
|
sortable
|
|
label="更新时间"
|
|
/>
|
|
<el-table-column prop="status" align="center" label="当前状态">
|
|
<template #default="{ row }">
|
|
<el-popconfirm
|
|
title="确定停用吗"
|
|
v-if="row.status == '0'"
|
|
@confirm="handleChangeStatus(row, '1')"
|
|
>
|
|
<span slot="reference" class="status-start">启用状态</span>
|
|
</el-popconfirm>
|
|
<el-popconfirm
|
|
title="确定启用吗"
|
|
v-if="row.status == '1'"
|
|
@confirm="handleChangeStatus(row, '0')"
|
|
>
|
|
<span slot="reference" class="status-stop">停用状态</span>
|
|
</el-popconfirm>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column prop="address" align="center" label="操作">
|
|
<template slot-scope="scope">
|
|
<el-button
|
|
type="text"
|
|
size="small"
|
|
v-hasPermi="['sz:run:sup:meth:edit']"
|
|
@click="handleEditMethod(scope.row)"
|
|
>编辑</el-button
|
|
>
|
|
<el-button
|
|
type="text"
|
|
size="small"
|
|
v-hasPermi="['sz:run:sup:meth:view']"
|
|
@click="handlePreviewMethod(scope.row)"
|
|
>预览</el-button
|
|
>
|
|
<el-button
|
|
type="text"
|
|
size="small"
|
|
v-hasPermi="['sz:run:sup:meth:down']"
|
|
@click="handleExportMethod(scope.row)"
|
|
>导出</el-button
|
|
>
|
|
<el-button
|
|
type="text"
|
|
size="small"
|
|
@click="handleCopyMethod(scope.row)"
|
|
v-hasPermi="['sz:run:sup:meth:copy']"
|
|
>复制</el-button
|
|
>
|
|
<el-button
|
|
type="text"
|
|
size="small"
|
|
v-hasPermi="['sz:run:sup:meth:config']"
|
|
@click="handleToItemsList(scope.row)"
|
|
>配置数据项</el-button
|
|
>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
<el-pagination
|
|
background
|
|
class="pagination"
|
|
style="margin-top: 16px; margin-right: 16px; float: right"
|
|
:current-page="pageData.pageNum"
|
|
:page-sizes="pageData.pageSizes"
|
|
layout="total, prev, pager, next, sizes, jumper"
|
|
:total="pageData.total"
|
|
@size-change="(e) => handlePageSizeChange(e)"
|
|
@current-change="(e) => handleCurrentPageChange(e)"
|
|
>
|
|
</el-pagination>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<style scoped lang="less">
|
|
.top-title {
|
|
height: 40px;
|
|
background-color: white;
|
|
display: flex;
|
|
padding-left: 16px;
|
|
align-items: center;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.table-box {
|
|
width: 100%;
|
|
padding: 16px;
|
|
background-color: white;
|
|
|
|
.top-search {
|
|
margin-bottom: 8px;
|
|
|
|
.search-input {
|
|
width: 202px;
|
|
margin-right: 10px;
|
|
}
|
|
}
|
|
|
|
.table {
|
|
height: calc(680px - 34px);
|
|
}
|
|
}
|
|
|
|
.search-btn {
|
|
margin-left: 10px;
|
|
background-color: #37b29e;
|
|
border: none;
|
|
|
|
&:hover {
|
|
background-color: #5ac6b9;
|
|
}
|
|
|
|
&:active {
|
|
background-color: #2b8070;
|
|
}
|
|
}
|
|
|
|
.status-start {
|
|
color: #36b29e;
|
|
background: #ebf7f5;
|
|
padding: 2px 4px;
|
|
border-radius: 2px;
|
|
cursor: pointer;
|
|
}
|
|
.status-stop {
|
|
color: #f13939;
|
|
background: #feebeb;
|
|
padding: 2px 4px;
|
|
border-radius: 2px;
|
|
cursor: pointer;
|
|
}
|
|
</style>
|
|
|