ソースを参照

监测点管理配置表单添加报警接收人

like 6 ヶ月 前
コミット
22c7455c1e
1 ファイル変更37 行追加5 行削除
  1. 37 5
      snowy-admin-web/src/views/motoring/location/form.vue

+ 37 - 5
snowy-admin-web/src/views/motoring/location/form.vue

@@ -21,6 +21,7 @@
 							v-model:value="formData.monitorTargetId"
 							:options="monitorTargetOptions"
 							placeholder="请选择监控对象"
+							disabled
 						/>
 					</a-form-item>
 				</a-col>
@@ -71,6 +72,20 @@
 					</a-form-item>
 				</a-col>
 
+				<!-- 报警接收人 -->
+
+				<a-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
+					<a-form-item label="报警接收人" name="alarmUsers">
+						<a-select
+							v-model:value="formData.alarmUsers"
+							mode="multiple"
+							style="width: 100%"
+							placeholder="请选择报警接收人"
+							:options="alarmUsersOptions"
+						></a-select>
+					</a-form-item>
+				</a-col>
+
 				<div
 					class="form_item"
 					v-if="formData.sensorType == 'W' || formData.sensorType == 'WS' || formData.sensorType == 'WSC'"
@@ -181,10 +196,11 @@
 	const emit = defineEmits({ successful: null })
 	const visible = ref(false) // 默认是关闭状态
 	const formRef = ref()
-	const formData = ref() // 表单数据
+	const formData = ref({ alarmUsers: [] }) // 表单数据
 	const sensorOptions = tool.dictList('SENSORTYPE') // 传感器类型
 	const monitorTargetOptions = ref([]) // 监控对象
 	const memListOptions = ref([]) // 监控设备数据
+	const alarmUsersOptions = ref([]) // 报警接收人数据
 
 	const temperatureMax = ref({ upMax: Infinity, downMax: Infinity }) // 温度最大值
 	const humidityMax = ref({ upMax: Infinity, downMax: Infinity }) // 湿度最大值
@@ -199,6 +215,7 @@
 		monitorDeviceId: [required('请选择监控设备')],
 		sensorType: [required('请选择传感器类型')],
 		sensorRoute: [required('请输入传感器路数')],
+		alarmUsers: [required('请选择报警接收人')],
 		temperatureUp: [{ validator: validateTemperature, trigger: ['change', 'blur'] }],
 		temperatureDown: [{ validator: validateTemperature, trigger: ['change', 'blur'] }],
 		humidityUp: [{ validator: validateHumidity, trigger: ['change', 'blur'] }],
@@ -267,11 +284,11 @@
 			sensorType.value = formData.value.sensorType
 			memListData(sensorType.value)
 		} else {
-			formData.value = {}
+			formData.value = { alarmUsers: [] }
 			memListData()
 		}
 	}
-	// 获取监控对象
+	// 获取监控对象 以及获取报警接收人的数据
 	const setupListData = () => {
 		setupApi.setupList({ isAll: false }).then((res) => {
 			monitorTargetOptions.value = (res || []).map((item) => {
@@ -281,8 +298,20 @@
 					label: item['name']
 				}
 			})
+
+			const list = monitorTargetOptions.value.find((item) => item.value === formData.value.monitorTargetId)
+			alarmUsersOptions.value = (list.alarmUsers || []).map((item) => {
+				return {
+					...item,
+					value: item['openId'],
+					label: item['userName']
+				}
+			})
+
+			console.log(alarmUsersOptions.value, 'jiank')
 		})
 	}
+
 	const sensorType = ref() //选中的传感器类型
 	// 监控设备通过传感器类型来获取, sensorType可为空
 	const memListData = (value) => {
@@ -312,7 +341,6 @@
 	const monitorDeviceIdChange = (value) => {
 		if (value) {
 			const data = memListOptions.value.find((item) => item.value === value)
-			modeData.value = data
 
 			formData.value.sensorCode = data.deviceCode //传感器编号
 			formData.value.modelName = data.modelName //监控设备型号
@@ -351,7 +379,11 @@
 		formRef.value
 			.validate()
 			.then(() => {
-				locationApi.submitForm(formData.value, formData.value.id).then(() => {
+				const parameter = {
+					...formData.value,
+					alarmUsers: alarmUsersOptions.value.filter((user) => formData.value.alarmUsers.includes(user.openId))
+				}
+				locationApi.submitForm(parameter, formData.value.id).then(() => {
 					onClose()
 					emit('successful')
 				})