功能区数据采集

This commit is contained in:
weicw
2021-08-10 18:19:36 +08:00
parent 4542c10045
commit 5c1b9dd682
19 changed files with 1624 additions and 1635 deletions

View File

@@ -0,0 +1,390 @@
<template>
<div class="ele-body">
<a-card :bordered="false">
<!-- 搜索表单 -->
<a-form :model="where" :label-col="{md: {span: 6}, sm: {span: 24}}"
:wrapper-col="{md: {span: 18}, sm: {span: 24}}">
<a-row>
<a-col :lg="6" :md="12" :sm="24" :xs="24">
<a-form-item label="测点名称:">
<a-input v-model:value.trim="where.place" placeholder="请输入测点名称" allow-clear />
</a-form-item>
</a-col>
<a-col :lg="6" :md="12" :sm="24" :xs="24">
<a-form-item label="功能区类别:">
<a-select v-model:value="where.functionType" placeholder="选择功能区类型">
<a-select-option value="1">1</a-select-option>
<a-select-option value="2">2</a-select-option>
<a-select-option value="4">3</a-select-option>
<a-select-option value="4">4</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :lg="6" :md="12" :sm="24" :xs="24">
<a-form-item class="ele-text-right" :wrapper-col="{span: 24}">
<a-space>
<a-button type="primary" @click="reload">查询</a-button>
<a-button @click="reset">重置</a-button>
</a-space>
</a-form-item>
</a-col>
</a-row>
</a-form>
<a-modal v-model:visible="showEdit" :title="form.functionNoiseId!==undefined?'修改用户':'添加用户'"
:confirm-loading="loading" :width="1000" :body-style="{paddingBottom: '8px'}" @ok="save">
<a-form ref="form" :model="form" :rules="rules" :label-col="{md: {span: 6}, sm: {span: 24}}"
:wrapper-col="{md: {span: 18}, sm: {span: 24}}">
<a-row>
<a-col :md="12" :sm="24">
<a-form-item label="日期" name="monitorDate">
<a-date-picker v-model:value="form.monitorDate" :locale="locale" />
</a-form-item>
</a-col>
<a-col :md="12" :sm="24">
<a-form-item label="时间" name="monitorTime">
<a-time-picker v-model:value="form.monitorTime" format="HH:mm" />
</a-form-item>
</a-col>
<a-col :md="12" :sm="24">
<a-form-item label="测点名称" name="place">
<a-input v-model:value="form.place" placeholder="请输入测点名称" allow-clear />
</a-form-item>
</a-col>
<a-col :md="12" :sm="24">
<a-form-item label="点位编码" name="placeCode">
<a-input v-model:value="form.placeCode" placeholder="请输入点位编码" allow-clear />
</a-form-item>
</a-col>
<a-col :md="12" :sm="24">
<a-form-item label="功能区类型" name="functionType">
<a-input v-model:value="form.functionType" placeholder="请输入功能区类型" allow-clear />
</a-form-item>
</a-col>
<a-col :md="12" :sm="24">
<a-form-item label="LeqdB(A)" name="indexLeq">
<a-input type="number" v-model:value="form.indexLeq" placeholder="请输入LeqdB(A)" allow-clear />
</a-form-item>
</a-col>
<a-col :md="12" :sm="24">
<a-form-item label="SDdB(A)" name="indexSd">
<a-input type="number" v-model:value="form.indexSd" placeholder="请输入大SDdB(A)" allow-clear />
</a-form-item>
</a-col>
<a-col :md="12" :sm="24">
<a-form-item label="L10dB(A)" name="indexL10">
<a-input type="number" v-model:value="form.indexL10" placeholder="请输入L10dB(A)" allow-clear />
</a-form-item>
</a-col>
<a-col :md="12" :sm="24">
<a-form-item label="L50dB(A)" name="indexL50">
<a-input type="number" v-model:value="form.indexL50" placeholder="请输入L50dB(A)" allow-clear />
</a-form-item>
</a-col>
<a-col :md="12" :sm="24">
<a-form-item label="L90dB(A)" name="indexL90">
<a-input type="number" v-model:value="form.indexL90" placeholder="请输入L90dB(A)" allow-clear />
</a-form-item>
</a-col>
<a-col :md="12" :sm="24">
<a-form-item label="LmindB(A)" name="indexLmin">
<a-input type="number" v-model:value="form.indexLmin" placeholder="请输入LmindB(A)" allow-clear />
</a-form-item>
</a-col>
<a-col :md="12" :sm="24">
<a-form-item label="LmaxdB(A)" name="indexLmax">
<a-input type="number" v-model:value="form.indexLmax" placeholder="请输入LmaxdB(A)" allow-clear />
</a-form-item>
</a-col>
</a-row>
</a-form>
</a-modal>
<!-- 表格 -->
<ele-pro-table v-model:selection="selectionList" ref="table" row-key="functionNoiseId" :datasource="url"
:columns="columns" :where="where" :scroll="{x: 'max-content'}">
<template v-if="bill.checked != 1" #toolbar>
<a-space>
<a-button @click="openEdit" type="primary">新增</a-button>
<a-popconfirm :disabled="selectionList.length == 0" :title="`确认删除${selectionList.length}条数据吗?`"
ok-text="Yes" cancel-text="No" @confirm="removeBatch">
<a-button :disabled="selectionList.length == 0" type="primary" ghost danger>删除</a-button>
</a-popconfirm>
</a-space>
</template>
<template #action="{ record }">
<a-space>
<a-button @click="openEdit(record)" type="primary" shape="round" size="small">修改</a-button>
<a-popconfirm :title="`确认删除这条数据吗?`" ok-text="Yes" cancel-text="No" @confirm="remove(record)">
<a-button type="primary" danger shape="round" size="small">删除</a-button>
</a-popconfirm>
</a-space>
</template>
</ele-pro-table>
</a-card>
</div>
<!-- 编辑弹窗 -->
</template>
<script>
import _ from "lodash"
import {
pageFunctionNoiseUrl,
saveFunctionNoise,
removeFunctionNoise,
removeBatchFunctionNoise,
updateFunctionNoise,
getFunctionNoiseBill
} from "@/api/ecology/function-sound";
import locale from 'ant-design-vue/es/date-picker/locale/zh_CN';
import moment from 'moment';
// import utils from "./utils";
export default {
components: {},
data() {
const {
billId
} = this.$route.params
return {
locale,
bill: {},
// 表格数据接口
url: pageFunctionNoiseUrl,
selection: [],
// 表格列配置
columns: [{
title: '监测日期',
dataIndex: 'monitorTime',
sorter: true
},
{
title: '测点名称',
dataIndex: 'place',
sorter: true
},
{
title: '点位编码',
dataIndex: 'placeCode',
sorter: true
},
{
title: '功能区类别',
dataIndex: 'functionType',
sorter: true
},
// {
// title: '月',
// dataIndex: 'monitorMonth',
// sorter: true
// },
// {
// title: '日',
// dataIndex: 'monitorDay',
// sorter: true
// },
// {
// title: '时',
// dataIndex: 'monitorHour',
// sorter: true
// },
// {
// title: '分',
// dataIndex: 'monitorMinute',
// sorter: true
// },
{
title: 'LeqdB(A)',
dataIndex: 'indexLeq',
sorter: true
},
{
title: 'SDdB(A)',
dataIndex: 'indexSd',
sorter: true
},
{
title: 'L10dB(A)',
dataIndex: 'indexL10',
sorter: true
},
{
title: 'L50dB(A)',
dataIndex: 'indexL50',
sorter: true
},
{
title: 'L90dB(A)',
dataIndex: 'indexL90',
sorter: true
},
{
title: 'LmindB(A)',
dataIndex: 'indexLmin',
sorter: true
},
{
title: 'LmaxdB(A)',
dataIndex: 'indexLmax',
sorter: true
},
{
title: '操作',
key: 'action',
width: 150,
align: 'center',
fixed: 'right',
slots: {
customRender: 'action'
}
}
],
// 表格搜索条件
functionNoiseBillId: billId,
where: {
functionNoiseBillId: billId
},
// 表格选中数据
selectionList: [],
// 是否显示编辑弹窗
showEdit: false,
// 表单数据
form: {},
loading: false,
rules: {}
};
},
mounted() {
const {
billId
} = this.$route.params
getFunctionNoiseBill(billId).then(res => {
this.bill = res.data.data
if (res.data.data.checked == 1) {
this.columns.splice(this.columns.length - 1, 1)
}
})
},
methods: {
/* 刷新表格 */
reload() {
this.$refs.table.reload({
where: this.where
});
},
/* 重置搜索 */
reset() {
this.where = {
functionNoiseBillId: this.functionNoiseBillId
};
this.reload();
},
/* 显示编辑 */
openEdit(record) {
const cloneRecord = _.cloneDeep(record)
if (record && cloneRecord.monitorTime) {
console.log(moment(cloneRecord.monitorTime).format('YYYY MM DD'));
cloneRecord.monitorDate = moment(cloneRecord.monitorTime);
cloneRecord.monitorTime = moment(cloneRecord.monitorTime);
}
// cloneRecord.mi
this.form = Object.assign({}, cloneRecord);
this.showEdit = true;
this.$nextTick(() => {
this.$refs.form.clearValidate(); // 清除表单验证信息
});
},
save() {
const hide = this.$message.loading('请求中..', 0);
const form = _.cloneDeep(this.form);
const date = new Date();
date.setFullYear(form.monitorDate.year());
date.setMonth(form.monitorDate.month());
date.setDate(form.monitorDate.date());
date.setHours(form.monitorTime.hour());
date.setMinutes(form.monitorTime.minutes());
form.monitorTime = date.getTime();
form.monitorYear = date.getFullYear();
form.monitorMonth = date.getMonth() + 1;
form.monitorDay = date.getDate();
form.monitorHour = date.getHours();
form.monitorMinute = date.getMinutes();
delete form['monitorDate']
if (form.functionNoiseId) {
updateFunctionNoise(form).then(res => {
if (res.data.code == 0) {
this.showEdit = false;
this.$message.success(res.data.msg);
this.reload();
} else {
this.$message.error(res.data.msg);
}
}).catch((error) => {
this.$message.error(error.message);
}).finally(() => {
console.log("finallyfinallyfinallyfinally");
hide();
})
} else {
form.functionNoiseBillId = this.functionNoiseBillId;
saveFunctionNoise(form).then(res => {
if (res.data.code == 0) {
this.showEdit = false;
this.$message.success(res.data.msg);
this.reload();
} else {
this.$message.error(res.data.msg);
}
}).catch((error) => {
this.$message.error(error.message);
}).finally(() => {
hide();
})
}
},
/* 删除单个 */
remove(row) {
const hide = this.$message.loading('请求中..', 0);
removeFunctionNoise(row.functionNoiseId).then(res => {
if (res.data.code === 0) {
this.$message.success(res.data.msg);
this.reload();
} else {
this.$message.error(res.data.msg);
}
}).catch(e => {
this.$message.error(e.msg);
}).finally(() => hide());
},
removeBatch() {
const ids = this.selectionList.map(item => item.functionNoiseId);
const hide = this.$message.loading('请求中..', 0);
removeBatchFunctionNoise(ids).then(res => {
if (res.data.code === 0) {
this.$message.success(res.data.msg);
this.reload();
} else {
this.$message.error(res.data.msg);
}
}).catch(e => {
this.$message.error(e.msg);
}).finally(() => hide());
},
}
}
</script>
<style scoped lang="less">
</style>