Commit 353f979fefff8beed770363a4df7bc10d2d1e39b

Authored by ww
1 parent 37aa5e39

fix: DEFECT-894 model of matter can not creat event

@@ -29,8 +29,8 @@ export interface StructJSON { @@ -29,8 +29,8 @@ export interface StructJSON {
29 29
30 export interface FunctionJson { 30 export interface FunctionJson {
31 dataType?: DataType | DataType[]; 31 dataType?: DataType | DataType[];
32 - inputData?: DataType[];  
33 - outputData?: DataType[]; 32 + inputData?: StructJSON[];
  33 + outputData?: StructJSON[];
34 serviceCommand?: string; 34 serviceCommand?: string;
35 } 35 }
36 36
@@ -155,54 +155,55 @@ @@ -155,54 +155,55 @@
155 showSizeChanger: true, 155 showSizeChanger: true,
156 }, 156 },
157 afterFetch: async (data: DeviceInfo[]) => { 157 afterFetch: async (data: DeviceInfo[]) => {
158 - Promise.resolve().then(() => {  
159 - const BMap = (window as any).BMap;  
160 - unref(BMapInstance).clearOverlays();  
161 - const markerList: MarkerList[] = [];  
162 - data.forEach((item) => {  
163 - const {  
164 - name,  
165 - deviceState,  
166 - deviceInfo: { longitude, latitude },  
167 - } = item;  
168 - const point = new BMap.Point(longitude, latitude);  
169 - const rivet = deviceState === 'INACTIVE' ? djx : deviceState === 'ONLINE' ? zx : lx;  
170 - const myIcon = new BMap.Icon(rivet, new BMap.Size(20, 30));  
171 - const marker = new BMap.Marker(point, { icon: myIcon });  
172 - const label = new BMap.Label(name, {  
173 - position: point,  
174 - offset: new BMap.Size(-15, -45),  
175 - });  
176 - label.setStyle({  
177 - color: '#000',  
178 - borderRadius: '5px',  
179 - borderColor: '#ccc',  
180 - padding: '5px',  
181 - });  
182 - markerList.push({ ...item, marker, label });  
183 - });  
184 -  
185 - markerList.forEach((record) => {  
186 - unref(BMapInstance).addOverlay(record.marker);  
187 - unref(BMapInstance).addOverlay(record.label);  
188 - const isAlarmStatus = !!record.alarmStatus;  
189 - if (isAlarmStatus) {  
190 - const alarmStatusClassName = 'device-status__alarm';  
191 - const className = record.marker.Ec.getAttribute('class');  
192 - record.marker.Ec.setAttribute('class', `${className} ${alarmStatusClassName}`);  
193 - }  
194 -  
195 - //标注监听事件  
196 - record.marker.addEventListener('click', function () {  
197 - createDeviceInfoWindow(record);  
198 - });  
199 - });  
200 - });  
201 - 158 + asyncFn(data);
202 return data; 159 return data;
203 }, 160 },
204 }); 161 });
205 162
  163 + async function asyncFn(data: DeviceInfo[]) {
  164 + const BMap = (window as any).BMap;
  165 + unref(BMapInstance)?.clearOverlays();
  166 + const markerList: MarkerList[] = [];
  167 + data.forEach((item) => {
  168 + const {
  169 + name,
  170 + deviceState,
  171 + deviceInfo: { longitude, latitude },
  172 + } = item;
  173 + const point = new BMap.Point(longitude, latitude);
  174 + const rivet = deviceState === 'INACTIVE' ? djx : deviceState === 'ONLINE' ? zx : lx;
  175 + const myIcon = new BMap.Icon(rivet, new BMap.Size(20, 30));
  176 + const marker = new BMap.Marker(point, { icon: myIcon });
  177 + const label = new BMap.Label(name, {
  178 + position: point,
  179 + offset: new BMap.Size(-15, -45),
  180 + });
  181 + label.setStyle({
  182 + color: '#000',
  183 + borderRadius: '5px',
  184 + borderColor: '#ccc',
  185 + padding: '5px',
  186 + });
  187 + markerList.push({ ...item, marker, label });
  188 + });
  189 +
  190 + markerList.forEach((record) => {
  191 + unref(BMapInstance).addOverlay(record.marker);
  192 + unref(BMapInstance).addOverlay(record.label);
  193 + const isAlarmStatus = !!record.alarmStatus;
  194 + if (isAlarmStatus) {
  195 + const alarmStatusClassName = 'device-status__alarm';
  196 + const className = record.marker.Ec.getAttribute('class');
  197 + record.marker.Ec.setAttribute('class', `${className} ${alarmStatusClassName}`);
  198 + }
  199 +
  200 + //标注监听事件
  201 + record.marker.addEventListener('click', function () {
  202 + createDeviceInfoWindow(record);
  203 + });
  204 + });
  205 + }
  206 +
206 async function initMap() { 207 async function initMap() {
207 await toPromise(); 208 await toPromise();
208 await nextTick(); 209 await nextTick();
@@ -38,9 +38,13 @@ @@ -38,9 +38,13 @@
38 const { functionName, remark, identifier, outputData: _outputData = [], eventType } = _values; 38 const { functionName, remark, identifier, outputData: _outputData = [], eventType } = _values;
39 if (!_values) return {} as unknown as ModelOfMatterParams; 39 if (!_values) return {} as unknown as ModelOfMatterParams;
40 40
41 - const outputData = (_outputData as unknown as StructJSON[]).map((item) =>  
42 - excludeIdInStructJSON(item.dataType!)  
43 - ); 41 + const outputData = (_outputData as unknown as StructJSON[]).map((item) => {
  42 + const dataType = excludeIdInStructJSON(item.dataType!);
  43 + return {
  44 + ...item,
  45 + dataType,
  46 + };
  47 + });
44 48
45 const value = { 49 const value = {
46 functionName, 50 functionName,
@@ -58,12 +58,20 @@ @@ -58,12 +58,20 @@
58 } = _values; 58 } = _values;
59 if (!_values) return {}; 59 if (!_values) return {};
60 60
61 - const outputData = (_outputData as unknown as StructJSON[]).map((item) =>  
62 - excludeIdInStructJSON(item.dataType!)  
63 - );  
64 - const inputData = (_inputData as unknown as StructJSON[]).map((item) =>  
65 - excludeIdInStructJSON(item.dataType!)  
66 - ); 61 + const outputData = (_outputData as unknown as StructJSON[]).map((item) => {
  62 + const dataType = excludeIdInStructJSON(item.dataType!);
  63 + return {
  64 + ...item,
  65 + dataType,
  66 + };
  67 + });
  68 + const inputData = (_inputData as unknown as StructJSON[]).map((item) => {
  69 + const dataType = excludeIdInStructJSON(item.dataType!);
  70 + return {
  71 + ...item,
  72 + dataType,
  73 + };
  74 + });
67 75
68 const value = { 76 const value = {
69 functionName, 77 functionName,