Files
jczxw-java/src/views/atmosphere/air/dict/api-relate.vue
2021-09-25 14:22:40 +08:00

300 lines
11 KiB
Vue

<template>
<div class="ele-body">
<a-card :bordered="false">
<a-modal
v-model:visible="showEdit"
:title="form.airAqiRelateInfoDictId !== undefined ? '修改' : '添加'"
:confirm-loading="loading"
:width="500"
: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-form-item label="空气质量指数类别" name="iaqiCategory">
<a-input v-model:value="form.iaqiCategory" placeholder="请输入指标名称" allow-clear />
</a-form-item>
<a-form-item label="空气质量指数级别" name="iaqiLevel">
<a-input v-model:value="form.iaqiLevel" placeholder="请输入指标名称" allow-clear />
</a-form-item>
<a-form-item label="空气质量指数表示颜色" name="iaqiRepresentsColor">
<a-input v-model:value="form.iaqiRepresentsColor" placeholder="空气质量指数表示颜色" allow-clear />
</a-form-item>
<a-form-item label="对健康影响情况" name="impactHealth">
<a-input v-model:value="form.impactHealth" placeholder="请输入对健康影响情况" allow-clear />
</a-form-item>
<a-form-item label="建议采取的措施" name="suggestedMeasures">
<a-input v-model:value="form.suggestedMeasures" placeholder="建议采取的措施" allow-clear />
</a-form-item>
<a-form-item label="空气质量指数最小值" name="iaqiMin">
<a-input-number :step="1" :precision="0" v-model:value="form.iaqiMin" />
</a-form-item>
<a-form-item label="空气质量指数最大值" name="iaqiMax">
<a-input-number :step="1" :precision="0" v-model:value="form.iaqiMax" />
</a-form-item>
</a-form>
</a-modal>
<!-- 表格 -->
<ele-pro-table
v-model:selection="selectionList"
ref="table"
row-key="airAqiRelateInfoDictId"
:datasource="url"
:columns="columns"
:where="where"
:scroll="{ x: 'max-content' }"
>
<template #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 {
listAllUrl,
saveAqiRelate,
updateAqiRelate,
removeAqiRelate,
removeBatchAqiRelate
} from "@/api/ecology/atmosphere/air-api-relate";
// import moment from "moment";
export default {
name: "AirAqiRelate",
components: {},
data() {
return {
data: [],
// 表格数据接口
url: listAllUrl,
selection: [],
// 表格列配置
columns: [
// {
// title: "年份",
// dataIndex: "year",
// },
{
title: "空气质量指数类别",
dataIndex: "iaqiCategory",
},
{
title: "空气质量指数表示颜色",
dataIndex: "iaqiRepresentsColor",
},
{
title: "空气质量指数级别",
dataIndex: "iaqiLevel",
},
{
title: "空气质量指数最小值",
dataIndex: "iaqiMin",
},
{
title: "空气质量指数最大值",
dataIndex: "iaqiMax",
// customRender: ({text})=>{
// return text!=undefined? text.toFixed(1):undefined
// }
},
{
title: "对健康影响情况",
dataIndex: "impactHealth",
},
{
title: "建议采取的措施",
dataIndex: "suggestedMeasures",
},
{
title: "操作",
key: "action",
width: 150,
align: "center",
fixed: "right",
slots: {
customRender: "action",
},
},
],
// 表格搜索条件
where: {},
// 表格选中数据
selectionList: [],
// 是否显示编辑弹窗
showEdit: false,
// 表单数据
form: {},
loading: false,
rules: {
timeSlot:[{required: true,message: '请选择时段'}],
// minLeq: [{required: true,message: '请输入最小值',},],
// maxLeq: [{required: true,message: '请输入最大值',},],
level: [{required: true,message: '请输入等级',},],
// evaluate: [{required: true,message: '请输入评价',},],
sortNumber: [{required: true,message: '请输入排序',},],
},
};
},
mounted() {
},
methods: {
minLeqChange(e){
console.log(e)
},
/* 刷新表格 */
reload() {
this.$refs.table.reload({
where: this.where,
});
},
/* 重置搜索 */
reset() {
this.where = {};
this.reload();
},
/* 打开编辑弹窗 */
openEdit(row) {
// cloneRecord.mi
this.form = Object.assign({}, row);
this.showEdit = true;
this.$nextTick(() => {
this.$refs.form.clearValidate(); // 清除表单验证信息
});
},
async save() {
await this.$refs.form.validate();
// const {minLeq,maxLeq } = this.form;
// if(minLeq == undefined && maxLeq == undefined ){
// message.error("最小值和最大值请至少填写一项!")
// return;
// }
const hide = this.$message.loading('请求中..', 0);
const form = this.form;
if (form.airAqiRelateInfoDictId) {
updateAqiRelate(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();
});
} else {
saveAqiRelate(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);
removeAqiRelate(row.airAqiRelateInfoDictId).then((res) => {
hide();
if (res.data.code === 0) {
this.$message.success(res.data.msg);
this.reload();
} else {
this.$message.error(res.data.msg);
}
}).catch(e => {
hide();
this.$message.error(e.message);
})
},
/* 批量删除 */
removeBatch() {
const hide = this.$message.loading('请求中..', 0);
const ids = this.selectionList.map((item) => item.airAqiRelateInfoDictId);
removeBatchAqiRelate(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.message);
}).finally(() => {
hide();
})
}
},
};
</script>
<style scoped lang="less">
</style>