活动告警和工单列表初次提交

This commit is contained in:
熊丽君
2020-12-10 09:52:13 +08:00
parent caba87f9b1
commit d78d0b178d
6 changed files with 791 additions and 18 deletions

4
.prettierrc Normal file
View File

@ -0,0 +1,4 @@
{
"semi": true,
"singleQuote": true
}

View File

@ -1,9 +1,9 @@
import request from "@/utils/request"; import request from '@/utils/request';
// 获取全部告警规则 // 获取全部告警规则
export function select(params) { export function select(params) {
return request({ return request({
url: "/system/warningRule/select", url: '/system/warningRule/select',
params params
}); });
} }
@ -11,7 +11,7 @@ export function select(params) {
// 获取全部告警类型 // 获取全部告警类型
export function type(params) { export function type(params) {
return request({ return request({
url: "/system/signal/fault/select", url: '/system/signal/fault/select',
params params
}); });
} }
@ -19,8 +19,16 @@ export function type(params) {
// 保存信号量告警规则 // 保存信号量告警规则
export function update(data) { export function update(data) {
return request({ return request({
url: "/system/warningRule/save", url: '/system/warningRule/save',
method: "POST", method: 'POST',
data data
}); });
} }
// 活动告警列表
export function list(params) {
return request({
url: '/system/warning/list',
params
});
}

9
src/api/work/order.js Normal file
View File

@ -0,0 +1,9 @@
import request from '@/utils/request';
// 告警工单列表
export function list(params) {
return request({
url: '/system/work/list',
params
});
}

View File

@ -0,0 +1,367 @@
<template>
<section class="app-container">
<el-row>
<!-- 地区 -->
<el-col :span="4">
<region
@selectdRegionCode="selectdRegionCode"
:currentNodeKey.sync="queryParams.provinceCode"
></region>
</el-col>
<!-- form表单 -->
<el-col :span="20">
<el-form
:model="queryParams"
:inline="true"
ref="queryForm"
v-show="showSearch"
label-width="68px"
>
<!-- 第一行 -->
<el-row>
<el-col :span="6">
<el-form-item label="告警等级">
<el-select
v-model="queryParams.deviceType"
clearable
placeholder="请输入告警等级"
>
<el-option
v-for="item in signalLevelList"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="告警名称">
<el-input
v-model="queryParams.deviceName"
placeholder="请输入告警名称"
clearable
size="small"
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="产品名称">
<el-select
v-model="queryParams.deviceType"
clearable
placeholder="请选择"
>
<el-option
v-for="item in signalLevelList"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="所属客户">
<el-select
v-model="queryParams.deviceType"
clearable
placeholder="请选择"
>
<el-option
v-for="item in signalLevelList"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<!-- 第二行 -->
<el-row>
<el-col :span="6">
<el-form-item label="所属项目">
<el-select
v-model="queryParams.deviceType"
clearable
placeholder="请选择"
>
<el-option
v-for="item in signalLevelList"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="站址名称">
<el-input
v-model="queryParams.deviceName"
placeholder="请输入站址名称"
clearable
size="small"
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设备SN">
<el-input
v-model="queryParams.deviceSn"
placeholder="请输入设备SN"
clearable
size="small"
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="信号量ID">
<el-input
v-model="queryParams.productId"
placeholder="请输入信号量ID"
clearable
size="small"
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</el-col>
</el-row>
<!-- 第三行 -->
<el-row>
<el-col :span="6">
<el-form-item label="告警次数">
<el-input
v-model="queryParams.deviceName"
placeholder="请输入告警次数"
clearable
size="small"
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item>
<el-date-picker
v-model="dateRange"
size="small"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="告警发生时间"
end-placeholder="结束时间"
></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item>
<el-button
type="cyan"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>
查询
</el-button>
<el-button
icon="el-icon-refresh"
size="mini"
@click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-col>
</el-row>
</el-form>
<!-- 表格区域 -->
<el-table v-loading="loading" :data="tableData" style="width: 100%">
<el-table-column
prop="proName"
align="center"
label="省份"
min-width="80"
>
</el-table-column>
<el-table-column
prop="cityName"
align="center"
label="市"
min-width="80"
>
</el-table-column>
<el-table-column
prop="disName"
align="center"
label="区"
min-width="80"
>
</el-table-column>
<el-table-column
prop="productName"
label="产品名称"
align="center"
min-width="100"
>
</el-table-column>
<el-table-column
prop="nikeName"
align="center"
label="所属客户"
></el-table-column>
<el-table-column
prop="projectName"
align="center"
label="所属项目"
></el-table-column>
<el-table-column
prop="warningName"
align="center"
label="告警名称"
min-width="150"
></el-table-column>
<el-table-column
prop="warningLevel"
align="center"
label="告警等级"
min-width="150"
></el-table-column>
<el-table-column
prop="workOrderId"
align="center"
label="工单编号"
min-width="150"
></el-table-column>
<el-table-column
prop="signalCode"
align="center"
label="信号量ID"
min-width="150"
></el-table-column>
<el-table-column align="center" label="告警发生时间" min-width="150">
<template slot-scope="scope">
{{ scope.row.warningTime | formatDate }}
</template>
</el-table-column>
<el-table-column
prop="warningDetails"
align="center"
label="告警详情"
min-width="150"
></el-table-column>
<el-table-column
align="center"
label="站址名称"
min-width="150"
></el-table-column>
<el-table-column
prop="deviceName"
align="center"
label="设备名称"
min-width="150"
></el-table-column>
<el-table-column
prop="deviceSn"
align="center"
label="设备SN"
min-width="150"
></el-table-column>
<el-table-column
prop="status"
label="运营状态"
align="center"
min-width="250"
></el-table-column>
</el-table>
<!-- 分页 -->
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-col>
</el-row>
</section>
</template>
<script>
import Region from '@/components/Region';
import { list } from '@/api/fault/warning';
export default {
name: 'activeAdmin',
components: {
Region
},
data() {
return {
dateRange: [],
signalLevelList: [
{ label: '一级', value: '1' },
{ label: '二级', value: '2' },
{ label: '三级', value: '3' },
{ label: '四级', value: '4' }
],
queryParams: {
pageNum: 1,
pageSize: 10
},
// 遮罩层
loading: true,
// 总条数
total: 0,
// 表格数据
tableData: [],
// 显示搜索条件
showSearch: true
};
},
methods: {
selectdRegionCode({ code }) {
this.queryParams.provinceCode = code;
this.handleQuery();
},
// 获取告警工单列表
getList() {
this.loading = true;
list(this.addDateRange(this.queryParams, this.dateRange)).then(res => {
this.tableData = res.rows;
this.total = res.total;
this.loading = false;
});
},
// 搜索按钮操作
handleQuery() {
this.queryParams.pageNum = 1;
this.queryParams.pageSize = 10;
this.getList();
},
// 重置按钮操作
resetQuery() {
this.queryParams = {};
this.resetForm('queryForm');
this.dateRange = [];
this.handleQuery();
}
},
computed: {},
watch: {},
created() {
this.getList();
}
};
</script>
<style lang="scss" scoped></style>

View File

@ -68,19 +68,19 @@
</section> </section>
</template> </template>
<script> <script>
import { select, type, update } from "@/api/fault/warning"; import { select, type, update } from '@/api/fault/warning';
export default { export default {
name: "warning", name: 'warning',
data() { data() {
return { return {
formTitle: [], formTitle: [],
formList: [], formList: [],
value: "", value: '',
signalLevelList: [ signalLevelList: [
{ label: "一级", value: "1" }, { label: '一级', value: '1' },
{ label: "二级", value: "2" }, { label: '二级', value: '2' },
{ label: "三级", value: "3" }, { label: '三级', value: '3' },
{ label: "四级", value: "4" } { label: '四级', value: '4' }
], ],
loading: true loading: true
}; };
@ -98,7 +98,7 @@ export default {
}, },
async submitForm() { async submitForm() {
const array = JSON.parse( const array = JSON.parse(
JSON.stringify(this.formList).replace(/optValName/g, "warningName") JSON.stringify(this.formList).replace(/optValName/g, 'warningName')
); );
this.loading = true; this.loading = true;
const { code } = await update({ const { code } = await update({
@ -107,9 +107,9 @@ export default {
}); });
this.loading = false; this.loading = false;
if (code !== 200) { if (code !== 200) {
return this.$message.error("更新错误,请稍后重试"); return this.$message.error('更新错误,请稍后重试');
} }
this.$message.success("更新成功"); this.$message.success('更新成功');
} }
}, },
computed: { computed: {
@ -137,8 +137,5 @@ export default {
.right { .right {
float: right; float: right;
} }
.el-select {
width: 150px;
}
} }
</style> </style>

View File

@ -0,0 +1,388 @@
<template>
<section class="app-container">
<el-row>
<!-- 地区 -->
<el-col :span="4">
<region
@selectdRegionCode="selectdRegionCode"
:currentNodeKey.sync="queryParams.provinceCode"
></region>
</el-col>
<!-- form表单 -->
<el-col :span="20">
<el-form
:model="queryParams"
:inline="true"
ref="queryForm"
v-show="showSearch"
label-width="68px"
>
<!-- 第一行 -->
<el-row>
<el-col :span="6">
<el-form-item label="告警等级">
<el-select
v-model="queryParams.deviceType"
clearable
placeholder="请输入告警等级"
>
<el-option
v-for="item in signalLevelList"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="告警名称">
<el-input
v-model="queryParams.deviceName"
placeholder="请输入告警名称"
clearable
size="small"
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="产品名称">
<el-select
v-model="queryParams.deviceType"
clearable
placeholder="请选择"
>
<el-option
v-for="item in signalLevelList"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="所属客户">
<el-select
v-model="queryParams.deviceType"
clearable
placeholder="请选择"
>
<el-option
v-for="item in signalLevelList"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<!-- 第二行 -->
<el-row>
<el-col :span="6">
<el-form-item label="所属项目">
<el-select
v-model="queryParams.deviceType"
clearable
placeholder="请选择"
>
<el-option
v-for="item in signalLevelList"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="站址名称">
<el-input
v-model="queryParams.deviceName"
placeholder="请输入站址名称"
clearable
size="small"
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设备SN">
<el-input
v-model="queryParams.deviceSn"
placeholder="请输入设备SN"
clearable
size="small"
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="工单编号">
<el-input
v-model="queryParams.productId"
placeholder="请输入工单编号"
clearable
size="small"
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</el-col>
</el-row>
<!-- 第三行 -->
<el-row>
<el-col :span="6">
<el-form-item label="工单状态">
<el-select
v-model="queryParams.deviceType"
clearable
placeholder="请选择"
>
<el-option
v-for="item in signalLevelList"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item>
<el-date-picker
v-model="dateRange"
size="small"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="受理开始时间"
end-placeholder="受理结束时间"
></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item>
<el-button
type="cyan"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>
查询
</el-button>
<el-button
icon="el-icon-refresh"
size="mini"
@click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-col>
</el-row>
</el-form>
<!-- 表格区域 -->
<el-table v-loading="loading" :data="tableData" style="width: 100%">
<!-- 省市区 -->
<!-- <el-table-column
prop="proName"
align="center"
label="省份"
min-width="80"
>
</el-table-column>
<el-table-column
prop="cityName"
align="center"
label="市"
min-width="80"
>
</el-table-column>
<el-table-column
prop="disName"
align="center"
label="区"
min-width="80"
>
</el-table-column> -->
<el-table-column
prop="workCode"
align="center"
label="工单编号"
min-width="150"
></el-table-column
><el-table-column
prop="warningName"
align="center"
label="告警名称"
min-width="150"
></el-table-column>
<el-table-column
prop="warningLevel"
align="center"
label="告警等级"
min-width="150"
></el-table-column>
<el-table-column
prop="productName"
label="产品名称"
align="center"
min-width="100"
>
</el-table-column>
<el-table-column
prop="nikeName"
align="center"
label="所属客户"
></el-table-column>
<el-table-column
prop="projectName"
align="center"
label="所属项目"
></el-table-column>
<el-table-column align="center" label="站址名称"></el-table-column>
<el-table-column
prop="deviceName"
align="center"
label="设备名称"
></el-table-column>
<el-table-column
prop="deviceSn"
align="center"
label="设备SN"
min-width="100"
></el-table-column>
<el-table-column
prop="warningDetails"
align="center"
label="告警状态"
></el-table-column>
<el-table-column
prop="status"
align="center"
label="工单状态"
></el-table-column>
<el-table-column align="center" label="建单时间" min-width="150">
<template slot-scope="scope">
{{ scope.row.createTime | formatDate }}
</template>
</el-table-column>
<el-table-column align="center" label="接单时间" min-width="150">
<template slot-scope="scope">
{{ scope.row.warningTime | formatDate }}
</template>
</el-table-column>
<el-table-column align="center" label="回单时间" min-width="150">
<template slot-scope="scope">
{{ scope.row.warningTime | formatDate }}
</template>
</el-table-column>
<el-table-column
prop=""
label="处理人"
align="center"
></el-table-column>
<el-table-column
prop=""
label="故障原因"
align="center"
></el-table-column>
<el-table-column
prop=""
label="处理方法"
align="center"
></el-table-column>
</el-table>
<!-- 分页 -->
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-col>
</el-row>
</section>
</template>
<script>
import Region from '@/components/Region';
import { list } from '@/api/work/order';
export default {
name: 'workOrder',
components: {
Region
},
data() {
return {
dateRange: [],
signalLevelList: [
{ label: '一级', value: '1' },
{ label: '二级', value: '2' },
{ label: '三级', value: '3' },
{ label: '四级', value: '4' }
],
queryParams: {
pageNum: 1,
pageSize: 10
},
// 遮罩层
loading: true,
// 总条数
total: 0,
// 表格数据
tableData: [],
// 显示搜索条件
showSearch: true
};
},
methods: {
selectdRegionCode({ code }) {
this.queryParams.provinceCode = code;
this.handleQuery();
},
// 获取告警工单列表
getList() {
this.loading = true;
list(this.addDateRange(this.queryParams, this.dateRange)).then(res => {
this.tableData = res.rows;
this.total = res.total;
this.loading = false;
});
},
// 搜索按钮操作
handleQuery() {
this.queryParams.pageNum = 1;
this.queryParams.pageSize = 10;
this.getList();
},
// 重置按钮操作
resetQuery() {
this.queryParams = {};
this.resetForm('queryForm');
this.dateRange = [];
this.handleQuery();
}
},
computed: {},
watch: {},
created() {
this.getList();
}
};
</script>
<style lang="scss" scoped></style>