feat 调整form 逻辑和样式
This commit is contained in:
parent
5f529f2f06
commit
d6112be661
@ -28,27 +28,30 @@
|
||||
<el-form-item label="策略名称" prop="configName" required>
|
||||
<el-input v-model="formData.configName" clearable placeholder="请输入策略名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="总理论时长" prop="totalTheoryTime" required>
|
||||
<el-form-item label="两段式" prop="isTwoStep">
|
||||
<el-switch v-model="formData.isTwoStep" :active-value="1" :inactive-value="0" />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="formData.isTwoStep !== 1" label="总理论时长" prop="totalTheoryTime" required>
|
||||
<div style="display: flex; align-items: center; width: 100%;">
|
||||
<el-input-number v-model="formData.totalTheoryTime" disabled style="flex: 1;" />
|
||||
<span style="margin-left: 8px; white-space: nowrap;">分钟</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<div class="sub-group">
|
||||
<div class="sub-group" v-if="formData.isTwoStep !== 1">
|
||||
<div class="sub-title">校准</div>
|
||||
<el-form-item label="校准阶段时长" prop="calibrateDuration" required>
|
||||
<el-form-item v-if="formData.isTwoStep !== 1" label="校准阶段时长" prop="calibrateDuration" required>
|
||||
<div style="display: flex; align-items: center; width: 100%;">
|
||||
<el-input-number v-model="formData.calibrateDuration" :min="0" style="flex: 1;" />
|
||||
<el-input-number v-model="formData.calibrateDuration" :min="120" :max="300" style="flex: 1;" placeholder="请输入120-300之间的秒数" />
|
||||
<span style="margin-left: 8px; white-space: nowrap;">秒</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="校准阶段补料占总量百分比" prop="calibrateVolumePercent" required>
|
||||
<el-form-item v-if="formData.isTwoStep !== 1" label="校准阶段补料占总量百分比" prop="calibrateVolumePercent" required>
|
||||
<div style="display: flex; align-items: center; width: 100%;">
|
||||
<el-input-number v-model="formData.calibrateVolumePercent" :min="0" :max="100" style="flex: 1;" />
|
||||
<el-input-number v-model="formData.calibrateVolumePercent" :min="6" :max="20" style="flex: 1;" placeholder="请输入6-20之间的百分比" />
|
||||
<span style="margin-left: 8px; white-space: nowrap;">%</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="校准理论速度" prop="calibrateTheorySpeed" required>
|
||||
<el-form-item v-if="formData.isTwoStep !== 1" label="校准理论速度" prop="calibrateTheorySpeed" required>
|
||||
<div style="display: flex; align-items: center; width: 100%;">
|
||||
<el-input-number v-model="formData.calibrateTheorySpeed" :min="0" style="flex: 1;" disabled />
|
||||
<span style="margin-left: 8px; white-space: nowrap;">%</span>
|
||||
@ -59,17 +62,29 @@
|
||||
<div class="sub-title">高速</div>
|
||||
<el-form-item label="高速阶段泵速百分比" prop="highSpeedPercent" required>
|
||||
<div style="display: flex; align-items: center; width: 100%;">
|
||||
<el-input-number v-model="formData.highSpeedPercent" :min="0" :max="100" style="flex: 1;" />
|
||||
<el-input-number
|
||||
v-model="formData.highSpeedPercent"
|
||||
:min="formData.isTwoStep === 1 ? 1 : 2"
|
||||
:max="formData.isTwoStep === 1 ? 100 : 50"
|
||||
style="flex: 1;"
|
||||
:placeholder="formData.isTwoStep === 1 ? '请输入1-100之间的百分比' : '请输入2-50之间的百分比'"
|
||||
/>
|
||||
<span style="margin-left: 8px; white-space: nowrap;">%</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="高速阶段补料占总量百分比" prop="highSpeedVolumePercent" required>
|
||||
<div style="display: flex; align-items: center; width: 100%;">
|
||||
<el-input-number v-model="formData.highSpeedVolumePercent" :min="0" :max="100" style="flex: 1;" />
|
||||
<el-input-number
|
||||
v-model="formData.highSpeedVolumePercent"
|
||||
:min="formData.isTwoStep === 1 ? 50 : 60"
|
||||
:max="formData.isTwoStep === 1 ? 90 : 80"
|
||||
style="flex: 1;"
|
||||
:placeholder="formData.isTwoStep === 1 ? '请输入50-90之间的百分比' : '请输入60-80之间的百分比'"
|
||||
/>
|
||||
<span style="margin-left: 8px; white-space: nowrap;">%</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="高速理论时长" prop="highSpeedTheoryTime" required>
|
||||
<el-form-item v-if="formData.isTwoStep !== 1" label="高速理论时长" prop="highSpeedTheoryTime" required>
|
||||
<div style="display: flex; align-items: center; width: 100%;">
|
||||
<el-input-number v-model="formData.highSpeedTheoryTime" :min="0" style="flex: 1;" disabled />
|
||||
<span style="margin-left: 8px; white-space: nowrap;">分钟</span>
|
||||
@ -80,17 +95,23 @@
|
||||
<div class="sub-title">低速</div>
|
||||
<el-form-item label="低速阶段泵速百分比" prop="lowSpeedPercent" required>
|
||||
<div style="display: flex; align-items: center; width: 100%;">
|
||||
<el-input-number v-model="formData.lowSpeedPercent" :min="0" :max="100" style="flex: 1;" />
|
||||
<el-input-number
|
||||
v-model="formData.lowSpeedPercent"
|
||||
:min="formData.isTwoStep === 1 ? 1 : 0.5"
|
||||
:max="formData.isTwoStep === 1 ? 100 : 20"
|
||||
style="flex: 1;"
|
||||
:placeholder="formData.isTwoStep === 1 ? '请输入1-100之间的百分比' : '请输入0.5-20之间的百分比'"
|
||||
/>
|
||||
<span style="margin-left: 8px; white-space: nowrap;">%</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="低速阶段补料占总量百分比" prop="lowSpeedVolumePercent" required>
|
||||
<el-form-item v-if="formData.isTwoStep !== 1" label="低速阶段补料占总量百分比" prop="lowSpeedVolumePercent" required>
|
||||
<div style="display: flex; align-items: center; width: 100%;">
|
||||
<el-input-number v-model="formData.lowSpeedVolumePercent" :min="0" :max="100" style="flex: 1;" />
|
||||
<el-input-number v-model="formData.lowSpeedVolumePercent" :min="2" :max="50" style="flex: 1;" placeholder="请输入2-50之间的百分比" />
|
||||
<span style="margin-left: 8px; white-space: nowrap;">%</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="低速理论时长" prop="lowSpeedTheoryTime" required>
|
||||
<el-form-item v-if="formData.isTwoStep !== 1" label="低速理论时长" prop="lowSpeedTheoryTime" required>
|
||||
<div style="display: flex; align-items: center; width: 100%;">
|
||||
<el-input-number v-model="formData.lowSpeedTheoryTime" :min="0" style="flex: 1;" disabled />
|
||||
<span style="margin-left: 8px; white-space: nowrap;">分钟</span>
|
||||
@ -103,61 +124,69 @@
|
||||
<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
|
||||
<el-card shadow="hover" class="group-card">
|
||||
<div class="section-title">监控</div>
|
||||
<el-form-item label="环控间隔时间" prop="intervalTime" required>
|
||||
<el-form-item prop="intervalTime" required>
|
||||
<template #label>
|
||||
环控间隔时间
|
||||
<el-tooltip content="监控每次启动间隔时间" placement="top">
|
||||
<el-icon style="margin-left: 4px; margin-top: 6px; color: #909399; cursor: pointer;">
|
||||
<QuestionFilled />
|
||||
</el-icon>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
<div style="display: flex; align-items: center; width: 100%;">
|
||||
<el-input-number v-model="formData.intervalTime" :min="0" style="flex: 1;" />
|
||||
<el-input-number v-model="formData.intervalTime" :min="1" style="flex: 1;" placeholder="请输入大于0的秒数" />
|
||||
<span style="margin-left: 8px; white-space: nowrap;">秒</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="补料超量百分比" prop="excessPercentage" required>
|
||||
<div style="display: flex; align-items: center; width: 100%;">
|
||||
<el-input-number v-model="formData.excessPercentage" :min="0" style="flex: 1;" />
|
||||
<el-input-number v-model="formData.excessPercentage" :min="1" style="flex: 1;" placeholder="请输入大于0的百分比" />
|
||||
<span style="margin-left: 8px; white-space: nowrap;">%</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="超时时间" prop="timeOutSeconds" required>
|
||||
<div style="display: flex; align-items: center; width: 100%;">
|
||||
<el-input-number v-model="formData.timeOutSeconds" :min="0" style="flex: 1;" />
|
||||
<el-input-number v-model="formData.timeOutSeconds" :min="1" style="flex: 1;" placeholder="请输入大于0的秒数" />
|
||||
<span style="margin-left: 8px; white-space: nowrap;">秒</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="终点百分比" prop="terminalVolumePercent" required>
|
||||
<div style="display: flex; align-items: center; width: 100%;">
|
||||
<el-input-number v-model="formData.terminalVolumePercent" :min="0" :max="100" style="flex: 1;" />
|
||||
<el-input-number v-model="formData.terminalVolumePercent" :min="98" :max="100" style="flex: 1;" placeholder="请输入98-100之间的百分比" />
|
||||
<span style="margin-left: 8px; white-space: nowrap;">%</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<div class="sub-group">
|
||||
<div class="sub-title">抖动</div>
|
||||
<el-form-item label="抖动环控时间系数" prop="ditherIntervalCoefficient" required>
|
||||
<el-input-number v-model="formData.ditherIntervalCoefficient" :min="0" style="width:100%" />
|
||||
<el-input-number v-model="formData.ditherIntervalCoefficient" :min="1" :max="5" style="width:100%" placeholder="请输入1-5之间的数值" />
|
||||
</el-form-item>
|
||||
<el-form-item label="抖动系数" prop="ditherCoefficient" required>
|
||||
<el-input-number v-model="formData.ditherCoefficient" :min="0" style="width:100%" />
|
||||
<el-input-number v-model="formData.ditherCoefficient" :min="2" :max="10" style="width:100%" placeholder="请输入2-10之间的数值" />
|
||||
</el-form-item>
|
||||
<el-form-item label="抖动观察时间系数" prop="ditherMonitorTime" required>
|
||||
<el-input-number v-model="formData.ditherMonitorTime" :min="0" style="width:100%" />
|
||||
<el-input-number v-model="formData.ditherMonitorTime" :min="1" style="width:100%" placeholder="请输入大于0的数值" />
|
||||
</el-form-item>
|
||||
<el-form-item label="抖动地秤系数" prop="ditherScaleCoefficient" required>
|
||||
<el-input-number v-model="formData.ditherScaleCoefficient" :min="0" style="width:100%" />
|
||||
<el-input-number v-model="formData.ditherScaleCoefficient" :min="1" style="width:100%" placeholder="请输入大于0的数值" />
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div class="sub-group">
|
||||
<div class="sub-title">返水</div>
|
||||
<el-form-item label="返水环控时间系数" prop="rebateIntervalCoefficient" required>
|
||||
<el-input-number v-model="formData.rebateIntervalCoefficient" :min="0" style="width:100%" />
|
||||
<el-input-number v-model="formData.rebateIntervalCoefficient" disabled style="width:100%" placeholder="自动等于抖动环控时间系数" />
|
||||
</el-form-item>
|
||||
<el-form-item label="返水系数" prop="rebateCoefficient" required>
|
||||
<el-input-number v-model="formData.rebateCoefficient" :min="-100" style="width:100%" />
|
||||
<el-input-number v-model="formData.rebateCoefficient" :max="-1" style="width:100%" placeholder="请输入小于等于-1的数值" />
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div class="sub-group">
|
||||
<div class="sub-title">堵塞</div>
|
||||
<el-form-item label="堵塞环控时间系数" prop="jamIntervalCoefficient" required>
|
||||
<el-input-number v-model="formData.jamIntervalCoefficient" :min="0" style="width:100%" />
|
||||
<el-input-number v-model="formData.jamIntervalCoefficient" :min="1" style="width:100%" placeholder="请输入大于0的数值" />
|
||||
</el-form-item>
|
||||
<el-form-item label="堵塞系数" prop="jamCoefficient" required>
|
||||
<el-input-number v-model="formData.jamCoefficient" :min="0" style="width:100%" />
|
||||
<el-input-number v-model="formData.jamCoefficient" :min="0" :max="1" style="width:100%" placeholder="请输入0-1之间的数值" />
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-card>
|
||||
@ -178,6 +207,7 @@ import { ref, reactive, watch } from 'vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import { UspFeedingConfigApi } from '/@/api/admin/UspFeedingConfigApi'
|
||||
import { QuestionFilled } from '@element-plus/icons-vue'
|
||||
|
||||
const props = defineProps<{
|
||||
modelValue: boolean
|
||||
@ -189,34 +219,33 @@ const emit = defineEmits<{
|
||||
}>()
|
||||
|
||||
const formRef = ref<FormInstance>()
|
||||
// 取消类型限制,保证所有字段都能用
|
||||
const formData = reactive({
|
||||
configName: '',
|
||||
totalTheoryTime: 0,
|
||||
calibrateDuration: 0,
|
||||
calibrateVolumePercent: 0,
|
||||
calibrateTheorySpeed: 0,
|
||||
highSpeedPercent: 0,
|
||||
highSpeedVolumePercent: 0,
|
||||
highSpeedTheoryTime: 0,
|
||||
lowSpeedPercent: 0,
|
||||
lowSpeedVolumePercent: 0,
|
||||
lowSpeedTheoryTime: 0,
|
||||
intervalTime: 0,
|
||||
excessPercentage: 0,
|
||||
timeOutSeconds: 0,
|
||||
terminalVolumePercent: 0,
|
||||
ditherIntervalCoefficient: 0,
|
||||
ditherCoefficient: 0,
|
||||
ditherMonitorTime: 0,
|
||||
ditherScaleCoefficient: 0,
|
||||
rebateIntervalCoefficient: 0,
|
||||
rebateCoefficient: 0,
|
||||
jamIntervalCoefficient: 0,
|
||||
jamCoefficient: 0,
|
||||
totalTheoryTime: undefined as number | undefined,
|
||||
calibrateDuration: undefined as number | undefined,
|
||||
calibrateVolumePercent: undefined as number | undefined,
|
||||
calibrateTheorySpeed: undefined as number | undefined,
|
||||
highSpeedPercent: undefined as number | undefined,
|
||||
highSpeedVolumePercent: undefined as number | undefined,
|
||||
highSpeedTheoryTime: undefined as number | undefined,
|
||||
lowSpeedPercent: undefined as number | undefined,
|
||||
lowSpeedVolumePercent: undefined as number | undefined,
|
||||
lowSpeedTheoryTime: undefined as number | undefined,
|
||||
intervalTime: undefined as number | undefined,
|
||||
excessPercentage: undefined as number | undefined,
|
||||
timeOutSeconds: undefined as number | undefined,
|
||||
terminalVolumePercent: undefined as number | undefined,
|
||||
ditherIntervalCoefficient: undefined as number | undefined,
|
||||
ditherCoefficient: undefined as number | undefined,
|
||||
ditherMonitorTime: undefined as number | undefined,
|
||||
ditherScaleCoefficient: undefined as number | undefined,
|
||||
rebateIntervalCoefficient: undefined as number | undefined,
|
||||
rebateCoefficient: undefined as number | undefined,
|
||||
jamIntervalCoefficient: undefined as number | undefined,
|
||||
jamCoefficient: undefined as number | undefined,
|
||||
enabled: true,
|
||||
isTwoStep: 0,
|
||||
id: 0
|
||||
id: undefined as number | undefined
|
||||
})
|
||||
|
||||
const rules = {
|
||||
@ -265,45 +294,70 @@ watch(
|
||||
)
|
||||
|
||||
watch(
|
||||
() => [formData.calibrateVolumePercent, formData.calibrateDuration],
|
||||
() => [formData.calibrateVolumePercent, formData.calibrateDuration, formData.isTwoStep],
|
||||
([volume, duration]) => {
|
||||
if (duration > 0) {
|
||||
formData.calibrateTheorySpeed = Number((volume / duration * 60).toFixed(2))
|
||||
if (formData.isTwoStep === 1) return;
|
||||
if (typeof volume === 'number' && typeof duration === 'number' && duration > 0) {
|
||||
formData.calibrateTheorySpeed = Number((volume / duration * 60).toFixed(2)) as number
|
||||
} else {
|
||||
formData.calibrateTheorySpeed = 0
|
||||
formData.calibrateTheorySpeed = undefined
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
// 新增:高速理论时长自动计算
|
||||
watch(
|
||||
() => [formData.highSpeedVolumePercent, formData.highSpeedPercent],
|
||||
() => [formData.highSpeedVolumePercent, formData.highSpeedPercent, formData.isTwoStep],
|
||||
([volume, percent]) => {
|
||||
if (percent > 0) {
|
||||
formData.highSpeedTheoryTime = Number((volume / percent).toFixed(2))
|
||||
if (formData.isTwoStep === 1) return;
|
||||
if (typeof volume === 'number' && typeof percent === 'number' && percent > 0) {
|
||||
formData.highSpeedTheoryTime = Number((volume / percent).toFixed(2)) as number
|
||||
} else {
|
||||
formData.highSpeedTheoryTime = 0
|
||||
formData.highSpeedTheoryTime = undefined
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
// 新增:低速理论时长自动计算
|
||||
watch(
|
||||
() => [formData.lowSpeedVolumePercent, formData.lowSpeedPercent],
|
||||
() => [formData.lowSpeedVolumePercent, formData.lowSpeedPercent, formData.isTwoStep],
|
||||
([volume, percent]) => {
|
||||
if (percent > 0) {
|
||||
formData.lowSpeedTheoryTime = Number((volume / percent).toFixed(2))
|
||||
if (formData.isTwoStep === 1) return;
|
||||
if (typeof volume === 'number' && typeof percent === 'number' && percent > 0) {
|
||||
formData.lowSpeedTheoryTime = Number((volume / percent).toFixed(2)) as number
|
||||
} else {
|
||||
formData.lowSpeedTheoryTime = 0
|
||||
formData.lowSpeedTheoryTime = undefined
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
// 新增:总理论时长自动计算
|
||||
watch(
|
||||
() => [formData.calibrateDuration, formData.highSpeedTheoryTime, formData.lowSpeedTheoryTime],
|
||||
() => [formData.calibrateDuration, formData.highSpeedTheoryTime, formData.lowSpeedTheoryTime, formData.isTwoStep],
|
||||
([calibrateDuration, highSpeedTheoryTime, lowSpeedTheoryTime]) => {
|
||||
formData.totalTheoryTime = Number(((calibrateDuration / 60) + highSpeedTheoryTime + lowSpeedTheoryTime).toFixed(2))
|
||||
if (formData.isTwoStep === 1) return;
|
||||
if (typeof calibrateDuration === 'number' && typeof highSpeedTheoryTime === 'number' && typeof lowSpeedTheoryTime === 'number') {
|
||||
formData.totalTheoryTime = Number(((calibrateDuration / 60) + highSpeedTheoryTime + lowSpeedTheoryTime).toFixed(2)) as number
|
||||
} else {
|
||||
formData.totalTheoryTime = undefined
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
watch(
|
||||
() => [formData.isTwoStep, formData.highSpeedPercent],
|
||||
([isTwoStep, highSpeedPercent]) => {
|
||||
if (isTwoStep === 1) {
|
||||
formData.lowSpeedVolumePercent = 100 - Number(highSpeedPercent || 0)
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
// 自动同步返水环控时间系数 = 抖动环控时间系数
|
||||
watch(
|
||||
() => formData.ditherIntervalCoefficient,
|
||||
(val) => {
|
||||
formData.rebateIntervalCoefficient = val
|
||||
}
|
||||
)
|
||||
|
||||
@ -311,31 +365,31 @@ function resetForm() {
|
||||
formRef.value?.resetFields()
|
||||
Object.assign(formData, {
|
||||
configName: '',
|
||||
totalTheoryTime: 0,
|
||||
calibrateDuration: 0,
|
||||
calibrateVolumePercent: 0,
|
||||
calibrateTheorySpeed: 0,
|
||||
highSpeedPercent: 0,
|
||||
highSpeedVolumePercent: 0,
|
||||
highSpeedTheoryTime: 0,
|
||||
lowSpeedPercent: 0,
|
||||
lowSpeedVolumePercent: 0,
|
||||
lowSpeedTheoryTime: 0,
|
||||
intervalTime: 0,
|
||||
excessPercentage: 0,
|
||||
timeOutSeconds: 0,
|
||||
terminalVolumePercent: 0,
|
||||
ditherIntervalCoefficient: 0,
|
||||
ditherCoefficient: 0,
|
||||
ditherMonitorTime: 0,
|
||||
ditherScaleCoefficient: 0,
|
||||
rebateIntervalCoefficient: 0,
|
||||
rebateCoefficient: 0,
|
||||
jamIntervalCoefficient: 0,
|
||||
jamCoefficient: 0,
|
||||
totalTheoryTime: undefined,
|
||||
calibrateDuration: undefined,
|
||||
calibrateVolumePercent: undefined,
|
||||
calibrateTheorySpeed: undefined,
|
||||
highSpeedPercent: undefined,
|
||||
highSpeedVolumePercent: undefined,
|
||||
highSpeedTheoryTime: undefined,
|
||||
lowSpeedPercent: undefined,
|
||||
lowSpeedVolumePercent: undefined,
|
||||
lowSpeedTheoryTime: undefined,
|
||||
intervalTime: undefined,
|
||||
excessPercentage: undefined,
|
||||
timeOutSeconds: undefined,
|
||||
terminalVolumePercent: undefined,
|
||||
ditherIntervalCoefficient: undefined,
|
||||
ditherCoefficient: undefined,
|
||||
ditherMonitorTime: undefined,
|
||||
ditherScaleCoefficient: undefined,
|
||||
rebateIntervalCoefficient: undefined,
|
||||
rebateCoefficient: undefined,
|
||||
jamIntervalCoefficient: undefined,
|
||||
jamCoefficient: undefined,
|
||||
enabled: true,
|
||||
isTwoStep: 0,
|
||||
id: 0
|
||||
id: undefined
|
||||
})
|
||||
}
|
||||
|
||||
@ -367,32 +421,62 @@ async function open(row?: any) {
|
||||
async function handleSubmit() {
|
||||
if (!formRef.value) return
|
||||
|
||||
// 新增:补料占总量百分比之和校验
|
||||
const sum = Number(formData.calibrateVolumePercent) + Number(formData.highSpeedVolumePercent) + Number(formData.lowSpeedVolumePercent)
|
||||
if (sum !== 100) {
|
||||
ElMessage.warning('补料占总量百分比之和必须等于100!')
|
||||
return
|
||||
// 只有 isTwoStep !== 1 时才校验百分比之和
|
||||
if (formData.isTwoStep !== 1) {
|
||||
const sum = Number(formData.calibrateVolumePercent) + Number(formData.highSpeedVolumePercent) + Number(formData.lowSpeedVolumePercent)
|
||||
if (sum !== 100) {
|
||||
ElMessage.warning('补料占总量百分比之和必须等于100!')
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
await formRef.value.validate(async (valid: boolean) => {
|
||||
if (!valid) return
|
||||
loading.value = true
|
||||
try {
|
||||
// 处理所有undefined为null
|
||||
const data: Record<string, any> = { ...formData }
|
||||
Object.keys(data).forEach((key: string) => {
|
||||
if (typeof data[key] === 'undefined') data[key] = null
|
||||
})
|
||||
if (data.id == null) delete data.id
|
||||
if (formData.id) {
|
||||
const updateInput = {
|
||||
...formData,
|
||||
setSpeed: formData.calibrateTheorySpeed,
|
||||
...data,
|
||||
setSpeed: data.calibrateTheorySpeed,
|
||||
speedDiff: 0,
|
||||
feedTime: formData.totalTheoryTime
|
||||
feedTime: data.totalTheoryTime,
|
||||
id: data.id,
|
||||
configName: data.configName,
|
||||
intervalTime: data.intervalTime,
|
||||
calibrateDuration: data.calibrateDuration,
|
||||
calibrateVolumePercent: data.calibrateVolumePercent,
|
||||
highSpeedPercent: data.highSpeedPercent,
|
||||
highSpeedVolumePercent: data.highSpeedVolumePercent,
|
||||
lowSpeedPercent: data.lowSpeedPercent,
|
||||
lowSpeedVolumePercent: data.lowSpeedVolumePercent,
|
||||
ditherIntervalCoefficient: data.ditherIntervalCoefficient,
|
||||
ditherCoefficient: data.ditherCoefficient,
|
||||
ditherMonitorTime: data.ditherMonitorTime,
|
||||
ditherScaleCoefficient: data.ditherScaleCoefficient,
|
||||
rebateIntervalCoefficient: data.rebateIntervalCoefficient,
|
||||
rebateCoefficient: data.rebateCoefficient,
|
||||
jamIntervalCoefficient: data.jamIntervalCoefficient,
|
||||
jamCoefficient: data.jamCoefficient,
|
||||
excessPercentage: data.excessPercentage,
|
||||
timeOutSeconds: data.timeOutSeconds,
|
||||
terminalVolumePercent: data.terminalVolumePercent,
|
||||
enabled: data.enabled,
|
||||
isTwoStep: data.isTwoStep
|
||||
}
|
||||
await api.update(updateInput)
|
||||
ElMessage.success('修改成功')
|
||||
} else {
|
||||
const addInput = {
|
||||
...formData,
|
||||
setSpeed: formData.calibrateTheorySpeed,
|
||||
...data,
|
||||
setSpeed: data.calibrateTheorySpeed,
|
||||
speedDiff: 0,
|
||||
feedTime: formData.totalTheoryTime
|
||||
feedTime: data.totalTheoryTime
|
||||
}
|
||||
delete (addInput as any).id
|
||||
await api.add(addInput)
|
||||
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<MyLayout>
|
||||
<el-card class="my-query-box" shadow="never">
|
||||
<el-card class="my-query-box mt8" shadow="never">
|
||||
<template #header>
|
||||
<el-form ref="queryFormRef" :model="state.filter" :inline="true" class="demo-form-inline">
|
||||
<el-form-item label="策略名称">
|
||||
@ -49,13 +49,28 @@
|
||||
<el-table-column prop="configName" label="策略名称" min-width="120" show-overflow-tooltip />
|
||||
<el-table-column label="补料方式" min-width="100" align="center" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
<el-tag type="success" v-if="row.isTwoStep === 1">二段式</el-tag>
|
||||
<el-tag type="info" v-else>三段式</el-tag>
|
||||
<el-tag type="info" v-if="row.isTwoStep === 1">二段式</el-tag>
|
||||
<el-tag type="success " v-else>三段式</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="feedTime" label="补料时长 min" min-width="100" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
<span v-if="row.isTwoStep === 1">-</span>
|
||||
<span v-else>{{ row.feedTime }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="calibrateDuration" label="校准阶段时长/s" min-width="120" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
<span v-if="row.isTwoStep === 1">-</span>
|
||||
<span v-else>{{ row.calibrateDuration }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="calibrateVolumePercent" label="校准阶段补料占总量百分比/%" min-width="180" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
<span v-if="row.isTwoStep === 1">-</span>
|
||||
<span v-else>{{ row.calibrateVolumePercent }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="feedTime" label="补料时长" min-width="100" show-overflow-tooltip />
|
||||
<el-table-column prop="calibrateDuration" label="校准阶段时长/s" min-width="120" show-overflow-tooltip />
|
||||
<el-table-column prop="calibrateVolumePercent" label="校准阶段补料占总量百分比/%" min-width="180" show-overflow-tooltip />
|
||||
<el-table-column prop="highSpeedPercent" label="高速阶段泵速比例/%" min-width="140" show-overflow-tooltip />
|
||||
<el-table-column prop="highSpeedVolumePercent" label="高速阶段补料占比/%" min-width="140" show-overflow-tooltip />
|
||||
<el-table-column prop="lowSpeedPercent" label="低速阶段泵速比例/%" min-width="140" show-overflow-tooltip />
|
||||
@ -101,7 +116,12 @@
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
<feeding-config-form ref="formRef" @success="handleSuccess" :model-value="false" title="泵速策略" />
|
||||
<feeding-config-form
|
||||
ref="formRef"
|
||||
v-model="showForm"
|
||||
@refresh="getList"
|
||||
title="泵速策略"
|
||||
/>
|
||||
</MyLayout>
|
||||
</template>
|
||||
|
||||
@ -217,9 +237,7 @@ const handleDelete = (row: FeedingConfigGetPageOutput) => {
|
||||
}).catch(() => {})
|
||||
}
|
||||
|
||||
const handleSuccess = () => {
|
||||
getList()
|
||||
}
|
||||
const showForm = ref(false)
|
||||
|
||||
onMounted(() => {
|
||||
getList()
|
||||
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<MyLayout>
|
||||
<el-card class="my-query-box" shadow="never">
|
||||
<el-card class="my-query-box mt8" shadow="never">
|
||||
<el-form :model="queryParams" ref="queryFormRef" :inline="true">
|
||||
<el-form-item label="关键字" prop="keyWord">
|
||||
<el-input v-model="queryParams.keyWord" placeholder="请输入关键字" clearable />
|
||||
|
Loading…
x
Reference in New Issue
Block a user