diff --git a/src/views/admin/feedingconfig/components/feeding-config-form.vue b/src/views/admin/feedingconfig/components/feeding-config-form.vue
index cd41234..74e63e5 100644
--- a/src/views/admin/feedingconfig/components/feeding-config-form.vue
+++ b/src/views/admin/feedingconfig/components/feeding-config-form.vue
@@ -28,27 +28,30 @@
-
+
+
+
+
分钟
-
+
校准
-
+
-
+
秒
-
+
-
+
%
-
+
%
@@ -59,17 +62,29 @@
高速
-
+
%
-
+
%
-
+
分钟
@@ -80,17 +95,23 @@
低速
-
+
%
-
+
-
+
%
-
+
分钟
@@ -103,61 +124,69 @@
监控
-
+
+
+ 环控间隔时间
+
+
+
+
+
+
-
+
秒
-
+
%
-
+
秒
-
+
%
@@ -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()
-// 取消类型限制,保证所有字段都能用
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 = { ...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)
diff --git a/src/views/admin/feedingconfig/index.vue b/src/views/admin/feedingconfig/index.vue
index 1aaae75..ce84e73 100644
--- a/src/views/admin/feedingconfig/index.vue
+++ b/src/views/admin/feedingconfig/index.vue
@@ -1,6 +1,6 @@
-
+
@@ -49,13 +49,28 @@
- 二段式
- 三段式
+ 二段式
+ 三段式
+
+
+
+
+ -
+ {{ row.feedTime }}
+
+
+
+
+ -
+ {{ row.calibrateDuration }}
+
+
+
+
+ -
+ {{ row.calibrateVolumePercent }}
-
-
-
@@ -101,7 +116,12 @@
-
+
@@ -217,9 +237,7 @@ const handleDelete = (row: FeedingConfigGetPageOutput) => {
}).catch(() => {})
}
-const handleSuccess = () => {
- getList()
-}
+const showForm = ref(false)
onMounted(() => {
getList()
diff --git a/src/views/admin/relay/index.vue b/src/views/admin/relay/index.vue
index 1a13bcb..54b096f 100644
--- a/src/views/admin/relay/index.vue
+++ b/src/views/admin/relay/index.vue
@@ -1,6 +1,6 @@
-
+