Files
PropertyDeployment/resources/Web/MicroCommunityIotWeb/html/components/car/parkingAreaTotalControlVideo/parkingAreaTotalControlVideo.js
2025-12-09 20:22:03 +08:00

252 lines
9.0 KiB
JavaScript

/**
入驻小区
**/
(function (vc) {
vc.extends({
data: {
parkingAreaTotalControlVideoInfo: {
paId: '',
machines: [],
jessibuca:{},
}
},
_initMethod: function () {
let _paId = vc.getParam('paId');
if (_paId) {
$that.parkingAreaTotalControlVideoInfo.paId = _paId;
$that._listMachines();
}
},
_initEvent: function () {
vc.on('parkingAreaTotalControlVideo', 'switch', function (param) {
// if (param.hasOwnProperty('paId')) {
// $that.parkingAreaTotalControlVideoInfo.paId = param.paId;
// $that._listMachines();
// }
});
vc.on('parkingAreaTotalControlVideo', 'notify', function (_data) {
$that._showCarInoutMachineInoutInfo(_data);
$that._showCarInoutMachineImgInfo(_data);
let _machines = $that.parkingAreaTotalControlVideoInfo.machines;
_machines.forEach(item => {
if (item.machineId == _data.machineId) {
vc.emit('parkingAreaTotalControlFee', 'notify', {
machine: item,
data: _data
});
}
})
});
},
methods: {
_showCarInoutMachineImgInfo: function (_data) {
if (_data.action != 'IN_OUT') {
return;
}
let _machines = $that.parkingAreaTotalControlVideoInfo.machines;
_machines.forEach(item => {
if (item.machineId == _data.machineId) {
setTimeout(function () {
item.inOutImg = _data.clitImg;
//强制刷新下
$that.$forceUpdate();
}, 1500);
}
})
},
_showCarInoutMachineInoutInfo: function (_data) {
if (_data.action != 'FEE_INFO') {
return;
}
let _machines = $that.parkingAreaTotalControlVideoInfo.machines;
_machines.forEach(item => {
if (item.machineId == _data.machineId) {
item.carNum = _data.carNum;
item.inOutTime = _data.inOutTime;
item.open = _data.open;
item.openMsg = _data.remark;
}
})
},
_listMachines: function () {
let param = {
params: {
paId: $that.parkingAreaTotalControlVideoInfo.paId,
page: 1,
row: 100,
communityId: vc.getCurrentCommunity().communityId
}
}
//发送get请求
vc.http.apiGet('/barrier.listBarrier',
param,
function (json, res) {
let _machineManageInfo = JSON.parse(json);
let _machines = _machineManageInfo.data;
_machines.forEach(item => {
item.carNum = '';
item.inOutTime = '';
item.open = '';
item.openMsg = '';
})
$that.parkingAreaTotalControlVideoInfo.machines = _machines;
// 初始化视频
$that.initMachineVedio();
},
function (errInfo, error) {
console.log('请求失败处理');
}
);
},
initMachineVedio: function () {
let _machines = $that.parkingAreaTotalControlVideoInfo.machines;
let wsUrl = "";
setTimeout(function () {
_machines.forEach(item => {
$that._swatchVedio(item);
})
}, 2000)
},
_swatchVedio: function (_machine) {
//创建一个socket实例
let wsUrl = "";
wsUrl = _machine.machineIp;
wsUrl = wsUrl.replace(':8131', ':9080');
let _protocol = window.location.protocol;
if (wsUrl.indexOf(":") < 0) {
wsUrl = wsUrl + ":9080";
}
wsUrl += "/ws.flv";
wsUrl =
"ws://" + wsUrl;
$that._showCameraVideo(wsUrl,"receiverDiv" + _machine.machineId)
},
_showCameraVideo: function (wsUrl, _div) {
let image = document.getElementById(_div);
let jMap = $that.parkingAreaTotalControlVideoInfo.jessibuca;
let jessibuca = jMap[_div];
if (jessibuca) {
jessibuca.destroy();
}
jessibuca = new Jessibuca({
container: image,
videoBuffer: 0.2, // 缓存时长
isResize: false,
text: "",
loadingText: "",
useMSE: false,
debug: false,
isNotMute: false,
},);
jessibuca.play(wsUrl);
jMap[_div] = jessibuca;
},
_openDoor: function (_machine) {
let _data = {
"machineCode": _machine.machineCode,
"stateName": "开门",
"state": "1500",
"url": "/barrier.openBarrierDoor",
"userRole": "staff",
"communityId": vc.getCurrentCommunity().communityId
};
vc.http.apiPost('/barrier.openBarrierDoor',
JSON.stringify(_data), {
emulateJSON: true
},
function (json, res) {
let _data = JSON.parse(json);
if (_data.code != 0) {
vc.toast(_data.msg);
} else {
vc.toast('已请求设备');
}
},
function (errInfo, error) {
console.log('请求失败处理');
vc.toast(json);
});
},
_closeDoor: function (_machine) {
let _data = {
"machineCode": _machine.machineCode,
"stateName": "关门",
"state": "1500",
"url": "/barrier.closeBarrierDoor",
"userRole": "staff",
"communityId": vc.getCurrentCommunity().communityId
};
vc.http.apiPost('/barrier.closeBarrierDoor',
JSON.stringify(_data), {
emulateJSON: true
},
function (json, res) {
let _data = JSON.parse(json);
if (_data.code != 0) {
vc.toast(_data.msg);
} else {
vc.toast('已请求设备');
}
},
function (errInfo, error) {
console.log('请求失败处理');
vc.toast(json);
});
},
customCarIn: function (_machine, _type) {
vc.emit('parkingAreaControlCustomCarInout', 'open', {
type: _type,
machineId: _machine.machineId,
boxId: _machine.locationObjId,
paId: $that.parkingAreaTotalControlVideoInfo.paId
})
},
openCloudFlvViedo: function (_machineId) {
let _param = {
params: {
"machineId": _machineId,
"communityId": vc.getCurrentCommunity().communityId
}
};
vc.http.apiGet('/barrier.getCloudFlvVideo',
_param,
function (json, res) {
let _data = JSON.parse(json);
if (_data.code != 0) {
vc.toast(_data.msg);
return;
}
console.log(_data)
$that._showCameraVideo(_data.data.url, 'receiverDiv'+_machineId);
},
function (errInfo, error) {
console.log('请求失败处理');
vc.toast(json);
});
}
}
});
})(window.vc);