修改枚举
This commit is contained in:
@@ -27,8 +27,8 @@
|
||||
|
||||
<el-form-item label="类别" prop="category">
|
||||
<el-select v-model="formData.category" placeholder="请选择类别" @change="handleCategoryChange">
|
||||
<el-option label="执行器" value="执行器" />
|
||||
<el-option label="传感器" value="传感器" />
|
||||
<el-option :label="DeviceCategory.ACTUATOR" :value="DeviceCategory.ACTUATOR" />
|
||||
<el-option :label="DeviceCategory.SENSOR" :value="DeviceCategory.SENSOR" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item
|
||||
v-if="formData.category === '传感器'"
|
||||
v-if="formData.category === DeviceCategory.SENSOR"
|
||||
label="值描述 (JSON)"
|
||||
prop="values"
|
||||
>
|
||||
@@ -68,6 +68,7 @@
|
||||
import { ref, reactive, computed, watch, nextTick } from 'vue';
|
||||
import { ElMessage } from 'element-plus';
|
||||
import deviceTemplateService from '../services/deviceTemplateService.js';
|
||||
import { DeviceCategory } from '../enums.js';
|
||||
|
||||
// 默认的JSON模板
|
||||
const DEFAULT_ACTUATOR_COMMANDS = JSON.stringify({
|
||||
@@ -115,7 +116,7 @@ export default {
|
||||
name: '',
|
||||
manufacturer: '',
|
||||
description: '',
|
||||
category: '执行器', // 默认执行器
|
||||
category: DeviceCategory.ACTUATOR, // 默认执行器
|
||||
commands: DEFAULT_ACTUATOR_COMMANDS, // 预填充执行器指令
|
||||
values: '',
|
||||
});
|
||||
@@ -143,7 +144,7 @@ export default {
|
||||
{ validator: validateJson, message: '指令参数必须是有效的 JSON 格式', trigger: 'blur' },
|
||||
],
|
||||
values: [
|
||||
{ required: formData.category === '传感器', message: '请输入值描述', trigger: 'blur' },
|
||||
{ required: formData.category === DeviceCategory.SENSOR, message: '请输入值描述', trigger: 'blur' },
|
||||
{ validator: validateJson, message: '值描述必须是有效的 JSON 格式', trigger: 'blur' },
|
||||
],
|
||||
}));
|
||||
@@ -153,10 +154,10 @@ export default {
|
||||
});
|
||||
|
||||
const handleCategoryChange = (newCategory) => {
|
||||
if (newCategory === '执行器') {
|
||||
if (newCategory === DeviceCategory.ACTUATOR) {
|
||||
formData.commands = DEFAULT_ACTUATOR_COMMANDS;
|
||||
formData.values = ''; // 执行器没有values
|
||||
} else if (newCategory === '传感器') {
|
||||
} else if (newCategory === DeviceCategory.SENSOR) {
|
||||
formData.commands = DEFAULT_SENSOR_COMMANDS;
|
||||
formData.values = DEFAULT_SENSOR_VALUES; // 传感器预填充values
|
||||
}
|
||||
@@ -193,7 +194,7 @@ export default {
|
||||
commands: JSON.parse(formData.commands),
|
||||
};
|
||||
|
||||
if (formData.category === '传感器' && formData.values) {
|
||||
if (formData.category === DeviceCategory.SENSOR && formData.values) {
|
||||
submitData.values = JSON.parse(formData.values);
|
||||
}
|
||||
|
||||
@@ -227,9 +228,9 @@ export default {
|
||||
formData.manufacturer = newVal.manufacturer;
|
||||
formData.description = newVal.description;
|
||||
if (newVal.category === 'sensor') {
|
||||
formData.category = '传感器';
|
||||
formData.category = DeviceCategory.SENSOR;
|
||||
} else if (newVal.category === 'actuator') {
|
||||
formData.category = '执行器';
|
||||
formData.category = DeviceCategory.ACTUATOR;
|
||||
} else {
|
||||
formData.category = newVal.category;
|
||||
}
|
||||
@@ -274,6 +275,7 @@ export default {
|
||||
handleCategoryChange,
|
||||
handleClose,
|
||||
handleSubmit,
|
||||
DeviceCategory,
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
import { ref, reactive, watch, computed, nextTick } from 'vue';
|
||||
import { ElMessage } from 'element-plus';
|
||||
import { createPen, updatePen } from '@/api/pen.js';
|
||||
import { PenStatus } from '@/enums.js';
|
||||
|
||||
export default {
|
||||
name: 'PenForm',
|
||||
@@ -60,13 +61,13 @@ export default {
|
||||
setup(props, { emit }) {
|
||||
const formRef = ref(null);
|
||||
const loading = ref(false);
|
||||
const penStatusOptions = ["空闲", "使用中", "病猪栏", "康复栏", "清洗消毒", "维修中"];
|
||||
const penStatusOptions = Object.values(PenStatus);
|
||||
|
||||
const initialFormData = () => ({
|
||||
id: null,
|
||||
pen_number: '',
|
||||
capacity: 10,
|
||||
status: '空闲',
|
||||
status: PenStatus.EMPTY,
|
||||
house_id: null
|
||||
});
|
||||
|
||||
|
||||
@@ -53,6 +53,7 @@
|
||||
import {ref, reactive, watch, computed, nextTick} from 'vue';
|
||||
import {ElMessage} from 'element-plus';
|
||||
import {createPigBatch, updatePigBatch} from '@/api/pigBatch.js';
|
||||
import { PigBatchOriginType, PigBatchStatus } from '@/enums.js';
|
||||
|
||||
export default {
|
||||
name: 'PigBatchForm',
|
||||
@@ -75,16 +76,16 @@ export default {
|
||||
const formRef = ref(null);
|
||||
const loading = ref(false);
|
||||
|
||||
const originTypeOptions = ["自繁", "外购"];
|
||||
const batchStatusOptions = ["保育", "生长", "育肥", "待售", "已出售", "已归档"];
|
||||
const originTypeOptions = Object.values(PigBatchOriginType);
|
||||
const batchStatusOptions = Object.values(PigBatchStatus);
|
||||
|
||||
const initialFormData = () => ({
|
||||
id: null,
|
||||
batch_number: '',
|
||||
initial_count: 1,
|
||||
origin_type: '自繁',
|
||||
origin_type: PigBatchOriginType.SELF_FARROWED,
|
||||
start_date: '',
|
||||
status: '保育',
|
||||
status: PigBatchStatus.WEANING,
|
||||
});
|
||||
|
||||
const formData = reactive(initialFormData());
|
||||
@@ -182,8 +183,8 @@ export default {
|
||||
formData.id = props.batchData.id;
|
||||
formData.batch_number = props.batchData.batch_number || '';
|
||||
formData.initial_count = props.batchData.initial_count || 1;
|
||||
formData.origin_type = props.batchData.origin_type || '自繁';
|
||||
formData.status = props.batchData.status || '保育';
|
||||
formData.origin_type = props.batchData.origin_type || PigBatchOriginType.SELF_FARROWED;
|
||||
formData.status = props.batchData.status || PigBatchStatus.WEANING;
|
||||
formData.start_date = fromRFC3339(props.batchData.start_date);
|
||||
}
|
||||
nextTick(() => {
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
|
||||
<script>
|
||||
import { computed } from 'vue';
|
||||
import { PenStatus } from '@/enums.js';
|
||||
|
||||
export default {
|
||||
name: 'PigBatchPenCard',
|
||||
@@ -39,14 +40,14 @@ export default {
|
||||
setup(props, { emit }) {
|
||||
const statusType = computed(() => {
|
||||
switch (props.pen.status) {
|
||||
case '使用中':
|
||||
case PenStatus.OCCUPIED:
|
||||
return 'success';
|
||||
case '病猪栏':
|
||||
case '维修中':
|
||||
case PenStatus.SICK_PEN:
|
||||
case PenStatus.UNDER_MAINTENANCE:
|
||||
return 'danger';
|
||||
case '清洗消毒':
|
||||
case PenStatus.CLEANING:
|
||||
return 'warning';
|
||||
case '空闲':
|
||||
case PenStatus.EMPTY:
|
||||
default:
|
||||
return 'info';
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
|
||||
<script>
|
||||
import { computed } from 'vue';
|
||||
import { PenStatus } from '@/enums.js';
|
||||
|
||||
export default {
|
||||
name: 'PigPenInfoCard',
|
||||
@@ -31,14 +32,14 @@ export default {
|
||||
setup(props, { emit }) {
|
||||
const statusType = computed(() => {
|
||||
switch (props.pen.status) {
|
||||
case '使用中':
|
||||
case PenStatus.OCCUPIED:
|
||||
return 'success';
|
||||
case '病猪栏':
|
||||
case '维修中':
|
||||
case PenStatus.SICK_PEN:
|
||||
case PenStatus.UNDER_MAINTENANCE:
|
||||
return 'danger';
|
||||
case '清洗消毒':
|
||||
case PenStatus.CLEANING:
|
||||
return 'warning';
|
||||
case '空闲':
|
||||
case PenStatus.EMPTY:
|
||||
default:
|
||||
return 'info';
|
||||
}
|
||||
|
||||
@@ -31,8 +31,8 @@
|
||||
<!-- 执行方式 -->
|
||||
<el-form-item label="执行方式" prop="execution_type">
|
||||
<el-radio-group v-model="formData.execution_type" @change="handleExecutionTypeChange">
|
||||
<el-radio label="automatic">自动执行</el-radio>
|
||||
<el-radio label="manual">手动执行</el-radio>
|
||||
<el-radio :label="PlanExecutionType.AUTOMATIC">自动执行</el-radio>
|
||||
<el-radio :label="PlanExecutionType.MANUAL">手动执行</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
<el-form-item
|
||||
label="执行次数"
|
||||
prop="execute_num"
|
||||
v-if="formData.execution_type === 'automatic'">
|
||||
v-if="formData.execution_type === PlanExecutionType.AUTOMATIC">
|
||||
<el-input-number
|
||||
v-model="formData.execute_num"
|
||||
:min="0"
|
||||
@@ -56,7 +56,7 @@
|
||||
<el-form-item
|
||||
label="执行频率"
|
||||
prop="cron_expression"
|
||||
v-if="formData.execution_type === 'automatic'">
|
||||
v-if="formData.execution_type === PlanExecutionType.AUTOMATIC">
|
||||
<cron-expression-editor
|
||||
v-model="formData.cron_expression"
|
||||
/>
|
||||
@@ -82,6 +82,7 @@
|
||||
import { ref, reactive, computed, watch } from 'vue';
|
||||
import { ElMessage } from 'element-plus';
|
||||
import CronExpressionEditor from './CronExpressionEditor.vue';
|
||||
import { PlanExecutionType } from '../enums.js';
|
||||
|
||||
export default {
|
||||
name: 'PlanForm',
|
||||
@@ -115,7 +116,7 @@ export default {
|
||||
id: null,
|
||||
name: '',
|
||||
description: '',
|
||||
execution_type: 'automatic', // 默认自动执行
|
||||
execution_type: PlanExecutionType.AUTOMATIC, // 默认自动执行
|
||||
execute_num: 0, // 0表示无限执行
|
||||
cron_expression: '', // cron表达式
|
||||
content_type: 'tasks' // 默认类型为tasks
|
||||
@@ -145,7 +146,7 @@ export default {
|
||||
// 处理执行方式变更
|
||||
const handleExecutionTypeChange = (value) => {
|
||||
// 如果切换为手动执行,清空执行次数和cron表达式
|
||||
if (value === '手动') {
|
||||
if (value === PlanExecutionType.MANUAL) {
|
||||
formData.execute_num = 0;
|
||||
formData.cron_expression = '';
|
||||
} else {
|
||||
@@ -178,7 +179,7 @@ export default {
|
||||
}
|
||||
|
||||
// 如果是手动执行,清除执行次数和cron表达式
|
||||
if (formData.execution_type === '手动') {
|
||||
if (formData.execution_type === PlanExecutionType.MANUAL) {
|
||||
submitData.execute_num = 0;
|
||||
submitData.cron_expression = '';
|
||||
}
|
||||
@@ -220,7 +221,7 @@ export default {
|
||||
}
|
||||
});
|
||||
// 默认值
|
||||
formData.execution_type = 'automatic';
|
||||
formData.execution_type = PlanExecutionType.AUTOMATIC;
|
||||
formData.content_type = 'tasks'; // 确保content_type有默认值
|
||||
}
|
||||
}, { immediate: true });
|
||||
@@ -233,7 +234,8 @@ export default {
|
||||
title,
|
||||
handleExecutionTypeChange,
|
||||
handleClose,
|
||||
handleSubmit
|
||||
handleSubmit,
|
||||
PlanExecutionType
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user