yudao-dev/src/views/energy/base/energyQuantityManual/components/energyQuantityManualAdd.vue

182 lines
5.3 KiB
Vue
Raw Normal View History

2023-12-05 14:30:32 +08:00
<template>
<el-form ref="energyQuantityManualForm" :rules="rules" label-width="90px" :model="form">
<el-row :gutter="20">
<el-col :span='12'>
<el-form-item label="能源类型" prop="energyTypeId">
<el-select v-model="form.energyTypeId" placeholder="请选择" style="width: 100%;" filterable>
<el-option
v-for="item in this.energyTypeList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-form-item label="抄表日期" prop="recordTime">
<el-date-picker
v-model="form.recordTime"
type="date"
2023-12-06 10:06:26 +08:00
format="yyyy-MM-dd"
value-format="timestamp"
2023-12-05 14:30:32 +08:00
placeholder="选择日期"
style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
2024-01-25 17:18:40 +08:00
<el-row :gutter="20">
<el-col :span='24'>
<base-table
border
:table-props="tableProps"
:table-data="tableData"
:add-button-show="addButtonShow"
@emitFun="inputChange"
@emitButtonClick="emitButtonClick"
/>
</el-col>
</el-row>
2023-12-05 14:30:32 +08:00
</el-form>
</template>
<script>
import { energyQuantityManualCreate, energyQuantityManualUpdate, energyQuantityManualGet } from '@/api/base/energyQuantityManual'
import moment from 'moment'
2024-01-25 17:18:40 +08:00
import InputArea from './InputArea'
import SelectArea from './SelectArea'
const tableProps = [
{
prop: 'tableName',
label: '表名',
subcomponent: SelectArea
},
{
prop: 'readingQuantity',
label: '抄表数',
subcomponent: InputArea
}
]
2023-12-05 14:30:32 +08:00
export default {
name: 'EnergyQuantityManualAdd',
props: {
energyTypeList: {
type: Array,
required: true,
default: () => {
return []
}
}
},
data() {
return {
2024-01-25 17:18:40 +08:00
tableProps,
tableData: [],
addButtonShow:'新增',
2023-12-05 14:30:32 +08:00
form: {
id: '',
energyTypeId: '',
unit: '',
recordTime: ''
},
rules: {
energyTypeId: [{ required: true, message: '能源类型不能为空', trigger: 'change' }],
recordTime: [{ required: true, message: '抄表日期不能为空', trigger: 'change' }]
},
isEdit: false
}
},
methods: {
init(params) {
2023-12-06 10:06:26 +08:00
this.form.recordTime = moment().valueOf()
2023-12-05 14:30:32 +08:00
if (params.type === 'add') {
this.isEdit = false
} else if (params.type === 'meterReading') {
this.isEdit = false
2023-12-06 10:06:26 +08:00
this.form.energyTypeId = params.energyTypeId
2024-01-25 17:18:40 +08:00
let obj = {}
obj.tableName = params.tableName + ''
obj.readingQuantity = 0
this.tableData.push(obj)
2023-12-05 14:30:32 +08:00
}else {
this.isEdit = true
this.form.id = params.id
2024-01-25 17:18:40 +08:00
this.addButtonShow = ''
2023-12-05 14:30:32 +08:00
energyQuantityManualGet({id: this.form.id}).then(res => {
if (res.code === 0) {
this.form.energyTypeId = res.data.energyTypeId
this.form.recordTime = res.data.recordTime ? res.data.recordTime : null
2024-01-25 17:18:40 +08:00
let obj = {}
obj.tableName = res.data.tableName ? res.data.tableName+'' : ''
obj.readingQuantity = res.data.readingQuantity
this.tableData.push(obj)
2023-12-05 14:30:32 +08:00
}
})
}
},
2024-01-25 17:18:40 +08:00
inputChange(val) {
this.tableData[val._pageIndex - 1][val.prop] = val[val.prop]
},
emitButtonClick() {
let obj = {}
obj.tableName = ''
obj.readingQuantity = 0
this.tableData.push(obj)
},
2023-12-05 14:30:32 +08:00
submitForm() {
this.$refs['energyQuantityManualForm'].validate((valid) => {
if (valid) {
2024-01-25 17:18:40 +08:00
// 校验表格
if (this.tableData.length === 0) {
this.$modal.msgError("抄表数据不能为空");
2023-12-06 10:06:26 +08:00
return false
2024-01-25 17:18:40 +08:00
}else{
for (let item of this.tableData) {
console.log(item)
if (!item.tableName || (!item.readingQuantity && item.readingQuantity!==0)) {
this.$modal.msgError("抄表数据有空值,请检查");
return false
}
}
2023-12-05 14:30:32 +08:00
}
if (this.isEdit) {
// 编辑
2024-01-25 17:18:40 +08:00
energyQuantityManualUpdate({
id:this.form.id,
energyTypeId:this.form.energyTypeId,
recordTime:this.form.recordTime,
tableName:this.tableData[0].tableName,
readingQuantity:this.tableData[0].readingQuantity
}).then((res) => {
2023-12-05 14:30:32 +08:00
if (res.code === 0) {
this.$modal.msgSuccess("操作成功");
this.$emit('successSubmit')
}
})
} else {
2024-01-25 17:18:40 +08:00
energyQuantityManualCreate({
energyTypeId:this.form.energyTypeId,
recordTime:this.form.recordTime,
data:this.tableData
}).then((res) => {
2023-12-05 14:30:32 +08:00
if (res.code === 0) {
this.$modal.msgSuccess("操作成功");
this.$emit('successSubmit')
}
})
}
} else {
return false
}
})
},
formClear() {
this.$refs.energyQuantityManualForm.resetFields()
this.form.unit = ''
this.isEdit = false
2024-01-25 17:18:40 +08:00
this.addButtonShow = '新增'
this.tableData = []
2023-12-05 14:30:32 +08:00
}
}
}
</script>