提交 8f756cf5 作者: 翁进城

feat: 无人机列表更改为V4接口

上级 82bf688e
流水线 #10101 已失败 于阶段
...@@ -8,7 +8,7 @@ module.exports = defineConfig({ ...@@ -8,7 +8,7 @@ module.exports = defineConfig({
plugins: [new NodePolyfillPlugin()], plugins: [new NodePolyfillPlugin()],
}, },
devServer: { devServer: {
https: true, https: false,
port: 9000, port: 9000,
client: { client: {
overlay: false, overlay: false,
......
...@@ -3,21 +3,6 @@ import request_uav from "../request_uav"; ...@@ -3,21 +3,6 @@ import request_uav from "../request_uav";
class Control_API { class Control_API {
/** /**
* 无人机token登录
* @param {*} data
* @returns
*/
static login(data) {
return request({
url: "/crm/account/loginInfo",
method: "post",
data,
headers: {
token: window.localStorage.getItem("tmj_token"),
},
});
}
/**
* 无人机接管更新状态 * 无人机接管更新状态
* @param {*} id //设备id * @param {*} id //设备id
* @returns * @returns
...@@ -32,7 +17,7 @@ class Control_API { ...@@ -32,7 +17,7 @@ class Control_API {
// 获取无人机树结构列表 // 获取无人机树结构列表
static getUavTree(params) { static getUavTree(params) {
return request({ return request({
url: "/dms/uav/tree", url: "/admin-api/uas/drive/getTree",
// url: '/crm/personalCenter/list?id=4', // url: '/crm/personalCenter/list?id=4',
method: "get", method: "get",
params, params,
......
import axios from 'axios'; import axios from "axios";
import Vue from 'vue'; import Vue from "vue";
import { resetMessage } from './message'; import { resetMessage } from "./message";
import router from '../router'; import router from "../router";
import store from '../store'; import store from "../store";
let prodUrl = 'https://tmj.mmcuav.cn'; let prodUrl = "http://192.168.5.80:30080";
let devUrl = 'https://test.tmj.mmcuav.cn/' let devUrl = "http://192.168.5.80:30080";
const $axios = axios.create({ const $axios = axios.create({
// baseURL: process.env.VUE_APP_BASE_API_TG // baseURL: process.env.VUE_APP_BASE_API_TG
// withCredentials: true // withCredentials: true
}); });
Vue.prototype.$http = axios;
const loading = null; const loading = null;
/** /**
...@@ -22,7 +20,7 @@ const loading = null; ...@@ -22,7 +20,7 @@ const loading = null;
*/ */
$axios.interceptors.request.use( $axios.interceptors.request.use(
(config) => { (config) => {
if(store.state.devMode){ if (store.state.devMode) {
config.baseURL = devUrl; config.baseURL = devUrl;
} else { } else {
config.baseURL = prodUrl; config.baseURL = prodUrl;
...@@ -30,14 +28,14 @@ $axios.interceptors.request.use( ...@@ -30,14 +28,14 @@ $axios.interceptors.request.use(
const token = store.state.token; const token = store.state.token;
if (token) { if (token) {
config.headers['token'] = token; config.headers["Authorization"] = "Bearer " + token;
// config.headers['channel'] = 'channel'; // 渠道 主平台 子平台 后台
console.log('config', config)
} }
config.headers["Tenant-Id"] = 1;
config.headers["terminal"] = 2; // 1 为管理后台 2 为前端项目
return config; return config;
}, },
(error) => { (error) => {
console.log('进来了2....'); console.log("请求出错");
return Promise.reject(error); return Promise.reject(error);
} }
); );
...@@ -47,40 +45,25 @@ $axios.interceptors.request.use( ...@@ -47,40 +45,25 @@ $axios.interceptors.request.use(
*/ */
$axios.interceptors.response.use( $axios.interceptors.response.use(
(response) => { (response) => {
console.log('请求的URL:', response.config.url); console.log("请求的URL:", response.config.url);
if (loading) { if (loading) {
loading.close(); loading.close();
} }
console.log('回应参数...', response); console.log("回应参数...", response);
const status = response.status; const status = response.status;
const res = response.data; const res = response.data;
// 请求成功返回response.data // 请求成功返回response.data
if ((status >= 200 && status < 300) || status === 304) { if ((status >= 200 && status < 300) || status === 304) {
switch (res.code) { switch (res.code) {
case 200: case 0:
return Promise.resolve(response.data); return Promise.resolve(res);
case 525:
if (store.state.isIframe) {
resetMessage.error(response.data.msg);
}
return Promise.resolve(response.data);
case 401:
return Promise.reject(response);
case 403:
if (store.state.isIframe) {
resetMessage.error(response.data.msg);
}
break;
default: default:
if (response.config.responseType === 'blob') { if (response.config.responseType === "blob") {
return Promise.resolve(response.data); return Promise.resolve(res);
} }
resetMessage.error(response?.data?.msg || '网络请求错误'); resetMessage.error(res?.msg || "网络请求错误");
return Promise.reject(response.data); return Promise.reject(res);
} }
} else { } else {
return Promise.reject(response); return Promise.reject(response);
...@@ -95,38 +78,24 @@ $axios.interceptors.response.use( ...@@ -95,38 +78,24 @@ $axios.interceptors.response.use(
switch (error.response.data.code) { switch (error.response.data.code) {
case 401: case 401:
// 返回401 清除token信息并跳转到登陆页面 // 返回401 清除token信息并跳转到登陆页面
// store.commit("user/LOGIN_OUT");
// router.replace({
// path: "/login",
// query: {
// redirect: router.currentRoute.fullPath,
// },
// });
break; break;
case 403: case 403:
// 返回403 清除token信息并跳转到登陆页面 // 返回403 清除token信息并跳转到登陆页面
// store.commit("user/LOGIN_OUT"); resetMessage.error("token过期");
resetMessage.error('token过期');
/* router.replace({
path: "/login",
query: {
redirect: router.currentRoute.fullPath,
},
}); */
break; break;
case 404: case 404:
resetMessage.error('网络请求不存在'); resetMessage.error("网络请求不存在");
break; break;
default: default:
// 统一错误提示弹窗 // 统一错误提示弹窗
resetMessage.error(error.response?.data?.msg || '网络请求错误'); resetMessage.error(error.response?.data?.msg || "网络请求错误");
} }
} else { } else {
// 请求超时或者网络有问题 // 请求超时或者网络有问题
if (error.message.includes('timeout')) { if (error.message.includes("timeout")) {
resetMessage.error('请求超时!请检查网络是否正常'); resetMessage.error("请求超时!请检查网络是否正常");
} else { } else {
resetMessage.error('请求失败,请检查网络是否已连接'); resetMessage.error("请求失败,请检查网络是否已连接");
} }
} }
return Promise.reject(error); return Promise.reject(error);
......
...@@ -42,7 +42,7 @@ export default { ...@@ -42,7 +42,7 @@ export default {
this.hangar?.uav?.streamConfiguration this.hangar?.uav?.streamConfiguration
?.find((v) => v.videoType === 1) ?.find((v) => v.videoType === 1)
?.streamUrlMessage.map((v) => ({ ?.streamUrlMessage.map((v) => ({
url: /* coverStreamUrl(v.streamUrl, this.hangar.uav.hardId) */ v.streamUrl, url: /* coverStreamUrl(v.streamUrl, this.hangar.uav.deviceId) */ v.streamUrl,
brand: v.streamType, brand: v.streamType,
})) || [] })) || []
); );
......
...@@ -2,16 +2,16 @@ import { Base64 } from "js-base64"; ...@@ -2,16 +2,16 @@ import { Base64 } from "js-base64";
/** /**
* 转换流地址, 这样后端才可统计播放情况 * 转换流地址, 这样后端才可统计播放情况
* @param {*} url * @param {*} url
* @param {*} hardId * @param {*} deviceId
* @returns * @returns
*/ */
export function coverStreamUrl(url, hardId) { export function coverStreamUrl(url, deviceId) {
if (url.includes("https://live.mmcuav.cn")) { if (url.includes("https://live.mmcuav.cn")) {
const str = Base64.encode( const str = Base64.encode(
JSON.stringify({ JSON.stringify({
token: localStorage.getItem("tmj_token"), token: localStorage.getItem("tmj_token"),
actionId: new Date().getTime().toString(), actionId: new Date().getTime().toString(),
deviceHardId: hardId, deviceHardId: deviceId,
environment: process.env.VUE_APP_ENV === "dev" ? "sit" : "prod", environment: process.env.VUE_APP_ENV === "dev" ? "sit" : "prod",
}) })
); );
......
...@@ -18,12 +18,12 @@ ...@@ -18,12 +18,12 @@
<img class="left-bar-item__icon" src="./assets/images/carAI2.png" /> <img class="left-bar-item__icon" src="./assets/images/carAI2.png" />
<div class="left-bar-item__text">车辆识别</div> <div class="left-bar-item__text">车辆识别</div>
</div> </div>
<Face v-if="openFace" class="ai-dialog" :uavId="uav.hardId" @close="openFace = false" /> <Face v-if="openFace" class="ai-dialog" :uavId="uav.deviceId" @close="openFace = false" />
<Car v-if="openPlate" class="ai-dialog" :uavId="uav.hardId" @close="openPlate = false" /> <Car v-if="openPlate" class="ai-dialog" :uavId="uav.deviceId" @close="openPlate = false" />
<Traffic <Traffic
v-if="openTraffic" v-if="openTraffic"
class="ai-dialog" class="ai-dialog"
:uavId="uav.hardId" :uavId="uav.deviceId"
@close="openTraffic = false" @close="openTraffic = false"
/> />
<Jm v-if="openModeling" :device="device" class="jm-dialog" @close="openModeling = false"></Jm> <Jm v-if="openModeling" :device="device" class="jm-dialog" @close="openModeling = false"></Jm>
......
...@@ -135,7 +135,7 @@ export default { ...@@ -135,7 +135,7 @@ export default {
*/ */
onClear() { onClear() {
let dataSet = this.$store.state.MMCMQTT.dataSet; let dataSet = this.$store.state.MMCMQTT.dataSet;
dataSet[this.hangar.hardId][3] = null; dataSet[this.hangar.deviceId][3] = null;
this.$store.commit("MMCMQTT/setState", { this.$store.commit("MMCMQTT/setState", {
key: "dataSet", key: "dataSet",
value: { value: {
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
> >
<el-checkbox <el-checkbox
:disabled="device.online !== 1" :disabled="device.online !== 1"
:value="hangar && device.hardId === hangar.hardId && device.isCheck" :value="hangar && device.deviceId === hangar.deviceId && device.isCheck"
@change="(e) => handClick(e, device)" @change="(e) => handClick(e, device)"
></el-checkbox> ></el-checkbox>
</el-tooltip> </el-tooltip>
......
...@@ -7,10 +7,10 @@ export default { ...@@ -7,10 +7,10 @@ export default {
...mapState("MMCFlightControlCenter/uav", ["uav"]), ...mapState("MMCFlightControlCenter/uav", ["uav"]),
// mqtt实时数据 // mqtt实时数据
mqttDataSetHangar() { mqttDataSetHangar() {
return this.$store.state.MMCMQTT?.dataSet?.[this.hangar?.hardId]; return this.$store.state.MMCMQTT?.dataSet?.[this.hangar?.deviceId];
}, },
mqttDataSetUav() { mqttDataSetUav() {
return this.$store.state.MMCMQTT?.dataSet?.[this.uav?.hardId]; return this.$store.state.MMCMQTT?.dataSet?.[this.uav?.deviceId];
}, },
mqttUrl() { mqttUrl() {
return this.$store.getters["MMCFlightControlCenter/mqttUrl"]; return this.$store.getters["MMCFlightControlCenter/mqttUrl"];
......
...@@ -276,7 +276,7 @@ export default { ...@@ -276,7 +276,7 @@ export default {
}, },
}, },
mounted() { mounted() {
this.GAStopic = "GAS/RECEIVE/" + this.$uav.hardId; this.GAStopic = "GAS/RECEIVE/" + this.$uav.deviceId;
// this.initMqtt(); // this.initMqtt();
this.click_billboard(); this.click_billboard();
}, },
...@@ -392,7 +392,7 @@ export default { ...@@ -392,7 +392,7 @@ export default {
this.statrTime = setInterval(async () => { this.statrTime = setInterval(async () => {
const data = await Control_API.gasRecords({ const data = await Control_API.gasRecords({
size: 1, size: 1,
mountHardId: this.$uav.hardId, mountHardId: this.$uav.deviceId,
sort: "-id", sort: "-id",
// startTime: dayjs().format("YYYY-MM-DD HH:mm:ss"), // startTime: dayjs().format("YYYY-MM-DD HH:mm:ss"),
}); });
...@@ -411,10 +411,10 @@ export default { ...@@ -411,10 +411,10 @@ export default {
}, 1000); }, 1000);
}, },
async opengasRecordsFn() { async opengasRecordsFn() {
await Control_API.opengasRecords(this.$uav.hardId); await Control_API.opengasRecords(this.$uav.deviceId);
}, },
async delgasRecordsFn() { async delgasRecordsFn() {
await Control_API.delgasRecords(this.$uav.hardId); await Control_API.delgasRecords(this.$uav.deviceId);
}, },
switchFn() { switchFn() {
if (this.GSAFlag) { if (this.GSAFlag) {
...@@ -464,7 +464,7 @@ export default { ...@@ -464,7 +464,7 @@ export default {
if (GSAentities.length == 0) { if (GSAentities.length == 0) {
let entities = viewer.entities; let entities = viewer.entities;
console.log(entities, "entities"); console.log(entities, "entities");
this.uavModel = entities.getById(`model_${this.$uav.hardId}`); this.uavModel = entities.getById(`model_${this.$uav.deviceId}`);
console.log(this.uavModel, "this.uavModel"); console.log(this.uavModel, "this.uavModel");
if (this.uavModel) { if (this.uavModel) {
let time = Cesium.JulianDate.now(); let time = Cesium.JulianDate.now();
......
...@@ -27,12 +27,12 @@ ...@@ -27,12 +27,12 @@
<img class="left-bar-item__icon" src="./assets/images/ksjm.png" /> <img class="left-bar-item__icon" src="./assets/images/ksjm.png" />
<div class="left-bar-item__text">快速建模</div> <div class="left-bar-item__text">快速建模</div>
</div> --> </div> -->
<Face v-if="openFace" class="ai-dialog" :uavId="uav.hardId" @close="openFace = false" /> <Face v-if="openFace" class="ai-dialog" :uavId="uav.deviceId" @close="openFace = false" />
<Car v-if="openPlate" class="ai-dialog" :uavId="uav.hardId" @close="openPlate = false" /> <Car v-if="openPlate" class="ai-dialog" :uavId="uav.deviceId" @close="openPlate = false" />
<Traffic <Traffic
v-if="openTraffic" v-if="openTraffic"
class="ai-dialog" class="ai-dialog"
:uavId="uav.hardId" :uavId="uav.deviceId"
@close="openTraffic = false" @close="openTraffic = false"
/> />
<Jm v-if="openModeling" :device="device" class="jm-dialog" @close="openModeling = false"></Jm> <Jm v-if="openModeling" :device="device" class="jm-dialog" @close="openModeling = false"></Jm>
......
...@@ -86,7 +86,7 @@ export default { ...@@ -86,7 +86,7 @@ export default {
}, },
type: 531, type: 531,
}; };
let topic = `PX4/OBTAIN/${this.uav.hardId}`; let topic = `PX4/OBTAIN/${this.uav.deviceId}`;
this.$store.dispatch("MMCMQTT/publish", { this.$store.dispatch("MMCMQTT/publish", {
topic, topic,
data, data,
...@@ -105,7 +105,7 @@ export default { ...@@ -105,7 +105,7 @@ export default {
}, },
type: 531, type: 531,
}; };
let topic = `PX4/OBTAIN/${this.uav.hardId}`; let topic = `PX4/OBTAIN/${this.uav.deviceId}`;
this.$store.dispatch("MMCMQTT/publish", { this.$store.dispatch("MMCMQTT/publish", {
topic, topic,
data, data,
...@@ -124,7 +124,7 @@ export default { ...@@ -124,7 +124,7 @@ export default {
}, },
type: 531, type: 531,
}; };
let topic = `PX4/OBTAIN/${this.uav.hardId}`; let topic = `PX4/OBTAIN/${this.uav.deviceId}`;
this.$store.dispatch("MMCMQTT/publish", { this.$store.dispatch("MMCMQTT/publish", {
topic, topic,
data, data,
...@@ -143,7 +143,7 @@ export default { ...@@ -143,7 +143,7 @@ export default {
}, },
type: 531, type: 531,
}; };
let topic = `PX4/OBTAIN/${this.uav.hardId}`; let topic = `PX4/OBTAIN/${this.uav.deviceId}`;
this.$store.dispatch("MMCMQTT/publish", { this.$store.dispatch("MMCMQTT/publish", {
topic, topic,
data, data,
......
...@@ -60,7 +60,7 @@ export default { ...@@ -60,7 +60,7 @@ export default {
}, },
onClear() { onClear() {
let dataSet = this.$store.state.MMCMQTT.dataSet; let dataSet = this.$store.state.MMCMQTT.dataSet;
dataSet[this.uav.hardId][270] = null; dataSet[this.uav.deviceId][270] = null;
this.$store.commit("MMCMQTT/setState", { this.$store.commit("MMCMQTT/setState", {
key: "dataSet", key: "dataSet",
value: { value: {
......
...@@ -188,7 +188,7 @@ export default { ...@@ -188,7 +188,7 @@ export default {
endTime: this.search.endTime, endTime: this.search.endTime,
pageNo: this.search.pageNo, pageNo: this.search.pageNo,
pageSize: this.search.pageSize, pageSize: this.search.pageSize,
deviceHardId: this.uav.hardId, deviceHardId: this.uav.deviceId,
mark: this.type == "VPN" ? "公网" : this.type == "SPE" ? "专网" : "", mark: this.type == "VPN" ? "公网" : this.type == "SPE" ? "专网" : "",
}; };
this.flag = false; this.flag = false;
......
...@@ -104,7 +104,7 @@ ...@@ -104,7 +104,7 @@
/> />
<MountController <MountController
@webscoketFn="(data) => fun(data)" @webscoketFn="(data) => fun(data)"
v-if="uav && uav.hardId" v-if="uav && uav.deviceId"
ref="MountControllerRef" ref="MountControllerRef"
/> />
<AlarmLamp v-if="showAlarmLamp" :uav="uav" @close="showAlarmLamp = false" /> <AlarmLamp v-if="showAlarmLamp" :uav="uav" @close="showAlarmLamp = false" />
......
...@@ -5,14 +5,14 @@ ...@@ -5,14 +5,14 @@
class="timeStr" class="timeStr"
ref="timeStr" ref="timeStr"
:class="infoflag ? 'timeStrStyle' : ''" :class="infoflag ? 'timeStrStyle' : ''"
v-if="device.hardId" v-if="device.deviceId"
v-show="isInfoShow && !device.videos.osd" v-show="isInfoShow && !device.videos.osd"
>{{ timeStr || "" }}</div> >{{ timeStr || "" }}</div>
<div <div
class="wsDataleft" class="wsDataleft"
ref="wsDataleft" ref="wsDataleft"
:class="infoflag ? 'leftStyle' : ''" :class="infoflag ? 'leftStyle' : ''"
v-if="device.hardId" v-if="device.deviceId"
v-show="isInfoShow && !device.videos.osd" v-show="isInfoShow && !device.videos.osd"
> >
<div>经度:{{ wsData.longitude || 0 }}</div> <div>经度:{{ wsData.longitude || 0 }}</div>
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
class="wsDataright" class="wsDataright"
ref="wsDataright" ref="wsDataright"
:class="infoflag ? 'rightStyle' : ''" :class="infoflag ? 'rightStyle' : ''"
v-if="device.hardId" v-if="device.deviceId"
v-show="isInfoShow && !device.videos.osd" v-show="isInfoShow && !device.videos.osd"
> >
<div>盐城</div> <div>盐城</div>
......
...@@ -395,7 +395,7 @@ ...@@ -395,7 +395,7 @@
</div> </div>
</div> </div>
<FaceAI v-if="faceAiShow" :uavId="pid" @closeface="faceAiShow = false" /> <FaceAI v-if="faceAiShow" :uavId="pid" @closeface="faceAiShow = false" />
<CarAI v-if="carAiShow" :uavId="device.hardId" :list="carList" @closecar="carAiShow = false" /> <CarAI v-if="carAiShow" :uavId="device.deviceId" :list="carList" @closecar="carAiShow = false" />
<Traffic v-if="trafficShow" :trafficData="trafficData" @close="trafficShow = false" /> <Traffic v-if="trafficShow" :trafficData="trafficData" @close="trafficShow = false" />
<carTraffic <carTraffic
v-if="cartrafficShow" v-if="cartrafficShow"
...@@ -750,7 +750,7 @@ export default { ...@@ -750,7 +750,7 @@ export default {
}, },
async checkUseOperateFn(device) { async checkUseOperateFn(device) {
// 查看是否有控制权限 // 查看是否有控制权限
let res = await API.FCKERNEL.checkUseOperate({ hardId: device }); let res = await API.FCKERNEL.checkUseOperate({ deviceId: device });
if (res.code == 201) { if (res.code == 201) {
this.$message.warning(res.msg); this.$message.warning(res.msg);
return false; return false;
...@@ -763,7 +763,7 @@ export default { ...@@ -763,7 +763,7 @@ export default {
}, },
async VideoModelChange() { async VideoModelChange() {
let res = await API.FCKERNEL.checkUseOperate({ let res = await API.FCKERNEL.checkUseOperate({
hardId: this.device.hardId, deviceId: this.device.deviceId,
}); });
if (res.code == 201) { if (res.code == 201) {
this.$message.warning(res.msg); this.$message.warning(res.msg);
...@@ -820,11 +820,11 @@ export default { ...@@ -820,11 +820,11 @@ export default {
}, },
//车流密度 //车流密度
async carFrame() { async carFrame() {
this.carFlow(this.device.hardId); this.carFlow(this.device.deviceId);
}, },
//人流密度 //人流密度
async frame() { async frame() {
this.flow(this.device.hardId); this.flow(this.device.deviceId);
}, },
/** /**
* 截图 * 截图
...@@ -880,7 +880,7 @@ export default { ...@@ -880,7 +880,7 @@ export default {
//游泳识别 //游泳识别
async aiIdentifyType(aiType) { async aiIdentifyType(aiType) {
const data = { const data = {
hardId: this.device.hardId, deviceId: this.device.deviceId,
mqttType: true, mqttType: true,
aiType, aiType,
id: this.device.id, id: this.device.id,
...@@ -894,7 +894,7 @@ export default { ...@@ -894,7 +894,7 @@ export default {
const data = new FormData(); const data = new FormData();
data.append("addtime", dayjs().format("YYYY-MM-DD HH:mm:ss")); data.append("addtime", dayjs().format("YYYY-MM-DD HH:mm:ss"));
data.append("file", blob); data.append("file", blob);
data.append("hardId", this.device.hardId); data.append("deviceId", this.device.deviceId);
data.append("name", this.device.name); data.append("name", this.device.name);
data.append("imageType", 1); data.append("imageType", 1);
data.append("sortie", this.flightSortie || ""); data.append("sortie", this.flightSortie || "");
...@@ -922,7 +922,7 @@ export default { ...@@ -922,7 +922,7 @@ export default {
// 人脸车牌识别 // 人脸车牌识别
handle(command) { handle(command) {
// this.getcanvas(command); // this.getcanvas(command);
this.getcanvasFaceCar(command, this.device.hardId, this.device.id); this.getcanvasFaceCar(command, this.device.deviceId, this.device.id);
}, },
/** /**
* 居中 * 居中
...@@ -954,7 +954,7 @@ export default { ...@@ -954,7 +954,7 @@ export default {
// if mountStatus =1 代表启用 屏幕指点功能 // if mountStatus =1 代表启用 屏幕指点功能
if ( if (
mountData.mountStatus == 1 && mountData.mountStatus == 1 &&
device.hardId == mountData.hardId && device.deviceId == mountData.deviceId &&
mountData.moveType == "wrj" mountData.moveType == "wrj"
) { ) {
let evt = window.event || el; let evt = window.event || el;
...@@ -993,7 +993,7 @@ export default { ...@@ -993,7 +993,7 @@ export default {
let mounteList = { data: buffer, ...mountData }; let mounteList = { data: buffer, ...mountData };
if (buffer) { if (buffer) {
if (this.device.network === 1) { if (this.device.network === 1) {
let topic = "PX4/OBTAIN/" + this.device.hardId; let topic = "PX4/OBTAIN/" + this.device.deviceId;
this.$store.dispatch("MMCMQTT/publish", { this.$store.dispatch("MMCMQTT/publish", {
topic: topic, topic: topic,
data: { data: {
...@@ -1018,7 +1018,7 @@ export default { ...@@ -1018,7 +1018,7 @@ export default {
cmdBuffer: mounteList.data.join(","), cmdBuffer: mounteList.data.join(","),
cmdName: mounteList.name, cmdName: mounteList.name,
}, },
deviceHardId: mounteList.hardId, deviceHardId: mounteList.deviceId,
}; };
this.$store.dispatch("MMCGroundStation/publish", sendData); this.$store.dispatch("MMCGroundStation/publish", sendData);
} }
......
...@@ -15,18 +15,18 @@ ...@@ -15,18 +15,18 @@
/> />
</div> </div>
<div class="online-info"> <div class="online-info">
(共 {{data.online + data.offline}} (共 {{data.onLineCount + data.offLineCount}}
<span <span
class="ml10" class="ml10"
:class="{ online: data.online }" :class="{ online: data.onLineCount }"
>{{ data.online }} 在线</span> >{{ data.onLineCount }} 在线</span>
/ /
{{ data.offline }} 离线) {{ data.offLineCount }} 离线)
</div> </div>
</div> </div>
<div class="uav-item-child-box" :class="{ collapse: data.collapse }"> <div class="uav-item-child-box" :class="{ collapse: data.collapse }">
<Item <Item
v-for="child in data.childs" v-for="child in data.child"
:key="child.id" :key="child.id"
:data="child" :data="child"
:level="level+1" :level="level+1"
...@@ -34,20 +34,25 @@ ...@@ -34,20 +34,25 @@
/> />
<div <div
class="device-item-box" class="device-item-box"
:class="{ online: device.online == 1 }" :class="{ online: device.status == 1 }"
v-for="device in data.uavs" v-for="device in data.driveMonitorReqVOList"
:key="`device_${device.id}`" :key="`device_${device.deviceId}`"
> >
<div class="device-name"> <div class="device-name">
<!-- <span
style="margin-right:10px"
:class="device.status==1&&device.currentOperator==1? 'blue' : device.status==1&&device.currentOperator!=1 ?'yellow':'' "
:title="device.name"
>{{device.name}}</span> -->
<span <span
style="margin-right:10px" style="margin-right:10px"
:class="device.online==1&&device.currentOperator==1? 'blue' : device.online==1&&device.currentOperator!=1 ?'yellow':'' " :class="'blue'"
:title="device.name" :title="device.name"
>{{device.name}}</span> >{{device.name}}</span>
<span style="color:#31DB24 " class="dib" v-if=" device.online == 1 ">(在线)</span> <span style="color:#31DB24 " class="dib" v-if=" device.status == 1 ">(在线)</span>
<span v-else class="dib">(离线)</span> <span v-else class="dib">(离线)</span>
<div class="symbol-icon-box"> <div class="symbol-icon-box">
<template v-if="device.modelName && device.modelName.includes('入云龙1')"> <!-- <template v-if="device.modelName && device.modelName.includes('入云龙1')">
<div class="uav_version status-icon cp"> <div class="uav_version status-icon cp">
<img src="./assets/images/I.svg" /> <img src="./assets/images/I.svg" />
</div> </div>
...@@ -62,25 +67,31 @@ ...@@ -62,25 +67,31 @@
<div class="uav_version status-icon cp"> <div class="uav_version status-icon cp">
<img src="./assets/images/cq.svg" /> <img src="./assets/images/cq.svg" />
</div> </div>
</template> -->
<template>
<div class="uav_version status-icon cp">
<img src="./assets/images/I.svg" />
<img src="./assets/images/I.svg" />
</div>
</template> </template>
</div> </div>
</div> </div>
<div class="device-fns"> <div class="device-fns">
<div <div
class="iconfont icon-luxiang_xianxing" class="iconfont icon-luxiang_xianxing"
:class="{ active: uav && device.id === uav.id && uav.showPlayer }" :class="{ active: uav && device.deviceId === uav.deviceId && uav.showPlayer }"
title="视频" title="视频"
@click="onShowPlayer(device)" @click="onShowPlayer(device)"
></div> ></div>
<div <div
v-if="device.online" v-if="device.status"
class="iconfont icon-kongzhi_xianxing" class="iconfont icon-kongzhi_xianxing"
:class="{ active: uav && device.id === uav.id && uav.showPanel }" :class="{ active: uav && device.deviceId === uav.deviceId && uav.showPanel }"
title="控制面板" title="控制面板"
@click="onShowPanel(device)" @click="onShowPanel(device)"
></div> ></div>
<div class="jieg" title="接管无人机 " v-if="device.online" @click="onTakeOver(device)"> <div class="jieg" title="接管无人机 " v-if="device.status" @click="onTakeOver(device)">
<img src="./assets/images/jieguan_active.svg" v-if="device.currentOperator" /> <img src="./assets/images/jieguan_active.svg" v-if="device.currentOperator" />
<img src="./assets/images/jieguan.svg" v-else /> <img src="./assets/images/jieguan.svg" v-else />
</div> </div>
...@@ -181,7 +192,7 @@ export default { ...@@ -181,7 +192,7 @@ export default {
*/ */
async onShowPanel(item) { async onShowPanel(item) {
// 选中与取消选中 // 选中与取消选中
if (this.uav?.hardId === item.hardId) { if (this.uav?.deviceId === item.deviceId) {
// 已打开播放器的情况下只需要展示数据面板 // 已打开播放器的情况下只需要展示数据面板
if (this.showPlayer && !this.showPanel) { if (this.showPlayer && !this.showPanel) {
this.$store.commit("MMCFlightControlCenter/uav/setState", { this.$store.commit("MMCFlightControlCenter/uav/setState", {
...@@ -215,12 +226,6 @@ export default { ...@@ -215,12 +226,6 @@ export default {
if (this.uav) { if (this.uav) {
this.$store.dispatch("MMCFlightControlCenter/uav/unsubscribe"); this.$store.dispatch("MMCFlightControlCenter/uav/unsubscribe");
} }
if (!item.streamConfiguration) {
let res = await Control_API.uavDetail({
id: item.id,
});
item.streamConfiguration = res.data.streamConfiguration;
}
this.$store.commit("MMCFlightControlCenter/uav/setState", { this.$store.commit("MMCFlightControlCenter/uav/setState", {
key: "showPanel", key: "showPanel",
value: true, value: true,
...@@ -258,7 +263,7 @@ export default { ...@@ -258,7 +263,7 @@ export default {
*/ */
async onShowPlayer(item) { async onShowPlayer(item) {
// 选中与取消选中 // 选中与取消选中
if (this.uav?.hardId === item.hardId) { if (this.uav?.deviceId === item.deviceId) {
if (this.showPlayer) { if (this.showPlayer) {
// 已显示播放器则关掉 // 已显示播放器则关掉
this.$store.commit("MMCFlightControlCenter/uav/setState", { this.$store.commit("MMCFlightControlCenter/uav/setState", {
...@@ -279,11 +284,11 @@ export default { ...@@ -279,11 +284,11 @@ export default {
} }
} else { } else {
// 在未打开播放器的情况下,有uav信息,到此步时肯定已经展开了面板,判断是否有流媒体信息, 并显示播放器 // 在未打开播放器的情况下,有uav信息,到此步时肯定已经展开了面板,判断是否有流媒体信息, 并显示播放器
if (!this.uav.streamConfiguration) { if (!this.uav.deviceStreamReqVOList) {
let res = await Control_API.uavDetail({ let res = await Control_API.uavDetail({
id: item.id, id: item.id,
}); });
item.streamConfiguration = res.data.streamConfiguration; item.deviceStreamReqVOList = res.data.deviceStreamReqVOList;
} }
this.$store.commit("MMCFlightControlCenter/uav/setState", { this.$store.commit("MMCFlightControlCenter/uav/setState", {
key: "showPlayer", key: "showPlayer",
...@@ -315,7 +320,7 @@ export default { ...@@ -315,7 +320,7 @@ export default {
let res = await Control_API.uavDetail({ let res = await Control_API.uavDetail({
id: item.id, id: item.id,
}); });
item.streamConfiguration = res.data.streamConfiguration; item.deviceStreamReqVOList = res.data.deviceStreamReqVOList;
this.$store.commit("MMCFlightControlCenter/uav/setState", { this.$store.commit("MMCFlightControlCenter/uav/setState", {
key: "showPlayer", key: "showPlayer",
value: true, value: true,
......
...@@ -3,11 +3,11 @@ export default { ...@@ -3,11 +3,11 @@ export default {
computed: { computed: {
// mqtt实时数据 // mqtt实时数据
mqttDataSet() { mqttDataSet() {
return this.$store.state.MMCMQTT?.dataSet?.[this.uav?.hardId]; return this.$store.state.MMCMQTT?.dataSet?.[this.uav?.deviceId];
}, },
// 地面站实时数据 // 地面站实时数据
gsDataSet() { gsDataSet() {
return this.$store.state.MMCGroundStation?.dataSet?.[this.uav?.hardId]; return this.$store.state.MMCGroundStation?.dataSet?.[this.uav?.deviceId];
}, },
mqttUrl() { mqttUrl() {
return this.$store.getters["MMCFlightControlCenter/mqttUrl"]; return this.$store.getters["MMCFlightControlCenter/mqttUrl"];
......
...@@ -193,7 +193,7 @@ export default { ...@@ -193,7 +193,7 @@ export default {
}); });
this.$store.commit("MMCFlightControlCenter/setState", { this.$store.commit("MMCFlightControlCenter/setState", {
key: "token", key: "token",
value: this.userInfo.token, value: this.userInfo.accessToken,
}); });
this.$store.commit("MMCFlightControlCenter/setState", { this.$store.commit("MMCFlightControlCenter/setState", {
key: "userInfo", key: "userInfo",
......
...@@ -116,17 +116,17 @@ const actions = { ...@@ -116,17 +116,17 @@ const actions = {
*/ */
subscribe({ state, dispatch }) { subscribe({ state, dispatch }) {
window.$mmc.$store.dispatch("MMCMQTT/subscribe", { window.$mmc.$store.dispatch("MMCMQTT/subscribe", {
topic: "APRON/RECEIVE/" + state.hangar.hardId, topic: "APRON/RECEIVE/" + state.hangar.deviceId,
callback(ok) { callback(ok) {
ok && ok &&
console.log("mqtt订阅主题", "APRON/RECEIVE/" + state.hangar.hardId); console.log("mqtt订阅主题", "APRON/RECEIVE/" + state.hangar.deviceId);
}, },
}); });
window.$mmc.$store.dispatch("MMCMQTT/subscribe", { window.$mmc.$store.dispatch("MMCMQTT/subscribe", {
topic: "PROCESS/RECEIVE/" + state.hangar.hardId, topic: "PROCESS/RECEIVE/" + state.hangar.deviceId,
callback(ok) { callback(ok) {
ok && ok &&
console.log("mqtt订阅主题", "PROCESS/RECEIVE/" + state.hangar.hardId); console.log("mqtt订阅主题", "PROCESS/RECEIVE/" + state.hangar.deviceId);
}, },
}); });
}, },
...@@ -136,22 +136,22 @@ const actions = { ...@@ -136,22 +136,22 @@ const actions = {
*/ */
unsubscribe({ state, dispatch }) { unsubscribe({ state, dispatch }) {
window.$mmc.$store.dispatch("MMCMQTT/unsubscribe", { window.$mmc.$store.dispatch("MMCMQTT/unsubscribe", {
topic: "APRON/RECEIVE/" + state.hangar.hardId, topic: "APRON/RECEIVE/" + state.hangar.deviceId,
callback(ok) { callback(ok) {
ok && ok &&
console.log( console.log(
"mqtt取消订阅主题", "mqtt取消订阅主题",
"APRON/RECEIVE/" + state.hangar.hardId "APRON/RECEIVE/" + state.hangar.deviceId
); );
}, },
}); });
window.$mmc.$store.dispatch("MMCMQTT/unsubscribe", { window.$mmc.$store.dispatch("MMCMQTT/unsubscribe", {
topic: "PROCESS/RECEIVE/" + state.hangar.hardId, topic: "PROCESS/RECEIVE/" + state.hangar.deviceId,
callback(ok) { callback(ok) {
ok && ok &&
console.log( console.log(
"mqtt取消订阅主题", "mqtt取消订阅主题",
"PROCESS/RECEIVE/" + state.hangar.hardId "PROCESS/RECEIVE/" + state.hangar.deviceId
); );
}, },
}); });
...@@ -178,7 +178,7 @@ const actions = { ...@@ -178,7 +178,7 @@ const actions = {
*/ */
out({ state, commit, dispatch }, data) { out({ state, commit, dispatch }, data) {
window.$mmc.$store.dispatch("MMCMQTT/publish", { window.$mmc.$store.dispatch("MMCMQTT/publish", {
topic: "PROCESS/OBTAIN/" + state.hangar.hardId, topic: "PROCESS/OBTAIN/" + state.hangar.deviceId,
data: { data: {
cmdControlType: 2059, cmdControlType: 2059,
}, },
...@@ -194,7 +194,7 @@ const actions = { ...@@ -194,7 +194,7 @@ const actions = {
*/ */
in({ state, commit, dispatch }, data) { in({ state, commit, dispatch }, data) {
window.$mmc.$store.dispatch("MMCMQTT/publish", { window.$mmc.$store.dispatch("MMCMQTT/publish", {
topic: "PROCESS/OBTAIN/" + state.hangar.hardId, topic: "PROCESS/OBTAIN/" + state.hangar.deviceId,
data: { data: {
cmdControlType: 2073, cmdControlType: 2073,
}, },
...@@ -210,7 +210,7 @@ const actions = { ...@@ -210,7 +210,7 @@ const actions = {
*/ */
chargeStart({ state, commit, dispatch }, data) { chargeStart({ state, commit, dispatch }, data) {
window.$mmc.$store.dispatch("MMCMQTT/publish", { window.$mmc.$store.dispatch("MMCMQTT/publish", {
topic: "PROCESS/OBTAIN/" + state.hangar.hardId, topic: "PROCESS/OBTAIN/" + state.hangar.deviceId,
data: { data: {
cmdControlType: 2060, cmdControlType: 2060,
}, },
...@@ -226,7 +226,7 @@ const actions = { ...@@ -226,7 +226,7 @@ const actions = {
*/ */
chargeEnd({ state, commit, dispatch }, data) { chargeEnd({ state, commit, dispatch }, data) {
window.$mmc.$store.dispatch("MMCMQTT/publish", { window.$mmc.$store.dispatch("MMCMQTT/publish", {
topic: "PROCESS/OBTAIN/" + state.hangar.hardId, topic: "PROCESS/OBTAIN/" + state.hangar.deviceId,
data: { data: {
cmdControlType: 2071, cmdControlType: 2071,
}, },
...@@ -242,7 +242,7 @@ const actions = { ...@@ -242,7 +242,7 @@ const actions = {
*/ */
warmUp({ state, commit, dispatch }, data) { warmUp({ state, commit, dispatch }, data) {
window.$mmc.$store.dispatch("MMCMQTT/publish", { window.$mmc.$store.dispatch("MMCMQTT/publish", {
topic: "PROCESS/OBTAIN/" + state.hangar.hardId, topic: "PROCESS/OBTAIN/" + state.hangar.deviceId,
data: { data: {
cmdControlType: 2072, cmdControlType: 2072,
}, },
...@@ -258,7 +258,7 @@ const actions = { ...@@ -258,7 +258,7 @@ const actions = {
*/ */
dormancy({ state, commit, dispatch }, data) { dormancy({ state, commit, dispatch }, data) {
window.$mmc.$store.dispatch("MMCMQTT/publish", { window.$mmc.$store.dispatch("MMCMQTT/publish", {
topic: "PROCESS/OBTAIN/" + state.hangar.hardId, topic: "PROCESS/OBTAIN/" + state.hangar.deviceId,
data: { data: {
cmdControlType: 2061, cmdControlType: 2061,
}, },
...@@ -274,7 +274,7 @@ const actions = { ...@@ -274,7 +274,7 @@ const actions = {
*/ */
processExit({ state, commit, dispatch }, data) { processExit({ state, commit, dispatch }, data) {
window.$mmc.$store.dispatch("MMCMQTT/publish", { window.$mmc.$store.dispatch("MMCMQTT/publish", {
topic: "PROCESS/OBTAIN/" + state.hangar.hardId, topic: "PROCESS/OBTAIN/" + state.hangar.deviceId,
data: { data: {
cmdControlType: 100001, cmdControlType: 100001,
}, },
...@@ -294,15 +294,15 @@ const actions = { ...@@ -294,15 +294,15 @@ const actions = {
// 生成架次號 // 生成架次號
const getFlightSortic = await Control_API.getFlightSortic({ const getFlightSortic = await Control_API.getFlightSortic({
taskId: state.airlineData.id, taskId: state.airlineData.id,
deviceHardId: data.uav.hardId, deviceHardId: data.uav.deviceId,
}); });
// 一键任务指令 // 一键任务指令
const waypointList = state.airlineData?.content; const waypointList = state.airlineData?.content;
window.$mmc.$store.dispatch("MMCMQTT/publish", { window.$mmc.$store.dispatch("MMCMQTT/publish", {
topic: "PROCESS/OBTAIN/" + state.hangar.hardId, topic: "PROCESS/OBTAIN/" + state.hangar.deviceId,
data: { data: {
cmdControlType: 100004, cmdControlType: 100004,
uavDeviceId: data.uav.hardId, uavDeviceId: data.uav.deviceId,
wayLineObj: { wayLineObj: {
taskId: state.airlineData.id, taskId: state.airlineData.id,
flightSortiesID: getFlightSortic.data, flightSortiesID: getFlightSortic.data,
......
...@@ -47,7 +47,8 @@ ...@@ -47,7 +47,8 @@
}, },
"rules": { "rules": {
"vue/multi-word-component-names": "off", "vue/multi-word-component-names": "off",
"no-undef": "off" "no-undef": "off",
"no-debugger": "off"
} }
}, },
"browserslist": [ "browserslist": [
......
...@@ -28,9 +28,9 @@ ...@@ -28,9 +28,9 @@
<iframe <iframe
id="iframe" id="iframe"
ref="iframe" ref="iframe"
src="https://localhost:9000/" src="http://localhost:9000/"
style="width: 1920px; height: 1000px;" style="width: 1920px; height: 1000px;"
anonymous anonymous
allowfullscreen="true" allowfullscreen="true"
></iframe> ></iframe>
</div> </div>
...@@ -87,7 +87,7 @@ export default { ...@@ -87,7 +87,7 @@ export default {
data() { data() {
return { return {
isIframeReady: false, //是否接收到iframe里的ready事件 isIframeReady: false, //是否接收到iframe里的ready事件
baseUrl: "https://test.tmj.mmcuav.cn", baseUrl: "http://192.168.5.80:30080",
devMode: false, devMode: false,
scene1: false, // 场景类型 true: 无人机 false: 机库 scene1: false, // 场景类型 true: 无人机 false: 机库
useSTLAirway: false, // 使用标准航线库 useSTLAirway: false, // 使用标准航线库
...@@ -184,13 +184,13 @@ export default { ...@@ -184,13 +184,13 @@ export default {
immediate: true, immediate: true,
handler() { handler() {
if (this.devMode) { if (this.devMode) {
this.account = "mmctest@admin"; this.account = "admin";
this.password = "test@Admin001"; this.password = "mmc@123456";
this.baseUrl = "https://test.tmj.mmcuav.cn"; this.baseUrl = "http://192.168.5.80:30080";
} else { } else {
this.account = "mmcadmin@kbt001"; this.account = "admin";
this.password = "TMJMMC@kbta0227&adm"; this.password = "mmc@123456";
this.baseUrl = "https://tmj.mmcuav.cn"; this.baseUrl = "http://192.168.5.80:30080";
} }
this.postIframe({ this.postIframe({
type: "param", type: "param",
...@@ -635,25 +635,20 @@ export default { ...@@ -635,25 +635,20 @@ export default {
let formData = new FormData(); let formData = new FormData();
formData.append("userAccount", this.account); formData.append("userAccount", this.account);
formData.append("password", Base64.encode(this.password)); formData.append("password", Base64.encode(this.password));
let res1 = await fetch(this.baseUrl + "/crm/login", { let res = await fetch(this.baseUrl + "/admin-api/system/auth/login", {
method: "post", method: "post",
headers: { headers: {
// "Content-Type": "multipart/form-data", "Content-Type": "application/json",
"Tenant-Id": 1,
"terminal": 2
}, },
body: formData, body: JSON.stringify({
username: this.account,
password: this.password,
}),
}); });
let data1 = await res1.json(); this.userInfo = (await res.json()).data;
this.init();
if (data1.code == 200) {
await fetch(this.baseUrl + "/crm/user/platformPermission", {
method: "get",
headers: {
Token: data1.data.token,
},
});
this.userInfo = data1.data;
this.init();
}
}, },
}, },
}; };
......
...@@ -15,7 +15,7 @@ module.exports = defineConfig({ ...@@ -15,7 +15,7 @@ module.exports = defineConfig({
], ],
}, },
devServer: { devServer: {
https: true, https: false,
client: { client: {
overlay: false, overlay: false,
}, },
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论