| | |
| | | dept: "最简单、最便捷",
|
| | | callback: this.bindCover,
|
| | | },
|
| | | closeMap: false,
|
| | | };
|
| | | },
|
| | | computed: {
|
| | |
| | | // console.log('Received message:', event.data);
|
| | | console.log(event);
|
| | |
|
| | | if (event.data != "连接成功") {
|
| | | if (
|
| | | event.data != "连接成功" ||
|
| | | event.data.indexOf("收到消息,消息内容:心跳包检测") <= 0
|
| | | ) {
|
| | | console.log(event.data);
|
| | | const val = JSON.parse(event.data);
|
| | | if (val.session_id == this.uuid) {
|
| | |
| | | }
|
| | | },
|
| | | async setMsgStart(res) {
|
| | | console.log("res----", res);
|
| | | //输入@map打开地图
|
| | | if (res == "@map") {
|
| | | var rolMsg = [
|
| | | {
|
| | | type: "text",
|
| | | val: "地图已打开",
|
| | | },
|
| | | ];
|
| | | this.refashMsg(rolMsg);
|
| | | //打开地图
|
| | | this.$store.state.setScreenFlag = true;
|
| | | this.closeMap = true;
|
| | | earthCtrl.viewer.camera.flyTo({
|
| | | destination: {
|
| | | x: -1803769.3854512463,
|
| | | y: 29158371.286777183,
|
| | | z: 13465105.223495383,
|
| | | },
|
| | | orientation: {
|
| | | heading: 6.283185307179586,
|
| | | pitch: -1.5707963267948966,
|
| | | roll: 0,
|
| | | },
|
| | | });
|
| | | }
|
| | | //有map关键字定位
|
| | | else if (res.indexOf("@map") > -1) {
|
| | | this.closeMap = true;
|
| | | window.earthCtrl.camera.flyTo(
|
| | | 121.5898036178841,
|
| | | 23.93799083591751,
|
| | | 2732.163687177577,
|
| | | 4.501790216143808,
|
| | | -32.230361363631324,
|
| | | 0.001313831409284339,
|
| | | 2
|
| | | );
|
| | | }
|
| | | mapImg.removeInit();
|
| | | mapSetFunc.removeAll();
|
| | | this.$store.state.setListColor = [];
|
| | | this.$store.state.showLenged = false;
|
| | | window.earthCtrl.camera.flyTo(
|
| | | 121.5898036178841,
|
| | | 23.93799083591751,
|
| | | 2732.163687177577,
|
| | | 4.501790216143808,
|
| | | -32.230361363631324,
|
| | | 0.001313831409284339,
|
| | | 2
|
| | | );
|
| | | this.$store.state.showRelationBox = false;
|
| | |
|
| | | // const formData = new FormData();
|
| | | // formData.append("message", res);
|
| | |
| | | });
|
| | | },
|
| | | async setAgentIntention(obj, formData) {
|
| | | getAgentIntention(formData).then((response) => {
|
| | | if (response.code != 200) {
|
| | | console.log("obj", formData);
|
| | | getAgentIntention(formData)
|
| | | .then((response) => {
|
| | | if (response.code != 200) {
|
| | | if (formData.message != "@map") {
|
| | | var rolMsg = [
|
| | | {
|
| | | type: "text",
|
| | | val: "未查询到相关信息。",
|
| | | },
|
| | | ];
|
| | | this.refashMsg(rolMsg);
|
| | | }
|
| | | return;
|
| | | }
|
| | |
|
| | | const type = response.type;
|
| | | //普通对话信息查询
|
| | | if (type == "message" || type == "Rag") {
|
| | | //关闭地图
|
| | | if (!this.closeMap) {
|
| | | this.$store.state.setScreenFlag = false;
|
| | | }
|
| | | var rolMsg = [
|
| | | {
|
| | | type: "text",
|
| | | val: type == "Rag" ? response.content : response.msg,
|
| | | },
|
| | | ];
|
| | | this.refashMsg(rolMsg);
|
| | | }
|
| | | //地图查询
|
| | | else {
|
| | | //打开地图
|
| | | this.$store.state.setScreenFlag = true;
|
| | | this.setMapfunc(response.content, obj);
|
| | | }
|
| | | })
|
| | | .catch((error) => {
|
| | | var rolMsg = [
|
| | | {
|
| | | type: "text",
|
| | | val: "未查询到相关信息。",
|
| | | val: "抱歉,服务器似乎出了点问题,我们正在修复中。",
|
| | | },
|
| | | ];
|
| | | this.refashMsg(rolMsg);
|
| | | return;
|
| | | }
|
| | |
|
| | | const type = response.type;
|
| | | if (type == "Map") {
|
| | | this.setMapfunc(response.content, obj);
|
| | | } else if (type == "Rag") {
|
| | | this.setMapRag(response, obj);
|
| | | } else {
|
| | | this.setMapfunc(response.content, obj);
|
| | | }
|
| | | });
|
| | | });
|
| | | },
|
| | | setMapfunc(res, obj) {
|
| | | this.$store.state.showLenged = false;
|
| | |
| | | } else {
|
| | | roleMsg = msgData.getAffairsData([{ type: "text", val: res.msg }]);
|
| | | }
|
| | |
|
| | | this.refashMsg(roleMsg.list);
|
| | | break;
|
| | | case "queryMeta":
|
| | |
| | | var roleMsg = msgData.getAffairsData([
|
| | | { type: "text", val: "地图已显示" },
|
| | | ]);
|
| | | console.log("roleMsg----", roleMsg);
|
| | | this.refashMsg(roleMsg.list);
|
| | | break;
|
| | | case "aroundPoi":
|
| | |
| | | this.setUpdateHistoryInFor(obj, res.msg);
|
| | | this.refashMsg(roleMsg.list);
|
| | | break;
|
| | | case "attackentity":
|
| | | mapSetFunc.init(res);
|
| | | this.setUpdateHistoryInFor(obj, res.msg);
|
| | | if (res.data.length === 1) {
|
| | | var roleMsg = msgData.getAffairsData([
|
| | | { type: "text", val: res.data[0].targetinfo },
|
| | | ]);
|
| | | this.refashMsg(roleMsg.list);
|
| | | } else {
|
| | | const markData = res.data
|
| | | .map((item) => `| ${item.name} | ${item.targetinfo} |`)
|
| | | .join("\n");
|
| | | let markAttr = `| 名称 | 属性信息 |\n|------|------|\n` + markData;
|
| | | var roleMsg = msgData.getMdData("markdown", markAttr);
|
| | | this.refashMsg(roleMsg.list);
|
| | | }
|
| | | break;
|
| | | case "getRelatedEntity":
|
| | | this.setUpdateHistoryInFor(obj, res.msg);
|
| | | this.handleRelationData(res.data);
|
| | | var roleMsg = msgData.getAffairsData([
|
| | | { type: "text", val: "页面已显示" },
|
| | | ]);
|
| | | this.refashMsg(roleMsg.list);
|
| | | break;
|
| | | default:
|
| | | this.setUpdateHistoryInFor(obj, res.msg);
|
| | | var roleMsg1 = msgData.getAffairsData([
|
| | |
| | | this.loading = false;
|
| | | this.list[this.list.length - 1].list = res;
|
| | | },
|
| | | //关系数据处理
|
| | | handleRelationData(data) {
|
| | | // 准备节点和边
|
| | | let graphData = [];
|
| | | let links = [];
|
| | | // 处理主类型(mainType)
|
| | | Object.keys(data.mainType).forEach((main) => {
|
| | | graphData.push({
|
| | | name: main,
|
| | | category: "mainType",
|
| | | symbolSize: 70,
|
| | | itemStyle: {
|
| | | color: "#4169E1",
|
| | | },
|
| | | });
|
| | |
|
| | | data.mainType[main].forEach((sec) => {
|
| | | graphData.push({
|
| | | name: sec,
|
| | | category: "secType",
|
| | | symbolSize: 60,
|
| | | itemStyle: {
|
| | | color: "#87CEFA",
|
| | | },
|
| | | });
|
| | |
|
| | | // 处理子类型(secType)
|
| | | if (data.secType[sec]) {
|
| | | data.secType[sec].forEach((sub) => {
|
| | | graphData.push({
|
| | | name: sub,
|
| | | category: "subType",
|
| | | symbolSize: 50,
|
| | | itemStyle: {
|
| | | color: "#30ECA6",
|
| | | },
|
| | | });
|
| | |
|
| | | // 处理具体项(subtype)
|
| | | if (data.subtype[sub]) {
|
| | | data.subtype[sub].forEach((item) => {
|
| | | graphData.push({
|
| | | name: item.name,
|
| | | category: "subTypeItem",
|
| | | symbolSize: 50,
|
| | | itemStyle: {
|
| | | color: "#00BFFF",
|
| | | },
|
| | | uuid: item.uuid,
|
| | | lontitude: item.lontitude,
|
| | | lattitude: item.lattitude,
|
| | | });
|
| | | links.push({ source: sub, target: item.name });
|
| | | });
|
| | | }
|
| | | // 父子节点连接
|
| | | links.push({ source: sec, target: sub });
|
| | | });
|
| | | }
|
| | | // 父子节点连接
|
| | | links.push({ source: main, target: sec });
|
| | | });
|
| | | });
|
| | | console.log("nodes---", graphData, "links---", links);
|
| | | this.$store.state.showRelationBox = true;
|
| | | this.$store.state.relationData = {
|
| | | nodes: graphData,
|
| | | links: links,
|
| | | };
|
| | | },
|
| | | },
|
| | | };
|
| | | </script>
|