You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
2.8 KiB
87 lines
2.8 KiB
class WvpService {
|
|
constructor() {
|
|
this.baseURL = import.meta.env.VITE_APP_WVP_API;
|
|
this.token = '';
|
|
this.login()
|
|
}
|
|
|
|
login() {
|
|
return fetch(`${this.baseURL}/api/user/login?username=admin&password=21232f297a57a5a743894a0e4a801fc3`)
|
|
.then(response => response.json())
|
|
.then(({ data }) => {
|
|
this.token = data.accessToken;
|
|
})
|
|
.catch(error => {
|
|
console.error('Error:', error);
|
|
});
|
|
}
|
|
|
|
async deviceList() {
|
|
if (!this.token) {
|
|
await this.login();
|
|
}
|
|
return fetch(`${this.baseURL}/api/device/query/devices?page=1&count=100`, {
|
|
headers: {
|
|
'Access-Token': `${this.token}`
|
|
}
|
|
})
|
|
.then(response => response.json())
|
|
.then(data => {
|
|
if (data.code === 401) {
|
|
// this.login();
|
|
} else {
|
|
return data.data.list;
|
|
}
|
|
})
|
|
.catch(error => {
|
|
console.error('Error:', error);
|
|
});
|
|
}
|
|
getTree(deviceId, parentId, onlyCatalog, callback, endCallback, errorCallback) {
|
|
let currentPage = 1;
|
|
let count = 100;
|
|
let catalogList = []
|
|
this.getTreeIteration(deviceId, parentId, onlyCatalog, catalogList, currentPage, count, callback, endCallback, errorCallback)
|
|
}
|
|
|
|
getTreeIteration(deviceId, parentId, onlyCatalog, catalogList, currentPage, count, callback, endCallback, errorCallback) {
|
|
this.getTreeInfo(deviceId, parentId, onlyCatalog, currentPage, count, (data) => {
|
|
console.log(data)
|
|
if (data.code === 0 && data.data.list) {
|
|
if (typeof (callback) == "function") callback(data.data.list)
|
|
catalogList = catalogList.concat(data.data.list);
|
|
if (catalogList.length < data.data.total) {
|
|
currentPage++
|
|
this.getTreeIteration(deviceId, parentId, onlyCatalog, catalogList, currentPage, count, callback, endCallback, errorCallback)
|
|
} else {
|
|
if (typeof (endCallback) == "function") endCallback(catalogList)
|
|
}
|
|
}
|
|
}, errorCallback)
|
|
}
|
|
getTreeInfo(deviceId, parentId, onlyCatalog, currentPage, count, callback, errorCallback) {
|
|
if (onlyCatalog == null || typeof onlyCatalog === "undefined") {
|
|
onlyCatalog = false;
|
|
}
|
|
return fetch(`${this.baseURL}/api/device/query/tree/${deviceId}?page=${currentPage}&count=${count}&parentId=${parentId}&onlyCatalog=${onlyCatalog}`, {
|
|
headers: {
|
|
'Access-Token': `${this.token}`
|
|
}
|
|
})
|
|
.then(response => response.json())
|
|
.then((res) => {
|
|
if (typeof (callback) == "function") callback(res)
|
|
}).catch(errorCallback);
|
|
}
|
|
|
|
startPlay(deviceId, channelId) {
|
|
return fetch(`${this.baseURL}/api/play/start/${deviceId}/${channelId}`, {
|
|
headers: {
|
|
'Access-Token': `${this.token}`
|
|
}
|
|
})
|
|
.then(response => response.json())
|
|
}
|
|
}
|
|
|
|
export default new WvpService();
|
|
|