Commit a89b11743f2ccc6016f3f072d5cac8eb15cbe4c4

Authored by ww
1 parent 353f979f

fix: DEFECT-876 click row data not render device position

1 <template> 1 <template>
2 <div class="wrapper"> 2 <div class="wrapper">
3 - <div ref="wrapRef" :style="{ height, width }"> </div> 3 + <Spin :spinning="spinning">
  4 + <div ref="wrapRef" :style="{ height, width }"> </div>
  5 + </Spin>
4 <div class="right-wrap !dark:bg-dark-900"> 6 <div class="right-wrap !dark:bg-dark-900">
5 <BasicTable 7 <BasicTable
6 style="cursor: pointer" 8 style="cursor: pointer"
@@ -91,6 +93,7 @@ @@ -91,6 +93,7 @@
91 import { defaultSchemas } from './cpns/TimePeriodForm/config'; 93 import { defaultSchemas } from './cpns/TimePeriodForm/config';
92 import { QueryWay, SchemaFiled, AggregateDataEnum } from './cpns/TimePeriodForm/config'; 94 import { QueryWay, SchemaFiled, AggregateDataEnum } from './cpns/TimePeriodForm/config';
93 import { dateUtil } from '/@/utils/dateUtil'; 95 import { dateUtil } from '/@/utils/dateUtil';
  96 + import { Spin } from 'ant-design-vue';
94 97
95 interface DeviceInfo { 98 interface DeviceInfo {
96 alarmStatus: 0 | 1; 99 alarmStatus: 0 | 1;
@@ -114,6 +117,7 @@ @@ -114,6 +117,7 @@
114 DeviceDetailDrawer, 117 DeviceDetailDrawer,
115 Loading, 118 Loading,
116 TimePeriodForm, 119 TimePeriodForm,
  120 + Spin,
117 }, 121 },
118 props: { 122 props: {
119 width: { 123 width: {
@@ -155,14 +159,15 @@ @@ -155,14 +159,15 @@
155 showSizeChanger: true, 159 showSizeChanger: true,
156 }, 160 },
157 afterFetch: async (data: DeviceInfo[]) => { 161 afterFetch: async (data: DeviceInfo[]) => {
158 - asyncFn(data); 162 + createMarket(data);
159 return data; 163 return data;
160 }, 164 },
161 }); 165 });
162 166
163 - async function asyncFn(data: DeviceInfo[]) { 167 + async function createMarket(data: DeviceInfo[]) {
164 const BMap = (window as any).BMap; 168 const BMap = (window as any).BMap;
165 - unref(BMapInstance)?.clearOverlays(); 169 + if (!BMap) return;
  170 + unref(BMapInstance).clearOverlays();
166 const markerList: MarkerList[] = []; 171 const markerList: MarkerList[] = [];
167 data.forEach((item) => { 172 data.forEach((item) => {
168 const { 173 const {
@@ -222,6 +227,7 @@ @@ -222,6 +227,7 @@
222 myCity.get(myFun); 227 myCity.get(myFun);
223 } 228 }
224 229
  230 + const spinning = ref(false);
225 const createDeviceInfoWindow = async (record: DeviceInfo) => { 231 const createDeviceInfoWindow = async (record: DeviceInfo) => {
226 const BMap = (window as any).BMap; 232 const BMap = (window as any).BMap;
227 entityId = record.tbDeviceId; 233 entityId = record.tbDeviceId;
@@ -288,7 +294,13 @@ @@ -288,7 +294,13 @@
288 }; 294 };
289 // 点击表格某一行触发 295 // 点击表格某一行触发
290 const deviceRowClick = async (record) => { 296 const deviceRowClick = async (record) => {
291 - createDeviceInfoWindow(record); 297 + try {
  298 + spinning.value = true;
  299 + await createDeviceInfoWindow(record);
  300 + } catch (err) {
  301 + } finally {
  302 + spinning.value = false;
  303 + }
292 }; 304 };
293 305
294 // 设备信息 306 // 设备信息
@@ -452,6 +464,7 @@ @@ -452,6 +464,7 @@
452 isNull, 464 isNull,
453 registerDetailDrawer, 465 registerDetailDrawer,
454 loading, 466 loading,
  467 + spinning,
455 timePeriodRegister, 468 timePeriodRegister,
456 handleCancelModal, 469 handleCancelModal,
457 }; 470 };