Browse Source

更新useMessage组件

抽离guid方法
master
DIAMOND 9 months ago
parent
commit
9428791901
  1. 12
      src/components/earthMap/KeyControlAreaList.vue
  2. 6
      src/components/earthMap/RoamPathList.vue
  3. 14
      src/components/earthMap/Toolbar.vue
  4. 14
      src/components/earthMap/ToolbarShow.vue
  5. 10
      src/components/earthMap/VideoControl.vue
  6. 6
      src/components/earthMap/WarnInfoList.vue
  7. 21
      src/components/earthMap/toolbar/AddKeyControlArea.vue
  8. 40
      src/components/earthMap/toolbar/AddModelWin.vue
  9. 23
      src/components/earthMap/toolbar/AddRoamPath.vue
  10. 29
      src/components/earthMap/toolbar/AddroamVideo.vue
  11. 27
      src/components/earthMap/toolbar/CreateModel.vue
  12. 4
      src/components/earthMap/toolbar/NotificationModel.vue
  13. 5
      src/components/earthMap/toolbar/WarnList.vue
  14. 8
      src/utils/earthMap/guid.ts
  15. 62
      src/utils/earthMap/handleNodeType.ts
  16. 2
      src/utils/earthMap/keyControlInit.ts
  17. 437
      src/utils/earthMap/websocket.ts
  18. 2608
      src/views/earthMap/edit/EarthComp copy.vue
  19. 207
      src/views/earthMap/edit/EarthComp.vue
  20. 2
      src/views/military/modules/duty/DutySet.vue
  21. 2
      src/views/military/modules/dutyManage/duty/DutySet.vue
  22. 2
      src/views/military/modules/equipment/camera/CameraSet.vue
  23. 2
      src/views/military/modules/eventManage/emergencyPlan/components/MsEmergencyPlanForm.vue

12
src/components/earthMap/KeyControlAreaList.vue

@ -55,6 +55,7 @@
import BTable from '@/components/earthMap/components/B-table.vue'; import BTable from '@/components/earthMap/components/B-table.vue';
import { addArrow, addCustomPrimitive, addRoamPath } from '@/utils/earthMap/earthObj'; import { addArrow, addCustomPrimitive, addRoamPath } from '@/utils/earthMap/earthObj';
import AddKeyControlArea from '@/components/earthMap/toolbar/AddKeyControlArea.vue'; import AddKeyControlArea from '@/components/earthMap/toolbar/AddKeyControlArea.vue';
import { useMessage } from "/@/hooks/web/useMessage";
export default defineComponent({ export default defineComponent({
name: 'KeyControlAreaList', name: 'KeyControlAreaList',
props: { props: {
@ -70,6 +71,7 @@
}, },
setup(props, ctx) { setup(props, ctx) {
const { proxy }: any = getCurrentInstance(); const { proxy }: any = getCurrentInstance();
const { createMessage } = useMessage();
const userStore = useUserStore(); const userStore = useUserStore();
const store = useEarthMapStore(); const store = useEarthMapStore();
let winVisible = ref(true); // let winVisible = ref(true); //
@ -184,7 +186,7 @@
(err) => {} (err) => {}
) )
.catch((res) => { .catch((res) => {
proxy.$message.error('获取列表失败!'); createMessage.error('获取列表失败!');
console.error('获取列表失败!', res); console.error('获取列表失败!', res);
}); });
} }
@ -250,8 +252,7 @@
if (model) { if (model) {
viewer.flyTo(model); viewer.flyTo(model);
} else { } else {
// Msg.error(', '); createMessage.error('该区域不存在, 请刷新页面重试');
proxy.$message.error('该区域不存在, 请刷新页面重试');
} }
} }
@ -275,8 +276,7 @@
if (model) { if (model) {
viewer.entities.remove(model); viewer.entities.remove(model);
} else { } else {
// Msg.error(', '); createMessage.error('该区域不存在, 请刷新页面重试');
proxy.$message.error('该区域不存在, 请刷新页面重试');
} }
// //
@ -287,7 +287,7 @@
getKeyControlAreaList(); getKeyControlAreaList();
}) })
.catch((res) => { .catch((res) => {
proxy.$message.error('删除失败!'); createMessage.error('删除失败!');
console.error('删除失败!', res); console.error('删除失败!', res);
}); });
} }

6
src/components/earthMap/RoamPathList.vue

@ -67,6 +67,7 @@
import BTable from '@/components/earthMap/components/B-table.vue'; import BTable from '@/components/earthMap/components/B-table.vue';
import AddRoamPathSet from '@/components/earthMap/toolbar/AddRoamPath.vue'; import AddRoamPathSet from '@/components/earthMap/toolbar/AddRoamPath.vue';
import { addArrow, addCustomPrimitive, addRoamPath } from '@/utils/earthMap/earthObj'; import { addArrow, addCustomPrimitive, addRoamPath } from '@/utils/earthMap/earthObj';
import { useMessage } from "/@/hooks/web/useMessage";
export default defineComponent({ export default defineComponent({
name: 'RoamPathList', name: 'RoamPathList',
props: { props: {
@ -82,6 +83,7 @@
}, },
setup(props, ctx) { setup(props, ctx) {
const { proxy }: any = getCurrentInstance(); const { proxy }: any = getCurrentInstance();
const { createMessage } = useMessage();
const userStore = useUserStore(); const userStore = useUserStore();
const store = useEarthMapStore(); const store = useEarthMapStore();
let heightCoefficient = ref(0.5); // let heightCoefficient = ref(0.5); //
@ -391,7 +393,7 @@
(err) => {} (err) => {}
) )
.catch((res) => { .catch((res) => {
proxy.$message.error('删除失败!'); createMessage.error('删除失败!')
console.error('删除失败!', res); console.error('删除失败!', res);
}); });
}); });
@ -424,7 +426,7 @@
(err) => {} (err) => {}
) )
.catch((res) => { .catch((res) => {
proxy.$message.error('获取路径列表失败!'); createMessage.error('获取路径列表失败!')
console.error('获取路径列表失败!', res); console.error('获取路径列表失败!', res);
}); });
} }

14
src/components/earthMap/Toolbar.vue

@ -211,8 +211,6 @@
onMounted(() => { onMounted(() => {
// console.log("asdsdfsdfsdfsdfsdf"); // console.log("asdsdfsdfsdfsdfsdf");
// proxy.$message.info('')
getEventData(); getEventData();
window.getEventData = getEventData; window.getEventData = getEventData;
{ {
@ -404,23 +402,19 @@
// this.mapObj_ = window.$earth.sceneTree.$refs.tdtwxsj; // this.mapObj_ = window.$earth.sceneTree.$refs.tdtwxsj;
break; break;
case 'bdha': case 'bdha':
// $mitt.emit('openNotification', '', 2, 'warning') createMessage.warning('暂未开放该地图!', 2);
$mitt.emit('openNotification', { msg: '暂未开放该地图!', dt: 2, type: 'warning' });
// this.mapObj_ = window.$earth.sceneTree.$refs.bdha; // this.mapObj_ = window.$earth.sceneTree.$refs.bdha;
break; break;
case 'gdsl': case 'gdsl':
// $mitt.emit('openNotification', '', 2, 'warning') createMessage.warning('暂未开放该地图!', 2);
$mitt.emit('openNotification', { msg: '暂未开放该地图!', dt: 2, type: 'warning' });
// this.mapObj_ = window.$earth.sceneTree.$refs.gdsl; // this.mapObj_ = window.$earth.sceneTree.$refs.gdsl;
break; break;
case 'gdwx': case 'gdwx':
// $mitt.emit('openNotification', '', 2, 'warning') createMessage.warning('暂未开放该地图!', 2);
$mitt.emit('openNotification', { msg: '暂未开放该地图!', dt: 2, type: 'warning' });
// this.mapObj_ = window.$earth.sceneTree.$refs.gdwx; // this.mapObj_ = window.$earth.sceneTree.$refs.gdwx;
break; break;
case 'sjgkdt': case 'sjgkdt':
// $mitt.emit('openNotification', '', 2, 'warning') createMessage.warning('暂未开放该地图!', 2);
$mitt.emit('openNotification', { msg: '暂未开放该地图!', dt: 2, type: 'warning' });
// this.mapObj_ = window.$earth.sceneTree.$refs.sjgkdt; // this.mapObj_ = window.$earth.sceneTree.$refs.sjgkdt;
break; break;
default: default:

14
src/components/earthMap/ToolbarShow.vue

@ -203,9 +203,7 @@
}); });
onMounted(() => { onMounted(() => {
// console.log("asdsdfsdfsdfsdfsdf");
// proxy.$message.info('')
getEventData(); getEventData();
window.getEventData = getEventData; window.getEventData = getEventData;
{ {
@ -392,23 +390,19 @@
// this.mapObj_ = window.$earth.sceneTree.$refs.tdtwxsj; // this.mapObj_ = window.$earth.sceneTree.$refs.tdtwxsj;
break; break;
case 'bdha': case 'bdha':
// $mitt.emit('openNotification', '', 2, 'warning') createMessage.warning('暂未开放该地图!', 2);
$mitt.emit('openNotification', { msg: '暂未开放该地图!', dt: 2, type: 'warning' });
// this.mapObj_ = window.$earth.sceneTree.$refs.bdha; // this.mapObj_ = window.$earth.sceneTree.$refs.bdha;
break; break;
case 'gdsl': case 'gdsl':
// $mitt.emit('openNotification', '', 2, 'warning') createMessage.warning('暂未开放该地图!', 2);
$mitt.emit('openNotification', { msg: '暂未开放该地图!', dt: 2, type: 'warning' });
// this.mapObj_ = window.$earth.sceneTree.$refs.gdsl; // this.mapObj_ = window.$earth.sceneTree.$refs.gdsl;
break; break;
case 'gdwx': case 'gdwx':
// $mitt.emit('openNotification', '', 2, 'warning') createMessage.warning('暂未开放该地图!', 2);
$mitt.emit('openNotification', { msg: '暂未开放该地图!', dt: 2, type: 'warning' });
// this.mapObj_ = window.$earth.sceneTree.$refs.gdwx; // this.mapObj_ = window.$earth.sceneTree.$refs.gdwx;
break; break;
case 'sjgkdt': case 'sjgkdt':
// $mitt.emit('openNotification', '', 2, 'warning') createMessage.warning('暂未开放该地图!', 2);
$mitt.emit('openNotification', { msg: '暂未开放该地图!', dt: 2, type: 'warning' });
// this.mapObj_ = window.$earth.sceneTree.$refs.sjgkdt; // this.mapObj_ = window.$earth.sceneTree.$refs.sjgkdt;
break; break;
default: default:

10
src/components/earthMap/VideoControl.vue

@ -98,6 +98,7 @@
import * as ysApi from '@/api/yushiApi'; import * as ysApi from '@/api/yushiApi';
import $mitt from '@/utils/earthMap/mitt'; import $mitt from '@/utils/earthMap/mitt';
import { defHttp } from '/@/utils/http/axios'; import { defHttp } from '/@/utils/http/axios';
import { useMessage } from '/@/hooks/web/useMessage';
export default defineComponent({ export default defineComponent({
name: 'VideoControl', name: 'VideoControl',
props: ['cameraCode', 'visibleChild', 'user', 'password'], props: ['cameraCode', 'visibleChild', 'user', 'password'],
@ -105,6 +106,7 @@
// ImgListDialog // ImgListDialog
}, },
setup(props) { setup(props) {
const { createMessage } = useMessage();
const { proxy }: any = getCurrentInstance(); const { proxy }: any = getCurrentInstance();
// const $mitt = mitt(); // const $mitt = mitt();
let currentStep = ref(5); let currentStep = ref(5);
@ -182,14 +184,10 @@
) )
// postAction(this.url.screenSnap, newInfo) // postAction(this.url.screenSnap, newInfo)
.then(() => { .then(() => {
// $mitt.emit('openNotification', '!', 2, 'success', '50px') createMessage.success('抓拍图片保存成功', 2);
// $mitt.emit('openNotification',{msg: '!', dt: 2, type:'success', top: '50px'} )
proxy.$message.success('抓拍图片保存成功!');
}) })
.catch(() => { .catch(() => {
// $mitt.emit('openNotification', '!', 2, 'error', '50px') createMessage.error('抓拍图片保存失败!', 2);
// $mitt.emit('openNotification',{msg: '!', dt: 2, type:'error', top: '50px'} )
proxy.$message.error('抓拍图片保存失败!');
}); });
}); });
} }

6
src/components/earthMap/WarnInfoList.vue

@ -140,6 +140,7 @@
import _ from 'lodash'; import _ from 'lodash';
import ScrollBoardTable from '@/components/earthMap/components/Scroll-board-table.vue'; import ScrollBoardTable from '@/components/earthMap/components/Scroll-board-table.vue';
import MsWarnModal from '@/views/military/modules/alarmManage/cautionManage/components/MsPreWarnModal.vue'; import MsWarnModal from '@/views/military/modules/alarmManage/cautionManage/components/MsPreWarnModal.vue';
import { useMessage } from "/@/hooks/web/useMessage";
export default defineComponent({ export default defineComponent({
name: 'infoList', name: 'infoList',
props: {}, props: {},
@ -148,6 +149,7 @@
MsWarnModal, MsWarnModal,
}, },
setup(props, ctx) { setup(props, ctx) {
const { createMessage } = useMessage();
const { proxy }: any = getCurrentInstance(); const { proxy }: any = getCurrentInstance();
let store = useMonitorStore(); let store = useMonitorStore();
//ref //ref
@ -517,9 +519,7 @@
function showPhotos(url) { function showPhotos(url) {
if (objectIsNull(url)) { if (objectIsNull(url)) {
// $mitt.emit('openNotification', '', 2, 'warning') createMessage.warning('暂无数据', 2);
// $mitt.emit('openNotification', { msg: '', dt: 2, type: 'warning' })
proxy.$message.warning('暂无数据');
return; return;
} }
images.value = handleImageList(url); images.value = handleImageList(url);

21
src/components/earthMap/toolbar/AddKeyControlArea.vue

@ -81,6 +81,7 @@
import { useEarthMapStore } from '/@/store/modules/earthMap'; import { useEarthMapStore } from '/@/store/modules/earthMap';
import _ from 'lodash'; import _ from 'lodash';
import { getDictItems } from '/@/api/common/api'; import { getDictItems } from '/@/api/common/api';
import { useMessage } from "/@/hooks/web/useMessage";
export default defineComponent({ export default defineComponent({
name: 'AddKeyControlArea', name: 'AddKeyControlArea',
@ -100,6 +101,7 @@
}, },
}, },
setup(props, ctx) { setup(props, ctx) {
const { createMessage } = useMessage();
const { proxy }: any = getCurrentInstance(); const { proxy }: any = getCurrentInstance();
const userStore = useUserStore(); const userStore = useUserStore();
const store = useEarthMapStore(); const store = useEarthMapStore();
@ -325,12 +327,10 @@
// //
function confirmBtn() { function confirmBtn() {
if (!areaObj.value) { if (!areaObj.value) {
// return $mitt.emit('openNotification', { msg: '', dt: 2, type: 'warning', top: '50px' }) return createMessage.warning('请先完成创建', 2);
return proxy.$message.warning('请先完成创建');
} }
if (!area.value.name) { if (!area.value.name) {
// return $mitt.emit('openNotification', { msg: '', dt: 2, type: 'warning', top: '50px' }) return createMessage.warning('请输入名称', 2);
return proxy.$message.warning('请输入名称');
} }
// //
@ -359,8 +359,7 @@
) )
.then((res) => { .then((res) => {
if (res.success) { if (res.success) {
// $mitt.emit('openNotification', { msg: '', dt: 2, type: 'success', top: '50px' }) createMessage.success('编辑成功');
proxy.$message.success('编辑成功');
// //
window?.$earth.czm.viewer.entities.remove(oldAreaFence.value); window?.$earth.czm.viewer.entities.remove(oldAreaFence.value);
// sessionStorage // sessionStorage
@ -386,8 +385,7 @@
} }
}) })
.catch((res) => { .catch((res) => {
// $mitt.emit('openNotification', { msg: '', dt: 2, type: 'error', top: '50px' }) createMessage.error('编辑失败!');
proxy.$message.error('编辑失败!');
console.error('编辑失败!', res); console.error('编辑失败!', res);
}); });
} }
@ -404,9 +402,7 @@
) )
.then((res) => { .then((res) => {
if (res.success) { if (res.success) {
// Msg.success(""); createMessage.success('创建成功');
// $mitt.emit('openNotification', { msg: '', dt: 2, type: 'success', top: '50px' })
proxy.$message.success('创建成功');
// sessionStorage // sessionStorage
let keyControlAreaListStr = sessionStorage.getItem('keyControlAreaList'); let keyControlAreaListStr = sessionStorage.getItem('keyControlAreaList');
let keyControlAreaList: any = JSON.parse(keyControlAreaListStr ? keyControlAreaListStr : 'null'); let keyControlAreaList: any = JSON.parse(keyControlAreaListStr ? keyControlAreaListStr : 'null');
@ -424,8 +420,7 @@
} }
}) })
.catch((res) => { .catch((res) => {
// $mitt.emit('openNotification', { msg: '', dt: 2, type: 'error', top: '50px' }) createMessage.error('创建失败!');
proxy.$message.error('创建失败!');
console.error('创建失败!', res); console.error('创建失败!', res);
}); });
} }

40
src/components/earthMap/toolbar/AddModelWin.vue

@ -482,8 +482,7 @@ export default defineComponent({
}) })
.catch((e) => { .catch((e) => {
// //
// $mitt.emit('openNotification', '', 2, 'error', '50px') createMessage.error('加载区域数据出错', 2);
$mitt.emit('openNotification', { msg: '加载区域数据出错', dt: 2, type: 'error', top: '50px' });
}); });
}); });
@ -601,29 +600,23 @@ export default defineComponent({
return; return;
} else if (name.value == null || name.value.length <= 0) { } else if (name.value == null || name.value.length <= 0) {
// //
// $mitt.emit('openNotification', '', 2, 'warning') createMessage.warning('需要先填写名称', 2);
$mitt.emit('openNotification', { msg: '需要先填写名称', dt: 2, type: 'warning' });
return; return;
} else if (currentModel.value.xbsjType == 'Pin' && currentModel.value.imageUrl.length <= 0) { } else if (currentModel.value.xbsjType == 'Pin' && currentModel.value.imageUrl.length <= 0) {
// pin // pin
// $mitt.emit('openNotification', '', 2, 'warning') createMessage.warning('需要先上传图片', 2);
$mitt.emit('openNotification', { msg: '需要先上传图片', dt: 2, type: 'warning' });
return; return;
} else if (currentModel.value.xbsjType == 'Pin' && !selectHostDevice.value) { } else if (currentModel.value.xbsjType == 'Pin' && !selectHostDevice.value) {
// $mitt.emit('openNotification', '', 2, 'warning') createMessage.warning('主机设备不能为空', 2);
$mitt.emit('openNotification', { msg: '主机设备不能为空', dt: 2, type: 'warning' });
return; return;
} else if (currentModel.value.xbsjType == 'Pin' && !selectDeviceNum.value) { } else if (currentModel.value.xbsjType == 'Pin' && !selectDeviceNum.value) {
// $mitt.emit('openNotification', '', 2, 'warning') createMessage.warning('设备编码不能为空', 2);
$mitt.emit('openNotification', { msg: '设备编码不能为空', dt: 2, type: 'warning' });
return; return;
} }
//*************************************************** //***************************************************
else if (currentModel.value.xbsjType !== 'Polyline' && (selectArea.value == null || selectArea.value.id <= 0)) { else if (currentModel.value.xbsjType !== 'Polyline' && (selectArea.value == null || selectArea.value.id <= 0)) {
// //
// $mitt.emit('openNotification', '', 2, 'warning') createMessage.warning('需要先选择区域', 2);
$mitt.emit('openNotification', { msg: '需要先选择区域', dt: 2, type: 'warning' });
return; return;
} }
currentModel.value.editing = false; currentModel.value.editing = false;
@ -792,8 +785,7 @@ export default defineComponent({
// //
const poistions = currentModel.positions; const poistions = currentModel.positions;
if (poistions.length <= 0) { if (poistions.length <= 0) {
// $mitt.emit('openNotification', '', 2, 'warning') createMessage.warning('路径为空,无法创建', 2);
$mitt.emit('openNotification', { msg: '路径为空,无法创建', dt: 2, type: 'warning' });
return; return;
} }
@ -932,8 +924,7 @@ export default defineComponent({
} }
}) })
.catch((e) => { .catch((e) => {
// $mitt.emit('openNotification', '', 2, 'error', '50px') createMessage.error('新增区域数据出错', 2);
$mitt.emit('openNotification', { msg: '新增区域数据出错', dt: 2, type: 'error', top: '50px' });
}); });
}; };
// //
@ -1117,8 +1108,7 @@ export default defineComponent({
// //
parent.children.push(shamNode); parent.children.push(shamNode);
// //
// $mitt.emit('openNotification', '', 2, 'info') createMessage.success('添加成功!', 2);
$mitt.emit('openNotification', { msg: '添加成功!', dt: 2, type: 'info' });
} else { } else {
// //
// //
@ -1129,8 +1119,7 @@ export default defineComponent({
currentModel.value.name = name.value; currentModel.value.name = name.value;
moveNode('Model'); moveNode('Model');
// //
// $mitt.emit('openNotification',{msg: '', dt: 2, type:'info'} ) createMessage.success('修改成功!', 2);
$mitt.emit('openNotification', { msg: '修改成功!', dt: 2, type: 'info' });
} }
} }
}) })
@ -1239,8 +1228,7 @@ export default defineComponent({
wbParent.children.push(node); wbParent.children.push(node);
} }
// //
// $mitt.emit('openNotification', '', 2, 'info') createMessage.success('添加成功!', 2);
$mitt.emit('openNotification', { msg: '添加成功!', dt: 2, type: 'info' });
}); });
} else { } else {
const node = window.$earth.sceneTree.$refs[eidtId]; const node = window.$earth.sceneTree.$refs[eidtId];
@ -1255,8 +1243,7 @@ export default defineComponent({
} }
}); });
// //
// $mitt.emit('openNotification', '', 2, 'info') createMessage.success('编辑成功!', 2);
$mitt.emit('openNotification', { msg: '编辑成功!', dt: 2, type: 'info' });
//----------------------- //-----------------------
} }
// //
@ -1294,8 +1281,7 @@ export default defineComponent({
} }
} }
} else { } else {
// $mitt.emit('openNotification', response.message, 2, 'error') createMessage.error(response.message, 2);
$mitt.emit('openNotification', { msg: response.message, dt: 2, type: 'error' });
currentModel.value.destroy(); currentModel.value.destroy();
} }
}) })

23
src/components/earthMap/toolbar/AddRoamPath.vue

@ -80,6 +80,7 @@
import { defHttp } from '/@/utils/http/axios'; import { defHttp } from '/@/utils/http/axios';
// import mitt from '/@/utils/mitt'; // import mitt from '/@/utils/mitt';
import $mitt from '@/utils/earthMap/mitt'; import $mitt from '@/utils/earthMap/mitt';
import { useMessage } from "/@/hooks/web/useMessage";
export default defineComponent({ export default defineComponent({
name: 'AddRoamPath', name: 'AddRoamPath',
@ -97,6 +98,7 @@
setup(props, ctx) { setup(props, ctx) {
const { proxy }: any = getCurrentInstance(); const { proxy }: any = getCurrentInstance();
const { createMessage } = useMessage();
// const $mitt = mitt(); // const $mitt = mitt();
const userStore = useUserStore(); const userStore = useUserStore();
let heightCoefficient = ref(0.5); let heightCoefficient = ref(0.5);
@ -221,7 +223,7 @@
// 姿 // 姿
function editing() { function editing() {
if (!pathObj.value) { if (!pathObj.value) {
proxy.$message.info('请先创建路径!'); createMessage.warning('请先创建路径!');
return; return;
} }
const model = window.$earth.getObject(pathObj.value); const model = window.$earth.getObject(pathObj.value);
@ -231,14 +233,14 @@
// //
function confirmBtn() { function confirmBtn() {
if (!pathObj.value) { if (!pathObj.value) {
proxy.$message.info('请先创建路径!'); createMessage.warning('请先创建路径!');
return; return;
} }
const model = window.$earth.getObject(pathObj.value); const model = window.$earth.getObject(pathObj.value);
path.value.positions = JSON.stringify(model.positions); path.value.positions = JSON.stringify(model.positions);
path.value.rotations = JSON.stringify(model.rotations); path.value.rotations = JSON.stringify(model.rotations);
if (path.value.pathname.length == 0) { if (path.value.pathname.length == 0) {
proxy.$message.warning('路径名称不能为空'); createMessage.warning('路径名称不能为空');
return; return;
} }
if (props.cdata) { if (props.cdata) {
@ -254,15 +256,14 @@
) )
.then((res) => { .then((res) => {
if (res.success) { if (res.success) {
proxy.$message.success('修改成功!'); createMessage.success('修改成功!');
cancel(); cancel();
} else { } else {
proxy.$message.error('修改失败,请检查参数!'); createMessage.error('修改失败,请检查参数!');
} }
}) })
.catch((res) => { .catch((res) => {
proxy.$message.error('修改失败,请检查参数!', res); createMessage.error('修改失败,请检查参数!'+res);
proxy.$message.error('修改失败,请检查参数!');
}); });
} else { } else {
// //
@ -284,15 +285,15 @@
) )
.then((res) => { .then((res) => {
if (res.success) { if (res.success) {
proxy.$message.success('创建成功!'); createMessage.success('创建成功!');
cancel(); cancel();
} else { } else {
proxy.$message.error('创建失败,请检查参数!'); createMessage.error('修改失败,请检查参数!'+res);
} }
}) })
.catch((res) => { .catch((res) => {
proxy.$message.error('创建失败,请检查参数!', res); createMessage.error('修改失败,请检查参数!'+res);
proxy.$message.error('创建失败,请检查参数!'); createMessage.error('修改失败,请检查参数!');
}); });
} }
} }

29
src/components/earthMap/toolbar/AddroamVideo.vue

@ -109,6 +109,7 @@
import { useEarthMapStore } from '/@/store/modules/earthMap'; import { useEarthMapStore } from '/@/store/modules/earthMap';
import { defHttp } from '/@/utils/http/axios'; import { defHttp } from '/@/utils/http/axios';
import $mitt from '@/utils/earthMap/mitt'; import $mitt from '@/utils/earthMap/mitt';
import { useMessage } from "/@/hooks/web/useMessage";
export default defineComponent({ export default defineComponent({
name: 'AddRoamVideo', name: 'AddRoamVideo',
@ -132,6 +133,7 @@
}, },
setup(props, ctx) { setup(props, ctx) {
const { proxy }: any = getCurrentInstance(); const { proxy }: any = getCurrentInstance();
const { createMessage } = useMessage();
// const $mitt = mitt(); // const $mitt = mitt();
const userStore = useUserStore(); const userStore = useUserStore();
const store = useEarthMapStore(); const store = useEarthMapStore();
@ -319,18 +321,17 @@
//flag //flag
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (!ButtonState.value) { if (!ButtonState.value) {
proxy.$message.error('请先创建巡检视频'); createMessage.error('请先创建巡检视频');
return; return;
} }
const pathId = modelData.value.pathId; const pathId = modelData.value.pathId;
if (!pathId || pathId.length < 0) { if (!pathId || pathId.length < 0) {
proxy.$message.error('请选择巡检路径'); createMessage.error('请选择巡检路径');
return; return;
} }
const deviceUid = modelData.value.deviceUid; const deviceUid = modelData.value.deviceUid;
if (!deviceUid || deviceUid.length < 0) { if (!deviceUid || deviceUid.length < 0) {
// console.log(deviceUid) createMessage.error('请选择相机设备');
proxy.$message.error('请选择相机设备');
return; return;
} }
const position = modelData.value.lngLatHeight; const position = modelData.value.lngLatHeight;
@ -369,16 +370,16 @@
}) })
.then((res) => { .then((res) => {
if (!res.success) { if (!res.success) {
proxy.$message.error(`编辑失败,${res.message}`); createMessage.error('编辑失败'+ res.message);
return; return;
} }
proxy.$message.success(`编辑成功`); createMessage.success('编辑成功');
resolve(res); resolve(res);
windowClose(flag); windowClose(flag);
destroyVideoLise(); destroyVideoLise();
}) })
.catch((res) => { .catch((res) => {
proxy.$message.error('编辑失败'); createMessage.error('编辑失败');
console.error('编辑失败', res); console.error('编辑失败', res);
}); });
} else { } else {
@ -392,16 +393,16 @@
) )
.then((response) => { .then((response) => {
if (!response.success) { if (!response.success) {
proxy.$message.error(`保存失败,${response.message}`); createMessage.error('保存失败'+ response.message);
return; return;
} }
proxy.$message.success(`保存成功`); createMessage.success('保存成功');
resolve(response); resolve(response);
windowClose(flag); windowClose(flag);
destroyVideoLise(); destroyVideoLise();
}) })
.catch((res) => { .catch((res) => {
proxy.$message.error('保存失败'); createMessage.error('保存失败');
console.error('保存失败', res); console.error('保存失败', res);
}); });
} }
@ -422,7 +423,7 @@
) )
.then((response) => { .then((response) => {
if (!response.success) { if (!response.success) {
proxy.$message.error('没有查询到相机设备信息'); createMessage.error('没有查询到相机设备信息');
return; return;
} }
const records = response.result[0].msCameraSiteList; const records = response.result[0].msCameraSiteList;
@ -442,7 +443,7 @@
} }
}) })
.catch((res) => { .catch((res) => {
proxy.$message.error('没有查询到相机设备信息'); createMessage.error('没有查询到相机设备信息');
console.error('没有查询到相机设备信息', res); console.error('没有查询到相机设备信息', res);
}); });
} }
@ -471,7 +472,7 @@
) )
.then((response) => { .then((response) => {
if (!response.success) { if (!response.success) {
proxy.$message.error('没有查询到区域信息'); createMessage.error('没有查询到区域信息');
return; return;
} }
const records = response.result; const records = response.result;
@ -486,7 +487,7 @@
// console.log('this.areaList', this.areaList) // console.log('this.areaList', this.areaList)
}) })
.catch((res) => { .catch((res) => {
proxy.$message.error('没有查询到区域信息'); createMessage.error('没有查询到区域信息');
console.error('没有查询到区域信息', res); console.error('没有查询到区域信息', res);
}); });
}); });

27
src/components/earthMap/toolbar/CreateModel.vue

@ -235,7 +235,7 @@
import { onBeforeUnmount, defineComponent, ref, getCurrentInstance, computed, watch } from 'vue'; import { onBeforeUnmount, defineComponent, ref, getCurrentInstance, computed, watch } from 'vue';
import { Col, Row } from 'ant-design-vue'; import { Col, Row } from 'ant-design-vue';
import { addModel, addPin } from '@/utils/earthMap/earthObj'; import { addModel, addPin } from '@/utils/earthMap/earthObj';
import { useMessage } from "/@/hooks/web/useMessage";
import { defHttp } from '/@/utils/http/axios'; import { defHttp } from '/@/utils/http/axios';
// import mitt from '/@/utils/mitt'; // import mitt from '/@/utils/mitt';
import $mitt from '@/utils/earthMap/mitt'; import $mitt from '@/utils/earthMap/mitt';
@ -257,6 +257,7 @@
}, },
}, },
setup(props, _ctx) { setup(props, _ctx) {
const { createMessage } = useMessage();
const { proxy }: any = getCurrentInstance(); const { proxy }: any = getCurrentInstance();
// const $mitt = mitt(); // const $mitt = mitt();
//computed //computed
@ -493,8 +494,7 @@
if (_modelEntity.value) { if (_modelEntity.value) {
_modelEntity.value.creating = !_modelEntity.value.creating; _modelEntity.value.creating = !_modelEntity.value.creating;
} else { } else {
// $mitt.emit('openNotification', '!', 2, 'error', '50px') createMessage.error('没有找到模型!', 2);
$mitt.emit('openNotification', { msg: '没有找到模型!', dt: 2, type: 'error', top: '50px' });
} }
} }
function handleEditLocation(_e) { function handleEditLocation(_e) {
@ -505,8 +505,7 @@
_modelEntity.value.editing = !_modelEntity.value.editing; _modelEntity.value.editing = !_modelEntity.value.editing;
} }
} else { } else {
// $mitt.emit('openNotification', '!', 2, 'error', '50px') createMessage.error('没有找到模型!', 2);
$mitt.emit('openNotification', { msg: '没有找到模型!', dt: 2, type: 'error', top: '50px' });
} }
} }
function handleFlyToLocation(_e) { function handleFlyToLocation(_e) {
@ -518,8 +517,7 @@
if (_modelEntity.value) { if (_modelEntity.value) {
_modelEntity.value.rotationEditing = !_modelEntity.value.rotationEditing; _modelEntity.value.rotationEditing = !_modelEntity.value.rotationEditing;
} else { } else {
// $mitt.emit('openNotification', '!', 2, 'error', '50px') createMessage.error('没有找到模型!', 2);
$mitt.emit('openNotification', { msg: '没有找到模型!', dt: 2, type: 'error', top: '50px' });
} }
} }
function handleResetRotation(_e) { function handleResetRotation(_e) {
@ -532,8 +530,7 @@
if (_modelEntity.value) { if (_modelEntity.value) {
// //
if (model.value.name === '') { if (model.value.name === '') {
// $mitt.emit('openNotification', '!', 2, 'error', '50px') createMessage.error('模型名称不能为空!', 2);
$mitt.emit('openNotification', { msg: '模型名称不能为空!', dt: 2, type: 'error', top: '50px' });
return false; return false;
} }
// //
@ -549,8 +546,7 @@
if (selectModel.value.id === 'ironTower') { if (selectModel.value.id === 'ironTower') {
// 线 // 线
if (selectLine.value.value === '') { if (selectLine.value.value === '') {
// $mitt.emit('openNotification', '线!', 2, 'error', '50px') createMessage.error('请选择线路!', 2);
$mitt.emit('openNotification', { msg: '请选择线路!', dt: 2, type: 'error', top: '50px' });
return false; return false;
} }
let saveCameraSiteModelParameter = { let saveCameraSiteModelParameter = {
@ -581,8 +577,7 @@
.catch((_err) => { .catch((_err) => {
// //
node.destroy(); node.destroy();
// $mitt.emit('openNotification', '!', 2, 'error', '50px') createMessage.error('保存失败!', 2);
$mitt.emit('openNotification', { msg: '保存失败!', dt: 2, type: 'error', top: '50px' });
}); });
} }
// //
@ -610,8 +605,7 @@
.catch((_err) => { .catch((_err) => {
// //
node.destroy(); node.destroy();
// $mitt.emit('openNotification', "!", 2, 'error', '50px') createMessage.error('保存失败!', 2);
$mitt.emit('openNotification', { msg: '保存失败!', dt: 2, type: 'error', top: '50px' });
}); });
} }
break; break;
@ -642,8 +636,7 @@
.catch((_err) => { .catch((_err) => {
// //
node.destroy(); node.destroy();
// $mitt.emit('openNotification', "!", 2, 'error', '50px') createMessage.error('保存失败!', 2);
$mitt.emit('openNotification', { msg: '保存失败!', dt: 2, type: 'error', top: '50px' });
}); });
break; break;
default: default:

4
src/components/earthMap/toolbar/NotificationModel.vue

@ -32,6 +32,7 @@
import NotificationChild from '/@/components/earthMap/toolbar/NotificationChild.vue'; import NotificationChild from '/@/components/earthMap/toolbar/NotificationChild.vue';
import Window from '@/components/earthMap/components/Window.vue'; import Window from '@/components/earthMap/components/Window.vue';
import BTable from '@/components/earthMap/components/B-table.vue'; import BTable from '@/components/earthMap/components/B-table.vue';
import { useMessage } from "/@/hooks/web/useMessage";
export default defineComponent({ export default defineComponent({
name: 'NotificationModel', name: 'NotificationModel',
components: { components: {
@ -48,6 +49,7 @@
setup(props, ctx) { setup(props, ctx) {
// const $mitt = mitt(); // const $mitt = mitt();
const { proxy }: any = getCurrentInstance(); const { proxy }: any = getCurrentInstance();
const { createMessage } = useMessage();
let heightCoefficient = ref(0.5); let heightCoefficient = ref(0.5);
let widthCoefficient = ref(0.3); let widthCoefficient = ref(0.3);
let currentModel: any = ref(null); let currentModel: any = ref(null);
@ -147,7 +149,7 @@
// //
defHttp.put({ url: url.value.readAll }, { isTransformResponse: false }).then((res) => { defHttp.put({ url: url.value.readAll }, { isTransformResponse: false }).then((res) => {
if (res.code == 200) { if (res.code == 200) {
proxy.$message.success(res.message); createMessage.success(res.message)
window.getEventData().then((res) => { window.getEventData().then((res) => {
eventListAll.value = res; eventListAll.value = res;
let pageNo = pagination.value.pageNo; let pageNo = pagination.value.pageNo;

5
src/components/earthMap/toolbar/WarnList.vue

@ -144,6 +144,7 @@
MsWarnDetail, MsWarnDetail,
}, },
setup(props, ctx) { setup(props, ctx) {
const { createMessage } = useMessage();
const { proxy }: any = getCurrentInstance(); const { proxy }: any = getCurrentInstance();
let store = useMonitorStore(); let store = useMonitorStore();
const userStore = useUserStore(); const userStore = useUserStore();
@ -410,9 +411,7 @@
} }
function showPhotos(url) { function showPhotos(url) {
if (objectIsNull(url)) { if (objectIsNull(url)) {
// $mitt.emit('openNotification', '', 2, 'warning') createMessage.warning('暂无数据', 2);
// $mitt.emit('openNotification', { msg: '', dt: 2, type: 'warning' })
proxy.$message.warning('暂无数据');
return; return;
} }
images.value = handleImageList(url); images.value = handleImageList(url);

8
src/utils/earthMap/guid.ts

@ -0,0 +1,8 @@
// 随机数
export function guid() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
var r = (Math.random() * 16) | 0,
v = c == 'x' ? r : (r & 0x3) | 0x8;
return v.toString(16);
});
}

62
src/utils/earthMap/handleNodeType.ts

@ -0,0 +1,62 @@
export default class HandleNodeType {
#sn;
#sensorCallback;
#modelCallback;
#markerPositionCallback;
#polylineCallBack;
#default;
constructor(sn) {
this.#sn = sn;
}
sensor(callback) {
this.#sensorCallback = callback;
return this;
}
// 模型回调
modelCallback(callback) {
this.#modelCallback = callback;
return this;
}
// 微波雷达回调
markerPosition(callback) {
this.#markerPositionCallback = callback;
return this;
}
// 区域回调
polylineCallBack(callback) {
this.#polylineCallBack = callback;
return this;
}
default(callback) {
this.#default = callback;
return this;
}
run() {
// 判断节点的类型
if (!this.#sn.czmObject) {
return null;
}
// 模型类型
let tempCondition = this.#sn.czmObject.xbsjType;
switch (tempCondition) {
case 'Model':
this.#modelCallback ? this.#modelCallback() : this.#default();
break;
case 'Pin':
this.#markerPositionCallback ? this.#markerPositionCallback() : this.#default();
break;
case 'Polyline':
this.#polylineCallBack ? this.#polylineCallBack() : this.#default();
break;
default:
this.#default ? this.#default() : null;
}
}
}

2
src/utils/earthMap/keyControlInit.ts

@ -69,11 +69,9 @@ export async function keyControlInit() {
}, },
(err) => { (err) => {
// proxy.$message.error('重点监控区域初始化失败!')
console.error('重点监控区域初始化失败!', err) console.error('重点监控区域初始化失败!', err)
}) })
.catch((res) => { .catch((res) => {
// proxy.$message.error('重点监控区域初始化失败!')
console.error('重点监控区域初始化失败!', res) console.error('重点监控区域初始化失败!', res)
}) })

437
src/utils/earthMap/websocket.ts

@ -0,0 +1,437 @@
import _ from 'lodash';
import { useUserStore } from '/@/store/modules/user';
import { defHttp } from '/@/utils/http/axios';
import $mitt from '@/utils/earthMap/mitt';
import { useMessage } from "/@/hooks/web/useMessage";
import earthUtils from '@/utils/earthMap/earth';
import alarmImg from '@/assets/earthMap/alarm.gif';
const { createMessage } = useMessage();
let userStore = useUserStore();
let websock: any = [];
function initWebSocket(configName) {
if ('WebSocket' in window) {
let url = '';
switch (configName) {
case 'domianURL': //接收后台模型数据
// WebSocket与普通的请求所用协议有所不同,ws等同于http,wss等同于https
// const userStore = useUserStore()
// const orgCode = userStore.userInfo?.orgCode;
// let userId = store.getters.userInfo.id;
let userId = userStore.userInfo?.id;
url = window._CONFIG[configName].replace('https://', 'wss://').replace('http://', 'ws://') + '/websocket/' + userId;
// url = 'ws://127.0.0.1:5004'
websock[configName] = new WebSocket(url);
websock[configName].onopen = websocketonopen;
websock[configName].onerror = websocketonerror;
websock[configName].onmessage = websocketonmessage;
websock[configName].onclose = websocketclose;
break;
case 'clientURL': //调用客户端监控视频窗口
url = window._CONFIG['clientURL'];
websock[configName] = new WebSocket(url);
websock[configName].onopen = websocketonopen;
websock[configName].onerror = websocketonerror;
websock[configName].onclose = websocketclose;
break;
default:
console.log('websocket初始化失败');
}
// console.log('url', url)
} else {
console.log('当前浏览器不支持websocket,请更换浏览器!');
}
}
function websocketonopen(e) {
console.log('WebSocket连接成功');
}
function websocketonerror(e) {
console.log('WebSocket连接发生错误');
}
const loreadAlarmInfo = _.debounce(
(url, eventSerialNum) => {
defHttp
.get(
{
url: url,
params: eventSerialNum,
},
{ isTransformResponse: false }
)
// getAction(url, {eventSerialNum: eventSerialNum})
.then((res) => {
if (!res.success) {
console.log('重新发送websocket报警数据失败!');
} else {
console.log('重新发送websocket报警数据成功!');
}
});
},
2000,
{ maxWait: 3000, trailing: true }
);
//
async function websocketonmessage(e) {
//接收后端数据
var data = eval('(' + e.data + ')');
const cesium = window.Cesium;
// Cesium Math
const math = cesium.Math;
// earth
const earth = window.$earth;
//处理订阅信息
if (data.cmd == 'new_warn_info') {
//有新增的预警信息
//1.调起客户端窗体
// chrome.call("formactive");
//2.若警示界面打开着,则刷新列表
if ($('.infoList').css('visibility') == 'visible') {
$mitt.emit('getWarnData');
}
//3.弹出监控窗口或围栏信息
if (data.msgTxt != undefined && data.dealStatus == 1) {
$mitt.emit('listenerVideoNum', data.msgTxt);
//显示报警位置
window.$earth.sceneTree.$refs[data.labelCode].czmObject.color = [1, 0.09803921568627451, 0, 1];
} else if (data.msgTxt != undefined && data.dealStatus == 3) {
this.$notification.open({
key: 'fenceInfo',
message: '围栏信息通知',
description: data.msgTxt + '!',
duration: 0,
});
} else if (data.dealStatus == 2) {
//消除单个报警位置
window.$earth.sceneTree.$refs[data.labelCode].czmObject.color = [0.08235294117647059, 1, 0, 1];
} else if (data.dealStatus == 0) {
//消除所有报警位置
window.$earth.sceneTree.$refs.sensor.children.forEach((data, index) => {
data.czmObject.color = [0.08235294117647059, 1, 0, 1];
});
}
//4.提示音
if (data.dealStatus !== 2 && data.dealStatus !== 0) {
await this.$refs.audio.play();
setTimeout(() => {
this.$refs.audio.pause(); //N秒后暂停播放
}, data.alarmNum * 1000);
}
} else if (data.cmd == 'new_microwave_warn_info' || data.cmd == 'new_radar_warn_info' || data.cmd == 'new_video_warn_info') {
if (this.alarmInfoMap.has(data.serialNum)) {
return;
}
const evalString = `
if(p._div){
return
}
let left=p.winPos[0];
let bottom=p.winPos[3];
const div = document.createElement('div');
div.style="position: absolute;left:"+left+"px;bottom:"+bottom+"px "
const img = document.createElement('img');
img.src="${alarmImg}";
img.style="width:60px;height:60px"
div.appendChild(img);
div.onclick=()=>{
p.flyTo()
}
p._div = div;
const root=document.getElementById('earthContainer');
root.appendChild(div);
XE.MVVM.watch(p.winPos,() => {
left=p.winPos[0]-30;
bottom=p.winPos[3];
div.style="position: absolute;left:"+left+"px;bottom:"+bottom+"px "
})
`;
const pinConfig: any = {
name: 'Pin1',
xbsjType: 'Pin',
position: [math.toRadians(data.lon), math.toRadians(data.lat), 0],
evalString: evalString,
// imageUrl: alarmImg,
isDivImage: true,
show: false,
far: 3000,
};
// scanline
const scanlineConfig: any = {
name: 'AlarmScanline',
xbsjType: 'Scanline',
position: [math.toRadians(data.lon), math.toRadians(data.lat), 0],
playing: true,
radius: 30,
timeDuration: 0.5,
color: [1, 0, 0, 1],
show: false,
};
const pin = new window.XE.Obj.Pin(window.$earth);
const scanline = new window.XE.Obj.Scanline(window.$earth);
//1、获取到世界坐标
let start = cesium.Cartesian3.fromDegrees(data.lon, data.lat, 0);
let height = await window.$earth.czm.viewer.scene.clampToHeightMostDetailed([start]).then(function (clampedCartesians) {
//2、获取到经纬高度
let ellipsoid = window.$earth.czm.viewer.scene.globe.ellipsoid;
let cartographic = ellipsoid.cartesianToCartographic(clampedCartesians[0]);
return cartographic.height;
});
if (height > 0) {
pinConfig.position[2] = height;
} else if (window.$earth.sceneTree.$refs.terrain.czmObject.show) {
height = await cesium.sampleTerrainMostDetailed(earth._viewer.terrainProvider, [start]).then((updatedPositions) => {
return updatedPositions[0].height ? updatedPositions[0].height : 0;
});
pinConfig.position[2] = height;
} else {
pinConfig.position[2] = 0;
}
// 保存报警类型到对象上
let customProp: any = {};
customProp.alarmType = data.cmd;
pinConfig.customProp = JSON.stringify(customProp);
scanlineConfig.customProp = JSON.stringify(customProp);
pin.xbsjFromJSON(pinConfig);
scanline.xbsjFromJSON(scanlineConfig);
// 判断现在相机的高度来显示报警相关模型
if (this._earth.camera.position[2] < 100) {
// 隐藏 pin, 显示 scanline
pin._div.hidden = true;
scanline.show = true;
} else {
// 隐藏 scanline, 显示 pin
pin._div.hidden = false;
scanline.show = false;
}
scanline.flyTo();
this.alarmInfoMap.set(data.serialNum, { pin: pin, scanline: scanline, timestamp: Date.now() });
//报警弹窗
this.videoWindowProps.title = `实时报警窗口(${data.cameraName}`;
this.videoWindowProps.videoUrl = data.cameraCode; //相机编码
this.videoWindowProps.isAlarm = true;
this.videoWindowProps.visible = true;
this.videoWindowProps.playRecord = false;
this.videoWindowProps.warnEvent.happenTime = data.happenTime;
this.videoWindowProps.warnEvent.happenLoc = `${Number(data.lon).toFixed(6)},${Number(data.lat).toFixed(6)}`;
this.videoWindowProps.warnEvent.warnNum = 1;
this.videoWindowProps.warnEvent.warnLevel = filterDictTextByCache('ms_warn_level', data.warnLevel);
this.videoWindowProps.warnEvent.warnType = filterDictTextByCache('ms_warn_type', data.warnType);
this.videoWindowProps.warnEvent.warnContent = data.warnContent;
//若警示界面打开着,则刷新列表
if ($('.infoList').css('visibility') == 'visible') {
$mitt.emit('getWarnData');
}
//提示音
await this.$refs.audio.play();
setTimeout(() => {
this.$refs.audio.pause(); //N秒后暂停播放
}, 3 * 1000);
} else if (data.cmd == 'earthMap_model_realtime_info') {
console.log(data);
console.log(this.radarAlarmDataMap);
// 雷达轨迹报警数据
const alarmContent = data.content;
if (this.radarAlarmDataMap.has(data.eventSerialNum)) {
// 存在雷达报警数据
let radarAlarmData = this.radarAlarmDataMap.get(data.eventSerialNum);
let targetMap = radarAlarmData.target;
if (targetMap.has(data.modelId)) {
// 存在目标数据
let targetData = targetMap.get(data.modelId);
let pathModel = targetData.path;
let groundImageModel = targetData.groundImage;
//更新目标数据
// 更新报警数据
let positionRadian = earthUtils.degreeToRadianInLngLatHeight(alarmContent.lon, alarmContent.lat, 0);
// 更新路径
pathModel.positions.push(positionRadian);
groundImageModel.position = positionRadian;
if (pathModel.positions.length > 1) {
pathModel.show = true;
groundImageModel.show = true;
}
} else {
// 不存在目标数据
// 创建目标数据
let positionRadian = earthUtils.degreeToRadianInLngLatHeight(alarmContent.lon, alarmContent.lat, 0);
// 路径
let pathModel = new window.XE.Obj.Path(window.$earth);
let pathConfig = {
name: 'path',
xbsjType: 'Path',
positions: [positionRadian],
loop: false,
playing: true,
width: 2,
color: [1, 0, 0, 1],
show: false,
showDirection: false,
currentSpeed: 30,
alwaysAlongThePath: true,
material: {
type: 'Color',
color: [1, 0, 0, 1],
},
};
pathModel.xbsjFromJSON(pathConfig);
// 地面图片
let groundImageModel = new window.XE.Obj.GroundImage(window.$earth);
let imageUrls: any = [];
if (data.mainTarget) {
imageUrls.push(window._CONFIG['staticDomainURL'] + '/keyi_point1.png');
imageUrls.push(window._CONFIG['staticDomainURL'] + '/keyi_point2.png');
} else {
imageUrls.push(window._CONFIG['staticDomainURL'] + '/keyi_point3.png');
imageUrls.push(window._CONFIG['staticDomainURL'] + '/keyi_point4.png');
}
let groundImageConfig = {
name: 'groundImage',
xbsjType: 'GroundImage',
position: positionRadian,
width: 3,
height: 3,
playing: true,
imageUrls: imageUrls,
show: false,
};
groundImageModel.xbsjFromJSON(groundImageConfig);
// 保存目标数据
let targetData = {
path: pathModel,
groundImage: groundImageModel,
};
targetMap.set(data.modelId, targetData);
}
// 更新时间
const updateTime = Date.now();
radarAlarmData.timestamp = updateTime;
// 更新 pin 的时间
let alarm = this.alarmInfoMap.get(data.eventSerialNum);
if (alarm) {
alarm.timestamp = updateTime;
}
} else {
// 不存在报警数据
// 路径
let pathModel = new window.XE.Obj.Path(window.$earth);
let pathConfig = {
name: 'path',
xbsjType: 'Path',
positions: [earthUtils.degreeToRadianInLngLatHeight(alarmContent.lon, alarmContent.lat, 0)],
loop: false,
playing: true,
width: 2,
color: [1, 0, 0, 1],
show: false,
showDirection: false,
currentSpeed: 30,
alwaysAlongThePath: true,
material: {
type: 'Color',
color: [1, 0, 0, 1],
},
};
// 地面图片
let groundImage = new window.XE.Obj.GroundImage(window.$earth);
let imageUrls: any = [];
if (data.mainTarget) {
imageUrls.push(window._CONFIG['staticDomainURL'] + '/keyi_point1.png');
imageUrls.push(window._CONFIG['staticDomainURL'] + '/keyi_point2.png');
} else {
imageUrls.push(window._CONFIG['staticDomainURL'] + '/keyi_point3.png');
imageUrls.push(window._CONFIG['staticDomainURL'] + '/keyi_point4.png');
}
let groundImageConfig = {
name: 'groundImage',
xbsjType: 'GroundImage',
playing: true,
width: 3,
height: 3,
position: earthUtils.degreeToRadianInLngLatHeight(alarmContent.lon, alarmContent.lat, 0),
imageUrls: imageUrls,
show: false,
};
// 创建路径
groundImage.xbsjFromJSON(groundImageConfig);
// 创建地面图片
pathModel.xbsjFromJSON(pathConfig);
// 保存数据到map中
let target = {
path: pathModel,
groundImage: groundImage,
mainTarget: alarmContent.mainTarget,
};
let targetMap = new Map();
targetMap.set(data.modelId, target);
this.radarAlarmDataMap.set(data.eventSerialNum, {
target: targetMap,
timestamp: Date.now(),
});
if (!this.alarmInfoMap.has(data.eventSerialNum)) {
// 不存在告警信息(小灯或扫描线)时发送
// 事件编号到后台使其重新发送websocket报警数据
await new Promise((r) => setTimeout(r, 500));
if (!this.alarmInfoMap.has(data.eventSerialNum)) {
console.log('发送websocket报警数据');
this.loreadAlarmInfo(this.url.sendRadarAlarmByWebSocket, data.eventSerialNum);
}
}
}
if (this.videoWindowProps.visible) {
this.videoWindowProps.warnEvent.warnNum = this.radarAlarmDataMap.get(data.eventSerialNum).target.size;
}
// console.debug('雷达轨迹报警数据', this.radarAlarmDataMap);
} else if (data.cmd == '') {
earth.sceneTree.$refs[data.eventSerialNum].destroy();
} else if (data.cmd == 'eventPublish') {
window.getEventData();
}
}
function websocketclose(e) {
console.log('connection closed (' + e.code + ')');
createMessage.warn('websocket连接已断开', 3);
}
function websocketdosend(configName) {
//发送数据
this.spinning = !this.spinning; //加载状态
console.log('this.websock[configName]', websock[configName]);
let message = {
topic: 'Show_Single_Video',
msg: '192.168.1.65',
};
//readyState:0:正在连接中,1:已建立连接,2:连接正在关闭,3:连接已关闭或连接失败
if (websock[configName].readyState == 1) {
websock[configName].send(JSON.stringify(message));
that.spinning = !that.spinning; //加载状态
console.log('已发送');
} else {
//重新连接websocket
initWebSocket('clientURL');
setTimeout(function () {
if (websock[configName].readyState == 1) {
websock[configName].send(JSON.stringify(message));
}
that.spinning = !that.spinning; //加载状态
}, 3000);
}
}
export {
initWebSocket,
websocketonopen,
websocketonerror,
loreadAlarmInfo,
websocketclose,
websocketonmessage,
websocketdosend,
websock,
}

2608
src/views/earthMap/edit/EarthComp copy.vue

File diff suppressed because it is too large

207
src/views/earthMap/edit/EarthComp.vue

@ -104,6 +104,8 @@
import { getRealTime } from '@/utils/date'; import { getRealTime } from '@/utils/date';
import $mitt from '@/utils/earthMap/mitt'; import $mitt from '@/utils/earthMap/mitt';
import { drawInit } from '@/utils/earthMap/earthDraw'; import { drawInit } from '@/utils/earthMap/earthDraw';
import { guid } from '@/utils/earthMap/guid';
import HandleNodeType from '@/utils/earthMap/handleNodeType';
import { keyControlInit } from '@/utils/earthMap/keyControlInit'; import { keyControlInit } from '@/utils/earthMap/keyControlInit';
import redFlag from '@/assets/earthMap/redFlag.png'; import redFlag from '@/assets/earthMap/redFlag.png';
import { addModel, addPin, addViewShedRadar, addShipGroundImg, addShipTrack } from '@/utils/earthMap/earthObj'; import { addModel, addPin, addViewShedRadar, addShipGroundImg, addShipTrack } from '@/utils/earthMap/earthObj';
@ -111,76 +113,14 @@
import hidePng from '@/assets/earthMap/hide.png'; import hidePng from '@/assets/earthMap/hide.png';
import alarmImg from '@/assets/earthMap/alarm.gif'; import alarmImg from '@/assets/earthMap/alarm.gif';
import VideoFusionWin from './components/VideoFusionWin.vue'; import VideoFusionWin from './components/VideoFusionWin.vue';
import { useMessage } from "/@/hooks/web/useMessage";
import circleDot2 from '@/assets/earthMap/circleDot2.png'; import circleDot2 from '@/assets/earthMap/circleDot2.png';
import circleDot1 from '@/assets/earthMap/circleDot1.png'; import circleDot1 from '@/assets/earthMap/circleDot1.png';
import circleDot3 from '@/assets/earthMap/circleDot3.png'; import circleDot3 from '@/assets/earthMap/circleDot3.png';
import ship from '@/assets/images/ship.png';
import { onBeforeUnmount } from 'vue';
class HandleNodeType {
#sn;
#sensorCallback;
#modelCallback;
#markerPositionCallback;
#polylineCallBack;
#default;
constructor(sn) {
this.#sn = sn;
}
sensor(callback) {
this.#sensorCallback = callback;
return this;
}
//
modelCallback(callback) {
this.#modelCallback = callback;
return this;
}
//
markerPosition(callback) {
this.#markerPositionCallback = callback;
return this;
}
//
polylineCallBack(callback) {
this.#polylineCallBack = callback;
return this;
}
default(callback) {
this.#default = callback;
return this;
}
run() {
//
if (!this.#sn.czmObject) {
return null;
}
//
let tempCondition = this.#sn.czmObject.xbsjType;
switch (tempCondition) {
case 'Model':
this.#modelCallback ? this.#modelCallback() : this.#default();
break;
case 'Pin':
this.#markerPositionCallback ? this.#markerPositionCallback() : this.#default();
break;
case 'Polyline':
this.#polylineCallBack ? this.#polylineCallBack() : this.#default();
break;
default:
this.#default ? this.#default() : null;
}
}
}
const { createMessage } = useMessage();
function setClassEl(setClassEl1, setClassEl2, checked) { function setClassEl(setClassEl1, setClassEl2, checked) {
if (checked) { if (checked) {
setClassChecked(setClassEl1, setClassEl2); setClassChecked(setClassEl1, setClassEl2);
@ -407,7 +347,7 @@
mounted() { mounted() {
let that = this; let that = this;
// //
window.guid = this.guid; window.guid = guid;
// //
this.createEarth(); this.createEarth();
// //
@ -452,14 +392,7 @@
}); });
} }
} }
//
guid() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
var r = (Math.random() * 16) | 0,
v = c == 'x' ? r : (r & 0x3) | 0x8;
return v.toString(16);
});
}
// //
roamPathSet() { roamPathSet() {
// //
@ -2187,8 +2120,7 @@
// notification.close("RoamVideoSet"); // notification.close("RoamVideoSet");
// sessionStorage.setItem("RoamVideoSet", "false"); // sessionStorage.setItem("RoamVideoSet", "false");
} else { } else {
// Msg.error(''); createMessage.error('修改失败', 2);
$mitt.emit('openNotification', { msg: '删除失败', dt: 2, type: 'error', top: '50px' });
console.error('删除失败', response); console.error('删除失败', response);
} }
}) })
@ -2280,12 +2212,10 @@
{ isTransformResponse: false } { isTransformResponse: false }
) )
.then((response) => { .then((response) => {
$mitt.emit('openNotification', { msg: '编辑成功', dt: 2, type: 'success', top: '50px' }); createMessage.success('编辑成功', 2);
// console.error('', response);
}) })
.catch((response) => { .catch((response) => {
$mitt.emit('openNotification', { msg: '编辑失败', dt: 2, type: 'error', top: '50px' }); createMessage.error('编辑失败', 2);
// console.error('', response);
}); });
}; };
}); });
@ -2315,7 +2245,7 @@
}); });
this.store.shapeList = shapeList; this.store.shapeList = shapeList;
} else { } else {
$mitt.emit('openNotification', { msg: '删除失败', dt: 2, type: 'error', top: '50px' }); createMessage.error('删除失败', 2);
console.error('删除失败', response); console.error('删除失败', response);
} }
}) })
@ -2353,10 +2283,6 @@
that.VideoFusionWinShow = e; that.VideoFusionWinShow = e;
}); });
//methods //methods
$mitt.on('openNotification', (res: any) => {
// that.openNotification(msg, dt, type, top)
that.openNotification(res.msg, res.dt, res.type, res.top);
});
$mitt.on('listenMouseHandler', function () { $mitt.on('listenMouseHandler', function () {
that.listenMouseHandler(); that.listenMouseHandler();
}); });
@ -2394,8 +2320,7 @@
} else { } else {
// //
console.log('失败'); console.log('失败');
createMessage.error(res.message);
this.$message.error(res.message);
} }
}); });
} else { } else {
@ -2833,7 +2758,7 @@
} }
websocketclose(e) { websocketclose(e) {
console.log('connection closed (' + e.code + ')'); console.log('connection closed (' + e.code + ')');
this.openNotification('websocket连接已断开', 3, 'warning'); createMessage.warn('websocket连接已断开', 3);
} }
websocketdosend(configName) { websocketdosend(configName) {
// //
@ -2861,32 +2786,6 @@
} }
} }
/* websocket-end */ /* websocket-end */
openNotification(msg, dt = 2, type = 'info', top = '300px') {
// console.log("openNotification");
// console.log("proxy",this);
// console.log("window",window);
// debugger
this.$message.config({
top: top,
duration: dt,
maxCount: 3,
});
switch (type) {
case 'info':
this.$message.info(msg);
break;
case 'success':
this.$message.success(msg);
break;
case 'error':
this.$message.error(msg);
break;
case 'warning':
this.$message.warning(msg);
break;
default:
}
}
getRandomArr(arr, count) { getRandomArr(arr, count) {
// //
var shuffled = arr.slice(0), var shuffled = arr.slice(0),
@ -3233,10 +3132,10 @@
// postAction(this.url.SaveSensorModel, saveSensorModelParameter) // postAction(this.url.SaveSensorModel, saveSensorModelParameter)
.then((res) => { .then((res) => {
if (res.success) { if (res.success) {
that.$message.success('克隆成功'); createMessage.success('克隆成功');
} else { } else {
newSn.parent.children.splice(index, 1); newSn.parent.children.splice(index, 1);
that.$message.error('克隆失败: ', res.message ? res.message : ''); createMessage.error('克隆成功:'+ res.message);
} }
}); });
}) })
@ -3284,15 +3183,15 @@
jsonObj.labelCode = ''; jsonObj.labelCode = '';
newSn.czmObject.customProp = JSON.stringify(jsonObj); newSn.czmObject.customProp = JSON.stringify(jsonObj);
// //
that.$message.success('克隆成功'); createMessage.success('克隆成功');
} else { } else {
newSn.parent.children.splice(index, 1); newSn.parent.children.splice(index, 1);
that.$message.error('克隆失败: ', res.message ? res.message : ''); createMessage.error('克隆失败'+ res.message);
} }
}) })
.catch((err) => { .catch((err) => {
newSn.parent.children.splice(index, 1); newSn.parent.children.splice(index, 1);
that.$message.error('克隆失败'); createMessage.error('克隆失败');
}); });
}) })
// //
@ -3398,13 +3297,12 @@
}) })
.catch((e) => { .catch((e) => {
currentModel.destroy(); currentModel.destroy();
// $mitt.emit('openNotification', '', 2, 'error', '50px') createMessage.error('克隆区域数据出错', 3);
$mitt.emit('openNotification', { msg: '克隆区域数据出错', dt: 2, type: 'error', top: '50px' });
}); });
}) })
// //
.modelCallback(() => { .modelCallback(() => {
this.$message.warning('监控点不支持克隆'); createMessage.warning('监控点不支持克隆');
}) })
.run(); .run();
} }
@ -3474,7 +3372,7 @@
for (const child of childList) { for (const child of childList) {
if (child.children.length > 0) { if (child.children.length > 0) {
this.$message.warning('存在下级数据无法删除'); createMessage.warning('存在下级数据无法删除');
throw '存在下级数据无法删除'; throw '存在下级数据无法删除';
} }
} }
@ -3525,7 +3423,7 @@
that.setIconByRef(ref, el); that.setIconByRef(ref, el);
}); });
} else { } else {
that.$message.error('设备不在线'); createMessage.error('设备不在线');
} }
} }
} else if (device.deviceType_dictText.indexOf('雷达') > -1) { } else if (device.deviceType_dictText.indexOf('雷达') > -1) {
@ -3804,7 +3702,7 @@
// //
.sensor(() => { .sensor(() => {
// //
this.$message.warning('不支持修改感应器的名称'); createMessage.warning('不支持修改感应器的名称');
}) })
// 线 // 线
.modelCallback(() => { .modelCallback(() => {
@ -3824,13 +3722,13 @@
// putAction(this.url.updateSite, editCameraSiteModelParameter) // putAction(this.url.updateSite, editCameraSiteModelParameter)
.then((res) => { .then((res) => {
if (res.success) { if (res.success) {
this.$message.success('修改成功'); createMessage.success('修改成功');
} else { } else {
this.$message.error('修改失败'); createMessage.error('修改失败');
} }
}) })
.catch((error) => { .catch((error) => {
this.$message.error('修改失败'); createMessage.error('修改失败');
}); });
}) })
.markerPosition(() => { .markerPosition(() => {
@ -3852,13 +3750,13 @@
if (res.success) { if (res.success) {
// //
sn.czmObject.pinBuilder.extText = newTitle; sn.czmObject.pinBuilder.extText = newTitle;
this.$message.success('修改成功'); createMessage.success('修改成功');
} else { } else {
this.$message.error('修改失败'); createMessage.error('修改失败');
} }
}) })
.catch((error) => { .catch((error) => {
this.$message.error('修改失败'); createMessage.error('修改失败');
}); });
}) })
.run(); .run();
@ -3866,7 +3764,6 @@
// //
handlerModelDelete(url, params) { handlerModelDelete(url, params) {
// return deleteAction(url, params).then((res) => {
return defHttp return defHttp
.delete( .delete(
{ {
@ -3877,9 +3774,9 @@
) )
.then((res) => { .then((res) => {
if (res.success) { if (res.success) {
this.$message.success('删除成功'); createMessage.success('删除成功');
} else { } else {
this.$message.error('删除失败'); createMessage.error('删除失败');
console.log('asdasdasd'); console.log('asdasdasd');
} }
}); });
@ -3926,12 +3823,11 @@
}, },
{ isTransformResponse: false } { isTransformResponse: false }
) )
// putAction(this.url.updateSensor, editSensorParams)
.then((res) => { .then((res) => {
if (res.success) { if (res.success) {
this.$message.success('修改成功'); createMessage.success('修改成功');
} else { } else {
this.$message.error('修改失败: ', res.message); createMessage.error('修改失败: ' + res.message);
} }
}); });
}) })
@ -3966,9 +3862,9 @@
.then((res) => { .then((res) => {
if (res.success) { if (res.success) {
modelData.pinBuilder.extText = modelData.name; modelData.pinBuilder.extText = modelData.name;
this.$message.success('修改成功'); createMessage.success('修改成功');
} else { } else {
this.$message.error('修改失败'); createMessage.error('修改失败');
} }
}); });
}) })
@ -3998,13 +3894,13 @@
.then((res) => { .then((res) => {
if (res.success) { if (res.success) {
modelData.pinBuilder.extText = modelData.name; modelData.pinBuilder.extText = modelData.name;
this.$message.success('修改成功'); createMessage.success('修改成功');
} else { } else {
this.$message.error('修改失败'); createMessage.error('修改失败');
} }
}) })
.catch((error) => { .catch((error) => {
this.$message.error('修改失败'); createMessage.error('修改失败');
}); });
}) })
.polylineCallBack(() => { .polylineCallBack(() => {
@ -4076,21 +3972,17 @@
}, },
{ isTransformResponse: false } { isTransformResponse: false }
) )
// putAction(this.url.updateMapLine, submitData)
.then((res) => { .then((res) => {
if (res.success) { if (res.success) {
// $mitt.emit('openNotification', '', 2, 'info') createMessage.success('修改成功!', 2);
$mitt.emit('openNotification', { msg: '修改成功!', dt: 2, type: 'info', top: '50px' });
sn.title = submitData.name; sn.title = submitData.name;
window.$earth.sceneTree.$refs['node_' + sn.ref].title = submitData.name; window.$earth.sceneTree.$refs['node_' + sn.ref].title = submitData.name;
} else { } else {
// $mitt.emit('openNotification', '', 2, 'error', '50px') createMessage.error('修改失败', 2);
$mitt.emit('openNotification', { msg: '修改失败', dt: 2, type: 'error', top: '50px' });
} }
}) })
.catch((error) => { .catch((error) => {
// $mitt.emit('openNotification', '', 2, 'error', '50px') createMessage.error('修改失败', 2);
$mitt.emit('openNotification', { msg: '修改失败', dt: 2, type: 'error', top: '50px' });
}); });
}) })
.run(); .run();
@ -4123,25 +4015,23 @@
this.sceneTreeOldRefValue = ''; this.sceneTreeOldRefValue = '';
// //
model.title = newRef; model.title = newRef;
this.$message.success('修改成功'); createMessage.success('修改成功');
} else { } else {
this.$message.error('修改失败: ' + res.message); createMessage.error('修改失败: ' + res.message);
} }
}) })
.catch((err) => { .catch((err) => {
this.$message.error('修改失败: ', err); createMessage.error('修改失败: ' + err);
}); });
}) })
.modelCallback(() => { .modelCallback(() => {
// 线ref ref ID; // 线ref ref ID;
this.$message.warning('无法修改传感器标志线的ref'); createMessage.warning('无法修改传感器标志线的ref');
}) })
.run(); .run();
} }
}, 150); }, 150);
handleNodeType(sn) {
return new HandleNodeType(sn);
}
radarAlarmTimeOutCheck() { radarAlarmTimeOutCheck() {
const now = Date.now(); const now = Date.now();
const timeout = 5 * 60 * 1000; const timeout = 5 * 60 * 1000;
@ -4182,6 +4072,11 @@
} }
this.clearRadarAlarmModel(radarAlarmDataMap, eventNum); this.clearRadarAlarmModel(radarAlarmDataMap, eventNum);
} }
//
handleNodeType(sn) {
return new HandleNodeType(sn);
}
// //
getRealTime() { getRealTime() {
this.timer2 = setInterval(() => { this.timer2 = setInterval(() => {

2
src/views/military/modules/duty/DutySet.vue

@ -120,7 +120,7 @@
// httpAction(this.addUrl, this.addData, 'post') // httpAction(this.addUrl, this.addData, 'post')
.then((res) => { .then((res) => {
if (res.success) { if (res.success) {
$message.success(res.message); $message.createMessage.success(res.message);
} else { } else {
// that.$message.warning(res.message); // that.$message.warning(res.message);
} }

2
src/views/military/modules/dutyManage/duty/DutySet.vue

@ -120,7 +120,7 @@
// httpAction(this.addUrl, this.addData, 'post') // httpAction(this.addUrl, this.addData, 'post')
.then((res) => { .then((res) => {
if (res.success) { if (res.success) {
$message.success(res.message); $message.createMessage.success(res.message);
} else { } else {
// that.$message.warning(res.message); // that.$message.warning(res.message);
} }

2
src/views/military/modules/equipment/camera/CameraSet.vue

@ -450,7 +450,6 @@
} }
if (cameraForm.value.id == '') { if (cameraForm.value.id == '') {
// this.$message.info("!");
createMessage.info('请先选择需要修改的数据!'); createMessage.info('请先选择需要修改的数据!');
return false; return false;
} }
@ -577,7 +576,6 @@
return; return;
} }
// else if (!pattern.test(this.cameraForm.cloudCtrlIp)){ // else if (!pattern.test(this.cameraForm.cloudCtrlIp)){
// this.$message.warning("IP");
// return // return
// } // }
cameraForm.value.channel = channel ? channel : '0'; cameraForm.value.channel = channel ? channel : '0';

2
src/views/military/modules/eventManage/emergencyPlan/components/MsEmergencyPlanForm.vue

@ -153,7 +153,6 @@ function addStep() {
stepList.value.push(""); stepList.value.push("");
stepText.value.focus(); stepText.value.focus();
} else { } else {
// this.$message.error("5")
createMessage.error("最多只能添加5个步骤") createMessage.error("最多只能添加5个步骤")
} }
} }
@ -164,7 +163,6 @@ function removeStep() {
stepCurrent.value = stepCurrent.value == 0 ? 0 : stepCurrent.value - 1; stepCurrent.value = stepCurrent.value == 0 ? 0 : stepCurrent.value - 1;
stepText.value.focus(); stepText.value.focus();
} else { } else {
// this.$message.error("")
createMessage.error("至少要有一个步骤") createMessage.error("至少要有一个步骤")
} }
} }

Loading…
Cancel
Save