fix: selectedDevice doennot update when directly enter DevicePage
This commit is contained in:
@@ -169,10 +169,9 @@ const renderDeviceNodePrefix = (device: NdmDeviceResultVO, stationCode: string)
|
|||||||
// ========== 选中设备 ==========
|
// ========== 选中设备 ==========
|
||||||
const selectedTab = ref<DeviceTypeVal>(DeviceType.Camera);
|
const selectedTab = ref<DeviceTypeVal>(DeviceType.Camera);
|
||||||
const selectedKeys = ref<string[]>();
|
const selectedKeys = ref<string[]>();
|
||||||
const expandedKeys = ref<string[]>();
|
|
||||||
const selectedDevice = ref<NdmDeviceResultVO>();
|
const selectedDevice = ref<NdmDeviceResultVO>();
|
||||||
// 从路由参数中设置选中的设备
|
// 解析路由参数,设置选中的设备
|
||||||
const setDeviceTreePropsFromRouteQuery = (query: LocationQuery) => {
|
const setSelectedRefsFromRouteQuery = (query: LocationQuery) => {
|
||||||
const { stationCode, deviceType, deviceDBId } = query;
|
const { stationCode, deviceType, deviceDBId } = query;
|
||||||
let stnCode = '';
|
let stnCode = '';
|
||||||
let devType: DeviceTypeVal = DeviceType.Camera;
|
let devType: DeviceTypeVal = DeviceType.Camera;
|
||||||
@@ -190,13 +189,24 @@ const setDeviceTreePropsFromRouteQuery = (query: LocationQuery) => {
|
|||||||
};
|
};
|
||||||
// 页面加载时,需要设置选中的设备
|
// 页面加载时,需要设置选中的设备
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
setDeviceTreePropsFromRouteQuery(route.query);
|
// setSelectedRefsFromRouteQuery(route.query);
|
||||||
// scrollDeviceTreeToSelectedDevice();
|
// scrollDeviceTreeToSelectedDevice();
|
||||||
});
|
});
|
||||||
// 页面加载时设备数据可能不存在,因此当设备数据更新时,需要重新设置选中的设备
|
// 页面加载时设备数据可能不存在,因此当设备数据更新时,需要重新设置选中的设备
|
||||||
watch(lineDevices, () => setDeviceTreePropsFromRouteQuery(route.query), { immediate: true });
|
watch(
|
||||||
|
lineDevices,
|
||||||
|
() => {
|
||||||
|
setSelectedRefsFromRouteQuery(route.query);
|
||||||
|
},
|
||||||
|
{
|
||||||
|
deep: true,
|
||||||
|
immediate: true,
|
||||||
|
},
|
||||||
|
);
|
||||||
// 更改选择的设备类型时,更新路由查询参数
|
// 更改选择的设备类型时,更新路由查询参数
|
||||||
watch(selectedTab, (newTab) => router.replace({ query: { ...route.query, deviceType: newTab } }));
|
watch(selectedTab, (newTab) => {
|
||||||
|
router.replace({ query: { ...route.query, deviceType: newTab } });
|
||||||
|
});
|
||||||
const override: TreeOverrideNodeClickBehavior = ({ option }) => {
|
const override: TreeOverrideNodeClickBehavior = ({ option }) => {
|
||||||
if (!option['device']) {
|
if (!option['device']) {
|
||||||
return 'none';
|
return 'none';
|
||||||
@@ -225,6 +235,7 @@ const searchFilter = (pattern: string, node: TreeOption): boolean => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// ========== 设备树交互 ==========
|
// ========== 设备树交互 ==========
|
||||||
|
const expandedKeys = ref<string[]>();
|
||||||
const deviceTreeInst = useTemplateRef<TreeInst>('deviceTreeInst');
|
const deviceTreeInst = useTemplateRef<TreeInst>('deviceTreeInst');
|
||||||
const onClickLocateDeviceTree = () => {
|
const onClickLocateDeviceTree = () => {
|
||||||
selectedTab.value = (selectedDevice.value?.deviceType ?? selectedTab.value) as DeviceTypeVal;
|
selectedTab.value = (selectedDevice.value?.deviceType ?? selectedTab.value) as DeviceTypeVal;
|
||||||
|
|||||||
Reference in New Issue
Block a user