agri-ui/src/views/assets/agri/index.vue

410 lines
13 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<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="IMEI" prop="imei">
<el-input
id="imei" v-model="queryParams.imei"
placeholder="请输入设备IMEI"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="大棚名称" prop="agriName">
<el-input
id="agriName" v-model="queryParams.agriName"
placeholder="请输入大棚名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="用户" prop="userId">
<el-input
id="userId" v-model="queryParams.userId"
placeholder="请输入关联用户ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="安装时间" prop="installTime">
<el-date-picker clearable
id="installTime" v-model="queryParams.installTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择安装时间">
</el-date-picker>
</el-form-item>
<el-form-item label="安装位置" prop="location">
<el-input
id="location" v-model="queryParams.location"
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="['assets:agri: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="['assets:agri: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="['assets:agri: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="['assets:agri:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" border :data="agriList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="ID" width="180" align="center" prop="id" />
<el-table-column label="IMEI" width="150" align="center" prop="imei" />
<el-table-column label="大棚名称" align="center" prop="agriName" />
<el-table-column label="用户ID" align="center" prop="userId" />
<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-user"
@click="showUser(scope.row)"
>点击查看</el-button>
</template>
</el-table-column>
<!-- <el-table-column label="温度上限" align="center" prop="tempUpper" />-->
<!-- <el-table-column label="温度下限(℃)" align="center" prop="tempLower" />-->
<!-- <el-table-column label="湿度上限(%RH)" align="center" prop="humiUpper" />-->
<!-- <el-table-column label="湿度下限(%RH)" align="center" prop="humiLower" />-->
<el-table-column label="告警开关" align="center" prop="alarmStatus" />
<el-table-column label="设备状态" align="center" prop="deviceStatus" />
<el-table-column label="安装时间" align="center" prop="installTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.installTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="安装位置" align="center" prop="location" />
<el-table-column label="备注" align="center" prop="remark" />
<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="['assets:agri:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['assets:agri:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@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="设备IMEI" prop="imei">
<el-input id="imei" v-model="form.imei" placeholder="请输入设备IMEI" />
</el-form-item>
<el-form-item label="大棚名称" prop="agriName">
<el-input id="agriName" v-model="form.agriName" placeholder="请输入大棚名称" />
</el-form-item>
<el-form-item label="关联用户ID" prop="userId">
<el-input id="userId" v-model="form.userId" placeholder="请输入关联用户ID" />
</el-form-item>
<el-form-item label="温度上限(℃)" prop="tempUpper">
<el-input-number v-model="form.tempUpper" id="tempUpper"/>
</el-form-item>
<el-form-item label="温度下限(℃)" prop="tempLower">
<el-input-number v-model="form.tempLower" id="tempLower"/>
</el-form-item>
<el-form-item label="湿度上限(%RH)" prop="humiUpper">
<el-input-number v-model="form.humiUpper" id="humiUpper"/>
</el-form-item>
<el-form-item label="湿度下限(%RH)" prop="humiLower">
<el-input-number v-model="form.humiLower" id="humiLower"/>
</el-form-item>
<el-form-item label="安装时间" prop="installTime">
<el-date-picker clearable
id="installTime" v-model="form.installTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择安装时间">
</el-date-picker>
</el-form-item>
<el-form-item label="安装位置" prop="location">
<el-input id="location" v-model="form.location" placeholder="请输入安装位置" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input id="remark" v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="逻辑删除(0-未删1-已删)" prop="isDeleted">
<el-input id="isDeleted" v-model="form.isDeleted" placeholder="请输入逻辑删除(0-未删1-已删)" />
</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>
<show-user ref="show"/>
</div>
</template>
<script>
import { listAgri, getAgri, delAgri, addAgri, updateAgri } from "@/api/assets/agri"
import ShowUser from "./showUser.vue";
export default {
name: "Agri",
components: {ShowUser},
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 大棚管理表格数据
agriList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
imei: null,
agriName: null,
userId: null,
tempUpper: null,
tempLower: null,
humiUpper: null,
humiLower: null,
alarmStatus: null,
deviceStatus: null,
installTime: null,
location: null,
isDeleted: null
},
// 表单参数
form: {},
// 表单校验
rules: {
imei: [
{ required: true, message: "设备IMEI不能为空", trigger: "blur" }
],
agriName: [
{ required: true, message: "大棚名称不能为空", trigger: "blur" }
],
userId: [
{ required: true, message: "关联用户ID不能为空", trigger: "blur" }
],
alarmStatus: [
{ required: true, message: "告警开关(0-关闭1-开启)不能为空", trigger: "change" }
],
deviceStatus: [
{ required: true, message: "设备状态(0-离线1-在线2-故障)不能为空", trigger: "change" }
],
createTime: [
{ required: true, message: "创建时间不能为空", trigger: "blur" }
],
createBy: [
{ required: true, message: "创建人ID不能为空", trigger: "blur" }
],
updateTime: [
{ required: true, message: "修改时间不能为空", trigger: "blur" }
],
updateBy: [
{ required: true, message: "修改人ID不能为空", trigger: "blur" }
],
isDeleted: [
{ required: true, message: "逻辑删除(0-未删1-已删)不能为空", trigger: "blur" }
]
}
}
},
created() {
this.getList()
},
methods: {
/** 查询大棚管理列表 */
getList() {
this.loading = true
listAgri(this.queryParams).then(response => {
this.agriList = response.rows
this.total = response.total
this.loading = false
})
},
showUser(row) {
this.$refs.show.showUser(row.agriId)
},
// 取消按钮
cancel() {
this.open = false
this.reset()
},
// 表单重置
reset() {
this.form = {
id: null,
imei: null,
agriName: null,
userId: null,
tempUpper: null,
tempLower: null,
humiUpper: null,
humiLower: null,
alarmStatus: null,
deviceStatus: null,
installTime: null,
location: null,
remark: null,
createTime: null,
createBy: null,
updateTime: null,
updateBy: null,
isDeleted: null
}
this.resetForm("form")
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 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 = "添加大棚管理"
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset()
const id = row.id || this.ids
getAgri(id).then(response => {
this.form = response.data
this.open = true
this.title = "修改大棚管理"
})
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateAgri(this.form).then(response => {
this.$modal.msgSuccess("修改成功")
this.open = false
this.getList()
})
} else {
addAgri(this.form).then(response => {
if (response.code===200) {
this.$modal.msgSuccess("新增成功")
} else {
this.$modal.msgError("新增失败")
}
this.open = false
this.getList()
})
}
}
})
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids
this.$modal.confirm('是否确认删除大棚管理编号为"' + ids + '"的数据项?').then(function() {
return delAgri(ids)
}).then(() => {
this.getList()
this.$modal.msgSuccess("删除成功")
}).catch(() => {})
},
/** 导出按钮操作 */
handleExport() {
this.download('assets/agri/export', {
...this.queryParams
}, `agri_${new Date().getTime()}.xlsx`)
}
}
}
</script>