Files
energy_app/src/views/enterprise/kongyajiSystemAddEdit.vue
T
jiangyinzhi 455c8b58da 优化
2024-11-14 11:27:16 +08:00

277 lines
9.5 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<div>
<!-- <Header :title="title" @onClickLeft="onClickLeft" /> -->
<van-form ref="form" @submit="handleClick">
<div class="yearenergy">
<div class="year-main">
<div class="nengyuan">
<van-cell-group>
<van-field v-model="form.systemModel" required :rules="[{ required: true },{pattern:/^.{2,20}$/, message:'2≤型号长度≤20'}]" label="空压机型号" placeholder="请输入空压机型号" maxlength="20" />
<van-field v-model="form.motorModel" required :rules="[{ required: true },{pattern:/^.{2,20}$/, message:'2≤型号长度≤20'}]" label="电机型号" placeholder="请输入电机型号" maxlength="20" />
<van-field v-input.numNo0 v-model="form.systemNum" type="number" required :rules="[{ required: true }]" label="台数(台)" placeholder="请输入台数" />
<van-field v-input.floatNo0 v-model="form.ratedPowerValue" required :rules="[{ required: true }]" type="number" label="单台额定功率(kW)" placeholder="请输入" @blur="handelChange('ratedPowerValue',5,'单台额定功率')"/>
<van-field v-input.float v-model="form.frequencyPerValue" required :rules="[{ required: true }]" type="number" label="变频占比(%)" placeholder="请输入" @input="handelChangeNumber('frequencyPerValue','变频占比')" />
<van-field v-input.num v-model="form.absoleteElecNum" type="number" label="淘汰电机数量" placeholder="请输入" />
<van-field v-input.num v-model="form.absoleteNum" type="number" label="淘汰空压机数量" placeholder="请输入" />
<van-field v-input.floatNo0 v-model="form.efficiency" type="number" label="空压机效率(%)" placeholder="请输入" @input="handelChangeNumber('efficiency','空压机效率')" />
<van-field v-input.num v-model="form.userYear" type="number" label="投入年份" placeholder="请选择投入年份" is-link readonly @click="handelClickYear('userYear', 'SET_CON_YEAR')" />
</van-cell-group>
</div>
</div>
<div class="btn">
<van-button size="large" class="faqi" native-type="submit">
保存
</van-button>
</div>
</div>
</van-form>
<van-overlay :show="show">
<div class="wrapper" @click.stop>
<div class="block">
<van-loading size="24px" color="#34baae" vertical>加载中...</van-loading>
</div>
</div>
</van-overlay>
<Year :show="yearShow" :num="1" @onConfirmYear="onConfirmYear" @onCancelYear="onCancelYear" />
</div>
</template>
<script>
import { airAdd, airGetInfo, airEdit } from "@/api/universalEnergy.js"
import { Notify } from "vant";
import mixin from '@/mixins/mixin'
// import Header from "@/components/headerNew";
import Year from '../facilityManage/common-vue/year.vue'
import {debounce} from '@/utils/common.js'
export default {
components: {
// Header,
Year
},
mixins: [mixin],
data() {
return {
title: '新增/修改',
id: '', // 查详情时取的id
userMsg: {}, // 任务列表单条数据
form: {
systemModel: '',
motorModel: '',
systemNum: '',
ratedPowerValue: '',
frequencyPerValue: '',
absoleteElecNum: '',
absoleteNum: '',
efficiency: '',
userYear: '',
},
show: false,
doDebounce: null,
};
},
activated() {
this.id = '',
this.form = {
systemModel: '',
motorModel: '',
systemNum: '',
ratedPowerValue: '',
frequencyPerValue: '',
absoleteElecNum: '',
absoleteNum: '',
efficiency: '',
userYear: '',
};
let msg = JSON.parse(sessionStorage.getItem('tidCid'));
// let msg2 = localStorage.getItem('customerItem');
this.userMsg = msg
// let objMsg2 = JSON.parse(msg2);
// if(msg) {
// this.userMsg = JSON.parse(msg);
// this.addeditId = this.userMsg.id
// }else {
// this.userMsg = objMsg2;
// this.addeditId = localStorage.getItem('taskId')
// }
const id = this.$route.query.id;
if(id.isTrusted == undefined) {
this.id = this.$route.query.id;
this.getGetInfo()
}
},
mounted() {
this.doDebounce = debounce(async function () {
await this.handelClickSave()
}, 5000, true)
},
methods: {
handelChange (params,num,name) {
if(Number(this.form[params]) < Number(num)) {
Notify({ type: "danger", message: `${name}≥${num}` });
this.form[params] = ''
}
},
handelChangeNumber (params,name) {
if(params === 'efficiency'){
if(!(Number(this.form[params]) < 100)) {
Notify({ type: "danger", message: `${name}不可超过100%` });
this.form[params] = 0
}
}else{
if(Number(this.form[params]) > 100) {
Notify({ type: "danger", message: `${name}不可超过100%` });
this.form[params] = 0
}
}
},
// 返回
onClickLeft() {
this.$router.go(-1)
},
handleClick(){
this.doDebounce()
},
async handelClickSave() {
if(this.id == '') {
this.form.id = sessionStorage.getItem('enterpriseSystemId') ? this.form.systemId = sessionStorage.getItem('enterpriseSystemId') : this.userMsg.taskId;
this.form.customerId = this.userMsg.customerId;
this.form.systemId = sessionStorage.getItem('enterpriseSystemId') ? this.form.systemId = sessionStorage.getItem('enterpriseSystemId') : this.userMsg.taskId;
this.form.systemTypes = '04';
const res = await airAdd(this.form);
if(res.code == 0) {
this.$router.go(-1);
Notify({ type: "success", background: '#34baae', message: "保存成功" });
return
}
Notify({ type: "error", background: 'red', message: res.msg })
}else {
this.form.id = this.id;
this.form.customerId = this.userMsg.customerId;
this.form.systemId = sessionStorage.getItem('enterpriseSystemId') ? this.form.systemId = sessionStorage.getItem('enterpriseSystemId') : this.userMsg.taskId;
this.form.systemTypes = '04';
const res = await airEdit(this.form);
if(res.code == 0) {
this.$router.go(-1);
Notify({ type: "success", background: '#34baae', message: "保存成功" });
return
}
Notify({ type: "error", background: 'red', message: res.msg })
}
},
async getGetInfo() {
this.show = true
const res = await airGetInfo(this.id);
if(res.code == 0) {
this.form = res.data
this.show = false
}else {
this.show = false
}
}
},
};
</script>
<style lang="less" scoped>
::v-deep .van-field__error-message{
text-align: right;
}
.yearenergy {
padding: 15px 10px;
.year-main {
height: calc(100vh - 5rem);
overflow: auto;
}
.year {
// padding: 20px 20px;
border-radius: 10px;
}
.title {
margin: 10px;
display: flex;
.title-img {
width: 20px;
img {
width: 100%;
}
}
p {
font-size: 14px;
color: #009999;
line-height: 20px;
}
}
.nengyuan {
width: 100%;
border-radius: 10px;
background: #fff;
box-sizing: border-box;
overflow: hidden;
}
.faqi {
background-color: #63cbb6;
color: #fff;
border-radius: 8px;
}
}
/deep/ .van-cell {
width: 100%;
display: flex;
}
.van-cell__title,
.van-cell__value {
-webkit-box-flex: 1;
-webkit-flex: 1;
flex: 1;
span {
font-size: 14px;
color: #333;
}
}
::v-deep .van-field__label {
-webkit-box-flex: 0;
-webkit-flex: none;
flex: none;
box-sizing: border-box;
flex: 1;
text-align: left;
word-wrap: break-word;
span {
font-size: 14px;
color: #333;
}
}
::v-deep .van-cell__value {
position: relative;
overflow: hidden;
color: #969799;
text-align: right;
vertical-align: middle;
word-wrap: break-word;
}
::v-deep .van-field__body {
display: -webkit-box;
display: -webkit-flex;
display: flex;
-webkit-box-align: center;
-webkit-align-items: center;
align-items: center;
}
::v-deep .van-field__control {
text-align: right;
font-size: 14px;
}
.wrapper {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
}
</style>