Browse Source

设备型号新增传感器类型
根据不同的传感器类型,显示不同的上下限
温度传感器就只显示,温度上下限
温湿度传感器显示,温度上下限,湿度上下限
温湿度CO2传感器显示,温度上下限,湿度上下限,co2上下限

like 6 months ago
parent
commit
95f9fe9632

+ 111 - 78
snowy-admin-web/src/views/basicset/devicetype/form.vue

@@ -11,7 +11,7 @@
 			:model="formData"
 			:rules="formRules"
 			layout="inline"
-			:label-col="{ style: { width: '100px', justifyContent: 'end' } }"
+			:label-col="{ style: { width: '105px', justifyContent: 'end' } }"
 		>
 			<a-row :gutter="10">
 				<a-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
@@ -20,82 +20,25 @@
 					</a-form-item>
 				</a-col>
 				<a-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
-					<a-form-item label="型号编号" name="code">
-						<a-input v-model:value="formData.code" placeholder="请输入型号编号" allow-clear :maxlength="10" />
-					</a-form-item>
-				</a-col>
-
-				<a-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
-					<a-form-item label="温度上限" name="temperatureUp">
-						<a-input-number
-							id="inputNumber"
-							v-model:value="formData.temperatureUp"
-							placeholder="请输入温度上限"
-							allow-clear
-							style="width: 100%"
-						/>
-					</a-form-item>
-				</a-col>
-				<a-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
-					<a-form-item label="温度下限" name="temperatureDown">
-						<a-input-number
-							id="inputNumber"
-							v-model:value="formData.temperatureDown"
-							placeholder="请输入温度下限"
-							allow-clear
-							style="width: 100%"
-						/>
-					</a-form-item>
-				</a-col>
-				<a-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
-					<a-form-item label="湿度上限" name="humidityUp">
-						<a-input-number
-							id="inputNumber"
-							v-model:value="formData.humidityUp"
-							placeholder="请输入湿度上限"
-							allow-clear
-							style="width: 100%"
-						/>
-					</a-form-item>
-				</a-col>
-				<a-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
-					<a-form-item label="湿度下限" name="humidityDown">
-						<a-input-number
-							id="inputNumber"
-							v-model:value="formData.humidityDown"
-							placeholder="请输入湿度下限"
-							allow-clear
-							style="width: 100%"
+					<a-form-item label="传感器类型" name="sensorType">
+						<a-select
+							ref="select"
+							v-model:value="formData.sensorType"
+							:options="sensorOptions"
+							placeholder="请选择传感器类型"
 						/>
 					</a-form-item>
 				</a-col>
 				<a-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
-					<a-form-item label="CO2上限" name="co2Up">
-						<a-input-number
-							id="inputNumber"
-							v-model:value="formData.co2Up"
-							placeholder="请输入CO2上限"
-							allow-clear
-							style="width: 100%"
-						/>
-					</a-form-item>
-				</a-col>
-				<a-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
-					<a-form-item label="CO2下限" name="co2Down">
-						<a-input-number
-							id="inputNumber"
-							v-model:value="formData.co2Down"
-							placeholder="请输入CO2下限"
-							allow-clear
-							style="width: 100%"
-						/>
+					<a-form-item label="型号编号" name="code">
+						<a-input v-model:value="formData.code" placeholder="请输入型号编号" allow-clear :maxlength="10" />
 					</a-form-item>
 				</a-col>
 				<a-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
-					<a-form-item label="传感器路数" name="sensorCount">
+					<a-form-item label="传感器总路数" name="sensorCount">
 						<a-input-number
 							v-model:value="formData.sensorCount"
-							placeholder="请输入传感器路数"
+							placeholder="请输入传感器总路数"
 							allow-clear
 							:min="1"
 							:max="4"
@@ -104,7 +47,84 @@
 						/>
 					</a-form-item>
 				</a-col>
-				<a-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
+
+				<div
+					class="form_item"
+					v-if="formData.sensorType == 'W' || formData.sensorType == 'WS' || formData.sensorType == 'WSC'"
+				>
+					<a-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
+						<a-form-item label="温度上限" name="temperatureUp">
+							<a-input-number
+								id="inputNumber"
+								v-model:value="formData.temperatureUp"
+								placeholder="请输入温度上限"
+								allow-clear
+								style="width: 100%"
+							/>
+						</a-form-item>
+					</a-col>
+					<a-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
+						<a-form-item label="温度下限" name="temperatureDown">
+							<a-input-number
+								id="inputNumber"
+								v-model:value="formData.temperatureDown"
+								placeholder="请输入温度下限"
+								allow-clear
+								style="width: 100%"
+							/>
+						</a-form-item>
+					</a-col>
+				</div>
+				<div class="form_item" v-if="formData.sensorType == 'WS' || formData.sensorType == 'WSC'">
+					<a-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
+						<a-form-item label="湿度上限" name="humidityUp">
+							<a-input-number
+								id="inputNumber"
+								v-model:value="formData.humidityUp"
+								placeholder="请输入湿度上限"
+								allow-clear
+								style="width: 100%"
+							/>
+						</a-form-item>
+					</a-col>
+					<a-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
+						<a-form-item label="湿度下限" name="humidityDown">
+							<a-input-number
+								id="inputNumber"
+								v-model:value="formData.humidityDown"
+								placeholder="请输入湿度下限"
+								allow-clear
+								style="width: 100%"
+							/>
+						</a-form-item>
+					</a-col>
+				</div>
+				<div class="form_item" v-if="formData.sensorType == 'WSC'">
+					<a-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
+						<a-form-item label="CO2上限" name="co2Up">
+							<a-input-number
+								id="inputNumber"
+								v-model:value="formData.co2Up"
+								placeholder="请输入CO2上限"
+								allow-clear
+								style="width: 100%"
+							/>
+						</a-form-item>
+					</a-col>
+					<a-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
+						<a-form-item label="CO2下限" name="co2Down">
+							<a-input-number
+								id="inputNumber"
+								v-model:value="formData.co2Down"
+								placeholder="请输入CO2下限"
+								allow-clear
+								style="width: 100%"
+							/>
+						</a-form-item>
+					</a-col>
+				</div>
+
+				<a-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
 					<a-form-item label="排序:" name="sortCode">
 						<a-input-number class="xn-wd" v-model:value="formData.sortCode" :max="100" />
 					</a-form-item>
@@ -120,23 +140,29 @@
 </template>
 
 <script setup>
-	import { required } from '@/utils/formRules'
+	import tool from '@/utils/tool'
+
+	import { required, rules } from '@/utils/formRules'
 	import devicetypeApi from '@/api/basicset/devicetypeApi'
 	const emit = defineEmits({ successful: null })
 	const visible = ref(false) // 默认是关闭状态
 	const formRef = ref()
 	const formData = ref({ sortCode: 99 }) // 表单数据
+	const sensorOptions = tool.dictList('SENSORTYPE') // 传感器类型
+	console.log(sensorOptions.value, 'xxxxxxxxxxxxxxxxxx')
+
 	// 默认要校验的
 	const formRules = {
 		name: [required('请输入型号名称')],
-		code: [required('请输入型号编号')],
-		sensorCount: [required('请输入传感器路数')],
-		temperatureUp: [{ validator: validateTemperature, trigger: ['change', 'blur'] }],
-		temperatureDown: [{ validator: validateTemperature, trigger: ['change', 'blur'] }],
-		humidityUp: [{ validator: validateHumidity, trigger: ['change', 'blur'] }],
-		humidityDown: [{ validator: validateHumidity, trigger: ['change', 'blur'] }],
-		co2Up: [{ validator: validateCo2, trigger: ['change', 'blur'] }],
-		co2Down: [{ validator: validateCo2, trigger: ['change', 'blur'] }]
+		sensorType: [required('请选择传感器类型')],
+		code: [required('请输入型号编号'), rules.number],
+		sensorCount: [required('请输入传感器总路数')],
+		temperatureUp: [required('请输入温度上限'), { validator: validateTemperature, trigger: ['change', 'blur'] }],
+		temperatureDown: [required('请输入温度下限'), { validator: validateTemperature, trigger: ['change', 'blur'] }],
+		humidityUp: [required('请输入湿度上限'), { validator: validateHumidity, trigger: ['change', 'blur'] }],
+		humidityDown: [required('请输入湿度下限'), { validator: validateHumidity, trigger: ['change', 'blur'] }],
+		co2Up: [required('请输入CO2上限'), { validator: validateCo2, trigger: ['change', 'blur'] }],
+		co2Down: [required('请输入CO2下限'), { validator: validateCo2, trigger: ['change', 'blur'] }]
 	}
 	// 温度上下限校验
 	function validateTemperature(rule, value, callback) {
@@ -230,4 +256,11 @@
 		width: 100%;
 		margin-bottom: 10px;
 	}
+	.form_item {
+		width: 100%;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		flex-wrap: wrap;
+	}
 </style>

+ 3 - 3
snowy-admin-web/src/views/basicset/mem/form.vue

@@ -116,10 +116,10 @@
 					</a-form-item>
 				</a-col>
 				<a-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
-					<a-form-item label="传感器路数" name="sensorCount">
+					<a-form-item label="传感器路数" name="sensorCount">
 						<a-input-number
 							v-model:value="formData.sensorCount"
-							placeholder="请输入传感器路数"
+							placeholder="请输入传感器路数"
 							allow-clear
 							:min="1"
 							:max="sensorRouteMax"
@@ -160,7 +160,7 @@
 		deviceCode: [required('请输入设备编号'), rules.integer],
 		modelName: [required('请选择设备型号')],
 		status: [required('请选择设备状态')],
-		sensorCount: [required('请输入传感器路数')]
+		sensorCount: [required('请输入传感器路数')]
 	}
 
 	// 获取设备型号