要求航次相同时,航段从一开始,每有一个相同航次的填报,航段加一,怎么实现这个要求?
航次代码如下
<el-form-item label="航次" prop="voyageNumber" style="width: 50%">
<el-input
v-model.number="createForm.voyageNumber"
placeholder="请输入"
/>
</el-form-item>
航段代码如下
<el-form-item label="航段" prop="leg" style="width: 50%">
<el-input
v-model.number="createForm.leg"
:disabled="!createForm.voyageNumber"
placeholder="请输入"
/>
</el-form-item>
原本的判断条件如下
data() {
return {
theadConfig: [
{
label: '航次航段序号',
children: [
{ label: '航次', key: 'voyageNumber' },
{ label: '航段', key: 'leg' }
]
},
],
createFormRules: {
voyageNumber: [
{
required: true,
trigger: 'blur',
message: '请输入航次'
},
{
type: 'number',
trigger: 'blur',
message: '航次为数字'
}
],
leg: [
{
required: true,
trigger: 'change',
message: '请输入航段'
},
{
type: 'number',
trigger: 'blur',
message: '航段为数字'
}
]
}
methods: {
submitForm() {
this.$refs['createForm'].validate(valid => {
if (valid) {
if (this.judgeBefore) {
const beforeOne = Number(this.judgeBefore.voyageNumber)
const nowOne = Number(this.createForm.voyageNumber)
if (nowOne < beforeOne) {
this.$message.warning(
'本条航次必须大于或等于上条航次!(上一条航次' + beforeOne + ')'
)
return
}
const beforeTwo = Number(this.judgeBefore.leg)
const nowTwo = Number(this.createForm.leg)
if (nowOne === beforeOne && nowTwo <= beforeTwo) {
this.$message.warning(
'本条航次与上条航次相同,本条航段需大于上条航段!(上一条航段为' +
beforeTwo +
')'
)
return
}
const beforeTime = moment(this.judgeBefore.endTime).valueOf()
const nowTime = moment(this.createForm.time[0]).valueOf()
if (beforeTime - nowTime >= 0) {
this.$message.warning(
'本条起始时间不能小于或者等于上一条的终止时间!(上一条终止时间为' +
this.judgeBefore.endTime +
')'
)
return
}
}
if (this.judgeAfter) {
const afterOne = Number(this.judgeAfter.voyageNumber)
const nowOne = Number(this.createForm.voyageNumber)
const afterTwo = Number(this.judgeAfter.leg)
const nowTwo = Number(this.createForm.leg)
if (afterOne === nowOne && afterTwo <= nowTwo) {
this.$message.warning(
'本条航次与下条航次相同,本条航段需小于下条航段!(下一条航段为' +
afterTwo +
')'
)
return
}
const nowTime = moment(this.createForm.time[1]).valueOf()
const afterTime = moment(this.judgeAfter.startTime).valueOf()
if (nowTime - afterTime >= 0) {
this.$message.warning(
'本条终止时间不能大于或者等于上一条的起始时间!(上一条起始时间为' +
this.judgeAfter.startTime +
')'
)
return
}
}
const data = _.cloneDeep(this.createForm)
data.startTime = this.createForm.time[0]
data.endTime = this.createForm.time[1]
if (!this.detailForm) {
this.tableData.push(data)
this.closeDialog()
} else {
this.$set(this.tableData, this.index, data)
this.closeDialog()
}
}
})
},
}
需要让航段不能手动填写,变为自动计算,要怎么做?