| 
					
				 | 
			
			
				@@ -0,0 +1,150 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <EditRowTableVue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      v-if="refreshParent" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ref="ParentRef" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :columns="warningColumns" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :list="list" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :params="{ deviceid: deviceId }" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      @save-or-update="saveOrUpdateParent" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      @delete-by-id="parentDeleteById" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      @row-change="changeParentRow" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :isAdd="true" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :isRadio="true" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :scroll="{ y: 200 }" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <template #filterCell="{ column, record }"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <template v-if="column.dataIndex === 'monitorcode'"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div v-if="record.editable" style="position: relative"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <Select 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              :options="options" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              v-model:value="record['monitorcode']" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              :fieldNames="{ label: 'valuename', value: 'valuecode' }" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              size="small" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              style="min-width: 100px" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div v-else>{{ getLabel(record['monitorcode']) }}</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </EditRowTableVue> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <div style="color: #efefef; margin-top: 8px">注: 请先选中监测参数才能添加报警等级</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <EditRowTableVue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      v-if="refresh && warningProId !== ''" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ref="RefChildComponent" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :columns="levelColumns" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :list="limitList" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :params="{ limitid: warningProId }" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      @save-or-update="saveOrUpdateChild" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      @delete-by-id="childDeleteById" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :isAdd="true" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      style="margin-top: 10px" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :scroll="{ y: 200 }" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <a-table v-else :dataSource="[]" :columns="levelColumns" style="margin-top: 10px" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<script lang="ts" setup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  import { Select } from 'ant-design-vue'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  import EditRowTableVue from '../../../comment/EditRowTable.vue'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  import { warningColumns, levelColumns } from './warning.data'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  import { list, limitList, edit, save, limitSave, limitEdit, deleteById, limitDeleteById } from './warning.api'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  import { list as pointList } from '../pointTabel/point.api'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  import { defineProps, ref, nextTick, inject, onMounted, onBeforeMount } from 'vue'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const props = defineProps({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    deviceId: { type: String }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pointType: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      type: String, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      requried: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const ParentRef = ref(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const options = ref([]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const RefChildComponent = ref(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const warningProId = ref(''); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const currentParent = ref({}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const refresh = ref(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const refreshParent = ref(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  async function saveOrUpdateParent(record) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (record.id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        currentParent.value = record; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        await edit({ ...record }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        await save({ ...record, deviceid: props.deviceId, devicetype: props.pointType }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // refreshParent.value = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (ParentRef.value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        await ParentRef.value.reload(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        nextTick(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const parentList = ParentRef.value.getDataSource(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (record.id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ParentRef.value.setSelectedRowKeys([record.id]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ParentRef.value.setSelectedRowKeys([parentList[0]['id']]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } catch (error) {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  async function saveOrUpdateChild(record) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (record.id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      await limitEdit({ ...record }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      await limitSave({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ...record.editValueRefs, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        limitid: warningProId.value, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        code: currentParent.value['monitorcode'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        devicetype: props.pointType, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        deviceid: props.deviceId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // refresh.value = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (RefChildComponent.value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      await RefChildComponent.value.reload(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      nextTick(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const childList = RefChildComponent.value.getDataSource(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        RefChildComponent.value.setSelectedRowKeys([childList[0]['id']]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  function parentDeleteById(id, reload) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    deleteById({ id: id }, reload); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  function childDeleteById(id, reload) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    limitDeleteById({ id: id }, reload); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  function changeParentRow(id, rowData) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    warningProId.value = id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    currentParent.value = rowData; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    refresh.value = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    nextTick(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      refresh.value = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  function getLabel(code) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const obj = options.value.find((item) => item['valuecode'] === code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (obj) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return obj['valuename']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return code; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  onBeforeMount(async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const res = await pointList({ devicetype: props.pointType, valuetype_begin: 2 }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    options.value = res && res['records'] ? res['records'] : []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  onMounted(async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (ParentRef.value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      await ParentRef.value.reload(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      nextTick(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const parentList = ParentRef.value.getDataSource(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ParentRef.value.setSelectedRowKeys([parentList[0]['id']]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<style scoped></style> 
			 |