blankk
2 years ago
4 changed files with 1337 additions and 0 deletions
@ -0,0 +1,319 @@
@@ -0,0 +1,319 @@
|
||||
<template> |
||||
<div class="app-container"> |
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> |
||||
<el-form-item label="选择站点" prop="stnmId"> |
||||
<el-select v-model="queryParams.stnmId" placeholder="请选择站点" clearable> |
||||
<el-option |
||||
v-for="dict in stationList" |
||||
:key="dict.id" |
||||
:label="dict.stnm" |
||||
:value="dict.id" |
||||
/> |
||||
</el-select> |
||||
</el-form-item> |
||||
<el-form-item label="预警时间" prop="alarmTime"> |
||||
<el-date-picker clearable |
||||
v-model="queryParams.alarmTime" |
||||
type="date" |
||||
value-format="yyyy-MM-dd" |
||||
placeholder="请选择预警时间"> |
||||
</el-date-picker> |
||||
</el-form-item> |
||||
<el-form-item> |
||||
<el-button type="primary" 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-form> |
||||
|
||||
<el-row :gutter="10" class="mb8"> |
||||
<el-col :span="1.5"> |
||||
<el-button |
||||
type="primary" |
||||
plain |
||||
icon="el-icon-plus" |
||||
size="mini" |
||||
@click="handleAdd" |
||||
v-hasPermi="['warning:alarm:add']" |
||||
>新增</el-button> |
||||
</el-col> |
||||
<el-col :span="1.5"> |
||||
<el-button |
||||
type="success" |
||||
plain |
||||
icon="el-icon-edit" |
||||
size="mini" |
||||
:disabled="single" |
||||
@click="handleUpdate" |
||||
v-hasPermi="['warning:alarm:edit']" |
||||
>修改</el-button> |
||||
</el-col> |
||||
<el-col :span="1.5"> |
||||
<el-button |
||||
type="danger" |
||||
plain |
||||
icon="el-icon-delete" |
||||
size="mini" |
||||
:disabled="multiple" |
||||
@click="handleDelete" |
||||
v-hasPermi="['warning:alarm:remove']" |
||||
>删除</el-button> |
||||
</el-col> |
||||
<el-col :span="1.5"> |
||||
<el-button |
||||
type="warning" |
||||
plain |
||||
icon="el-icon-download" |
||||
size="mini" |
||||
@click="handleExport" |
||||
v-hasPermi="['warning:alarm:export']" |
||||
>导出</el-button> |
||||
</el-col> |
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
||||
</el-row> |
||||
|
||||
<el-table v-loading="loading" :data="alarmList" @selection-change="handleSelectionChange"> |
||||
<el-table-column type="selection" width="55" align="center" /> |
||||
<el-table-column label="序号" type="index" width="50" align="center"/> |
||||
<el-table-column label="测站名称" align="center" prop="stnmId"> |
||||
<template slot-scope="scope"> |
||||
<div v-for="item in stationList"> |
||||
{{(scope.row.stnmId == item.id)?item.stnm:''}} |
||||
</div> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column label="预警内容" align="center" prop="alarmContent" /> |
||||
<el-table-column label="预警时间" align="center" prop="alarmTime" width="180"> |
||||
<template slot-scope="scope"> |
||||
<span>{{ parseTime(scope.row.alarmTime, '{y}-{m}-{d}') }}</span> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
||||
<template slot-scope="scope"> |
||||
<el-button |
||||
size="mini" |
||||
type="text" |
||||
icon="el-icon-edit" |
||||
@click="handleUpdate(scope.row)" |
||||
v-hasPermi="['warning:alarm:edit']" |
||||
>修改</el-button> |
||||
<el-button |
||||
size="mini" |
||||
type="text" |
||||
icon="el-icon-delete" |
||||
@click="handleDelete(scope.row)" |
||||
v-hasPermi="['warning:alarm:remove']" |
||||
>删除</el-button> |
||||
</template> |
||||
</el-table-column> |
||||
</el-table> |
||||
|
||||
<pagination |
||||
v-show="total>0" |
||||
:total="total" |
||||
:page.sync="queryParams.page" |
||||
:limit.sync="queryParams.limit" |
||||
@pagination="getList" |
||||
/> |
||||
|
||||
<!-- 添加或修改预警管理对话框 --> |
||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> |
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> |
||||
<el-form-item label="选择站点" prop="stnmId"> |
||||
<el-select v-model="form.stnmId" placeholder="请选择站点" clearable> |
||||
<el-option |
||||
v-for="dict in stationList" |
||||
:key="dict.id" |
||||
:label="dict.stnm" |
||||
:value="dict.id" |
||||
/> |
||||
</el-select> |
||||
</el-form-item> |
||||
<el-form-item label="预警内容" prop="msgContent"> |
||||
<el-input v-model="form.alarmContent" type="textarea" placeholder="请输入预警内容" /> |
||||
</el-form-item> |
||||
<el-form-item label="预警时间" prop="alarmTime"> |
||||
<el-date-picker clearable |
||||
v-model="form.alarmTime" |
||||
type="date" |
||||
value-format="yyyy-MM-dd" |
||||
placeholder="请选择预警时间"> |
||||
</el-date-picker> |
||||
</el-form-item> |
||||
</el-form> |
||||
<div slot="footer" class="dialog-footer"> |
||||
<el-button type="primary" @click="submitForm">确 定</el-button> |
||||
<el-button @click="cancel">取 消</el-button> |
||||
</div> |
||||
</el-dialog> |
||||
</div> |
||||
</template> |
||||
|
||||
<script> |
||||
export default { |
||||
name: "Alarm", |
||||
data() { |
||||
return { |
||||
// 遮罩层 |
||||
loading: true, |
||||
// 选中数组 |
||||
ids: [], |
||||
// 非单个禁用 |
||||
single: true, |
||||
// 非多个禁用 |
||||
multiple: true, |
||||
// 显示搜索条件 |
||||
showSearch: true, |
||||
// 总条数 |
||||
total: 0, |
||||
// 预警管理表格数据 |
||||
alarmList: [], |
||||
// 弹出层标题 |
||||
title: "", |
||||
// 是否显示弹出层 |
||||
open: false, |
||||
// 查询参数 |
||||
queryParams: { |
||||
page: 1, |
||||
limit: 10, |
||||
stnmId: null, |
||||
alarmTime: null, |
||||
}, |
||||
stationList: [], |
||||
// 表单参数 |
||||
form: {}, |
||||
// 表单校验 |
||||
rules: { |
||||
} |
||||
}; |
||||
}, |
||||
created() { |
||||
this.getList(); |
||||
this.getStationList(); |
||||
}, |
||||
methods: { |
||||
/** 查询水尺-测站信息列表 */ |
||||
async getStationList() { |
||||
let res = await this.$axiosGet('/system/info/list'); |
||||
if(res.code === 0){ |
||||
this.stationList = res.data; |
||||
} |
||||
}, |
||||
/** 查询预警管理列表 */ |
||||
async getList() { |
||||
this.loading = true; |
||||
let res = await this.$axiosGet('/warning/alarm/list',this.queryParams); |
||||
if(res.code === 0){ |
||||
this.alarmList = res.data; |
||||
this.total = res.count; |
||||
} |
||||
this.loading = false; |
||||
}, |
||||
// 取消按钮 |
||||
cancel() { |
||||
this.open = false; |
||||
this.reset(); |
||||
}, |
||||
// 表单重置 |
||||
reset() { |
||||
this.form = { |
||||
id: null, |
||||
stnmId: null, |
||||
alarmContent: null, |
||||
alarmTime: null, |
||||
}; |
||||
this.resetForm("form"); |
||||
}, |
||||
/** 搜索按钮操作 */ |
||||
handleQuery() { |
||||
this.queryParams.page = 1; |
||||
this.getList(); |
||||
}, |
||||
/** 重置按钮操作 */ |
||||
resetQuery() { |
||||
this.resetForm("queryForm"); |
||||
this.handleQuery(); |
||||
}, |
||||
// 多选框选中数据 |
||||
handleSelectionChange(selection) { |
||||
this.ids = selection.map(item => item.id) |
||||
this.single = selection.length!==1 |
||||
this.multiple = !selection.length |
||||
}, |
||||
/** 新增按钮操作 */ |
||||
handleAdd() { |
||||
this.reset(); |
||||
this.open = true; |
||||
this.title = "添加预警管理"; |
||||
}, |
||||
/** 修改按钮操作 */ |
||||
async handleUpdate(row) { |
||||
this.reset(); |
||||
const id = row.id || this.ids |
||||
let res = await this.$axiosGet('/warning/alarm/info/'+id); |
||||
if(res.code === 0){ |
||||
this.form = res.data; |
||||
this.open = true; |
||||
this.title = "修改"; |
||||
} |
||||
}, |
||||
async addMethod(){ |
||||
let res = await this.$axiosPost('/warning/alarm/add',this.form); |
||||
if(res.code === 0){ |
||||
this.$modal.msgSuccess("新增成功"); |
||||
this.open = false; |
||||
this.getList(); |
||||
} |
||||
}, |
||||
async editMethod(){ |
||||
let res = await this.$axiosPost('/warning/alarm/edit',this.form); |
||||
if(res.code === 0){ |
||||
this.$modal.msgSuccess("修改成功"); |
||||
this.open = false; |
||||
this.getList(); |
||||
} |
||||
}, |
||||
/** 提交按钮 */ |
||||
submitForm() { |
||||
this.$refs["form"].validate(valid => { |
||||
if (valid) { |
||||
if (this.form.id != null) { |
||||
this.editMethod(); |
||||
} else { |
||||
this.addMethod(); |
||||
} |
||||
} |
||||
}); |
||||
}, |
||||
|
||||
/** 删除按钮操作 */ |
||||
handleDelete(row) { |
||||
const ids = row.id || this.ids; |
||||
this.$confirm('此操作将永久删除数据, 是否继续?', '提示', { |
||||
confirmButtonText: '确定', |
||||
cancelButtonText: '取消', |
||||
type: 'warning' |
||||
}).then(() => { |
||||
this.delAlarm(ids) |
||||
}).catch(() => { |
||||
this.$message({ |
||||
type: 'info', |
||||
message: '已取消删除' |
||||
}); |
||||
}); |
||||
}, |
||||
async delAlarm(ids){ |
||||
let res = await this.$axiosDelete('/warning/alarm/delete/'+ids); |
||||
if(res.code === 0){ |
||||
this.$modal.msgSuccess("删除成功"); |
||||
await this.getList(); |
||||
} |
||||
}, |
||||
/** 导出按钮操作 */ |
||||
handleExport() { |
||||
this.download('warning/alarm/export', { |
||||
...this.queryParams |
||||
}, `alarm_${new Date().getTime()}.xlsx`) |
||||
} |
||||
} |
||||
}; |
||||
</script> |
@ -0,0 +1,290 @@
@@ -0,0 +1,290 @@
|
||||
<template> |
||||
<div class="app-container"> |
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> |
||||
<el-form-item label="姓名" prop="name"> |
||||
<el-input |
||||
v-model="queryParams.name" |
||||
placeholder="请输入姓名" |
||||
clearable |
||||
@keyup.enter.native="handleQuery" |
||||
/> |
||||
</el-form-item> |
||||
<el-form-item label="手机号" prop="phone"> |
||||
<el-input |
||||
v-model="queryParams.phone" |
||||
placeholder="请输入手机号" |
||||
clearable |
||||
@keyup.enter.native="handleQuery" |
||||
/> |
||||
</el-form-item> |
||||
<el-form-item> |
||||
<el-button type="primary" 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-form> |
||||
|
||||
<el-row :gutter="10" class="mb8"> |
||||
<el-col :span="1.5"> |
||||
<el-button |
||||
type="primary" |
||||
plain |
||||
icon="el-icon-plus" |
||||
size="mini" |
||||
@click="handleAdd" |
||||
v-hasPermi="['warning:employee:add']" |
||||
>新增</el-button> |
||||
</el-col> |
||||
<el-col :span="1.5"> |
||||
<el-button |
||||
type="success" |
||||
plain |
||||
icon="el-icon-edit" |
||||
size="mini" |
||||
:disabled="single" |
||||
@click="handleUpdate" |
||||
v-hasPermi="['warning:employee:edit']" |
||||
>修改</el-button> |
||||
</el-col> |
||||
<el-col :span="1.5"> |
||||
<el-button |
||||
type="danger" |
||||
plain |
||||
icon="el-icon-delete" |
||||
size="mini" |
||||
:disabled="multiple" |
||||
@click="handleDelete" |
||||
v-hasPermi="['warning:employee:remove']" |
||||
>删除</el-button> |
||||
</el-col> |
||||
<el-col :span="1.5"> |
||||
<el-button |
||||
type="warning" |
||||
plain |
||||
icon="el-icon-download" |
||||
size="mini" |
||||
@click="handleExport" |
||||
v-hasPermi="['warning:employee:export']" |
||||
>导出</el-button> |
||||
</el-col> |
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
||||
</el-row> |
||||
|
||||
<el-table v-loading="loading" :data="employeeList" @selection-change="handleSelectionChange"> |
||||
<el-table-column type="selection" width="55" align="center" /> |
||||
<el-table-column label="序号" type="index" width="50" align="center"/> |
||||
<el-table-column label="姓名" align="center" prop="name" /> |
||||
<el-table-column label="手机号" align="center" prop="phone" /> |
||||
<el-table-column label="备注" align="center" prop="remarks" /> |
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
||||
<template slot-scope="scope"> |
||||
<el-button |
||||
size="mini" |
||||
type="text" |
||||
icon="el-icon-edit" |
||||
@click="handleUpdate(scope.row)" |
||||
v-hasPermi="['warning:employee:edit']" |
||||
>修改</el-button> |
||||
<el-button |
||||
size="mini" |
||||
type="text" |
||||
icon="el-icon-delete" |
||||
@click="handleDelete(scope.row)" |
||||
v-hasPermi="['warning:employee:remove']" |
||||
>删除</el-button> |
||||
</template> |
||||
</el-table-column> |
||||
</el-table> |
||||
|
||||
<pagination |
||||
v-show="total>0" |
||||
:total="total" |
||||
:page.sync="queryParams.page" |
||||
:limit.sync="queryParams.limit" |
||||
@pagination="getList" |
||||
/> |
||||
|
||||
<!-- 添加或修改人员管理对话框 --> |
||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> |
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> |
||||
<el-form-item label="姓名" prop="name"> |
||||
<el-input v-model="form.name" placeholder="请输入姓名" /> |
||||
</el-form-item> |
||||
<el-form-item label="手机号" prop="phone"> |
||||
<el-input v-model="form.phone" placeholder="请输入手机号" /> |
||||
</el-form-item> |
||||
<el-form-item label="备注" prop="remarks"> |
||||
<el-input v-model="form.remarks" placeholder="请输入备注" /> |
||||
</el-form-item> |
||||
</el-form> |
||||
<div slot="footer" class="dialog-footer"> |
||||
<el-button type="primary" @click="submitForm">确 定</el-button> |
||||
<el-button @click="cancel">取 消</el-button> |
||||
</div> |
||||
</el-dialog> |
||||
</div> |
||||
</template> |
||||
|
||||
<script> |
||||
export default { |
||||
name: "Employee", |
||||
data() { |
||||
return { |
||||
// 遮罩层 |
||||
loading: true, |
||||
// 选中数组 |
||||
ids: [], |
||||
// 非单个禁用 |
||||
single: true, |
||||
// 非多个禁用 |
||||
multiple: true, |
||||
// 显示搜索条件 |
||||
showSearch: true, |
||||
// 总条数 |
||||
total: 0, |
||||
// 人员管理表格数据 |
||||
employeeList: [], |
||||
// 弹出层标题 |
||||
title: "", |
||||
// 是否显示弹出层 |
||||
open: false, |
||||
// 查询参数 |
||||
queryParams: { |
||||
page: 1, |
||||
limit: 10, |
||||
name: null, |
||||
phone: null, |
||||
}, |
||||
// 表单参数 |
||||
form: {}, |
||||
// 表单校验 |
||||
rules: { |
||||
} |
||||
}; |
||||
}, |
||||
created() { |
||||
this.getList(); |
||||
}, |
||||
methods: { |
||||
/** 查询人员管理列表 */ |
||||
async getList() { |
||||
this.loading = true; |
||||
let res = await this.$axiosGet('/warning/employee/list',this.queryParams); |
||||
if(res.code === 0){ |
||||
this.employeeList = res.data; |
||||
this.total = res.count; |
||||
} |
||||
this.loading = false; |
||||
}, |
||||
// 取消按钮 |
||||
cancel() { |
||||
this.open = false; |
||||
this.reset(); |
||||
}, |
||||
// 表单重置 |
||||
reset() { |
||||
this.form = { |
||||
id: null, |
||||
name: null, |
||||
phone: null, |
||||
createTime: null, |
||||
updateTime: null, |
||||
remarks: null, |
||||
deleted: null |
||||
}; |
||||
this.resetForm("form"); |
||||
}, |
||||
/** 搜索按钮操作 */ |
||||
handleQuery() { |
||||
this.queryParams.page = 1; |
||||
this.getList(); |
||||
}, |
||||
/** 重置按钮操作 */ |
||||
resetQuery() { |
||||
this.resetForm("queryForm"); |
||||
this.handleQuery(); |
||||
}, |
||||
// 多选框选中数据 |
||||
handleSelectionChange(selection) { |
||||
this.ids = selection.map(item => item.id) |
||||
this.single = selection.length!==1 |
||||
this.multiple = !selection.length |
||||
}, |
||||
/** 新增按钮操作 */ |
||||
handleAdd() { |
||||
this.reset(); |
||||
this.open = true; |
||||
this.title = "添加人员管理"; |
||||
}, |
||||
/** 修改按钮操作 */ |
||||
async handleUpdate(row) { |
||||
this.reset(); |
||||
const id = row.id || this.ids |
||||
let res = await this.$axiosGet('/warning/employee/info/'+id); |
||||
if(res.code === 0){ |
||||
this.form = res.data; |
||||
this.open = true; |
||||
this.title = "修改"; |
||||
} |
||||
}, |
||||
async addMethod(){ |
||||
let res = await this.$axiosPost('/warning/employee/add',this.form); |
||||
if(res.code === 0){ |
||||
this.$modal.msgSuccess("新增成功"); |
||||
this.open = false; |
||||
this.getList(); |
||||
} |
||||
}, |
||||
async editMethod(){ |
||||
let res = await this.$axiosPost('/warning/employee/edit',this.form); |
||||
if(res.code === 0){ |
||||
this.$modal.msgSuccess("修改成功"); |
||||
this.open = false; |
||||
this.getList(); |
||||
} |
||||
}, |
||||
/** 提交按钮 */ |
||||
submitForm() { |
||||
this.$refs["form"].validate(valid => { |
||||
if (valid) { |
||||
if (this.form.id != null) { |
||||
this.editMethod(); |
||||
} else { |
||||
this.addMethod(); |
||||
} |
||||
} |
||||
}); |
||||
}, |
||||
|
||||
|
||||
/** 删除按钮操作 */ |
||||
handleDelete(row) { |
||||
const ids = row.id || this.ids; |
||||
this.$confirm('此操作将永久删除数据, 是否继续?', '提示', { |
||||
confirmButtonText: '确定', |
||||
cancelButtonText: '取消', |
||||
type: 'warning' |
||||
}).then(() => { |
||||
this.delEmp(ids) |
||||
}).catch(() => { |
||||
this.$message({ |
||||
type: 'info', |
||||
message: '已取消删除' |
||||
}); |
||||
}); |
||||
}, |
||||
async delEmp(ids){ |
||||
let res = await this.$axiosDelete('/warning/employee/delete/'+ids); |
||||
if(res.code === 0){ |
||||
this.$modal.msgSuccess("删除成功"); |
||||
await this.getList(); |
||||
} |
||||
}, |
||||
/** 导出按钮操作 */ |
||||
handleExport() { |
||||
this.download('warning/employee/export', { |
||||
...this.queryParams |
||||
}, `employee_${new Date().getTime()}.xlsx`) |
||||
} |
||||
} |
||||
}; |
||||
</script> |
@ -0,0 +1,420 @@
@@ -0,0 +1,420 @@
|
||||
<template> |
||||
<div class="app-container"> |
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> |
||||
<el-form-item label="选择站点" prop="stnmId"> |
||||
<el-select v-model="queryParams.stnmId" placeholder="请选择站点" clearable> |
||||
<el-option |
||||
v-for="dict in stationList" |
||||
:key="dict.id" |
||||
:label="dict.stnm" |
||||
:value="dict.id" |
||||
/> |
||||
</el-select> |
||||
</el-form-item> |
||||
<el-form-item label="发送时间" prop="sendTime"> |
||||
<el-date-picker clearable |
||||
v-model="queryParams.sendTime" |
||||
type="date" |
||||
value-format="yyyy-MM-dd" |
||||
placeholder="请选择发送时间"> |
||||
</el-date-picker> |
||||
</el-form-item> |
||||
<el-form-item label="消息状态" prop="sendStaus"> |
||||
<el-select v-model="queryParams.sendStaus" placeholder="请选择消息状态" clearable> |
||||
<el-option |
||||
v-for="dict in dict.type.msg_status" |
||||
:key="dict.value" |
||||
:label="dict.label" |
||||
:value="dict.value" |
||||
/> |
||||
</el-select> |
||||
</el-form-item> |
||||
<el-form-item> |
||||
<el-button type="primary" 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-form> |
||||
|
||||
<el-row :gutter="10" class="mb8"> |
||||
<el-col :span="1.5"> |
||||
<el-button |
||||
type="primary" |
||||
plain |
||||
icon="el-icon-plus" |
||||
size="mini" |
||||
@click="handleAdd" |
||||
v-hasPermi="['warning:message:add']" |
||||
>新增</el-button> |
||||
</el-col> |
||||
<el-col :span="1.5"> |
||||
<el-button |
||||
type="success" |
||||
plain |
||||
icon="el-icon-edit" |
||||
size="mini" |
||||
:disabled="single" |
||||
@click="handleUpdate" |
||||
v-hasPermi="['warning:message:edit']" |
||||
>修改</el-button> |
||||
</el-col> |
||||
<el-col :span="1.5"> |
||||
<el-button |
||||
type="danger" |
||||
plain |
||||
icon="el-icon-delete" |
||||
size="mini" |
||||
:disabled="multiple" |
||||
@click="handleDelete" |
||||
v-hasPermi="['warning:message:remove']" |
||||
>删除</el-button> |
||||
</el-col> |
||||
<el-col :span="1.5"> |
||||
<el-button |
||||
type="warning" |
||||
plain |
||||
icon="el-icon-download" |
||||
size="mini" |
||||
@click="handleExport" |
||||
v-hasPermi="['warning:message:export']" |
||||
>导出</el-button> |
||||
</el-col> |
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
||||
</el-row> |
||||
|
||||
<el-table v-loading="loading" :data="messageList" @selection-change="handleSelectionChange"> |
||||
<el-table-column type="selection" width="55" align="center" /> |
||||
<el-table-column label="序号" type="index" width="50" align="center"/> |
||||
<el-table-column label="测站名称" align="center" prop="stnmId"> |
||||
<template slot-scope="scope"> |
||||
<div v-for="item in stationList"> |
||||
{{(scope.row.stnmId == item.id)?item.stnm:''}} |
||||
</div> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column label="短信名称" align="center" prop="msgName" /> |
||||
<el-table-column label="发送时间" align="center" prop="sendTime" width="180"> |
||||
<template slot-scope="scope"> |
||||
<span>{{ parseTime(scope.row.sendTime, '{y}-{m}-{d}') }}</span> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column label="消息状态" align="center" prop="sendStaus"> |
||||
<template slot-scope="scope"> |
||||
<dict-tag :options="dict.type.msg_status" :value="scope.row.sendStaus"/> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
||||
<template slot-scope="scope"> |
||||
<el-button |
||||
size="mini" |
||||
type="text" |
||||
icon="el-icon-view" |
||||
@click="getMsgdetails(scope.row)" |
||||
>查看</el-button> |
||||
<el-button |
||||
size="mini" |
||||
type="text" |
||||
icon="el-icon-edit" |
||||
@click="handleUpdate(scope.row)" |
||||
v-hasPermi="['warning:message:edit']" |
||||
>修改</el-button> |
||||
<el-button |
||||
size="mini" |
||||
type="text" |
||||
icon="el-icon-delete" |
||||
@click="handleDelete(scope.row)" |
||||
v-hasPermi="['warning:message:remove']" |
||||
>删除</el-button> |
||||
</template> |
||||
</el-table-column> |
||||
</el-table> |
||||
|
||||
<pagination |
||||
v-show="total>0" |
||||
:total="total" |
||||
:page.sync="queryParams.page" |
||||
:limit.sync="queryParams.limit" |
||||
@pagination="getList" |
||||
/> |
||||
|
||||
<!-- 添加或修改短信管理对话框 --> |
||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> |
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> |
||||
<el-form-item label="短信名称" prop="msgName"> |
||||
<el-input v-model="form.msgName" placeholder="请输入短信名称" /> |
||||
</el-form-item> |
||||
<el-form-item label="短信内容" prop="msgContent"> |
||||
<el-input v-model="form.msgContent" type="textarea" placeholder="请输入内容" /> |
||||
</el-form-item> |
||||
<!-- <el-form-item label="发送时间" prop="sendTime"> |
||||
<el-date-picker clearable |
||||
v-model="form.sendTime" |
||||
type="date" |
||||
value-format="yyyy-MM-dd" |
||||
placeholder="请选择发送时间"> |
||||
</el-date-picker> |
||||
</el-form-item> |
||||
<el-form-item label="消息状态" prop="sendStaus"> |
||||
<el-select v-model="form.sendStaus" placeholder="请选择消息状态"> |
||||
<el-option |
||||
v-for="dict in dict.type.msg_status" |
||||
:key="dict.value" |
||||
:label="dict.label" |
||||
:value="dict.value" |
||||
></el-option> |
||||
</el-select> |
||||
</el-form-item>--> |
||||
<el-form-item label="选择站点" prop="stnmId"> |
||||
<el-select v-model="form.stnmId" placeholder="请选择站点" clearable> |
||||
<el-option |
||||
v-for="dict in stationList" |
||||
:key="dict.id" |
||||
:label="dict.stnm" |
||||
:value="dict.id" |
||||
/> |
||||
</el-select> |
||||
</el-form-item> |
||||
<el-form-item label="选择人员" prop="empId"> |
||||
<el-select v-model="form.empId" placeholder="请选择人员" clearable> |
||||
<el-option |
||||
v-for="dict in employeeList" |
||||
:key="dict.id" |
||||
:label="dict.name" |
||||
:value="dict.id" |
||||
/> |
||||
</el-select> |
||||
</el-form-item> |
||||
</el-form> |
||||
<div slot="footer" class="dialog-footer"> |
||||
<el-button type="primary" @click="submitForm">确 定</el-button> |
||||
<el-button @click="cancel">取 消</el-button> |
||||
</div> |
||||
</el-dialog> |
||||
|
||||
<!-- 短信的详细信息弹框 --> |
||||
<el-dialog title="短信的详细信息" :visible.sync="msgOpen" width="700px" append-to-body> |
||||
<el-descriptions :colon="false" column="2"> |
||||
<el-descriptions-item labelStyle="font-weight:bold;" label="短信名称:">{{ msgDetails.msgName }}</el-descriptions-item> |
||||
<el-descriptions-item labelStyle="font-weight:bold;" label="测站名称:">{{msgDetails.stnm}}</el-descriptions-item> |
||||
<el-descriptions-item labelStyle="font-weight:bold;" label="发送时间:">{{parseTime(msgDetails.sendTime, '{y}-{m}-{d}-{h}-{i}-{s}')}}</el-descriptions-item> |
||||
<el-descriptions-item labelStyle="font-weight:bold;" label="短信状态:"> |
||||
<el-tag size="small" type="success" v-show="msgDetails.sendStaus==0">发送成功</el-tag> |
||||
<el-tag size="small" type="danger" v-show="msgDetails.sendStaus==1">发送失败</el-tag> |
||||
</el-descriptions-item> |
||||
<el-descriptions-item labelStyle="font-weight:bold;" label="短信内容:"> |
||||
{{msgDetails.msgContent}} |
||||
</el-descriptions-item> |
||||
</el-descriptions> |
||||
</el-dialog> |
||||
</div> |
||||
</template> |
||||
|
||||
<script> |
||||
|
||||
export default { |
||||
name: "Message", |
||||
dicts: ['msg_status'], |
||||
data() { |
||||
return { |
||||
// 遮罩层 |
||||
loading: true, |
||||
// 选中数组 |
||||
ids: [], |
||||
// 非单个禁用 |
||||
single: true, |
||||
// 非多个禁用 |
||||
multiple: true, |
||||
// 显示搜索条件 |
||||
showSearch: true, |
||||
msgDetails: {}, |
||||
// 总条数 |
||||
total: 0, |
||||
// 短信管理表格数据 |
||||
messageList: [], |
||||
// 弹出层标题 |
||||
title: "", |
||||
// 是否显示弹出层 |
||||
open: false, |
||||
stationList: [], |
||||
// 查询参数 |
||||
queryParams: { |
||||
page: 1, |
||||
limit: 10, |
||||
msgName: null, |
||||
msgContent: null, |
||||
sendTime: null, |
||||
sendStaus: null, |
||||
stnmId: null, |
||||
}, |
||||
// 表单参数 |
||||
form: {}, |
||||
employeeList:[], |
||||
msgOpen: false, |
||||
// 表单校验 |
||||
rules: { |
||||
msgName: [ |
||||
{ required: true, message: "短信名称不能为空", trigger: "blur" } |
||||
], |
||||
stnmId: [ |
||||
{ required: true, message: "测站名称不能为空", trigger: "blur" } |
||||
], |
||||
empId: [ |
||||
{ required: true, message: "人员名称不能为空", trigger: "blur" } |
||||
], |
||||
} |
||||
}; |
||||
}, |
||||
created() { |
||||
this.getList(); |
||||
}, |
||||
methods: { |
||||
/** 查询人员管理列表 */ |
||||
async getEmployeeList() { |
||||
let res = await this.$axiosGet('/warning/employee/list',this.queryParams); |
||||
if(res.code === 0){ |
||||
this.employeeList = res.data; |
||||
} |
||||
}, |
||||
/** 查看短信的详细信息 */ |
||||
async getMsgdetails(row){ |
||||
this.reset(); |
||||
const id = row.id || this.ids |
||||
let res = await this.$axiosGet('/warning/message/info/'+id); |
||||
if(res.code === 0){ |
||||
this.msgDetails = res.data; |
||||
this.msgDetails.stnm = this.stationList.filter(item => item.id === res.data.stnmId)[0].stnm |
||||
this.msgOpen = true; |
||||
} |
||||
}, |
||||
/** 查询水尺-测站信息列表 */ |
||||
async getStationList() { |
||||
let res = await this.$axiosGet('/system/info/list'); |
||||
if(res.code === 0){ |
||||
this.stationList = res.data; |
||||
} |
||||
}, |
||||
/** 查询短信管理列表 */ |
||||
async getList() { |
||||
this.loading = true; |
||||
let res = await this.$axiosGet('/warning/message/list',this.queryParams); |
||||
if(res.code === 0){ |
||||
this.messageList = res.data; |
||||
this.total = res.count; |
||||
await this.getStationList(); |
||||
await this.getEmployeeList(); |
||||
} |
||||
this.loading = false; |
||||
}, |
||||
// 取消按钮 |
||||
cancel() { |
||||
this.open = false; |
||||
this.reset(); |
||||
}, |
||||
// 表单重置 |
||||
reset() { |
||||
this.form = { |
||||
id: null, |
||||
msgName: null, |
||||
msgContent: null, |
||||
sendTime: null, |
||||
sendStaus: null, |
||||
stnmId: null, |
||||
empId: null, |
||||
deleted: null |
||||
}; |
||||
this.resetForm("form"); |
||||
}, |
||||
/** 搜索按钮操作 */ |
||||
handleQuery() { |
||||
this.queryParams.page = 1; |
||||
this.getList(); |
||||
}, |
||||
/** 重置按钮操作 */ |
||||
resetQuery() { |
||||
this.resetForm("queryForm"); |
||||
this.handleQuery(); |
||||
}, |
||||
// 多选框选中数据 |
||||
handleSelectionChange(selection) { |
||||
this.ids = selection.map(item => item.id) |
||||
this.single = selection.length!==1 |
||||
this.multiple = !selection.length |
||||
}, |
||||
/** 新增按钮操作 */ |
||||
handleAdd() { |
||||
this.reset(); |
||||
this.open = true; |
||||
this.title = "添加短信管理"; |
||||
}, |
||||
/** 修改按钮操作 */ |
||||
async handleUpdate(row) { |
||||
this.reset(); |
||||
const id = row.id || this.ids |
||||
let res = await this.$axiosGet('/warning/message/info/'+id); |
||||
if(res.code === 0){ |
||||
this.form = res.data; |
||||
this.open = true; |
||||
this.title = "修改"; |
||||
} |
||||
}, |
||||
async addMethod(){ |
||||
let res = await this.$axiosPost('/warning/message/add',this.form); |
||||
if(res.code === 0){ |
||||
this.$modal.msgSuccess("新增成功"); |
||||
this.open = false; |
||||
this.getList(); |
||||
} |
||||
}, |
||||
async editMethod(){ |
||||
let res = await this.$axiosPost('/warning/message/edit',this.form); |
||||
if(res.code === 0){ |
||||
this.$modal.msgSuccess("修改成功"); |
||||
this.open = false; |
||||
this.getList(); |
||||
} |
||||
}, |
||||
/** 提交按钮 */ |
||||
submitForm() { |
||||
this.$refs["form"].validate(valid => { |
||||
if (valid) { |
||||
if (this.form.id != null) { |
||||
this.editMethod(); |
||||
} else { |
||||
this.addMethod(); |
||||
} |
||||
} |
||||
}); |
||||
}, |
||||
|
||||
|
||||
/** 删除按钮操作 */ |
||||
handleDelete(row) { |
||||
const ids = row.id || this.ids; |
||||
this.$confirm('此操作将永久删除数据, 是否继续?', '提示', { |
||||
confirmButtonText: '确定', |
||||
cancelButtonText: '取消', |
||||
type: 'warning' |
||||
}).then(() => { |
||||
this.delMsg(ids) |
||||
}).catch(() => { |
||||
this.$message({ |
||||
type: 'info', |
||||
message: '已取消删除' |
||||
}); |
||||
}); |
||||
}, |
||||
async delMsg(ids){ |
||||
let res = await this.$axiosDelete('/warning/message/delete/'+ids); |
||||
if(res.code === 0){ |
||||
this.$modal.msgSuccess("删除成功"); |
||||
await this.getList(); |
||||
} |
||||
}, |
||||
/** 导出按钮操作 */ |
||||
handleExport() { |
||||
this.download('warning/message/export', { |
||||
...this.queryParams |
||||
}, `message_${new Date().getTime()}.xlsx`) |
||||
} |
||||
} |
||||
}; |
||||
</script> |
@ -0,0 +1,308 @@
@@ -0,0 +1,308 @@
|
||||
<template> |
||||
<div class="app-container"> |
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> |
||||
<el-form-item label="选择站点" prop="stnmId"> |
||||
<el-select v-model="queryParams.stnmId" placeholder="请选择站点" clearable> |
||||
<el-option |
||||
v-for="dict in stationList" |
||||
:key="dict.id" |
||||
:label="dict.stnm" |
||||
:value="dict.id" |
||||
/> |
||||
</el-select> |
||||
</el-form-item> |
||||
<el-form-item> |
||||
<el-button type="primary" 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-form> |
||||
|
||||
<el-row :gutter="10" class="mb8"> |
||||
<el-col :span="1.5"> |
||||
<el-button |
||||
type="primary" |
||||
plain |
||||
icon="el-icon-plus" |
||||
size="mini" |
||||
@click="handleAdd" |
||||
v-hasPermi="['warning:threshold:add']" |
||||
>新增</el-button> |
||||
</el-col> |
||||
<el-col :span="1.5"> |
||||
<el-button |
||||
type="success" |
||||
plain |
||||
icon="el-icon-edit" |
||||
size="mini" |
||||
:disabled="single" |
||||
@click="handleUpdate" |
||||
v-hasPermi="['warning:threshold:edit']" |
||||
>修改</el-button> |
||||
</el-col> |
||||
<el-col :span="1.5"> |
||||
<el-button |
||||
type="danger" |
||||
plain |
||||
icon="el-icon-delete" |
||||
size="mini" |
||||
:disabled="multiple" |
||||
@click="handleDelete" |
||||
v-hasPermi="['warning:threshold:remove']" |
||||
>删除</el-button> |
||||
</el-col> |
||||
<el-col :span="1.5"> |
||||
<el-button |
||||
type="warning" |
||||
plain |
||||
icon="el-icon-download" |
||||
size="mini" |
||||
@click="handleExport" |
||||
v-hasPermi="['warning:threshold:export']" |
||||
>导出</el-button> |
||||
</el-col> |
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
||||
</el-row> |
||||
|
||||
<el-table v-loading="loading" :data="thresholdList" @selection-change="handleSelectionChange"> |
||||
<el-table-column type="selection" width="55" align="center" /> |
||||
<el-table-column label="序号" type="index" width="50" align="center"/> |
||||
<el-table-column label="测站名称" align="center" prop="stnmId"> |
||||
<template slot-scope="scope"> |
||||
<div v-for="item in stationList"> |
||||
{{(scope.row.stnmId == item.id)?item.stnm:''}} |
||||
</div> |
||||
</template> |
||||
</el-table-column> |
||||
<el-table-column label="阈值一级" align="center" prop="thresholdLevelL" /> |
||||
<el-table-column label="阈值二级" align="center" prop="thresholdLevelLl" /> |
||||
<el-table-column label="阈值三级" align="center" prop="thresholdLevelLll" /> |
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
||||
<template slot-scope="scope"> |
||||
<el-button |
||||
size="mini" |
||||
type="text" |
||||
icon="el-icon-edit" |
||||
@click="handleUpdate(scope.row)" |
||||
v-hasPermi="['warning:threshold:edit']" |
||||
>修改</el-button> |
||||
<el-button |
||||
size="mini" |
||||
type="text" |
||||
icon="el-icon-delete" |
||||
@click="handleDelete(scope.row)" |
||||
v-hasPermi="['warning:threshold:remove']" |
||||
>删除</el-button> |
||||
</template> |
||||
</el-table-column> |
||||
</el-table> |
||||
|
||||
<pagination |
||||
v-show="total>0" |
||||
:total="total" |
||||
:page.sync="queryParams.page" |
||||
:limit.sync="queryParams.limit" |
||||
@pagination="getList" |
||||
/> |
||||
|
||||
<!-- 添加或修改阈值管理对话框 --> |
||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> |
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> |
||||
<el-form-item label="选择站点" prop="stnmId"> |
||||
<el-select v-model="form.stnmId" placeholder="请选择站点" clearable> |
||||
<el-option |
||||
v-for="dict in stationList" |
||||
:key="dict.id" |
||||
:label="dict.stnm" |
||||
:value="dict.id" |
||||
/> |
||||
</el-select> |
||||
</el-form-item> |
||||
<el-form-item label="阈值一级" prop="thresholdLevelL"> |
||||
<el-input v-model="form.thresholdLevelL" placeholder="请输入阈值一级" /> |
||||
</el-form-item> |
||||
<el-form-item label="阈值二级" prop="thresholdLevelLl"> |
||||
<el-input v-model="form.thresholdLevelLl" placeholder="请输入阈值二级" /> |
||||
</el-form-item> |
||||
<el-form-item label="阈值三级" prop="thresholdLevelLll"> |
||||
<el-input v-model="form.thresholdLevelLll" placeholder="请输入阈值三级" /> |
||||
</el-form-item> |
||||
</el-form> |
||||
<div slot="footer" class="dialog-footer"> |
||||
<el-button type="primary" @click="submitForm">确 定</el-button> |
||||
<el-button @click="cancel">取 消</el-button> |
||||
</div> |
||||
</el-dialog> |
||||
</div> |
||||
</template> |
||||
|
||||
<script> |
||||
export default { |
||||
name: "Threshold", |
||||
data() { |
||||
return { |
||||
// 遮罩层 |
||||
loading: true, |
||||
// 选中数组 |
||||
ids: [], |
||||
// 非单个禁用 |
||||
single: true, |
||||
// 非多个禁用 |
||||
multiple: true, |
||||
// 显示搜索条件 |
||||
showSearch: true, |
||||
// 总条数 |
||||
total: 0, |
||||
// 阈值管理表格数据 |
||||
thresholdList: [], |
||||
// 弹出层标题 |
||||
title: "", |
||||
// 是否显示弹出层 |
||||
open: false, |
||||
// 查询参数 |
||||
queryParams: { |
||||
page: 1, |
||||
limit: 10, |
||||
stnmId: null |
||||
}, |
||||
// 表单参数 |
||||
form: {}, |
||||
stationList: [], |
||||
// 表单校验 |
||||
rules: { |
||||
stnmId: [ |
||||
{ required: true, message: "测站名称不能为空", trigger: "blur" } |
||||
] |
||||
} |
||||
}; |
||||
}, |
||||
created() { |
||||
this.getList(); |
||||
this.getStationList(); |
||||
}, |
||||
methods: { |
||||
/** 查询水尺-测站信息列表 */ |
||||
async getStationList() { |
||||
let res = await this.$axiosGet('/system/info/list'); |
||||
if(res.code === 0){ |
||||
this.stationList = res.data; |
||||
} |
||||
}, |
||||
/** 查询阈值管理列表 */ |
||||
async getList() { |
||||
this.loading = true; |
||||
let res = await this.$axiosGet('/warning/threshold/list',this.queryParams); |
||||
if(res.code === 0){ |
||||
this.thresholdList = res.data; |
||||
this.total = res.count; |
||||
} |
||||
this.loading = false; |
||||
}, |
||||
// 取消按钮 |
||||
cancel() { |
||||
this.open = false; |
||||
this.reset(); |
||||
}, |
||||
// 表单重置 |
||||
reset() { |
||||
this.form = { |
||||
id: null, |
||||
thresholdLevelL: null, |
||||
thresholdLevelLl: null, |
||||
thresholdLevelLll: null, |
||||
stnmId: null |
||||
}; |
||||
this.resetForm("form"); |
||||
}, |
||||
/** 搜索按钮操作 */ |
||||
handleQuery() { |
||||
this.queryParams.page = 1; |
||||
this.getList(); |
||||
}, |
||||
/** 重置按钮操作 */ |
||||
resetQuery() { |
||||
this.resetForm("queryForm"); |
||||
this.handleQuery(); |
||||
}, |
||||
// 多选框选中数据 |
||||
handleSelectionChange(selection) { |
||||
this.ids = selection.map(item => item.id) |
||||
this.single = selection.length!==1 |
||||
this.multiple = !selection.length |
||||
}, |
||||
/** 新增按钮操作 */ |
||||
handleAdd() { |
||||
this.reset(); |
||||
this.open = true; |
||||
this.title = "添加阈值管理"; |
||||
}, |
||||
/** 修改按钮操作 */ |
||||
async handleUpdate(row) { |
||||
this.reset(); |
||||
const id = row.id || this.ids |
||||
let res = await this.$axiosGet('/warning/threshold/info/'+id); |
||||
if(res.code === 0){ |
||||
this.form = res.data; |
||||
this.open = true; |
||||
this.title = "修改"; |
||||
} |
||||
}, |
||||
async addMethod(){ |
||||
let res = await this.$axiosPost('/warning/threshold/add',this.form); |
||||
if(res.code === 0){ |
||||
this.$modal.msgSuccess("新增成功"); |
||||
this.open = false; |
||||
this.getList(); |
||||
} |
||||
}, |
||||
async editMethod(){ |
||||
let res = await this.$axiosPost('/warning/threshold/edit',this.form); |
||||
if(res.code === 0){ |
||||
this.$modal.msgSuccess("修改成功"); |
||||
this.open = false; |
||||
this.getList(); |
||||
} |
||||
}, |
||||
/** 提交按钮 */ |
||||
submitForm() { |
||||
this.$refs["form"].validate(valid => { |
||||
if (valid) { |
||||
if (this.form.id != null) { |
||||
this.editMethod(); |
||||
} else { |
||||
this.addMethod(); |
||||
} |
||||
} |
||||
}); |
||||
}, |
||||
/** 删除按钮操作 */ |
||||
handleDelete(row) { |
||||
const ids = row.id || this.ids; |
||||
this.$confirm('此操作将永久删除数据, 是否继续?', '提示', { |
||||
confirmButtonText: '确定', |
||||
cancelButtonText: '取消', |
||||
type: 'warning' |
||||
}).then(() => { |
||||
this.delThreshold(ids) |
||||
}).catch(() => { |
||||
this.$message({ |
||||
type: 'info', |
||||
message: '已取消删除' |
||||
}); |
||||
}); |
||||
}, |
||||
async delThreshold(ids){ |
||||
let res = await this.$axiosDelete('/warning/threshold/delete/'+ids); |
||||
if(res.code === 0){ |
||||
this.$modal.msgSuccess("删除成功"); |
||||
await this.getList(); |
||||
} |
||||
}, |
||||
/** 导出按钮操作 */ |
||||
handleExport() { |
||||
this.download('warning/threshold/export', { |
||||
...this.queryParams |
||||
}, `threshold_${new Date().getTime()}.xlsx`) |
||||
} |
||||
} |
||||
}; |
||||
</script> |
Loading…
Reference in new issue